roadmap-kit 1.0.1 → 1.0.3

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.
@@ -0,0 +1,521 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))n(a);new MutationObserver(a=>{for(const l of a)if(l.type==="childList")for(const i of l.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function r(a){const l={};return a.integrity&&(l.integrity=a.integrity),a.referrerPolicy&&(l.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?l.credentials="include":a.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function n(a){if(a.ep)return;a.ep=!0;const l=r(a);fetch(a.href,l)}})();function Bu(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var vc={exports:{}},ha={},Nc={exports:{}},X={};/**
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 ln=Symbol.for("react.element"),Wu=Symbol.for("react.portal"),Ku=Symbol.for("react.fragment"),Yu=Symbol.for("react.strict_mode"),Ju=Symbol.for("react.profiler"),Qu=Symbol.for("react.provider"),qu=Symbol.for("react.context"),Xu=Symbol.for("react.forward_ref"),Zu=Symbol.for("react.suspense"),em=Symbol.for("react.memo"),tm=Symbol.for("react.lazy"),eo=Symbol.iterator;function rm(e){return e===null||typeof e!="object"?null:(e=eo&&e[eo]||e["@@iterator"],typeof e=="function"?e:null)}var jc={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},wc=Object.assign,bc={};function us(e,t,r){this.props=e,this.context=t,this.refs=bc,this.updater=r||jc}us.prototype.isReactComponent={};us.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};us.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Ec(){}Ec.prototype=us.prototype;function ni(e,t,r){this.props=e,this.context=t,this.refs=bc,this.updater=r||jc}var ai=ni.prototype=new Ec;ai.constructor=ni;wc(ai,us.prototype);ai.isPureReactComponent=!0;var to=Array.isArray,kc=Object.prototype.hasOwnProperty,li={current:null},Sc={key:!0,ref:!0,__self:!0,__source:!0};function Cc(e,t,r){var n,a={},l=null,i=null;if(t!=null)for(n in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(l=""+t.key),t)kc.call(t,n)&&!Sc.hasOwnProperty(n)&&(a[n]=t[n]);var o=arguments.length-2;if(o===1)a.children=r;else if(1<o){for(var c=Array(o),d=0;d<o;d++)c[d]=arguments[d+2];a.children=c}if(e&&e.defaultProps)for(n in o=e.defaultProps,o)a[n]===void 0&&(a[n]=o[n]);return{$$typeof:ln,type:e,key:l,ref:i,props:a,_owner:li.current}}function sm(e,t){return{$$typeof:ln,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function ii(e){return typeof e=="object"&&e!==null&&e.$$typeof===ln}function nm(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var ro=/\/+/g;function Oa(e,t){return typeof e=="object"&&e!==null&&e.key!=null?nm(""+e.key):t.toString(36)}function Rn(e,t,r,n,a){var l=typeof e;(l==="undefined"||l==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(l){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case ln:case Wu:i=!0}}if(i)return i=e,a=a(i),e=n===""?"."+Oa(i,0):n,to(a)?(r="",e!=null&&(r=e.replace(ro,"$&/")+"/"),Rn(a,t,r,"",function(d){return d})):a!=null&&(ii(a)&&(a=sm(a,r+(!a.key||i&&i.key===a.key?"":(""+a.key).replace(ro,"$&/")+"/")+e)),t.push(a)),1;if(i=0,n=n===""?".":n+":",to(e))for(var o=0;o<e.length;o++){l=e[o];var c=n+Oa(l,o);i+=Rn(l,t,r,c,a)}else if(c=rm(e),typeof c=="function")for(e=c.call(e),o=0;!(l=e.next()).done;)l=l.value,c=n+Oa(l,o++),i+=Rn(l,t,r,c,a);else if(l==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return i}function mn(e,t,r){if(e==null)return e;var n=[],a=0;return Rn(e,n,"","",function(l){return t.call(r,l,a++)}),n}function am(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r)},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var Ge={current:null},In={transition:null},lm={ReactCurrentDispatcher:Ge,ReactCurrentBatchConfig:In,ReactCurrentOwner:li};function Ac(){throw Error("act(...) is not supported in production builds of React.")}X.Children={map:mn,forEach:function(e,t,r){mn(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return mn(e,function(){t++}),t},toArray:function(e){return mn(e,function(t){return t})||[]},only:function(e){if(!ii(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};X.Component=us;X.Fragment=Ku;X.Profiler=Ju;X.PureComponent=ni;X.StrictMode=Yu;X.Suspense=Zu;X.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lm;X.act=Ac;X.cloneElement=function(e,t,r){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var n=wc({},e.props),a=e.key,l=e.ref,i=e._owner;if(t!=null){if(t.ref!==void 0&&(l=t.ref,i=li.current),t.key!==void 0&&(a=""+t.key),e.type&&e.type.defaultProps)var o=e.type.defaultProps;for(c in t)kc.call(t,c)&&!Sc.hasOwnProperty(c)&&(n[c]=t[c]===void 0&&o!==void 0?o[c]:t[c])}var c=arguments.length-2;if(c===1)n.children=r;else if(1<c){o=Array(c);for(var d=0;d<c;d++)o[d]=arguments[d+2];n.children=o}return{$$typeof:ln,type:e.type,key:a,ref:l,props:n,_owner:i}};X.createContext=function(e){return e={$$typeof:qu,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:Qu,_context:e},e.Consumer=e};X.createElement=Cc;X.createFactory=function(e){var t=Cc.bind(null,e);return t.type=e,t};X.createRef=function(){return{current:null}};X.forwardRef=function(e){return{$$typeof:Xu,render:e}};X.isValidElement=ii;X.lazy=function(e){return{$$typeof:tm,_payload:{_status:-1,_result:e},_init:am}};X.memo=function(e,t){return{$$typeof:em,type:e,compare:t===void 0?null:t}};X.startTransition=function(e){var t=In.transition;In.transition={};try{e()}finally{In.transition=t}};X.unstable_act=Ac;X.useCallback=function(e,t){return Ge.current.useCallback(e,t)};X.useContext=function(e){return Ge.current.useContext(e)};X.useDebugValue=function(){};X.useDeferredValue=function(e){return Ge.current.useDeferredValue(e)};X.useEffect=function(e,t){return Ge.current.useEffect(e,t)};X.useId=function(){return Ge.current.useId()};X.useImperativeHandle=function(e,t,r){return Ge.current.useImperativeHandle(e,t,r)};X.useInsertionEffect=function(e,t){return Ge.current.useInsertionEffect(e,t)};X.useLayoutEffect=function(e,t){return Ge.current.useLayoutEffect(e,t)};X.useMemo=function(e,t){return Ge.current.useMemo(e,t)};X.useReducer=function(e,t,r){return Ge.current.useReducer(e,t,r)};X.useRef=function(e){return Ge.current.useRef(e)};X.useState=function(e){return Ge.current.useState(e)};X.useSyncExternalStore=function(e,t,r){return Ge.current.useSyncExternalStore(e,t,r)};X.useTransition=function(){return Ge.current.useTransition()};X.version="18.3.1";Nc.exports=X;var v=Nc.exports;const oi=Bu(v);/**
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 im=v,om=Symbol.for("react.element"),cm=Symbol.for("react.fragment"),dm=Object.prototype.hasOwnProperty,um=im.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,mm={key:!0,ref:!0,__self:!0,__source:!0};function Tc(e,t,r){var n,a={},l=null,i=null;r!==void 0&&(l=""+r),t.key!==void 0&&(l=""+t.key),t.ref!==void 0&&(i=t.ref);for(n in t)dm.call(t,n)&&!mm.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)a[n]===void 0&&(a[n]=t[n]);return{$$typeof:om,type:e,key:l,ref:i,props:a,_owner:um.current}}ha.Fragment=cm;ha.jsx=Tc;ha.jsxs=Tc;vc.exports=ha;var s=vc.exports,Rc={exports:{}},nt={},Ic={exports:{}},Oc={};/**
18
+ * @license React
19
+ * scheduler.production.min.js
20
+ *
21
+ * Copyright (c) Facebook, Inc. and its affiliates.
22
+ *
23
+ * This source code is licensed under the MIT license found in the
24
+ * LICENSE file in the root directory of this source tree.
25
+ */(function(e){function t(C,H){var Y=C.length;C.push(H);e:for(;0<Y;){var ne=Y-1>>>1,J=C[ne];if(0<a(J,H))C[ne]=H,C[Y]=J,Y=ne;else break e}}function r(C){return C.length===0?null:C[0]}function n(C){if(C.length===0)return null;var H=C[0],Y=C.pop();if(Y!==H){C[0]=Y;e:for(var ne=0,J=C.length,xt=J>>>1;ne<xt;){var $e=2*(ne+1)-1,Q=C[$e],pe=$e+1,Ae=C[pe];if(0>a(Q,Y))pe<J&&0>a(Ae,Q)?(C[ne]=Ae,C[pe]=Y,ne=pe):(C[ne]=Q,C[$e]=Y,ne=$e);else if(pe<J&&0>a(Ae,Y))C[ne]=Ae,C[pe]=Y,ne=pe;else break e}}return H}function a(C,H){var Y=C.sortIndex-H.sortIndex;return Y!==0?Y:C.id-H.id}if(typeof performance=="object"&&typeof performance.now=="function"){var l=performance;e.unstable_now=function(){return l.now()}}else{var i=Date,o=i.now();e.unstable_now=function(){return i.now()-o}}var c=[],d=[],p=1,x=null,g=3,h=!1,j=!1,b=!1,w=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,u=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function f(C){for(var H=r(d);H!==null;){if(H.callback===null)n(d);else if(H.startTime<=C)n(d),H.sortIndex=H.expirationTime,t(c,H);else break;H=r(d)}}function N(C){if(b=!1,f(C),!j)if(r(c)!==null)j=!0,se(k);else{var H=r(d);H!==null&&ie(N,H.startTime-C)}}function k(C,H){j=!1,b&&(b=!1,m(y),y=-1),h=!0;var Y=g;try{for(f(H),x=r(c);x!==null&&(!(x.expirationTime>H)||C&&!D());){var ne=x.callback;if(typeof ne=="function"){x.callback=null,g=x.priorityLevel;var J=ne(x.expirationTime<=H);H=e.unstable_now(),typeof J=="function"?x.callback=J:x===r(c)&&n(c),f(H)}else n(c);x=r(c)}if(x!==null)var xt=!0;else{var $e=r(d);$e!==null&&ie(N,$e.startTime-H),xt=!1}return xt}finally{x=null,g=Y,h=!1}}var T=!1,R=null,y=-1,P=5,S=-1;function D(){return!(e.unstable_now()-S<P)}function L(){if(R!==null){var C=e.unstable_now();S=C;var H=!0;try{H=R(!0,C)}finally{H?M():(T=!1,R=null)}}else T=!1}var M;if(typeof u=="function")M=function(){u(L)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,F=V.port2;V.port1.onmessage=L,M=function(){F.postMessage(null)}}else M=function(){w(L,0)};function se(C){R=C,T||(T=!0,M())}function ie(C,H){y=w(function(){C(e.unstable_now())},H)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(C){C.callback=null},e.unstable_continueExecution=function(){j||h||(j=!0,se(k))},e.unstable_forceFrameRate=function(C){0>C||125<C?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):P=0<C?Math.floor(1e3/C):5},e.unstable_getCurrentPriorityLevel=function(){return g},e.unstable_getFirstCallbackNode=function(){return r(c)},e.unstable_next=function(C){switch(g){case 1:case 2:case 3:var H=3;break;default:H=g}var Y=g;g=H;try{return C()}finally{g=Y}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(C,H){switch(C){case 1:case 2:case 3:case 4:case 5:break;default:C=3}var Y=g;g=C;try{return H()}finally{g=Y}},e.unstable_scheduleCallback=function(C,H,Y){var ne=e.unstable_now();switch(typeof Y=="object"&&Y!==null?(Y=Y.delay,Y=typeof Y=="number"&&0<Y?ne+Y:ne):Y=ne,C){case 1:var J=-1;break;case 2:J=250;break;case 5:J=1073741823;break;case 4:J=1e4;break;default:J=5e3}return J=Y+J,C={id:p++,callback:H,priorityLevel:C,startTime:Y,expirationTime:J,sortIndex:-1},Y>ne?(C.sortIndex=Y,t(d,C),r(c)===null&&C===r(d)&&(b?(m(y),y=-1):b=!0,ie(N,Y-ne))):(C.sortIndex=J,t(c,C),j||h||(j=!0,se(k))),C},e.unstable_shouldYield=D,e.unstable_wrapCallback=function(C){var H=g;return function(){var Y=g;g=H;try{return C.apply(this,arguments)}finally{g=Y}}}})(Oc);Ic.exports=Oc;var pm=Ic.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 fm=v,st=pm;function I(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);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 Dc=new Set,Fs={};function Rr(e,t){rs(e,t),rs(e+"Capture",t)}function rs(e,t){for(Fs[e]=t,e=0;e<t.length;e++)Dc.add(t[e])}var $t=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),il=Object.prototype.hasOwnProperty,hm=/^[: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]*$/,so={},no={};function xm(e){return il.call(no,e)?!0:il.call(so,e)?!1:hm.test(e)?no[e]=!0:(so[e]=!0,!1)}function gm(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function ym(e,t,r,n){if(t===null||typeof t>"u"||gm(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.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 Be(e,t,r,n,a,l,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=a,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=l,this.removeEmptyString=i}var De={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){De[e]=new Be(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];De[t]=new Be(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){De[e]=new Be(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){De[e]=new Be(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){De[e]=new Be(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){De[e]=new Be(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){De[e]=new Be(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){De[e]=new Be(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){De[e]=new Be(e,5,!1,e.toLowerCase(),null,!1,!1)});var ci=/[\-:]([a-z])/g;function di(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(ci,di);De[t]=new Be(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(ci,di);De[t]=new Be(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(ci,di);De[t]=new Be(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){De[e]=new Be(e,1,!1,e.toLowerCase(),null,!1,!1)});De.xlinkHref=new Be("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){De[e]=new Be(e,1,!1,e.toLowerCase(),null,!0,!0)});function ui(e,t,r,n){var a=De.hasOwnProperty(t)?De[t]:null;(a!==null?a.type!==0:n||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(ym(t,r,a,n)&&(r=null),n||a===null?xm(t)&&(r===null?e.removeAttribute(t):e.setAttribute(t,""+r)):a.mustUseProperty?e[a.propertyName]=r===null?a.type===3?!1:"":r:(t=a.attributeName,n=a.attributeNamespace,r===null?e.removeAttribute(t):(a=a.type,r=a===3||a===4&&r===!0?"":""+r,n?e.setAttributeNS(n,t,r):e.setAttribute(t,r))))}var Bt=fm.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,pn=Symbol.for("react.element"),Ur=Symbol.for("react.portal"),Fr=Symbol.for("react.fragment"),mi=Symbol.for("react.strict_mode"),ol=Symbol.for("react.profiler"),Pc=Symbol.for("react.provider"),Lc=Symbol.for("react.context"),pi=Symbol.for("react.forward_ref"),cl=Symbol.for("react.suspense"),dl=Symbol.for("react.suspense_list"),fi=Symbol.for("react.memo"),Qt=Symbol.for("react.lazy"),_c=Symbol.for("react.offscreen"),ao=Symbol.iterator;function ys(e){return e===null||typeof e!="object"?null:(e=ao&&e[ao]||e["@@iterator"],typeof e=="function"?e:null)}var ye=Object.assign,Da;function Ss(e){if(Da===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\n( *(at )?)/);Da=t&&t[1]||""}return`
34
+ `+Da+e}var Pa=!1;function La(e,t){if(!e||Pa)return"";Pa=!0;var r=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(d){var n=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){n=d}e.call(t.prototype)}else{try{throw Error()}catch(d){n=d}e()}}catch(d){if(d&&n&&typeof d.stack=="string"){for(var a=d.stack.split(`
35
+ `),l=n.stack.split(`
36
+ `),i=a.length-1,o=l.length-1;1<=i&&0<=o&&a[i]!==l[o];)o--;for(;1<=i&&0<=o;i--,o--)if(a[i]!==l[o]){if(i!==1||o!==1)do if(i--,o--,0>o||a[i]!==l[o]){var c=`
37
+ `+a[i].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=i&&0<=o);break}}}finally{Pa=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?Ss(e):""}function vm(e){switch(e.tag){case 5:return Ss(e.type);case 16:return Ss("Lazy");case 13:return Ss("Suspense");case 19:return Ss("SuspenseList");case 0:case 2:case 15:return e=La(e.type,!1),e;case 11:return e=La(e.type.render,!1),e;case 1:return e=La(e.type,!0),e;default:return""}}function ul(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 Fr:return"Fragment";case Ur:return"Portal";case ol:return"Profiler";case mi:return"StrictMode";case cl:return"Suspense";case dl:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Lc:return(e.displayName||"Context")+".Consumer";case Pc:return(e._context.displayName||"Context")+".Provider";case pi:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case fi:return t=e.displayName||null,t!==null?t:ul(e.type)||"Memo";case Qt:t=e._payload,e=e._init;try{return ul(e(t))}catch{}}return null}function Nm(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 ul(t);case 8:return t===mi?"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 dr(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Mc(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function jm(e){var t=Mc(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var a=r.get,l=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(i){n=""+i,l.call(this,i)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(i){n=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function fn(e){e._valueTracker||(e._valueTracker=jm(e))}function Uc(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=Mc(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function Vn(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 ml(e,t){var r=t.checked;return ye({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function lo(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=dr(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Fc(e,t){t=t.checked,t!=null&&ui(e,"checked",t,!1)}function pl(e,t){Fc(e,t);var r=dr(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?fl(e,t.type,r):t.hasOwnProperty("defaultValue")&&fl(e,t.type,dr(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function io(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function fl(e,t,r){(t!=="number"||Vn(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var Cs=Array.isArray;function Qr(e,t,r,n){if(e=e.options,t){t={};for(var a=0;a<r.length;a++)t["$"+r[a]]=!0;for(r=0;r<e.length;r++)a=t.hasOwnProperty("$"+e[r].value),e[r].selected!==a&&(e[r].selected=a),a&&n&&(e[r].defaultSelected=!0)}else{for(r=""+dr(r),t=null,a=0;a<e.length;a++){if(e[a].value===r){e[a].selected=!0,n&&(e[a].defaultSelected=!0);return}t!==null||e[a].disabled||(t=e[a])}t!==null&&(t.selected=!0)}}function hl(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(I(91));return ye({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function oo(e,t){var r=t.value;if(r==null){if(r=t.children,t=t.defaultValue,r!=null){if(t!=null)throw Error(I(92));if(Cs(r)){if(1<r.length)throw Error(I(93));r=r[0]}t=r}t==null&&(t=""),r=t}e._wrapperState={initialValue:dr(r)}}function zc(e,t){var r=dr(t.value),n=dr(t.defaultValue);r!=null&&(r=""+r,r!==e.value&&(e.value=r),t.defaultValue==null&&e.defaultValue!==r&&(e.defaultValue=r)),n!=null&&(e.defaultValue=""+n)}function co(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function $c(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 xl(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?$c(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var hn,Vc=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,r,n,a){MSApp.execUnsafeLocalFunction(function(){return e(t,r,n,a)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(hn=hn||document.createElement("div"),hn.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=hn.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function zs(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var Rs={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},wm=["Webkit","ms","Moz","O"];Object.keys(Rs).forEach(function(e){wm.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Rs[t]=Rs[e]})});function Hc(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||Rs.hasOwnProperty(e)&&Rs[e]?(""+t).trim():t+"px"}function Gc(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,a=Hc(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,a):e[r]=a}}var bm=ye({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 gl(e,t){if(t){if(bm[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 yl(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 vl=null;function hi(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Nl=null,qr=null,Xr=null;function uo(e){if(e=dn(e)){if(typeof Nl!="function")throw Error(I(280));var t=e.stateNode;t&&(t=Na(t),Nl(e.stateNode,e.type,t))}}function Bc(e){qr?Xr?Xr.push(e):Xr=[e]:qr=e}function Wc(){if(qr){var e=qr,t=Xr;if(Xr=qr=null,uo(e),t)for(e=0;e<t.length;e++)uo(t[e])}}function Kc(e,t){return e(t)}function Yc(){}var _a=!1;function Jc(e,t,r){if(_a)return e(t,r);_a=!0;try{return Kc(e,t,r)}finally{_a=!1,(qr!==null||Xr!==null)&&(Yc(),Wc())}}function $s(e,t){var r=e.stateNode;if(r===null)return null;var n=Na(r);if(n===null)return null;r=n[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":(n=!n.disabled)||(e=e.type,n=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!n;break e;default:e=!1}if(e)return null;if(r&&typeof r!="function")throw Error(I(231,t,typeof r));return r}var jl=!1;if($t)try{var vs={};Object.defineProperty(vs,"passive",{get:function(){jl=!0}}),window.addEventListener("test",vs,vs),window.removeEventListener("test",vs,vs)}catch{jl=!1}function Em(e,t,r,n,a,l,i,o,c){var d=Array.prototype.slice.call(arguments,3);try{t.apply(r,d)}catch(p){this.onError(p)}}var Is=!1,Hn=null,Gn=!1,wl=null,km={onError:function(e){Is=!0,Hn=e}};function Sm(e,t,r,n,a,l,i,o,c){Is=!1,Hn=null,Em.apply(km,arguments)}function Cm(e,t,r,n,a,l,i,o,c){if(Sm.apply(this,arguments),Is){if(Is){var d=Hn;Is=!1,Hn=null}else throw Error(I(198));Gn||(Gn=!0,wl=d)}}function Ir(e){var t=e,r=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(r=t.return),e=t.return;while(e)}return t.tag===3?r:null}function Qc(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 mo(e){if(Ir(e)!==e)throw Error(I(188))}function Am(e){var t=e.alternate;if(!t){if(t=Ir(e),t===null)throw Error(I(188));return t!==e?null:e}for(var r=e,n=t;;){var a=r.return;if(a===null)break;var l=a.alternate;if(l===null){if(n=a.return,n!==null){r=n;continue}break}if(a.child===l.child){for(l=a.child;l;){if(l===r)return mo(a),e;if(l===n)return mo(a),t;l=l.sibling}throw Error(I(188))}if(r.return!==n.return)r=a,n=l;else{for(var i=!1,o=a.child;o;){if(o===r){i=!0,r=a,n=l;break}if(o===n){i=!0,n=a,r=l;break}o=o.sibling}if(!i){for(o=l.child;o;){if(o===r){i=!0,r=l,n=a;break}if(o===n){i=!0,n=l,r=a;break}o=o.sibling}if(!i)throw Error(I(189))}}if(r.alternate!==n)throw Error(I(190))}if(r.tag!==3)throw Error(I(188));return r.stateNode.current===r?e:t}function qc(e){return e=Am(e),e!==null?Xc(e):null}function Xc(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Xc(e);if(t!==null)return t;e=e.sibling}return null}var Zc=st.unstable_scheduleCallback,po=st.unstable_cancelCallback,Tm=st.unstable_shouldYield,Rm=st.unstable_requestPaint,we=st.unstable_now,Im=st.unstable_getCurrentPriorityLevel,xi=st.unstable_ImmediatePriority,ed=st.unstable_UserBlockingPriority,Bn=st.unstable_NormalPriority,Om=st.unstable_LowPriority,td=st.unstable_IdlePriority,xa=null,Tt=null;function Dm(e){if(Tt&&typeof Tt.onCommitFiberRoot=="function")try{Tt.onCommitFiberRoot(xa,e,void 0,(e.current.flags&128)===128)}catch{}}var wt=Math.clz32?Math.clz32:_m,Pm=Math.log,Lm=Math.LN2;function _m(e){return e>>>=0,e===0?32:31-(Pm(e)/Lm|0)|0}var xn=64,gn=4194304;function As(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 Wn(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,a=e.suspendedLanes,l=e.pingedLanes,i=r&268435455;if(i!==0){var o=i&~a;o!==0?n=As(o):(l&=i,l!==0&&(n=As(l)))}else i=r&~a,i!==0?n=As(i):l!==0&&(n=As(l));if(n===0)return 0;if(t!==0&&t!==n&&!(t&a)&&(a=n&-n,l=t&-t,a>=l||a===16&&(l&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0<t;)r=31-wt(t),a=1<<r,n|=e[r],t&=~a;return n}function Mm(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 Um(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,a=e.expirationTimes,l=e.pendingLanes;0<l;){var i=31-wt(l),o=1<<i,c=a[i];c===-1?(!(o&r)||o&n)&&(a[i]=Mm(o,t)):c<=t&&(e.expiredLanes|=o),l&=~o}}function bl(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function rd(){var e=xn;return xn<<=1,!(xn&4194240)&&(xn=64),e}function Ma(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function on(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-wt(t),e[t]=r}function Fm(e,t){var r=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 n=e.eventTimes;for(e=e.expirationTimes;0<r;){var a=31-wt(r),l=1<<a;t[a]=0,n[a]=-1,e[a]=-1,r&=~l}}function gi(e,t){var r=e.entangledLanes|=t;for(e=e.entanglements;r;){var n=31-wt(r),a=1<<n;a&t|e[n]&t&&(e[n]|=t),r&=~a}}var le=0;function sd(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var nd,yi,ad,ld,id,El=!1,yn=[],rr=null,sr=null,nr=null,Vs=new Map,Hs=new Map,Xt=[],zm="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 fo(e,t){switch(e){case"focusin":case"focusout":rr=null;break;case"dragenter":case"dragleave":sr=null;break;case"mouseover":case"mouseout":nr=null;break;case"pointerover":case"pointerout":Vs.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Hs.delete(t.pointerId)}}function Ns(e,t,r,n,a,l){return e===null||e.nativeEvent!==l?(e={blockedOn:t,domEventName:r,eventSystemFlags:n,nativeEvent:l,targetContainers:[a]},t!==null&&(t=dn(t),t!==null&&yi(t)),e):(e.eventSystemFlags|=n,t=e.targetContainers,a!==null&&t.indexOf(a)===-1&&t.push(a),e)}function $m(e,t,r,n,a){switch(t){case"focusin":return rr=Ns(rr,e,t,r,n,a),!0;case"dragenter":return sr=Ns(sr,e,t,r,n,a),!0;case"mouseover":return nr=Ns(nr,e,t,r,n,a),!0;case"pointerover":var l=a.pointerId;return Vs.set(l,Ns(Vs.get(l)||null,e,t,r,n,a)),!0;case"gotpointercapture":return l=a.pointerId,Hs.set(l,Ns(Hs.get(l)||null,e,t,r,n,a)),!0}return!1}function od(e){var t=Nr(e.target);if(t!==null){var r=Ir(t);if(r!==null){if(t=r.tag,t===13){if(t=Qc(r),t!==null){e.blockedOn=t,id(e.priority,function(){ad(r)});return}}else if(t===3&&r.stateNode.current.memoizedState.isDehydrated){e.blockedOn=r.tag===3?r.stateNode.containerInfo:null;return}}}e.blockedOn=null}function On(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var r=kl(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(r===null){r=e.nativeEvent;var n=new r.constructor(r.type,r);vl=n,r.target.dispatchEvent(n),vl=null}else return t=dn(r),t!==null&&yi(t),e.blockedOn=r,!1;t.shift()}return!0}function ho(e,t,r){On(e)&&r.delete(t)}function Vm(){El=!1,rr!==null&&On(rr)&&(rr=null),sr!==null&&On(sr)&&(sr=null),nr!==null&&On(nr)&&(nr=null),Vs.forEach(ho),Hs.forEach(ho)}function js(e,t){e.blockedOn===t&&(e.blockedOn=null,El||(El=!0,st.unstable_scheduleCallback(st.unstable_NormalPriority,Vm)))}function Gs(e){function t(a){return js(a,e)}if(0<yn.length){js(yn[0],e);for(var r=1;r<yn.length;r++){var n=yn[r];n.blockedOn===e&&(n.blockedOn=null)}}for(rr!==null&&js(rr,e),sr!==null&&js(sr,e),nr!==null&&js(nr,e),Vs.forEach(t),Hs.forEach(t),r=0;r<Xt.length;r++)n=Xt[r],n.blockedOn===e&&(n.blockedOn=null);for(;0<Xt.length&&(r=Xt[0],r.blockedOn===null);)od(r),r.blockedOn===null&&Xt.shift()}var Zr=Bt.ReactCurrentBatchConfig,Kn=!0;function Hm(e,t,r,n){var a=le,l=Zr.transition;Zr.transition=null;try{le=1,vi(e,t,r,n)}finally{le=a,Zr.transition=l}}function Gm(e,t,r,n){var a=le,l=Zr.transition;Zr.transition=null;try{le=4,vi(e,t,r,n)}finally{le=a,Zr.transition=l}}function vi(e,t,r,n){if(Kn){var a=kl(e,t,r,n);if(a===null)Ka(e,t,n,Yn,r),fo(e,n);else if($m(a,e,t,r,n))n.stopPropagation();else if(fo(e,n),t&4&&-1<zm.indexOf(e)){for(;a!==null;){var l=dn(a);if(l!==null&&nd(l),l=kl(e,t,r,n),l===null&&Ka(e,t,n,Yn,r),l===a)break;a=l}a!==null&&n.stopPropagation()}else Ka(e,t,n,null,r)}}var Yn=null;function kl(e,t,r,n){if(Yn=null,e=hi(n),e=Nr(e),e!==null)if(t=Ir(e),t===null)e=null;else if(r=t.tag,r===13){if(e=Qc(t),e!==null)return e;e=null}else if(r===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Yn=e,null}function cd(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(Im()){case xi:return 1;case ed:return 4;case Bn:case Om:return 16;case td:return 536870912;default:return 16}default:return 16}}var er=null,Ni=null,Dn=null;function dd(){if(Dn)return Dn;var e,t=Ni,r=t.length,n,a="value"in er?er.value:er.textContent,l=a.length;for(e=0;e<r&&t[e]===a[e];e++);var i=r-e;for(n=1;n<=i&&t[r-n]===a[l-n];n++);return Dn=a.slice(e,1<n?1-n:void 0)}function Pn(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 vn(){return!0}function xo(){return!1}function at(e){function t(r,n,a,l,i){this._reactName=r,this._targetInst=a,this.type=n,this.nativeEvent=l,this.target=i,this.currentTarget=null;for(var o in e)e.hasOwnProperty(o)&&(r=e[o],this[o]=r?r(l):l[o]);return this.isDefaultPrevented=(l.defaultPrevented!=null?l.defaultPrevented:l.returnValue===!1)?vn:xo,this.isPropagationStopped=xo,this}return ye(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var r=this.nativeEvent;r&&(r.preventDefault?r.preventDefault():typeof r.returnValue!="unknown"&&(r.returnValue=!1),this.isDefaultPrevented=vn)},stopPropagation:function(){var r=this.nativeEvent;r&&(r.stopPropagation?r.stopPropagation():typeof r.cancelBubble!="unknown"&&(r.cancelBubble=!0),this.isPropagationStopped=vn)},persist:function(){},isPersistent:vn}),t}var ms={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ji=at(ms),cn=ye({},ms,{view:0,detail:0}),Bm=at(cn),Ua,Fa,ws,ga=ye({},cn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:wi,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!==ws&&(ws&&e.type==="mousemove"?(Ua=e.screenX-ws.screenX,Fa=e.screenY-ws.screenY):Fa=Ua=0,ws=e),Ua)},movementY:function(e){return"movementY"in e?e.movementY:Fa}}),go=at(ga),Wm=ye({},ga,{dataTransfer:0}),Km=at(Wm),Ym=ye({},cn,{relatedTarget:0}),za=at(Ym),Jm=ye({},ms,{animationName:0,elapsedTime:0,pseudoElement:0}),Qm=at(Jm),qm=ye({},ms,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Xm=at(qm),Zm=ye({},ms,{data:0}),yo=at(Zm),ep={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},tp={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"},rp={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function sp(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=rp[e])?!!t[e]:!1}function wi(){return sp}var np=ye({},cn,{key:function(e){if(e.key){var t=ep[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Pn(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?tp[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:wi,charCode:function(e){return e.type==="keypress"?Pn(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Pn(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),ap=at(np),lp=ye({},ga,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),vo=at(lp),ip=ye({},cn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:wi}),op=at(ip),cp=ye({},ms,{propertyName:0,elapsedTime:0,pseudoElement:0}),dp=at(cp),up=ye({},ga,{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}),mp=at(up),pp=[9,13,27,32],bi=$t&&"CompositionEvent"in window,Os=null;$t&&"documentMode"in document&&(Os=document.documentMode);var fp=$t&&"TextEvent"in window&&!Os,ud=$t&&(!bi||Os&&8<Os&&11>=Os),No=" ",jo=!1;function md(e,t){switch(e){case"keyup":return pp.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function pd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var zr=!1;function hp(e,t){switch(e){case"compositionend":return pd(t);case"keypress":return t.which!==32?null:(jo=!0,No);case"textInput":return e=t.data,e===No&&jo?null:e;default:return null}}function xp(e,t){if(zr)return e==="compositionend"||!bi&&md(e,t)?(e=dd(),Dn=Ni=er=null,zr=!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 ud&&t.locale!=="ko"?null:t.data;default:return null}}var gp={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 wo(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!gp[e.type]:t==="textarea"}function fd(e,t,r,n){Bc(n),t=Jn(t,"onChange"),0<t.length&&(r=new ji("onChange","change",null,r,n),e.push({event:r,listeners:t}))}var Ds=null,Bs=null;function yp(e){kd(e,0)}function ya(e){var t=Hr(e);if(Uc(t))return e}function vp(e,t){if(e==="change")return t}var hd=!1;if($t){var $a;if($t){var Va="oninput"in document;if(!Va){var bo=document.createElement("div");bo.setAttribute("oninput","return;"),Va=typeof bo.oninput=="function"}$a=Va}else $a=!1;hd=$a&&(!document.documentMode||9<document.documentMode)}function Eo(){Ds&&(Ds.detachEvent("onpropertychange",xd),Bs=Ds=null)}function xd(e){if(e.propertyName==="value"&&ya(Bs)){var t=[];fd(t,Bs,e,hi(e)),Jc(yp,t)}}function Np(e,t,r){e==="focusin"?(Eo(),Ds=t,Bs=r,Ds.attachEvent("onpropertychange",xd)):e==="focusout"&&Eo()}function jp(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return ya(Bs)}function wp(e,t){if(e==="click")return ya(t)}function bp(e,t){if(e==="input"||e==="change")return ya(t)}function Ep(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Et=typeof Object.is=="function"?Object.is:Ep;function Ws(e,t){if(Et(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(n=0;n<r.length;n++){var a=r[n];if(!il.call(t,a)||!Et(e[a],t[a]))return!1}return!0}function ko(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function So(e,t){var r=ko(e);e=0;for(var n;r;){if(r.nodeType===3){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=ko(r)}}function gd(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?gd(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function yd(){for(var e=window,t=Vn();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=Vn(e.document)}return t}function Ei(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 kp(e){var t=yd(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&gd(r.ownerDocument.documentElement,r)){if(n!==null&&Ei(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var a=r.textContent.length,l=Math.min(n.start,a);n=n.end===void 0?l:Math.min(n.end,a),!e.extend&&l>n&&(a=n,n=l,l=a),a=So(r,l);var i=So(r,n);a&&i&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),l>n?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r<t.length;r++)e=t[r],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Sp=$t&&"documentMode"in document&&11>=document.documentMode,$r=null,Sl=null,Ps=null,Cl=!1;function Co(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Cl||$r==null||$r!==Vn(n)||(n=$r,"selectionStart"in n&&Ei(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Ps&&Ws(Ps,n)||(Ps=n,n=Jn(Sl,"onSelect"),0<n.length&&(t=new ji("onSelect","select",null,t,r),e.push({event:t,listeners:n}),t.target=$r)))}function Nn(e,t){var r={};return r[e.toLowerCase()]=t.toLowerCase(),r["Webkit"+e]="webkit"+t,r["Moz"+e]="moz"+t,r}var Vr={animationend:Nn("Animation","AnimationEnd"),animationiteration:Nn("Animation","AnimationIteration"),animationstart:Nn("Animation","AnimationStart"),transitionend:Nn("Transition","TransitionEnd")},Ha={},vd={};$t&&(vd=document.createElement("div").style,"AnimationEvent"in window||(delete Vr.animationend.animation,delete Vr.animationiteration.animation,delete Vr.animationstart.animation),"TransitionEvent"in window||delete Vr.transitionend.transition);function va(e){if(Ha[e])return Ha[e];if(!Vr[e])return e;var t=Vr[e],r;for(r in t)if(t.hasOwnProperty(r)&&r in vd)return Ha[e]=t[r];return e}var Nd=va("animationend"),jd=va("animationiteration"),wd=va("animationstart"),bd=va("transitionend"),Ed=new Map,Ao="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 mr(e,t){Ed.set(e,t),Rr(t,[e])}for(var Ga=0;Ga<Ao.length;Ga++){var Ba=Ao[Ga],Cp=Ba.toLowerCase(),Ap=Ba[0].toUpperCase()+Ba.slice(1);mr(Cp,"on"+Ap)}mr(Nd,"onAnimationEnd");mr(jd,"onAnimationIteration");mr(wd,"onAnimationStart");mr("dblclick","onDoubleClick");mr("focusin","onFocus");mr("focusout","onBlur");mr(bd,"onTransitionEnd");rs("onMouseEnter",["mouseout","mouseover"]);rs("onMouseLeave",["mouseout","mouseover"]);rs("onPointerEnter",["pointerout","pointerover"]);rs("onPointerLeave",["pointerout","pointerover"]);Rr("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Rr("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Rr("onBeforeInput",["compositionend","keypress","textInput","paste"]);Rr("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Rr("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Rr("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ts="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(" "),Tp=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ts));function To(e,t,r){var n=e.type||"unknown-event";e.currentTarget=r,Cm(n,t,void 0,e),e.currentTarget=null}function kd(e,t){t=(t&4)!==0;for(var r=0;r<e.length;r++){var n=e[r],a=n.event;n=n.listeners;e:{var l=void 0;if(t)for(var i=n.length-1;0<=i;i--){var o=n[i],c=o.instance,d=o.currentTarget;if(o=o.listener,c!==l&&a.isPropagationStopped())break e;To(a,o,d),l=c}else for(i=0;i<n.length;i++){if(o=n[i],c=o.instance,d=o.currentTarget,o=o.listener,c!==l&&a.isPropagationStopped())break e;To(a,o,d),l=c}}}if(Gn)throw e=wl,Gn=!1,wl=null,e}function ue(e,t){var r=t[Ol];r===void 0&&(r=t[Ol]=new Set);var n=e+"__bubble";r.has(n)||(Sd(t,e,2,!1),r.add(n))}function Wa(e,t,r){var n=0;t&&(n|=4),Sd(r,e,n,t)}var jn="_reactListening"+Math.random().toString(36).slice(2);function Ks(e){if(!e[jn]){e[jn]=!0,Dc.forEach(function(r){r!=="selectionchange"&&(Tp.has(r)||Wa(r,!1,e),Wa(r,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[jn]||(t[jn]=!0,Wa("selectionchange",!1,t))}}function Sd(e,t,r,n){switch(cd(t)){case 1:var a=Hm;break;case 4:a=Gm;break;default:a=vi}r=a.bind(null,t,r,e),a=void 0,!jl||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(a=!0),n?a!==void 0?e.addEventListener(t,r,{capture:!0,passive:a}):e.addEventListener(t,r,!0):a!==void 0?e.addEventListener(t,r,{passive:a}):e.addEventListener(t,r,!1)}function Ka(e,t,r,n,a){var l=n;if(!(t&1)&&!(t&2)&&n!==null)e:for(;;){if(n===null)return;var i=n.tag;if(i===3||i===4){var o=n.stateNode.containerInfo;if(o===a||o.nodeType===8&&o.parentNode===a)break;if(i===4)for(i=n.return;i!==null;){var c=i.tag;if((c===3||c===4)&&(c=i.stateNode.containerInfo,c===a||c.nodeType===8&&c.parentNode===a))return;i=i.return}for(;o!==null;){if(i=Nr(o),i===null)return;if(c=i.tag,c===5||c===6){n=l=i;continue e}o=o.parentNode}}n=n.return}Jc(function(){var d=l,p=hi(r),x=[];e:{var g=Ed.get(e);if(g!==void 0){var h=ji,j=e;switch(e){case"keypress":if(Pn(r)===0)break e;case"keydown":case"keyup":h=ap;break;case"focusin":j="focus",h=za;break;case"focusout":j="blur",h=za;break;case"beforeblur":case"afterblur":h=za;break;case"click":if(r.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":h=go;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":h=Km;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":h=op;break;case Nd:case jd:case wd:h=Qm;break;case bd:h=dp;break;case"scroll":h=Bm;break;case"wheel":h=mp;break;case"copy":case"cut":case"paste":h=Xm;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":h=vo}var b=(t&4)!==0,w=!b&&e==="scroll",m=b?g!==null?g+"Capture":null:g;b=[];for(var u=d,f;u!==null;){f=u;var N=f.stateNode;if(f.tag===5&&N!==null&&(f=N,m!==null&&(N=$s(u,m),N!=null&&b.push(Ys(u,N,f)))),w)break;u=u.return}0<b.length&&(g=new h(g,j,null,r,p),x.push({event:g,listeners:b}))}}if(!(t&7)){e:{if(g=e==="mouseover"||e==="pointerover",h=e==="mouseout"||e==="pointerout",g&&r!==vl&&(j=r.relatedTarget||r.fromElement)&&(Nr(j)||j[Vt]))break e;if((h||g)&&(g=p.window===p?p:(g=p.ownerDocument)?g.defaultView||g.parentWindow:window,h?(j=r.relatedTarget||r.toElement,h=d,j=j?Nr(j):null,j!==null&&(w=Ir(j),j!==w||j.tag!==5&&j.tag!==6)&&(j=null)):(h=null,j=d),h!==j)){if(b=go,N="onMouseLeave",m="onMouseEnter",u="mouse",(e==="pointerout"||e==="pointerover")&&(b=vo,N="onPointerLeave",m="onPointerEnter",u="pointer"),w=h==null?g:Hr(h),f=j==null?g:Hr(j),g=new b(N,u+"leave",h,r,p),g.target=w,g.relatedTarget=f,N=null,Nr(p)===d&&(b=new b(m,u+"enter",j,r,p),b.target=f,b.relatedTarget=w,N=b),w=N,h&&j)t:{for(b=h,m=j,u=0,f=b;f;f=Mr(f))u++;for(f=0,N=m;N;N=Mr(N))f++;for(;0<u-f;)b=Mr(b),u--;for(;0<f-u;)m=Mr(m),f--;for(;u--;){if(b===m||m!==null&&b===m.alternate)break t;b=Mr(b),m=Mr(m)}b=null}else b=null;h!==null&&Ro(x,g,h,b,!1),j!==null&&w!==null&&Ro(x,w,j,b,!0)}}e:{if(g=d?Hr(d):window,h=g.nodeName&&g.nodeName.toLowerCase(),h==="select"||h==="input"&&g.type==="file")var k=vp;else if(wo(g))if(hd)k=bp;else{k=jp;var T=Np}else(h=g.nodeName)&&h.toLowerCase()==="input"&&(g.type==="checkbox"||g.type==="radio")&&(k=wp);if(k&&(k=k(e,d))){fd(x,k,r,p);break e}T&&T(e,g,d),e==="focusout"&&(T=g._wrapperState)&&T.controlled&&g.type==="number"&&fl(g,"number",g.value)}switch(T=d?Hr(d):window,e){case"focusin":(wo(T)||T.contentEditable==="true")&&($r=T,Sl=d,Ps=null);break;case"focusout":Ps=Sl=$r=null;break;case"mousedown":Cl=!0;break;case"contextmenu":case"mouseup":case"dragend":Cl=!1,Co(x,r,p);break;case"selectionchange":if(Sp)break;case"keydown":case"keyup":Co(x,r,p)}var R;if(bi)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else zr?md(e,r)&&(y="onCompositionEnd"):e==="keydown"&&r.keyCode===229&&(y="onCompositionStart");y&&(ud&&r.locale!=="ko"&&(zr||y!=="onCompositionStart"?y==="onCompositionEnd"&&zr&&(R=dd()):(er=p,Ni="value"in er?er.value:er.textContent,zr=!0)),T=Jn(d,y),0<T.length&&(y=new yo(y,e,null,r,p),x.push({event:y,listeners:T}),R?y.data=R:(R=pd(r),R!==null&&(y.data=R)))),(R=fp?hp(e,r):xp(e,r))&&(d=Jn(d,"onBeforeInput"),0<d.length&&(p=new yo("onBeforeInput","beforeinput",null,r,p),x.push({event:p,listeners:d}),p.data=R))}kd(x,t)})}function Ys(e,t,r){return{instance:e,listener:t,currentTarget:r}}function Jn(e,t){for(var r=t+"Capture",n=[];e!==null;){var a=e,l=a.stateNode;a.tag===5&&l!==null&&(a=l,l=$s(e,r),l!=null&&n.unshift(Ys(e,l,a)),l=$s(e,t),l!=null&&n.push(Ys(e,l,a))),e=e.return}return n}function Mr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Ro(e,t,r,n,a){for(var l=t._reactName,i=[];r!==null&&r!==n;){var o=r,c=o.alternate,d=o.stateNode;if(c!==null&&c===n)break;o.tag===5&&d!==null&&(o=d,a?(c=$s(r,l),c!=null&&i.unshift(Ys(r,c,o))):a||(c=$s(r,l),c!=null&&i.push(Ys(r,c,o)))),r=r.return}i.length!==0&&e.push({event:t,listeners:i})}var Rp=/\r\n?/g,Ip=/\u0000|\uFFFD/g;function Io(e){return(typeof e=="string"?e:""+e).replace(Rp,`
38
+ `).replace(Ip,"")}function wn(e,t,r){if(t=Io(t),Io(e)!==t&&r)throw Error(I(425))}function Qn(){}var Al=null,Tl=null;function Rl(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 Il=typeof setTimeout=="function"?setTimeout:void 0,Op=typeof clearTimeout=="function"?clearTimeout:void 0,Oo=typeof Promise=="function"?Promise:void 0,Dp=typeof queueMicrotask=="function"?queueMicrotask:typeof Oo<"u"?function(e){return Oo.resolve(null).then(e).catch(Pp)}:Il;function Pp(e){setTimeout(function(){throw e})}function Ya(e,t){var r=t,n=0;do{var a=r.nextSibling;if(e.removeChild(r),a&&a.nodeType===8)if(r=a.data,r==="/$"){if(n===0){e.removeChild(a),Gs(t);return}n--}else r!=="$"&&r!=="$?"&&r!=="$!"||n++;r=a}while(r);Gs(t)}function ar(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 Do(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var r=e.data;if(r==="$"||r==="$!"||r==="$?"){if(t===0)return e;t--}else r==="/$"&&t++}e=e.previousSibling}return null}var ps=Math.random().toString(36).slice(2),At="__reactFiber$"+ps,Js="__reactProps$"+ps,Vt="__reactContainer$"+ps,Ol="__reactEvents$"+ps,Lp="__reactListeners$"+ps,_p="__reactHandles$"+ps;function Nr(e){var t=e[At];if(t)return t;for(var r=e.parentNode;r;){if(t=r[Vt]||r[At]){if(r=t.alternate,t.child!==null||r!==null&&r.child!==null)for(e=Do(e);e!==null;){if(r=e[At])return r;e=Do(e)}return t}e=r,r=e.parentNode}return null}function dn(e){return e=e[At]||e[Vt],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Hr(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(I(33))}function Na(e){return e[Js]||null}var Dl=[],Gr=-1;function pr(e){return{current:e}}function me(e){0>Gr||(e.current=Dl[Gr],Dl[Gr]=null,Gr--)}function ce(e,t){Gr++,Dl[Gr]=e.current,e.current=t}var ur={},ze=pr(ur),Je=pr(!1),kr=ur;function ss(e,t){var r=e.type.contextTypes;if(!r)return ur;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var a={},l;for(l in r)a[l]=t[l];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Qe(e){return e=e.childContextTypes,e!=null}function qn(){me(Je),me(ze)}function Po(e,t,r){if(ze.current!==ur)throw Error(I(168));ce(ze,t),ce(Je,r)}function Cd(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var a in n)if(!(a in t))throw Error(I(108,Nm(e)||"Unknown",a));return ye({},r,n)}function Xn(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ur,kr=ze.current,ce(ze,e),ce(Je,Je.current),!0}function Lo(e,t,r){var n=e.stateNode;if(!n)throw Error(I(169));r?(e=Cd(e,t,kr),n.__reactInternalMemoizedMergedChildContext=e,me(Je),me(ze),ce(ze,e)):me(Je),ce(Je,r)}var _t=null,ja=!1,Ja=!1;function Ad(e){_t===null?_t=[e]:_t.push(e)}function Mp(e){ja=!0,Ad(e)}function fr(){if(!Ja&&_t!==null){Ja=!0;var e=0,t=le;try{var r=_t;for(le=1;e<r.length;e++){var n=r[e];do n=n(!0);while(n!==null)}_t=null,ja=!1}catch(a){throw _t!==null&&(_t=_t.slice(e+1)),Zc(xi,fr),a}finally{le=t,Ja=!1}}return null}var Br=[],Wr=0,Zn=null,ea=0,ct=[],dt=0,Sr=null,Mt=1,Ut="";function yr(e,t){Br[Wr++]=ea,Br[Wr++]=Zn,Zn=e,ea=t}function Td(e,t,r){ct[dt++]=Mt,ct[dt++]=Ut,ct[dt++]=Sr,Sr=e;var n=Mt;e=Ut;var a=32-wt(n)-1;n&=~(1<<a),r+=1;var l=32-wt(t)+a;if(30<l){var i=a-a%5;l=(n&(1<<i)-1).toString(32),n>>=i,a-=i,Mt=1<<32-wt(t)+a|r<<a|n,Ut=l+e}else Mt=1<<l|r<<a|n,Ut=e}function ki(e){e.return!==null&&(yr(e,1),Td(e,1,0))}function Si(e){for(;e===Zn;)Zn=Br[--Wr],Br[Wr]=null,ea=Br[--Wr],Br[Wr]=null;for(;e===Sr;)Sr=ct[--dt],ct[dt]=null,Ut=ct[--dt],ct[dt]=null,Mt=ct[--dt],ct[dt]=null}var rt=null,tt=null,he=!1,jt=null;function Rd(e,t){var r=ut(5,null,null,0);r.elementType="DELETED",r.stateNode=t,r.return=e,t=e.deletions,t===null?(e.deletions=[r],e.flags|=16):t.push(r)}function _o(e,t){switch(e.tag){case 5:var r=e.type;return t=t.nodeType!==1||r.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,rt=e,tt=ar(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,rt=e,tt=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(r=Sr!==null?{id:Mt,overflow:Ut}:null,e.memoizedState={dehydrated:t,treeContext:r,retryLane:1073741824},r=ut(18,null,null,0),r.stateNode=t,r.return=e,e.child=r,rt=e,tt=null,!0):!1;default:return!1}}function Pl(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Ll(e){if(he){var t=tt;if(t){var r=t;if(!_o(e,t)){if(Pl(e))throw Error(I(418));t=ar(r.nextSibling);var n=rt;t&&_o(e,t)?Rd(n,r):(e.flags=e.flags&-4097|2,he=!1,rt=e)}}else{if(Pl(e))throw Error(I(418));e.flags=e.flags&-4097|2,he=!1,rt=e}}}function Mo(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;rt=e}function bn(e){if(e!==rt)return!1;if(!he)return Mo(e),he=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Rl(e.type,e.memoizedProps)),t&&(t=tt)){if(Pl(e))throw Id(),Error(I(418));for(;t;)Rd(e,t),t=ar(t.nextSibling)}if(Mo(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 r=e.data;if(r==="/$"){if(t===0){tt=ar(e.nextSibling);break e}t--}else r!=="$"&&r!=="$!"&&r!=="$?"||t++}e=e.nextSibling}tt=null}}else tt=rt?ar(e.stateNode.nextSibling):null;return!0}function Id(){for(var e=tt;e;)e=ar(e.nextSibling)}function ns(){tt=rt=null,he=!1}function Ci(e){jt===null?jt=[e]:jt.push(e)}var Up=Bt.ReactCurrentBatchConfig;function bs(e,t,r){if(e=r.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(r._owner){if(r=r._owner,r){if(r.tag!==1)throw Error(I(309));var n=r.stateNode}if(!n)throw Error(I(147,e));var a=n,l=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===l?t.ref:(t=function(i){var o=a.refs;i===null?delete o[l]:o[l]=i},t._stringRef=l,t)}if(typeof e!="string")throw Error(I(284));if(!r._owner)throw Error(I(290,e))}return e}function En(e,t){throw e=Object.prototype.toString.call(t),Error(I(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Uo(e){var t=e._init;return t(e._payload)}function Od(e){function t(m,u){if(e){var f=m.deletions;f===null?(m.deletions=[u],m.flags|=16):f.push(u)}}function r(m,u){if(!e)return null;for(;u!==null;)t(m,u),u=u.sibling;return null}function n(m,u){for(m=new Map;u!==null;)u.key!==null?m.set(u.key,u):m.set(u.index,u),u=u.sibling;return m}function a(m,u){return m=cr(m,u),m.index=0,m.sibling=null,m}function l(m,u,f){return m.index=f,e?(f=m.alternate,f!==null?(f=f.index,f<u?(m.flags|=2,u):f):(m.flags|=2,u)):(m.flags|=1048576,u)}function i(m){return e&&m.alternate===null&&(m.flags|=2),m}function o(m,u,f,N){return u===null||u.tag!==6?(u=rl(f,m.mode,N),u.return=m,u):(u=a(u,f),u.return=m,u)}function c(m,u,f,N){var k=f.type;return k===Fr?p(m,u,f.props.children,N,f.key):u!==null&&(u.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Qt&&Uo(k)===u.type)?(N=a(u,f.props),N.ref=bs(m,u,f),N.return=m,N):(N=$n(f.type,f.key,f.props,null,m.mode,N),N.ref=bs(m,u,f),N.return=m,N)}function d(m,u,f,N){return u===null||u.tag!==4||u.stateNode.containerInfo!==f.containerInfo||u.stateNode.implementation!==f.implementation?(u=sl(f,m.mode,N),u.return=m,u):(u=a(u,f.children||[]),u.return=m,u)}function p(m,u,f,N,k){return u===null||u.tag!==7?(u=Er(f,m.mode,N,k),u.return=m,u):(u=a(u,f),u.return=m,u)}function x(m,u,f){if(typeof u=="string"&&u!==""||typeof u=="number")return u=rl(""+u,m.mode,f),u.return=m,u;if(typeof u=="object"&&u!==null){switch(u.$$typeof){case pn:return f=$n(u.type,u.key,u.props,null,m.mode,f),f.ref=bs(m,null,u),f.return=m,f;case Ur:return u=sl(u,m.mode,f),u.return=m,u;case Qt:var N=u._init;return x(m,N(u._payload),f)}if(Cs(u)||ys(u))return u=Er(u,m.mode,f,null),u.return=m,u;En(m,u)}return null}function g(m,u,f,N){var k=u!==null?u.key:null;if(typeof f=="string"&&f!==""||typeof f=="number")return k!==null?null:o(m,u,""+f,N);if(typeof f=="object"&&f!==null){switch(f.$$typeof){case pn:return f.key===k?c(m,u,f,N):null;case Ur:return f.key===k?d(m,u,f,N):null;case Qt:return k=f._init,g(m,u,k(f._payload),N)}if(Cs(f)||ys(f))return k!==null?null:p(m,u,f,N,null);En(m,f)}return null}function h(m,u,f,N,k){if(typeof N=="string"&&N!==""||typeof N=="number")return m=m.get(f)||null,o(u,m,""+N,k);if(typeof N=="object"&&N!==null){switch(N.$$typeof){case pn:return m=m.get(N.key===null?f:N.key)||null,c(u,m,N,k);case Ur:return m=m.get(N.key===null?f:N.key)||null,d(u,m,N,k);case Qt:var T=N._init;return h(m,u,f,T(N._payload),k)}if(Cs(N)||ys(N))return m=m.get(f)||null,p(u,m,N,k,null);En(u,N)}return null}function j(m,u,f,N){for(var k=null,T=null,R=u,y=u=0,P=null;R!==null&&y<f.length;y++){R.index>y?(P=R,R=null):P=R.sibling;var S=g(m,R,f[y],N);if(S===null){R===null&&(R=P);break}e&&R&&S.alternate===null&&t(m,R),u=l(S,u,y),T===null?k=S:T.sibling=S,T=S,R=P}if(y===f.length)return r(m,R),he&&yr(m,y),k;if(R===null){for(;y<f.length;y++)R=x(m,f[y],N),R!==null&&(u=l(R,u,y),T===null?k=R:T.sibling=R,T=R);return he&&yr(m,y),k}for(R=n(m,R);y<f.length;y++)P=h(R,m,y,f[y],N),P!==null&&(e&&P.alternate!==null&&R.delete(P.key===null?y:P.key),u=l(P,u,y),T===null?k=P:T.sibling=P,T=P);return e&&R.forEach(function(D){return t(m,D)}),he&&yr(m,y),k}function b(m,u,f,N){var k=ys(f);if(typeof k!="function")throw Error(I(150));if(f=k.call(f),f==null)throw Error(I(151));for(var T=k=null,R=u,y=u=0,P=null,S=f.next();R!==null&&!S.done;y++,S=f.next()){R.index>y?(P=R,R=null):P=R.sibling;var D=g(m,R,S.value,N);if(D===null){R===null&&(R=P);break}e&&R&&D.alternate===null&&t(m,R),u=l(D,u,y),T===null?k=D:T.sibling=D,T=D,R=P}if(S.done)return r(m,R),he&&yr(m,y),k;if(R===null){for(;!S.done;y++,S=f.next())S=x(m,S.value,N),S!==null&&(u=l(S,u,y),T===null?k=S:T.sibling=S,T=S);return he&&yr(m,y),k}for(R=n(m,R);!S.done;y++,S=f.next())S=h(R,m,y,S.value,N),S!==null&&(e&&S.alternate!==null&&R.delete(S.key===null?y:S.key),u=l(S,u,y),T===null?k=S:T.sibling=S,T=S);return e&&R.forEach(function(L){return t(m,L)}),he&&yr(m,y),k}function w(m,u,f,N){if(typeof f=="object"&&f!==null&&f.type===Fr&&f.key===null&&(f=f.props.children),typeof f=="object"&&f!==null){switch(f.$$typeof){case pn:e:{for(var k=f.key,T=u;T!==null;){if(T.key===k){if(k=f.type,k===Fr){if(T.tag===7){r(m,T.sibling),u=a(T,f.props.children),u.return=m,m=u;break e}}else if(T.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===Qt&&Uo(k)===T.type){r(m,T.sibling),u=a(T,f.props),u.ref=bs(m,T,f),u.return=m,m=u;break e}r(m,T);break}else t(m,T);T=T.sibling}f.type===Fr?(u=Er(f.props.children,m.mode,N,f.key),u.return=m,m=u):(N=$n(f.type,f.key,f.props,null,m.mode,N),N.ref=bs(m,u,f),N.return=m,m=N)}return i(m);case Ur:e:{for(T=f.key;u!==null;){if(u.key===T)if(u.tag===4&&u.stateNode.containerInfo===f.containerInfo&&u.stateNode.implementation===f.implementation){r(m,u.sibling),u=a(u,f.children||[]),u.return=m,m=u;break e}else{r(m,u);break}else t(m,u);u=u.sibling}u=sl(f,m.mode,N),u.return=m,m=u}return i(m);case Qt:return T=f._init,w(m,u,T(f._payload),N)}if(Cs(f))return j(m,u,f,N);if(ys(f))return b(m,u,f,N);En(m,f)}return typeof f=="string"&&f!==""||typeof f=="number"?(f=""+f,u!==null&&u.tag===6?(r(m,u.sibling),u=a(u,f),u.return=m,m=u):(r(m,u),u=rl(f,m.mode,N),u.return=m,m=u),i(m)):r(m,u)}return w}var as=Od(!0),Dd=Od(!1),ta=pr(null),ra=null,Kr=null,Ai=null;function Ti(){Ai=Kr=ra=null}function Ri(e){var t=ta.current;me(ta),e._currentValue=t}function _l(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function es(e,t){ra=e,Ai=Kr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ye=!0),e.firstContext=null)}function ft(e){var t=e._currentValue;if(Ai!==e)if(e={context:e,memoizedValue:t,next:null},Kr===null){if(ra===null)throw Error(I(308));Kr=e,ra.dependencies={lanes:0,firstContext:e}}else Kr=Kr.next=e;return t}var jr=null;function Ii(e){jr===null?jr=[e]:jr.push(e)}function Pd(e,t,r,n){var a=t.interleaved;return a===null?(r.next=r,Ii(t)):(r.next=a.next,a.next=r),t.interleaved=r,Ht(e,n)}function Ht(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var qt=!1;function Oi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ld(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 Ft(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function lr(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,re&2){var a=n.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),n.pending=t,Ht(e,r)}return a=n.interleaved,a===null?(t.next=t,Ii(n)):(t.next=a.next,a.next=t),n.interleaved=t,Ht(e,r)}function Ln(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,gi(e,r)}}function Fo(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var a=null,l=null;if(r=r.firstBaseUpdate,r!==null){do{var i={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};l===null?a=l=i:l=l.next=i,r=r.next}while(r!==null);l===null?a=l=t:l=l.next=t}else a=l=t;r={baseState:n.baseState,firstBaseUpdate:a,lastBaseUpdate:l,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function sa(e,t,r,n){var a=e.updateQueue;qt=!1;var l=a.firstBaseUpdate,i=a.lastBaseUpdate,o=a.shared.pending;if(o!==null){a.shared.pending=null;var c=o,d=c.next;c.next=null,i===null?l=d:i.next=d,i=c;var p=e.alternate;p!==null&&(p=p.updateQueue,o=p.lastBaseUpdate,o!==i&&(o===null?p.firstBaseUpdate=d:o.next=d,p.lastBaseUpdate=c))}if(l!==null){var x=a.baseState;i=0,p=d=c=null,o=l;do{var g=o.lane,h=o.eventTime;if((n&g)===g){p!==null&&(p=p.next={eventTime:h,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var j=e,b=o;switch(g=t,h=r,b.tag){case 1:if(j=b.payload,typeof j=="function"){x=j.call(h,x,g);break e}x=j;break e;case 3:j.flags=j.flags&-65537|128;case 0:if(j=b.payload,g=typeof j=="function"?j.call(h,x,g):j,g==null)break e;x=ye({},x,g);break e;case 2:qt=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,g=a.effects,g===null?a.effects=[o]:g.push(o))}else h={eventTime:h,lane:g,tag:o.tag,payload:o.payload,callback:o.callback,next:null},p===null?(d=p=h,c=x):p=p.next=h,i|=g;if(o=o.next,o===null){if(o=a.shared.pending,o===null)break;g=o,o=g.next,g.next=null,a.lastBaseUpdate=g,a.shared.pending=null}}while(!0);if(p===null&&(c=x),a.baseState=c,a.firstBaseUpdate=d,a.lastBaseUpdate=p,t=a.shared.interleaved,t!==null){a=t;do i|=a.lane,a=a.next;while(a!==t)}else l===null&&(a.shared.lanes=0);Ar|=i,e.lanes=i,e.memoizedState=x}}function zo(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var n=e[t],a=n.callback;if(a!==null){if(n.callback=null,n=r,typeof a!="function")throw Error(I(191,a));a.call(n)}}}var un={},Rt=pr(un),Qs=pr(un),qs=pr(un);function wr(e){if(e===un)throw Error(I(174));return e}function Di(e,t){switch(ce(qs,t),ce(Qs,e),ce(Rt,un),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:xl(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=xl(t,e)}me(Rt),ce(Rt,t)}function ls(){me(Rt),me(Qs),me(qs)}function _d(e){wr(qs.current);var t=wr(Rt.current),r=xl(t,e.type);t!==r&&(ce(Qs,e),ce(Rt,r))}function Pi(e){Qs.current===e&&(me(Rt),me(Qs))}var xe=pr(0);function na(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==="$?"||r.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)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 Qa=[];function Li(){for(var e=0;e<Qa.length;e++)Qa[e]._workInProgressVersionPrimary=null;Qa.length=0}var _n=Bt.ReactCurrentDispatcher,qa=Bt.ReactCurrentBatchConfig,Cr=0,ge=null,Ee=null,Se=null,aa=!1,Ls=!1,Xs=0,Fp=0;function Me(){throw Error(I(321))}function _i(e,t){if(t===null)return!1;for(var r=0;r<t.length&&r<e.length;r++)if(!Et(e[r],t[r]))return!1;return!0}function Mi(e,t,r,n,a,l){if(Cr=l,ge=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,_n.current=e===null||e.memoizedState===null?Hp:Gp,e=r(n,a),Ls){l=0;do{if(Ls=!1,Xs=0,25<=l)throw Error(I(301));l+=1,Se=Ee=null,t.updateQueue=null,_n.current=Bp,e=r(n,a)}while(Ls)}if(_n.current=la,t=Ee!==null&&Ee.next!==null,Cr=0,Se=Ee=ge=null,aa=!1,t)throw Error(I(300));return e}function Ui(){var e=Xs!==0;return Xs=0,e}function Ct(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Se===null?ge.memoizedState=Se=e:Se=Se.next=e,Se}function ht(){if(Ee===null){var e=ge.alternate;e=e!==null?e.memoizedState:null}else e=Ee.next;var t=Se===null?ge.memoizedState:Se.next;if(t!==null)Se=t,Ee=e;else{if(e===null)throw Error(I(310));Ee=e,e={memoizedState:Ee.memoizedState,baseState:Ee.baseState,baseQueue:Ee.baseQueue,queue:Ee.queue,next:null},Se===null?ge.memoizedState=Se=e:Se=Se.next=e}return Se}function Zs(e,t){return typeof t=="function"?t(e):t}function Xa(e){var t=ht(),r=t.queue;if(r===null)throw Error(I(311));r.lastRenderedReducer=e;var n=Ee,a=n.baseQueue,l=r.pending;if(l!==null){if(a!==null){var i=a.next;a.next=l.next,l.next=i}n.baseQueue=a=l,r.pending=null}if(a!==null){l=a.next,n=n.baseState;var o=i=null,c=null,d=l;do{var p=d.lane;if((Cr&p)===p)c!==null&&(c=c.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),n=d.hasEagerState?d.eagerState:e(n,d.action);else{var x={lane:p,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};c===null?(o=c=x,i=n):c=c.next=x,ge.lanes|=p,Ar|=p}d=d.next}while(d!==null&&d!==l);c===null?i=n:c.next=o,Et(n,t.memoizedState)||(Ye=!0),t.memoizedState=n,t.baseState=i,t.baseQueue=c,r.lastRenderedState=n}if(e=r.interleaved,e!==null){a=e;do l=a.lane,ge.lanes|=l,Ar|=l,a=a.next;while(a!==e)}else a===null&&(r.lanes=0);return[t.memoizedState,r.dispatch]}function Za(e){var t=ht(),r=t.queue;if(r===null)throw Error(I(311));r.lastRenderedReducer=e;var n=r.dispatch,a=r.pending,l=t.memoizedState;if(a!==null){r.pending=null;var i=a=a.next;do l=e(l,i.action),i=i.next;while(i!==a);Et(l,t.memoizedState)||(Ye=!0),t.memoizedState=l,t.baseQueue===null&&(t.baseState=l),r.lastRenderedState=l}return[l,n]}function Md(){}function Ud(e,t){var r=ge,n=ht(),a=t(),l=!Et(n.memoizedState,a);if(l&&(n.memoizedState=a,Ye=!0),n=n.queue,Fi($d.bind(null,r,n,e),[e]),n.getSnapshot!==t||l||Se!==null&&Se.memoizedState.tag&1){if(r.flags|=2048,en(9,zd.bind(null,r,n,a,t),void 0,null),Ce===null)throw Error(I(349));Cr&30||Fd(r,t,a)}return a}function Fd(e,t,r){e.flags|=16384,e={getSnapshot:t,value:r},t=ge.updateQueue,t===null?(t={lastEffect:null,stores:null},ge.updateQueue=t,t.stores=[e]):(r=t.stores,r===null?t.stores=[e]:r.push(e))}function zd(e,t,r,n){t.value=r,t.getSnapshot=n,Vd(t)&&Hd(e)}function $d(e,t,r){return r(function(){Vd(t)&&Hd(e)})}function Vd(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!Et(e,r)}catch{return!0}}function Hd(e){var t=Ht(e,1);t!==null&&bt(t,e,1,-1)}function $o(e){var t=Ct();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Zs,lastRenderedState:e},t.queue=e,e=e.dispatch=Vp.bind(null,ge,e),[t.memoizedState,e]}function en(e,t,r,n){return e={tag:e,create:t,destroy:r,deps:n,next:null},t=ge.updateQueue,t===null?(t={lastEffect:null,stores:null},ge.updateQueue=t,t.lastEffect=e.next=e):(r=t.lastEffect,r===null?t.lastEffect=e.next=e:(n=r.next,r.next=e,e.next=n,t.lastEffect=e)),e}function Gd(){return ht().memoizedState}function Mn(e,t,r,n){var a=Ct();ge.flags|=e,a.memoizedState=en(1|t,r,void 0,n===void 0?null:n)}function wa(e,t,r,n){var a=ht();n=n===void 0?null:n;var l=void 0;if(Ee!==null){var i=Ee.memoizedState;if(l=i.destroy,n!==null&&_i(n,i.deps)){a.memoizedState=en(t,r,l,n);return}}ge.flags|=e,a.memoizedState=en(1|t,r,l,n)}function Vo(e,t){return Mn(8390656,8,e,t)}function Fi(e,t){return wa(2048,8,e,t)}function Bd(e,t){return wa(4,2,e,t)}function Wd(e,t){return wa(4,4,e,t)}function Kd(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 Yd(e,t,r){return r=r!=null?r.concat([e]):null,wa(4,4,Kd.bind(null,t,e),r)}function zi(){}function Jd(e,t){var r=ht();t=t===void 0?null:t;var n=r.memoizedState;return n!==null&&t!==null&&_i(t,n[1])?n[0]:(r.memoizedState=[e,t],e)}function Qd(e,t){var r=ht();t=t===void 0?null:t;var n=r.memoizedState;return n!==null&&t!==null&&_i(t,n[1])?n[0]:(e=e(),r.memoizedState=[e,t],e)}function qd(e,t,r){return Cr&21?(Et(r,t)||(r=rd(),ge.lanes|=r,Ar|=r,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Ye=!0),e.memoizedState=r)}function zp(e,t){var r=le;le=r!==0&&4>r?r:4,e(!0);var n=qa.transition;qa.transition={};try{e(!1),t()}finally{le=r,qa.transition=n}}function Xd(){return ht().memoizedState}function $p(e,t,r){var n=or(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},Zd(e))eu(t,r);else if(r=Pd(e,t,r,n),r!==null){var a=He();bt(r,e,n,a),tu(r,t,n)}}function Vp(e,t,r){var n=or(e),a={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(Zd(e))eu(t,a);else{var l=e.alternate;if(e.lanes===0&&(l===null||l.lanes===0)&&(l=t.lastRenderedReducer,l!==null))try{var i=t.lastRenderedState,o=l(i,r);if(a.hasEagerState=!0,a.eagerState=o,Et(o,i)){var c=t.interleaved;c===null?(a.next=a,Ii(t)):(a.next=c.next,c.next=a),t.interleaved=a;return}}catch{}finally{}r=Pd(e,t,a,n),r!==null&&(a=He(),bt(r,e,n,a),tu(r,t,n))}}function Zd(e){var t=e.alternate;return e===ge||t!==null&&t===ge}function eu(e,t){Ls=aa=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function tu(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,gi(e,r)}}var la={readContext:ft,useCallback:Me,useContext:Me,useEffect:Me,useImperativeHandle:Me,useInsertionEffect:Me,useLayoutEffect:Me,useMemo:Me,useReducer:Me,useRef:Me,useState:Me,useDebugValue:Me,useDeferredValue:Me,useTransition:Me,useMutableSource:Me,useSyncExternalStore:Me,useId:Me,unstable_isNewReconciler:!1},Hp={readContext:ft,useCallback:function(e,t){return Ct().memoizedState=[e,t===void 0?null:t],e},useContext:ft,useEffect:Vo,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,Mn(4194308,4,Kd.bind(null,t,e),r)},useLayoutEffect:function(e,t){return Mn(4194308,4,e,t)},useInsertionEffect:function(e,t){return Mn(4,2,e,t)},useMemo:function(e,t){var r=Ct();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=Ct();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=$p.bind(null,ge,e),[n.memoizedState,e]},useRef:function(e){var t=Ct();return e={current:e},t.memoizedState=e},useState:$o,useDebugValue:zi,useDeferredValue:function(e){return Ct().memoizedState=e},useTransition:function(){var e=$o(!1),t=e[0];return e=zp.bind(null,e[1]),Ct().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=ge,a=Ct();if(he){if(r===void 0)throw Error(I(407));r=r()}else{if(r=t(),Ce===null)throw Error(I(349));Cr&30||Fd(n,t,r)}a.memoizedState=r;var l={value:r,getSnapshot:t};return a.queue=l,Vo($d.bind(null,n,l,e),[e]),n.flags|=2048,en(9,zd.bind(null,n,l,r,t),void 0,null),r},useId:function(){var e=Ct(),t=Ce.identifierPrefix;if(he){var r=Ut,n=Mt;r=(n&~(1<<32-wt(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=Xs++,0<r&&(t+="H"+r.toString(32)),t+=":"}else r=Fp++,t=":"+t+"r"+r.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},Gp={readContext:ft,useCallback:Jd,useContext:ft,useEffect:Fi,useImperativeHandle:Yd,useInsertionEffect:Bd,useLayoutEffect:Wd,useMemo:Qd,useReducer:Xa,useRef:Gd,useState:function(){return Xa(Zs)},useDebugValue:zi,useDeferredValue:function(e){var t=ht();return qd(t,Ee.memoizedState,e)},useTransition:function(){var e=Xa(Zs)[0],t=ht().memoizedState;return[e,t]},useMutableSource:Md,useSyncExternalStore:Ud,useId:Xd,unstable_isNewReconciler:!1},Bp={readContext:ft,useCallback:Jd,useContext:ft,useEffect:Fi,useImperativeHandle:Yd,useInsertionEffect:Bd,useLayoutEffect:Wd,useMemo:Qd,useReducer:Za,useRef:Gd,useState:function(){return Za(Zs)},useDebugValue:zi,useDeferredValue:function(e){var t=ht();return Ee===null?t.memoizedState=e:qd(t,Ee.memoizedState,e)},useTransition:function(){var e=Za(Zs)[0],t=ht().memoizedState;return[e,t]},useMutableSource:Md,useSyncExternalStore:Ud,useId:Xd,unstable_isNewReconciler:!1};function vt(e,t){if(e&&e.defaultProps){t=ye({},t),e=e.defaultProps;for(var r in e)t[r]===void 0&&(t[r]=e[r]);return t}return t}function Ml(e,t,r,n){t=e.memoizedState,r=r(n,t),r=r==null?t:ye({},t,r),e.memoizedState=r,e.lanes===0&&(e.updateQueue.baseState=r)}var ba={isMounted:function(e){return(e=e._reactInternals)?Ir(e)===e:!1},enqueueSetState:function(e,t,r){e=e._reactInternals;var n=He(),a=or(e),l=Ft(n,a);l.payload=t,r!=null&&(l.callback=r),t=lr(e,l,a),t!==null&&(bt(t,e,a,n),Ln(t,e,a))},enqueueReplaceState:function(e,t,r){e=e._reactInternals;var n=He(),a=or(e),l=Ft(n,a);l.tag=1,l.payload=t,r!=null&&(l.callback=r),t=lr(e,l,a),t!==null&&(bt(t,e,a,n),Ln(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var r=He(),n=or(e),a=Ft(r,n);a.tag=2,t!=null&&(a.callback=t),t=lr(e,a,n),t!==null&&(bt(t,e,n,r),Ln(t,e,n))}};function Ho(e,t,r,n,a,l,i){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(n,l,i):t.prototype&&t.prototype.isPureReactComponent?!Ws(r,n)||!Ws(a,l):!0}function ru(e,t,r){var n=!1,a=ur,l=t.contextType;return typeof l=="object"&&l!==null?l=ft(l):(a=Qe(t)?kr:ze.current,n=t.contextTypes,l=(n=n!=null)?ss(e,a):ur),t=new t(r,l),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=ba,e.stateNode=t,t._reactInternals=e,n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=l),t}function Go(e,t,r,n){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(r,n),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(r,n),t.state!==e&&ba.enqueueReplaceState(t,t.state,null)}function Ul(e,t,r,n){var a=e.stateNode;a.props=r,a.state=e.memoizedState,a.refs={},Oi(e);var l=t.contextType;typeof l=="object"&&l!==null?a.context=ft(l):(l=Qe(t)?kr:ze.current,a.context=ss(e,l)),a.state=e.memoizedState,l=t.getDerivedStateFromProps,typeof l=="function"&&(Ml(e,t,l,r),a.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof a.getSnapshotBeforeUpdate=="function"||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(t=a.state,typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount(),t!==a.state&&ba.enqueueReplaceState(a,a.state,null),sa(e,r,a,n),a.state=e.memoizedState),typeof a.componentDidMount=="function"&&(e.flags|=4194308)}function is(e,t){try{var r="",n=t;do r+=vm(n),n=n.return;while(n);var a=r}catch(l){a=`
39
+ Error generating stack: `+l.message+`
40
+ `+l.stack}return{value:e,source:t,stack:a,digest:null}}function el(e,t,r){return{value:e,source:null,stack:r??null,digest:t??null}}function Fl(e,t){try{console.error(t.value)}catch(r){setTimeout(function(){throw r})}}var Wp=typeof WeakMap=="function"?WeakMap:Map;function su(e,t,r){r=Ft(-1,r),r.tag=3,r.payload={element:null};var n=t.value;return r.callback=function(){oa||(oa=!0,Jl=n),Fl(e,t)},r}function nu(e,t,r){r=Ft(-1,r),r.tag=3;var n=e.type.getDerivedStateFromError;if(typeof n=="function"){var a=t.value;r.payload=function(){return n(a)},r.callback=function(){Fl(e,t)}}var l=e.stateNode;return l!==null&&typeof l.componentDidCatch=="function"&&(r.callback=function(){Fl(e,t),typeof n!="function"&&(ir===null?ir=new Set([this]):ir.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),r}function Bo(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new Wp;var a=new Set;n.set(t,a)}else a=n.get(t),a===void 0&&(a=new Set,n.set(t,a));a.has(r)||(a.add(r),e=lf.bind(null,e,t,r),t.then(e,e))}function Wo(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 Ko(e,t,r,n,a){return e.mode&1?(e.flags|=65536,e.lanes=a,e):(e===t?e.flags|=65536:(e.flags|=128,r.flags|=131072,r.flags&=-52805,r.tag===1&&(r.alternate===null?r.tag=17:(t=Ft(-1,1),t.tag=2,lr(r,t,1))),r.lanes|=1),e)}var Kp=Bt.ReactCurrentOwner,Ye=!1;function Ve(e,t,r,n){t.child=e===null?Dd(t,null,r,n):as(t,e.child,r,n)}function Yo(e,t,r,n,a){r=r.render;var l=t.ref;return es(t,a),n=Mi(e,t,r,n,l,a),r=Ui(),e!==null&&!Ye?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Gt(e,t,a)):(he&&r&&ki(t),t.flags|=1,Ve(e,t,n,a),t.child)}function Jo(e,t,r,n,a){if(e===null){var l=r.type;return typeof l=="function"&&!Yi(l)&&l.defaultProps===void 0&&r.compare===null&&r.defaultProps===void 0?(t.tag=15,t.type=l,au(e,t,l,n,a)):(e=$n(r.type,null,n,t,t.mode,a),e.ref=t.ref,e.return=t,t.child=e)}if(l=e.child,!(e.lanes&a)){var i=l.memoizedProps;if(r=r.compare,r=r!==null?r:Ws,r(i,n)&&e.ref===t.ref)return Gt(e,t,a)}return t.flags|=1,e=cr(l,n),e.ref=t.ref,e.return=t,t.child=e}function au(e,t,r,n,a){if(e!==null){var l=e.memoizedProps;if(Ws(l,n)&&e.ref===t.ref)if(Ye=!1,t.pendingProps=n=l,(e.lanes&a)!==0)e.flags&131072&&(Ye=!0);else return t.lanes=e.lanes,Gt(e,t,a)}return zl(e,t,r,n,a)}function lu(e,t,r){var n=t.pendingProps,a=n.children,l=e!==null?e.memoizedState:null;if(n.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ce(Jr,et),et|=r;else{if(!(r&1073741824))return e=l!==null?l.baseLanes|r:r,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ce(Jr,et),et|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},n=l!==null?l.baseLanes:r,ce(Jr,et),et|=n}else l!==null?(n=l.baseLanes|r,t.memoizedState=null):n=r,ce(Jr,et),et|=n;return Ve(e,t,a,r),t.child}function iu(e,t){var r=t.ref;(e===null&&r!==null||e!==null&&e.ref!==r)&&(t.flags|=512,t.flags|=2097152)}function zl(e,t,r,n,a){var l=Qe(r)?kr:ze.current;return l=ss(t,l),es(t,a),r=Mi(e,t,r,n,l,a),n=Ui(),e!==null&&!Ye?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Gt(e,t,a)):(he&&n&&ki(t),t.flags|=1,Ve(e,t,r,a),t.child)}function Qo(e,t,r,n,a){if(Qe(r)){var l=!0;Xn(t)}else l=!1;if(es(t,a),t.stateNode===null)Un(e,t),ru(t,r,n),Ul(t,r,n,a),n=!0;else if(e===null){var i=t.stateNode,o=t.memoizedProps;i.props=o;var c=i.context,d=r.contextType;typeof d=="object"&&d!==null?d=ft(d):(d=Qe(r)?kr:ze.current,d=ss(t,d));var p=r.getDerivedStateFromProps,x=typeof p=="function"||typeof i.getSnapshotBeforeUpdate=="function";x||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(o!==n||c!==d)&&Go(t,i,n,d),qt=!1;var g=t.memoizedState;i.state=g,sa(t,n,i,a),c=t.memoizedState,o!==n||g!==c||Je.current||qt?(typeof p=="function"&&(Ml(t,r,p,n),c=t.memoizedState),(o=qt||Ho(t,r,o,n,g,c,d))?(x||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=n,t.memoizedState=c),i.props=n,i.state=c,i.context=d,n=o):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),n=!1)}else{i=t.stateNode,Ld(e,t),o=t.memoizedProps,d=t.type===t.elementType?o:vt(t.type,o),i.props=d,x=t.pendingProps,g=i.context,c=r.contextType,typeof c=="object"&&c!==null?c=ft(c):(c=Qe(r)?kr:ze.current,c=ss(t,c));var h=r.getDerivedStateFromProps;(p=typeof h=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(o!==x||g!==c)&&Go(t,i,n,c),qt=!1,g=t.memoizedState,i.state=g,sa(t,n,i,a);var j=t.memoizedState;o!==x||g!==j||Je.current||qt?(typeof h=="function"&&(Ml(t,r,h,n),j=t.memoizedState),(d=qt||Ho(t,r,d,n,g,j,c)||!1)?(p||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(n,j,c),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(n,j,c)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||o===e.memoizedProps&&g===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||o===e.memoizedProps&&g===e.memoizedState||(t.flags|=1024),t.memoizedProps=n,t.memoizedState=j),i.props=n,i.state=j,i.context=c,n=d):(typeof i.componentDidUpdate!="function"||o===e.memoizedProps&&g===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||o===e.memoizedProps&&g===e.memoizedState||(t.flags|=1024),n=!1)}return $l(e,t,r,n,l,a)}function $l(e,t,r,n,a,l){iu(e,t);var i=(t.flags&128)!==0;if(!n&&!i)return a&&Lo(t,r,!1),Gt(e,t,l);n=t.stateNode,Kp.current=t;var o=i&&typeof r.getDerivedStateFromError!="function"?null:n.render();return t.flags|=1,e!==null&&i?(t.child=as(t,e.child,null,l),t.child=as(t,null,o,l)):Ve(e,t,o,l),t.memoizedState=n.state,a&&Lo(t,r,!0),t.child}function ou(e){var t=e.stateNode;t.pendingContext?Po(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Po(e,t.context,!1),Di(e,t.containerInfo)}function qo(e,t,r,n,a){return ns(),Ci(a),t.flags|=256,Ve(e,t,r,n),t.child}var Vl={dehydrated:null,treeContext:null,retryLane:0};function Hl(e){return{baseLanes:e,cachePool:null,transitions:null}}function cu(e,t,r){var n=t.pendingProps,a=xe.current,l=!1,i=(t.flags&128)!==0,o;if((o=i)||(o=e!==null&&e.memoizedState===null?!1:(a&2)!==0),o?(l=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(a|=1),ce(xe,a&1),e===null)return Ll(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(i=n.children,e=n.fallback,l?(n=t.mode,l=t.child,i={mode:"hidden",children:i},!(n&1)&&l!==null?(l.childLanes=0,l.pendingProps=i):l=Sa(i,n,0,null),e=Er(e,n,r,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Hl(r),t.memoizedState=Vl,e):$i(t,i));if(a=e.memoizedState,a!==null&&(o=a.dehydrated,o!==null))return Yp(e,t,i,n,o,a,r);if(l){l=n.fallback,i=t.mode,a=e.child,o=a.sibling;var c={mode:"hidden",children:n.children};return!(i&1)&&t.child!==a?(n=t.child,n.childLanes=0,n.pendingProps=c,t.deletions=null):(n=cr(a,c),n.subtreeFlags=a.subtreeFlags&14680064),o!==null?l=cr(o,l):(l=Er(l,i,r,null),l.flags|=2),l.return=t,n.return=t,n.sibling=l,t.child=n,n=l,l=t.child,i=e.child.memoizedState,i=i===null?Hl(r):{baseLanes:i.baseLanes|r,cachePool:null,transitions:i.transitions},l.memoizedState=i,l.childLanes=e.childLanes&~r,t.memoizedState=Vl,n}return l=e.child,e=l.sibling,n=cr(l,{mode:"visible",children:n.children}),!(t.mode&1)&&(n.lanes=r),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n}function $i(e,t){return t=Sa({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function kn(e,t,r,n){return n!==null&&Ci(n),as(t,e.child,null,r),e=$i(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Yp(e,t,r,n,a,l,i){if(r)return t.flags&256?(t.flags&=-257,n=el(Error(I(422))),kn(e,t,i,n)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(l=n.fallback,a=t.mode,n=Sa({mode:"visible",children:n.children},a,0,null),l=Er(l,a,i,null),l.flags|=2,n.return=t,l.return=t,n.sibling=l,t.child=n,t.mode&1&&as(t,e.child,null,i),t.child.memoizedState=Hl(i),t.memoizedState=Vl,l);if(!(t.mode&1))return kn(e,t,i,null);if(a.data==="$!"){if(n=a.nextSibling&&a.nextSibling.dataset,n)var o=n.dgst;return n=o,l=Error(I(419)),n=el(l,n,void 0),kn(e,t,i,n)}if(o=(i&e.childLanes)!==0,Ye||o){if(n=Ce,n!==null){switch(i&-i){case 4:a=2;break;case 16:a=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:a=32;break;case 536870912:a=268435456;break;default:a=0}a=a&(n.suspendedLanes|i)?0:a,a!==0&&a!==l.retryLane&&(l.retryLane=a,Ht(e,a),bt(n,e,a,-1))}return Ki(),n=el(Error(I(421))),kn(e,t,i,n)}return a.data==="$?"?(t.flags|=128,t.child=e.child,t=of.bind(null,e),a._reactRetry=t,null):(e=l.treeContext,tt=ar(a.nextSibling),rt=t,he=!0,jt=null,e!==null&&(ct[dt++]=Mt,ct[dt++]=Ut,ct[dt++]=Sr,Mt=e.id,Ut=e.overflow,Sr=t),t=$i(t,n.children),t.flags|=4096,t)}function Xo(e,t,r){e.lanes|=t;var n=e.alternate;n!==null&&(n.lanes|=t),_l(e.return,t,r)}function tl(e,t,r,n,a){var l=e.memoizedState;l===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:n,tail:r,tailMode:a}:(l.isBackwards=t,l.rendering=null,l.renderingStartTime=0,l.last=n,l.tail=r,l.tailMode=a)}function du(e,t,r){var n=t.pendingProps,a=n.revealOrder,l=n.tail;if(Ve(e,t,n.children,r),n=xe.current,n&2)n=n&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Xo(e,r,t);else if(e.tag===19)Xo(e,r,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}n&=1}if(ce(xe,n),!(t.mode&1))t.memoizedState=null;else switch(a){case"forwards":for(r=t.child,a=null;r!==null;)e=r.alternate,e!==null&&na(e)===null&&(a=r),r=r.sibling;r=a,r===null?(a=t.child,t.child=null):(a=r.sibling,r.sibling=null),tl(t,!1,a,r,l);break;case"backwards":for(r=null,a=t.child,t.child=null;a!==null;){if(e=a.alternate,e!==null&&na(e)===null){t.child=a;break}e=a.sibling,a.sibling=r,r=a,a=e}tl(t,!0,r,null,l);break;case"together":tl(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Un(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Gt(e,t,r){if(e!==null&&(t.dependencies=e.dependencies),Ar|=t.lanes,!(r&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(I(153));if(t.child!==null){for(e=t.child,r=cr(e,e.pendingProps),t.child=r,r.return=t;e.sibling!==null;)e=e.sibling,r=r.sibling=cr(e,e.pendingProps),r.return=t;r.sibling=null}return t.child}function Jp(e,t,r){switch(t.tag){case 3:ou(t),ns();break;case 5:_d(t);break;case 1:Qe(t.type)&&Xn(t);break;case 4:Di(t,t.stateNode.containerInfo);break;case 10:var n=t.type._context,a=t.memoizedProps.value;ce(ta,n._currentValue),n._currentValue=a;break;case 13:if(n=t.memoizedState,n!==null)return n.dehydrated!==null?(ce(xe,xe.current&1),t.flags|=128,null):r&t.child.childLanes?cu(e,t,r):(ce(xe,xe.current&1),e=Gt(e,t,r),e!==null?e.sibling:null);ce(xe,xe.current&1);break;case 19:if(n=(r&t.childLanes)!==0,e.flags&128){if(n)return du(e,t,r);t.flags|=128}if(a=t.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),ce(xe,xe.current),n)break;return null;case 22:case 23:return t.lanes=0,lu(e,t,r)}return Gt(e,t,r)}var uu,Gl,mu,pu;uu=function(e,t){for(var r=t.child;r!==null;){if(r.tag===5||r.tag===6)e.appendChild(r.stateNode);else if(r.tag!==4&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break;for(;r.sibling===null;){if(r.return===null||r.return===t)return;r=r.return}r.sibling.return=r.return,r=r.sibling}};Gl=function(){};mu=function(e,t,r,n){var a=e.memoizedProps;if(a!==n){e=t.stateNode,wr(Rt.current);var l=null;switch(r){case"input":a=ml(e,a),n=ml(e,n),l=[];break;case"select":a=ye({},a,{value:void 0}),n=ye({},n,{value:void 0}),l=[];break;case"textarea":a=hl(e,a),n=hl(e,n),l=[];break;default:typeof a.onClick!="function"&&typeof n.onClick=="function"&&(e.onclick=Qn)}gl(r,n);var i;r=null;for(d in a)if(!n.hasOwnProperty(d)&&a.hasOwnProperty(d)&&a[d]!=null)if(d==="style"){var o=a[d];for(i in o)o.hasOwnProperty(i)&&(r||(r={}),r[i]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(Fs.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in n){var c=n[d];if(o=a!=null?a[d]:void 0,n.hasOwnProperty(d)&&c!==o&&(c!=null||o!=null))if(d==="style")if(o){for(i in o)!o.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(r||(r={}),r[i]="");for(i in c)c.hasOwnProperty(i)&&o[i]!==c[i]&&(r||(r={}),r[i]=c[i])}else r||(l||(l=[]),l.push(d,r)),r=c;else d==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,o=o?o.__html:void 0,c!=null&&o!==c&&(l=l||[]).push(d,c)):d==="children"?typeof c!="string"&&typeof c!="number"||(l=l||[]).push(d,""+c):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(Fs.hasOwnProperty(d)?(c!=null&&d==="onScroll"&&ue("scroll",e),l||o===c||(l=[])):(l=l||[]).push(d,c))}r&&(l=l||[]).push("style",r);var d=l;(t.updateQueue=d)&&(t.flags|=4)}};pu=function(e,t,r,n){r!==n&&(t.flags|=4)};function Es(e,t){if(!he)switch(e.tailMode){case"hidden":t=e.tail;for(var r=null;t!==null;)t.alternate!==null&&(r=t),t=t.sibling;r===null?e.tail=null:r.sibling=null;break;case"collapsed":r=e.tail;for(var n=null;r!==null;)r.alternate!==null&&(n=r),r=r.sibling;n===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:n.sibling=null}}function Ue(e){var t=e.alternate!==null&&e.alternate.child===e.child,r=0,n=0;if(t)for(var a=e.child;a!==null;)r|=a.lanes|a.childLanes,n|=a.subtreeFlags&14680064,n|=a.flags&14680064,a.return=e,a=a.sibling;else for(a=e.child;a!==null;)r|=a.lanes|a.childLanes,n|=a.subtreeFlags,n|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=n,e.childLanes=r,t}function Qp(e,t,r){var n=t.pendingProps;switch(Si(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ue(t),null;case 1:return Qe(t.type)&&qn(),Ue(t),null;case 3:return n=t.stateNode,ls(),me(Je),me(ze),Li(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(bn(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,jt!==null&&(Xl(jt),jt=null))),Gl(e,t),Ue(t),null;case 5:Pi(t);var a=wr(qs.current);if(r=t.type,e!==null&&t.stateNode!=null)mu(e,t,r,n,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!n){if(t.stateNode===null)throw Error(I(166));return Ue(t),null}if(e=wr(Rt.current),bn(t)){n=t.stateNode,r=t.type;var l=t.memoizedProps;switch(n[At]=t,n[Js]=l,e=(t.mode&1)!==0,r){case"dialog":ue("cancel",n),ue("close",n);break;case"iframe":case"object":case"embed":ue("load",n);break;case"video":case"audio":for(a=0;a<Ts.length;a++)ue(Ts[a],n);break;case"source":ue("error",n);break;case"img":case"image":case"link":ue("error",n),ue("load",n);break;case"details":ue("toggle",n);break;case"input":lo(n,l),ue("invalid",n);break;case"select":n._wrapperState={wasMultiple:!!l.multiple},ue("invalid",n);break;case"textarea":oo(n,l),ue("invalid",n)}gl(r,l),a=null;for(var i in l)if(l.hasOwnProperty(i)){var o=l[i];i==="children"?typeof o=="string"?n.textContent!==o&&(l.suppressHydrationWarning!==!0&&wn(n.textContent,o,e),a=["children",o]):typeof o=="number"&&n.textContent!==""+o&&(l.suppressHydrationWarning!==!0&&wn(n.textContent,o,e),a=["children",""+o]):Fs.hasOwnProperty(i)&&o!=null&&i==="onScroll"&&ue("scroll",n)}switch(r){case"input":fn(n),io(n,l,!0);break;case"textarea":fn(n),co(n);break;case"select":case"option":break;default:typeof l.onClick=="function"&&(n.onclick=Qn)}n=a,t.updateQueue=n,n!==null&&(t.flags|=4)}else{i=a.nodeType===9?a:a.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=$c(r)),e==="http://www.w3.org/1999/xhtml"?r==="script"?(e=i.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=i.createElement(r,{is:n.is}):(e=i.createElement(r),r==="select"&&(i=e,n.multiple?i.multiple=!0:n.size&&(i.size=n.size))):e=i.createElementNS(e,r),e[At]=t,e[Js]=n,uu(e,t,!1,!1),t.stateNode=e;e:{switch(i=yl(r,n),r){case"dialog":ue("cancel",e),ue("close",e),a=n;break;case"iframe":case"object":case"embed":ue("load",e),a=n;break;case"video":case"audio":for(a=0;a<Ts.length;a++)ue(Ts[a],e);a=n;break;case"source":ue("error",e),a=n;break;case"img":case"image":case"link":ue("error",e),ue("load",e),a=n;break;case"details":ue("toggle",e),a=n;break;case"input":lo(e,n),a=ml(e,n),ue("invalid",e);break;case"option":a=n;break;case"select":e._wrapperState={wasMultiple:!!n.multiple},a=ye({},n,{value:void 0}),ue("invalid",e);break;case"textarea":oo(e,n),a=hl(e,n),ue("invalid",e);break;default:a=n}gl(r,a),o=a;for(l in o)if(o.hasOwnProperty(l)){var c=o[l];l==="style"?Gc(e,c):l==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&Vc(e,c)):l==="children"?typeof c=="string"?(r!=="textarea"||c!=="")&&zs(e,c):typeof c=="number"&&zs(e,""+c):l!=="suppressContentEditableWarning"&&l!=="suppressHydrationWarning"&&l!=="autoFocus"&&(Fs.hasOwnProperty(l)?c!=null&&l==="onScroll"&&ue("scroll",e):c!=null&&ui(e,l,c,i))}switch(r){case"input":fn(e),io(e,n,!1);break;case"textarea":fn(e),co(e);break;case"option":n.value!=null&&e.setAttribute("value",""+dr(n.value));break;case"select":e.multiple=!!n.multiple,l=n.value,l!=null?Qr(e,!!n.multiple,l,!1):n.defaultValue!=null&&Qr(e,!!n.multiple,n.defaultValue,!0);break;default:typeof a.onClick=="function"&&(e.onclick=Qn)}switch(r){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}}n&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Ue(t),null;case 6:if(e&&t.stateNode!=null)pu(e,t,e.memoizedProps,n);else{if(typeof n!="string"&&t.stateNode===null)throw Error(I(166));if(r=wr(qs.current),wr(Rt.current),bn(t)){if(n=t.stateNode,r=t.memoizedProps,n[At]=t,(l=n.nodeValue!==r)&&(e=rt,e!==null))switch(e.tag){case 3:wn(n.nodeValue,r,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&wn(n.nodeValue,r,(e.mode&1)!==0)}l&&(t.flags|=4)}else n=(r.nodeType===9?r:r.ownerDocument).createTextNode(n),n[At]=t,t.stateNode=n}return Ue(t),null;case 13:if(me(xe),n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(he&&tt!==null&&t.mode&1&&!(t.flags&128))Id(),ns(),t.flags|=98560,l=!1;else if(l=bn(t),n!==null&&n.dehydrated!==null){if(e===null){if(!l)throw Error(I(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(I(317));l[At]=t}else ns(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ue(t),l=!1}else jt!==null&&(Xl(jt),jt=null),l=!0;if(!l)return t.flags&65536?t:null}return t.flags&128?(t.lanes=r,t):(n=n!==null,n!==(e!==null&&e.memoizedState!==null)&&n&&(t.child.flags|=8192,t.mode&1&&(e===null||xe.current&1?ke===0&&(ke=3):Ki())),t.updateQueue!==null&&(t.flags|=4),Ue(t),null);case 4:return ls(),Gl(e,t),e===null&&Ks(t.stateNode.containerInfo),Ue(t),null;case 10:return Ri(t.type._context),Ue(t),null;case 17:return Qe(t.type)&&qn(),Ue(t),null;case 19:if(me(xe),l=t.memoizedState,l===null)return Ue(t),null;if(n=(t.flags&128)!==0,i=l.rendering,i===null)if(n)Es(l,!1);else{if(ke!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(i=na(e),i!==null){for(t.flags|=128,Es(l,!1),n=i.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),t.subtreeFlags=0,n=r,r=t.child;r!==null;)l=r,e=n,l.flags&=14680066,i=l.alternate,i===null?(l.childLanes=0,l.lanes=e,l.child=null,l.subtreeFlags=0,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=i.childLanes,l.lanes=i.lanes,l.child=i.child,l.subtreeFlags=0,l.deletions=null,l.memoizedProps=i.memoizedProps,l.memoizedState=i.memoizedState,l.updateQueue=i.updateQueue,l.type=i.type,e=i.dependencies,l.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),r=r.sibling;return ce(xe,xe.current&1|2),t.child}e=e.sibling}l.tail!==null&&we()>os&&(t.flags|=128,n=!0,Es(l,!1),t.lanes=4194304)}else{if(!n)if(e=na(i),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),Es(l,!0),l.tail===null&&l.tailMode==="hidden"&&!i.alternate&&!he)return Ue(t),null}else 2*we()-l.renderingStartTime>os&&r!==1073741824&&(t.flags|=128,n=!0,Es(l,!1),t.lanes=4194304);l.isBackwards?(i.sibling=t.child,t.child=i):(r=l.last,r!==null?r.sibling=i:t.child=i,l.last=i)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=we(),t.sibling=null,r=xe.current,ce(xe,n?r&1|2:r&1),t):(Ue(t),null);case 22:case 23:return Wi(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?et&1073741824&&(Ue(t),t.subtreeFlags&6&&(t.flags|=8192)):Ue(t),null;case 24:return null;case 25:return null}throw Error(I(156,t.tag))}function qp(e,t){switch(Si(t),t.tag){case 1:return Qe(t.type)&&qn(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ls(),me(Je),me(ze),Li(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Pi(t),null;case 13:if(me(xe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(I(340));ns()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return me(xe),null;case 4:return ls(),null;case 10:return Ri(t.type._context),null;case 22:case 23:return Wi(),null;case 24:return null;default:return null}}var Sn=!1,Fe=!1,Xp=typeof WeakSet=="function"?WeakSet:Set,U=null;function Yr(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){je(e,t,n)}else r.current=null}function Bl(e,t,r){try{r()}catch(n){je(e,t,n)}}var Zo=!1;function Zp(e,t){if(Al=Kn,e=yd(),Ei(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var a=n.anchorOffset,l=n.focusNode;n=n.focusOffset;try{r.nodeType,l.nodeType}catch{r=null;break e}var i=0,o=-1,c=-1,d=0,p=0,x=e,g=null;t:for(;;){for(var h;x!==r||a!==0&&x.nodeType!==3||(o=i+a),x!==l||n!==0&&x.nodeType!==3||(c=i+n),x.nodeType===3&&(i+=x.nodeValue.length),(h=x.firstChild)!==null;)g=x,x=h;for(;;){if(x===e)break t;if(g===r&&++d===a&&(o=i),g===l&&++p===n&&(c=i),(h=x.nextSibling)!==null)break;x=g,g=x.parentNode}x=h}r=o===-1||c===-1?null:{start:o,end:c}}else r=null}r=r||{start:0,end:0}}else r=null;for(Tl={focusedElem:e,selectionRange:r},Kn=!1,U=t;U!==null;)if(t=U,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,U=e;else for(;U!==null;){t=U;try{var j=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(j!==null){var b=j.memoizedProps,w=j.memoizedState,m=t.stateNode,u=m.getSnapshotBeforeUpdate(t.elementType===t.type?b:vt(t.type,b),w);m.__reactInternalSnapshotBeforeUpdate=u}break;case 3:var f=t.stateNode.containerInfo;f.nodeType===1?f.textContent="":f.nodeType===9&&f.documentElement&&f.removeChild(f.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(I(163))}}catch(N){je(t,t.return,N)}if(e=t.sibling,e!==null){e.return=t.return,U=e;break}U=t.return}return j=Zo,Zo=!1,j}function _s(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var a=n=n.next;do{if((a.tag&e)===e){var l=a.destroy;a.destroy=void 0,l!==void 0&&Bl(t,r,l)}a=a.next}while(a!==n)}}function Ea(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function Wl(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function fu(e){var t=e.alternate;t!==null&&(e.alternate=null,fu(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[At],delete t[Js],delete t[Ol],delete t[Lp],delete t[_p])),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 hu(e){return e.tag===5||e.tag===3||e.tag===4}function ec(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||hu(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 Kl(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Qn));else if(n!==4&&(e=e.child,e!==null))for(Kl(e,t,r),e=e.sibling;e!==null;)Kl(e,t,r),e=e.sibling}function Yl(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(Yl(e,t,r),e=e.sibling;e!==null;)Yl(e,t,r),e=e.sibling}var Te=null,Nt=!1;function Jt(e,t,r){for(r=r.child;r!==null;)xu(e,t,r),r=r.sibling}function xu(e,t,r){if(Tt&&typeof Tt.onCommitFiberUnmount=="function")try{Tt.onCommitFiberUnmount(xa,r)}catch{}switch(r.tag){case 5:Fe||Yr(r,t);case 6:var n=Te,a=Nt;Te=null,Jt(e,t,r),Te=n,Nt=a,Te!==null&&(Nt?(e=Te,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Te.removeChild(r.stateNode));break;case 18:Te!==null&&(Nt?(e=Te,r=r.stateNode,e.nodeType===8?Ya(e.parentNode,r):e.nodeType===1&&Ya(e,r),Gs(e)):Ya(Te,r.stateNode));break;case 4:n=Te,a=Nt,Te=r.stateNode.containerInfo,Nt=!0,Jt(e,t,r),Te=n,Nt=a;break;case 0:case 11:case 14:case 15:if(!Fe&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){a=n=n.next;do{var l=a,i=l.destroy;l=l.tag,i!==void 0&&(l&2||l&4)&&Bl(r,t,i),a=a.next}while(a!==n)}Jt(e,t,r);break;case 1:if(!Fe&&(Yr(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(o){je(r,t,o)}Jt(e,t,r);break;case 21:Jt(e,t,r);break;case 22:r.mode&1?(Fe=(n=Fe)||r.memoizedState!==null,Jt(e,t,r),Fe=n):Jt(e,t,r);break;default:Jt(e,t,r)}}function tc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new Xp),t.forEach(function(n){var a=cf.bind(null,e,n);r.has(n)||(r.add(n),n.then(a,a))})}}function yt(e,t){var r=t.deletions;if(r!==null)for(var n=0;n<r.length;n++){var a=r[n];try{var l=e,i=t,o=i;e:for(;o!==null;){switch(o.tag){case 5:Te=o.stateNode,Nt=!1;break e;case 3:Te=o.stateNode.containerInfo,Nt=!0;break e;case 4:Te=o.stateNode.containerInfo,Nt=!0;break e}o=o.return}if(Te===null)throw Error(I(160));xu(l,i,a),Te=null,Nt=!1;var c=a.alternate;c!==null&&(c.return=null),a.return=null}catch(d){je(a,t,d)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)gu(t,e),t=t.sibling}function gu(e,t){var r=e.alternate,n=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(yt(t,e),St(e),n&4){try{_s(3,e,e.return),Ea(3,e)}catch(b){je(e,e.return,b)}try{_s(5,e,e.return)}catch(b){je(e,e.return,b)}}break;case 1:yt(t,e),St(e),n&512&&r!==null&&Yr(r,r.return);break;case 5:if(yt(t,e),St(e),n&512&&r!==null&&Yr(r,r.return),e.flags&32){var a=e.stateNode;try{zs(a,"")}catch(b){je(e,e.return,b)}}if(n&4&&(a=e.stateNode,a!=null)){var l=e.memoizedProps,i=r!==null?r.memoizedProps:l,o=e.type,c=e.updateQueue;if(e.updateQueue=null,c!==null)try{o==="input"&&l.type==="radio"&&l.name!=null&&Fc(a,l),yl(o,i);var d=yl(o,l);for(i=0;i<c.length;i+=2){var p=c[i],x=c[i+1];p==="style"?Gc(a,x):p==="dangerouslySetInnerHTML"?Vc(a,x):p==="children"?zs(a,x):ui(a,p,x,d)}switch(o){case"input":pl(a,l);break;case"textarea":zc(a,l);break;case"select":var g=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!l.multiple;var h=l.value;h!=null?Qr(a,!!l.multiple,h,!1):g!==!!l.multiple&&(l.defaultValue!=null?Qr(a,!!l.multiple,l.defaultValue,!0):Qr(a,!!l.multiple,l.multiple?[]:"",!1))}a[Js]=l}catch(b){je(e,e.return,b)}}break;case 6:if(yt(t,e),St(e),n&4){if(e.stateNode===null)throw Error(I(162));a=e.stateNode,l=e.memoizedProps;try{a.nodeValue=l}catch(b){je(e,e.return,b)}}break;case 3:if(yt(t,e),St(e),n&4&&r!==null&&r.memoizedState.isDehydrated)try{Gs(t.containerInfo)}catch(b){je(e,e.return,b)}break;case 4:yt(t,e),St(e);break;case 13:yt(t,e),St(e),a=e.child,a.flags&8192&&(l=a.memoizedState!==null,a.stateNode.isHidden=l,!l||a.alternate!==null&&a.alternate.memoizedState!==null||(Gi=we())),n&4&&tc(e);break;case 22:if(p=r!==null&&r.memoizedState!==null,e.mode&1?(Fe=(d=Fe)||p,yt(t,e),Fe=d):yt(t,e),St(e),n&8192){if(d=e.memoizedState!==null,(e.stateNode.isHidden=d)&&!p&&e.mode&1)for(U=e,p=e.child;p!==null;){for(x=U=p;U!==null;){switch(g=U,h=g.child,g.tag){case 0:case 11:case 14:case 15:_s(4,g,g.return);break;case 1:Yr(g,g.return);var j=g.stateNode;if(typeof j.componentWillUnmount=="function"){n=g,r=g.return;try{t=n,j.props=t.memoizedProps,j.state=t.memoizedState,j.componentWillUnmount()}catch(b){je(n,r,b)}}break;case 5:Yr(g,g.return);break;case 22:if(g.memoizedState!==null){sc(x);continue}}h!==null?(h.return=g,U=h):sc(x)}p=p.sibling}e:for(p=null,x=e;;){if(x.tag===5){if(p===null){p=x;try{a=x.stateNode,d?(l=a.style,typeof l.setProperty=="function"?l.setProperty("display","none","important"):l.display="none"):(o=x.stateNode,c=x.memoizedProps.style,i=c!=null&&c.hasOwnProperty("display")?c.display:null,o.style.display=Hc("display",i))}catch(b){je(e,e.return,b)}}}else if(x.tag===6){if(p===null)try{x.stateNode.nodeValue=d?"":x.memoizedProps}catch(b){je(e,e.return,b)}}else if((x.tag!==22&&x.tag!==23||x.memoizedState===null||x===e)&&x.child!==null){x.child.return=x,x=x.child;continue}if(x===e)break e;for(;x.sibling===null;){if(x.return===null||x.return===e)break e;p===x&&(p=null),x=x.return}p===x&&(p=null),x.sibling.return=x.return,x=x.sibling}}break;case 19:yt(t,e),St(e),n&4&&tc(e);break;case 21:break;default:yt(t,e),St(e)}}function St(e){var t=e.flags;if(t&2){try{e:{for(var r=e.return;r!==null;){if(hu(r)){var n=r;break e}r=r.return}throw Error(I(160))}switch(n.tag){case 5:var a=n.stateNode;n.flags&32&&(zs(a,""),n.flags&=-33);var l=ec(e);Yl(e,l,a);break;case 3:case 4:var i=n.stateNode.containerInfo,o=ec(e);Kl(e,o,i);break;default:throw Error(I(161))}}catch(c){je(e,e.return,c)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function ef(e,t,r){U=e,yu(e)}function yu(e,t,r){for(var n=(e.mode&1)!==0;U!==null;){var a=U,l=a.child;if(a.tag===22&&n){var i=a.memoizedState!==null||Sn;if(!i){var o=a.alternate,c=o!==null&&o.memoizedState!==null||Fe;o=Sn;var d=Fe;if(Sn=i,(Fe=c)&&!d)for(U=a;U!==null;)i=U,c=i.child,i.tag===22&&i.memoizedState!==null?nc(a):c!==null?(c.return=i,U=c):nc(a);for(;l!==null;)U=l,yu(l),l=l.sibling;U=a,Sn=o,Fe=d}rc(e)}else a.subtreeFlags&8772&&l!==null?(l.return=a,U=l):rc(e)}}function rc(e){for(;U!==null;){var t=U;if(t.flags&8772){var r=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:Fe||Ea(5,t);break;case 1:var n=t.stateNode;if(t.flags&4&&!Fe)if(r===null)n.componentDidMount();else{var a=t.elementType===t.type?r.memoizedProps:vt(t.type,r.memoizedProps);n.componentDidUpdate(a,r.memoizedState,n.__reactInternalSnapshotBeforeUpdate)}var l=t.updateQueue;l!==null&&zo(t,l,n);break;case 3:var i=t.updateQueue;if(i!==null){if(r=null,t.child!==null)switch(t.child.tag){case 5:r=t.child.stateNode;break;case 1:r=t.child.stateNode}zo(t,i,r)}break;case 5:var o=t.stateNode;if(r===null&&t.flags&4){r=o;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&r.focus();break;case"img":c.src&&(r.src=c.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var d=t.alternate;if(d!==null){var p=d.memoizedState;if(p!==null){var x=p.dehydrated;x!==null&&Gs(x)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(I(163))}Fe||t.flags&512&&Wl(t)}catch(g){je(t,t.return,g)}}if(t===e){U=null;break}if(r=t.sibling,r!==null){r.return=t.return,U=r;break}U=t.return}}function sc(e){for(;U!==null;){var t=U;if(t===e){U=null;break}var r=t.sibling;if(r!==null){r.return=t.return,U=r;break}U=t.return}}function nc(e){for(;U!==null;){var t=U;try{switch(t.tag){case 0:case 11:case 15:var r=t.return;try{Ea(4,t)}catch(c){je(t,r,c)}break;case 1:var n=t.stateNode;if(typeof n.componentDidMount=="function"){var a=t.return;try{n.componentDidMount()}catch(c){je(t,a,c)}}var l=t.return;try{Wl(t)}catch(c){je(t,l,c)}break;case 5:var i=t.return;try{Wl(t)}catch(c){je(t,i,c)}}}catch(c){je(t,t.return,c)}if(t===e){U=null;break}var o=t.sibling;if(o!==null){o.return=t.return,U=o;break}U=t.return}}var tf=Math.ceil,ia=Bt.ReactCurrentDispatcher,Vi=Bt.ReactCurrentOwner,mt=Bt.ReactCurrentBatchConfig,re=0,Ce=null,be=null,Oe=0,et=0,Jr=pr(0),ke=0,tn=null,Ar=0,ka=0,Hi=0,Ms=null,We=null,Gi=0,os=1/0,Lt=null,oa=!1,Jl=null,ir=null,Cn=!1,tr=null,ca=0,Us=0,Ql=null,Fn=-1,zn=0;function He(){return re&6?we():Fn!==-1?Fn:Fn=we()}function or(e){return e.mode&1?re&2&&Oe!==0?Oe&-Oe:Up.transition!==null?(zn===0&&(zn=rd()),zn):(e=le,e!==0||(e=window.event,e=e===void 0?16:cd(e.type)),e):1}function bt(e,t,r,n){if(50<Us)throw Us=0,Ql=null,Error(I(185));on(e,r,n),(!(re&2)||e!==Ce)&&(e===Ce&&(!(re&2)&&(ka|=r),ke===4&&Zt(e,Oe)),qe(e,n),r===1&&re===0&&!(t.mode&1)&&(os=we()+500,ja&&fr()))}function qe(e,t){var r=e.callbackNode;Um(e,t);var n=Wn(e,e===Ce?Oe:0);if(n===0)r!==null&&po(r),e.callbackNode=null,e.callbackPriority=0;else if(t=n&-n,e.callbackPriority!==t){if(r!=null&&po(r),t===1)e.tag===0?Mp(ac.bind(null,e)):Ad(ac.bind(null,e)),Dp(function(){!(re&6)&&fr()}),r=null;else{switch(sd(n)){case 1:r=xi;break;case 4:r=ed;break;case 16:r=Bn;break;case 536870912:r=td;break;default:r=Bn}r=Su(r,vu.bind(null,e))}e.callbackPriority=t,e.callbackNode=r}}function vu(e,t){if(Fn=-1,zn=0,re&6)throw Error(I(327));var r=e.callbackNode;if(ts()&&e.callbackNode!==r)return null;var n=Wn(e,e===Ce?Oe:0);if(n===0)return null;if(n&30||n&e.expiredLanes||t)t=da(e,n);else{t=n;var a=re;re|=2;var l=ju();(Ce!==e||Oe!==t)&&(Lt=null,os=we()+500,br(e,t));do try{nf();break}catch(o){Nu(e,o)}while(!0);Ti(),ia.current=l,re=a,be!==null?t=0:(Ce=null,Oe=0,t=ke)}if(t!==0){if(t===2&&(a=bl(e),a!==0&&(n=a,t=ql(e,a))),t===1)throw r=tn,br(e,0),Zt(e,n),qe(e,we()),r;if(t===6)Zt(e,n);else{if(a=e.current.alternate,!(n&30)&&!rf(a)&&(t=da(e,n),t===2&&(l=bl(e),l!==0&&(n=l,t=ql(e,l))),t===1))throw r=tn,br(e,0),Zt(e,n),qe(e,we()),r;switch(e.finishedWork=a,e.finishedLanes=n,t){case 0:case 1:throw Error(I(345));case 2:vr(e,We,Lt);break;case 3:if(Zt(e,n),(n&130023424)===n&&(t=Gi+500-we(),10<t)){if(Wn(e,0)!==0)break;if(a=e.suspendedLanes,(a&n)!==n){He(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Il(vr.bind(null,e,We,Lt),t);break}vr(e,We,Lt);break;case 4:if(Zt(e,n),(n&4194240)===n)break;for(t=e.eventTimes,a=-1;0<n;){var i=31-wt(n);l=1<<i,i=t[i],i>a&&(a=i),n&=~l}if(n=a,n=we()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*tf(n/1960))-n,10<n){e.timeoutHandle=Il(vr.bind(null,e,We,Lt),n);break}vr(e,We,Lt);break;case 5:vr(e,We,Lt);break;default:throw Error(I(329))}}}return qe(e,we()),e.callbackNode===r?vu.bind(null,e):null}function ql(e,t){var r=Ms;return e.current.memoizedState.isDehydrated&&(br(e,t).flags|=256),e=da(e,t),e!==2&&(t=We,We=r,t!==null&&Xl(t)),e}function Xl(e){We===null?We=e:We.push.apply(We,e)}function rf(e){for(var t=e;;){if(t.flags&16384){var r=t.updateQueue;if(r!==null&&(r=r.stores,r!==null))for(var n=0;n<r.length;n++){var a=r[n],l=a.getSnapshot;a=a.value;try{if(!Et(l(),a))return!1}catch{return!1}}}if(r=t.child,t.subtreeFlags&16384&&r!==null)r.return=t,t=r;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 Zt(e,t){for(t&=~Hi,t&=~ka,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var r=31-wt(t),n=1<<r;e[r]=-1,t&=~n}}function ac(e){if(re&6)throw Error(I(327));ts();var t=Wn(e,0);if(!(t&1))return qe(e,we()),null;var r=da(e,t);if(e.tag!==0&&r===2){var n=bl(e);n!==0&&(t=n,r=ql(e,n))}if(r===1)throw r=tn,br(e,0),Zt(e,t),qe(e,we()),r;if(r===6)throw Error(I(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,vr(e,We,Lt),qe(e,we()),null}function Bi(e,t){var r=re;re|=1;try{return e(t)}finally{re=r,re===0&&(os=we()+500,ja&&fr())}}function Tr(e){tr!==null&&tr.tag===0&&!(re&6)&&ts();var t=re;re|=1;var r=mt.transition,n=le;try{if(mt.transition=null,le=1,e)return e()}finally{le=n,mt.transition=r,re=t,!(re&6)&&fr()}}function Wi(){et=Jr.current,me(Jr)}function br(e,t){e.finishedWork=null,e.finishedLanes=0;var r=e.timeoutHandle;if(r!==-1&&(e.timeoutHandle=-1,Op(r)),be!==null)for(r=be.return;r!==null;){var n=r;switch(Si(n),n.tag){case 1:n=n.type.childContextTypes,n!=null&&qn();break;case 3:ls(),me(Je),me(ze),Li();break;case 5:Pi(n);break;case 4:ls();break;case 13:me(xe);break;case 19:me(xe);break;case 10:Ri(n.type._context);break;case 22:case 23:Wi()}r=r.return}if(Ce=e,be=e=cr(e.current,null),Oe=et=t,ke=0,tn=null,Hi=ka=Ar=0,We=Ms=null,jr!==null){for(t=0;t<jr.length;t++)if(r=jr[t],n=r.interleaved,n!==null){r.interleaved=null;var a=n.next,l=r.pending;if(l!==null){var i=l.next;l.next=a,n.next=i}r.pending=n}jr=null}return e}function Nu(e,t){do{var r=be;try{if(Ti(),_n.current=la,aa){for(var n=ge.memoizedState;n!==null;){var a=n.queue;a!==null&&(a.pending=null),n=n.next}aa=!1}if(Cr=0,Se=Ee=ge=null,Ls=!1,Xs=0,Vi.current=null,r===null||r.return===null){ke=1,tn=t,be=null;break}e:{var l=e,i=r.return,o=r,c=t;if(t=Oe,o.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var d=c,p=o,x=p.tag;if(!(p.mode&1)&&(x===0||x===11||x===15)){var g=p.alternate;g?(p.updateQueue=g.updateQueue,p.memoizedState=g.memoizedState,p.lanes=g.lanes):(p.updateQueue=null,p.memoizedState=null)}var h=Wo(i);if(h!==null){h.flags&=-257,Ko(h,i,o,l,t),h.mode&1&&Bo(l,d,t),t=h,c=d;var j=t.updateQueue;if(j===null){var b=new Set;b.add(c),t.updateQueue=b}else j.add(c);break e}else{if(!(t&1)){Bo(l,d,t),Ki();break e}c=Error(I(426))}}else if(he&&o.mode&1){var w=Wo(i);if(w!==null){!(w.flags&65536)&&(w.flags|=256),Ko(w,i,o,l,t),Ci(is(c,o));break e}}l=c=is(c,o),ke!==4&&(ke=2),Ms===null?Ms=[l]:Ms.push(l),l=i;do{switch(l.tag){case 3:l.flags|=65536,t&=-t,l.lanes|=t;var m=su(l,c,t);Fo(l,m);break e;case 1:o=c;var u=l.type,f=l.stateNode;if(!(l.flags&128)&&(typeof u.getDerivedStateFromError=="function"||f!==null&&typeof f.componentDidCatch=="function"&&(ir===null||!ir.has(f)))){l.flags|=65536,t&=-t,l.lanes|=t;var N=nu(l,o,t);Fo(l,N);break e}}l=l.return}while(l!==null)}bu(r)}catch(k){t=k,be===r&&r!==null&&(be=r=r.return);continue}break}while(!0)}function ju(){var e=ia.current;return ia.current=la,e===null?la:e}function Ki(){(ke===0||ke===3||ke===2)&&(ke=4),Ce===null||!(Ar&268435455)&&!(ka&268435455)||Zt(Ce,Oe)}function da(e,t){var r=re;re|=2;var n=ju();(Ce!==e||Oe!==t)&&(Lt=null,br(e,t));do try{sf();break}catch(a){Nu(e,a)}while(!0);if(Ti(),re=r,ia.current=n,be!==null)throw Error(I(261));return Ce=null,Oe=0,ke}function sf(){for(;be!==null;)wu(be)}function nf(){for(;be!==null&&!Tm();)wu(be)}function wu(e){var t=ku(e.alternate,e,et);e.memoizedProps=e.pendingProps,t===null?bu(e):be=t,Vi.current=null}function bu(e){var t=e;do{var r=t.alternate;if(e=t.return,t.flags&32768){if(r=qp(r,t),r!==null){r.flags&=32767,be=r;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{ke=6,be=null;return}}else if(r=Qp(r,t,et),r!==null){be=r;return}if(t=t.sibling,t!==null){be=t;return}be=t=e}while(t!==null);ke===0&&(ke=5)}function vr(e,t,r){var n=le,a=mt.transition;try{mt.transition=null,le=1,af(e,t,r,n)}finally{mt.transition=a,le=n}return null}function af(e,t,r,n){do ts();while(tr!==null);if(re&6)throw Error(I(327));r=e.finishedWork;var a=e.finishedLanes;if(r===null)return null;if(e.finishedWork=null,e.finishedLanes=0,r===e.current)throw Error(I(177));e.callbackNode=null,e.callbackPriority=0;var l=r.lanes|r.childLanes;if(Fm(e,l),e===Ce&&(be=Ce=null,Oe=0),!(r.subtreeFlags&2064)&&!(r.flags&2064)||Cn||(Cn=!0,Su(Bn,function(){return ts(),null})),l=(r.flags&15990)!==0,r.subtreeFlags&15990||l){l=mt.transition,mt.transition=null;var i=le;le=1;var o=re;re|=4,Vi.current=null,Zp(e,r),gu(r,e),kp(Tl),Kn=!!Al,Tl=Al=null,e.current=r,ef(r),Rm(),re=o,le=i,mt.transition=l}else e.current=r;if(Cn&&(Cn=!1,tr=e,ca=a),l=e.pendingLanes,l===0&&(ir=null),Dm(r.stateNode),qe(e,we()),t!==null)for(n=e.onRecoverableError,r=0;r<t.length;r++)a=t[r],n(a.value,{componentStack:a.stack,digest:a.digest});if(oa)throw oa=!1,e=Jl,Jl=null,e;return ca&1&&e.tag!==0&&ts(),l=e.pendingLanes,l&1?e===Ql?Us++:(Us=0,Ql=e):Us=0,fr(),null}function ts(){if(tr!==null){var e=sd(ca),t=mt.transition,r=le;try{if(mt.transition=null,le=16>e?16:e,tr===null)var n=!1;else{if(e=tr,tr=null,ca=0,re&6)throw Error(I(331));var a=re;for(re|=4,U=e.current;U!==null;){var l=U,i=l.child;if(U.flags&16){var o=l.deletions;if(o!==null){for(var c=0;c<o.length;c++){var d=o[c];for(U=d;U!==null;){var p=U;switch(p.tag){case 0:case 11:case 15:_s(8,p,l)}var x=p.child;if(x!==null)x.return=p,U=x;else for(;U!==null;){p=U;var g=p.sibling,h=p.return;if(fu(p),p===d){U=null;break}if(g!==null){g.return=h,U=g;break}U=h}}}var j=l.alternate;if(j!==null){var b=j.child;if(b!==null){j.child=null;do{var w=b.sibling;b.sibling=null,b=w}while(b!==null)}}U=l}}if(l.subtreeFlags&2064&&i!==null)i.return=l,U=i;else e:for(;U!==null;){if(l=U,l.flags&2048)switch(l.tag){case 0:case 11:case 15:_s(9,l,l.return)}var m=l.sibling;if(m!==null){m.return=l.return,U=m;break e}U=l.return}}var u=e.current;for(U=u;U!==null;){i=U;var f=i.child;if(i.subtreeFlags&2064&&f!==null)f.return=i,U=f;else e:for(i=u;U!==null;){if(o=U,o.flags&2048)try{switch(o.tag){case 0:case 11:case 15:Ea(9,o)}}catch(k){je(o,o.return,k)}if(o===i){U=null;break e}var N=o.sibling;if(N!==null){N.return=o.return,U=N;break e}U=o.return}}if(re=a,fr(),Tt&&typeof Tt.onPostCommitFiberRoot=="function")try{Tt.onPostCommitFiberRoot(xa,e)}catch{}n=!0}return n}finally{le=r,mt.transition=t}}return!1}function lc(e,t,r){t=is(r,t),t=su(e,t,1),e=lr(e,t,1),t=He(),e!==null&&(on(e,1,t),qe(e,t))}function je(e,t,r){if(e.tag===3)lc(e,e,r);else for(;t!==null;){if(t.tag===3){lc(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(ir===null||!ir.has(n))){e=is(r,e),e=nu(t,e,1),t=lr(t,e,1),e=He(),t!==null&&(on(t,1,e),qe(t,e));break}}t=t.return}}function lf(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),t=He(),e.pingedLanes|=e.suspendedLanes&r,Ce===e&&(Oe&r)===r&&(ke===4||ke===3&&(Oe&130023424)===Oe&&500>we()-Gi?br(e,0):Hi|=r),qe(e,t)}function Eu(e,t){t===0&&(e.mode&1?(t=gn,gn<<=1,!(gn&130023424)&&(gn=4194304)):t=1);var r=He();e=Ht(e,t),e!==null&&(on(e,t,r),qe(e,r))}function of(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Eu(e,r)}function cf(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,a=e.memoizedState;a!==null&&(r=a.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(I(314))}n!==null&&n.delete(t),Eu(e,r)}var ku;ku=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||Je.current)Ye=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return Ye=!1,Jp(e,t,r);Ye=!!(e.flags&131072)}else Ye=!1,he&&t.flags&1048576&&Td(t,ea,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;Un(e,t),e=t.pendingProps;var a=ss(t,ze.current);es(t,r),a=Mi(null,t,n,e,a,r);var l=Ui();return t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Qe(n)?(l=!0,Xn(t)):l=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,Oi(t),a.updater=ba,t.stateNode=a,a._reactInternals=t,Ul(t,n,e,r),t=$l(null,t,n,!0,l,r)):(t.tag=0,he&&l&&ki(t),Ve(null,t,a,r),t=t.child),t;case 16:n=t.elementType;e:{switch(Un(e,t),e=t.pendingProps,a=n._init,n=a(n._payload),t.type=n,a=t.tag=uf(n),e=vt(n,e),a){case 0:t=zl(null,t,n,e,r);break e;case 1:t=Qo(null,t,n,e,r);break e;case 11:t=Yo(null,t,n,e,r);break e;case 14:t=Jo(null,t,n,vt(n.type,e),r);break e}throw Error(I(306,n,""))}return t;case 0:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:vt(n,a),zl(e,t,n,a,r);case 1:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:vt(n,a),Qo(e,t,n,a,r);case 3:e:{if(ou(t),e===null)throw Error(I(387));n=t.pendingProps,l=t.memoizedState,a=l.element,Ld(e,t),sa(t,n,null,r);var i=t.memoizedState;if(n=i.element,l.isDehydrated)if(l={element:n,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=l,t.memoizedState=l,t.flags&256){a=is(Error(I(423)),t),t=qo(e,t,n,r,a);break e}else if(n!==a){a=is(Error(I(424)),t),t=qo(e,t,n,r,a);break e}else for(tt=ar(t.stateNode.containerInfo.firstChild),rt=t,he=!0,jt=null,r=Dd(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(ns(),n===a){t=Gt(e,t,r);break e}Ve(e,t,n,r)}t=t.child}return t;case 5:return _d(t),e===null&&Ll(t),n=t.type,a=t.pendingProps,l=e!==null?e.memoizedProps:null,i=a.children,Rl(n,a)?i=null:l!==null&&Rl(n,l)&&(t.flags|=32),iu(e,t),Ve(e,t,i,r),t.child;case 6:return e===null&&Ll(t),null;case 13:return cu(e,t,r);case 4:return Di(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=as(t,null,n,r):Ve(e,t,n,r),t.child;case 11:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:vt(n,a),Yo(e,t,n,a,r);case 7:return Ve(e,t,t.pendingProps,r),t.child;case 8:return Ve(e,t,t.pendingProps.children,r),t.child;case 12:return Ve(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,a=t.pendingProps,l=t.memoizedProps,i=a.value,ce(ta,n._currentValue),n._currentValue=i,l!==null)if(Et(l.value,i)){if(l.children===a.children&&!Je.current){t=Gt(e,t,r);break e}}else for(l=t.child,l!==null&&(l.return=t);l!==null;){var o=l.dependencies;if(o!==null){i=l.child;for(var c=o.firstContext;c!==null;){if(c.context===n){if(l.tag===1){c=Ft(-1,r&-r),c.tag=2;var d=l.updateQueue;if(d!==null){d=d.shared;var p=d.pending;p===null?c.next=c:(c.next=p.next,p.next=c),d.pending=c}}l.lanes|=r,c=l.alternate,c!==null&&(c.lanes|=r),_l(l.return,r,t),o.lanes|=r;break}c=c.next}}else if(l.tag===10)i=l.type===t.type?null:l.child;else if(l.tag===18){if(i=l.return,i===null)throw Error(I(341));i.lanes|=r,o=i.alternate,o!==null&&(o.lanes|=r),_l(i,r,t),i=l.sibling}else i=l.child;if(i!==null)i.return=l;else for(i=l;i!==null;){if(i===t){i=null;break}if(l=i.sibling,l!==null){l.return=i.return,i=l;break}i=i.return}l=i}Ve(e,t,a.children,r),t=t.child}return t;case 9:return a=t.type,n=t.pendingProps.children,es(t,r),a=ft(a),n=n(a),t.flags|=1,Ve(e,t,n,r),t.child;case 14:return n=t.type,a=vt(n,t.pendingProps),a=vt(n.type,a),Jo(e,t,n,a,r);case 15:return au(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:vt(n,a),Un(e,t),t.tag=1,Qe(n)?(e=!0,Xn(t)):e=!1,es(t,r),ru(t,n,a),Ul(t,n,a,r),$l(null,t,n,!0,e,r);case 19:return du(e,t,r);case 22:return lu(e,t,r)}throw Error(I(156,t.tag))};function Su(e,t){return Zc(e,t)}function df(e,t,r,n){this.tag=e,this.key=r,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=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ut(e,t,r,n){return new df(e,t,r,n)}function Yi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function uf(e){if(typeof e=="function")return Yi(e)?1:0;if(e!=null){if(e=e.$$typeof,e===pi)return 11;if(e===fi)return 14}return 2}function cr(e,t){var r=e.alternate;return r===null?(r=ut(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function $n(e,t,r,n,a,l){var i=2;if(n=e,typeof e=="function")Yi(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case Fr:return Er(r.children,a,l,t);case mi:i=8,a|=8;break;case ol:return e=ut(12,r,t,a|2),e.elementType=ol,e.lanes=l,e;case cl:return e=ut(13,r,t,a),e.elementType=cl,e.lanes=l,e;case dl:return e=ut(19,r,t,a),e.elementType=dl,e.lanes=l,e;case _c:return Sa(r,a,l,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Pc:i=10;break e;case Lc:i=9;break e;case pi:i=11;break e;case fi:i=14;break e;case Qt:i=16,n=null;break e}throw Error(I(130,e==null?e:typeof e,""))}return t=ut(i,r,t,a),t.elementType=e,t.type=n,t.lanes=l,t}function Er(e,t,r,n){return e=ut(7,e,n,t),e.lanes=r,e}function Sa(e,t,r,n){return e=ut(22,e,n,t),e.elementType=_c,e.lanes=r,e.stateNode={isHidden:!1},e}function rl(e,t,r){return e=ut(6,e,null,t),e.lanes=r,e}function sl(e,t,r){return t=ut(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function mf(e,t,r,n,a){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=Ma(0),this.expirationTimes=Ma(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ma(0),this.identifierPrefix=n,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Ji(e,t,r,n,a,l,i,o,c){return e=new mf(e,t,r,o,c),t===1?(t=1,l===!0&&(t|=8)):t=0,l=ut(3,null,null,t),e.current=l,l.stateNode=e,l.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},Oi(l),e}function pf(e,t,r){var n=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Ur,key:n==null?null:""+n,children:e,containerInfo:t,implementation:r}}function Cu(e){if(!e)return ur;e=e._reactInternals;e:{if(Ir(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(Qe(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(I(171))}if(e.tag===1){var r=e.type;if(Qe(r))return Cd(e,r,t)}return t}function Au(e,t,r,n,a,l,i,o,c){return e=Ji(r,n,!0,e,a,l,i,o,c),e.context=Cu(null),r=e.current,n=He(),a=or(r),l=Ft(n,a),l.callback=t??null,lr(r,l,a),e.current.lanes=a,on(e,a,n),qe(e,n),e}function Ca(e,t,r,n){var a=t.current,l=He(),i=or(a);return r=Cu(r),t.context===null?t.context=r:t.pendingContext=r,t=Ft(l,i),t.payload={element:e},n=n===void 0?null:n,n!==null&&(t.callback=n),e=lr(a,t,i),e!==null&&(bt(e,a,i,l),Ln(e,a,i)),i}function ua(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 ic(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var r=e.retryLane;e.retryLane=r!==0&&r<t?r:t}}function Qi(e,t){ic(e,t),(e=e.alternate)&&ic(e,t)}function ff(){return null}var Tu=typeof reportError=="function"?reportError:function(e){console.error(e)};function qi(e){this._internalRoot=e}Aa.prototype.render=qi.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(I(409));Ca(e,t,null,null)};Aa.prototype.unmount=qi.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Tr(function(){Ca(null,e,null,null)}),t[Vt]=null}};function Aa(e){this._internalRoot=e}Aa.prototype.unstable_scheduleHydration=function(e){if(e){var t=ld();e={blockedOn:null,target:e,priority:t};for(var r=0;r<Xt.length&&t!==0&&t<Xt[r].priority;r++);Xt.splice(r,0,e),r===0&&od(e)}};function Xi(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Ta(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function oc(){}function hf(e,t,r,n,a){if(a){if(typeof n=="function"){var l=n;n=function(){var d=ua(i);l.call(d)}}var i=Au(t,n,e,0,null,!1,!1,"",oc);return e._reactRootContainer=i,e[Vt]=i.current,Ks(e.nodeType===8?e.parentNode:e),Tr(),i}for(;a=e.lastChild;)e.removeChild(a);if(typeof n=="function"){var o=n;n=function(){var d=ua(c);o.call(d)}}var c=Ji(e,0,!1,null,null,!1,!1,"",oc);return e._reactRootContainer=c,e[Vt]=c.current,Ks(e.nodeType===8?e.parentNode:e),Tr(function(){Ca(t,c,r,n)}),c}function Ra(e,t,r,n,a){var l=r._reactRootContainer;if(l){var i=l;if(typeof a=="function"){var o=a;a=function(){var c=ua(i);o.call(c)}}Ca(t,i,e,a)}else i=hf(r,t,e,a,n);return ua(i)}nd=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var r=As(t.pendingLanes);r!==0&&(gi(t,r|1),qe(t,we()),!(re&6)&&(os=we()+500,fr()))}break;case 13:Tr(function(){var n=Ht(e,1);if(n!==null){var a=He();bt(n,e,1,a)}}),Qi(e,1)}};yi=function(e){if(e.tag===13){var t=Ht(e,134217728);if(t!==null){var r=He();bt(t,e,134217728,r)}Qi(e,134217728)}};ad=function(e){if(e.tag===13){var t=or(e),r=Ht(e,t);if(r!==null){var n=He();bt(r,e,t,n)}Qi(e,t)}};ld=function(){return le};id=function(e,t){var r=le;try{return le=e,t()}finally{le=r}};Nl=function(e,t,r){switch(t){case"input":if(pl(e,r),t=r.name,r.type==="radio"&&t!=null){for(r=e;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<r.length;t++){var n=r[t];if(n!==e&&n.form===e.form){var a=Na(n);if(!a)throw Error(I(90));Uc(n),pl(n,a)}}}break;case"textarea":zc(e,r);break;case"select":t=r.value,t!=null&&Qr(e,!!r.multiple,t,!1)}};Kc=Bi;Yc=Tr;var xf={usingClientEntryPoint:!1,Events:[dn,Hr,Na,Bc,Wc,Bi]},ks={findFiberByHostInstance:Nr,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},gf={bundleType:ks.bundleType,version:ks.version,rendererPackageName:ks.rendererPackageName,rendererConfig:ks.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Bt.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=qc(e),e===null?null:e.stateNode},findFiberByHostInstance:ks.findFiberByHostInstance||ff,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 An=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!An.isDisabled&&An.supportsFiber)try{xa=An.inject(gf),Tt=An}catch{}}nt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=xf;nt.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Xi(t))throw Error(I(200));return pf(e,t,null,r)};nt.createRoot=function(e,t){if(!Xi(e))throw Error(I(299));var r=!1,n="",a=Tu;return t!=null&&(t.unstable_strictMode===!0&&(r=!0),t.identifierPrefix!==void 0&&(n=t.identifierPrefix),t.onRecoverableError!==void 0&&(a=t.onRecoverableError)),t=Ji(e,1,!1,null,null,r,!1,n,a),e[Vt]=t.current,Ks(e.nodeType===8?e.parentNode:e),new qi(t)};nt.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=qc(t),e=e===null?null:e.stateNode,e};nt.flushSync=function(e){return Tr(e)};nt.hydrate=function(e,t,r){if(!Ta(t))throw Error(I(200));return Ra(null,e,t,!0,r)};nt.hydrateRoot=function(e,t,r){if(!Xi(e))throw Error(I(405));var n=r!=null&&r.hydratedSources||null,a=!1,l="",i=Tu;if(r!=null&&(r.unstable_strictMode===!0&&(a=!0),r.identifierPrefix!==void 0&&(l=r.identifierPrefix),r.onRecoverableError!==void 0&&(i=r.onRecoverableError)),t=Au(t,null,e,1,r??null,a,!1,l,i),e[Vt]=t.current,Ks(e),n)for(e=0;e<n.length;e++)r=n[e],a=r._getVersion,a=a(r._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[r,a]:t.mutableSourceEagerHydrationData.push(r,a);return new Aa(t)};nt.render=function(e,t,r){if(!Ta(t))throw Error(I(200));return Ra(null,e,t,!1,r)};nt.unmountComponentAtNode=function(e){if(!Ta(e))throw Error(I(40));return e._reactRootContainer?(Tr(function(){Ra(null,null,e,!1,function(){e._reactRootContainer=null,e[Vt]=null})}),!0):!1};nt.unstable_batchedUpdates=Bi;nt.unstable_renderSubtreeIntoContainer=function(e,t,r,n){if(!Ta(r))throw Error(I(200));if(e==null||e._reactInternals===void 0)throw Error(I(38));return Ra(e,t,r,!1,n)};nt.version="18.3.1-next-f1338f8080-20240426";function Ru(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Ru)}catch(e){console.error(e)}}Ru(),Rc.exports=nt;var yf=Rc.exports,Iu,cc=yf;Iu=cc.createRoot,cc.hydrateRoot;/**
41
+ * @license lucide-react v0.298.0 - ISC
42
+ *
43
+ * This source code is licensed under the ISC license.
44
+ * See the LICENSE file in the root directory of this source tree.
45
+ */var vf={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"};/**
46
+ * @license lucide-react v0.298.0 - ISC
47
+ *
48
+ * This source code is licensed under the ISC license.
49
+ * See the LICENSE file in the root directory of this source tree.
50
+ */const Nf=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase().trim(),$=(e,t)=>{const r=v.forwardRef(({color:n="currentColor",size:a=24,strokeWidth:l=2,absoluteStrokeWidth:i,className:o="",children:c,...d},p)=>v.createElement("svg",{ref:p,...vf,width:a,height:a,stroke:n,strokeWidth:i?Number(l)*24/Number(a):l,className:["lucide",`lucide-${Nf(e)}`,o].join(" "),...d},[...t.map(([x,g])=>v.createElement(x,g)),...Array.isArray(c)?c:[c]]));return r.displayName=`${e}`,r};/**
51
+ * @license lucide-react v0.298.0 - ISC
52
+ *
53
+ * This source code is licensed under the ISC license.
54
+ * See the LICENSE file in the root directory of this source tree.
55
+ */const jf=$("Activity",[["path",{d:"M22 12h-4l-3 9L9 3l-3 9H2",key:"d5dnw9"}]]);/**
56
+ * @license lucide-react v0.298.0 - ISC
57
+ *
58
+ * This source code is licensed under the ISC license.
59
+ * See the LICENSE file in the root directory of this source tree.
60
+ */const Ie=$("AlertTriangle",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"c3ski4"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
61
+ * @license lucide-react v0.298.0 - ISC
62
+ *
63
+ * This source code is licensed under the ISC license.
64
+ * See the LICENSE file in the root directory of this source tree.
65
+ */const nl=$("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
66
+ * @license lucide-react v0.298.0 - ISC
67
+ *
68
+ * This source code is licensed under the ISC license.
69
+ * See the LICENSE file in the root directory of this source tree.
70
+ */const wf=$("BarChart3",[["path",{d:"M3 3v18h18",key:"1s2lah"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/**
71
+ * @license lucide-react v0.298.0 - ISC
72
+ *
73
+ * This source code is licensed under the ISC license.
74
+ * See the LICENSE file in the root directory of this source tree.
75
+ */const ma=$("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/**
76
+ * @license lucide-react v0.298.0 - ISC
77
+ *
78
+ * This source code is licensed under the ISC license.
79
+ * See the LICENSE file in the root directory of this source tree.
80
+ */const Re=$("CheckCircle2",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
81
+ * @license lucide-react v0.298.0 - ISC
82
+ *
83
+ * This source code is licensed under the ISC license.
84
+ * See the LICENSE file in the root directory of this source tree.
85
+ */const zt=$("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
86
+ * @license lucide-react v0.298.0 - ISC
87
+ *
88
+ * This source code is licensed under the ISC license.
89
+ * See the LICENSE file in the root directory of this source tree.
90
+ */const rn=$("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
91
+ * @license lucide-react v0.298.0 - ISC
92
+ *
93
+ * This source code is licensed under the ISC license.
94
+ * See the LICENSE file in the root directory of this source tree.
95
+ */const bf=$("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
96
+ * @license lucide-react v0.298.0 - ISC
97
+ *
98
+ * This source code is licensed under the ISC license.
99
+ * See the LICENSE file in the root directory of this source tree.
100
+ */const Zl=$("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
101
+ * @license lucide-react v0.298.0 - ISC
102
+ *
103
+ * This source code is licensed under the ISC license.
104
+ * See the LICENSE file in the root directory of this source tree.
105
+ */const dc=$("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
106
+ * @license lucide-react v0.298.0 - ISC
107
+ *
108
+ * This source code is licensed under the ISC license.
109
+ * See the LICENSE file in the root directory of this source tree.
110
+ */const Ou=$("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);/**
111
+ * @license lucide-react v0.298.0 - ISC
112
+ *
113
+ * This source code is licensed under the ISC license.
114
+ * See the LICENSE file in the root directory of this source tree.
115
+ */const Du=$("Columns",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["line",{x1:"12",x2:"12",y1:"3",y2:"21",key:"1efggb"}]]);/**
116
+ * @license lucide-react v0.298.0 - ISC
117
+ *
118
+ * This source code is licensed under the ISC license.
119
+ * See the LICENSE file in the root directory of this source tree.
120
+ */const Ef=$("Command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]);/**
121
+ * @license lucide-react v0.298.0 - ISC
122
+ *
123
+ * This source code is licensed under the ISC license.
124
+ * See the LICENSE file in the root directory of this source tree.
125
+ */const cs=$("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/**
126
+ * @license lucide-react v0.298.0 - ISC
127
+ *
128
+ * This source code is licensed under the ISC license.
129
+ * See the LICENSE file in the root directory of this source tree.
130
+ */const kf=$("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/**
131
+ * @license lucide-react v0.298.0 - ISC
132
+ *
133
+ * This source code is licensed under the ISC license.
134
+ * See the LICENSE file in the root directory of this source tree.
135
+ */const uc=$("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/**
136
+ * @license lucide-react v0.298.0 - ISC
137
+ *
138
+ * This source code is licensed under the ISC license.
139
+ * See the LICENSE file in the root directory of this source tree.
140
+ */const Sf=$("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
141
+ * @license lucide-react v0.298.0 - ISC
142
+ *
143
+ * This source code is licensed under the ISC license.
144
+ * See the LICENSE file in the root directory of this source tree.
145
+ */const ei=$("FileCode",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["path",{d:"m10 13-2 2 2 2",key:"17smn8"}],["path",{d:"m14 17 2-2-2-2",key:"14mezr"}]]);/**
146
+ * @license lucide-react v0.298.0 - ISC
147
+ *
148
+ * This source code is licensed under the ISC license.
149
+ * See the LICENSE file in the root directory of this source tree.
150
+ */const mc=$("FileDown",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]);/**
151
+ * @license lucide-react v0.298.0 - ISC
152
+ *
153
+ * This source code is licensed under the ISC license.
154
+ * See the LICENSE file in the root directory of this source tree.
155
+ */const Cf=$("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/**
156
+ * @license lucide-react v0.298.0 - ISC
157
+ *
158
+ * This source code is licensed under the ISC license.
159
+ * See the LICENSE file in the root directory of this source tree.
160
+ */const Af=$("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"}]]);/**
161
+ * @license lucide-react v0.298.0 - ISC
162
+ *
163
+ * This source code is licensed under the ISC license.
164
+ * See the LICENSE file in the root directory of this source tree.
165
+ */const Tf=$("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"}]]);/**
166
+ * @license lucide-react v0.298.0 - ISC
167
+ *
168
+ * This source code is licensed under the ISC license.
169
+ * See the LICENSE file in the root directory of this source tree.
170
+ */const Pu=$("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"}]]);/**
171
+ * @license lucide-react v0.298.0 - ISC
172
+ *
173
+ * This source code is licensed under the ISC license.
174
+ * See the LICENSE file in the root directory of this source tree.
175
+ */const Rf=$("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/**
176
+ * @license lucide-react v0.298.0 - ISC
177
+ *
178
+ * This source code is licensed under the ISC license.
179
+ * See the LICENSE file in the root directory of this source tree.
180
+ */const If=$("HelpCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
181
+ * @license lucide-react v0.298.0 - ISC
182
+ *
183
+ * This source code is licensed under the ISC license.
184
+ * See the LICENSE file in the root directory of this source tree.
185
+ */const Of=$("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/**
186
+ * @license lucide-react v0.298.0 - ISC
187
+ *
188
+ * This source code is licensed under the ISC license.
189
+ * See the LICENSE file in the root directory of this source tree.
190
+ */const sn=$("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/**
191
+ * @license lucide-react v0.298.0 - ISC
192
+ *
193
+ * This source code is licensed under the ISC license.
194
+ * See the LICENSE file in the root directory of this source tree.
195
+ */const pc=$("Keyboard",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",ry:"2",key:"15u882"}],["path",{d:"M6 8h.001",key:"1ej0i3"}],["path",{d:"M10 8h.001",key:"1x2st2"}],["path",{d:"M14 8h.001",key:"1vkmyp"}],["path",{d:"M18 8h.001",key:"kfsenl"}],["path",{d:"M8 12h.001",key:"1sjpby"}],["path",{d:"M12 12h.001",key:"al75ts"}],["path",{d:"M16 12h.001",key:"931bgk"}],["path",{d:"M7 16h10",key:"wp8him"}]]);/**
196
+ * @license lucide-react v0.298.0 - ISC
197
+ *
198
+ * This source code is licensed under the ISC license.
199
+ * See the LICENSE file in the root directory of this source tree.
200
+ */const Lu=$("List",[["line",{x1:"8",x2:"21",y1:"6",y2:"6",key:"7ey8pc"}],["line",{x1:"8",x2:"21",y1:"12",y2:"12",key:"rjfblc"}],["line",{x1:"8",x2:"21",y1:"18",y2:"18",key:"c3b1m8"}],["line",{x1:"3",x2:"3.01",y1:"6",y2:"6",key:"1g7gq3"}],["line",{x1:"3",x2:"3.01",y1:"12",y2:"12",key:"1pjlvk"}],["line",{x1:"3",x2:"3.01",y1:"18",y2:"18",key:"28t2mc"}]]);/**
201
+ * @license lucide-react v0.298.0 - ISC
202
+ *
203
+ * This source code is licensed under the ISC license.
204
+ * See the LICENSE file in the root directory of this source tree.
205
+ */const Ke=$("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/**
206
+ * @license lucide-react v0.298.0 - ISC
207
+ *
208
+ * This source code is licensed under the ISC license.
209
+ * See the LICENSE file in the root directory of this source tree.
210
+ */const _u=$("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/**
211
+ * @license lucide-react v0.298.0 - ISC
212
+ *
213
+ * This source code is licensed under the ISC license.
214
+ * See the LICENSE file in the root directory of this source tree.
215
+ */const Df=$("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);/**
216
+ * @license lucide-react v0.298.0 - ISC
217
+ *
218
+ * This source code is licensed under the ISC license.
219
+ * See the LICENSE file in the root directory of this source tree.
220
+ */const Pf=$("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"}]]);/**
221
+ * @license lucide-react v0.298.0 - ISC
222
+ *
223
+ * This source code is licensed under the ISC license.
224
+ * See the LICENSE file in the root directory of this source tree.
225
+ */const al=$("MinusCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}]]);/**
226
+ * @license lucide-react v0.298.0 - ISC
227
+ *
228
+ * This source code is licensed under the ISC license.
229
+ * See the LICENSE file in the root directory of this source tree.
230
+ */const fc=$("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/**
231
+ * @license lucide-react v0.298.0 - ISC
232
+ *
233
+ * This source code is licensed under the ISC license.
234
+ * See the LICENSE file in the root directory of this source tree.
235
+ */const Mu=$("Package",[["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}],["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);/**
236
+ * @license lucide-react v0.298.0 - ISC
237
+ *
238
+ * This source code is licensed under the ISC license.
239
+ * See the LICENSE file in the root directory of this source tree.
240
+ */const Uu=$("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",key:"1xcu5"}],["circle",{cx:"17.5",cy:"10.5",r:".5",key:"736e4u"}],["circle",{cx:"8.5",cy:"7.5",r:".5",key:"clrty"}],["circle",{cx:"6.5",cy:"12.5",r:".5",key:"1s4xz9"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);/**
241
+ * @license lucide-react v0.298.0 - ISC
242
+ *
243
+ * This source code is licensed under the ISC license.
244
+ * See the LICENSE file in the root directory of this source tree.
245
+ */const ti=$("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z",key:"ymcmye"}]]);/**
246
+ * @license lucide-react v0.298.0 - ISC
247
+ *
248
+ * This source code is licensed under the ISC license.
249
+ * See the LICENSE file in the root directory of this source tree.
250
+ */const Lf=$("Play",[["polygon",{points:"5 3 19 12 5 21 5 3",key:"191637"}]]);/**
251
+ * @license lucide-react v0.298.0 - ISC
252
+ *
253
+ * This source code is licensed under the ISC license.
254
+ * See the LICENSE file in the root directory of this source tree.
255
+ */const ll=$("PlusCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]);/**
256
+ * @license lucide-react v0.298.0 - ISC
257
+ *
258
+ * This source code is licensed under the ISC license.
259
+ * See the LICENSE file in the root directory of this source tree.
260
+ */const ds=$("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/**
261
+ * @license lucide-react v0.298.0 - ISC
262
+ *
263
+ * This source code is licensed under the ISC license.
264
+ * See the LICENSE file in the root directory of this source tree.
265
+ */const pa=$("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"}]]);/**
266
+ * @license lucide-react v0.298.0 - ISC
267
+ *
268
+ * This source code is licensed under the ISC license.
269
+ * See the LICENSE file in the root directory of this source tree.
270
+ */const _f=$("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/**
271
+ * @license lucide-react v0.298.0 - ISC
272
+ *
273
+ * This source code is licensed under the ISC license.
274
+ * See the LICENSE file in the root directory of this source tree.
275
+ */const Fu=$("Save",[["path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z",key:"1owoqh"}],["polyline",{points:"17 21 17 13 7 13 7 21",key:"1md35c"}],["polyline",{points:"7 3 7 8 15 8",key:"8nz8an"}]]);/**
276
+ * @license lucide-react v0.298.0 - ISC
277
+ *
278
+ * This source code is licensed under the ISC license.
279
+ * See the LICENSE file in the root directory of this source tree.
280
+ */const nn=$("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
281
+ * @license lucide-react v0.298.0 - ISC
282
+ *
283
+ * This source code is licensed under the ISC license.
284
+ * See the LICENSE file in the root directory of this source tree.
285
+ */const Mf=$("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"}]]);/**
286
+ * @license lucide-react v0.298.0 - ISC
287
+ *
288
+ * This source code is licensed under the ISC license.
289
+ * See the LICENSE file in the root directory of this source tree.
290
+ */const an=$("Sparkles",[["path",{d:"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z",key:"17u4zn"}],["path",{d:"M5 3v4",key:"bklmnn"}],["path",{d:"M19 17v4",key:"iiml17"}],["path",{d:"M3 5h4",key:"nem4j1"}],["path",{d:"M17 19h4",key:"lbex7p"}]]);/**
291
+ * @license lucide-react v0.298.0 - ISC
292
+ *
293
+ * This source code is licensed under the ISC license.
294
+ * See the LICENSE file in the root directory of this source tree.
295
+ */const hc=$("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"}]]);/**
296
+ * @license lucide-react v0.298.0 - ISC
297
+ *
298
+ * This source code is licensed under the ISC license.
299
+ * See the LICENSE file in the root directory of this source tree.
300
+ */const ri=$("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/**
301
+ * @license lucide-react v0.298.0 - ISC
302
+ *
303
+ * This source code is licensed under the ISC license.
304
+ * See the LICENSE file in the root directory of this source tree.
305
+ */const si=$("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"}]]);/**
306
+ * @license lucide-react v0.298.0 - ISC
307
+ *
308
+ * This source code is licensed under the ISC license.
309
+ * See the LICENSE file in the root directory of this source tree.
310
+ */const zu=$("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/**
311
+ * @license lucide-react v0.298.0 - ISC
312
+ *
313
+ * This source code is licensed under the ISC license.
314
+ * See the LICENSE file in the root directory of this source tree.
315
+ */const pt=$("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/**
316
+ * @license lucide-react v0.298.0 - ISC
317
+ *
318
+ * This source code is licensed under the ISC license.
319
+ * See the LICENSE file in the root directory of this source tree.
320
+ */const Zi=$("Zap",[["polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2",key:"45s27k"}]]),fa={glass:{id:"glass",name:"Glass",description:"Interfaz moderna y limpia",descriptionEn:"Modern and clean interface",fonts:{heading:"'Inter', system-ui, sans-serif",body:"'Inter', system-ui, sans-serif",mono:"'Fira Code', 'Consolas', monospace"},preview:{bg:"#f1f5f9",card:"#ffffff",accent:"#10b981",text:"#1e293b"}},matrix:{id:"matrix",name:"Matrix",description:"Estética cyberpunk terminal",descriptionEn:"Cyberpunk terminal aesthetic",fonts:{heading:"'Orbitron', monospace",body:"'IBM Plex Mono', monospace",mono:"'IBM Plex Mono', monospace"},preview:{bg:"#0a0a0a",card:"#0d0d0d",accent:"#00ff88",text:"#e0e0e0"}}},$u="glass",Uf=e=>fa[e]||fa[$u],Vu=v.createContext();function Ff({children:e}){const[t,r]=v.useState([]),n=v.useCallback((i,o="info",c=3e3)=>{const d=Date.now();return r(p=>[...p,{id:d,message:i,type:o}]),c>0&&setTimeout(()=>{r(p=>p.filter(x=>x.id!==d))},c),d},[]),a=v.useCallback(i=>{r(o=>o.filter(c=>c.id!==i))},[]),l=v.useMemo(()=>({success:(i,o)=>n(i,"success",o),error:(i,o)=>n(i,"error",o),warning:(i,o)=>n(i,"warning",o),info:(i,o)=>n(i,"info",o)}),[n]);return s.jsxs(Vu.Provider,{value:{toast:l,removeToast:a},children:[e,s.jsx("div",{className:"fixed bottom-4 right-4 z-[200] space-y-2 pointer-events-none",children:t.map(i=>s.jsxs("div",{className:`pointer-events-auto flex items-center gap-3 px-4 py-3 border backdrop-blur-sm animate-slide-up ${i.type==="success"?"border-matrix/50 bg-matrix/10 text-matrix":i.type==="error"?"border-alert/50 bg-alert/10 text-alert":i.type==="warning"?"border-signal/50 bg-signal/10 text-signal":"border-cyber/50 bg-cyber/10 text-cyber"}`,children:[i.type==="success"&&s.jsx(Re,{className:"w-4 h-4"}),i.type==="error"&&s.jsx(pt,{className:"w-4 h-4"}),i.type==="warning"&&s.jsx(Ie,{className:"w-4 h-4"}),i.type==="info"&&s.jsx(sn,{className:"w-4 h-4"}),s.jsx("span",{className:"font-mono text-sm",children:i.message}),s.jsx("button",{onClick:()=>a(i.id),className:"ml-2 opacity-60 hover:opacity-100",children:s.jsx(pt,{className:"w-3 h-3"})})]},i.id))})]})}const zf=()=>{const e=v.useContext(Vu);if(!e)throw new Error("useToast must be used within ToastProvider");return e.toast},Hu=v.createContext();function $f({children:e,initialTheme:t=$u,initialColorMode:r="light"}){const[n,a]=v.useState(t),[l,i]=v.useState(r);v.useEffect(()=>{document.documentElement.setAttribute("data-theme",n),l==="dark"?(document.documentElement.classList.add("dark"),document.documentElement.classList.remove("light")):(document.documentElement.classList.add("light"),document.documentElement.classList.remove("dark"))},[n,l]);const o=v.useCallback(async x=>{if(fa[x]){a(x);try{await fetch("/api/auth/profile",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({theme:x})})}catch(g){console.error("Error saving theme:",g)}}},[]),c=v.useCallback(async x=>{if(["light","dark"].includes(x)){i(x);try{await fetch("/api/auth/profile",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({colorMode:x})})}catch(g){console.error("Error saving color mode:",g)}}},[]),d=v.useCallback(()=>{c(l==="dark"?"light":"dark")},[l,c]),p=v.useMemo(()=>({theme:n,themeConfig:Uf(n),setTheme:o,themes:fa,colorMode:l,setColorMode:c,toggleColorMode:d,isDark:l==="dark"}),[n,o,l,c,d]);return s.jsx(Hu.Provider,{value:p,children:e})}const Gu=()=>{const e=v.useContext(Hu);if(!e)throw new Error("useTheme must be used within ThemeProvider");return e};function Vf({isOpen:e,onClose:t,roadmap:r,onNavigate:n,t:a}){const[l,i]=v.useState(""),o=v.useRef(null);v.useEffect(()=>{e&&o.current&&o.current.focus()},[e]),v.useEffect(()=>{e||i("")},[e]);const c=v.useMemo(()=>{var g,h,j,b;if(!l.trim()||!r)return[];const d=l.toLowerCase(),p=[];(g=r.features)==null||g.forEach(w=>{var m,u,f;((m=w.name)!=null&&m.toLowerCase().includes(d)||(u=w.description)!=null&&u.toLowerCase().includes(d))&&p.push({type:"feature",id:w.id,name:w.name,description:w.description}),(f=w.tasks)==null||f.forEach(N=>{var k,T;((k=N.name)!=null&&k.toLowerCase().includes(d)||(T=N.description)!=null&&T.toLowerCase().includes(d))&&p.push({type:"task",id:N.id,name:N.name,featureName:w.name,status:N.status})})});const x=((h=r.project_info)==null?void 0:h.shared_resources)||{};return(j=x.ui_components)==null||j.forEach(w=>{var m,u;((m=w.path)!=null&&m.toLowerCase().includes(d)||(u=w.description)!=null&&u.toLowerCase().includes(d))&&p.push({type:"component",name:w.path,description:w.description})}),(b=x.utilities)==null||b.forEach(w=>{var m,u;((m=w.path)!=null&&m.toLowerCase().includes(d)||(u=w.description)!=null&&u.toLowerCase().includes(d))&&p.push({type:"utility",name:w.path,description:w.description})}),p.slice(0,10)},[l,r]);return e?s.jsx("div",{className:"fixed inset-0 bg-black/80 backdrop-blur-sm flex items-start justify-center pt-[15vh] z-[150]",onClick:t,children:s.jsx("div",{className:"w-full max-w-2xl mx-4 animate-slide-up",onClick:d=>d.stopPropagation(),children:s.jsxs("div",{className:"bg-void-200 border border-white/10",children:[s.jsxs("div",{className:"flex items-center gap-3 p-4 border-b border-white/10",children:[s.jsx(nn,{className:"w-5 h-5 text-gray-500"}),s.jsx("input",{ref:o,type:"text",value:l,onChange:d=>i(d.target.value),placeholder:a?a("common.search"):"Search features, tasks, resources...",className:"flex-1 bg-transparent font-mono text-sm text-white placeholder-gray-600 outline-none"}),s.jsx("kbd",{className:"px-2 py-1 bg-void-100 border border-white/10 text-gray-600 font-mono text-[10px]",children:"ESC"})]}),s.jsx("div",{className:"max-h-80 overflow-y-auto",children:l.trim()===""?s.jsxs("div",{className:"p-8 text-center",children:[s.jsx(Ef,{className:"w-10 h-10 mx-auto mb-3 text-gray-700"}),s.jsx("p",{className:"font-mono text-xs text-gray-600",children:a?a("common.search")+"...":"Type to search..."})]}):c.length===0?s.jsxs("div",{className:"p-8 text-center",children:[s.jsx(nn,{className:"w-10 h-10 mx-auto mb-3 text-gray-700"}),s.jsx("p",{className:"font-mono text-xs text-gray-600",children:"No results found"})]}):s.jsx("div",{className:"p-2",children:c.map((d,p)=>{var x;return s.jsxs("button",{onClick:()=>{d.type==="feature"||d.type==="task"?n("features"):(d.type==="component"||d.type==="utility")&&n("resources"),t()},className:"w-full flex items-center gap-3 p-3 hover:bg-white/5 transition-all text-left",children:[s.jsxs("div",{className:`w-8 h-8 border flex items-center justify-center ${d.type==="feature"?"border-matrix/50 bg-matrix/10":d.type==="task"?"border-signal/50 bg-signal/10":"border-cyber/50 bg-cyber/10"}`,children:[d.type==="feature"&&s.jsx(Zi,{className:"w-4 h-4 text-matrix"}),d.type==="task"&&s.jsx(Re,{className:"w-4 h-4 text-signal"}),d.type==="component"&&s.jsx(Mu,{className:"w-4 h-4 text-cyber"}),d.type==="utility"&&s.jsx(Ou,{className:"w-4 h-4 text-cyber"})]}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsx("div",{className:"font-mono text-sm text-white truncate",children:d.name}),s.jsxs("div",{className:"font-mono text-[10px] text-gray-500 truncate",children:[d.type==="task"&&d.featureName?`${d.featureName} • `:"",((x=d.description)==null?void 0:x.slice(0,60))||d.type]})]}),d.status&&s.jsx("span",{className:`px-2 py-0.5 text-[9px] font-mono ${d.status==="completed"?"bg-matrix/20 text-matrix":d.status==="in_progress"?"bg-signal/20 text-signal":"bg-gray-700 text-gray-400"}`,children:d.status})]},`${d.type}-${d.id||d.name}-${p}`)})})}),s.jsx("div",{className:"p-3 border-t border-white/10 flex items-center justify-between",children:s.jsxs("div",{className:"flex items-center gap-4 text-gray-600 font-mono text-[10px]",children:[s.jsxs("span",{children:[s.jsx("kbd",{className:"px-1 bg-void-100 border border-white/10",children:"↑↓"})," Navigate"]}),s.jsxs("span",{children:[s.jsx("kbd",{className:"px-1 bg-void-100 border border-white/10",children:"↵"})," Select"]})]})})]})})}):null}function Hf(e){v.useEffect(()=>{const t=r=>{var n,a,l,i,o;if(r.target.tagName==="INPUT"||r.target.tagName==="TEXTAREA"){r.key==="Escape"&&e.onEscape&&e.onEscape();return}if((r.ctrlKey||r.metaKey)&&r.key==="k"){r.preventDefault(),(n=e.onSearch)==null||n.call(e);return}if((r.ctrlKey||r.metaKey)&&r.key==="s"){r.preventDefault(),(a=e.onSave)==null||a.call(e);return}if(!r.ctrlKey&&!r.metaKey&&!r.altKey&&r.key>="1"&&r.key<="8"){r.preventDefault(),(l=e.onTabChange)==null||l.call(e,parseInt(r.key)-1);return}if(r.key==="Escape"){(i=e.onEscape)==null||i.call(e);return}if(r.key==="?"&&!r.shiftKey){(o=e.onHelp)==null||o.call(e);return}};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e])}const Gf=v.createContext();function Bf({children:e}){const[t,r]=v.useState(()=>{try{const l=localStorage.getItem("roadmap-kit-activities");return l?JSON.parse(l):[]}catch{return[]}}),n=v.useCallback((l,i={})=>{const o={id:Date.now(),action:l,details:i,timestamp:new Date().toISOString(),user:i.user||"System"};r(c=>{const d=[o,...c].slice(0,100);return localStorage.setItem("roadmap-kit-activities",JSON.stringify(d)),d})},[]),a=v.useCallback(()=>{r([]),localStorage.removeItem("roadmap-kit-activities")},[]);return s.jsx(Gf.Provider,{value:{activities:t,logActivity:n,clearActivities:a},children:e})}const xc={en:{nav:{setup:"SETUP",features:"FEATURES",resources:"RESOURCES",debt:"TECH DEBT",info:"INFO",settings:"SETTINGS",help:"HELP"},common:{save:"SAVE",cancel:"CANCEL",confirm:"CONFIRM",delete:"DELETE",edit:"EDIT",add:"ADD",close:"CLOSE",loading:"Loading...",error:"Error",success:"Success",search:"Search...",all:"All",pending:"Pending",inProgress:"In Progress",completed:"Completed",high:"High",medium:"Medium",low:"Low",copy:"Copy",copied:"Copied",download:"Download",deploy:"Deploy",refresh:"Refresh",retry:"Retry",ok:"OK",yes:"Yes",no:"No"},auth:{login:"LOGIN",logout:"LOGOUT",email:"Email",password:"Password",loginTitle:"ACCESS REQUIRED",loginSubtitle:"Enter your credentials",loginButton:"AUTHENTICATE",loginError:"Invalid credentials",verifyingAccess:"> VERIFYING ACCESS...",loadingRoadmap:"> LOADING ROADMAP..."},sidebar:{projectRoadmap:"PROJECT ROADMAP",saveChanges:"SAVE CHANGES",saving:"SAVING...",saved:"SAVED",unsavedChanges:"Unsaved changes",addFeature:"ADD FEATURE",aiGenerate:"AI GENERATE",collapse:"Collapse"},stats:{total:"TOTAL",completed:"DONE",inProgress:"ACTIVE",pending:"TODO",debts:"DEBTS"},features:{title:"FEATURES",noFeatures:"NO FEATURES",addFirst:"Add your first feature to start tracking progress",addFeature:"ADD FEATURE",tasks:"tasks",addTask:"ADD TASK",taskName:"Task name",taskDescription:"Task description",priority:"Priority",assignTo:"Assign to",unassigned:"Unassigned",markComplete:"Mark complete",markPending:"Mark pending",deleteTask:"Delete task",aiNotes:"AI Notes",technicalDebt:"Technical Debt",affectedFiles:"Affected Files",featureName:"Feature name",featureDescription:"Feature description"},resources:{title:"SHARED RESOURCES",subtitle:"Components and utilities that AI should reuse",uiComponents:"UI COMPONENTS",utilities:"UTILITIES",dbTables:"DATABASE TABLES",noComponents:"No components registered",noUtilities:"No utilities registered",noTables:"No tables registered",usage:"Usage",exports:"Exports",fields:"Fields",warning:"Warning"},debt:{title:"TECHNICAL DEBT",subtitle:"Issues to address in future iterations",noDebt:"NO TECHNICAL DEBT",noDebtDesc:"Great! No pending technical debt registered",severity:"Severity",effort:"Effort",source:"Source",bySeverity:"BY SEVERITY",items:"items",high:"HIGH",medium:"MEDIUM",low:"LOW",status:"STATUS",pending:"PENDING",inProgress:"IN PROGRESS",resolved:"RESOLVED",filter:"FILTER",all:"ALL",clear:"CLEAR",addDebt:"ADD DEBT",addFirstDebt:"ADD FIRST DEBT",noMatch:"NO ITEMS MATCH FILTERS",description:"DESCRIPTION",impact:"IMPACT",solution:"PROPOSED SOLUTION",affectedFiles:"AFFECTED FILES",feature:"FEATURE",task:"TASK",priority:"PRIORITY",notEstimated:"Not estimated",created:"Created",resolvedAt:"Resolved",assigned:"Assigned",due:"Due",jsonSchema:"JSON SCHEMA FOR TECHNICAL DEBT"},info:{title:"PROJECT INFO",version:"Version",lastSync:"Last Sync",stack:"Tech Stack",architecture:"Architecture",purpose:"Purpose",conventions:"Conventions",naming:"Naming",fileStructure:"File Structure",database:"Database",styling:"Styling",errorHandling:"Error Handling"},settings:{title:"SETTINGS",profile:"PROFILE",users:"USERS",history:"HISTORY",files:"FILES",language:"LANGUAGE",yourProfile:"YOUR PROFILE",name:"Name",currentPassword:"Current Password",newPassword:"New Password",updateProfile:"UPDATE PROFILE",authRequired:"Authentication Required",authRequiredDesc:"Disable to allow anonymous access",addUser:"ADD USER",role:"Role",admin:"Admin",member:"Member",createdAt:"Created",lastLogin:"Last Login",never:"Never",deleteUser:"Delete user",editUser:"Edit user",createUser:"CREATE USER",updateUser:"UPDATE USER",versionHistory:"VERSION HISTORY",lastChanges:"Last {count} changes",clickToPreview:"Click to preview & restore",noVersions:"NO VERSIONS YET",versionsAutoSaved:"Versions are saved automatically when you save changes",loadHistory:"LOAD HISTORY",versionDiff:"VERSION DIFF",restoreVersion:"RESTORE THIS VERSION",restoreTitle:"RESTORE VERSION",restoreMessage:"This will restore the selected version. A backup of the current state will be saved first.",restore:"RESTORE",restored:"VERSION RESTORED",restoredMessage:"The roadmap has been restored successfully. A backup was saved.",restoreFailed:"RESTORE FAILED",added:"ADDED",removed:"REMOVED",modified:"MODIFIED",noChanges:"NO CHANGES",matchesVersion:"Current roadmap matches this version",viewRawJson:"View raw JSON",closePreview:"CLOSE PREVIEW",feature:"FEATURE",projectFiles:"PROJECT FILES",clinerules:".clinerules",clinerulesDesc:"AI rules file",roadmapJson:"roadmap.json",roadmapJsonDesc:"Project roadmap data",editJson:"EDIT JSON",viewJson:"VIEW JSON",applyChanges:"APPLY",invalidJson:"Invalid JSON",deployFiles:"DEPLOY FILES",deployBoth:"Deploy both .clinerules and .cursorrules",deploying:"DEPLOYING...",downloadFiles:"DOWNLOAD FILES"},help:{title:"HELP",templates:"TEMPLATES",commits:"COMMITS",aiWorkflow:"AI WORKFLOW",debug:"DEBUG",referenceFiles:"# REFERENCE FILES FOR AI",sharePaths:"Share these paths with your AI assistant:",clinerulesTpl:"CLINERULES TEMPLATE",roadmapTpl:"ROADMAP TEMPLATE",exampleEcommerce:"EXAMPLE: E-COMMERCE",exampleApi:"EXAMPLE: API REST",debtGuide:"DEBT GUIDE",aiInstructions:"# AI INSTRUCTIONS",quickPrompt:"QUICK PROMPT",copyPrompt:"COPY PROMPT",commitFormat:"# COMMIT FORMAT",commitFormatDesc:"Use this format for auto-updating roadmap:",availableTags:"AVAILABLE TAGS:",tag:"TAG",values:"VALUES",example:"EXAMPLE",examples:"EXAMPLES:",completeTask:"# Complete a task",taskInProgress:"# Task in progress",withDebt:"# With technical debt",syncWithGit:"SYNC WITH GIT",afterCommits:"After commits, run:",updatesInfo:"This updates: task status, metrics, debt, and progress.",recommendedWorkflow:"# RECOMMENDED WORKFLOW",step01:"AI reads .clinerules and roadmap.json",step02:"AI checks shared_resources before creating code",step03:"AI updates roadmap and commits with tags",aiMustDo:"AI MUST DO",aiMustNot:"AI MUST NOT",mustDoList:["Read task description before starting","Check shared resources before creating code","Reuse existing components and utilities","Follow project conventions","Register technical debt if incomplete","Use correct commit format"],mustNotList:["Create duplicate components","Ignore project conventions","Forget to register technical debt","Commit without required tags","Modify shared resources without reason"],troubleshooting:"# TROUBLESHOOTING",fileSummary:"FILE SUMMARY:",file:"FILE",location:"LOCATION",purposeCol:"PURPOSE",projectState:"Project state",aiRules:"AI rules",cursorRules:"Cursor rules",config:"Configuration"},setup:{title:"AI SETUP WIZARD",subtitle:"Describe your project and Claude will generate the configuration",requirements:"REQUIREMENTS",requirementsPlaceholder:"Describe the features, functionality or improvements you want to add to your project...",projectScan:"PROJECT SCAN",scanning:"Scanning project...",scanComplete:"Scan complete",files:"files",techStack:"Tech Stack",analyze:"ANALYZE WITH AI",analyzing:"Analyzing...",claudeCode:"Claude Code CLI",available:"Available",notAvailable:"Not available",usingSubscription:"Using your Claude subscription",setupComplete:"SETUP COMPLETE",setupCompleteDesc:"Your roadmap is configured and ready to use",roadmapStatus:"ROADMAP STATUS",goToDashboard:"GO TO DASHBOARD",reconfigure:"RECONFIGURE",stepConnect:"CONNECT",stepDescribe:"DESCRIBE",stepReview:"REVIEW",stepDone:"DONE",chooseConnection:"CHOOSE CONNECTION MODE",chooseConnectionDesc:"Choose how to connect with Claude to generate your project configuration.",recommended:"RECOMMENDED",apiKeyMode:"API KEY",apiKeyDesc:"Use an Anthropic API key. Pay per use (~$0.05-0.15 per generation).",apiKeyConfigured:"API Key configured",noApiKey:"No API Key configured",installClaudeCode:"INSTALL CLAUDE CODE",installClaudeCodeDesc:"To use your subscription, you need Claude Code installed and authenticated.",verifyAgain:"VERIFY AGAIN",continueWith:"CONTINUE WITH CLAUDE CODE",roadmapComplete:"ROADMAP COMPLETE",roadmapIncomplete:"ROADMAP INCOMPLETE",roadmapNeedsReview:"ROADMAP NEEDS REVIEW",issuesToFix:"ISSUES TO FIX",warnings:"WARNINGS",continueToDashboard:"CONTINUE TO DASHBOARD",regenerateAnyway:"REGENERATE ANYWAY",aiFixIssues:"AI FIX ISSUES",skipAnyway:"SKIP ANYWAY",projectAnalysis:"PROJECT ANALYSIS",keyFiles:"KEY FILES",allFiles:"ALL FILES",requirementsDesc:"Describe the features, functionality or improvements you want to implement. Claude will analyze your project and generate a structured roadmap.",analyzeGenerate:"ANALYZE & GENERATE ROADMAP",analyzingProject:"ANALYZING PROJECT...",analysisSummary:"ANALYSIS SUMMARY",suggestions:"SUGGESTIONS",generatedRoadmap:"GENERATED ROADMAP",featuresPreview:"FEATURES PREVIEW",applyConfig:"APPLY CONFIGURATION",setupDone:"SETUP COMPLETE",setupDoneDesc:"Your roadmap.json and .clinerules have been generated and saved.",startOver:"START OVER",viewDashboard:"VIEW DASHBOARD"},modals:{addFeature:"ADD FEATURE",editFeature:"EDIT FEATURE",addTask:"ADD TASK",deleteConfirm:"Are you sure you want to delete this?",unsavedWarning:"You have unsaved changes. Are you sure you want to leave?"}},es:{nav:{setup:"ASISTENTE",features:"ESTADO",resources:"RECURSOS",debt:"DEUDA TÉCNICA",info:"INFO",settings:"CONFIG",help:"AYUDA"},common:{save:"GUARDAR",cancel:"CANCELAR",confirm:"CONFIRMAR",delete:"ELIMINAR",edit:"EDITAR",add:"AÑADIR",close:"CERRAR",loading:"Cargando...",error:"Error",success:"Éxito",search:"Buscar...",all:"Todos",pending:"Pendiente",inProgress:"En Progreso",completed:"Completado",high:"Alta",medium:"Media",low:"Baja",copy:"Copiar",copied:"Copiado",download:"Descargar",deploy:"Desplegar",refresh:"Actualizar",retry:"Reintentar",ok:"OK",yes:"Sí",no:"No"},auth:{login:"INICIAR SESIÓN",logout:"CERRAR SESIÓN",email:"Email",password:"Contraseña",loginTitle:"ACCESO REQUERIDO",loginSubtitle:"Introduce tus credenciales",loginButton:"AUTENTICAR",loginError:"Credenciales inválidas",verifyingAccess:"> VERIFICANDO ACCESO...",loadingRoadmap:"> CARGANDO ROADMAP..."},sidebar:{projectRoadmap:"ROADMAP DEL PROYECTO",saveChanges:"GUARDAR CAMBIOS",saving:"GUARDANDO...",saved:"GUARDADO",unsavedChanges:"Cambios sin guardar",addFeature:"AÑADIR FEATURE",aiGenerate:"GENERAR CON IA",collapse:"Colapsar"},stats:{total:"TOTAL",completed:"LISTO",inProgress:"ACTIVO",pending:"PEND.",debts:"DEUDAS"},features:{title:"FEATURES",noFeatures:"SIN FEATURES",addFirst:"Añade tu primera feature para empezar a trackear el progreso",addFeature:"AÑADIR FEATURE",tasks:"tareas",addTask:"AÑADIR TAREA",taskName:"Nombre de la tarea",taskDescription:"Descripción de la tarea",priority:"Prioridad",assignTo:"Asignar a",unassigned:"Sin asignar",markComplete:"Marcar completada",markPending:"Marcar pendiente",deleteTask:"Eliminar tarea",aiNotes:"Notas de IA",technicalDebt:"Deuda Técnica",affectedFiles:"Archivos Afectados",featureName:"Nombre de la feature",featureDescription:"Descripción de la feature"},resources:{title:"RECURSOS COMPARTIDOS",subtitle:"Componentes y utilidades que la IA debe reutilizar",uiComponents:"COMPONENTES UI",utilities:"UTILIDADES",dbTables:"TABLAS DE BD",noComponents:"Sin componentes registrados",noUtilities:"Sin utilidades registradas",noTables:"Sin tablas registradas",usage:"Uso",exports:"Exporta",fields:"Campos",warning:"Advertencia"},debt:{title:"DEUDA TÉCNICA",subtitle:"Problemas a resolver en futuras iteraciones",noDebt:"SIN DEUDA TÉCNICA",noDebtDesc:"¡Genial! No hay deuda técnica pendiente registrada",severity:"Severidad",effort:"Esfuerzo",source:"Origen",bySeverity:"POR SEVERIDAD",items:"elementos",high:"ALTA",medium:"MEDIA",low:"BAJA",status:"ESTADO",pending:"PENDIENTE",inProgress:"EN PROGRESO",resolved:"RESUELTO",filter:"FILTRAR",all:"TODOS",clear:"LIMPIAR",addDebt:"AÑADIR DEUDA",addFirstDebt:"AÑADIR PRIMERA DEUDA",noMatch:"NINGÚN ELEMENTO COINCIDE CON LOS FILTROS",description:"DESCRIPCIÓN",impact:"IMPACTO",solution:"SOLUCIÓN PROPUESTA",affectedFiles:"ARCHIVOS AFECTADOS",feature:"CARACTERÍSTICA",task:"TAREA",priority:"PRIORIDAD",notEstimated:"Sin estimar",created:"Creado",resolvedAt:"Resuelto",assigned:"Asignado",due:"Vence",jsonSchema:"ESQUEMA JSON PARA DEUDA TÉCNICA"},info:{title:"INFO DEL PROYECTO",version:"Versión",lastSync:"Última Sync",stack:"Stack Técnico",architecture:"Arquitectura",purpose:"Propósito",conventions:"Convenciones",naming:"Nomenclatura",fileStructure:"Estructura de Archivos",database:"Base de Datos",styling:"Estilos",errorHandling:"Manejo de Errores"},settings:{title:"CONFIGURACIÓN",profile:"PERFIL",users:"USUARIOS",history:"HISTORIAL",files:"ARCHIVOS",language:"IDIOMA",yourProfile:"TU PERFIL",name:"Nombre",currentPassword:"Contraseña Actual",newPassword:"Nueva Contraseña",updateProfile:"ACTUALIZAR PERFIL",authRequired:"Autenticación Requerida",authRequiredDesc:"Desactiva para permitir acceso anónimo",addUser:"AÑADIR USUARIO",role:"Rol",admin:"Admin",member:"Miembro",createdAt:"Creado",lastLogin:"Último Login",never:"Nunca",deleteUser:"Eliminar usuario",editUser:"Editar usuario",createUser:"CREAR USUARIO",updateUser:"ACTUALIZAR USUARIO",versionHistory:"HISTORIAL DE VERSIONES",lastChanges:"Últimos {count} cambios",clickToPreview:"Click para previsualizar y restaurar",noVersions:"SIN VERSIONES AÚN",versionsAutoSaved:"Las versiones se guardan automáticamente al guardar cambios",loadHistory:"CARGAR HISTORIAL",versionDiff:"DIFF DE VERSIÓN",restoreVersion:"RESTAURAR ESTA VERSIÓN",restoreTitle:"RESTAURAR VERSIÓN",restoreMessage:"Esto restaurará la versión seleccionada. Se guardará una copia del estado actual primero.",restore:"RESTAURAR",restored:"VERSIÓN RESTAURADA",restoredMessage:"El roadmap ha sido restaurado correctamente. Se guardó una copia de respaldo.",restoreFailed:"ERROR AL RESTAURAR",added:"AÑADIDO",removed:"ELIMINADO",modified:"MODIFICADO",noChanges:"SIN CAMBIOS",matchesVersion:"El roadmap actual coincide con esta versión",viewRawJson:"Ver JSON raw",closePreview:"CERRAR PREVIEW",feature:"FEATURE",projectFiles:"ARCHIVOS DEL PROYECTO",clinerules:".clinerules",clinerulesDesc:"Archivo de reglas para IA",roadmapJson:"roadmap.json",roadmapJsonDesc:"Datos del roadmap",editJson:"EDITAR JSON",viewJson:"VER JSON",applyChanges:"APLICAR",invalidJson:"JSON inválido",deployFiles:"DESPLEGAR ARCHIVOS",deployBoth:"Desplegar ambos .clinerules y .cursorrules",deploying:"DESPLEGANDO...",downloadFiles:"DESCARGAR ARCHIVOS"},help:{title:"AYUDA",templates:"PLANTILLAS",commits:"COMMITS",aiWorkflow:"FLUJO IA",debug:"DEBUG",referenceFiles:"# ARCHIVOS DE REFERENCIA PARA IA",sharePaths:"Comparte estas rutas con tu asistente IA:",clinerulesTpl:"PLANTILLA CLINERULES",roadmapTpl:"PLANTILLA ROADMAP",exampleEcommerce:"EJEMPLO: E-COMMERCE",exampleApi:"EJEMPLO: API REST",debtGuide:"GUÍA DE DEUDA",aiInstructions:"# INSTRUCCIONES PARA IA",quickPrompt:"PROMPT RÁPIDO",copyPrompt:"COPIAR PROMPT",commitFormat:"# FORMATO DE COMMITS",commitFormatDesc:"Usa este formato para actualizar el roadmap automáticamente:",availableTags:"TAGS DISPONIBLES:",tag:"TAG",values:"VALORES",example:"EJEMPLO",examples:"EJEMPLOS:",completeTask:"# Completar una tarea",taskInProgress:"# Tarea en progreso",withDebt:"# Con deuda técnica",syncWithGit:"SINCRONIZAR CON GIT",afterCommits:"Después de los commits, ejecuta:",updatesInfo:"Esto actualiza: estado de tareas, métricas, deuda y progreso.",recommendedWorkflow:"# FLUJO DE TRABAJO RECOMENDADO",step01:"La IA lee .clinerules y roadmap.json",step02:"La IA verifica shared_resources antes de crear código",step03:"La IA actualiza el roadmap y hace commits con tags",aiMustDo:"LA IA DEBE",aiMustNot:"LA IA NO DEBE",mustDoList:["Leer la descripción de la tarea antes de empezar","Verificar recursos compartidos antes de crear código","Reutilizar componentes y utilidades existentes","Seguir las convenciones del proyecto","Registrar deuda técnica si queda incompleto","Usar el formato de commit correcto"],mustNotList:["Crear componentes duplicados","Ignorar las convenciones del proyecto","Olvidar registrar deuda técnica","Hacer commits sin los tags requeridos","Modificar recursos compartidos sin razón"],troubleshooting:"# SOLUCIÓN DE PROBLEMAS",fileSummary:"RESUMEN DE ARCHIVOS:",file:"ARCHIVO",location:"UBICACIÓN",purposeCol:"PROPÓSITO",projectState:"Estado del proyecto",aiRules:"Reglas de IA",cursorRules:"Reglas de Cursor",config:"Configuración"},setup:{title:"ASISTENTE DE CONFIGURACIÓN IA",subtitle:"Describe tu proyecto y Claude generará la configuración",requirements:"REQUISITOS",requirementsPlaceholder:"Describe las features, funcionalidades o mejoras que quieres añadir a tu proyecto...",projectScan:"ESCANEO DEL PROYECTO",scanning:"Escaneando proyecto...",scanComplete:"Escaneo completo",files:"archivos",techStack:"Stack Tecnológico",analyze:"ANALIZAR CON IA",analyzing:"Analizando...",claudeCode:"Claude Code CLI",available:"Disponible",notAvailable:"No disponible",usingSubscription:"Usando tu suscripción de Claude",setupComplete:"CONFIGURACIÓN COMPLETA",setupCompleteDesc:"Tu roadmap está configurado y listo para usar",roadmapStatus:"ESTADO DEL ROADMAP",goToDashboard:"IR AL DASHBOARD",reconfigure:"RECONFIGURAR",stepConnect:"CONECTAR",stepDescribe:"DESCRIBIR",stepReview:"REVISAR",stepDone:"LISTO",chooseConnection:"ELEGIR MODO DE CONEXIÓN",chooseConnectionDesc:"Elige cómo conectar con Claude para generar la configuración de tu proyecto.",recommended:"RECOMENDADO",apiKeyMode:"API KEY",apiKeyDesc:"Usa una API key de Anthropic. Pago por uso (~$0.05-0.15 por generación).",apiKeyConfigured:"API Key configurada",noApiKey:"Sin API Key configurada",installClaudeCode:"INSTALAR CLAUDE CODE",installClaudeCodeDesc:"Para usar tu suscripción, necesitas tener Claude Code instalado y autenticado.",verifyAgain:"VERIFICAR DE NUEVO",continueWith:"CONTINUAR CON CLAUDE CODE",roadmapComplete:"ROADMAP COMPLETO",roadmapIncomplete:"ROADMAP INCOMPLETO",roadmapNeedsReview:"ROADMAP NECESITA REVISIÓN",issuesToFix:"PROBLEMAS A CORREGIR",warnings:"ADVERTENCIAS",continueToDashboard:"CONTINUAR AL DASHBOARD",regenerateAnyway:"REGENERAR DE TODOS MODOS",aiFixIssues:"IA CORREGIR PROBLEMAS",skipAnyway:"SALTAR DE TODOS MODOS",projectAnalysis:"ANÁLISIS DEL PROYECTO",keyFiles:"ARCHIVOS CLAVE",allFiles:"TODOS LOS ARCHIVOS",requirementsDesc:"Describe las características, funcionalidades o mejoras que quieres implementar. Claude analizará tu proyecto y generará un roadmap estructurado.",analyzeGenerate:"ANALIZAR Y GENERAR ROADMAP",analyzingProject:"ANALIZANDO PROYECTO...",analysisSummary:"RESUMEN DEL ANÁLISIS",suggestions:"SUGERENCIAS",generatedRoadmap:"ROADMAP GENERADO",featuresPreview:"PREVIEW DE FEATURES",applyConfig:"APLICAR CONFIGURACIÓN",setupDone:"CONFIGURACIÓN COMPLETA",setupDoneDesc:"Tu roadmap.json y .clinerules han sido generados y guardados.",startOver:"EMPEZAR DE NUEVO",viewDashboard:"VER DASHBOARD"},modals:{addFeature:"AÑADIR FEATURE",editFeature:"EDITAR FEATURE",addTask:"AÑADIR TAREA",deleteConfirm:"¿Estás seguro de que quieres eliminar esto?",unsavedWarning:"Tienes cambios sin guardar. ¿Estás seguro de que quieres salir?"}}};v.createContext();function Wf(e,t){const r={features:{added:[],removed:[],modified:[]},tasks:{added:[],removed:[],statusChanged:[]},projectInfo:{changed:[]},summary:{added:0,removed:0,modified:0}};if(!e||!t)return r;const n=e.features||[],a=t.features||[],l=new Map(n.map(d=>[d.id,d])),i=new Map(a.map(d=>[d.id,d]));n.forEach(d=>{i.has(d.id)||(r.features.added.push(d),r.summary.added++,(d.tasks||[]).forEach(p=>{r.tasks.added.push({...p,featureName:d.name}),r.summary.added++}))}),a.forEach(d=>{l.has(d.id)||(r.features.removed.push(d),r.summary.removed++,(d.tasks||[]).forEach(p=>{r.tasks.removed.push({...p,featureName:d.name}),r.summary.removed++}))}),n.forEach(d=>{const p=i.get(d.id);if(p){const x=d.tasks||[],g=p.tasks||[],h=new Map(x.map(w=>[w.id,w])),j=new Map(g.map(w=>[w.id,w]));let b=!1;x.forEach(w=>{if(!j.has(w.id))r.tasks.added.push({...w,featureName:d.name}),r.summary.added++,b=!0;else{const m=j.get(w.id);m.status!==w.status&&(r.tasks.statusChanged.push({task:w,featureName:d.name,oldStatus:m.status,newStatus:w.status}),r.summary.modified++,b=!0)}}),g.forEach(w=>{h.has(w.id)||(r.tasks.removed.push({...w,featureName:p.name}),r.summary.removed++,b=!0)}),(b||d.progress!==p.progress)&&r.features.modified.push({current:d,version:p})}});const o=e.project_info||{},c=t.project_info||{};return o.name!==c.name&&r.projectInfo.changed.push({field:"name",old:c.name,new:o.name}),o.description!==c.description&&r.projectInfo.changed.push({field:"description",old:c.description,new:o.description}),r}function Kf(){var lt,gt,Ze,hs,it,_r,xs,gs;const[e,t]=v.useState(null),[r,n]=v.useState(!0),[a,l]=v.useState(!1),[i,o]=v.useState(null),[c,d]=v.useState("features"),[p,x]=v.useState(""),[g,h]=v.useState("all"),[j,b]=v.useState(!1),[w,m]=v.useState(null),[u,f]=v.useState(!1),[N,k]=v.useState(!1),[T,R]=v.useState(!1),[y,P]=v.useState(!1),[S,D]=v.useState(!1),[L,M]=v.useState(!1),[V,F]=v.useState(!1),[se,ie]=v.useState("list"),[C,H]=v.useState("all"),[Y,ne]=v.useState("all"),[J,xt]=v.useState(()=>typeof window<"u"&&localStorage.getItem("roadmap-kit-language")||"es"),$e=O=>{xt(O),localStorage.setItem("roadmap-kit-language",O)},Q=v.useCallback((O,B={})=>{const W=(q,Z)=>Z.split(".").reduce((fe,ot)=>fe==null?void 0:fe[ot],q);let z=W(xc[J],O);return z===void 0&&(z=W(xc.en,O)),z===void 0?O:(typeof z=="string"&&Object.entries(B).forEach(([q,Z])=>{z=z.replace(`{${q}}`,Z)}),z)},[J]),[pe,Ae]=v.useState({checking:!0,authenticated:!1,authEnabled:!1}),[It,hr]=v.useState(null),[Or,Wt]=v.useState([]),{setTheme:Dr}=Gu(),[ee,kt]=v.useState({show:!1,title:"",message:"",type:"warning",confirmText:"CONFIRM",cancelText:"CANCEL",onConfirm:null,onCancel:null}),fs=O=>new Promise(B=>{kt({show:!0,title:O.title||"Confirm",message:O.message||"Are you sure?",type:O.type||"warning",confirmText:O.confirmText||"CONFIRM",cancelText:O.cancelText||"CANCEL",onConfirm:()=>{kt(W=>({...W,show:!1})),B(!0)},onCancel:()=>{kt(W=>({...W,show:!1})),B(!1)}})}),ve=O=>{kt({show:!0,title:O.title||(O.type==="success"?"Success":O.type==="error"?"Error":"Info"),message:O.message,type:O.type||"info",confirmText:"OK",cancelText:null,onConfirm:()=>kt(B=>({...B,show:!1})),onCancel:null})};v.useEffect(()=>{xr()},[]);const Xe=async()=>{try{const O=await fetch("/api/team-members");if(O.ok){const B=await O.json();Wt(B.members||[])}}catch(O){console.error("Error loading team members:",O)}},xr=async()=>{var O,B;try{const z=await(await fetch("/api/auth/status")).json();Ae({checking:!1,authenticated:z.authenticated,authEnabled:z.authEnabled,user:z.user||null}),(O=z.user)!=null&&O.theme&&document.documentElement.setAttribute("data-theme",z.user.theme),(B=z.user)!=null&&B.colorMode&&(document.documentElement.classList.remove("light","dark"),document.documentElement.classList.add(z.user.colorMode)),(z.authenticated||!z.authEnabled)&&(oe(),Xe())}catch{Ae({checking:!1,authenticated:!0,authEnabled:!1,user:null}),oe(),Xe()}},A=async(O,B)=>{var W,z;hr(null);try{const q=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:O,password:B})}),Z=await q.json();q.ok?(Ae({checking:!1,authenticated:!0,authEnabled:!0,user:Z.user}),(W=Z.user)!=null&&W.theme&&document.documentElement.setAttribute("data-theme",Z.user.theme),(z=Z.user)!=null&&z.colorMode&&(document.documentElement.classList.remove("light","dark"),document.documentElement.classList.add(Z.user.colorMode)),oe()):hr(Z.error||"Error de autenticacion")}catch{hr("Error de conexion")}},G=async()=>{try{await fetch("/api/auth/logout",{method:"POST"}),Ae({checking:!1,authenticated:!1,authEnabled:!0,user:null}),t(null)}catch(O){console.error("Logout error:",O)}},oe=async()=>{try{n(!0),o(null);const O=await fetch("/roadmap.json");if(O.status===401&&(await O.json().catch(()=>({}))).requiresAuth){Ae({checking:!1,authenticated:!1,authEnabled:!0}),n(!1);return}const B=await O.json();if(B.exists===!1||B.redirectToSetup){t({project_info:{name:"",description:"",stack:[]},features:[]}),d("setup"),n(!1);return}if(!O.ok)throw new Error("No se pudo cargar roadmap.json");if(B.features){B.features.forEach(z=>{var q;if(((q=z.tasks)==null?void 0:q.length)>0){const Z=z.tasks.filter(fe=>fe.status==="completed").length;z.progress=Math.round(Z/z.tasks.length*100)}else z.progress=0});const W=B.features.flatMap(z=>z.tasks||[]);if(W.length>0){const z=W.filter(q=>q.status==="completed").length;B.project_info.total_progress=Math.round(z/W.length*100)}}t(B),b(!1)}catch(O){o(O.message)}finally{n(!1)}},[Ne,Pe]=v.useState(null);v.useEffect(()=>{var fe;if(!(e!=null&&e.project_info))return;const O=((fe=e.project_info.theme)==null?void 0:fe.color)||"#00ff88",B=e.project_info.name||"Roadmap";document.title=`${B} | Roadmap`;const W=document.createElement("canvas");W.width=32,W.height=32;const z=W.getContext("2d");z.fillStyle=O,z.beginPath(),z.roundRect(2,2,28,28,6),z.fill(),z.strokeStyle="rgba(255,255,255,0.3)",z.lineWidth=2,z.beginPath(),z.roundRect(4,4,24,24,4),z.stroke();const q=W.toDataURL("image/png");let Z=document.querySelector('link[rel="icon"]');Z||(Z=document.createElement("link"),Z.rel="icon",document.head.appendChild(Z)),Z.href=q},[(gt=(lt=e==null?void 0:e.project_info)==null?void 0:lt.theme)==null?void 0:gt.color,(Ze=e==null?void 0:e.project_info)==null?void 0:Ze.name]);const Ot=async()=>{try{l(!0),Pe(null);const O=await fetch("/api/save-roadmap",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(O.status===401&&(await O.json()).requiresAuth){Ae({checking:!1,authenticated:!1,authEnabled:!0});return}if(!O.ok){const B=await O.json().catch(()=>({}));throw new Error(B.error||"Error al guardar")}b(!1),Pe({type:"success",text:"SYNC OK"}),setTimeout(()=>Pe(null),3e3)}catch(O){Pe({type:"error",text:`ERR: ${O.message}`}),setTimeout(()=>Pe(null),5e3)}finally{l(!1)}},Dt=v.useCallback((O,B,W)=>{t(z=>{const q=JSON.parse(JSON.stringify(z)),Z=q.features.find(de=>de.id===O);if(Z){const de=Z.tasks.find(E=>E.id===B);if(de){if(de.status=W,W==="completed"&&!de.completed_at){if(de.completed_at=new Date().toISOString(),de.assigned_name)de.completed_by=de.assigned_name;else if(de.assigned_to){const _=(q.project_info.team||[]).find(K=>K.id===de.assigned_to);de.completed_by=(_==null?void 0:_.name)||"Unknown"}}W==="in_progress"&&!de.started_at&&(de.started_at=new Date().toISOString()),W!=="completed"&&(de.completed_by=null,de.completed_at=null);const E=Z.tasks.filter(_=>_.status==="completed").length;Z.progress=Math.round(E/Z.tasks.length*100)}}const fe=q.features.flatMap(de=>de.tasks),ot=fe.filter(de=>de.status==="completed").length;return q.project_info.total_progress=Math.round(ot/fe.length*100),q}),b(!0)},[]),Kt=v.useCallback((O,B)=>{t(W=>{const z=JSON.parse(JSON.stringify(W)),q=z.features.find(Z=>Z.id===O);if(q){q.tasks.push({id:`${O}-${Date.now()}`,name:B.name,description:B.description||"",status:"pending",priority:B.priority||"medium",ai_notes:"",affected_files:[],reused_resources:[],git:{branch:null,pr_number:null,pr_url:null,last_commit:null,commits:[]},metrics:{lines_added:0,lines_removed:0,files_created:0,files_modified:0,complexity_score:0},technical_debt:[],started_at:null,completed_at:null});const Z=q.tasks.filter(fe=>fe.status==="completed").length;q.progress=Math.round(Z/q.tasks.length*100)}return z}),b(!0),m(null)},[]),Yt=v.useCallback(O=>{t(B=>{const W=JSON.parse(JSON.stringify(B));return W.features.push({id:O.id||`feature-${Date.now()}`,name:O.name,description:O.description||"",status:"pending",progress:0,priority:O.priority||"medium",tasks:[]}),W}),b(!0),f(!1)},[]),Pr=()=>e!=null&&e.features?e.features.map(O=>{const B=O.tasks.filter(W=>{var z;if(g!=="all"&&W.status!==g)return!1;if(p){const q=p.toLowerCase();return W.name.toLowerCase().includes(q)||((z=W.description)==null?void 0:z.toLowerCase().includes(q))||W.id.toLowerCase().includes(q)}return!0});return{...O,tasks:B}}).filter(O=>O.tasks.length>0||!p):[],Lr=()=>{if(!(e!=null&&e.features))return{total:0,completed:0,inProgress:0,pending:0,debts:0};let O=0,B=0,W=0,z=0,q=0;return e.features.forEach(Z=>{Z.tasks.forEach(fe=>{O++,fe.status==="completed"?B++:fe.status==="in_progress"?W++:z++,fe.technical_debt&&(q+=fe.technical_debt.length)})}),{total:O,completed:B,inProgress:W,pending:z,debts:q}},Pt=[{id:"setup",label:Q("nav.setup"),icon:an,key:"1"},{id:"features",label:Q("nav.features"),icon:Zi,key:"2"},{id:"metrics",label:J==="es"?"MÉTRICAS":"METRICS",icon:wf,key:"3"},{id:"resources",label:Q("nav.resources"),icon:Mu,key:"4"},{id:"debt",label:Q("nav.debt"),icon:Ie,key:"5"},{id:"info",label:Q("nav.info"),icon:sn,key:"6"},{id:"settings",label:Q("nav.settings"),icon:Mf,key:"7"},{id:"help",label:Q("nav.help"),icon:If,key:"8"}];if(Hf({onSearch:()=>D(!0),onSave:()=>j&&Ot(),onTabChange:O=>{Pt[O]&&d(Pt[O].id)},onEscape:()=>{D(!1),M(!1),F(!1),kt(O=>({...O,show:!1}))},onHelp:()=>M(!0)}),pe.authEnabled&&!pe.authenticated&&!pe.checking)return s.jsx(dh,{onLogin:A,error:It});if(pe.checking||r)return s.jsx("div",{className:"min-h-screen flex items-center justify-center bg-black",children:s.jsxs("div",{className:"text-center",children:[s.jsxs("div",{className:"relative mb-8",children:[s.jsx("div",{className:"w-20 h-20 border-2 border-matrix/30 flex items-center justify-center",children:s.jsx(ri,{className:"w-8 h-8 text-matrix animate-pulse"})}),s.jsx("div",{className:"absolute -top-1 -left-1 w-3 h-3 border-l-2 border-t-2 border-matrix"}),s.jsx("div",{className:"absolute -top-1 -right-1 w-3 h-3 border-r-2 border-t-2 border-matrix"}),s.jsx("div",{className:"absolute -bottom-1 -left-1 w-3 h-3 border-l-2 border-b-2 border-matrix"}),s.jsx("div",{className:"absolute -bottom-1 -right-1 w-3 h-3 border-r-2 border-b-2 border-matrix"})]}),s.jsxs("p",{className:"font-mono text-matrix text-sm tracking-widest",children:[pe.checking?"> VERIFYING ACCESS...":"> LOADING ROADMAP...",s.jsx("span",{className:"animate-blink",children:"_"})]})]})});if(i)return s.jsx("div",{className:"min-h-screen flex items-center justify-center bg-black p-4",children:s.jsxs("div",{className:"theme-card p-8 max-w-md w-full",children:[s.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[s.jsx("div",{className:"led theme-led theme-led-danger"}),s.jsx("span",{className:"font-mono text-alert text-sm tracking-wider",children:"ERROR"})]}),s.jsx("p",{className:"font-mono text-gray-400 text-sm mb-6",children:i}),s.jsx("button",{onClick:oe,className:"theme-btn-primary w-full",children:"RETRY"})]})});const ae=Lr(),Le=Pr(),te=(e==null?void 0:e.project_info)||{};return s.jsxs("div",{className:"min-h-screen bg-black text-gray-100 flex",children:[s.jsx("aside",{className:`fixed left-0 top-0 h-full theme-sidebar z-50 transition-all duration-300 ${T?"w-16":"w-64"}`,children:s.jsxs("div",{className:"flex flex-col h-full",children:[s.jsx("div",{className:"p-4 border-b border-matrix/10",children:s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"w-10 h-10 border border-matrix/50 flex items-center justify-center glow-matrix",children:s.jsx(ri,{className:"w-5 h-5 text-matrix"})}),!T&&s.jsxs("div",{children:[s.jsx("h1",{className:"font-display text-matrix text-lg tracking-wider crt-glow",children:"ROADMAP"}),s.jsx("p",{className:"font-mono text-[10px] text-gray-600 tracking-widest",children:te.name||"PROJECT"})]})]})}),!T&&s.jsxs("div",{className:"p-4 border-b border-matrix/10",children:[s.jsxs("div",{className:"mb-3",children:[s.jsxs("div",{className:"flex items-center justify-between mb-2",children:[s.jsx("span",{className:"font-mono text-[10px] text-gray-500 tracking-widest",children:J==="es"?"PROGRESO":"PROGRESS"}),s.jsxs("span",{className:"font-display text-2xl text-matrix",children:[te.total_progress||0,"%"]})]}),s.jsx("div",{className:"theme-progress",children:s.jsx("div",{className:"theme-progress-fill",style:{width:`${te.total_progress||0}%`}})})]}),s.jsxs("div",{className:"grid grid-cols-3 gap-2 text-center",children:[s.jsxs("div",{children:[s.jsx("div",{className:"font-display text-lg text-matrix",children:ae.completed}),s.jsx("div",{className:"font-mono text-[9px] text-gray-600 tracking-wider",children:Q("stats.completed")})]}),s.jsxs("div",{children:[s.jsx("div",{className:"font-display text-lg text-signal",children:ae.inProgress}),s.jsx("div",{className:"font-mono text-[9px] text-gray-600 tracking-wider",children:Q("stats.inProgress")})]}),s.jsxs("div",{children:[s.jsx("div",{className:"font-display text-lg text-gray-500",children:ae.pending}),s.jsx("div",{className:"font-mono text-[9px] text-gray-600 tracking-wider",children:Q("stats.pending")})]})]})]}),s.jsx("nav",{className:"flex-1 p-2 space-y-1 overflow-y-auto",children:Pt.map(O=>{const B=O.icon,W=c===O.id;return s.jsxs("button",{onClick:()=>d(O.id),className:`theme-nav-item w-full flex items-center gap-3 px-4 py-3 transition-all ${W?"active":"text-gray-500 hover:text-gray-300 hover:bg-white/[0.02]"} ${T?"justify-center px-2":"pl-8"}`,children:[s.jsx(B,{className:"w-4 h-4"}),!T&&s.jsx("span",{className:"flex-1 text-left text-xs",children:O.label})]},O.id)})}),s.jsxs("div",{className:"p-3 border-t border-matrix/10 space-y-2",children:[Ne&&!T&&s.jsx("div",{className:`px-3 py-2 text-xs font-mono text-center border ${Ne.type==="success"?"border-matrix/30 text-matrix bg-matrix/5":"border-alert/30 text-alert bg-alert/5"}`,children:Ne.text}),j&&!T&&s.jsxs("button",{onClick:Ot,disabled:a,className:"theme-btn-primary w-full flex items-center justify-center gap-2",children:[a?s.jsx(Ke,{className:"w-4 h-4 animate-spin"}):s.jsx(Fu,{className:"w-4 h-4"}),Q("common.save")]}),s.jsxs("button",{onClick:()=>R(!T),className:"w-full flex items-center justify-center gap-2 px-3 py-2 text-gray-600 hover:text-gray-400 transition-all font-mono text-xs",children:[s.jsx(Pf,{className:"w-4 h-4"}),!T&&Q("sidebar.collapse")]})]})]})}),s.jsxs("main",{className:`flex-1 transition-all duration-300 ${T?"ml-16":"ml-64"}`,children:[s.jsx("header",{className:"sticky top-0 z-40 bg-black/95 backdrop-blur-sm border-b border-white/5",children:s.jsxs("div",{className:"px-6 py-4",children:[s.jsxs("div",{className:"flex items-center justify-between mb-3",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("h1",{className:"font-display text-xl text-white tracking-wide",children:te.name||"UNNAMED"}),s.jsxs("span",{className:"font-mono text-[10px] px-2 py-1 border border-matrix/30 text-matrix",children:["v",te.version||"0.0.0"]})]}),s.jsx("p",{className:"font-mono text-xs text-gray-600 mt-1 max-w-xl truncate",children:te.description||"No description"})]}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"w-8 h-8 rounded-lg shadow-lg cursor-pointer transition-transform hover:scale-110 ring-2 ring-white/10 hover:ring-white/30",style:{backgroundColor:((hs=te.theme)==null?void 0:hs.color)||"#00ff88",boxShadow:`0 0 20px ${((it=te.theme)==null?void 0:it.color)||"#00ff88"}40`},title:`Theme: ${((_r=te.theme)==null?void 0:_r.name)||"Matrix Green"}
321
+ Click to change`,onClick:()=>P(!0)}),s.jsx("button",{onClick:oe,className:"p-2 border border-white/10 text-gray-500 hover:text-matrix hover:border-matrix/30 transition-all",children:s.jsx(pa,{className:"w-4 h-4"})}),pe.authEnabled&&s.jsxs("button",{onClick:G,className:"flex items-center gap-2 px-3 py-2 border border-white/10 text-gray-500 hover:text-alert hover:border-alert/30 transition-all font-mono text-xs",children:[s.jsx(Df,{className:"w-4 h-4"}),s.jsx("span",{className:"hidden sm:inline",children:Q("auth.logout")})]})]})]}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("span",{className:"font-mono text-xs text-matrix",children:">"}),s.jsx("h2",{className:"font-mono text-sm text-gray-400",children:(xs=Pt.find(O=>O.id===c))==null?void 0:xs.label}),s.jsxs("span",{className:"font-mono text-xs text-gray-700",children:[c==="features"&&`// ${ae.total} tasks in ${((gs=e==null?void 0:e.features)==null?void 0:gs.length)||0} features`,c==="resources"&&"// shared components & utilities",c==="debt"&&`// ${ae.debts} items registered`,c==="info"&&"// stack & conventions",c==="settings"&&"// deploy configuration",c==="help"&&"// documentation"]})]})]})}),s.jsxs("div",{className:"p-6 pb-24 theme-grid-bg min-h-[calc(100vh-120px)]",children:[c==="features"&&s.jsx(Qf,{features:Le,searchTerm:p,setSearchTerm:x,statusFilter:g,setStatusFilter:h,priorityFilter:C,setPriorityFilter:H,assigneeFilter:Y,setAssigneeFilter:ne,viewMode:se,setViewMode:ie,onUpdateTaskStatus:Dt,onAddTask:Kt,showAddTask:w,setShowAddTask:m,setShowAddFeature:f,setShowAIGenerator:k,team:Or,t:Q,language:J,onAssignTask:(O,B,W,z)=>{t(q=>{const Z=JSON.parse(JSON.stringify(q)),fe=Z.features.find(ot=>ot.id===O);if(fe){const ot=fe.tasks.find(de=>de.id===B);ot&&(ot.assigned_to=W,ot.assigned_name=z)}return Z}),b(!0)}}),c==="metrics"&&s.jsx(Zf,{roadmap:e,language:J}),c==="resources"&&s.jsx(eh,{resources:te.shared_resources||{}}),c==="debt"&&s.jsx(th,{roadmap:e,setRoadmap:t,setHasChanges:b,t:Q}),c==="info"&&s.jsx(rh,{projectInfo:te}),c==="settings"&&s.jsx(nh,{roadmap:e,setRoadmap:t,setHasChanges:b,authState:pe,showConfirm:fs,showAlert:ve,t:Q,language:J,changeLanguage:$e}),c==="help"&&s.jsx(ah,{t:Q,language:J}),c==="setup"&&s.jsx(lh,{roadmap:e,setRoadmap:t,setHasChanges:b,loadRoadmap:oe,t:Q,language:J})]})]}),y&&s.jsx(ch,{roadmap:e,setRoadmap:t,setHasChanges:b,onClose:()=>P(!1)}),u&&s.jsx(yc,{onClose:()=>f(!1),children:s.jsx(oh,{onAdd:Yt,onClose:()=>f(!1),team:Or,t:Q,language:J})}),N&&s.jsx(yc,{onClose:()=>k(!1),children:s.jsx(Yf,{roadmap:e,setRoadmap:t,setHasChanges:b,onClose:()=>k(!1)})}),ee.show&&s.jsx("div",{className:"fixed inset-0 bg-black/80 backdrop-blur-sm flex items-center justify-center z-[100] animate-fade-in",children:s.jsxs("div",{className:"bg-void-200 border border-white/10 w-full max-w-md mx-4 animate-slide-up",children:[s.jsxs("div",{className:`p-4 border-b flex items-center gap-3 ${ee.type==="success"?"border-matrix/30 bg-matrix/5":ee.type==="error"?"border-alert/30 bg-alert/5":ee.type==="warning"?"border-signal/30 bg-signal/5":"border-cyber/30 bg-cyber/5"}`,children:[s.jsxs("div",{className:`w-10 h-10 border flex items-center justify-center ${ee.type==="success"?"border-matrix/50 bg-matrix/10":ee.type==="error"?"border-alert/50 bg-alert/10":ee.type==="warning"?"border-signal/50 bg-signal/10":"border-cyber/50 bg-cyber/10"}`,children:[ee.type==="success"&&s.jsx(Re,{className:"w-5 h-5 text-matrix"}),ee.type==="error"&&s.jsx(pt,{className:"w-5 h-5 text-alert"}),ee.type==="warning"&&s.jsx(Ie,{className:"w-5 h-5 text-signal"}),ee.type==="info"&&s.jsx(sn,{className:"w-5 h-5 text-cyber"})]}),s.jsx("h3",{className:`font-mono text-sm tracking-wider ${ee.type==="success"?"text-matrix":ee.type==="error"?"text-alert":ee.type==="warning"?"text-signal":"text-cyber"}`,children:ee.title})]}),s.jsx("div",{className:"p-5",children:s.jsx("p",{className:"font-mono text-sm text-gray-300 leading-relaxed",children:ee.message})}),s.jsxs("div",{className:"p-4 border-t border-white/5 flex gap-3 justify-end",children:[ee.cancelText&&ee.onCancel&&s.jsx("button",{onClick:ee.onCancel,className:"px-5 py-2.5 border border-white/10 text-gray-400 hover:text-white hover:border-white/30 transition-all font-mono text-xs tracking-wider",children:ee.cancelText}),s.jsx("button",{onClick:ee.onConfirm,className:`px-5 py-2.5 border font-mono text-xs tracking-wider transition-all ${ee.type==="success"?"border-matrix/50 bg-matrix/10 text-matrix hover:bg-matrix/20":ee.type==="error"?"border-alert/50 bg-alert/10 text-alert hover:bg-alert/20":ee.type==="warning"?"border-signal/50 bg-signal/10 text-signal hover:bg-signal/20":"border-cyber/50 bg-cyber/10 text-cyber hover:bg-cyber/20"}`,children:ee.confirmText})]})]})}),s.jsx(Vf,{isOpen:S,onClose:()=>D(!1),roadmap:e,onNavigate:d,t:Q}),L&&s.jsx("div",{className:"fixed inset-0 bg-black/80 backdrop-blur-sm flex items-center justify-center z-[150]",onClick:()=>M(!1),children:s.jsxs("div",{className:"bg-void-200 border border-white/10 w-full max-w-md mx-4 animate-slide-up",onClick:O=>O.stopPropagation(),children:[s.jsxs("div",{className:"p-4 border-b border-white/10 flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx(pc,{className:"w-5 h-5 text-cyber"}),s.jsx("h3",{className:"font-mono text-sm text-white",children:J==="es"?"ATAJOS DE TECLADO":"KEYBOARD SHORTCUTS"})]}),s.jsx("button",{onClick:()=>M(!1),className:"text-gray-500 hover:text-white",children:s.jsx(pt,{className:"w-4 h-4"})})]}),s.jsx("div",{className:"p-4 space-y-3",children:[{keys:["Ctrl","K"],desc:J==="es"?"Búsqueda global":"Global search"},{keys:["Ctrl","S"],desc:J==="es"?"Guardar cambios":"Save changes"},{keys:["1-7"],desc:J==="es"?"Cambiar pestaña":"Switch tab"},{keys:["?"],desc:J==="es"?"Mostrar atajos":"Show shortcuts"},{keys:["Esc"],desc:J==="es"?"Cerrar modal":"Close modal"}].map((O,B)=>s.jsxs("div",{className:"flex items-center justify-between py-2 border-b border-white/5",children:[s.jsx("span",{className:"font-mono text-sm text-gray-400",children:O.desc}),s.jsx("div",{className:"flex items-center gap-1",children:O.keys.map((W,z)=>s.jsxs(oi.Fragment,{children:[s.jsx("kbd",{className:"px-2 py-1 bg-void-100 border border-white/10 text-gray-300 font-mono text-xs",children:W}),z<O.keys.length-1&&s.jsx("span",{className:"text-gray-600",children:"+"})]},z))})]},B))})]})}),V&&s.jsx("div",{className:"fixed inset-0 z-[100]",onClick:()=>F(!1),children:s.jsxs("div",{className:"absolute right-0 top-0 h-full w-80 bg-void-200 border-l border-white/10 animate-slide-left",onClick:O=>O.stopPropagation(),children:[s.jsxs("div",{className:"p-4 border-b border-white/10 flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx(Of,{className:"w-5 h-5 text-signal"}),s.jsx("h3",{className:"font-mono text-sm text-white",children:J==="es"?"ACTIVIDAD RECIENTE":"RECENT ACTIVITY"})]}),s.jsx("button",{onClick:()=>F(!1),className:"text-gray-500 hover:text-white",children:s.jsx(pt,{className:"w-4 h-4"})})]}),s.jsx("div",{className:"p-4 overflow-y-auto h-[calc(100%-60px)]",children:s.jsx("p",{className:"font-mono text-xs text-gray-600 text-center py-8",children:J==="es"?"El registro de actividad se mostrará aquí":"Activity log will appear here"})})]})}),s.jsxs("div",{className:"fixed bottom-4 left-1/2 -translate-x-1/2 z-50 hidden md:flex items-center gap-2 px-4 py-2 bg-void-200/90 backdrop-blur-sm border border-white/10",children:[s.jsxs("button",{onClick:()=>D(!0),className:"flex items-center gap-2 px-3 py-1.5 text-gray-500 hover:text-white transition-all font-mono text-xs",children:[s.jsx(nn,{className:"w-3 h-3"}),s.jsx("span",{children:J==="es"?"Buscar":"Search"}),s.jsx("kbd",{className:"px-1.5 py-0.5 bg-void-100 border border-white/10 text-[9px] text-gray-600",children:"⌘K"})]}),s.jsx("div",{className:"w-px h-4 bg-white/10"}),s.jsxs("button",{onClick:()=>{d("features"),ie("kanban")},className:`flex items-center gap-2 px-3 py-1.5 transition-all font-mono text-xs ${se==="kanban"&&c==="features"?"text-matrix":"text-gray-500 hover:text-white"}`,children:[s.jsx(Du,{className:"w-3 h-3"}),s.jsx("span",{children:"Kanban"})]}),s.jsxs("button",{onClick:()=>{d("features"),ie("list")},className:`flex items-center gap-2 px-3 py-1.5 transition-all font-mono text-xs ${se==="list"&&c==="features"?"text-matrix":"text-gray-500 hover:text-white"}`,children:[s.jsx(Lu,{className:"w-3 h-3"}),s.jsx("span",{children:J==="es"?"Lista":"List"})]}),s.jsx("div",{className:"w-px h-4 bg-white/10"}),s.jsx("button",{onClick:()=>M(!0),className:"flex items-center gap-2 px-3 py-1.5 text-gray-500 hover:text-white transition-all font-mono text-xs",children:s.jsx(pc,{className:"w-3 h-3"})})]})]})}function Yf({roadmap:e,setRoadmap:t,setHasChanges:r,onClose:n}){var u;const[a,l]=v.useState(""),[i,o]=v.useState(!1),[c,d]=v.useState(null),[p,x]=v.useState(null),[g,h]=v.useState({checking:!0,available:!1}),[j,b]=v.useState("input");v.useEffect(()=>{fetch("/api/claude-code-status").then(f=>f.json()).then(f=>h({checking:!1,available:f.available,version:f.version})).catch(()=>h({checking:!1,available:!1}))},[]);const w=async()=>{if(!a.trim()){x("Escribe los requisitos o funcionalidades que deseas implementar");return}o(!0),x(null),b("analyzing");try{const N=await(await fetch("/api/scan-project")).json(),k=await fetch("/api/analyze-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({requirements:a,projectScan:N,existingRoadmap:e,useClaudeCode:g.available})}),T=await k.json();if(!k.ok)throw new Error(T.error||"Error analyzing project");d(T),b("result")}catch(f){x(f.message),b("input")}finally{o(!1)}},m=()=>{var f;if(!((f=c==null?void 0:c.analysis)!=null&&f.features)){x("No hay features para añadir");return}t(N=>{const k=JSON.parse(JSON.stringify(N));if(c.analysis.features.forEach(P=>{const S=k.features.findIndex(D=>D.id===P.id||D.name.toLowerCase()===P.name.toLowerCase());if(S>=0){const D=k.features[S];(P.tasks||[]).forEach(V=>{var se;((se=D.tasks)==null?void 0:se.some(ie=>ie.id===V.id||ie.name.toLowerCase()===V.name.toLowerCase()))||(D.tasks||(D.tasks=[]),D.tasks.push({...V,id:V.id||`task-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,status:V.status||"pending",ai_generated:!0,created_at:new Date().toISOString()}))});const M=D.tasks.filter(V=>V.status==="completed").length;D.progress=D.tasks.length>0?Math.round(M/D.tasks.length*100):0}else k.features.push({...P,id:P.id||`feature-${Date.now()}`,status:P.status||"pending",progress:0,ai_generated:!0,created_at:new Date().toISOString(),tasks:(P.tasks||[]).map(D=>({...D,id:D.id||`task-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,status:D.status||"pending"}))})}),c.analysis.shared_resources){k.project_info.shared_resources||(k.project_info.shared_resources={ui_components:[],utilities:[],database_tables:[]});const P=c.analysis.shared_resources;P.ui_components&&P.ui_components.forEach(S=>{k.project_info.shared_resources.ui_components.some(D=>D.path===S.path)||k.project_info.shared_resources.ui_components.push(S)}),P.utilities&&P.utilities.forEach(S=>{k.project_info.shared_resources.utilities.some(D=>D.path===S.path)||k.project_info.shared_resources.utilities.push(S)}),P.database_tables&&P.database_tables.forEach(S=>{k.project_info.shared_resources.database_tables.some(D=>D.name===S.name)||k.project_info.shared_resources.database_tables.push(S)})}const R=k.features.reduce((P,S)=>{var D;return P+(((D=S.tasks)==null?void 0:D.length)||0)},0),y=k.features.reduce((P,S)=>{var D;return P+(((D=S.tasks)==null?void 0:D.filter(L=>L.status==="completed").length)||0)},0);return k.project_info.total_progress=R>0?Math.round(y/R*100):0,k}),r(!0),n()};return s.jsxs("div",{className:"w-full max-w-3xl",children:[s.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[s.jsx("div",{className:"w-10 h-10 border border-cyber/30 bg-cyber/10 flex items-center justify-center",children:s.jsx(an,{className:"w-5 h-5 text-cyber"})}),s.jsxs("div",{children:[s.jsx("h2",{className:"font-display text-xl text-white tracking-wide",children:"AI FEATURE GENERATOR"}),s.jsx("p",{className:"font-mono text-[11px] text-gray-500",children:"Describe lo que necesitas y Claude generará features estructuradas"})]})]}),s.jsx("div",{className:`mb-4 p-3 border font-mono text-[11px] flex items-center gap-2 ${g.checking?"border-gray-700 text-gray-500":g.available?"border-matrix/30 text-matrix bg-matrix/5":"border-alert/30 text-alert bg-alert/5"}`,children:g.checking?s.jsxs(s.Fragment,{children:[s.jsx(Ke,{className:"w-4 h-4 animate-spin"}),"Verificando Claude Code CLI..."]}):g.available?s.jsxs(s.Fragment,{children:[s.jsx(Re,{className:"w-4 h-4"}),"Claude Code CLI disponible ",g.version&&`(${g.version})`]}):s.jsxs(s.Fragment,{children:[s.jsx(Ie,{className:"w-4 h-4"}),"Claude Code CLI no disponible - Se requiere API key"]})}),p&&s.jsxs("div",{className:"mb-4 p-3 border border-alert/30 bg-alert/5 font-mono text-xs text-alert flex items-center gap-2",children:[s.jsx(Ie,{className:"w-4 h-4"}),p]}),j==="input"&&s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider block mb-2",children:"DESCRIBE TUS REQUISITOS Y FUNCIONALIDADES"}),s.jsx("textarea",{value:a,onChange:f=>l(f.target.value),placeholder:`Ejemplo:
322
+ - Sistema de autenticación con login/registro
323
+ - Dashboard con estadísticas de usuarios
324
+ - CRUD de productos con imágenes
325
+ - Notificaciones por email
326
+ - Integración con Stripe para pagos
327
+ - API REST documentada con Swagger`,className:"w-full h-64 theme-input p-4 text-sm resize-none",spellCheck:!1}),s.jsx("p",{className:"mt-2 font-mono text-[10px] text-gray-600",children:"Escribe todo lo que necesitas. Claude analizará el proyecto actual y generará features estructuradas."})]}),s.jsxs("div",{className:"flex gap-3",children:[s.jsxs("button",{onClick:w,disabled:i||!a.trim()||!g.available&&!g.checking,className:"theme-btn-primary flex-1 py-3 disabled:opacity-50 flex items-center justify-center gap-2",children:[s.jsx(an,{className:"w-4 h-4"}),"GENERAR CON IA"]}),s.jsx("button",{onClick:n,className:"px-6 py-3 border border-white/10 text-gray-500 hover:text-white hover:border-white/30 transition-all font-mono text-xs",children:"CANCELAR"})]})]}),j==="analyzing"&&s.jsxs("div",{className:"py-12 text-center",children:[s.jsx(Ke,{className:"w-12 h-12 mx-auto mb-4 animate-spin text-cyber"}),s.jsx("h3",{className:"font-mono text-sm text-white mb-2",children:"ANALIZANDO CON CLAUDE..."}),s.jsx("p",{className:"font-mono text-[11px] text-gray-500",children:"Escaneando proyecto y generando features estructuradas"}),s.jsxs("div",{className:"mt-6 space-y-2 max-w-md mx-auto",children:[s.jsxs("div",{className:"flex items-center gap-2 font-mono text-[10px] text-gray-600",children:[s.jsx(Re,{className:"w-3 h-3 text-matrix"})," Escaneando archivos del proyecto..."]}),s.jsxs("div",{className:"flex items-center gap-2 font-mono text-[10px] text-gray-600",children:[s.jsx(Ke,{className:"w-3 h-3 animate-spin text-cyber"})," Analizando requisitos con Claude..."]})]})]}),j==="result"&&c&&s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"p-4 border border-matrix/30 bg-matrix/5",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[s.jsx(Re,{className:"w-5 h-5 text-matrix"}),s.jsx("span",{className:"font-mono text-sm text-matrix",children:"ANÁLISIS COMPLETADO"})]}),((u=c.analysis)==null?void 0:u.features)&&s.jsxs("div",{className:"space-y-3",children:[s.jsxs("p",{className:"font-mono text-[11px] text-gray-400",children:["Se generaron ",c.analysis.features.length," features:"]}),c.analysis.features.map((f,N)=>{var k;return s.jsxs("div",{className:"p-3 bg-void-100 border border-white/5",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[s.jsx("span",{className:`w-2 h-2 rounded-full ${f.priority==="high"?"bg-alert":f.priority==="medium"?"bg-signal":"bg-cyber"}`}),s.jsx("span",{className:"font-sans text-sm text-white",children:f.name}),s.jsxs("span",{className:"font-mono text-[9px] text-gray-600 bg-white/5 px-1.5 py-0.5",children:[((k=f.tasks)==null?void 0:k.length)||0," tasks"]})]}),s.jsx("p",{className:"font-mono text-[10px] text-gray-500 line-clamp-2",children:f.description})]},N)})]})]}),s.jsxs("details",{className:"group",children:[s.jsx("summary",{className:"font-mono text-[10px] text-gray-600 cursor-pointer hover:text-gray-400",children:"Ver JSON completo"}),s.jsx("div",{className:"mt-2 p-3 bg-void-100 border border-white/5 max-h-48 overflow-auto",children:s.jsx("pre",{className:"font-mono text-[10px] text-gray-500 whitespace-pre-wrap",children:JSON.stringify(c.analysis,null,2)})})]}),s.jsxs("div",{className:"flex gap-3",children:[s.jsxs("button",{onClick:m,className:"theme-btn-primary flex-1 py-3 flex items-center justify-center gap-2",children:[s.jsx(ds,{className:"w-4 h-4"}),"AÑADIR AL ROADMAP"]}),s.jsx("button",{onClick:()=>{b("input"),d(null)},className:"px-6 py-3 border border-white/10 text-gray-500 hover:text-white hover:border-white/30 transition-all font-mono text-xs",children:"REGENERAR"}),s.jsx("button",{onClick:n,className:"px-6 py-3 border border-white/10 text-gray-500 hover:text-white hover:border-white/30 transition-all font-mono text-xs",children:"CANCELAR"})]})]})]})}function Jf({kanbanColumns:e,filteredTasks:t,onUpdateTaskStatus:r,language:n}){const[a,l]=v.useState(null),[i,o]=v.useState(null),c=(h,j)=>{l(j),h.dataTransfer.effectAllowed="move",h.dataTransfer.setData("text/plain",j.id),h.target.style.opacity="0.5"},d=h=>{h.target.style.opacity="1",l(null),o(null)},p=(h,j)=>{h.preventDefault(),h.dataTransfer.dropEffect="move",o(j)},x=h=>{h.currentTarget.contains(h.relatedTarget)||o(null)},g=(h,j)=>{h.preventDefault(),o(null),a&&a.status!==j&&r(a.featureId,a.id,j),l(null)};return s.jsx("div",{className:"grid grid-cols-3 gap-4 min-h-[500px]",children:e.map(h=>{const j=t.filter(w=>w.status===h.id),b=i===h.id&&(a==null?void 0:a.status)!==h.id;return s.jsxs("div",{className:`bg-void-100 border transition-all duration-200 ${b?`border-${h.color} shadow-${h.color}`:"border-white/5"}`,onDragOver:w=>p(w,h.id),onDragLeave:x,onDrop:w=>g(w,h.id),children:[s.jsx("div",{className:`p-3 border-b border-${h.color}/20 bg-${h.color}/5`,children:s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("span",{className:`font-mono text-xs text-${h.color} tracking-wider`,children:h.label}),s.jsx("span",{className:"font-display text-lg text-gray-500",children:j.length})]})}),s.jsxs("div",{className:`p-2 space-y-2 max-h-[500px] overflow-y-auto min-h-[100px] transition-all ${b?`bg-${h.color}/5`:""}`,children:[j.map(w=>{var m;return s.jsxs("div",{draggable:!0,onDragStart:u=>c(u,w),onDragEnd:d,className:`p-3 bg-void-200 border border-white/5 hover:border-white/20 transition-all cursor-grab active:cursor-grabbing select-none ${(a==null?void 0:a.id)===w.id?"opacity-50":""}`,children:[s.jsx("div",{className:"font-mono text-xs text-white mb-1",children:w.name}),s.jsx("div",{className:"font-mono text-[10px] text-gray-600 mb-2",children:w.featureName}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("span",{className:`px-1.5 py-0.5 text-[9px] font-mono ${w.priority==="high"?"bg-alert/20 text-alert":w.priority==="medium"?"bg-signal/20 text-signal":"bg-cyber/20 text-cyber"}`,children:(m=w.priority)==null?void 0:m.toUpperCase()}),w.assigned_name&&s.jsx("span",{className:"font-mono text-[9px] text-gray-500",children:w.assigned_name})]})]},w.id)}),j.length===0&&s.jsx("div",{className:`py-8 text-center border-2 border-dashed transition-all ${b?`border-${h.color}/50`:"border-transparent"}`,children:s.jsx("p",{className:"font-mono text-[10px] text-gray-700",children:b?n==="es"?"Soltar aquí":"Drop here":n==="es"?"Sin tareas":"No tasks"})})]})]},h.id)})})}function Qf({features:e,searchTerm:t,setSearchTerm:r,statusFilter:n,setStatusFilter:a,priorityFilter:l,setPriorityFilter:i,assigneeFilter:o,setAssigneeFilter:c,viewMode:d,setViewMode:p,onUpdateTaskStatus:x,onAddTask:g,showAddTask:h,setShowAddTask:j,setShowAddFeature:b,setShowAIGenerator:w,team:m,onAssignTask:u,t:f,language:N}){const[k,T]=v.useState(!1),R=v.useMemo(()=>{const S=[];return e.forEach(D=>{(D.tasks||[]).forEach(L=>{S.push({...L,featureId:D.id,featureName:D.name})})}),S},[e]),y=v.useMemo(()=>R.filter(S=>!(l!=="all"&&S.priority!==l||o!=="all"&&S.assigned_to!==o)),[R,l,o]),P=[{id:"pending",label:N==="es"?"PENDIENTE":"PENDING",color:"gray"},{id:"in_progress",label:N==="es"?"EN PROGRESO":"IN PROGRESS",color:"signal"},{id:"completed",label:N==="es"?"COMPLETADO":"COMPLETED",color:"matrix"}];return s.jsxs("div",{className:"space-y-6 animate-fade-in",children:[s.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[s.jsxs("div",{className:"flex-1 relative",children:[s.jsx(nn,{className:"w-4 h-4 text-gray-600 absolute left-3 top-1/2 -translate-y-1/2"}),s.jsx("input",{type:"text",placeholder:f?f("common.search"):"search tasks...",value:t,onChange:S=>r(S.target.value),className:"theme-input w-full pl-10 pr-4 py-2.5 text-sm"})]}),s.jsxs("select",{value:n,onChange:S=>a(S.target.value),className:"theme-input px-4 py-2.5 text-sm cursor-pointer",children:[s.jsx("option",{value:"all",children:N==="es"?"TODOS":"ALL STATUS"}),s.jsx("option",{value:"pending",children:N==="es"?"PENDIENTE":"PENDING"}),s.jsx("option",{value:"in_progress",children:N==="es"?"EN PROGRESO":"IN PROGRESS"}),s.jsx("option",{value:"completed",children:N==="es"?"COMPLETADO":"COMPLETED"})]}),s.jsxs("div",{className:"flex border border-white/10",children:[s.jsx("button",{onClick:()=>p("list"),className:`px-3 py-2 transition-all ${d==="list"?"bg-white/10 text-white":"text-gray-500 hover:text-white"}`,title:"List view",children:s.jsx(Lu,{className:"w-4 h-4"})}),s.jsx("button",{onClick:()=>p("kanban"),className:`px-3 py-2 transition-all ${d==="kanban"?"bg-white/10 text-white":"text-gray-500 hover:text-white"}`,title:"Kanban view",children:s.jsx(Du,{className:"w-4 h-4"})})]}),s.jsxs("button",{onClick:()=>T(!k),className:`theme-btn-primary flex items-center gap-2 ${k?"border-cyber/50 text-cyber":""}`,children:[s.jsx(Cf,{className:"w-4 h-4"}),N==="es"?"FILTROS":"FILTERS"]}),s.jsxs("button",{onClick:()=>b(!0),className:"theme-btn-primary flex items-center gap-2",children:[s.jsx(ds,{className:"w-4 h-4"}),N==="es"?"NUEVA FEATURE":"NEW FEATURE"]}),s.jsxs("button",{onClick:()=>w(!0),className:"theme-btn-primary flex items-center gap-2 bg-gradient-to-r from-cyber/20 to-matrix/20 border-cyber/50 hover:border-cyber",children:[s.jsx(an,{className:"w-4 h-4 text-cyber"}),"AI"]})]}),k&&s.jsxs("div",{className:"flex gap-3 p-4 bg-void-100 border border-white/5 animate-fade-in",children:[s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 block mb-1",children:N==="es"?"PRIORIDAD":"PRIORITY"}),s.jsxs("select",{value:l,onChange:S=>i(S.target.value),className:"theme-input px-3 py-1.5 text-xs cursor-pointer",children:[s.jsx("option",{value:"all",children:N==="es"?"TODAS":"ALL"}),s.jsx("option",{value:"high",children:N==="es"?"ALTA":"HIGH"}),s.jsx("option",{value:"medium",children:N==="es"?"MEDIA":"MEDIUM"}),s.jsx("option",{value:"low",children:N==="es"?"BAJA":"LOW"})]})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 block mb-1",children:N==="es"?"ASIGNADO A":"ASSIGNEE"}),s.jsxs("select",{value:o,onChange:S=>c(S.target.value),className:"theme-input px-3 py-1.5 text-xs cursor-pointer",children:[s.jsx("option",{value:"all",children:N==="es"?"TODOS":"ALL"}),s.jsx("option",{value:"",children:N==="es"?"SIN ASIGNAR":"UNASSIGNED"}),m.map(S=>s.jsx("option",{value:S.id,children:S.name},S.id))]})]}),s.jsx("button",{onClick:()=>{i("all"),c("all")},className:"self-end px-3 py-1.5 text-xs text-gray-500 hover:text-white transition-all",children:N==="es"?"LIMPIAR":"CLEAR"})]}),d==="list"&&s.jsx("div",{className:"space-y-4 stagger",children:e.map(S=>s.jsx(qf,{feature:S,onUpdateTaskStatus:x,onAddTask:g,showAddTask:h,setShowAddTask:j,team:m,onAssignTask:u,language:N,t:f},S.id))}),d==="kanban"&&s.jsx(Jf,{kanbanColumns:P,filteredTasks:y,onUpdateTaskStatus:x,language:N}),e.length===0&&d==="list"&&s.jsxs("div",{className:"theme-card p-12 text-center",children:[s.jsx(nn,{className:"w-10 h-10 mx-auto mb-4 text-gray-700"}),s.jsx("p",{className:"font-mono text-gray-600 text-sm",children:N==="es"?"NO HAY TAREAS":"NO TASKS FOUND"})]})]})}function qf({feature:e,onUpdateTaskStatus:t,onAddTask:r,showAddTask:n,setShowAddTask:a,team:l,onAssignTask:i,language:o,t:c}){const[d,p]=v.useState(!0),x={high:{color:"text-alert",border:"border-alert/30",bg:"bg-alert/5"},medium:{color:"text-signal",border:"border-signal/30",bg:"bg-signal/5"},low:{color:"text-cyber",border:"border-cyber/30",bg:"bg-cyber/5"}},g=x[e.priority]||x.medium;return s.jsxs("div",{className:"feature-card",children:[s.jsxs("button",{onClick:()=>p(!d),className:"w-full px-5 py-4 flex items-center gap-4 hover:bg-white/[0.01] transition-colors",children:[s.jsxs("div",{className:"relative w-14 h-14 flex-shrink-0",children:[s.jsxs("svg",{className:"w-full h-full -rotate-90",viewBox:"0 0 36 36",children:[s.jsx("circle",{cx:"18",cy:"18",r:"15",fill:"none",stroke:"var(--bg-secondary)",strokeWidth:"3"}),s.jsx("circle",{cx:"18",cy:"18",r:"15",fill:"none",stroke:"url(#progressGradient)",strokeWidth:"3",strokeLinecap:"round",strokeDasharray:`${e.progress||0}, 100`,className:"transition-all duration-700"}),s.jsx("defs",{children:s.jsxs("linearGradient",{id:"progressGradient",x1:"0%",y1:"0%",x2:"100%",y2:"0%",children:[s.jsx("stop",{offset:"0%",stopColor:"var(--accent-primary)"}),s.jsx("stop",{offset:"100%",stopColor:"var(--accent-tertiary)"})]})})]}),s.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:s.jsxs("span",{className:"font-display text-sm text-matrix",children:[e.progress||0,"%"]})})]}),s.jsxs("div",{className:"flex-1 text-left",children:[s.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[s.jsx("h3",{className:"font-sans font-semibold text-white",children:e.name}),s.jsx("span",{className:`status-badge ${g.color} ${g.border} ${g.bg}`,children:e.priority||"medium"})]}),s.jsx("p",{className:"font-mono text-xs text-gray-600 line-clamp-1",children:e.description})]}),s.jsx(bf,{className:`w-5 h-5 text-gray-600 transition-transform ${d?"rotate-90":""}`})]}),d&&s.jsxs("div",{className:"px-5 pb-5 border-t border-white/5",children:[s.jsxs("div",{className:"py-4",children:[s.jsxs("div",{className:"flex justify-between font-mono text-[10px] text-gray-600 mb-2",children:[s.jsxs("span",{children:[e.tasks.filter(h=>h.status==="completed").length," / ",e.tasks.length," TASKS"]}),s.jsxs("span",{children:[e.progress,"%"]})]}),s.jsx("div",{className:"theme-progress",children:s.jsx("div",{className:"theme-progress-fill",style:{width:`${e.progress}%`}})})]}),s.jsx(Xf,{tasks:e.tasks,featureId:e.id,onUpdateStatus:t,team:l,onAssignTask:i}),n===e.id?s.jsx(ih,{onAdd:h=>r(e.id,h),onCancel:()=>a(null),team:l,t:c,language:o}):s.jsxs("button",{onClick:()=>a(e.id),className:"mt-4 w-full py-3 border border-dashed border-matrix/30 text-matrix font-mono text-xs tracking-wider hover:bg-matrix/5 hover:border-matrix/50 transition-all flex items-center justify-center gap-2",children:[s.jsx(ds,{className:"w-4 h-4"}),c?c("features.addTask"):"ADD TASK"]})]})]})}function Xf({tasks:e=[],featureId:t="",onUpdateStatus:r,team:n=[],onAssignTask:a}){const[l,i]=v.useState(null),[o,c]=v.useState(null),d=(h,j)=>{navigator.clipboard.writeText(h),c(j),setTimeout(()=>c(null),2e3)},p={completed:{led:"theme-led theme-led-success",label:"DONE",color:"text-matrix"},in_progress:{led:"theme-led theme-led-warning",label:"ACTIVE",color:"text-signal"},pending:{led:"led-gray",label:"QUEUE",color:"text-gray-500"}},x={high:{label:"HIGH",color:"text-alert"},medium:{label:"MED",color:"text-signal"},low:{label:"LOW",color:"text-cyber"}},g=h=>{const j=["pending","in_progress","completed"];return j[(j.indexOf(h)+1)%j.length]};return e!=null&&e.length?s.jsx("div",{className:"space-y-2",children:e.map(h=>{var u,f,N,k,T,R,y,P,S,D;const j=p[h.status]||p.pending,b=x[h.priority]||x.medium,w=l===h.id,m=n.find(L=>L.id===h.assigned_to);return s.jsxs("div",{className:"task-row",children:[s.jsxs("div",{className:"flex items-center gap-3 p-3",children:[s.jsx("button",{onClick:L=>{L.stopPropagation(),r==null||r(t,h.id,g(h.status))},className:"flex-shrink-0 p-2 hover:bg-white/5 transition-all",title:`Click to change status (Current: ${j.label})`,children:s.jsx("div",{className:`led ${j.led}`})}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[s.jsx("h4",{className:`font-sans text-sm ${h.status==="completed"?"text-gray-600 line-through":"text-gray-200"}`,children:h.name}),s.jsxs("span",{className:`font-mono text-[9px] ${b.color}`,children:["[",b.label,"]"]}),(m||h.assigned_name)&&s.jsxs("span",{className:"font-mono text-[9px] px-2 py-0.5 bg-signal/10 border border-signal/30 text-signal",children:["@",(m==null?void 0:m.name)||h.assigned_name]}),h.completed_by&&s.jsxs("span",{className:"font-mono text-[9px] px-2 py-0.5 bg-matrix/10 border border-matrix/30 text-matrix",children:["✓ ",h.completed_by]})]}),s.jsx("p",{className:"font-mono text-[11px] text-gray-600 line-clamp-1 mt-0.5",children:h.description})]}),s.jsxs("div",{className:"hidden sm:flex items-center gap-3 font-mono text-[10px] text-gray-600",children:[((u=h.metrics)==null?void 0:u.lines_added)>0&&s.jsxs("span",{children:[s.jsxs("span",{className:"text-matrix",children:["+",h.metrics.lines_added]}),s.jsx("span",{className:"text-gray-700",children:"/"}),s.jsxs("span",{className:"text-alert",children:["-",h.metrics.lines_removed]})]}),((f=h.technical_debt)==null?void 0:f.length)>0&&s.jsxs("span",{className:"flex items-center gap-1 text-signal",children:[s.jsx(Ie,{className:"w-3 h-3"}),h.technical_debt.length]})]}),s.jsx("button",{onClick:()=>i(w?null:h.id),className:"p-2 hover:bg-white/5 transition-all",children:s.jsx(rn,{className:`w-4 h-4 text-gray-600 transition-transform ${w?"rotate-180":""}`})})]}),w&&s.jsxs("div",{className:"px-4 pb-4 pt-2 border-t border-white/5 space-y-4 animate-fade-in",children:[s.jsx("p",{className:"font-mono text-xs text-gray-400",children:h.description}),((N=h.metrics)==null?void 0:N.lines_added)>0&&s.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2",children:[s.jsx(Tn,{label:"LINES",value:s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"text-matrix",children:["+",h.metrics.lines_added]}),"/",s.jsxs("span",{className:"text-alert",children:["-",h.metrics.lines_removed]})]})}),s.jsx(Tn,{label:"FILES",value:h.metrics.files_created+h.metrics.files_modified,color:"text-cyber"}),s.jsx(Tn,{label:"COMPLEXITY",value:`${h.metrics.complexity_score}/10`,color:"text-signal"}),s.jsx(Tn,{label:"COMMITS",value:((T=(k=h.git)==null?void 0:k.commits)==null?void 0:T.length)||0,color:"text-matrix"})]}),((R=h.affected_files)==null?void 0:R.length)>0&&s.jsxs("div",{children:[s.jsx("h5",{className:"font-mono text-[10px] text-gray-600 tracking-wider mb-2",children:"# AFFECTED FILES"}),s.jsx("div",{className:"flex flex-wrap gap-2",children:h.affected_files.map((L,M)=>s.jsxs("button",{onClick:()=>d(L,`file-${h.id}-${M}`),className:"group flex items-center gap-2 font-mono text-[11px] bg-void-100 px-3 py-1.5 border border-white/10 hover:border-matrix/30 transition-all",children:[s.jsx("code",{className:"text-cyber",children:L}),o===`file-${h.id}-${M}`?s.jsx(zt,{className:"w-3 h-3 text-matrix"}):s.jsx(cs,{className:"w-3 h-3 text-gray-600 group-hover:text-matrix"})]},M))})]}),((y=h.reused_resources)==null?void 0:y.length)>0&&s.jsxs("div",{children:[s.jsx("h5",{className:"font-mono text-[10px] text-gray-600 tracking-wider mb-2",children:"# REUSED RESOURCES"}),s.jsx("div",{className:"flex flex-wrap gap-2",children:h.reused_resources.map((L,M)=>s.jsx("span",{className:"font-mono text-[11px] px-3 py-1.5 border border-cyber/30 text-cyber bg-cyber/5",children:L},M))})]}),((P=h.ai_notes)==null?void 0:P.trim())&&s.jsxs("div",{className:"border border-matrix/20 bg-matrix/5 p-4",children:[s.jsxs("h5",{className:"font-mono text-[10px] text-matrix tracking-wider mb-2 flex items-center gap-2",children:[s.jsx(ma,{className:"w-3 h-3"})," AI NOTES"]}),s.jsx("p",{className:"font-mono text-xs text-gray-400",children:h.ai_notes})]}),((S=h.technical_debt)==null?void 0:S.length)>0&&s.jsxs("div",{className:"border border-signal/20 bg-signal/5 p-4",children:[s.jsxs("h5",{className:"font-mono text-[10px] text-signal tracking-wider mb-3 flex items-center gap-2",children:[s.jsx(Ie,{className:"w-3 h-3"})," TECHNICAL DEBT (",h.technical_debt.length,")"]}),s.jsx("div",{className:"space-y-2",children:h.technical_debt.map((L,M)=>{var V;return s.jsxs("div",{className:"flex items-start gap-3",children:[s.jsx("span",{className:`font-mono text-[9px] px-2 py-0.5 tracking-wider ${L.severity==="high"?"bg-alert text-black":L.severity==="medium"?"bg-signal text-black":"bg-cyber text-black"}`,children:(V=L.severity)==null?void 0:V.toUpperCase()}),s.jsxs("div",{children:[s.jsx("p",{className:"font-mono text-xs text-gray-400",children:L.description}),s.jsx("p",{className:"font-mono text-[10px] text-gray-600 mt-1",children:L.estimated_effort})]})]},M)})})]}),((D=h.git)==null?void 0:D.last_commit)&&s.jsxs("div",{className:"flex items-center gap-4 pt-3 border-t border-white/5",children:[s.jsxs("div",{className:"flex items-center gap-2 font-mono text-[10px] text-gray-600",children:[s.jsx(Pu,{className:"w-3 h-3"}),s.jsx("code",{className:"text-matrix",children:h.git.last_commit.substring(0,7)})]}),h.git.pr_url&&s.jsxs("a",{href:h.git.pr_url,target:"_blank",rel:"noopener noreferrer",className:"font-mono text-[10px] text-cyber hover:text-cyber-bright",children:["PR #",h.git.pr_number," →"]})]}),n.length>0&&s.jsxs("div",{className:"flex items-center gap-2 pt-3 border-t border-white/5",children:[s.jsx("span",{className:"font-mono text-[10px] text-gray-600",children:"ASSIGN:"}),s.jsxs("select",{value:h.assigned_to||"",onChange:L=>{const M=n.find(V=>V.id===L.target.value);a==null||a(t,h.id,L.target.value,(M==null?void 0:M.name)||"")},className:"theme-input px-3 py-1.5 text-[11px]",children:[s.jsx("option",{value:"",children:"Sin asignar"}),n.map(L=>s.jsxs("option",{value:L.id,children:[L.name," (",L.role,")"]},L.id))]}),h.assigned_name&&s.jsxs("span",{className:"font-mono text-[10px] text-signal",children:["→ ",h.assigned_name]})]}),s.jsxs("div",{className:"flex items-center gap-2 pt-3 border-t border-white/5",children:[s.jsx("span",{className:"font-mono text-[10px] text-gray-600",children:"STATUS:"}),s.jsx("div",{className:"flex gap-1",children:["pending","in_progress","completed"].map(L=>{const M=p[L],V=h.status===L;return s.jsxs("button",{onClick:()=>r==null?void 0:r(t,h.id,L),className:`flex items-center gap-1.5 px-3 py-1.5 font-mono text-[10px] border transition-all ${V?`${M.color} border-current bg-current/10`:"border-white/10 text-gray-600 hover:border-white/20"}`,children:[s.jsx("div",{className:`led ${M.led}`,style:{width:"6px",height:"6px"}}),M.label]},L)})})]})]})]},h.id)})}):s.jsxs("div",{className:"py-8 text-center",children:[s.jsx(Zl,{className:"w-8 h-8 mx-auto mb-3 text-gray-800"}),s.jsx("p",{className:"font-mono text-xs text-gray-700",children:"NO TASKS DEFINED"})]})}function Tn({label:e,value:t,color:r="text-white"}){return s.jsxs("div",{className:"bg-void-100 border border-white/5 p-3",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600 tracking-wider mb-1",children:e}),s.jsx("div",{className:`metric-display text-lg ${r}`,children:t})]})}function Zf({roadmap:e,language:t}){const r=v.useMemo(()=>{if(!(e!=null&&e.features))return{total:0,completed:0,inProgress:0,pending:0,byPriority:{},byFeature:[]};let a=0,l=0,i=0,o=0;const c={high:0,medium:0,low:0},d=[];return e.features.forEach(p=>{let x=0,g=0;(p.tasks||[]).forEach(h=>{a++,g++,h.status==="completed"?(l++,x++):h.status==="in_progress"?i++:o++,h.priority&&(c[h.priority]=(c[h.priority]||0)+1)}),d.push({name:p.name,completed:x,total:g,progress:g>0?Math.round(x/g*100):0})}),{total:a,completed:l,inProgress:i,pending:o,byPriority:c,byFeature:d}},[e]),n=r.total>0?Math.round(r.completed/r.total*100):0;return s.jsxs("div",{className:"space-y-6 animate-fade-in",children:[s.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("div",{className:"font-mono text-[10px] text-gray-500 mb-2",children:t==="es"?"TOTAL TAREAS":"TOTAL TASKS"}),s.jsx("div",{className:"font-display text-3xl text-white",children:r.total})]}),s.jsxs("div",{className:"theme-card p-5 border-matrix/20",children:[s.jsx("div",{className:"font-mono text-[10px] text-gray-500 mb-2",children:t==="es"?"COMPLETADAS":"COMPLETED"}),s.jsx("div",{className:"font-display text-3xl text-matrix",children:r.completed}),s.jsxs("div",{className:"font-mono text-[10px] text-matrix/60 mt-1",children:[n,"%"]})]}),s.jsxs("div",{className:"theme-card p-5 border-signal/20",children:[s.jsx("div",{className:"font-mono text-[10px] text-gray-500 mb-2",children:t==="es"?"EN PROGRESO":"IN PROGRESS"}),s.jsx("div",{className:"font-display text-3xl text-signal",children:r.inProgress})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("div",{className:"font-mono text-[10px] text-gray-500 mb-2",children:t==="es"?"PENDIENTES":"PENDING"}),s.jsx("div",{className:"font-display text-3xl text-gray-500",children:r.pending})]})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-white mb-4",children:t==="es"?"PROGRESO GENERAL":"OVERALL PROGRESS"}),s.jsxs("div",{className:"relative h-8 bg-void-100 border border-white/5 overflow-hidden",children:[s.jsx("div",{className:"absolute left-0 top-0 h-full bg-matrix/30 transition-all duration-500",style:{width:`${n}%`}}),s.jsx("div",{className:"absolute left-0 top-0 h-full bg-matrix transition-all duration-500 flex items-center justify-end pr-2",style:{width:`${n}%`},children:s.jsxs("span",{className:"font-mono text-xs text-black font-bold",children:[n,"%"]})})]}),s.jsxs("div",{className:"flex justify-between mt-2 font-mono text-[10px] text-gray-600",children:[s.jsxs("span",{children:[r.completed," / ",r.total," ",t==="es"?"tareas":"tasks"]}),s.jsx("span",{children:t==="es"?"Meta: 100%":"Goal: 100%"})]})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-white mb-4",children:t==="es"?"POR PRIORIDAD":"BY PRIORITY"}),s.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[s.jsxs("div",{className:"p-4 bg-alert/5 border border-alert/20",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[s.jsx("div",{className:"w-3 h-3 bg-alert"}),s.jsx("span",{className:"font-mono text-xs text-alert",children:t==="es"?"ALTA":"HIGH"})]}),s.jsx("div",{className:"font-display text-2xl text-alert",children:r.byPriority.high||0})]}),s.jsxs("div",{className:"p-4 bg-signal/5 border border-signal/20",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[s.jsx("div",{className:"w-3 h-3 bg-signal"}),s.jsx("span",{className:"font-mono text-xs text-signal",children:t==="es"?"MEDIA":"MEDIUM"})]}),s.jsx("div",{className:"font-display text-2xl text-signal",children:r.byPriority.medium||0})]}),s.jsxs("div",{className:"p-4 bg-cyber/5 border border-cyber/20",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[s.jsx("div",{className:"w-3 h-3 bg-cyber"}),s.jsx("span",{className:"font-mono text-xs text-cyber",children:t==="es"?"BAJA":"LOW"})]}),s.jsx("div",{className:"font-display text-2xl text-cyber",children:r.byPriority.low||0})]})]})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-white mb-4",children:t==="es"?"POR FEATURE":"BY FEATURE"}),s.jsx("div",{className:"space-y-3",children:r.byFeature.map((a,l)=>s.jsxs("div",{className:"p-3 bg-void-100 border border-white/5",children:[s.jsxs("div",{className:"flex items-center justify-between mb-2",children:[s.jsx("span",{className:"font-mono text-xs text-white",children:a.name}),s.jsxs("span",{className:"font-mono text-xs text-gray-500",children:[a.completed,"/",a.total]})]}),s.jsx("div",{className:"h-2 bg-void-200 overflow-hidden",children:s.jsx("div",{className:`h-full transition-all duration-500 ${a.progress===100?"bg-matrix":a.progress>50?"bg-signal":"bg-gray-600"}`,style:{width:`${a.progress}%`}})}),s.jsxs("div",{className:"mt-1 font-mono text-[10px] text-gray-600 text-right",children:[a.progress,"%"]})]},l))})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-white mb-4",children:t==="es"?"EXPORTAR DATOS":"EXPORT DATA"}),s.jsxs("div",{className:"flex gap-3",children:[s.jsxs("button",{onClick:()=>{const a=[["Feature","Task","Status","Priority","Assignee"].join(","),...e.features.flatMap(c=>(c.tasks||[]).map(d=>[c.name,d.name,d.status,d.priority||"medium",d.assigned_name||""].join(",")))].join(`
328
+ `),l=new Blob([a],{type:"text/csv"}),i=URL.createObjectURL(l),o=document.createElement("a");o.href=i,o.download="roadmap-export.csv",o.click()},className:"theme-btn-primary flex items-center gap-2",children:[s.jsx(mc,{className:"w-4 h-4"}),"CSV"]}),s.jsxs("button",{onClick:()=>{const a=new Blob([JSON.stringify(e,null,2)],{type:"application/json"}),l=URL.createObjectURL(a),i=document.createElement("a");i.href=l,i.download="roadmap-backup.json",i.click()},className:"theme-btn-primary flex items-center gap-2",children:[s.jsx(mc,{className:"w-4 h-4"}),"JSON"]})]})]})]})}function eh({resources:e}){const{ui_components:t=[],utilities:r=[],database_tables:n=[]}=e,[a,l]=v.useState(null),i=(o,c)=>{navigator.clipboard.writeText(o),l(c),setTimeout(()=>l(null),2e3)};return s.jsxs("div",{className:"space-y-6 animate-fade-in",children:[s.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[s.jsxs("div",{className:"theme-card p-5",children:[s.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[s.jsx("div",{className:"led theme-led theme-led-success"}),s.jsx("span",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:"UI COMPONENTS"})]}),s.jsx("div",{className:"metric-display text-3xl text-matrix",children:t.length})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[s.jsx("div",{className:"led theme-led theme-led-warning"}),s.jsx("span",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:"UTILITIES"})]}),s.jsx("div",{className:"metric-display text-3xl text-signal",children:r.length})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[s.jsx("div",{className:"led theme-led theme-led-success"}),s.jsx("span",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:"DB TABLES"})]}),s.jsx("div",{className:"metric-display text-3xl text-cyber",children:n.length})]})]}),t.length>0&&s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-matrix tracking-wider mb-4",children:"# UI_COMPONENTS"}),s.jsx("div",{className:"space-y-3",children:t.map((o,c)=>s.jsxs("div",{className:"bg-void-100 border border-white/5 p-4",children:[s.jsxs("div",{className:"flex items-center justify-between mb-2",children:[s.jsx("code",{className:"font-mono text-sm text-cyber",children:o.path}),s.jsx("button",{onClick:()=>i(o.usage,`comp-${c}`),className:"p-1.5 hover:bg-white/5 transition-all",children:a===`comp-${c}`?s.jsx(zt,{className:"w-3 h-3 text-matrix"}):s.jsx(cs,{className:"w-3 h-3 text-gray-600"})})]}),s.jsx("p",{className:"font-mono text-xs text-gray-500 mb-2",children:o.description}),s.jsx("code",{className:"font-mono text-[11px] text-signal block bg-black/50 p-2 border border-white/5",children:o.usage})]},c))})]}),r.length>0&&s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-signal tracking-wider mb-4",children:"# UTILITIES"}),s.jsx("div",{className:"space-y-3",children:r.map((o,c)=>s.jsxs("div",{className:"bg-void-100 border border-white/5 p-4",children:[s.jsxs("div",{className:"flex items-center justify-between mb-2",children:[s.jsx("code",{className:"font-mono text-sm text-cyber",children:o.path}),s.jsx("button",{onClick:()=>i(o.usage,`util-${c}`),className:"p-1.5 hover:bg-white/5 transition-all",children:a===`util-${c}`?s.jsx(zt,{className:"w-3 h-3 text-matrix"}):s.jsx(cs,{className:"w-3 h-3 text-gray-600"})})]}),s.jsx("p",{className:"font-mono text-xs text-gray-500 mb-2",children:o.description}),o.exports&&s.jsx("div",{className:"flex flex-wrap gap-1 mb-2",children:o.exports.map((d,p)=>s.jsx("span",{className:"font-mono text-[10px] px-2 py-0.5 bg-matrix/10 text-matrix border border-matrix/20",children:d},p))}),s.jsx("code",{className:"font-mono text-[11px] text-signal block bg-black/50 p-2 border border-white/5",children:o.usage}),o.warning&&s.jsxs("div",{className:"flex items-center gap-2 mt-2 text-alert font-mono text-[10px]",children:[s.jsx(Ie,{className:"w-3 h-3"}),o.warning]})]},c))})]}),n.length>0&&s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-cyber tracking-wider mb-4",children:"# DATABASE_TABLES"}),s.jsx("div",{className:"space-y-3",children:n.map((o,c)=>{var d;return s.jsxs("div",{className:"bg-void-100 border border-white/5 p-4",children:[s.jsx("code",{className:"font-mono text-sm text-matrix",children:o.name}),s.jsx("p",{className:"font-mono text-xs text-gray-500 mt-2 mb-3",children:o.description}),s.jsx("div",{className:"flex flex-wrap gap-1",children:(d=o.fields)==null?void 0:d.map((p,x)=>s.jsx("span",{className:"font-mono text-[10px] px-2 py-0.5 bg-cyber/10 text-cyber border border-cyber/20",children:p},x))})]},c)})})]})]})}function th({roadmap:e,setRoadmap:t,setHasChanges:r,t:n}){var R;const[a,l]=v.useState(null),[i,o]=v.useState("all"),[c,d]=v.useState("all"),[p,x]=v.useState(!1),[g,h]=v.useState(null),j=((e==null?void 0:e.features)||[]).map(y=>({id:y.id,name:y.name,tasks:y.tasks||[]})),b=[];(R=e==null?void 0:e.features)==null||R.forEach(y=>{var P;(P=y.tasks)==null||P.forEach(S=>{var D;(D=S.technical_debt)==null||D.forEach((L,M)=>{b.push({...L,id:`${y.id}-${S.id}-${M}`,debtIndex:M,featureId:y.id,featureName:y.name,taskId:S.id,taskName:S.name})})})});const w={high:b.filter(y=>y.severity==="high"),medium:b.filter(y=>y.severity==="medium"),low:b.filter(y=>y.severity==="low")},m=b.filter(y=>!(i!=="all"&&y.severity!==i||c!=="all"&&(y.status||"pending")!==c)),u={pending:{led:"led-gray",label:n("debt.pending"),color:"text-gray-500"},in_progress:{led:"theme-led theme-led-warning",label:n("debt.inProgress"),color:"text-signal"},resolved:{led:"theme-led theme-led-success",label:n("debt.resolved"),color:"text-matrix"}},f=(y,P,S,D)=>{t(L=>{var F;const M=JSON.parse(JSON.stringify(L)),V=M.features.find(se=>se.id===y);if(V){const se=V.tasks.find(ie=>ie.id===P);se&&((F=se.technical_debt)!=null&&F[S])&&(se.technical_debt[S].status=D,D==="resolved"&&(se.technical_debt[S].resolved_at=new Date().toISOString()))}return M}),r(!0)},N=(y,P,S)=>{t(D=>{const L=JSON.parse(JSON.stringify(D)),M=L.features.find(V=>V.id===y);if(M){const V=M.tasks.find(F=>F.id===P);V&&(V.technical_debt||(V.technical_debt=[]),V.technical_debt.push({...S,created_at:new Date().toISOString(),status:"pending"}))}return L}),r(!0),x(!1)},k=(y,P,S,D)=>{t(L=>{var F;const M=JSON.parse(JSON.stringify(L)),V=M.features.find(se=>se.id===y);if(V){const se=V.tasks.find(ie=>ie.id===P);se&&((F=se.technical_debt)!=null&&F[S])&&(se.technical_debt[S]={...se.technical_debt[S],...D})}return M}),r(!0),h(null)},T=(y,P,S)=>{confirm("¿Eliminar esta deuda técnica?")&&(t(D=>{const L=JSON.parse(JSON.stringify(D)),M=L.features.find(V=>V.id===y);if(M){const V=M.tasks.find(F=>F.id===P);V&&V.technical_debt&&V.technical_debt.splice(S,1)}return L}),r(!0),l(null))};return s.jsxs("div",{className:"space-y-6 animate-fade-in",children:[s.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[s.jsxs("button",{onClick:()=>o(i==="high"?"all":"high"),className:`theme-card p-5 transition-all ${i==="high"?"border-alert glow-alert":"border-alert/30 hover:border-alert/50"}`,children:[s.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[s.jsx("div",{className:"led theme-led theme-led-danger"}),s.jsx("span",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:n("debt.high")})]}),s.jsx("div",{className:"metric-display text-3xl text-alert",children:w.high.length})]}),s.jsxs("button",{onClick:()=>o(i==="medium"?"all":"medium"),className:`theme-card p-5 transition-all ${i==="medium"?"border-signal glow-signal":"border-signal/30 hover:border-signal/50"}`,children:[s.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[s.jsx("div",{className:"led theme-led theme-led-warning"}),s.jsx("span",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:n("debt.medium")})]}),s.jsx("div",{className:"metric-display text-3xl text-signal",children:w.medium.length})]}),s.jsxs("button",{onClick:()=>o(i==="low"?"all":"low"),className:`theme-card p-5 transition-all ${i==="low"?"border-cyber glow-cyber":"border-cyber/30 hover:border-cyber/50"}`,children:[s.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[s.jsx("div",{className:"led theme-led theme-led-success"}),s.jsx("span",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:n("debt.low")})]}),s.jsx("div",{className:"metric-display text-3xl text-cyber",children:w.low.length})]})]}),s.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[s.jsxs("span",{className:"font-mono text-[10px] text-gray-600",children:[n("debt.filter"),":"]}),s.jsxs("select",{value:c,onChange:y=>d(y.target.value),className:"theme-input px-3 py-2 text-xs",children:[s.jsx("option",{value:"all",children:n("debt.all")}),s.jsx("option",{value:"pending",children:n("debt.pending")}),s.jsx("option",{value:"in_progress",children:n("debt.inProgress")}),s.jsx("option",{value:"resolved",children:n("debt.resolved")})]}),(i!=="all"||c!=="all")&&s.jsx("button",{onClick:()=>{o("all"),d("all")},className:"font-mono text-[10px] text-gray-500 hover:text-white transition-all",children:n("debt.clear")}),s.jsxs("span",{className:"font-mono text-[10px] text-gray-600",children:[m.length," / ",b.length," ",n("debt.items")]}),s.jsxs("button",{onClick:()=>x(!0),className:"ml-auto theme-btn-primary flex items-center gap-2",children:[s.jsx(ds,{className:"w-4 h-4"}),n("debt.addDebt")]})]}),p&&s.jsx(gc,{features:j,team:teamMembers,onSave:N,onCancel:()=>x(!1)}),m.length>0?s.jsxs("div",{className:"theme-card p-5",children:[s.jsxs("h3",{className:"font-mono text-sm text-signal tracking-wider mb-4",children:["# ",n("debt.title")]}),s.jsx("div",{className:"space-y-2",children:m.map(y=>{var L;const P=a===y.id,S=g===y.id,D=u[y.status||"pending"];return s.jsxs("div",{className:`bg-void-100 border transition-all ${y.status==="resolved"?"border-matrix/20 opacity-60":y.severity==="high"?"border-alert/30":y.severity==="medium"?"border-signal/30":"border-cyber/30"}`,children:[s.jsxs("button",{onClick:()=>l(P?null:y.id),className:"w-full p-4 flex items-start gap-3 text-left hover:bg-white/[0.02] transition-all",children:[s.jsx("span",{className:`font-mono text-[9px] px-2 py-0.5 tracking-wider flex-shrink-0 ${y.severity==="high"?"bg-alert text-black":y.severity==="medium"?"bg-signal text-black":"bg-cyber text-black"}`,children:(L=y.severity)==null?void 0:L.toUpperCase()}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsx("p",{className:`font-mono text-xs line-clamp-1 ${y.status==="resolved"?"text-gray-600 line-through":"text-gray-300"}`,children:y.description}),s.jsxs("div",{className:"flex items-center gap-3 mt-1.5 font-mono text-[10px] text-gray-600",children:[s.jsx("span",{className:"truncate max-w-[120px]",children:y.featureName}),s.jsx("span",{children:"•"}),s.jsx("span",{children:y.estimated_effort||"TBD"}),y.assigned_to&&s.jsxs(s.Fragment,{children:[s.jsx("span",{children:"•"}),s.jsxs("span",{className:"text-signal",children:["@",y.assigned_to]})]})]})]}),s.jsx("div",{className:`led ${D.led}`,title:D.label}),s.jsx(rn,{className:`w-4 h-4 text-gray-600 transition-transform flex-shrink-0 ${P?"rotate-180":""}`})]}),P&&!S&&s.jsxs("div",{className:"px-4 pb-4 pt-2 border-t border-white/5 space-y-4 animate-fade-in",children:[s.jsxs("div",{className:"flex items-center gap-2 p-3 bg-black/30 border border-white/5",children:[s.jsxs("span",{className:"font-mono text-[10px] text-gray-600",children:[n("debt.status"),":"]}),s.jsx("div",{className:"flex gap-1",children:["pending","in_progress","resolved"].map(M=>{const V=u[M],F=(y.status||"pending")===M;return s.jsxs("button",{onClick:()=>f(y.featureId,y.taskId,y.debtIndex,M),className:`flex items-center gap-1.5 px-3 py-1.5 font-mono text-[10px] border transition-all ${F?`${V.color} border-current bg-current/10`:"border-white/10 text-gray-600 hover:border-white/20"}`,children:[s.jsx("div",{className:`led ${V.led}`,style:{width:"6px",height:"6px"}}),V.label]},M)})}),s.jsxs("div",{className:"ml-auto flex gap-2",children:[s.jsx("button",{onClick:()=>h(y.id),className:"p-1.5 text-gray-600 hover:text-cyber transition-all",title:"Edit",children:s.jsx(ti,{className:"w-4 h-4"})}),s.jsx("button",{onClick:()=>T(y.featureId,y.taskId,y.debtIndex),className:"p-1.5 text-gray-600 hover:text-alert transition-all",title:"Delete",children:s.jsx(pt,{className:"w-4 h-4"})})]})]}),s.jsxs("div",{children:[s.jsxs("h5",{className:"font-mono text-[10px] text-gray-600 tracking-wider mb-2",children:["# ",n("debt.description")]}),s.jsx("p",{className:"font-mono text-xs text-gray-400",children:y.description})]}),y.impact&&s.jsxs("div",{className:"p-3 border border-alert/20 bg-alert/5",children:[s.jsxs("h5",{className:"font-mono text-[10px] text-alert tracking-wider mb-2 flex items-center gap-2",children:[s.jsx(Ie,{className:"w-3 h-3"})," ",n("debt.impact")]}),s.jsx("p",{className:"font-mono text-xs text-gray-400",children:y.impact})]}),y.solution&&s.jsxs("div",{className:"p-3 border border-matrix/20 bg-matrix/5",children:[s.jsxs("h5",{className:"font-mono text-[10px] text-matrix tracking-wider mb-2 flex items-center gap-2",children:[s.jsx(zu,{className:"w-3 h-3"})," ",n("debt.solution")]}),s.jsx("p",{className:"font-mono text-xs text-gray-400",children:y.solution})]}),y.affected_files&&y.affected_files.length>0&&s.jsxs("div",{children:[s.jsxs("h5",{className:"font-mono text-[10px] text-gray-600 tracking-wider mb-2",children:["# ",n("debt.affectedFiles")]}),s.jsx("div",{className:"flex flex-wrap gap-2",children:y.affected_files.map((M,V)=>s.jsx("code",{className:"font-mono text-[11px] px-2 py-1 bg-black/50 border border-white/10 text-cyber",children:M},V))})]}),s.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:[s.jsxs("div",{className:"bg-black/30 p-3 border border-white/5",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600 tracking-wider mb-1",children:n("debt.feature")}),s.jsx("div",{className:"font-mono text-xs text-white truncate",children:y.featureName})]}),s.jsxs("div",{className:"bg-black/30 p-3 border border-white/5",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600 tracking-wider mb-1",children:n("debt.task")}),s.jsx("div",{className:"font-mono text-xs text-white truncate",children:y.taskName})]}),s.jsxs("div",{className:"bg-black/30 p-3 border border-white/5",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600 tracking-wider mb-1",children:n("debt.effort")}),s.jsx("div",{className:"font-mono text-xs text-signal",children:y.estimated_effort||n("debt.notEstimated")})]}),s.jsxs("div",{className:"bg-black/30 p-3 border border-white/5",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600 tracking-wider mb-1",children:n("debt.priority")}),s.jsx("div",{className:`font-mono text-xs ${y.priority==="critical"?"text-alert":y.priority==="high"?"text-signal":"text-cyber"}`,children:y.priority||y.severity||"Medium"})]})]}),s.jsxs("div",{className:"flex items-center gap-4 pt-3 border-t border-white/5 font-mono text-[10px] text-gray-600 flex-wrap",children:[y.created_at&&s.jsxs("span",{children:[n("debt.created"),": ",new Date(y.created_at).toLocaleDateString()]}),y.resolved_at&&s.jsxs("span",{className:"text-matrix",children:[n("debt.resolvedAt"),": ",new Date(y.resolved_at).toLocaleDateString()]}),y.assigned_to&&s.jsxs("span",{className:"text-signal",children:[n("debt.assigned"),": @",y.assigned_to]}),y.due_date&&s.jsxs("span",{className:"text-alert",children:[n("debt.due"),": ",new Date(y.due_date).toLocaleDateString()]})]}),y.tags&&y.tags.length>0&&s.jsx("div",{className:"flex flex-wrap gap-1",children:y.tags.map((M,V)=>s.jsxs("span",{className:"font-mono text-[9px] px-2 py-0.5 bg-white/5 border border-white/10 text-gray-500",children:["#",M]},V))})]}),P&&S&&s.jsx("div",{className:"px-4 pb-4 pt-2 border-t border-white/5",children:s.jsx(gc,{features:j,team:teamMembers,initialData:y,onSave:(M,V,F)=>k(y.featureId,y.taskId,y.debtIndex,F),onCancel:()=>h(null),isEdit:!0})})]},y.id)})})]}):s.jsxs("div",{className:"theme-card p-12 text-center",children:[s.jsx(Re,{className:"w-10 h-10 mx-auto mb-4 text-matrix"}),s.jsx("p",{className:"font-mono text-sm text-gray-600",children:b.length===0?n("debt.noDebt"):n("debt.noMatch")}),b.length===0&&s.jsxs("button",{onClick:()=>x(!0),className:"theme-btn-primary mt-4 inline-flex items-center gap-2",children:[s.jsx(ds,{className:"w-4 h-4"}),n("debt.addFirstDebt")]})]}),s.jsx("div",{className:"theme-card p-4",children:s.jsxs("details",{children:[s.jsx("summary",{className:"font-mono text-[10px] text-gray-600 cursor-pointer hover:text-white",children:n("debt.jsonSchema")}),s.jsx("pre",{className:"mt-4 p-4 bg-void-100 border border-white/5 font-mono text-[10px] text-gray-500 overflow-x-auto",children:`{
329
+ "technical_debt": [
330
+ {
331
+ "description": "Main description of the debt",
332
+ "severity": "high | medium | low",
333
+ "estimated_effort": "2h | 1d | 1w",
334
+ "impact": "What happens if not fixed",
335
+ "solution": "Proposed solution approach",
336
+ "affected_files": ["src/file1.js", "src/file2.js"],
337
+ "status": "pending | in_progress | resolved",
338
+ "priority": "critical | high | medium | low",
339
+ "assigned_to": "developer_name",
340
+ "created_at": "2024-01-15T10:00:00Z",
341
+ "due_date": "2024-02-01T00:00:00Z",
342
+ "tags": ["security", "performance", "refactor"]
343
+ }
344
+ ]
345
+ }`})]})})]})}function gc({features:e,team:t,initialData:r,onSave:n,onCancel:a,isEdit:l}){var F,se,ie;const[i,o]=v.useState((r==null?void 0:r.featureId)||((F=e[0])==null?void 0:F.id)||""),[c,d]=v.useState((r==null?void 0:r.taskId)||""),[p,x]=v.useState((r==null?void 0:r.description)||""),[g,h]=v.useState((r==null?void 0:r.severity)||"medium"),[j,b]=v.useState((r==null?void 0:r.priority)||"medium"),[w,m]=v.useState((r==null?void 0:r.estimated_effort)||""),[u,f]=v.useState((r==null?void 0:r.impact)||""),[N,k]=v.useState((r==null?void 0:r.solution)||""),[T,R]=v.useState((r==null?void 0:r.assigned_to)||""),[y,P]=v.useState(((se=r==null?void 0:r.affected_files)==null?void 0:se.join(", "))||""),[S,D]=v.useState(((ie=r==null?void 0:r.tags)==null?void 0:ie.join(", "))||""),L=e.find(C=>C.id===i),M=(L==null?void 0:L.tasks)||[];v.useEffect(()=>{!l&&M.length>0&&!c&&d(M[0].id)},[i,M,l,c]);const V=C=>{if(C.preventDefault(),!p.trim()||!l&&(!i||!c))return;const H={description:p,severity:g,priority:j,estimated_effort:w||null,impact:u||null,solution:N||null,assigned_to:T||null,affected_files:y?y.split(",").map(Y=>Y.trim()).filter(Boolean):[],tags:S?S.split(",").map(Y=>Y.trim()).filter(Boolean):[]};n(i,c,H)};return s.jsxs("form",{onSubmit:V,className:"theme-card p-5 space-y-4",children:[s.jsx("h3",{className:"font-mono text-sm text-signal tracking-wider",children:l?"# EDIT DEBT":"# NEW TECHNICAL DEBT"}),!l&&s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-2 block",children:"FEATURE *"}),s.jsxs("select",{value:i,onChange:C=>{o(C.target.value),d("")},className:"theme-input w-full px-3 py-2 text-sm",required:!0,children:[s.jsx("option",{value:"",children:"Select feature..."}),e.map(C=>s.jsx("option",{value:C.id,children:C.name},C.id))]})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-2 block",children:"TASK *"}),s.jsxs("select",{value:c,onChange:C=>d(C.target.value),className:"theme-input w-full px-3 py-2 text-sm",required:!0,disabled:!i,children:[s.jsx("option",{value:"",children:"Select task..."}),M.map(C=>s.jsx("option",{value:C.id,children:C.name},C.id))]})]})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-2 block",children:"DESCRIPTION *"}),s.jsx("textarea",{value:p,onChange:C=>x(C.target.value),placeholder:"Describe the technical debt...",rows:2,className:"theme-input w-full px-3 py-2 text-sm resize-none",required:!0})]}),s.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3",children:[s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-2 block",children:"SEVERITY"}),s.jsxs("select",{value:g,onChange:C=>h(C.target.value),className:"theme-input w-full px-3 py-2 text-sm",children:[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",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-2 block",children:"PRIORITY"}),s.jsxs("select",{value:j,onChange:C=>b(C.target.value),className:"theme-input w-full px-3 py-2 text-sm",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",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-2 block",children:"EFFORT"}),s.jsx("input",{type:"text",value:w,onChange:C=>m(C.target.value),placeholder:"e.g. 2h, 1d",className:"theme-input w-full px-3 py-2 text-sm"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-2 block",children:"ASSIGNED"}),s.jsxs("select",{value:T,onChange:C=>R(C.target.value),className:"theme-input w-full px-3 py-2 text-sm",children:[s.jsx("option",{value:"",children:"Unassigned"}),t.map(C=>s.jsx("option",{value:C.name,children:C.name},C.id))]})]})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-2 block",children:"IMPACT"}),s.jsx("textarea",{value:u,onChange:C=>f(C.target.value),placeholder:"What happens if not fixed?",rows:2,className:"theme-input w-full px-3 py-2 text-sm resize-none"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-2 block",children:"PROPOSED SOLUTION"}),s.jsx("textarea",{value:N,onChange:C=>k(C.target.value),placeholder:"How to fix this?",rows:2,className:"theme-input w-full px-3 py-2 text-sm resize-none"})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-2 block",children:"AFFECTED FILES"}),s.jsx("input",{type:"text",value:y,onChange:C=>P(C.target.value),placeholder:"src/file1.js, src/file2.js",className:"theme-input w-full px-3 py-2 text-sm"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-2 block",children:"TAGS"}),s.jsx("input",{type:"text",value:S,onChange:C=>D(C.target.value),placeholder:"security, performance",className:"theme-input w-full px-3 py-2 text-sm"})]})]}),s.jsxs("div",{className:"flex gap-3 pt-2",children:[s.jsx("button",{type:"button",onClick:a,className:"px-4 py-2 border border-white/10 text-gray-500 font-mono text-xs hover:text-white transition-all",children:"CANCEL"}),s.jsx("button",{type:"submit",className:"theme-btn-primary flex-1 py-2",children:l?"UPDATE":"ADD DEBT"})]})]})}function rh({projectInfo:e}){const t=e.conventions||{};return s.jsxs("div",{className:"space-y-6 animate-fade-in",children:[s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-matrix tracking-wider mb-4",children:"# STACK"}),s.jsxs("div",{className:"flex flex-wrap gap-2",children:[(e.stack||[]).map((r,n)=>s.jsx("span",{className:"font-mono text-xs px-3 py-1.5 border border-matrix/30 text-matrix bg-matrix/5",children:r},n)),(!e.stack||e.stack.length===0)&&s.jsx("p",{className:"font-mono text-xs text-gray-600",children:"NO STACK DEFINED"})]})]}),e.architecture&&s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-cyber tracking-wider mb-4",children:"# ARCHITECTURE"}),s.jsx("p",{className:"font-mono text-xs text-gray-400 leading-relaxed",children:e.architecture})]}),Object.keys(t).length>0&&s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-signal tracking-wider mb-4",children:"# CONVENTIONS"}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[t.naming&&s.jsxs("div",{className:"bg-void-100 border border-white/5 p-4",children:[s.jsx("h4",{className:"font-mono text-[10px] text-matrix tracking-wider mb-3",children:"NAMING"}),typeof t.naming=="object"?s.jsx("div",{className:"space-y-1",children:Object.entries(t.naming).map(([r,n])=>s.jsxs("div",{className:"flex justify-between font-mono text-[11px]",children:[s.jsxs("span",{className:"text-gray-600",children:[r,":"]}),s.jsx("span",{className:"text-gray-400",children:n})]},r))}):s.jsx("p",{className:"font-mono text-xs text-gray-400",children:t.naming})]}),t.file_structure&&s.jsxs("div",{className:"bg-void-100 border border-white/5 p-4",children:[s.jsx("h4",{className:"font-mono text-[10px] text-cyber tracking-wider mb-3",children:"FILE STRUCTURE"}),s.jsx("p",{className:"font-mono text-xs text-gray-400",children:t.file_structure})]}),t.database&&s.jsxs("div",{className:"bg-void-100 border border-white/5 p-4",children:[s.jsx("h4",{className:"font-mono text-[10px] text-signal tracking-wider mb-3",children:"DATABASE"}),s.jsx("p",{className:"font-mono text-xs text-gray-400",children:t.database})]}),t.styling&&s.jsxs("div",{className:"bg-void-100 border border-white/5 p-4",children:[s.jsx("h4",{className:"font-mono text-[10px] text-alert tracking-wider mb-3",children:"STYLING"}),s.jsx("p",{className:"font-mono text-xs text-gray-400",children:t.styling})]}),t.error_handling&&s.jsxs("div",{className:"bg-void-100 border border-white/5 p-4 md:col-span-2",children:[s.jsx("h4",{className:"font-mono text-[10px] text-matrix tracking-wider mb-3",children:"ERROR HANDLING"}),s.jsx("p",{className:"font-mono text-xs text-gray-400",children:t.error_handling})]})]})]}),e.purpose&&s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-matrix tracking-wider mb-4",children:"# PURPOSE"}),s.jsx("p",{className:"font-mono text-xs text-gray-400 leading-relaxed",children:e.purpose})]}),e.last_sync&&s.jsxs("div",{className:"flex items-center gap-2 font-mono text-[10px] text-gray-600",children:[s.jsx(jf,{className:"w-3 h-3"}),"LAST SYNC: ",new Date(e.last_sync).toLocaleString("es-ES")]})]})}function sh({language:e}){const{theme:t,setTheme:r,colorMode:n,setColorMode:a,isDark:l}=Gu(),[i,o]=v.useState(!1),[c,d]=v.useState(!1),p=zf(),x=async w=>{if(w!==t){o(!0);try{await r(w),p.success(e==="es"?"Tema actualizado":"Theme updated")}catch{p.error(e==="es"?"Error al guardar el tema":"Error saving theme")}o(!1)}},g=async w=>{if(w!==n){d(!0);try{await a(w),p.success(e==="es"?"Modo de color actualizado":"Color mode updated")}catch{p.error(e==="es"?"Error al guardar el modo":"Error saving mode")}d(!1)}},b=[{id:"glass",name:"Glass",description:e==="es"?"Interfaz moderna y limpia":"Modern and clean interface",preview:()=>s.jsxs("svg",{viewBox:"0 0 120 80",className:"w-full h-full",children:[s.jsx("rect",{width:"120",height:"80",fill:"#f1f5f9"}),s.jsx("rect",{x:"0",y:"0",width:"30",height:"80",fill:"#ffffff",fillOpacity:"0.7"}),s.jsx("rect",{x:"4",y:"8",width:"22",height:"4",rx:"2",fill:"#10b981"}),s.jsx("rect",{x:"4",y:"16",width:"22",height:"3",rx:"1.5",fill:"#e2e8f0"}),s.jsx("rect",{x:"4",y:"22",width:"22",height:"3",rx:"1.5",fill:"#e2e8f0"}),s.jsx("rect",{x:"4",y:"28",width:"22",height:"3",rx:"1.5",fill:"#e2e8f0"}),s.jsx("rect",{x:"36",y:"8",width:"38",height:"28",rx:"4",fill:"#ffffff",stroke:"#e2e8f0",strokeWidth:"1"}),s.jsx("rect",{x:"40",y:"12",width:"20",height:"3",rx:"1.5",fill:"#1e293b"}),s.jsx("rect",{x:"40",y:"18",width:"30",height:"2",rx:"1",fill:"#94a3b8"}),s.jsx("rect",{x:"40",y:"24",width:"30",height:"4",rx:"2",fill:"#e2e8f0"}),s.jsx("rect",{x:"40",y:"24",width:"18",height:"4",rx:"2",fill:"#10b981"}),s.jsx("rect",{x:"80",y:"8",width:"34",height:"28",rx:"4",fill:"#ffffff",stroke:"#e2e8f0",strokeWidth:"1"}),s.jsx("rect",{x:"84",y:"12",width:"16",height:"3",rx:"1.5",fill:"#1e293b"}),s.jsx("rect",{x:"84",y:"18",width:"26",height:"2",rx:"1",fill:"#94a3b8"}),s.jsx("rect",{x:"36",y:"44",width:"78",height:"28",rx:"4",fill:"#ffffff",stroke:"#e2e8f0",strokeWidth:"1"}),s.jsx("rect",{x:"40",y:"48",width:"24",height:"3",rx:"1.5",fill:"#1e293b"}),s.jsx("rect",{x:"40",y:"54",width:"70",height:"2",rx:"1",fill:"#94a3b8"}),s.jsx("rect",{x:"40",y:"60",width:"70",height:"2",rx:"1",fill:"#94a3b8"})]})},{id:"matrix",name:"Matrix",description:e==="es"?"Estética cyberpunk terminal":"Cyberpunk terminal aesthetic",preview:()=>s.jsxs("svg",{viewBox:"0 0 120 80",className:"w-full h-full",children:[s.jsx("rect",{width:"120",height:"80",fill:"#0a0a0a"}),s.jsx("defs",{children:s.jsx("pattern",{id:"grid",width:"10",height:"10",patternUnits:"userSpaceOnUse",children:s.jsx("path",{d:"M 10 0 L 0 0 0 10",fill:"none",stroke:"#00ff88",strokeWidth:"0.2",strokeOpacity:"0.1"})})}),s.jsx("rect",{width:"120",height:"80",fill:"url(#grid)"}),s.jsx("rect",{x:"0",y:"0",width:"30",height:"80",fill:"#050505"}),s.jsx("line",{x1:"30",y1:"0",x2:"30",y2:"80",stroke:"#00ff88",strokeWidth:"0.5",strokeOpacity:"0.3"}),s.jsx("rect",{x:"0",y:"8",width:"2",height:"6",fill:"#00ff88"}),s.jsx("rect",{x:"6",y:"9",width:"20",height:"4",fill:"#00ff88",fillOpacity:"0.2"}),s.jsx("text",{x:"8",y:"12.5",fill:"#00ff88",fontSize:"3",fontFamily:"monospace",children:"> MENU"}),s.jsx("rect",{x:"6",y:"16",width:"20",height:"3",fill:"#333"}),s.jsx("rect",{x:"6",y:"22",width:"20",height:"3",fill:"#333"}),s.jsx("rect",{x:"6",y:"28",width:"20",height:"3",fill:"#333"}),s.jsx("rect",{x:"36",y:"8",width:"38",height:"28",fill:"#0d0d0d",stroke:"#00ff88",strokeWidth:"0.5",strokeOpacity:"0.3"}),s.jsx("line",{x1:"36",y1:"8",x2:"74",y2:"8",stroke:"#00ff88",strokeWidth:"1",strokeOpacity:"0.5"}),s.jsx("rect",{x:"40",y:"14",width:"20",height:"3",fill:"#e0e0e0"}),s.jsx("rect",{x:"40",y:"20",width:"30",height:"2",fill:"#555"}),s.jsx("rect",{x:"40",y:"26",width:"30",height:"4",fill:"#1a1a1a",stroke:"#333",strokeWidth:"0.5"}),s.jsx("rect",{x:"40",y:"26",width:"18",height:"4",fill:"#00ff88"}),s.jsx("rect",{x:"80",y:"8",width:"34",height:"28",fill:"#0d0d0d",stroke:"#00ff88",strokeWidth:"0.5",strokeOpacity:"0.3"}),s.jsx("line",{x1:"80",y1:"8",x2:"114",y2:"8",stroke:"#00ff88",strokeWidth:"1",strokeOpacity:"0.5"}),s.jsx("rect",{x:"84",y:"14",width:"16",height:"3",fill:"#e0e0e0"}),s.jsx("rect",{x:"84",y:"20",width:"26",height:"2",fill:"#555"}),s.jsx("rect",{x:"36",y:"44",width:"78",height:"28",fill:"#0d0d0d",stroke:"#00ff88",strokeWidth:"0.5",strokeOpacity:"0.3"}),s.jsx("line",{x1:"36",y1:"44",x2:"114",y2:"44",stroke:"#00ff88",strokeWidth:"1",strokeOpacity:"0.5"}),s.jsx("rect",{x:"40",y:"50",width:"24",height:"3",fill:"#e0e0e0"}),s.jsx("rect",{x:"40",y:"56",width:"70",height:"2",fill:"#555"}),s.jsx("rect",{x:"40",y:"62",width:"70",height:"2",fill:"#555"})]})}];return s.jsxs("div",{className:"theme-card p-6",children:[s.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[s.jsx("div",{className:"w-10 h-10 rounded-theme-md flex items-center justify-center",style:{background:"var(--accent-primary)",opacity:.15},children:s.jsx(Uu,{className:"w-5 h-5",style:{color:"var(--accent-primary)"}})}),s.jsxs("div",{children:[s.jsx("h3",{className:"font-heading text-lg",style:{color:"var(--text-primary)"},children:e==="es"?"Apariencia":"Appearance"}),s.jsx("p",{className:"text-sm",style:{color:"var(--text-muted)"},children:e==="es"?"Personaliza el aspecto del dashboard":"Customize the dashboard appearance"})]})]}),s.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:b.map(w=>{const m=t===w.id,u=w.preview;return s.jsxs("button",{onClick:()=>x(w.id),disabled:i,className:`group relative p-4 text-left transition-all rounded-theme-lg ${m?"ring-2":"hover:ring-1"}`,style:{background:"var(--bg-card)",border:"1px solid var(--border-color)",ringColor:m?"var(--accent-primary)":"var(--border-color-strong)"},children:[s.jsx("div",{className:"w-full aspect-[3/2] mb-4 overflow-hidden rounded-theme-md",style:{border:"1px solid var(--border-color)"},children:s.jsx(u,{})}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{children:[s.jsx("h4",{className:"font-heading font-medium",style:{color:"var(--text-primary)"},children:w.name}),s.jsx("p",{className:"text-xs mt-0.5",style:{color:"var(--text-muted)"},children:w.description})]}),s.jsx("div",{className:`w-5 h-5 rounded-full border-2 flex items-center justify-center transition-all ${m?"border-transparent":""}`,style:{borderColor:m?"var(--accent-primary)":"var(--border-color-strong)",background:m?"var(--accent-primary)":"transparent"},children:m&&s.jsx(zt,{className:"w-3 h-3",style:{color:"var(--text-inverse)"}})})]}),i&&m&&s.jsx("div",{className:"absolute inset-0 flex items-center justify-center rounded-theme-lg",style:{background:"rgba(0,0,0,0.5)"},children:s.jsx(Ke,{className:"w-6 h-6 animate-spin",style:{color:"var(--accent-primary)"}})})]},w.id)})}),s.jsx("div",{className:"mt-6 pt-6",style:{borderTop:"1px solid var(--border-color)"},children:s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[l?s.jsx(fc,{className:"w-5 h-5",style:{color:"var(--accent-primary)"}}):s.jsx(hc,{className:"w-5 h-5",style:{color:"var(--accent-secondary)"}}),s.jsxs("div",{children:[s.jsx("h4",{className:"font-heading font-medium",style:{color:"var(--text-primary)"},children:e==="es"?"Modo de color":"Color Mode"}),s.jsx("p",{className:"text-xs",style:{color:"var(--text-muted)"},children:e==="es"?l?"Modo oscuro activado":"Modo claro activado":l?"Dark mode enabled":"Light mode enabled"})]})]}),s.jsxs("div",{className:"flex gap-2",children:[s.jsxs("button",{onClick:()=>g("light"),disabled:c,className:`px-4 py-2 rounded-theme-md transition-all flex items-center gap-2 ${l?"":"ring-2"}`,style:{background:l?"var(--bg-secondary)":"var(--accent-primary)",color:l?"var(--text-secondary)":"var(--text-inverse)",ringColor:"var(--accent-primary)"},children:[s.jsx(hc,{className:"w-4 h-4"}),s.jsx("span",{className:"text-sm font-medium",children:e==="es"?"Claro":"Light"})]}),s.jsxs("button",{onClick:()=>g("dark"),disabled:c,className:`px-4 py-2 rounded-theme-md transition-all flex items-center gap-2 ${l?"ring-2":""}`,style:{background:l?"var(--accent-primary)":"var(--bg-secondary)",color:l?"var(--text-inverse)":"var(--text-secondary)",ringColor:"var(--accent-primary)"},children:[s.jsx(fc,{className:"w-4 h-4"}),s.jsx("span",{className:"text-sm font-medium",children:e==="es"?"Oscuro":"Dark"})]})]})]})}),s.jsx("p",{className:"text-xs mt-4",style:{color:"var(--text-muted)"},children:e==="es"?"El tema y modo se guardan automáticamente en tu perfil":"Theme and mode are automatically saved to your profile"})]})}function nh({roadmap:e,setRoadmap:t,setHasChanges:r,authState:n,showConfirm:a,showAlert:l,t:i,language:o,changeLanguage:c}){var q,Z,fe,ot,de;const[d,p]=v.useState(null),[x,g]=v.useState(""),[h,j]=v.useState(!1),[b,w]=v.useState(!1),[m,u]=v.useState(null),[f,N]=v.useState(null),[k,T]=v.useState(!1),[R,y]=v.useState(!1),[P,S]=v.useState(""),[D,L]=v.useState(null),[M,V]=v.useState(!1),[F,se]=v.useState(!1),[ie,C]=v.useState("profile"),[H,Y]=v.useState(!1),[ne,J]=v.useState([]),[xt,$e]=v.useState(!1),[Q,pe]=v.useState({name:"",email:"",password:"",role:"member"}),[Ae,It]=v.useState(null),[hr,Or]=v.useState(null),[Wt,Dr]=v.useState({requireAuth:!0}),ee=((q=n==null?void 0:n.user)==null?void 0:q.role)==="admin",[kt,fs]=v.useState(!1),[ve,Xe]=v.useState({name:((Z=n==null?void 0:n.user)==null?void 0:Z.name)||"",email:((fe=n==null?void 0:n.user)==null?void 0:fe.email)||"",currentPassword:"",newPassword:"",confirmPassword:""}),[xr,A]=v.useState(null),[G,oe]=v.useState(null),[Ne,Pe]=v.useState(!1);v.useEffect(()=>{n!=null&&n.user&&Xe(E=>({...E,name:n.user.name||"",email:n.user.email||""}))},[n==null?void 0:n.user]);const Ot=async()=>{if(A(null),oe(null),ve.newPassword&&ve.newPassword!==ve.confirmPassword){A("New passwords do not match");return}if(ve.newPassword&&!ve.currentPassword){A("Current password required to set new password");return}if(ve.newPassword&&ve.newPassword.length<6){A("New password must be at least 6 characters");return}Pe(!0);try{const E={name:ve.name,email:ve.email};ve.newPassword&&(E.currentPassword=ve.currentPassword,E.newPassword=ve.newPassword);const _=await fetch("/api/auth/profile",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)}),K=await _.json();_.ok?(oe("Profile updated successfully"),Xe(_e=>({..._e,currentPassword:"",newPassword:"",confirmPassword:""})),K.user&&window.location&&setTimeout(()=>window.location.reload(),1500)):A(K.error||"Failed to update profile")}catch{A("Error updating profile")}Pe(!1)},Dt=async()=>{if(ee){$e(!0);try{const[E,_]=await Promise.all([fetch("/api/users"),fetch("/api/auth/settings")]);if(E.ok){const K=await E.json();J(K.users||[])}if(_.ok){const K=await _.json();Dr(K.settings||{})}}catch(E){console.error("Error loading users:",E)}$e(!1)}};v.useEffect(()=>{H&&ee&&ne.length===0&&Dt()},[H,ee]);const Kt=async()=>{if(!Q.name.trim()||!Q.email.trim()||!Q.password.trim()){It(o==="es"?"Todos los campos son requeridos":"All fields are required");return}It(null);try{const E=await fetch("/api/users",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q)}),_=await E.json();E.ok?(J(K=>[...K,_.user]),pe({name:"",email:"",password:"",role:"member"})):It(_.error)}catch{It(o==="es"?"Error al crear usuario":"Error creating user")}},Yt=async E=>{a(i("settings.deleteUser"),o==="es"?"¿Estás seguro de que quieres eliminar este usuario?":"Are you sure you want to delete this user?",async()=>{try{const _=await fetch(`/api/users/${E}`,{method:"DELETE"});if(_.ok)J(K=>K.filter(_e=>_e.id!==E));else{const K=await _.json();l(i("common.error"),K.error||(o==="es"?"Error al eliminar usuario":"Error deleting user"))}}catch{l(i("common.error"),o==="es"?"Error al eliminar usuario":"Error deleting user")}})},Pr=async E=>{try{const _=await fetch("/api/auth/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)});if(_.ok){const K=await _.json();Dr(K.settings)}}catch(_){console.error("Error updating settings:",_)}};v.useEffect(()=>{g(uh()),S(JSON.stringify(e,null,2)),fetch("/api/project-info").then(E=>E.json()).then(E=>N(E)).catch(()=>{})},[e]);const Lr=()=>{try{const E=JSON.parse(P);if(!E.project_info||!E.features)throw new Error("JSON must have project_info and features");t(E),r(!0),L(null),y(!1)}catch(E){L(E.message)}},Pt=()=>{try{const E=JSON.parse(P);S(JSON.stringify(E,null,2)),L(null)}catch(E){L("INVALID JSON: "+E.message)}},ae=(E,_)=>{navigator.clipboard.writeText(E),p(_),setTimeout(()=>p(null),2e3)},Le=(E,_)=>{const K=new Blob([E],{type:"text/plain"}),_e=URL.createObjectURL(K),gr=document.createElement("a");gr.href=_e,gr.download=_,gr.click(),URL.revokeObjectURL(_e)},te=async()=>{w(!0),u(null);try{const E={clinerules:x,roadmap:e};k&&(E.cursorrules=x);const _=await fetch("/api/deploy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)});if(_.ok){const K=await _.json();u({type:"success",text:`DEPLOYED: ${K.projectRoot}`,files:K.files})}else throw new Error("API unavailable")}catch{Le(x,".clinerules"),k&&Le(x,".cursorrules"),Le(JSON.stringify(e,null,2),"roadmap.json"),u({type:"info",text:"FILES DOWNLOADED. Copy manually to project root."})}finally{w(!1)}},[lt,gt]=v.useState([]),[Ze,hs]=v.useState(!1),[it,_r]=v.useState(null),[xs,gs]=v.useState(!1),O=async()=>{hs(!0);try{const E=await fetch("/api/versions");if(E.ok){const _=await E.json();gt(_.versions||[])}}catch(E){console.error("Error loading versions:",E)}hs(!1)},B=async E=>{try{const _=await fetch(`/api/versions/${E}`);if(_.ok){const K=await _.json();_r(K.version)}}catch(_){console.error("Error loading version:",_)}},W=async E=>{if(await a({title:"RESTORE VERSION",message:"This will restore the selected version. A backup of the current state will be saved first.",type:"warning",confirmText:"RESTORE",cancelText:"CANCEL"})){gs(!0);try{const K=await fetch(`/api/versions/${E}/restore`,{method:"POST"});if(K.ok){const _e=await K.json();t(_e.roadmap),_r(null),O(),l({title:"VERSION RESTORED",message:"The roadmap has been restored successfully. A backup was saved.",type:"success"})}}catch(K){l({title:"RESTORE FAILED",message:K.message,type:"error"})}gs(!1)}},z=[{id:"profile",label:i("settings.profile"),icon:si,show:!!(n!=null&&n.user)},{id:"appearance",label:o==="es"?"APARIENCIA":"APPEARANCE",icon:Uu,show:!0},{id:"users",label:i("settings.users"),icon:_u,show:ee},{id:"history",label:i("settings.history"),icon:dc,show:!0},{id:"files",label:i("settings.files"),icon:ei,show:!0},{id:"language",label:i("settings.language"),icon:Rf,show:!0}].filter(E=>E.show);return v.useEffect(()=>{var E;z.find(_=>_.id===ie)||C(((E=z[0])==null?void 0:E.id)||"profile")},[ee,n==null?void 0:n.user]),s.jsxs("div",{className:"space-y-6 animate-fade-in",children:[s.jsx("div",{className:"flex gap-2 flex-wrap border-b border-white/10 pb-4",children:z.map(E=>{const _=E.icon;return s.jsxs("button",{onClick:()=>C(E.id),className:`flex items-center gap-2 px-4 py-2.5 font-mono text-xs tracking-wider border transition-all ${ie===E.id?"border-signal text-signal bg-signal/10":"border-white/10 text-gray-500 hover:text-gray-300 hover:border-white/20"}`,children:[s.jsx(_,{className:"w-4 h-4"}),E.label]},E.id)})}),ie==="profile"&&(n==null?void 0:n.user)&&s.jsxs("div",{className:"theme-card p-5 space-y-5",children:[s.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[s.jsx("div",{className:"w-12 h-12 border border-cyber/30 bg-cyber/10 flex items-center justify-center font-display text-cyber text-xl",children:((ot=n.user.name)==null?void 0:ot.charAt(0).toUpperCase())||"U"}),s.jsxs("div",{children:[s.jsx("h3",{className:"font-mono text-sm text-white",children:n.user.name}),s.jsx("p",{className:"font-mono text-[11px] text-gray-500",children:n.user.email}),s.jsx("span",{className:`font-mono text-[9px] px-1.5 py-0.5 mt-1 inline-block ${n.user.role==="admin"?"bg-alert/20 text-alert":"bg-cyber/20 text-cyber"}`,children:(de=n.user.role)==null?void 0:de.toUpperCase()})]})]}),xr&&s.jsxs("div",{className:"p-3 border border-alert/30 bg-alert/5 font-mono text-xs text-alert flex items-center gap-2",children:[s.jsx(Ie,{className:"w-4 h-4"}),xr]}),G&&s.jsxs("div",{className:"p-3 border border-matrix/30 bg-matrix/5 font-mono text-xs text-matrix flex items-center gap-2",children:[s.jsx(zt,{className:"w-4 h-4"}),G]}),s.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider block mb-2",children:"NAME"}),s.jsx("input",{type:"text",value:ve.name,onChange:E=>Xe(_=>({..._,name:E.target.value})),className:"w-full theme-input px-3 py-2 text-sm",placeholder:"Your name"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider block mb-2",children:"EMAIL"}),s.jsx("input",{type:"email",value:ve.email,onChange:E=>Xe(_=>({..._,email:E.target.value})),className:"w-full theme-input px-3 py-2 text-sm",placeholder:"your@email.com"})]})]}),s.jsxs("div",{className:"border-t border-white/5 pt-5",children:[s.jsx("h4",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-4",children:"CHANGE PASSWORD"}),s.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-600 block mb-2",children:"Current Password"}),s.jsx("input",{type:"password",value:ve.currentPassword,onChange:E=>Xe(_=>({..._,currentPassword:E.target.value})),className:"w-full theme-input px-3 py-2 text-sm",placeholder:"Required"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-600 block mb-2",children:"New Password"}),s.jsx("input",{type:"password",value:ve.newPassword,onChange:E=>Xe(_=>({..._,newPassword:E.target.value})),className:"w-full theme-input px-3 py-2 text-sm",placeholder:"Min 6 chars"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-600 block mb-2",children:"Confirm Password"}),s.jsx("input",{type:"password",value:ve.confirmPassword,onChange:E=>Xe(_=>({..._,confirmPassword:E.target.value})),className:"w-full theme-input px-3 py-2 text-sm",placeholder:"Repeat"})]})]})]}),s.jsxs("button",{onClick:Ot,disabled:Ne,className:"theme-btn-primary py-2 px-6 disabled:opacity-50 flex items-center gap-2",children:[Ne?s.jsx(Ke,{className:"w-4 h-4 animate-spin"}):s.jsx(Fu,{className:"w-4 h-4"}),"SAVE CHANGES"]})]}),ie==="appearance"&&s.jsx(sh,{language:o}),ie==="history"&&s.jsxs("div",{className:"theme-card p-5",children:[s.jsxs("div",{className:"flex items-center justify-between mb-4",children:[s.jsxs("div",{children:[s.jsx("h3",{className:"font-mono text-sm text-white",children:"VERSION HISTORY"}),s.jsxs("p",{className:"font-mono text-[10px] text-gray-600",children:["Last ",lt.length," changes • Click to preview & restore"]})]}),s.jsx("button",{onClick:O,disabled:Ze,className:"theme-btn-primary py-2 px-4 text-xs",children:Ze?s.jsx(Ke,{className:"w-4 h-4 animate-spin"}):s.jsx(pa,{className:"w-4 h-4"})})]}),lt.length===0&&!Ze&&s.jsxs("div",{className:"py-10 text-center border border-dashed border-white/10",children:[s.jsx(dc,{className:"w-10 h-10 mx-auto mb-3 text-gray-800"}),s.jsx("p",{className:"font-mono text-xs text-gray-600",children:"NO VERSIONS YET"}),s.jsx("p",{className:"font-mono text-[10px] text-gray-700 mt-1",children:"Versions are saved automatically when you save changes"}),s.jsx("button",{onClick:O,className:"mt-4 theme-btn-primary py-2 px-4 text-xs",children:"LOAD HISTORY"})]}),Ze&&s.jsx("div",{className:"py-10 text-center",children:s.jsx(Ke,{className:"w-8 h-8 mx-auto animate-spin text-gray-600"})}),lt.length>0&&s.jsx("div",{className:"space-y-2",children:lt.map((E,_)=>s.jsx("div",{className:`p-4 border transition-all cursor-pointer ${(it==null?void 0:it.id)===E.id?"border-cyber/50 bg-cyber/5":"border-white/5 bg-void-100 hover:border-white/20"}`,onClick:()=>B(E.id),children:s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:`w-8 h-8 border flex items-center justify-center font-display text-xs ${_===0?"border-matrix/30 bg-matrix/10 text-matrix":"border-gray-700 bg-gray-800 text-gray-500"}`,children:_===0?"NOW":`-${_}`}),s.jsxs("div",{children:[s.jsx("div",{className:"font-mono text-xs text-white",children:new Date(E.timestamp).toLocaleString()}),s.jsxs("div",{className:"font-mono text-[10px] text-gray-500",children:[E.userName," • ",E.description]})]})]}),s.jsxs("div",{className:"font-mono text-[10px] text-gray-600",children:[E.featuresCount," features • ",E.tasksCount," tasks"]})]})},E.id))}),it&&(()=>{const E=Wf(e,it.snapshot),_=E.summary.added>0||E.summary.removed>0||E.summary.modified>0;return s.jsxs("div",{className:"mt-5 p-4 border border-cyber/30 bg-cyber/5",children:[s.jsxs("div",{className:"flex items-center justify-between mb-3",children:[s.jsxs("div",{className:"font-mono text-sm text-cyber flex items-center gap-2",children:[s.jsx(Tf,{className:"w-4 h-4"}),"VERSION DIFF"]}),s.jsxs("button",{onClick:()=>W(it.id),disabled:xs,className:"theme-btn-primary py-2 px-4 text-xs flex items-center gap-2",children:[xs?s.jsx(Ke,{className:"w-4 h-4 animate-spin"}):s.jsx(pa,{className:"w-4 h-4"}),"RESTORE THIS VERSION"]})]}),s.jsxs("div",{className:"text-xs font-mono text-gray-400 mb-4",children:[new Date(it.timestamp).toLocaleString()," by ",it.userName]}),s.jsxs("div",{className:"grid grid-cols-3 gap-3 mb-4",children:[s.jsxs("div",{className:"p-3 bg-matrix/10 border border-matrix/30",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(ll,{className:"w-4 h-4 text-matrix"}),s.jsx("div",{className:"font-mono text-[10px] text-matrix",children:"ADDED"})]}),s.jsx("div",{className:"font-display text-lg text-matrix",children:E.summary.added})]}),s.jsxs("div",{className:"p-3 bg-alert/10 border border-alert/30",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(al,{className:"w-4 h-4 text-alert"}),s.jsx("div",{className:"font-mono text-[10px] text-alert",children:"REMOVED"})]}),s.jsx("div",{className:"font-display text-lg text-alert",children:E.summary.removed})]}),s.jsxs("div",{className:"p-3 bg-signal/10 border border-signal/30",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(nl,{className:"w-4 h-4 text-signal"}),s.jsx("div",{className:"font-mono text-[10px] text-signal",children:"MODIFIED"})]}),s.jsx("div",{className:"font-display text-lg text-signal",children:E.summary.modified})]})]}),_?s.jsxs("div",{className:"space-y-3 max-h-80 overflow-auto",children:[E.features.added.map(K=>{var _e;return s.jsxs("div",{className:"p-3 bg-matrix/5 border-l-2 border-matrix",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[s.jsx(ll,{className:"w-3 h-3 text-matrix"}),s.jsxs("span",{className:"font-mono text-xs text-matrix",children:["+ FEATURE: ",K.name]})]}),s.jsxs("p",{className:"font-mono text-[10px] text-gray-500 ml-5",children:[((_e=K.tasks)==null?void 0:_e.length)||0," tasks"]})]},K.id)}),E.features.removed.map(K=>{var _e;return s.jsxs("div",{className:"p-3 bg-alert/5 border-l-2 border-alert",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[s.jsx(al,{className:"w-3 h-3 text-alert"}),s.jsxs("span",{className:"font-mono text-xs text-alert",children:["- FEATURE: ",K.name]})]}),s.jsxs("p",{className:"font-mono text-[10px] text-gray-500 ml-5",children:[((_e=K.tasks)==null?void 0:_e.length)||0," tasks"]})]},K.id)}),E.tasks.added.map(K=>s.jsx("div",{className:"p-2 bg-matrix/5 border-l-2 border-matrix ml-4",children:s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(ll,{className:"w-3 h-3 text-matrix"}),s.jsxs("span",{className:"font-mono text-[11px] text-matrix",children:["+ ",K.name]}),s.jsxs("span",{className:"font-mono text-[9px] text-gray-600",children:["(",K.featureName,")"]})]})},K.id)),E.tasks.removed.map(K=>s.jsx("div",{className:"p-2 bg-alert/5 border-l-2 border-alert ml-4",children:s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(al,{className:"w-3 h-3 text-alert"}),s.jsxs("span",{className:"font-mono text-[11px] text-alert line-through",children:["- ",K.name]}),s.jsxs("span",{className:"font-mono text-[9px] text-gray-600",children:["(",K.featureName,")"]})]})},K.id)),E.tasks.statusChanged.map(({task:K,featureName:_e,oldStatus:gr,newStatus:Ia})=>s.jsxs("div",{className:"p-2 bg-signal/5 border-l-2 border-signal ml-4",children:[s.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[s.jsx(nl,{className:"w-3 h-3 text-signal"}),s.jsx("span",{className:"font-mono text-[11px] text-white",children:K.name}),s.jsxs("span",{className:"font-mono text-[9px] text-gray-600",children:["(",_e,")"]})]}),s.jsxs("div",{className:"flex items-center gap-2 ml-5 mt-1",children:[s.jsx("span",{className:`px-2 py-0.5 text-[9px] font-mono ${gr==="completed"?"bg-matrix/20 text-matrix":gr==="in_progress"?"bg-signal/20 text-signal":"bg-gray-700 text-gray-400"}`,children:gr}),s.jsx(nl,{className:"w-3 h-3 text-gray-500"}),s.jsx("span",{className:`px-2 py-0.5 text-[9px] font-mono ${Ia==="completed"?"bg-matrix/20 text-matrix":Ia==="in_progress"?"bg-signal/20 text-signal":"bg-gray-700 text-gray-400"}`,children:Ia})]})]},K.id))]}):s.jsxs("div",{className:"py-6 text-center border border-dashed border-white/10",children:[s.jsx(Re,{className:"w-8 h-8 mx-auto mb-2 text-gray-700"}),s.jsx("p",{className:"font-mono text-xs text-gray-600",children:"NO CHANGES"}),s.jsx("p",{className:"font-mono text-[10px] text-gray-700 mt-1",children:"Current roadmap matches this version"})]}),s.jsxs("details",{className:"group mt-4",children:[s.jsx("summary",{className:"font-mono text-[10px] text-gray-600 cursor-pointer hover:text-gray-400",children:"View raw JSON"}),s.jsx("div",{className:"mt-2 p-3 bg-void-100 border border-white/5 max-h-48 overflow-auto",children:s.jsx("pre",{className:"font-mono text-[10px] text-gray-500 whitespace-pre-wrap",children:JSON.stringify(it.snapshot,null,2)})})]}),s.jsx("button",{onClick:()=>_r(null),className:"mt-3 w-full py-2 border border-white/10 text-gray-500 hover:text-white hover:border-white/30 transition-all font-mono text-xs",children:"CLOSE PREVIEW"})]})})()]}),ie==="users"&&ee&&s.jsxs("div",{className:"space-y-5",children:[s.jsx("div",{className:"theme-card p-5",children:s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{children:[s.jsx("h3",{className:"font-mono text-sm text-white",children:"Authentication Required"}),s.jsx("p",{className:"font-mono text-[10px] text-gray-600",children:"Disable to allow anonymous access"})]}),s.jsx("button",{onClick:()=>Pr({requireAuth:!Wt.requireAuth}),className:`w-14 h-7 rounded-full transition-all relative ${Wt.requireAuth?"bg-matrix":"bg-gray-700"}`,children:s.jsx("div",{className:`absolute top-1 w-5 h-5 bg-white rounded-full transition-transform ${Wt.requireAuth?"left-8":"left-1"}`})})]})}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-white mb-4",children:"ADD NEW USER"}),s.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3 mb-3",children:[s.jsx("input",{type:"text",placeholder:"Name *",value:Q.name,onChange:E=>pe(_=>({..._,name:E.target.value})),className:"theme-input px-3 py-2 text-sm"}),s.jsx("input",{type:"email",placeholder:"Email *",value:Q.email,onChange:E=>pe(_=>({..._,email:E.target.value})),className:"theme-input px-3 py-2 text-sm"}),s.jsx("input",{type:"password",placeholder:"Password *",value:Q.password,onChange:E=>pe(_=>({..._,password:E.target.value})),className:"theme-input px-3 py-2 text-sm"}),s.jsxs("select",{value:Q.role,onChange:E=>pe(_=>({..._,role:E.target.value})),className:"theme-input px-3 py-2 text-sm",children:[s.jsx("option",{value:"member",children:"Member"}),s.jsx("option",{value:"admin",children:"Admin"})]})]}),Ae&&s.jsx("div",{className:"mb-3 p-2 border border-alert/30 bg-alert/5 font-mono text-xs text-alert",children:Ae}),s.jsxs("button",{onClick:Kt,disabled:!Q.name.trim()||!Q.email.trim()||!Q.password.trim(),className:"theme-btn-primary py-2 px-4 disabled:opacity-50",children:[s.jsx(ds,{className:"w-4 h-4 inline mr-1"})," CREATE USER"]})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsxs("h3",{className:"font-mono text-sm text-white mb-4",children:["REGISTERED USERS (",ne.length,")"]}),xt?s.jsx("div",{className:"py-8 text-center",children:s.jsx(Ke,{className:"w-6 h-6 mx-auto animate-spin text-gray-600"})}):ne.length>0?s.jsx("div",{className:"space-y-2",children:ne.map(E=>s.jsxs("div",{className:"flex items-center gap-3 p-3 bg-void-100 border border-white/5",children:[s.jsx("div",{className:`w-10 h-10 border flex items-center justify-center font-display text-sm ${E.role==="admin"?"border-alert/30 bg-alert/10 text-alert":"border-cyber/30 bg-cyber/10 text-cyber"}`,children:E.name.charAt(0).toUpperCase()}),s.jsxs("div",{className:"flex-1",children:[s.jsxs("div",{className:"font-sans text-sm text-white flex items-center gap-2",children:[E.name,s.jsx("span",{className:`font-mono text-[9px] px-1.5 py-0.5 ${E.role==="admin"?"bg-alert/20 text-alert":"bg-cyber/20 text-cyber"}`,children:E.role.toUpperCase()})]}),s.jsx("div",{className:"font-mono text-[10px] text-gray-500",children:E.email})]}),s.jsx("div",{className:"font-mono text-[9px] text-gray-700 hidden sm:block",children:E.lastLogin?`Last: ${new Date(E.lastLogin).toLocaleDateString()}`:"Never logged in"}),s.jsx("button",{onClick:()=>Yt(E.id),className:"p-2 text-gray-600 hover:text-alert transition-all",title:"Delete user",children:s.jsx(pt,{className:"w-4 h-4"})})]},E.id))}):s.jsxs("div",{className:"py-10 text-center border border-dashed border-white/10",children:[s.jsx(si,{className:"w-10 h-10 mx-auto mb-3 text-gray-800"}),s.jsx("p",{className:"font-mono text-xs text-gray-600",children:"NO USERS FOUND"})]})]})]}),ie==="files"&&s.jsxs("div",{className:"space-y-5",children:[s.jsxs("div",{className:"theme-card p-5",children:[s.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[s.jsx("div",{className:"led theme-led theme-led-success"}),s.jsxs("div",{children:[s.jsx("h3",{className:"font-mono text-sm text-matrix tracking-wider",children:"DEPLOY CONFIG"}),s.jsx("p",{className:"font-mono text-[10px] text-gray-600",children:"Copy files to project root"})]})]}),f&&s.jsxs("div",{className:"mb-4 p-3 border border-matrix/20 bg-matrix/5 font-mono text-[11px]",children:[s.jsx("span",{className:"text-gray-500",children:"PROJECT:"})," ",s.jsx("span",{className:"text-matrix",children:f.projectRoot})]}),s.jsxs("label",{className:"flex items-center gap-2 font-mono text-[11px] text-gray-500 cursor-pointer mb-4",children:[s.jsx("input",{type:"checkbox",checked:k,onChange:E=>T(E.target.checked),className:"w-4 h-4 bg-void-100 border border-white/20 accent-matrix"}),"Also create .cursorrules (for Cursor IDE)"]}),s.jsxs("button",{onClick:te,disabled:b,className:"theme-btn-primary flex items-center gap-2",children:[b?s.jsx(Ke,{className:"w-4 h-4 animate-spin"}):s.jsx(_f,{className:"w-4 h-4"}),"DEPLOY FILES"]}),m&&s.jsxs("div",{className:`mt-4 p-3 border font-mono text-[11px] ${m.type==="success"?"border-matrix/30 text-matrix bg-matrix/5":m.type==="error"?"border-alert/30 text-alert bg-alert/5":"border-cyber/30 text-cyber bg-cyber/5"}`,children:[s.jsx("p",{children:m.text}),m.files&&s.jsx("ul",{className:"mt-2 space-y-1 text-gray-500",children:m.files.map((E,_)=>s.jsxs("li",{children:["✓ ",E]},_))})]})]}),s.jsxs("div",{className:"theme-card",children:[s.jsxs("button",{onClick:()=>V(!M),className:"w-full p-4 flex items-center justify-between hover:bg-white/[0.01] transition-colors",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx(ei,{className:"w-4 h-4 text-cyber"}),s.jsxs("div",{className:"text-left",children:[s.jsx("h3",{className:"font-mono text-sm text-white",children:".clinerules"}),s.jsx("p",{className:"font-mono text-[10px] text-gray-600",children:"Rules for Claude, Cursor, Cline"})]})]}),s.jsx(rn,{className:`w-4 h-4 text-gray-600 transition-transform ${M?"rotate-180":""}`})]}),M&&s.jsxs("div",{className:"px-4 pb-4 border-t border-white/5",children:[s.jsxs("div",{className:"flex justify-end gap-2 py-3",children:[s.jsx("button",{onClick:()=>Le(x,".clinerules"),className:"p-2 border border-white/10 text-gray-500 hover:text-matrix hover:border-matrix/30 transition-all",children:s.jsx(uc,{className:"w-4 h-4"})}),s.jsx("button",{onClick:()=>j(!h),className:`p-2 border transition-all ${h?"border-matrix/30 text-matrix bg-matrix/10":"border-white/10 text-gray-500 hover:text-matrix hover:border-matrix/30"}`,children:h?s.jsx(Sf,{className:"w-4 h-4"}):s.jsx(ti,{className:"w-4 h-4"})}),s.jsx("button",{onClick:()=>ae(x,"clinerules"),className:"p-2 border border-white/10 text-gray-500 hover:text-matrix hover:border-matrix/30 transition-all",children:d==="clinerules"?s.jsx(zt,{className:"w-4 h-4 text-matrix"}):s.jsx(cs,{className:"w-4 h-4"})})]}),h?s.jsx("textarea",{value:x,onChange:E=>g(E.target.value),className:"w-full h-[400px] theme-input p-4 text-xs resize-none",spellCheck:!1}):s.jsx("div",{className:"bg-void-100 border border-white/5 p-4 max-h-[400px] overflow-y-auto",children:s.jsx("pre",{className:"font-mono text-[11px] text-gray-400 whitespace-pre-wrap",children:x})})]})]}),s.jsxs("div",{className:"theme-card",children:[s.jsxs("button",{onClick:()=>se(!F),className:"w-full p-4 flex items-center justify-between hover:bg-white/[0.01] transition-colors",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx(kf,{className:"w-4 h-4 text-signal"}),s.jsxs("div",{className:"text-left",children:[s.jsx("h3",{className:"font-mono text-sm text-white",children:"roadmap.json"}),s.jsx("p",{className:"font-mono text-[10px] text-gray-600",children:"Project structure & state"})]})]}),s.jsx(rn,{className:`w-4 h-4 text-gray-600 transition-transform ${F?"rotate-180":""}`})]}),F&&s.jsxs("div",{className:"px-4 pb-4 border-t border-white/5",children:[s.jsxs("div",{className:"flex justify-end gap-2 py-3",children:[s.jsx("button",{onClick:()=>Le(JSON.stringify(e,null,2),"roadmap.json"),className:"p-2 border border-white/10 text-gray-500 hover:text-signal hover:border-signal/30 transition-all",children:s.jsx(uc,{className:"w-4 h-4"})}),R&&s.jsxs(s.Fragment,{children:[s.jsx("button",{onClick:Pt,className:"p-2 border border-white/10 text-gray-500 hover:text-signal hover:border-signal/30 transition-all",children:s.jsx(Ou,{className:"w-4 h-4"})}),s.jsx("button",{onClick:Lr,className:"px-3 py-2 border border-matrix/30 text-matrix bg-matrix/10 hover:bg-matrix/20 transition-all font-mono text-[10px]",children:"APPLY"})]}),s.jsx("button",{onClick:()=>{R&&(S(JSON.stringify(e,null,2)),L(null)),y(!R)},className:`p-2 border transition-all ${R?"border-alert/30 text-alert":"border-white/10 text-gray-500 hover:text-signal hover:border-signal/30"}`,children:R?s.jsx(pt,{className:"w-4 h-4"}):s.jsx(ti,{className:"w-4 h-4"})}),s.jsx("button",{onClick:()=>ae(JSON.stringify(e,null,2),"json"),className:"p-2 border border-white/10 text-gray-500 hover:text-signal hover:border-signal/30 transition-all",children:d==="json"?s.jsx(zt,{className:"w-4 h-4 text-matrix"}):s.jsx(cs,{className:"w-4 h-4"})})]}),D&&s.jsxs("div",{className:"mb-3 p-3 border border-alert/30 bg-alert/5 text-alert font-mono text-[11px] flex items-center gap-2",children:[s.jsx(Ie,{className:"w-4 h-4"}),D]}),R?s.jsxs(s.Fragment,{children:[s.jsx("textarea",{value:P,onChange:E=>{S(E.target.value),L(null)},className:"w-full h-[400px] theme-input p-4 text-xs resize-none",spellCheck:!1}),s.jsx("p",{className:"mt-2 font-mono text-[10px] text-gray-600",children:'Edit JSON → "APPLY" → "SAVE" in sidebar'})]}):s.jsx("div",{className:"bg-void-100 border border-white/5 p-4 max-h-[400px] overflow-auto",children:s.jsx("pre",{className:"font-mono text-[11px] text-gray-400 whitespace-pre",children:JSON.stringify(e,null,2)})})]})]})]}),ie==="language"&&s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-white mb-2",children:i("settings.language")}),s.jsx("p",{className:"font-mono text-[10px] text-gray-600 mb-6",children:o==="es"?"Selecciona el idioma de la interfaz":"Select interface language"}),s.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[s.jsxs("button",{onClick:()=>c("es"),className:`p-5 border transition-all text-left ${o==="es"?"border-matrix/50 bg-matrix/10":"border-white/10 hover:border-white/30"}`,children:[s.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[s.jsx("div",{className:`w-10 h-10 border flex items-center justify-center font-display text-lg ${o==="es"?"border-matrix/50 bg-matrix/10 text-matrix":"border-gray-700 text-gray-500"}`,children:"ES"}),s.jsxs("div",{children:[s.jsx("div",{className:`font-mono text-sm ${o==="es"?"text-matrix":"text-white"}`,children:"Español"}),s.jsx("div",{className:"font-mono text-[10px] text-gray-500",children:"Spanish"})]})]}),o==="es"&&s.jsxs("div",{className:"flex items-center gap-2 text-matrix",children:[s.jsx(Re,{className:"w-4 h-4"}),s.jsx("span",{className:"font-mono text-[10px]",children:"ACTIVO"})]})]}),s.jsxs("button",{onClick:()=>c("en"),className:`p-5 border transition-all text-left ${o==="en"?"border-cyber/50 bg-cyber/10":"border-white/10 hover:border-white/30"}`,children:[s.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[s.jsx("div",{className:`w-10 h-10 border flex items-center justify-center font-display text-lg ${o==="en"?"border-cyber/50 bg-cyber/10 text-cyber":"border-gray-700 text-gray-500"}`,children:"EN"}),s.jsxs("div",{children:[s.jsx("div",{className:`font-mono text-sm ${o==="en"?"text-cyber":"text-white"}`,children:"English"}),s.jsx("div",{className:"font-mono text-[10px] text-gray-500",children:"Inglés"})]})]}),o==="en"&&s.jsxs("div",{className:"flex items-center gap-2 text-cyber",children:[s.jsx(Re,{className:"w-4 h-4"}),s.jsx("span",{className:"font-mono text-[10px]",children:"ACTIVE"})]})]})]})]})]})}function ah({t:e,language:t}){const[r,n]=v.useState("templates"),[a,l]=v.useState(null),i=[{id:"templates",label:e("help.templates"),icon:ei},{id:"commits",label:e("help.commits"),icon:Pu},{id:"ai",label:e("help.aiWorkflow"),icon:ma},{id:"troubleshooting",label:e("help.debug"),icon:zu}],o=c=>{navigator.clipboard.writeText(c),l(c),setTimeout(()=>l(null),2e3)};return s.jsxs("div",{className:"space-y-6 animate-fade-in",children:[s.jsx("div",{className:"flex gap-2 flex-wrap",children:i.map(c=>{const d=c.icon;return s.jsxs("button",{onClick:()=>n(c.id),className:`flex items-center gap-2 px-4 py-2.5 font-mono text-xs tracking-wider border transition-all ${r===c.id?"border-matrix text-matrix bg-matrix/10":"border-white/10 text-gray-500 hover:text-gray-300 hover:border-white/20"}`,children:[s.jsx(d,{className:"w-4 h-4"}),c.label]},c.id)})}),r==="templates"&&s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-matrix tracking-wider mb-4",children:e("help.referenceFiles")}),s.jsx("p",{className:"font-mono text-[11px] text-gray-500 mb-4",children:e("help.sharePaths")}),s.jsx("div",{className:"space-y-2",children:[{path:"roadmap-kit/templates/clinerules.template",label:e("help.clinerulesTpl"),color:"text-cyber"},{path:"roadmap-kit/templates/roadmap.template.json",label:e("help.roadmapTpl"),color:"text-signal"},{path:"roadmap-kit/examples/roadmap-ecommerce.json",label:e("help.exampleEcommerce"),color:"text-matrix"},{path:"roadmap-kit/examples/roadmap-api-rest.json",label:e("help.exampleApi"),color:"text-cyber"},{path:"roadmap-kit/docs/TECHNICAL_DEBT_GUIDE.md",label:e("help.debtGuide"),color:"text-alert"}].map(c=>s.jsxs("div",{className:"flex items-center justify-between p-3 bg-void-100 border border-white/5",children:[s.jsxs("div",{children:[s.jsx("p",{className:`font-mono text-[10px] ${c.color} tracking-wider`,children:c.label}),s.jsx("code",{className:"font-mono text-[11px] text-gray-500",children:c.path})]}),s.jsx("button",{onClick:()=>o(c.path),className:"p-2 hover:bg-white/5 transition-all",children:a===c.path?s.jsx(zt,{className:"w-4 h-4 text-matrix"}):s.jsx(cs,{className:"w-4 h-4 text-gray-600"})})]},c.path))})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-cyber tracking-wider mb-4",children:e("help.aiInstructions")}),s.jsx("div",{className:"bg-void-100 border border-white/5 p-4 font-mono text-[11px] text-gray-400 overflow-x-auto",children:s.jsx("pre",{className:"whitespace-pre-wrap",children:`Read the example files in:
346
+ - roadmap-kit/examples/roadmap-ecommerce.json
347
+ - roadmap-kit/examples/roadmap-api-rest.json
348
+
349
+ Then generate a roadmap.json for my project following this structure:
350
+
351
+ {
352
+ "project_info": {
353
+ "name": "Project Name",
354
+ "version": "1.0.0",
355
+ "description": "Brief description",
356
+ "purpose": "Main objective",
357
+ "stack": ["Tech1", "Tech2"],
358
+ "architecture": "Architecture description",
359
+ "conventions": { ... },
360
+ "shared_resources": { ... }
361
+ },
362
+ "features": [
363
+ {
364
+ "id": "feature-id",
365
+ "name": "Name",
366
+ "description": "Description",
367
+ "status": "pending",
368
+ "progress": 0,
369
+ "priority": "high|medium|low",
370
+ "tasks": [ ... ]
371
+ }
372
+ ]
373
+ }`})})]}),s.jsxs("div",{className:"theme-card p-5 border-matrix/20",children:[s.jsxs("div",{className:"flex items-center justify-between mb-3",children:[s.jsx("h4",{className:"font-mono text-sm text-matrix",children:e("help.quickPrompt")}),s.jsx("button",{onClick:()=>o(`Read the files:
374
+ - roadmap-kit/templates/clinerules.template
375
+ - roadmap-kit/examples/roadmap-ecommerce.json
376
+ - roadmap-kit/docs/TECHNICAL_DEBT_GUIDE.md
377
+
378
+ Then help me create/improve the roadmap.json for my project following that format.`),className:"px-3 py-1.5 border border-matrix/30 text-matrix font-mono text-[10px] hover:bg-matrix/10 transition-all",children:a!=null&&a.includes("Read the files")?e("common.copied").toUpperCase():e("help.copyPrompt")})]}),s.jsxs("div",{className:"bg-void-100 border border-white/5 p-3 font-mono text-[11px] text-gray-500",children:[s.jsx("p",{children:"Read the files:"}),s.jsx("p",{className:"text-cyber",children:"- roadmap-kit/templates/clinerules.template"}),s.jsx("p",{className:"text-matrix",children:"- roadmap-kit/examples/roadmap-ecommerce.json"}),s.jsx("p",{className:"text-alert",children:"- roadmap-kit/docs/TECHNICAL_DEBT_GUIDE.md"}),s.jsx("p",{className:"mt-2",children:"Then help me create/improve the roadmap.json..."})]})]})]}),r==="commits"&&s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-matrix tracking-wider mb-4",children:e("help.commitFormat")}),s.jsx("p",{className:"font-mono text-[11px] text-gray-500 mb-4",children:e("help.commitFormatDesc")}),s.jsx("div",{className:"bg-void-100 border border-white/5 p-4 mb-6",children:s.jsx("code",{className:"font-mono text-sm text-cyber",children:'git commit -m "[task:ID] [status:STATUS] Description"'})}),s.jsx("h4",{className:"font-mono text-xs text-gray-400 mb-3",children:e("help.availableTags")}),s.jsx("div",{className:"overflow-x-auto",children:s.jsxs("table",{className:"w-full font-mono text-[11px]",children:[s.jsx("thead",{children:s.jsxs("tr",{className:"border-b border-white/10",children:[s.jsx("th",{className:"text-left py-2 text-gray-500",children:e("help.tag")}),s.jsx("th",{className:"text-left py-2 text-gray-500",children:e("help.values")}),s.jsx("th",{className:"text-left py-2 text-gray-500",children:e("help.example")})]})}),s.jsxs("tbody",{className:"text-gray-400",children:[s.jsxs("tr",{className:"border-b border-white/5",children:[s.jsx("td",{className:"py-2",children:s.jsx("code",{className:"text-cyber",children:"[task:id]"})}),s.jsx("td",{className:"py-2",children:"Task ID"}),s.jsx("td",{className:"py-2",children:s.jsx("code",{className:"text-matrix",children:"[task:auth-login]"})})]}),s.jsxs("tr",{className:"border-b border-white/5",children:[s.jsx("td",{className:"py-2",children:s.jsx("code",{className:"text-cyber",children:"[status:x]"})}),s.jsx("td",{className:"py-2",children:"pending, in_progress, completed"}),s.jsx("td",{className:"py-2",children:s.jsx("code",{className:"text-matrix",children:"[status:completed]"})})]}),s.jsxs("tr",{children:[s.jsx("td",{className:"py-2",children:s.jsx("code",{className:"text-cyber",children:"[debt:...]"})}),s.jsx("td",{className:"py-2",children:"desc|severity|effort"}),s.jsx("td",{className:"py-2",children:s.jsx("code",{className:"text-matrix",children:"[debt:No validation|high|1h]"})})]})]})]})})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h4",{className:"font-mono text-xs text-gray-400 mb-4",children:e("help.examples")}),s.jsx("div",{className:"space-y-3",children:[{comment:e("help.completeTask"),cmd:'git commit -m "[task:auth-login] [status:completed] Implement JWT login"'},{comment:e("help.taskInProgress"),cmd:'git commit -m "[task:user-list] [status:in_progress] Add basic listing"'},{comment:e("help.withDebt"),cmd:'git commit -m "[task:api-users] [status:completed] [debt:No tests|medium|2h] CRUD users"'}].map((c,d)=>s.jsxs("div",{className:"bg-void-100 border border-white/5 p-3",children:[s.jsx("p",{className:"font-mono text-[10px] text-gray-600 mb-1",children:c.comment}),s.jsx("code",{className:"font-mono text-[11px] text-cyber",children:c.cmd})]},d))})]}),s.jsxs("div",{className:"theme-card p-5 border-cyber/20",children:[s.jsx("h4",{className:"font-mono text-sm text-cyber tracking-wider mb-3",children:e("help.syncWithGit")}),s.jsx("p",{className:"font-mono text-[11px] text-gray-500 mb-3",children:e("help.afterCommits")}),s.jsx("div",{className:"bg-void-100 border border-white/5 p-3",children:s.jsx("code",{className:"font-mono text-sm text-matrix",children:"node roadmap-kit/scanner.js"})}),s.jsx("p",{className:"font-mono text-[10px] text-gray-600 mt-3",children:e("help.updatesInfo")})]})]}),r==="ai"&&s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-matrix tracking-wider mb-4",children:e("help.recommendedWorkflow")}),s.jsx("div",{className:"space-y-2",children:[{step:"01",text:e("help.step01")},{step:"02",text:e("help.step02")},{step:"03",text:e("help.step03")}].map(c=>s.jsxs("div",{className:"flex items-center gap-3 p-3 bg-void-100 border border-white/5",children:[s.jsx("span",{className:"font-display text-lg text-matrix",children:c.step}),s.jsx("span",{className:"font-mono text-xs text-gray-400",children:c.text})]},c.step))})]}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[s.jsxs("div",{className:"theme-card p-5 border-matrix/20",children:[s.jsxs("h4",{className:"font-mono text-xs text-matrix tracking-wider mb-4 flex items-center gap-2",children:[s.jsx(Re,{className:"w-4 h-4"})," ",e("help.aiMustDo")]}),s.jsx("ul",{className:"space-y-2 font-mono text-[11px] text-gray-400",children:e("help.mustDoList").map((c,d)=>s.jsxs("li",{className:"flex items-start gap-2",children:[s.jsx("span",{className:"text-matrix",children:"✓"}),c]},d))})]}),s.jsxs("div",{className:"theme-card p-5 border-alert/20",children:[s.jsxs("h4",{className:"font-mono text-xs text-alert tracking-wider mb-4 flex items-center gap-2",children:[s.jsx(pt,{className:"w-4 h-4"})," ",e("help.aiMustNot")]}),s.jsx("ul",{className:"space-y-2 font-mono text-[11px] text-gray-400",children:e("help.mustNotList").map((c,d)=>s.jsxs("li",{className:"flex items-start gap-2",children:[s.jsx("span",{className:"text-alert",children:"✗"}),c]},d))})]})]})]}),r==="troubleshooting"&&s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-signal tracking-wider mb-4",children:e("help.troubleshooting")}),s.jsx("div",{className:"space-y-4",children:[{title:'"Cannot load roadmap.json"',solutions:["Verify roadmap-kit/roadmap.json exists","Check server is running on correct port","Restart: npm run dev"]},{title:"Changes not saving",solutions:['Click "SAVE" in sidebar',"Check server has write permissions","Check browser console for errors"]},{title:"Deploy not working",solutions:["Check project path in Settings",'Use "Download" and copy manually',"Verify write permissions"]},{title:"AI not following rules",solutions:["Verify .clinerules in project root","Regenerate from Settings","Restart AI session"]},{title:"Port in use error",solutions:["Run: lsof -ti:3001 | xargs kill -9"]}].map((c,d)=>s.jsxs("div",{className:"bg-void-100 border border-white/5 p-4",children:[s.jsx("h4",{className:"font-mono text-xs text-white mb-2",children:c.title}),s.jsx("ul",{className:"font-mono text-[11px] text-gray-500 space-y-1",children:c.solutions.map((p,x)=>s.jsxs("li",{children:["• ",p]},x))})]},d))})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h4",{className:"font-mono text-xs text-gray-400 mb-4",children:e("help.fileSummary")}),s.jsx("div",{className:"overflow-x-auto",children:s.jsxs("table",{className:"w-full font-mono text-[11px]",children:[s.jsx("thead",{children:s.jsxs("tr",{className:"border-b border-white/10",children:[s.jsx("th",{className:"text-left py-2 text-gray-500",children:e("help.file")}),s.jsx("th",{className:"text-left py-2 text-gray-500",children:e("help.location")}),s.jsx("th",{className:"text-left py-2 text-gray-500",children:e("help.purposeCol")})]})}),s.jsxs("tbody",{className:"text-gray-400",children:[s.jsxs("tr",{className:"border-b border-white/5",children:[s.jsx("td",{className:"py-2",children:s.jsx("code",{className:"text-cyber",children:"roadmap.json"})}),s.jsx("td",{className:"py-2",children:"roadmap-kit/"}),s.jsx("td",{className:"py-2",children:"Project state"})]}),s.jsxs("tr",{className:"border-b border-white/5",children:[s.jsx("td",{className:"py-2",children:s.jsx("code",{className:"text-cyber",children:".clinerules"})}),s.jsx("td",{className:"py-2",children:"Project root"}),s.jsx("td",{className:"py-2",children:"AI rules"})]}),s.jsxs("tr",{className:"border-b border-white/5",children:[s.jsx("td",{className:"py-2",children:s.jsx("code",{className:"text-cyber",children:".cursorrules"})}),s.jsx("td",{className:"py-2",children:"Project root"}),s.jsx("td",{className:"py-2",children:"Cursor rules"})]}),s.jsxs("tr",{children:[s.jsx("td",{className:"py-2",children:s.jsx("code",{className:"text-cyber",children:".env"})}),s.jsx("td",{className:"py-2",children:"roadmap-kit/"}),s.jsx("td",{className:"py-2",children:"Auth credentials"})]})]})]})})]})]})]})}function lh({roadmap:e,setRoadmap:t,setHasChanges:r,loadRoadmap:n,t:a,language:l}){var ne,J,xt,$e,Q,pe,Ae,It,hr,Or,Wt,Dr,ee,kt,fs,ve,Xe,xr;const[i,o]=v.useState(""),[c,d]=v.useState({hasKey:!1,maskedKey:null}),[p,x]=v.useState({available:!1,version:null,checking:!0}),[g,h]=v.useState("claude-code"),[j,b]=v.useState(""),[w,m]=v.useState(!1),[u,f]=v.useState(null),[N,k]=v.useState(null),[T,R]=v.useState(1),[y,P]=v.useState(null),[S,D]=v.useState(!1),[L,M]=v.useState(!1),V=((ne=e==null?void 0:e.features)==null?void 0:ne.length)>0&&e.features.some(A=>{var G;return((G=A.tasks)==null?void 0:G.length)>0}),F=v.useMemo(()=>{var Ot,Dt,Kt,Yt,Pr,Lr,Pt;const A=l==="es";if(!e)return{valid:!1,issues:[A?"No se encontró roadmap":"No roadmap found"],score:0};const G=[],oe=[];let Ne=0;const Pe=100;if(!e.project_info)G.push(A?"Falta la sección project_info":"Missing project_info section");else{const ae=e.project_info;if(ae.name?Ne+=10:G.push(A?"El nombre del proyecto es requerido":"Project name is required"),ae.description?Ne+=5:oe.push(A?"Se recomienda añadir descripción del proyecto":"Project description is recommended"),!ae.stack||ae.stack.length===0?oe.push(A?"Stack tecnológico no definido":"Tech stack not defined"):Ne+=10,ae.architecture?Ne+=5:oe.push(A?"Arquitectura no documentada":"Architecture not documented"),!ae.conventions||Object.keys(ae.conventions).length===0?oe.push(A?"Convenciones de código no definidas":"Coding conventions not defined"):Ne+=10,!ae.shared_resources)oe.push(A?"Falta sección de recursos compartidos":"Shared resources section missing");else{const te=ae.shared_resources;!te.ui_components||te.ui_components.length===0?oe.push(A?"Sin componentes UI documentados":"No UI components documented"):Ne+=5,!te.utilities||te.utilities.length===0?oe.push(A?"Sin utilidades documentadas":"No utilities documented"):Ne+=5,!te.database_tables||te.database_tables.length===0?oe.push(A?"Sin tablas de BD documentadas":"No database tables documented"):Ne+=5}((Ot=ae.stack)==null?void 0:Ot.some(te=>["postgresql","mysql","mongodb","sqlite","prisma","supabase","firebase"].some(lt=>te.toLowerCase().includes(lt))))&&(!((Dt=ae.shared_resources)!=null&&Dt.database_tables)||ae.shared_resources.database_tables.length===0)&&G.push(A?"El proyecto usa BD pero no tiene tablas documentadas":"Project uses database but no tables are documented")}if(!e.features||e.features.length===0)G.push(A?"No hay features definidas":"No features defined");else{Ne+=15;const ae=e.features.filter(te=>!te.name||!te.description);ae.length>0&&oe.push(A?`${ae.length} feature(s) sin nombre o descripción`:`${ae.length} feature(s) missing name or description`);const Le=e.features.reduce((te,lt)=>{var gt;return te+(((gt=lt.tasks)==null?void 0:gt.length)||0)},0);if(Le===0)G.push(A?"No hay tareas definidas en ninguna feature":"No tasks defined in any feature");else{Ne+=20;const te=e.features.flatMap(gt=>(gt.tasks||[]).filter(Ze=>!Ze.name||!Ze.description));te.length>0&&oe.push(A?`${te.length} tarea(s) sin nombre o descripción`:`${te.length} task(s) missing name or description`),e.features.flatMap(gt=>(gt.tasks||[]).filter(Ze=>Ze.affected_files&&Ze.affected_files.length>0)).length>Le*.5?Ne+=10:oe.push(A?"La mayoría de tareas no tienen affected_files":"Most tasks are missing affected_files")}}return{valid:G.length===0,issues:G,warnings:oe,score:Math.min(Ne,Pe),hasProject:!!((Kt=e.project_info)!=null&&Kt.name),hasFeatures:(((Yt=e.features)==null?void 0:Yt.length)||0)>0,hasTasks:(Pr=e.features)==null?void 0:Pr.some(ae=>{var Le;return((Le=ae.tasks)==null?void 0:Le.length)>0}),totalFeatures:((Lr=e.features)==null?void 0:Lr.length)||0,totalTasks:((Pt=e.features)==null?void 0:Pt.reduce((ae,Le)=>{var te;return ae+(((te=Le.tasks)==null?void 0:te.length)||0)},0))||0}},[e,l]);v.useEffect(()=>{fetch("/api/api-key-status").then(A=>A.json()).then(A=>d(A)).catch(()=>{}),fetch("/api/claude-code-status").then(A=>A.json()).then(A=>{x({...A,checking:!1}),A.available&&(h("claude-code"),R(2))}).catch(()=>x({available:!1,checking:!1})),se()},[]);const se=async()=>{D(!0);try{const A=await fetch("/api/scan-project");if(A.ok){const G=await A.json();P(G)}}catch(A){console.error("Scan error:",A)}D(!1)},ie=async()=>{if(i.trim())try{if((await fetch("/api/save-api-key",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:i})})).ok)d({hasKey:!0,maskedKey:`${i.substring(0,10)}...${i.substring(i.length-4)}`}),o(""),R(2);else throw new Error("Error saving API key")}catch(A){k(A.message)}},C=async()=>{if(!j.trim()){k(l==="es"?"Por favor describe los requerimientos o características que quieres implementar":"Please describe the requirements or features you want to implement");return}m(!0),k(null);try{const A=await fetch("/api/analyze-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({requirements:j,projectScan:y,existingRoadmap:e,useClaudeCode:g==="claude-code"})}),G=await A.json();if(!A.ok)throw new Error(G.error||"Error analyzing project");f(G),R(3)}catch(A){k(A.message)}finally{m(!1)}},H=async()=>{if(u)try{t(u.roadmap),r(!0),await fetch("/api/deploy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clinerules:u.clinerules,roadmap:u.roadmap})}),R(4)}catch(A){k(A.message)}};return F.valid&&F.score>=60&&T!==2&&!u?s.jsxs("div",{className:"space-y-6 animate-fade-in",children:[s.jsxs("div",{className:"theme-card p-8 border-matrix/50 text-center",children:[s.jsx("div",{className:"w-20 h-20 mx-auto border-2 border-matrix/50 flex items-center justify-center mb-6 glow-matrix",children:s.jsx(Re,{className:"w-10 h-10 text-matrix"})}),s.jsx("h2",{className:"font-display text-2xl text-matrix tracking-wider mb-2",children:a?a("setup.setupComplete"):"SETUP COMPLETE"}),s.jsx("p",{className:"font-mono text-xs text-gray-500",children:a?a("setup.setupCompleteDesc"):"Your roadmap is configured and ready to use"})]}),s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h3",{className:"font-mono text-sm text-white tracking-wider mb-4",children:a?a("setup.roadmapStatus"):"ROADMAP STATUS"}),s.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-6",children:[s.jsxs("div",{className:"p-4 bg-void-100 border border-matrix/20",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600",children:a?a("stats.total").toUpperCase():"FEATURES"}),s.jsx("div",{className:"font-display text-2xl text-matrix",children:F.totalFeatures})]}),s.jsxs("div",{className:"p-4 bg-void-100 border border-cyber/20",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600",children:"TASKS"}),s.jsx("div",{className:"font-display text-2xl text-cyber",children:F.totalTasks})]}),s.jsxs("div",{className:"p-4 bg-void-100 border border-signal/20",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600",children:l==="es"?"PROGRESO":"PROGRESS"}),s.jsxs("div",{className:"font-display text-2xl text-signal",children:[((J=e==null?void 0:e.project_info)==null?void 0:J.total_progress)||0,"%"]})]}),s.jsxs("div",{className:"p-4 bg-void-100 border border-white/10",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600",children:l==="es"?"PUNTUACIÓN":"SCORE"}),s.jsxs("div",{className:"font-display text-2xl text-white",children:[F.score,"%"]})]})]}),F.warnings.length>0&&s.jsxs("details",{className:"mb-4 p-3 bg-signal/5 border border-signal/20",children:[s.jsxs("summary",{className:"font-mono text-[10px] text-signal cursor-pointer",children:[F.warnings.length," ",a?a("setup.warnings").toLowerCase():"warnings"," (",l==="es"?"click para ver":"click to view",")"]}),s.jsx("ul",{className:"mt-2 space-y-1",children:F.warnings.map((A,G)=>s.jsxs("li",{className:"font-mono text-[10px] text-signal/70 flex items-start gap-2",children:[s.jsx(Ie,{className:"w-3 h-3 mt-0.5 flex-shrink-0"}),A]},G))})]}),s.jsxs("div",{className:"flex gap-3",children:[s.jsxs("button",{onClick:()=>window.location.hash="#features",className:"theme-btn-primary flex-1 py-3 flex items-center justify-center gap-2",children:[s.jsx(Zi,{className:"w-4 h-4"}),a?a("setup.goToDashboard"):"GO TO DASHBOARD"]}),s.jsx("button",{onClick:()=>R(2),className:"px-6 py-3 border border-white/10 text-gray-500 font-mono text-xs hover:text-white hover:border-white/30 transition-all",children:a?a("setup.reconfigure"):"RECONFIGURE"})]})]}),(e==null?void 0:e.project_info)&&s.jsxs("div",{className:"theme-card p-5",children:[s.jsxs("h3",{className:"font-mono text-sm text-cyber tracking-wider mb-4",children:["# ",e.project_info.name||"PROJECT"]}),e.project_info.description&&s.jsx("p",{className:"font-mono text-xs text-gray-400 mb-4",children:e.project_info.description}),((xt=e.project_info.stack)==null?void 0:xt.length)>0&&s.jsx("div",{className:"flex flex-wrap gap-2",children:e.project_info.stack.map((A,G)=>s.jsx("span",{className:"font-mono text-[10px] px-2 py-1 bg-matrix/10 text-matrix border border-matrix/30",children:A},G))})]})]}):s.jsxs("div",{className:"space-y-6 animate-fade-in",children:[s.jsx("div",{className:"theme-card p-5 border-matrix/30",children:s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx("div",{className:"w-14 h-14 border border-matrix/50 flex items-center justify-center glow-matrix",children:s.jsx(an,{className:"w-7 h-7 text-matrix"})}),s.jsxs("div",{children:[s.jsx("h2",{className:"font-display text-xl text-matrix tracking-wider",children:a?a("setup.title"):"AI SETUP WIZARD"}),s.jsx("p",{className:"font-mono text-xs text-gray-500 mt-1",children:a?a("setup.subtitle"):"Describe your project and Claude will generate the configuration"})]})]})}),s.jsx("div",{className:"flex items-center gap-2",children:[{num:1,label:a?a("setup.stepConnect"):"CONNECT"},{num:2,label:a?a("setup.stepDescribe"):"DESCRIBE"},{num:3,label:a?a("setup.stepReview"):"REVIEW"},{num:4,label:a?a("setup.stepDone"):"DONE"}].map((A,G)=>s.jsxs(oi.Fragment,{children:[s.jsxs("button",{onClick:()=>A.num<=T&&R(A.num),className:`flex items-center gap-2 px-4 py-2 border transition-all ${T===A.num?"border-matrix text-matrix bg-matrix/10":T>A.num?"border-matrix/30 text-matrix/60":"border-white/10 text-gray-600"}`,children:[s.jsx("span",{className:"font-display text-lg",children:A.num}),s.jsx("span",{className:"font-mono text-[10px] tracking-wider hidden sm:block",children:A.label})]}),G<3&&s.jsx("div",{className:`flex-1 h-px ${T>A.num?"bg-matrix/50":"bg-white/10"}`})]},A.num))}),N&&s.jsxs("div",{className:"p-4 border border-alert/30 bg-alert/5 text-alert font-mono text-xs flex items-center gap-2",children:[s.jsx(Ie,{className:"w-4 h-4"}),N,s.jsx("button",{onClick:()=>k(null),className:"ml-auto text-gray-500 hover:text-white",children:s.jsx(pt,{className:"w-4 h-4"})})]}),T===1&&s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"theme-card p-6",children:[s.jsxs("h3",{className:"font-mono text-sm text-matrix tracking-wider mb-4",children:["# ",a?a("setup.chooseConnection"):"CHOOSE CONNECTION MODE"]}),s.jsx("p",{className:"font-mono text-xs text-gray-500 mb-6",children:a?a("setup.chooseConnectionDesc"):"Choose how to connect with Claude to generate your project configuration."}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[s.jsxs("button",{onClick:()=>{h("claude-code"),p.available&&R(2)},className:`p-5 border text-left transition-all ${g==="claude-code"?"border-matrix bg-matrix/10":"border-white/10 hover:border-white/30"}`,children:[s.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[s.jsx("div",{className:`led ${p.available?"theme-led theme-led-success":p.checking?"theme-led theme-led-warning":"theme-led theme-led-danger"}`}),s.jsx("span",{className:"font-mono text-sm text-white",children:"CLAUDE CODE"}),s.jsx("span",{className:"font-mono text-[9px] px-2 py-0.5 bg-matrix/20 text-matrix border border-matrix/30",children:a?a("setup.recommended"):"RECOMMENDED"})]}),s.jsx("p",{className:"font-mono text-[11px] text-gray-500 mb-3",children:l==="es"?"Usa tu suscripción de Claude (Max/Pro) a través de Claude Code CLI. Sin coste adicional.":"Use your Claude subscription (Max/Pro) via Claude Code CLI. No additional cost."}),p.checking?s.jsxs("div",{className:"flex items-center gap-2 font-mono text-[10px] text-signal",children:[s.jsx(Ke,{className:"w-3 h-3 animate-spin"}),l==="es"?"Verificando Claude Code...":"Verifying Claude Code..."]}):p.available?s.jsxs("div",{className:"flex items-center gap-2 font-mono text-[10px] text-matrix",children:[s.jsx(Re,{className:"w-3 h-3"}),"Claude Code ",a?a("setup.available").toLowerCase():"available"," ",p.version&&`(${p.version})`]}):s.jsxs("div",{className:"flex items-center gap-2 font-mono text-[10px] text-alert",children:[s.jsx(Ie,{className:"w-3 h-3"}),"Claude Code ",a?a("setup.notAvailable").toLowerCase():"not detected"]})]}),s.jsxs("button",{onClick:()=>h("api"),className:`p-5 border text-left transition-all ${g==="api"?"border-cyber bg-cyber/10":"border-white/10 hover:border-white/30"}`,children:[s.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[s.jsx("div",{className:`led ${c.hasKey?"theme-led theme-led-success":"led-gray"}`}),s.jsx("span",{className:"font-mono text-sm text-white",children:"API KEY"})]}),s.jsx("p",{className:"font-mono text-[11px] text-gray-500 mb-3",children:"Usa una API key de Anthropic. Pago por uso (~$0.05-0.15 por generación)."}),c.hasKey?s.jsxs("div",{className:"flex items-center gap-2 font-mono text-[10px] text-matrix",children:[s.jsx(Re,{className:"w-3 h-3"}),"API Key configurada"]}):s.jsxs("div",{className:"flex items-center gap-2 font-mono text-[10px] text-gray-500",children:[s.jsx(Zl,{className:"w-3 h-3"}),"Sin API Key configurada"]})]})]})]}),g==="claude-code"&&!p.checking&&!p.available&&s.jsxs("div",{className:"theme-card p-5 border-signal/30",children:[s.jsx("h4",{className:"font-mono text-xs text-signal tracking-wider mb-3",children:"INSTALAR CLAUDE CODE"}),s.jsx("p",{className:"font-mono text-[11px] text-gray-500 mb-4",children:"Para usar tu suscripción, necesitas tener Claude Code instalado y autenticado."}),s.jsxs("div",{className:"space-y-2 font-mono text-[11px]",children:[s.jsx("div",{className:"p-2 bg-black/50 border border-white/10",children:s.jsx("code",{className:"text-cyber",children:"npm install -g @anthropic-ai/claude-code"})}),s.jsx("div",{className:"p-2 bg-black/50 border border-white/10",children:s.jsx("code",{className:"text-cyber",children:"claude auth login"})})]}),s.jsx("button",{onClick:()=>fetch("/api/claude-code-status").then(A=>A.json()).then(A=>x({...A,checking:!1})),className:"mt-4 px-4 py-2 border border-signal/30 text-signal font-mono text-[10px] hover:bg-signal/10 transition-all",children:"VERIFICAR DE NUEVO"})]}),g==="api"&&s.jsxs("div",{className:"theme-card p-5",children:[s.jsx("h4",{className:"font-mono text-xs text-cyber tracking-wider mb-3",children:"CONFIGURAR API KEY"}),s.jsxs("p",{className:"font-mono text-[11px] text-gray-500 mb-4",children:["Obtén una API key en"," ",s.jsx("a",{href:"https://platform.claude.com",target:"_blank",rel:"noopener noreferrer",className:"text-cyber hover:underline",children:"platform.claude.com"})]}),c.hasKey?s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"p-3 border border-matrix/30 bg-matrix/5 font-mono text-xs",children:[s.jsx("span",{className:"text-gray-500",children:"CURRENT KEY:"})," ",s.jsx("span",{className:"text-matrix",children:c.maskedKey})]}),s.jsxs("div",{className:"flex gap-3",children:[s.jsx("button",{onClick:()=>R(2),className:"theme-btn-primary flex-1",children:"CONTINUE →"}),s.jsx("button",{onClick:()=>d({hasKey:!1,maskedKey:null}),className:"px-4 py-2 border border-white/10 text-gray-500 font-mono text-xs hover:text-white transition-all",children:"CHANGE"})]})]}):s.jsxs("div",{className:"space-y-3",children:[s.jsx("input",{type:"password",placeholder:"sk-ant-api03-...",value:i,onChange:A=>o(A.target.value),className:"theme-input w-full px-4 py-3 text-sm"}),s.jsx("button",{onClick:ie,disabled:!i.trim(),className:"theme-btn-primary w-full py-3 disabled:opacity-50",children:"SAVE API KEY"})]})]}),g==="claude-code"&&p.available&&s.jsx("button",{onClick:()=>R(2),className:"theme-btn-primary w-full py-4",children:"CONTINUE WITH CLAUDE CODE →"})]}),T===2&&s.jsxs("div",{className:"space-y-4",children:[V&&s.jsx("div",{className:`theme-card p-5 ${F.valid?"border-matrix/50":F.issues.length>0?"border-alert/30":"border-signal/30"}`,children:s.jsxs("div",{className:"flex items-start gap-4",children:[s.jsx("div",{className:`w-12 h-12 border flex items-center justify-center ${F.valid?"border-matrix/50 bg-matrix/10":F.issues.length>0?"border-alert/50 bg-alert/10":"border-signal/50 bg-signal/10"}`,children:F.valid?s.jsx(Re,{className:"w-6 h-6 text-matrix"}):F.issues.length>0?s.jsx(Ie,{className:"w-6 h-6 text-alert"}):s.jsx(sn,{className:"w-6 h-6 text-signal"})}),s.jsxs("div",{className:"flex-1",children:[s.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[s.jsx("h4",{className:`font-mono text-sm ${F.valid?"text-matrix":F.issues.length>0?"text-alert":"text-signal"}`,children:F.valid?"ROADMAP COMPLETE":F.issues.length>0?"ROADMAP INCOMPLETE":"ROADMAP NEEDS REVIEW"}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("div",{className:"w-20 h-2 bg-void-200 overflow-hidden",children:s.jsx("div",{className:`h-full transition-all ${F.score>=80?"bg-matrix":F.score>=50?"bg-signal":"bg-alert"}`,style:{width:`${F.score}%`}})}),s.jsxs("span",{className:"font-mono text-[10px] text-gray-500",children:[F.score,"%"]})]})]}),s.jsxs("p",{className:"font-mono text-[10px] text-gray-500 mb-3",children:[F.totalFeatures," features • ",F.totalTasks," tasks • ",(($e=e.project_info)==null?void 0:$e.total_progress)||0,"% progress"]}),F.issues.length>0&&s.jsxs("div",{className:"mb-3",children:[s.jsx("div",{className:"font-mono text-[9px] text-alert tracking-wider mb-1",children:"ISSUES TO FIX:"}),s.jsx("ul",{className:"space-y-1",children:F.issues.map((A,G)=>s.jsxs("li",{className:"font-mono text-[10px] text-alert/80 flex items-start gap-2",children:[s.jsx(pt,{className:"w-3 h-3 mt-0.5 flex-shrink-0"}),A]},G))})]}),F.warnings.length>0&&s.jsxs("details",{className:"mb-3",children:[s.jsxs("summary",{className:"font-mono text-[9px] text-signal tracking-wider cursor-pointer hover:text-signal/80",children:[F.warnings.length," WARNINGS (click to expand)"]}),s.jsx("ul",{className:"mt-2 space-y-1",children:F.warnings.map((A,G)=>s.jsxs("li",{className:"font-mono text-[10px] text-signal/70 flex items-start gap-2",children:[s.jsx(Ie,{className:"w-3 h-3 mt-0.5 flex-shrink-0"}),A]},G))})]}),F.valid?s.jsxs("div",{className:"flex gap-3",children:[s.jsxs("button",{onClick:()=>R(4),className:"theme-btn-primary px-6 py-2 flex items-center gap-2",children:[s.jsx(Re,{className:"w-4 h-4"}),"CONTINUE TO DASHBOARD"]}),s.jsx("button",{onClick:()=>{},className:"px-4 py-2 border border-white/10 text-gray-500 font-mono text-xs hover:text-white transition-all",children:"REGENERATE ANYWAY"})]}):s.jsxs("div",{className:"flex gap-3",children:[s.jsxs("button",{onClick:()=>{const A=`Fix the following issues in my roadmap:
379
+ ${F.issues.map(G=>`- ${G}`).join(`
380
+ `)}${F.warnings.length>0?`
381
+
382
+ Also consider these improvements:
383
+ ${F.warnings.slice(0,5).map(G=>`- ${G}`).join(`
384
+ `)}`:""}`;b(A)},className:"px-4 py-2 border border-signal/30 text-signal font-mono text-xs hover:bg-signal/10 transition-all flex items-center gap-2",children:[s.jsx(ma,{className:"w-4 h-4"}),"AI FIX ISSUES"]}),F.issues.length<=2&&s.jsx("button",{onClick:()=>R(4),className:"px-4 py-2 border border-white/10 text-gray-500 font-mono text-xs hover:text-white transition-all",children:"SKIP ANYWAY →"})]})]})]})}),s.jsxs("div",{className:"theme-card",children:[s.jsxs("div",{onClick:()=>M(!L),className:"w-full p-4 flex items-center justify-between hover:bg-white/[0.01] transition-colors cursor-pointer",role:"button",tabIndex:0,onKeyDown:A=>A.key==="Enter"&&M(!L),children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx(Af,{className:"w-4 h-4 text-cyber"}),s.jsxs("div",{className:"text-left",children:[s.jsx("h3",{className:"font-mono text-sm text-white",children:"PROJECT ANALYSIS"}),s.jsx("p",{className:"font-mono text-[10px] text-gray-600",children:S?"Scanning...":y?`${y.totalFiles} files • ${((Q=y.techStack)==null?void 0:Q.join(", "))||"Unknown stack"}`:"Not scanned"})]})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{onClick:A=>{A.stopPropagation(),se()},className:"p-1.5 text-gray-600 hover:text-matrix transition-all",title:"Re-scan project",children:s.jsx(pa,{className:`w-4 h-4 ${S?"animate-spin":""}`})}),s.jsx(rn,{className:`w-4 h-4 text-gray-600 transition-transform ${L?"rotate-180":""}`})]})]}),L&&y&&s.jsxs("div",{className:"px-4 pb-4 border-t border-white/5",children:[s.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3 py-4",children:[s.jsxs("div",{className:"p-3 bg-void-100 border border-white/5",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600",children:"FILES"}),s.jsx("div",{className:"font-display text-lg text-matrix",children:y.totalFiles})]}),s.jsxs("div",{className:"p-3 bg-void-100 border border-white/5",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600",children:"SIZE"}),s.jsxs("div",{className:"font-display text-lg text-cyber",children:[(y.totalSize/1024).toFixed(0)," KB"]})]}),s.jsxs("div",{className:"col-span-2 p-3 bg-void-100 border border-white/5",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600 mb-1",children:"TECH STACK"}),s.jsx("div",{className:"flex flex-wrap gap-1",children:(pe=y.techStack)==null?void 0:pe.map((A,G)=>s.jsx("span",{className:"font-mono text-[10px] px-2 py-0.5 bg-matrix/20 text-matrix",children:A},G))})]})]}),((Ae=y.keyFiles)==null?void 0:Ae.length)>0&&s.jsxs("details",{className:"mt-2",children:[s.jsxs("summary",{className:"font-mono text-[10px] text-gray-500 cursor-pointer hover:text-white",children:["KEY FILES (",y.keyFiles.length,")"]}),s.jsx("div",{className:"mt-2 space-y-1 max-h-40 overflow-y-auto",children:y.keyFiles.map((A,G)=>s.jsx("div",{className:"p-2 bg-black/30 border border-white/5",children:s.jsx("code",{className:"font-mono text-[10px] text-cyber",children:A.path})},G))})]}),s.jsxs("details",{className:"mt-2",children:[s.jsxs("summary",{className:"font-mono text-[10px] text-gray-500 cursor-pointer hover:text-white",children:["ALL FILES (",((It=y.files)==null?void 0:It.length)||0,")"]}),s.jsx("div",{className:"mt-2 max-h-60 overflow-y-auto",children:s.jsxs("div",{className:"font-mono text-[10px] text-gray-600 space-y-0.5",children:[(hr=y.files)==null?void 0:hr.slice(0,100).map((A,G)=>s.jsx("div",{className:"truncate hover:text-white",children:A.path},G)),((Or=y.files)==null?void 0:Or.length)>100&&s.jsxs("div",{className:"text-gray-700",children:["... and ",y.files.length-100," more"]})]})})]})]})]}),s.jsxs("div",{className:"theme-card p-6",children:[s.jsx("h3",{className:"font-mono text-sm text-matrix tracking-wider mb-2",children:"# REQUIREMENTS"}),s.jsx("p",{className:"font-mono text-[10px] text-gray-500 mb-4",children:"Describe las características, funcionalidades o mejoras que quieres implementar. Claude analizará tu proyecto y generará un roadmap estructurado."}),s.jsx("textarea",{placeholder:`Ejemplo:
385
+ - Sistema de autenticación con login/registro
386
+ - Dashboard de administración con estadísticas
387
+ - API REST para gestión de usuarios
388
+ - Notificaciones por email
389
+ - Integración con pasarela de pago
390
+ - Tests unitarios y e2e
391
+ ...`,value:j,onChange:A=>b(A.target.value),rows:10,className:"theme-input w-full px-4 py-3 text-sm resize-none mb-4"}),s.jsx("button",{onClick:C,disabled:w||!j.trim(),className:"theme-btn-primary w-full py-3 flex items-center justify-center gap-2 disabled:opacity-50",children:w?s.jsxs(s.Fragment,{children:[s.jsx(Ke,{className:"w-4 h-4 animate-spin"}),"ANALYZING PROJECT..."]}):s.jsxs(s.Fragment,{children:[s.jsx(ma,{className:"w-4 h-4"}),"ANALYZE & GENERATE ROADMAP"]})}),s.jsx("p",{className:"font-mono text-[9px] text-gray-700 mt-3 text-center",children:"Claude will analyze your project structure and create detailed tasks with affected files"})]})]}),T===3&&u&&s.jsxs("div",{className:"space-y-4",children:[u.analysis&&s.jsxs("div",{className:"theme-card p-4 border-cyber/30",children:[s.jsxs("h4",{className:"font-mono text-xs text-cyber tracking-wider mb-3 flex items-center gap-2",children:[s.jsx(sn,{className:"w-4 h-4"})," ANALYSIS SUMMARY"]}),s.jsx("p",{className:"font-mono text-xs text-gray-400 mb-3",children:u.analysis.summary}),((Wt=u.analysis.suggestions)==null?void 0:Wt.length)>0&&s.jsxs("div",{className:"mb-3",children:[s.jsx("div",{className:"font-mono text-[9px] text-gray-600 mb-1",children:"SUGGESTIONS:"}),s.jsx("ul",{className:"space-y-1",children:u.analysis.suggestions.map((A,G)=>s.jsxs("li",{className:"font-mono text-[10px] text-gray-500 flex items-start gap-2",children:[s.jsx("span",{className:"text-cyber",children:"→"})," ",A]},G))})]}),((Dr=u.analysis.warnings)==null?void 0:Dr.length)>0&&s.jsxs("div",{className:"p-2 border border-signal/30 bg-signal/5",children:[s.jsx("div",{className:"font-mono text-[9px] text-signal mb-1",children:"WARNINGS:"}),s.jsx("ul",{className:"space-y-1",children:u.analysis.warnings.map((A,G)=>s.jsx("li",{className:"font-mono text-[10px] text-signal/80",children:A},G))})]})]}),s.jsxs("div",{className:"theme-card p-6",children:[s.jsx("h3",{className:"font-mono text-sm text-matrix tracking-wider mb-4",children:"# GENERATED ROADMAP"}),s.jsxs("div",{className:"grid grid-cols-2 gap-4 mb-6",children:[s.jsxs("div",{className:"p-4 border border-matrix/20 bg-matrix/5",children:[s.jsx("div",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-1",children:"FEATURES"}),s.jsx("div",{className:"metric-display text-2xl text-matrix",children:((kt=(ee=u.roadmap)==null?void 0:ee.features)==null?void 0:kt.length)||0})]}),s.jsxs("div",{className:"p-4 border border-cyber/20 bg-cyber/5",children:[s.jsx("div",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-1",children:"TASKS"}),s.jsx("div",{className:"metric-display text-2xl text-cyber",children:((ve=(fs=u.roadmap)==null?void 0:fs.features)==null?void 0:ve.reduce((A,G)=>{var oe;return A+(((oe=G.tasks)==null?void 0:oe.length)||0)},0))||0})]})]}),s.jsxs("div",{className:"space-y-2 mb-6",children:[s.jsx("h4",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:"FEATURES PREVIEW:"}),(xr=(Xe=u.roadmap)==null?void 0:Xe.features)==null?void 0:xr.map(A=>{var G,oe,Ne;return s.jsxs("details",{className:"bg-void-100 border border-white/5",children:[s.jsx("summary",{className:"p-3 cursor-pointer hover:bg-white/[0.02]",children:s.jsxs("div",{className:"flex items-center gap-2 inline",children:[s.jsx("span",{className:`font-mono text-[9px] px-2 py-0.5 ${A.priority==="high"?"bg-alert text-black":A.priority==="medium"?"bg-signal text-black":"bg-cyber text-black"}`,children:(G=A.priority)==null?void 0:G.toUpperCase()}),s.jsx("span",{className:"font-sans text-sm text-white",children:A.name}),s.jsxs("span",{className:"font-mono text-[10px] text-gray-600 ml-auto",children:[((oe=A.tasks)==null?void 0:oe.length)||0," tasks"]})]})}),s.jsxs("div",{className:"px-3 pb-3 border-t border-white/5 space-y-2",children:[s.jsx("p",{className:"font-mono text-[10px] text-gray-500 pt-2",children:A.description}),(Ne=A.tasks)==null?void 0:Ne.map((Pe,Ot)=>{var Dt;return s.jsxs("div",{className:"p-2 bg-black/30 border border-white/5",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[s.jsx(Zl,{className:"w-3 h-3 text-gray-600"}),s.jsx("span",{className:"font-mono text-[11px] text-white",children:Pe.name})]}),((Dt=Pe.affected_files)==null?void 0:Dt.length)>0&&s.jsxs("div",{className:"flex flex-wrap gap-1 mt-1",children:[Pe.affected_files.slice(0,3).map((Kt,Yt)=>s.jsx("code",{className:"font-mono text-[9px] px-1 py-0.5 bg-black/50 text-cyber",children:Kt},Yt)),Pe.affected_files.length>3&&s.jsxs("span",{className:"font-mono text-[9px] text-gray-600",children:["+",Pe.affected_files.length-3]})]})]},Ot)})]})]},A.id)})]}),s.jsxs("div",{className:"flex gap-3",children:[s.jsx("button",{onClick:()=>R(2),className:"px-4 py-2 border border-white/10 text-gray-500 font-mono text-xs hover:text-white transition-all",children:"← BACK"}),s.jsx("button",{onClick:H,className:"theme-btn-primary flex-1 py-3",children:"APPLY & DEPLOY"})]})]}),s.jsx("div",{className:"theme-card p-4",children:s.jsxs("details",{children:[s.jsx("summary",{className:"font-mono text-xs text-gray-500 cursor-pointer hover:text-white",children:"VIEW GENERATED JSON"}),s.jsx("pre",{className:"mt-4 p-4 bg-void-100 border border-white/5 font-mono text-[10px] text-gray-400 max-h-64 overflow-auto",children:JSON.stringify(u.roadmap,null,2)})]})})]}),T===4&&s.jsxs("div",{className:"theme-card p-8 text-center",children:[s.jsx("div",{className:"w-20 h-20 mx-auto mb-6 border-2 border-matrix flex items-center justify-center glow-matrix",children:s.jsx(Re,{className:"w-10 h-10 text-matrix"})}),s.jsx("h3",{className:"font-display text-2xl text-matrix tracking-wider mb-3",children:"SETUP COMPLETE"}),s.jsx("p",{className:"font-mono text-xs text-gray-500 mb-6",children:"Tu roadmap.json y .clinerules han sido generados y guardados."}),s.jsxs("div",{className:"flex gap-3 justify-center",children:[s.jsx("button",{onClick:()=>{R(1),f(null)},className:"px-4 py-2 border border-white/10 text-gray-500 font-mono text-xs hover:text-white transition-all",children:"START OVER"}),s.jsx("button",{onClick:()=>window.location.reload(),className:"theme-btn-primary px-6 py-2",children:"VIEW DASHBOARD"})]})]})]})}function ih({onAdd:e,onCancel:t,team:r=[],t:n,language:a}){const[l,i]=v.useState(""),[o,c]=v.useState(""),[d,p]=v.useState("medium"),[x,g]=v.useState(""),h=j=>{if(j.preventDefault(),!l.trim())return;const b={name:l,description:o,priority:d};if(x){const w=r.find(m=>m.id===x);b.assigned_to=x,b.assigned_name=(w==null?void 0:w.name)||""}e(b)};return s.jsx("form",{onSubmit:h,className:"mt-4 p-4 border border-matrix/30 bg-matrix/5",children:s.jsxs("div",{className:"space-y-3",children:[s.jsx("input",{type:"text",placeholder:n?n("features.taskName"):"Task name",value:l,onChange:j=>i(j.target.value),className:"theme-input w-full px-3 py-2 text-sm",autoFocus:!0}),s.jsx("textarea",{placeholder:n?n("features.taskDescription"):"Description (optional)",value:o,onChange:j=>c(j.target.value),rows:2,className:"theme-input w-full px-3 py-2 text-sm resize-none"}),s.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[s.jsxs("select",{value:d,onChange:j=>p(j.target.value),className:"theme-input px-3 py-2 text-sm",children:[s.jsx("option",{value:"high",children:n?n("common.high").toUpperCase():"HIGH"}),s.jsx("option",{value:"medium",children:n?n("common.medium").toUpperCase():"MEDIUM"}),s.jsx("option",{value:"low",children:n?n("common.low").toUpperCase():"LOW"})]}),r.length>0&&s.jsxs("select",{value:x,onChange:j=>g(j.target.value),className:"theme-input px-3 py-2 text-sm",children:[s.jsx("option",{value:"",children:n?n("features.unassigned"):"Unassigned"}),r.map(j=>s.jsx("option",{value:j.id,children:j.name},j.id))]}),s.jsx("div",{className:"flex-1"}),s.jsx("button",{type:"button",onClick:t,className:"px-4 py-2 font-mono text-xs text-gray-500 hover:text-white transition-all",children:n?n("common.cancel").toUpperCase():"CANCEL"}),s.jsx("button",{type:"submit",disabled:!l.trim(),className:"theme-btn-primary px-4 py-2 disabled:opacity-50",children:n?n("common.add").toUpperCase():"ADD"})]})]})})}function oh({onAdd:e,onClose:t,team:r=[],t:n,language:a}){const[l,i]=v.useState(""),[o,c]=v.useState(""),[d,p]=v.useState("medium"),[x,g]=v.useState(""),[h,j]=v.useState(""),b=w=>{if(w.preventDefault(),!l.trim())return;const m={id:x||void 0,name:l,description:o,priority:d};if(h){const u=r.find(f=>f.id===h);m.assigned_to=h,m.assigned_name=(u==null?void 0:u.name)||""}e(m)};return s.jsxs("div",{className:"w-full max-w-md",children:[s.jsx("h3",{className:"font-display text-xl text-matrix tracking-wider mb-6",children:n?n("features.addFeature"):"NEW FEATURE"}),s.jsxs("form",{onSubmit:b,className:"space-y-4",children:[s.jsxs("div",{children:[s.jsxs("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:["ID (",a==="es"?"opcional":"optional",")"]}),s.jsx("input",{type:"text",placeholder:"e.g. user-auth",value:x,onChange:w=>g(w.target.value),className:"theme-input w-full px-4 py-2.5 mt-2 text-sm"})]}),s.jsxs("div",{children:[s.jsxs("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:[n?n("settings.name").toUpperCase():"NAME"," *"]}),s.jsx("input",{type:"text",placeholder:n?n("features.featureName"):"Feature name",value:l,onChange:w=>i(w.target.value),className:"theme-input w-full px-4 py-2.5 mt-2 text-sm",autoFocus:!0})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:a==="es"?"DESCRIPCIÓN":"DESCRIPTION"}),s.jsx("textarea",{placeholder:n?n("features.featureDescription"):"Feature description",value:o,onChange:w=>c(w.target.value),rows:3,className:"theme-input w-full px-4 py-2.5 mt-2 text-sm resize-none"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:n?n("features.priority").toUpperCase():"PRIORITY"}),s.jsxs("select",{value:d,onChange:w=>p(w.target.value),className:"theme-input w-full px-4 py-2.5 mt-2 text-sm",children:[s.jsx("option",{value:"high",children:n?n("common.high").toUpperCase():"HIGH"}),s.jsx("option",{value:"medium",children:n?n("common.medium").toUpperCase():"MEDIUM"}),s.jsx("option",{value:"low",children:n?n("common.low").toUpperCase():"LOW"})]})]}),r.length>0&&s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:n?n("features.assignTo").toUpperCase():"ASSIGN TO"}),s.jsxs("select",{value:h,onChange:w=>j(w.target.value),className:"theme-input w-full px-4 py-2.5 mt-2 text-sm",children:[s.jsx("option",{value:"",children:n?n("features.unassigned"):"Unassigned"}),r.map(w=>s.jsx("option",{value:w.id,children:w.name},w.id))]})]}),s.jsxs("div",{className:"flex gap-3 pt-2",children:[s.jsx("button",{type:"button",onClick:t,className:"flex-1 py-2.5 border border-white/20 text-gray-500 font-mono text-xs hover:bg-white/5 transition-all",children:n?n("common.cancel").toUpperCase():"CANCEL"}),s.jsx("button",{type:"submit",disabled:!l.trim(),className:"theme-btn-primary flex-1 py-2.5 disabled:opacity-50",children:a==="es"?"CREAR":"CREATE"})]})]})]})}function yc({children:e,onClose:t}){return s.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 modal-overlay animate-fade-in",onClick:t,children:s.jsx("div",{className:"theme-card p-6 max-w-md w-full",onClick:r=>r.stopPropagation(),children:e})})}function ch({roadmap:e,setRoadmap:t,setHasChanges:r,onClose:n}){var o,c,d;const a=[{name:"Matrix Green",color:"#00ff88"},{name:"Cyber Blue",color:"#00d4ff"},{name:"Signal Orange",color:"#ff9500"},{name:"Alert Red",color:"#ff3366"},{name:"Purple Haze",color:"#a855f7"},{name:"Gold",color:"#fbbf24"},{name:"Teal",color:"#14b8a6"},{name:"Pink",color:"#ec4899"},{name:"Lime",color:"#84cc16"},{name:"Sky",color:"#0ea5e9"},{name:"Indigo",color:"#6366f1"},{name:"Rose",color:"#f43f5e"}],l=((o=e==null?void 0:e.project_info)==null?void 0:o.theme)||{name:"Matrix Green",color:"#00ff88"},i=p=>{t(x=>{const g=JSON.parse(JSON.stringify(x));return g.project_info.theme=p,g}),r(!0)};return s.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 modal-overlay animate-fade-in",onClick:n,children:s.jsxs("div",{className:"theme-card p-6 max-w-lg w-full",onClick:p=>p.stopPropagation(),children:[s.jsxs("div",{className:"flex items-center justify-between mb-6",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"w-8 h-8 rounded-lg",style:{backgroundColor:l.color,boxShadow:`0 0 20px ${l.color}50`}}),s.jsxs("div",{children:[s.jsx("h3",{className:"font-mono text-sm text-white tracking-wider",children:"PROJECT THEME"}),s.jsx("p",{className:"font-mono text-[10px] text-gray-600",children:l.name})]})]}),s.jsx("button",{onClick:n,className:"p-2 text-gray-600 hover:text-white transition-colors",children:s.jsx(pt,{className:"w-5 h-5"})})]}),s.jsxs("div",{className:"mb-6",children:[s.jsx("h4",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-3",children:"PRESETS"}),s.jsx("div",{className:"grid grid-cols-6 gap-3",children:a.map(p=>s.jsx("button",{onClick:()=>i(p),className:`w-full aspect-square rounded-lg transition-all hover:scale-110 relative group ${l.color===p.color?"ring-2 ring-white ring-offset-2 ring-offset-black scale-110":""}`,style:{backgroundColor:p.color,boxShadow:l.color===p.color?`0 0 20px ${p.color}`:"none"},title:p.name,children:l.color===p.color&&s.jsx(zt,{className:"w-4 h-4 text-black absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"})},p.name))})]}),s.jsxs("div",{className:"border-t border-white/10 pt-4",children:[s.jsx("h4",{className:"font-mono text-[10px] text-gray-500 tracking-wider mb-3",children:"CUSTOM"}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("input",{type:"color",value:l.color,onChange:p=>i({name:"Custom",color:p.target.value}),className:"w-12 h-12 cursor-pointer bg-transparent border border-white/20 rounded"}),s.jsx("input",{type:"text",value:l.color,onChange:p=>{/^#[0-9A-Fa-f]{6}$/.test(p.target.value)&&i({name:"Custom",color:p.target.value})},placeholder:"#00ff88",className:"theme-input px-3 py-2 text-sm w-32 font-mono"}),s.jsx("input",{type:"text",value:l.name,onChange:p=>i({...l,name:p.target.value}),placeholder:"Theme name",className:"theme-input px-3 py-2 text-sm flex-1 font-mono"})]})]}),s.jsx("div",{className:"mt-6 p-4 border border-white/10 bg-black/50 rounded",children:s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"font-mono text-[10px] text-gray-600",children:"FAVICON:"}),s.jsx("div",{className:"w-8 h-8 rounded",style:{backgroundColor:l.color}})]}),s.jsxs("div",{className:"flex-1",children:[s.jsx("div",{className:"font-mono text-xs text-white",children:((c=e==null?void 0:e.project_info)==null?void 0:c.name)||"Project"}),s.jsx("div",{className:"theme-progress mt-2 h-2",children:s.jsx("div",{className:"h-full transition-all",style:{width:`${((d=e==null?void 0:e.project_info)==null?void 0:d.total_progress)||0}%`,backgroundColor:l.color}})})]})]})}),s.jsx("p",{className:"font-mono text-[10px] text-gray-600 mt-4 text-center",children:"Theme color appears in browser tab favicon and UI accents"})]})})}function dh({onLogin:e,error:t}){const[r,n]=v.useState(""),[a,l]=v.useState(""),[i,o]=v.useState(!1),c=async d=>{d.preventDefault(),!(!r.trim()||!a.trim())&&(o(!0),await e(r,a),o(!1))};return s.jsx("div",{className:"min-h-screen flex items-center justify-center bg-black p-4",children:s.jsxs("div",{className:"w-full max-w-sm",children:[s.jsxs("div",{className:"text-center mb-10",children:[s.jsxs("div",{className:"relative inline-block",children:[s.jsx("div",{className:"w-24 h-24 border-2 border-matrix/50 flex items-center justify-center glow-matrix",children:s.jsx(ri,{className:"w-10 h-10 text-matrix"})}),s.jsx("div",{className:"absolute -top-1 -left-1 w-4 h-4 border-l-2 border-t-2 border-matrix"}),s.jsx("div",{className:"absolute -top-1 -right-1 w-4 h-4 border-r-2 border-t-2 border-matrix"}),s.jsx("div",{className:"absolute -bottom-1 -left-1 w-4 h-4 border-l-2 border-b-2 border-matrix"}),s.jsx("div",{className:"absolute -bottom-1 -right-1 w-4 h-4 border-r-2 border-b-2 border-matrix"})]}),s.jsx("h1",{className:"font-display text-3xl text-matrix tracking-wider mt-6 crt-glow",children:"ROADMAP"}),s.jsx("p",{className:"font-mono text-xs text-gray-600 tracking-widest mt-2",children:"TERMINAL ACCESS"})]}),s.jsxs("div",{className:"theme-card p-6",children:[s.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[s.jsx("div",{className:"led theme-led theme-led-warning"}),s.jsx("span",{className:"font-mono text-xs text-signal tracking-wider",children:"AUTHENTICATION REQUIRED"})]}),s.jsxs("form",{onSubmit:c,className:"space-y-4",children:[s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:"EMAIL"}),s.jsxs("div",{className:"relative mt-2",children:[s.jsx(si,{className:"w-4 h-4 text-gray-600 absolute left-3 top-1/2 -translate-y-1/2"}),s.jsx("input",{type:"email",value:r,onChange:d=>n(d.target.value),placeholder:"admin@localhost",className:"theme-input w-full pl-10 pr-4 py-3 text-sm",autoComplete:"email",autoFocus:!0})]})]}),s.jsxs("div",{children:[s.jsx("label",{className:"font-mono text-[10px] text-gray-500 tracking-wider",children:"PASSWORD"}),s.jsxs("div",{className:"relative mt-2",children:[s.jsx(_u,{className:"w-4 h-4 text-gray-600 absolute left-3 top-1/2 -translate-y-1/2"}),s.jsx("input",{type:"password",value:a,onChange:d=>l(d.target.value),placeholder:"••••••••",className:"theme-input w-full pl-10 pr-4 py-3 text-sm",autoComplete:"current-password"})]})]}),t&&s.jsxs("div",{className:"p-3 border border-alert/30 bg-alert/5 text-alert font-mono text-xs flex items-center gap-2",children:[s.jsx(Ie,{className:"w-4 h-4"}),t]}),s.jsx("button",{type:"submit",disabled:i||!r.trim()||!a.trim(),className:"theme-btn-primary w-full py-3 flex items-center justify-center gap-2 disabled:opacity-50",children:i?s.jsxs(s.Fragment,{children:[s.jsx(Ke,{className:"w-4 h-4 animate-spin"}),"VERIFYING..."]}):s.jsxs(s.Fragment,{children:[s.jsx(Lf,{className:"w-4 h-4"}),"ACCESS"]})})]}),s.jsx("p",{className:"font-mono text-[10px] text-gray-700 text-center mt-6",children:"Credentials configured in .env file"})]})]})})}function uh(){return`# AI Development Rules
392
+
393
+ ## 📖 FIRST STEP - READ THE ROADMAP
394
+
395
+ **BEFORE writing any code, you MUST read:**
396
+ \`\`\`
397
+ roadmap-kit/roadmap.json
398
+ \`\`\`
399
+
400
+ This file contains:
401
+ - Project context, stack, and architecture
402
+ - Shared resources (components, utilities, DB tables) - **DO NOT DUPLICATE**
403
+ - Coding conventions specific to this project
404
+ - Current features and tasks with detailed descriptions
405
+
406
+ ---
407
+
408
+ ## 📝 Code Conventions
409
+
410
+ ### Naming
411
+ - **Variables & Functions**: \`camelCase\`
412
+ - **Components/Classes**: \`PascalCase\`
413
+ - **Constants**: \`UPPER_SNAKE_CASE\`
414
+ - **Files**: \`kebab-case\` for utils, \`PascalCase\` for components
415
+ - **CSS/Tailwind classes**: \`kebab-case\`
416
+
417
+ ### Best Practices
418
+ - Keep functions small and focused (single responsibility)
419
+ - Use descriptive names over comments
420
+ - DRY - Don't Repeat Yourself (check shared_resources first)
421
+ - Prefer composition over inheritance
422
+ - Handle errors explicitly, never swallow them
423
+ - Validate inputs at system boundaries
424
+
425
+ ### Code Quality
426
+ - No magic numbers - use named constants
427
+ - Avoid deep nesting (max 3 levels)
428
+ - Early returns over nested conditionals
429
+ - Explicit is better than implicit
430
+
431
+ ---
432
+
433
+ ## ♻️ SHARED RESOURCES - MANDATORY
434
+
435
+ **Check \`roadmap.json > project_info > shared_resources\` BEFORE creating:**
436
+
437
+ 1. **UI Components** - Reuse existing buttons, inputs, modals, etc.
438
+ 2. **Utilities** - Use existing helpers, formatters, validators
439
+ 3. **Database Tables** - Don't create duplicate tables
440
+
441
+ **RULE:** If it exists in shared_resources, you MUST use it.
442
+
443
+ ---
444
+
445
+ ## 🔖 Commit Format
446
+
447
+ Use this format for automatic roadmap updates:
448
+
449
+ \`\`\`
450
+ [task:TASK-ID] [status:STATUS] Description
451
+ \`\`\`
452
+
453
+ **Examples:**
454
+ \`\`\`bash
455
+ git commit -m "[task:auth-login] [status:completed] Implement JWT authentication"
456
+ git commit -m "[task:user-api] [status:in_progress] Add user CRUD endpoints"
457
+ git commit -m "[task:payment] [status:completed] [debt:Missing validation|high] Add payment processing"
458
+ \`\`\`
459
+
460
+ **Available tags:**
461
+ - \`[task:id]\` - Task ID from roadmap.json
462
+ - \`[status:pending|in_progress|completed]\` - Task status
463
+ - \`[debt:description|severity|effort]\` - Technical debt (severity: low/medium/high)
464
+
465
+ ---
466
+
467
+ ## ⚠️ Technical Debt Capture
468
+
469
+ **You MUST register technical debt when:**
470
+ - Skipping validation or error handling
471
+ - Using workarounds or hacks
472
+ - Leaving TODO comments
473
+ - Not writing tests
474
+ - Hardcoding values
475
+ - Any "temporary" solutions
476
+
477
+ **Severity Guide:**
478
+ | Severity | When | Action Required |
479
+ |----------|------|-----------------|
480
+ | high | Security, data integrity | Fix ASAP |
481
+ | medium | Functionality degraded | Fix soon |
482
+ | low | Improvements, optimizations | When time allows |
483
+
484
+ ---
485
+
486
+ ## 📋 After Completing a Task
487
+
488
+ Update \`roadmap.json\` with:
489
+
490
+ 1. **status**: "completed" or "in_progress"
491
+ 2. **ai_notes**: Your implementation decisions and reasoning
492
+ 3. **affected_files**: All files created or modified
493
+ 4. **reused_resources**: Components/utilities you reused
494
+ 5. **technical_debt**: Any debt you introduced
495
+
496
+ ---
497
+
498
+ ## ✅ Pre-Commit Checklist
499
+
500
+ - [ ] Read the task description from roadmap.json?
501
+ - [ ] Checked shared_resources for existing code?
502
+ - [ ] Followed project conventions?
503
+ - [ ] Updated roadmap.json with results?
504
+ - [ ] Registered technical debt if any?
505
+ - [ ] Used correct commit format?
506
+
507
+ ---
508
+
509
+ ## 🚫 DO NOT
510
+
511
+ - Create duplicate components/utilities
512
+ - Ignore project conventions
513
+ - Commit without task tags
514
+ - Leave undocumented technical debt
515
+ - Refactor unrelated code
516
+ - Skip reading the roadmap
517
+
518
+ ---
519
+
520
+ **🗺️ ROADMAP-KIT** - AI needs context too.
521
+ `}function mh(){return s.jsx($f,{children:s.jsx(Ff,{children:s.jsx(Bf,{children:s.jsx(Kf,{})})})})}Iu(document.getElementById("root")).render(s.jsx(oi.StrictMode,{children:s.jsx(mh,{})}));