diff --git a/dist/assets/index-CnXPZvfE.js b/dist/assets/index-DjmSkKIY.js similarity index 78% rename from dist/assets/index-CnXPZvfE.js rename to dist/assets/index-DjmSkKIY.js index 7f9fc5b..016c9a7 100644 --- a/dist/assets/index-CnXPZvfE.js +++ b/dist/assets/index-DjmSkKIY.js @@ -1,4 +1,4 @@ -(function(){const d=document.createElement("link").relList;if(d&&d.supports&&d.supports("modulepreload"))return;for(const O of document.querySelectorAll('link[rel="modulepreload"]'))o(O);new MutationObserver(O=>{for(const A of O)if(A.type==="childList")for(const C of A.addedNodes)C.tagName==="LINK"&&C.rel==="modulepreload"&&o(C)}).observe(document,{childList:!0,subtree:!0});function g(O){const A={};return O.integrity&&(A.integrity=O.integrity),O.referrerPolicy&&(A.referrerPolicy=O.referrerPolicy),O.crossOrigin==="use-credentials"?A.credentials="include":O.crossOrigin==="anonymous"?A.credentials="omit":A.credentials="same-origin",A}function o(O){if(O.ep)return;O.ep=!0;const A=g(O);fetch(O.href,A)}})();var Ss={exports:{}},Tn={};/** +(function(){const d=document.createElement("link").relList;if(d&&d.supports&&d.supports("modulepreload"))return;for(const O of document.querySelectorAll('link[rel="modulepreload"]'))o(O);new MutationObserver(O=>{for(const A of O)if(A.type==="childList")for(const C of A.addedNodes)C.tagName==="LINK"&&C.rel==="modulepreload"&&o(C)}).observe(document,{childList:!0,subtree:!0});function g(O){const A={};return O.integrity&&(A.integrity=O.integrity),O.referrerPolicy&&(A.referrerPolicy=O.referrerPolicy),O.crossOrigin==="use-credentials"?A.credentials="include":O.crossOrigin==="anonymous"?A.credentials="omit":A.credentials="same-origin",A}function o(O){if(O.ep)return;O.ep=!0;const A=g(O);fetch(O.href,A)}})();var Ss={exports:{}},xn={};/** * @license React * react-jsx-runtime.production.js * @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Qd;function Jy(){if(Qd)return Tn;Qd=1;var f=Symbol.for("react.transitional.element"),d=Symbol.for("react.fragment");function g(o,O,A){var C=null;if(A!==void 0&&(C=""+A),O.key!==void 0&&(C=""+O.key),"key"in O){A={};for(var Z in O)Z!=="key"&&(A[Z]=O[Z])}else A=O;return O=A.ref,{$$typeof:f,type:o,key:C,ref:O!==void 0?O:null,props:A}}return Tn.Fragment=d,Tn.jsx=g,Tn.jsxs=g,Tn}var wd;function ky(){return wd||(wd=1,Ss.exports=Jy()),Ss.exports}var c=ky(),_s={exports:{}},I={};/** + */var Qd;function Jy(){if(Qd)return xn;Qd=1;var f=Symbol.for("react.transitional.element"),d=Symbol.for("react.fragment");function g(o,O,A){var C=null;if(A!==void 0&&(C=""+A),O.key!==void 0&&(C=""+O.key),"key"in O){A={};for(var Z in O)Z!=="key"&&(A[Z]=O[Z])}else A=O;return O=A.ref,{$$typeof:f,type:o,key:C,ref:O!==void 0?O:null,props:A}}return xn.Fragment=d,xn.jsx=g,xn.jsxs=g,xn}var wd;function ky(){return wd||(wd=1,Ss.exports=Jy()),Ss.exports}var c=ky(),_s={exports:{}},I={};/** * @license React * react.production.js * @@ -14,7 +14,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Xd;function $y(){if(Xd)return I;Xd=1;var f=Symbol.for("react.transitional.element"),d=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),O=Symbol.for("react.profiler"),A=Symbol.for("react.consumer"),C=Symbol.for("react.context"),Z=Symbol.for("react.forward_ref"),q=Symbol.for("react.suspense"),E=Symbol.for("react.memo"),Y=Symbol.for("react.lazy"),B=Symbol.for("react.activity"),$=Symbol.iterator;function de(r){return r===null||typeof r!="object"?null:(r=$&&r[$]||r["@@iterator"],typeof r=="function"?r:null)}var V={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},P=Object.assign,K={};function le(r,y,j){this.props=r,this.context=y,this.refs=K,this.updater=j||V}le.prototype.isReactComponent={},le.prototype.setState=function(r,y){if(typeof r!="object"&&typeof r!="function"&&r!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,r,y,"setState")},le.prototype.forceUpdate=function(r){this.updater.enqueueForceUpdate(this,r,"forceUpdate")};function Me(){}Me.prototype=le.prototype;function ge(r,y,j){this.props=r,this.context=y,this.refs=K,this.updater=j||V}var Ae=ge.prototype=new Me;Ae.constructor=ge,P(Ae,le.prototype),Ae.isPureReactComponent=!0;var Oe=Array.isArray;function ze(){}var F={H:null,A:null,T:null,S:null},k=Object.prototype.hasOwnProperty;function me(r,y,j){var M=j.ref;return{$$typeof:f,type:r,key:y,ref:M!==void 0?M:null,props:j}}function Ne(r,y){return me(r.type,y,r.props)}function he(r){return typeof r=="object"&&r!==null&&r.$$typeof===f}function je(r){var y={"=":"=0",":":"=2"};return"$"+r.replace(/[=:]/g,function(j){return y[j]})}var we=/\/+/g;function tt(r,y){return typeof r=="object"&&r!==null&&r.key!=null?je(""+r.key):y.toString(36)}function Ke(r){switch(r.status){case"fulfilled":return r.value;case"rejected":throw r.reason;default:switch(typeof r.status=="string"?r.then(ze,ze):(r.status="pending",r.then(function(y){r.status==="pending"&&(r.status="fulfilled",r.value=y)},function(y){r.status==="pending"&&(r.status="rejected",r.reason=y)})),r.status){case"fulfilled":return r.value;case"rejected":throw r.reason}}throw r}function z(r,y,j,M,G){var X=typeof r;(X==="undefined"||X==="boolean")&&(r=null);var ae=!1;if(r===null)ae=!0;else switch(X){case"bigint":case"string":case"number":ae=!0;break;case"object":switch(r.$$typeof){case f:case d:ae=!0;break;case Y:return ae=r._init,z(ae(r._payload),y,j,M,G)}}if(ae)return G=G(r),ae=M===""?"."+tt(r,0):M,Oe(G)?(j="",ae!=null&&(j=ae.replace(we,"$&/")+"/"),z(G,y,j,"",function(Pe){return Pe})):G!=null&&(he(G)&&(G=Ne(G,j+(G.key==null||r&&r.key===G.key?"":(""+G.key).replace(we,"$&/")+"/")+ae)),y.push(G)),1;ae=0;var Je=M===""?".":M+":";if(Oe(r))for(var _e=0;_eN||(e.current=L[N],L[N]=null,N--)}function j(e,t){N++,L[N]=e.current,e.current=t}var M=r(null),G=r(null),X=r(null),ae=r(null);function Je(e,t){switch(j(X,t),j(G,e),j(M,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?rd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=rd(t),e=od(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}y(M),j(M,e)}function _e(){y(M),y(G),y(X)}function Pe(e){e.memoizedState!==null&&j(ae,e);var t=M.current,l=od(t,e.type);t!==l&&(j(G,e),j(M,l))}function tl(e){G.current===e&&(y(M),y(G)),ae.current===e&&(y(ae),An._currentValue=U)}var li,Ls;function Tl(e){if(li===void 0)try{throw Error()}catch(l){var t=l.stack.trim().match(/\n( *(at )?)/);li=t&&t[1]||"",Ls=-1N||(e.current=L[N],L[N]=null,N--)}function j(e,t){N++,L[N]=e.current,e.current=t}var M=r(null),G=r(null),X=r(null),ae=r(null);function Je(e,t){switch(j(X,t),j(G,e),j(M,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?rd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=rd(t),e=od(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}y(M),j(M,e)}function _e(){y(M),y(G),y(X)}function Pe(e){e.memoizedState!==null&&j(ae,e);var t=M.current,l=od(t,e.type);t!==l&&(j(G,e),j(M,l))}function tl(e){G.current===e&&(y(M),y(G)),ae.current===e&&(y(ae),An._currentValue=U)}var li,Ls;function xl(e){if(li===void 0)try{throw Error()}catch(l){var t=l.stack.trim().match(/\n( *(at )?)/);li=t&&t[1]||"",Ls=-1)":-1n||m[a]!==b[n]){var T=` -`+m[a].replace(" at new "," at ");return e.displayName&&T.includes("")&&(T=T.replace("",e.displayName)),T}while(1<=a&&0<=n);break}}}finally{ai=!1,Error.prepareStackTrace=l}return(l=e?e.displayName||e.name:"")?Tl(l):""}function jm(e,t){switch(e.tag){case 26:case 27:case 5:return Tl(e.type);case 16:return Tl("Lazy");case 13:return e.child!==t&&t!==null?Tl("Suspense Fallback"):Tl("Suspense");case 19:return Tl("SuspenseList");case 0:case 15:return ni(e.type,!1);case 11:return ni(e.type.render,!1);case 1:return ni(e.type,!0);case 31:return Tl("Activity");default:return""}}function Gs(e){try{var t="",l=null;do t+=jm(e,l),l=e,e=e.return;while(e);return t}catch(a){return` +`);for(n=a=0;an||m[a]!==b[n]){var x=` +`+m[a].replace(" at new "," at ");return e.displayName&&x.includes("")&&(x=x.replace("",e.displayName)),x}while(1<=a&&0<=n);break}}}finally{ai=!1,Error.prepareStackTrace=l}return(l=e?e.displayName||e.name:"")?xl(l):""}function jm(e,t){switch(e.tag){case 26:case 27:case 5:return xl(e.type);case 16:return xl("Lazy");case 13:return e.child!==t&&t!==null?xl("Suspense Fallback"):xl("Suspense");case 19:return xl("SuspenseList");case 0:case 15:return ni(e.type,!1);case 11:return ni(e.type.render,!1);case 1:return ni(e.type,!0);case 31:return xl("Activity");default:return""}}function Gs(e){try{var t="",l=null;do t+=jm(e,l),l=e,e=e.return;while(e);return t}catch(a){return` Error generating stack: `+a.message+` -`+a.stack}}var ui=Object.prototype.hasOwnProperty,ii=f.unstable_scheduleCallback,ci=f.unstable_cancelCallback,zm=f.unstable_shouldYield,Nm=f.unstable_requestPaint,rt=f.unstable_now,Tm=f.unstable_getCurrentPriorityLevel,Ys=f.unstable_ImmediatePriority,Qs=f.unstable_UserBlockingPriority,Cn=f.unstable_NormalPriority,xm=f.unstable_LowPriority,ws=f.unstable_IdlePriority,Om=f.log,Dm=f.unstable_setDisableYieldValue,Ra=null,ot=null;function ll(e){if(typeof Om=="function"&&Dm(e),ot&&typeof ot.setStrictMode=="function")try{ot.setStrictMode(Ra,e)}catch{}}var dt=Math.clz32?Math.clz32:Cm,Mm=Math.log,Um=Math.LN2;function Cm(e){return e>>>=0,e===0?32:31-(Mm(e)/Um|0)|0}var Rn=256,qn=262144,Hn=4194304;function xl(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Bn(e,t,l){var a=e.pendingLanes;if(a===0)return 0;var n=0,u=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var s=a&134217727;return s!==0?(a=s&~u,a!==0?n=xl(a):(i&=s,i!==0?n=xl(i):l||(l=s&~e,l!==0&&(n=xl(l))))):(s=a&~u,s!==0?n=xl(s):i!==0?n=xl(i):l||(l=a&~e,l!==0&&(n=xl(l)))),n===0?0:t!==0&&t!==n&&(t&u)===0&&(u=n&-n,l=t&-t,u>=l||u===32&&(l&4194048)!==0)?t:n}function qa(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Rm(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Xs(){var e=Hn;return Hn<<=1,(Hn&62914560)===0&&(Hn=4194304),e}function si(e){for(var t=[],l=0;31>l;l++)t.push(e);return t}function Ha(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function qm(e,t,l,a,n,u){var i=e.pendingLanes;e.pendingLanes=l,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=l,e.entangledLanes&=l,e.errorRecoveryDisabledLanes&=l,e.shellSuspendCounter=0;var s=e.entanglements,m=e.expirationTimes,b=e.hiddenUpdates;for(l=i&~l;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Qm=/[\n"\\]/g;function _t(e){return e.replace(Qm,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function hi(e,t,l,a,n,u,i,s){e.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?e.type=i:e.removeAttribute("type"),t!=null?i==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+St(t)):e.value!==""+St(t)&&(e.value=""+St(t)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),t!=null?yi(e,i,St(t)):l!=null?yi(e,i,St(l)):a!=null&&e.removeAttribute("value"),n==null&&u!=null&&(e.defaultChecked=!!u),n!=null&&(e.checked=n&&typeof n!="function"&&typeof n!="symbol"),s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"?e.name=""+St(s):e.removeAttribute("name")}function lf(e,t,l,a,n,u,i,s){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(e.type=u),t!=null||l!=null){if(!(u!=="submit"&&u!=="reset"||t!=null)){mi(e);return}l=l!=null?""+St(l):"",t=t!=null?""+St(t):l,s||t===e.value||(e.value=t),e.defaultValue=t}a=a??n,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=s?e.checked:!!a,e.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.name=i),mi(e)}function yi(e,t,l){t==="number"&&Yn(e.ownerDocument)===e||e.defaultValue===""+l||(e.defaultValue=""+l)}function ea(e,t,l,a){if(e=e.options,t){t={};for(var n=0;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Si=!1;if(Gt)try{var Ya={};Object.defineProperty(Ya,"passive",{get:function(){Si=!0}}),window.addEventListener("test",Ya,Ya),window.removeEventListener("test",Ya,Ya)}catch{Si=!1}var nl=null,_i=null,wn=null;function rf(){if(wn)return wn;var e,t=_i,l=t.length,a,n="value"in nl?nl.value:nl.textContent,u=n.length;for(e=0;e=Xa),vf=" ",gf=!1;function pf(e,t){switch(e){case"keyup":return yh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function bf(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var na=!1;function gh(e,t){switch(e){case"compositionend":return bf(t);case"keypress":return t.which!==32?null:(gf=!0,vf);case"textInput":return e=t.data,e===vf&&gf?null:e;default:return null}}function ph(e,t){if(na)return e==="compositionend"||!Ni&&pf(e,t)?(e=rf(),wn=_i=nl=null,na=!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)return{node:l,offset:t-e};e=a}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=Tf(l)}}function Of(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Of(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Df(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Yn(e.document);t instanceof e.HTMLIFrameElement;){try{var l=typeof t.contentWindow.location.href=="string"}catch{l=!1}if(l)e=t.contentWindow;else break;t=Yn(e.document)}return t}function Oi(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var Nh=Gt&&"documentMode"in document&&11>=document.documentMode,ua=null,Di=null,Ja=null,Mi=!1;function Mf(e,t,l){var a=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;Mi||ua==null||ua!==Yn(a)||(a=ua,"selectionStart"in a&&Oi(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Ja&&Ka(Ja,a)||(Ja=a,a=qu(Di,"onSelect"),0>=i,n-=i,Ct=1<<32-dt(t)+n|l<te?(ce=w,w=null):ce=w.sibling;var re=S(v,w,p[te],x);if(re===null){w===null&&(w=ce);break}e&&w&&re.alternate===null&&t(v,w),h=u(re,h,te),fe===null?J=re:fe.sibling=re,fe=re,w=ce}if(te===p.length)return l(v,w),se&&Qt(v,te),J;if(w===null){for(;tete?(ce=w,w=null):ce=w.sibling;var Nl=S(v,w,re.value,x);if(Nl===null){w===null&&(w=ce);break}e&&w&&Nl.alternate===null&&t(v,w),h=u(Nl,h,te),fe===null?J=Nl:fe.sibling=Nl,fe=Nl,w=ce}if(re.done)return l(v,w),se&&Qt(v,te),J;if(w===null){for(;!re.done;te++,re=p.next())re=D(v,re.value,x),re!==null&&(h=u(re,h,te),fe===null?J=re:fe.sibling=re,fe=re);return se&&Qt(v,te),J}for(w=a(w);!re.done;te++,re=p.next())re=_(w,v,te,re.value,x),re!==null&&(e&&re.alternate!==null&&w.delete(re.key===null?te:re.key),h=u(re,h,te),fe===null?J=re:fe.sibling=re,fe=re);return e&&w.forEach(function(Ky){return t(v,Ky)}),se&&Qt(v,te),J}function Se(v,h,p,x){if(typeof p=="object"&&p!==null&&p.type===P&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case de:e:{for(var J=p.key;h!==null;){if(h.key===J){if(J=p.type,J===P){if(h.tag===7){l(v,h.sibling),x=n(h,p.props.children),x.return=v,v=x;break e}}else if(h.elementType===J||typeof J=="object"&&J!==null&&J.$$typeof===k&&Gl(J)===h.type){l(v,h.sibling),x=n(h,p.props),Pa(x,p),x.return=v,v=x;break e}l(v,h);break}else t(v,h);h=h.sibling}p.type===P?(x=Rl(p.props.children,v.mode,x,p.key),x.return=v,v=x):(x=In(p.type,p.key,p.props,null,v.mode,x),Pa(x,p),x.return=v,v=x)}return i(v);case V:e:{for(J=p.key;h!==null;){if(h.key===J)if(h.tag===4&&h.stateNode.containerInfo===p.containerInfo&&h.stateNode.implementation===p.implementation){l(v,h.sibling),x=n(h,p.children||[]),x.return=v,v=x;break e}else{l(v,h);break}else t(v,h);h=h.sibling}x=Li(p,v.mode,x),x.return=v,v=x}return i(v);case k:return p=Gl(p),Se(v,h,p,x)}if(Ke(p))return Q(v,h,p,x);if(je(p)){if(J=je(p),typeof J!="function")throw Error(o(150));return p=J.call(p),W(v,h,p,x)}if(typeof p.then=="function")return Se(v,h,uu(p),x);if(p.$$typeof===ge)return Se(v,h,tu(v,p),x);iu(v,p)}return typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint"?(p=""+p,h!==null&&h.tag===6?(l(v,h.sibling),x=n(h,p),x.return=v,v=x):(l(v,h),x=Bi(p,v.mode,x),x.return=v,v=x),i(v)):l(v,h)}return function(v,h,p,x){try{Ia=0;var J=Se(v,h,p,x);return va=null,J}catch(w){if(w===ya||w===au)throw w;var fe=ht(29,w,null,v.mode);return fe.lanes=x,fe.return=v,fe}finally{}}}var Ql=er(!0),tr=er(!1),fl=!1;function Wi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Fi(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function rl(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ol(e,t,l){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(oe&2)!==0){var n=a.pending;return n===null?t.next=t:(t.next=n.next,n.next=t),a.pending=t,t=Fn(e),Lf(e,null,l),t}return Wn(e,a,t,l),Fn(e)}function en(e,t,l){if(t=t.updateQueue,t!==null&&(t=t.shared,(l&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,l|=a,t.lanes=l,Vs(e,l)}}function Ii(e,t){var l=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,l===a)){var n=null,u=null;if(l=l.firstBaseUpdate,l!==null){do{var i={lane:l.lane,tag:l.tag,payload:l.payload,callback:null,next:null};u===null?n=u=i:u=u.next=i,l=l.next}while(l!==null);u===null?n=u=t:u=u.next=t}else n=u=t;l={baseState:a.baseState,firstBaseUpdate:n,lastBaseUpdate:u,shared:a.shared,callbacks:a.callbacks},e.updateQueue=l;return}e=l.lastBaseUpdate,e===null?l.firstBaseUpdate=t:e.next=t,l.lastBaseUpdate=t}var Pi=!1;function tn(){if(Pi){var e=ha;if(e!==null)throw e}}function ln(e,t,l,a){Pi=!1;var n=e.updateQueue;fl=!1;var u=n.firstBaseUpdate,i=n.lastBaseUpdate,s=n.shared.pending;if(s!==null){n.shared.pending=null;var m=s,b=m.next;m.next=null,i===null?u=b:i.next=b,i=m;var T=e.alternate;T!==null&&(T=T.updateQueue,s=T.lastBaseUpdate,s!==i&&(s===null?T.firstBaseUpdate=b:s.next=b,T.lastBaseUpdate=m))}if(u!==null){var D=n.baseState;i=0,T=b=m=null,s=u;do{var S=s.lane&-536870913,_=S!==s.lane;if(_?(ie&S)===S:(a&S)===S){S!==0&&S===ma&&(Pi=!0),T!==null&&(T=T.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});e:{var Q=e,W=s;S=t;var Se=l;switch(W.tag){case 1:if(Q=W.payload,typeof Q=="function"){D=Q.call(Se,D,S);break e}D=Q;break e;case 3:Q.flags=Q.flags&-65537|128;case 0:if(Q=W.payload,S=typeof Q=="function"?Q.call(Se,D,S):Q,S==null)break e;D=B({},D,S);break e;case 2:fl=!0}}S=s.callback,S!==null&&(e.flags|=64,_&&(e.flags|=8192),_=n.callbacks,_===null?n.callbacks=[S]:_.push(S))}else _={lane:S,tag:s.tag,payload:s.payload,callback:s.callback,next:null},T===null?(b=T=_,m=D):T=T.next=_,i|=S;if(s=s.next,s===null){if(s=n.shared.pending,s===null)break;_=s,s=_.next,_.next=null,n.lastBaseUpdate=_,n.shared.pending=null}}while(!0);T===null&&(m=D),n.baseState=m,n.firstBaseUpdate=b,n.lastBaseUpdate=T,u===null&&(n.shared.lanes=0),vl|=i,e.lanes=i,e.memoizedState=D}}function lr(e,t){if(typeof e!="function")throw Error(o(191,e));e.call(t)}function ar(e,t){var l=e.callbacks;if(l!==null)for(e.callbacks=null,e=0;eu?u:8;var i=z.T,s={};z.T=s,pc(e,!1,t,l);try{var m=n(),b=z.S;if(b!==null&&b(s,m),m!==null&&typeof m=="object"&&typeof m.then=="function"){var T=qh(m,a);un(e,t,T,bt(e))}else un(e,t,a,bt(e))}catch(D){un(e,t,{then:function(){},status:"rejected",reason:D},bt())}finally{R.p=u,i!==null&&s.types!==null&&(i.types=s.types),z.T=i}}function Qh(){}function vc(e,t,l,a){if(e.tag!==5)throw Error(o(476));var n=qr(e).queue;Rr(e,n,t,U,l===null?Qh:function(){return Hr(e),l(a)})}function qr(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:U,baseState:U,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vt,lastRenderedState:U},next:null};var l={};return t.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vt,lastRenderedState:l},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Hr(e){var t=qr(e);t.next===null&&(t=e.alternate.memoizedState),un(e,t.next.queue,{},bt())}function gc(){return We(An)}function Br(){return He().memoizedState}function Lr(){return He().memoizedState}function wh(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var l=bt();e=rl(l);var a=ol(t,e,l);a!==null&&(ft(a,t,l),en(a,t,l)),t={cache:Ki()},e.payload=t;return}t=t.return}}function Xh(e,t,l){var a=bt();l={lane:a,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},vu(e)?Yr(t,l):(l=qi(e,t,l,a),l!==null&&(ft(l,e,a),Qr(l,t,a)))}function Gr(e,t,l){var a=bt();un(e,t,l,a)}function un(e,t,l,a){var n={lane:a,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null};if(vu(e))Yr(t,n);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var i=t.lastRenderedState,s=u(i,l);if(n.hasEagerState=!0,n.eagerState=s,mt(s,i))return Wn(e,t,n,0),Ee===null&&$n(),!1}catch{}finally{}if(l=qi(e,t,n,a),l!==null)return ft(l,e,a),Qr(l,t,a),!0}return!1}function pc(e,t,l,a){if(a={lane:2,revertLane:Wc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},vu(e)){if(t)throw Error(o(479))}else t=qi(e,l,a,2),t!==null&&ft(t,e,2)}function vu(e){var t=e.alternate;return e===ee||t!==null&&t===ee}function Yr(e,t){pa=fu=!0;var l=e.pending;l===null?t.next=t:(t.next=l.next,l.next=t),e.pending=t}function Qr(e,t,l){if((l&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,l|=a,t.lanes=l,Vs(e,l)}}var cn={readContext:We,use:du,useCallback:Ce,useContext:Ce,useEffect:Ce,useImperativeHandle:Ce,useLayoutEffect:Ce,useInsertionEffect:Ce,useMemo:Ce,useReducer:Ce,useRef:Ce,useState:Ce,useDebugValue:Ce,useDeferredValue:Ce,useTransition:Ce,useSyncExternalStore:Ce,useId:Ce,useHostTransitionStatus:Ce,useFormState:Ce,useActionState:Ce,useOptimistic:Ce,useMemoCache:Ce,useCacheRefresh:Ce};cn.useEffectEvent=Ce;var wr={readContext:We,use:du,useCallback:function(e,t){return lt().memoizedState=[e,t===void 0?null:t],e},useContext:We,useEffect:zr,useImperativeHandle:function(e,t,l){l=l!=null?l.concat([e]):null,hu(4194308,4,Or.bind(null,t,e),l)},useLayoutEffect:function(e,t){return hu(4194308,4,e,t)},useInsertionEffect:function(e,t){hu(4,2,e,t)},useMemo:function(e,t){var l=lt();t=t===void 0?null:t;var a=e();if(wl){ll(!0);try{e()}finally{ll(!1)}}return l.memoizedState=[a,t],a},useReducer:function(e,t,l){var a=lt();if(l!==void 0){var n=l(t);if(wl){ll(!0);try{l(t)}finally{ll(!1)}}}else n=t;return a.memoizedState=a.baseState=n,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},a.queue=e,e=e.dispatch=Xh.bind(null,ee,e),[a.memoizedState,e]},useRef:function(e){var t=lt();return e={current:e},t.memoizedState=e},useState:function(e){e=oc(e);var t=e.queue,l=Gr.bind(null,ee,t);return t.dispatch=l,[e.memoizedState,l]},useDebugValue:hc,useDeferredValue:function(e,t){var l=lt();return yc(l,e,t)},useTransition:function(){var e=oc(!1);return e=Rr.bind(null,ee,e.queue,!0,!1),lt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,l){var a=ee,n=lt();if(se){if(l===void 0)throw Error(o(407));l=l()}else{if(l=t(),Ee===null)throw Error(o(349));(ie&127)!==0||fr(a,t,l)}n.memoizedState=l;var u={value:l,getSnapshot:t};return n.queue=u,zr(or.bind(null,a,u,e),[e]),a.flags|=2048,Sa(9,{destroy:void 0},rr.bind(null,a,u,l,t),null),l},useId:function(){var e=lt(),t=Ee.identifierPrefix;if(se){var l=Rt,a=Ct;l=(a&~(1<<32-dt(a)-1)).toString(32)+l,t="_"+t+"R_"+l,l=ru++,0<\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof a.is=="string"?i.createElement("select",{is:a.is}):i.createElement("select"),a.multiple?u.multiple=!0:a.size&&(u.size=a.size);break;default:u=typeof a.is=="string"?i.createElement(n,{is:a.is}):i.createElement(n)}}u[ke]=t,u[at]=a;e:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)u.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break e;for(;i.sibling===null;){if(i.return===null||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=u;e:switch(Ie(u,n,a),n){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&Jt(t)}}return xe(t),Uc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,l),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&Jt(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(o(166));if(e=X.current,oa(t)){if(e=t.stateNode,l=t.memoizedProps,a=null,n=$e,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}e[ke]=t,e=!!(e.nodeValue===l||a!==null&&a.suppressHydrationWarning===!0||sd(e.nodeValue,l)),e||cl(t,!0)}else e=Hu(e).createTextNode(a),e[ke]=t,t.stateNode=e}return xe(t),null;case 31:if(l=t.memoizedState,e===null||e.memoizedState!==null){if(a=oa(t),l!==null){if(e===null){if(!a)throw Error(o(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(557));e[ke]=t}else ql(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;xe(t),e=!1}else l=wi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),e=!0;if(!e)return t.flags&256?(vt(t),t):(vt(t),null);if((t.flags&128)!==0)throw Error(o(558))}return xe(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(n=oa(t),a!==null&&a.dehydrated!==null){if(e===null){if(!n)throw Error(o(318));if(n=t.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(o(317));n[ke]=t}else ql(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;xe(t),n=!1}else n=wi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),n=!0;if(!n)return t.flags&256?(vt(t),t):(vt(t),null)}return vt(t),(t.flags&128)!==0?(t.lanes=l,t):(l=a!==null,e=e!==null&&e.memoizedState!==null,l&&(a=t.child,n=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(n=a.alternate.memoizedState.cachePool.pool),u=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(u=a.memoizedState.cachePool.pool),u!==n&&(a.flags|=2048)),l!==e&&l&&(t.child.flags|=8192),_u(t,t.updateQueue),xe(t),null);case 4:return _e(),e===null&&es(t.stateNode.containerInfo),xe(t),null;case 10:return Xt(t.type),xe(t),null;case 19:if(y(qe),a=t.memoizedState,a===null)return xe(t),null;if(n=(t.flags&128)!==0,u=a.rendering,u===null)if(n)fn(a,!1);else{if(Re!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(u=su(e),u!==null){for(t.flags|=128,fn(a,!1),e=u.updateQueue,t.updateQueue=e,_u(t,e),t.subtreeFlags=0,e=l,l=t.child;l!==null;)Gf(l,e),l=l.sibling;return j(qe,qe.current&1|2),se&&Qt(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&rt()>Nu&&(t.flags|=128,n=!0,fn(a,!1),t.lanes=4194304)}else{if(!n)if(e=su(u),e!==null){if(t.flags|=128,n=!0,e=e.updateQueue,t.updateQueue=e,_u(t,e),fn(a,!0),a.tail===null&&a.tailMode==="hidden"&&!u.alternate&&!se)return xe(t),null}else 2*rt()-a.renderingStartTime>Nu&&l!==536870912&&(t.flags|=128,n=!0,fn(a,!1),t.lanes=4194304);a.isBackwards?(u.sibling=t.child,t.child=u):(e=a.last,e!==null?e.sibling=u:t.child=u,a.last=u)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=rt(),e.sibling=null,l=qe.current,j(qe,n?l&1|2:l&1),se&&Qt(t,a.treeForkCount),e):(xe(t),null);case 22:case 23:return vt(t),tc(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(l&536870912)!==0&&(t.flags&128)===0&&(xe(t),t.subtreeFlags&6&&(t.flags|=8192)):xe(t),l=t.updateQueue,l!==null&&_u(t,l.retryQueue),l=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==l&&(t.flags|=2048),e!==null&&y(Ll),null;case 24:return l=null,e!==null&&(l=e.memoizedState.cache),t.memoizedState.cache!==l&&(t.flags|=2048),Xt(Be),xe(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function kh(e,t){switch(Yi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Xt(Be),_e(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return tl(t),null;case 31:if(t.memoizedState!==null){if(vt(t),t.alternate===null)throw Error(o(340));ql()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(vt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));ql()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return y(qe),null;case 4:return _e(),null;case 10:return Xt(t.type),null;case 22:case 23:return vt(t),tc(),e!==null&&y(Ll),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Xt(Be),null;case 25:return null;default:return null}}function mo(e,t){switch(Yi(t),t.tag){case 3:Xt(Be),_e();break;case 26:case 27:case 5:tl(t);break;case 4:_e();break;case 31:t.memoizedState!==null&&vt(t);break;case 13:vt(t);break;case 19:y(qe);break;case 10:Xt(t.type);break;case 22:case 23:vt(t),tc(),e!==null&&y(Ll);break;case 24:Xt(Be)}}function rn(e,t){try{var l=t.updateQueue,a=l!==null?l.lastEffect:null;if(a!==null){var n=a.next;l=n;do{if((l.tag&e)===e){a=void 0;var u=l.create,i=l.inst;a=u(),i.destroy=a}l=l.next}while(l!==n)}}catch(s){ve(t,t.return,s)}}function hl(e,t,l){try{var a=t.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var u=n.next;a=u;do{if((a.tag&e)===e){var i=a.inst,s=i.destroy;if(s!==void 0){i.destroy=void 0,n=t;var m=l,b=s;try{b()}catch(T){ve(n,m,T)}}}a=a.next}while(a!==u)}}catch(T){ve(t,t.return,T)}}function ho(e){var t=e.updateQueue;if(t!==null){var l=e.stateNode;try{ar(t,l)}catch(a){ve(e,e.return,a)}}}function yo(e,t,l){l.props=Xl(e.type,e.memoizedProps),l.state=e.memoizedState;try{l.componentWillUnmount()}catch(a){ve(e,t,a)}}function on(e,t){try{var l=e.ref;if(l!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof l=="function"?e.refCleanup=l(a):l.current=a}}catch(n){ve(e,t,n)}}function qt(e,t){var l=e.ref,a=e.refCleanup;if(l!==null)if(typeof a=="function")try{a()}catch(n){ve(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof l=="function")try{l(null)}catch(n){ve(e,t,n)}else l.current=null}function vo(e){var t=e.type,l=e.memoizedProps,a=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":l.autoFocus&&a.focus();break e;case"img":l.src?a.src=l.src:l.srcSet&&(a.srcset=l.srcSet)}}catch(n){ve(e,e.return,n)}}function Cc(e,t,l){try{var a=e.stateNode;vy(a,e.type,l,t),a[at]=t}catch(n){ve(e,e.return,n)}}function go(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&_l(e.type)||e.tag===4}function Rc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||go(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&_l(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function qc(e,t,l){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l).insertBefore(e,t):(t=l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,t.appendChild(e),l=l._reactRootContainer,l!=null||t.onclick!==null||(t.onclick=Lt));else if(a!==4&&(a===27&&_l(e.type)&&(l=e.stateNode,t=null),e=e.child,e!==null))for(qc(e,t,l),e=e.sibling;e!==null;)qc(e,t,l),e=e.sibling}function Eu(e,t,l){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?l.insertBefore(e,t):l.appendChild(e);else if(a!==4&&(a===27&&_l(e.type)&&(l=e.stateNode),e=e.child,e!==null))for(Eu(e,t,l),e=e.sibling;e!==null;)Eu(e,t,l),e=e.sibling}function po(e){var t=e.stateNode,l=e.memoizedProps;try{for(var a=e.type,n=t.attributes;n.length;)t.removeAttributeNode(n[0]);Ie(t,a,l),t[ke]=e,t[at]=l}catch(u){ve(e,e.return,u)}}var kt=!1,Ye=!1,Hc=!1,bo=typeof WeakSet=="function"?WeakSet:Set,Ze=null;function $h(e,t){if(e=e.containerInfo,as=Xu,e=Df(e),Oi(e)){if("selectionStart"in e)var l={start:e.selectionStart,end:e.selectionEnd};else e:{l=(l=e.ownerDocument)&&l.defaultView||window;var a=l.getSelection&&l.getSelection();if(a&&a.rangeCount!==0){l=a.anchorNode;var n=a.anchorOffset,u=a.focusNode;a=a.focusOffset;try{l.nodeType,u.nodeType}catch{l=null;break e}var i=0,s=-1,m=-1,b=0,T=0,D=e,S=null;t:for(;;){for(var _;D!==l||n!==0&&D.nodeType!==3||(s=i+n),D!==u||a!==0&&D.nodeType!==3||(m=i+a),D.nodeType===3&&(i+=D.nodeValue.length),(_=D.firstChild)!==null;)S=D,D=_;for(;;){if(D===e)break t;if(S===l&&++b===n&&(s=i),S===u&&++T===a&&(m=i),(_=D.nextSibling)!==null)break;D=S,S=D.parentNode}D=_}l=s===-1||m===-1?null:{start:s,end:m}}else l=null}l=l||{start:0,end:0}}else l=null;for(ns={focusedElem:e,selectionRange:l},Xu=!1,Ze=t;Ze!==null;)if(t=Ze,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Ze=e;else for(;Ze!==null;){switch(t=Ze,u=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(l=0;l title"))),Ie(u,a,l),u[ke]=e,Xe(u),a=u;break e;case"link":var i=zd("link","href",n).get(a+(l.href||""));if(i){for(var s=0;sSe&&(i=Se,Se=W,W=i);var v=xf(s,W),h=xf(s,Se);if(v&&h&&(_.rangeCount!==1||_.anchorNode!==v.node||_.anchorOffset!==v.offset||_.focusNode!==h.node||_.focusOffset!==h.offset)){var p=D.createRange();p.setStart(v.node,v.offset),_.removeAllRanges(),W>Se?(_.addRange(p),_.extend(h.node,h.offset)):(p.setEnd(h.node,h.offset),_.addRange(p))}}}}for(D=[],_=s;_=_.parentNode;)_.nodeType===1&&D.push({element:_,left:_.scrollLeft,top:_.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;sl?32:l,z.T=null,l=Xc,Xc=null;var u=pl,i=Pt;if(Qe=0,za=pl=null,Pt=0,(oe&6)!==0)throw Error(o(331));var s=oe;if(oe|=4,Do(u.current),To(u,u.current,i,l),oe=s,gn(0,!1),ot&&typeof ot.onPostCommitFiberRoot=="function")try{ot.onPostCommitFiberRoot(Ra,u)}catch{}return!0}finally{R.p=n,z.T=a,ko(e,t)}}function Wo(e,t,l){t=At(l,t),t=Ec(e.stateNode,t,2),e=ol(e,t,2),e!==null&&(Ha(e,2),Ht(e))}function ve(e,t,l){if(e.tag===3)Wo(e,e,l);else for(;t!==null;){if(t.tag===3){Wo(t,e,l);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(gl===null||!gl.has(a))){e=At(l,e),l=Wr(2),a=ol(t,l,2),a!==null&&(Fr(l,a,t,e),Ha(a,2),Ht(a));break}}t=t.return}}function Jc(e,t,l){var a=e.pingCache;if(a===null){a=e.pingCache=new Ih;var n=new Set;a.set(t,n)}else n=a.get(t),n===void 0&&(n=new Set,a.set(t,n));n.has(l)||(Gc=!0,n.add(l),e=ay.bind(null,e,t,l),t.then(e,e))}function ay(e,t,l){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&l,e.warmLanes&=~l,Ee===e&&(ie&l)===l&&(Re===4||Re===3&&(ie&62914560)===ie&&300>rt()-zu?(oe&2)===0&&Na(e,0):Yc|=l,ja===ie&&(ja=0)),Ht(e)}function Fo(e,t){t===0&&(t=Xs()),e=Cl(e,t),e!==null&&(Ha(e,t),Ht(e))}function ny(e){var t=e.memoizedState,l=0;t!==null&&(l=t.retryLane),Fo(e,l)}function uy(e,t){var l=0;switch(e.tag){case 31:case 13:var a=e.stateNode,n=e.memoizedState;n!==null&&(l=n.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(o(314))}a!==null&&a.delete(t),Fo(e,l)}function iy(e,t){return ii(e,t)}var Uu=null,xa=null,kc=!1,Cu=!1,$c=!1,Sl=0;function Ht(e){e!==xa&&e.next===null&&(xa===null?Uu=xa=e:xa=xa.next=e),Cu=!0,kc||(kc=!0,sy())}function gn(e,t){if(!$c&&Cu){$c=!0;do for(var l=!1,a=Uu;a!==null;){if(e!==0){var n=a.pendingLanes;if(n===0)var u=0;else{var i=a.suspendedLanes,s=a.pingedLanes;u=(1<<31-dt(42|e)+1)-1,u&=n&~(i&~s),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(l=!0,td(a,u))}else u=ie,u=Bn(a,a===Ee?u:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(u&3)===0||qa(a,u)||(l=!0,td(a,u));a=a.next}while(l);$c=!1}}function cy(){Io()}function Io(){Cu=kc=!1;var e=0;Sl!==0&&py()&&(e=Sl);for(var t=rt(),l=null,a=Uu;a!==null;){var n=a.next,u=Po(a,t);u===0?(a.next=null,l===null?Uu=n:l.next=n,n===null&&(xa=l)):(l=a,(e!==0||(u&3)!==0)&&(Cu=!0)),a=n}Qe!==0&&Qe!==5||gn(e),Sl!==0&&(Sl=0)}function Po(e,t){for(var l=e.suspendedLanes,a=e.pingedLanes,n=e.expirationTimes,u=e.pendingLanes&-62914561;0s)break;var T=m.transferSize,D=m.initiatorType;T&&fd(D)&&(m=m.responseEnd,i+=T*(m"u"?null:document;function _d(e,t,l){var a=Oa;if(a&&typeof t=="string"&&t){var n=_t(t);n='link[rel="'+e+'"][href="'+n+'"]',typeof l=="string"&&(n+='[crossorigin="'+l+'"]'),Sd.has(n)||(Sd.add(n),e={rel:e,crossOrigin:l,href:t},a.querySelector(n)===null&&(t=a.createElement("link"),Ie(t,"link",e),Xe(t),a.head.appendChild(t)))}}function Ty(e){el.D(e),_d("dns-prefetch",e,null)}function xy(e,t){el.C(e,t),_d("preconnect",e,t)}function Oy(e,t,l){el.L(e,t,l);var a=Oa;if(a&&e&&t){var n='link[rel="preload"][as="'+_t(t)+'"]';t==="image"&&l&&l.imageSrcSet?(n+='[imagesrcset="'+_t(l.imageSrcSet)+'"]',typeof l.imageSizes=="string"&&(n+='[imagesizes="'+_t(l.imageSizes)+'"]')):n+='[href="'+_t(e)+'"]';var u=n;switch(t){case"style":u=Da(e);break;case"script":u=Ma(e)}Ot.has(u)||(e=B({rel:"preload",href:t==="image"&&l&&l.imageSrcSet?void 0:e,as:t},l),Ot.set(u,e),a.querySelector(n)!==null||t==="style"&&a.querySelector(_n(u))||t==="script"&&a.querySelector(En(u))||(t=a.createElement("link"),Ie(t,"link",e),Xe(t),a.head.appendChild(t)))}}function Dy(e,t){el.m(e,t);var l=Oa;if(l&&e){var a=t&&typeof t.as=="string"?t.as:"script",n='link[rel="modulepreload"][as="'+_t(a)+'"][href="'+_t(e)+'"]',u=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Ma(e)}if(!Ot.has(u)&&(e=B({rel:"modulepreload",href:e},t),Ot.set(u,e),l.querySelector(n)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(l.querySelector(En(u)))return}a=l.createElement("link"),Ie(a,"link",e),Xe(a),l.head.appendChild(a)}}}function My(e,t,l){el.S(e,t,l);var a=Oa;if(a&&e){var n=Il(a).hoistableStyles,u=Da(e);t=t||"default";var i=n.get(u);if(!i){var s={loading:0,preload:null};if(i=a.querySelector(_n(u)))s.loading=5;else{e=B({rel:"stylesheet",href:e,"data-precedence":t},l),(l=Ot.get(u))&&os(e,l);var m=i=a.createElement("link");Xe(m),Ie(m,"link",e),m._p=new Promise(function(b,T){m.onload=b,m.onerror=T}),m.addEventListener("load",function(){s.loading|=1}),m.addEventListener("error",function(){s.loading|=2}),s.loading|=4,Lu(i,t,a)}i={type:"stylesheet",instance:i,count:1,state:s},n.set(u,i)}}}function Uy(e,t){el.X(e,t);var l=Oa;if(l&&e){var a=Il(l).hoistableScripts,n=Ma(e),u=a.get(n);u||(u=l.querySelector(En(n)),u||(e=B({src:e,async:!0},t),(t=Ot.get(n))&&ds(e,t),u=l.createElement("script"),Xe(u),Ie(u,"link",e),l.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Cy(e,t){el.M(e,t);var l=Oa;if(l&&e){var a=Il(l).hoistableScripts,n=Ma(e),u=a.get(n);u||(u=l.querySelector(En(n)),u||(e=B({src:e,async:!0,type:"module"},t),(t=Ot.get(n))&&ds(e,t),u=l.createElement("script"),Xe(u),Ie(u,"link",e),l.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Ed(e,t,l,a){var n=(n=X.current)?Bu(n):null;if(!n)throw Error(o(446));switch(e){case"meta":case"title":return null;case"style":return typeof l.precedence=="string"&&typeof l.href=="string"?(t=Da(l.href),l=Il(n).hoistableStyles,a=l.get(t),a||(a={type:"style",instance:null,count:0,state:null},l.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(l.rel==="stylesheet"&&typeof l.href=="string"&&typeof l.precedence=="string"){e=Da(l.href);var u=Il(n).hoistableStyles,i=u.get(e);if(i||(n=n.ownerDocument||n,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,i),(u=n.querySelector(_n(e)))&&!u._p&&(i.instance=u,i.state.loading=5),Ot.has(e)||(l={rel:"preload",as:"style",href:l.href,crossOrigin:l.crossOrigin,integrity:l.integrity,media:l.media,hrefLang:l.hrefLang,referrerPolicy:l.referrerPolicy},Ot.set(e,l),u||Ry(n,e,l,i.state))),t&&a===null)throw Error(o(528,""));return i}if(t&&a!==null)throw Error(o(529,""));return null;case"script":return t=l.async,l=l.src,typeof l=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ma(l),l=Il(n).hoistableScripts,a=l.get(t),a||(a={type:"script",instance:null,count:0,state:null},l.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,e))}}function Da(e){return'href="'+_t(e)+'"'}function _n(e){return'link[rel="stylesheet"]['+e+"]"}function Ad(e){return B({},e,{"data-precedence":e.precedence,precedence:null})}function Ry(e,t,l,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Ie(t,"link",l),Xe(t),e.head.appendChild(t))}function Ma(e){return'[src="'+_t(e)+'"]'}function En(e){return"script[async]"+e}function jd(e,t,l){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+_t(l.href)+'"]');if(a)return t.instance=a,Xe(a),a;var n=B({},l,{"data-href":l.href,"data-precedence":l.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),Xe(a),Ie(a,"style",n),Lu(a,l.precedence,e),t.instance=a;case"stylesheet":n=Da(l.href);var u=e.querySelector(_n(n));if(u)return t.state.loading|=4,t.instance=u,Xe(u),u;a=Ad(l),(n=Ot.get(n))&&os(a,n),u=(e.ownerDocument||e).createElement("link"),Xe(u);var i=u;return i._p=new Promise(function(s,m){i.onload=s,i.onerror=m}),Ie(u,"link",a),t.state.loading|=4,Lu(u,l.precedence,e),t.instance=u;case"script":return u=Ma(l.src),(n=e.querySelector(En(u)))?(t.instance=n,Xe(n),n):(a=l,(n=Ot.get(u))&&(a=B({},l),ds(a,n)),e=e.ownerDocument||e,n=e.createElement("script"),Xe(n),Ie(n,"link",a),e.head.appendChild(n),t.instance=n);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,Lu(a,l.precedence,e));return t.instance}function Lu(e,t,l){for(var a=l.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),n=a.length?a[a.length-1]:null,u=n,i=0;i title"):null)}function qy(e,t,l){if(l===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Td(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Hy(e,t,l,a){if(l.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(l.state.loading&4)===0){if(l.instance===null){var n=Da(a.href),u=t.querySelector(_n(n));if(u){t=u._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Yu.bind(e),t.then(e,e)),l.state.loading|=4,l.instance=u,Xe(u);return}u=t.ownerDocument||t,a=Ad(a),(n=Ot.get(n))&&os(a,n),u=u.createElement("link"),Xe(u);var i=u;i._p=new Promise(function(s,m){i.onload=s,i.onerror=m}),Ie(u,"link",a),l.instance=u}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(l,t),(t=l.state.preload)&&(l.state.loading&3)===0&&(e.count++,l=Yu.bind(e),t.addEventListener("load",l),t.addEventListener("error",l))}}var ms=0;function By(e,t){return e.stylesheets&&e.count===0&&wu(e,e.stylesheets),0ms?50:800)+t);return e.unsuspend=l,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(n)}}:null}function Yu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)wu(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Qu=null;function wu(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Qu=new Map,t.forEach(Ly,e),Qu=null,Yu.call(e))}function Ly(e,t){if(!(t.state.loading&4)){var l=Qu.get(e);if(l)var a=l.get(null);else{l=new Map,Qu.set(e,l);for(var n=e.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(f)}catch(d){console.error(d)}}return f(),Es.exports=ev(),Es.exports}var lv=tv();/** +`+a.stack}}var ui=Object.prototype.hasOwnProperty,ii=f.unstable_scheduleCallback,ci=f.unstable_cancelCallback,zm=f.unstable_shouldYield,Nm=f.unstable_requestPaint,rt=f.unstable_now,xm=f.unstable_getCurrentPriorityLevel,Ys=f.unstable_ImmediatePriority,Qs=f.unstable_UserBlockingPriority,Cn=f.unstable_NormalPriority,Tm=f.unstable_LowPriority,ws=f.unstable_IdlePriority,Om=f.log,Dm=f.unstable_setDisableYieldValue,Ra=null,ot=null;function ll(e){if(typeof Om=="function"&&Dm(e),ot&&typeof ot.setStrictMode=="function")try{ot.setStrictMode(Ra,e)}catch{}}var dt=Math.clz32?Math.clz32:Cm,Mm=Math.log,Um=Math.LN2;function Cm(e){return e>>>=0,e===0?32:31-(Mm(e)/Um|0)|0}var Rn=256,qn=262144,Hn=4194304;function Tl(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Bn(e,t,l){var a=e.pendingLanes;if(a===0)return 0;var n=0,u=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var s=a&134217727;return s!==0?(a=s&~u,a!==0?n=Tl(a):(i&=s,i!==0?n=Tl(i):l||(l=s&~e,l!==0&&(n=Tl(l))))):(s=a&~u,s!==0?n=Tl(s):i!==0?n=Tl(i):l||(l=a&~e,l!==0&&(n=Tl(l)))),n===0?0:t!==0&&t!==n&&(t&u)===0&&(u=n&-n,l=t&-t,u>=l||u===32&&(l&4194048)!==0)?t:n}function qa(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Rm(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Xs(){var e=Hn;return Hn<<=1,(Hn&62914560)===0&&(Hn=4194304),e}function si(e){for(var t=[],l=0;31>l;l++)t.push(e);return t}function Ha(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function qm(e,t,l,a,n,u){var i=e.pendingLanes;e.pendingLanes=l,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=l,e.entangledLanes&=l,e.errorRecoveryDisabledLanes&=l,e.shellSuspendCounter=0;var s=e.entanglements,m=e.expirationTimes,b=e.hiddenUpdates;for(l=i&~l;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Qm=/[\n"\\]/g;function _t(e){return e.replace(Qm,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function hi(e,t,l,a,n,u,i,s){e.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?e.type=i:e.removeAttribute("type"),t!=null?i==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+St(t)):e.value!==""+St(t)&&(e.value=""+St(t)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),t!=null?yi(e,i,St(t)):l!=null?yi(e,i,St(l)):a!=null&&e.removeAttribute("value"),n==null&&u!=null&&(e.defaultChecked=!!u),n!=null&&(e.checked=n&&typeof n!="function"&&typeof n!="symbol"),s!=null&&typeof s!="function"&&typeof s!="symbol"&&typeof s!="boolean"?e.name=""+St(s):e.removeAttribute("name")}function lf(e,t,l,a,n,u,i,s){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(e.type=u),t!=null||l!=null){if(!(u!=="submit"&&u!=="reset"||t!=null)){mi(e);return}l=l!=null?""+St(l):"",t=t!=null?""+St(t):l,s||t===e.value||(e.value=t),e.defaultValue=t}a=a??n,a=typeof a!="function"&&typeof a!="symbol"&&!!a,e.checked=s?e.checked:!!a,e.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(e.name=i),mi(e)}function yi(e,t,l){t==="number"&&Yn(e.ownerDocument)===e||e.defaultValue===""+l||(e.defaultValue=""+l)}function ea(e,t,l,a){if(e=e.options,t){t={};for(var n=0;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Si=!1;if(Gt)try{var Ya={};Object.defineProperty(Ya,"passive",{get:function(){Si=!0}}),window.addEventListener("test",Ya,Ya),window.removeEventListener("test",Ya,Ya)}catch{Si=!1}var nl=null,_i=null,wn=null;function rf(){if(wn)return wn;var e,t=_i,l=t.length,a,n="value"in nl?nl.value:nl.textContent,u=n.length;for(e=0;e=Xa),vf=" ",gf=!1;function pf(e,t){switch(e){case"keyup":return yh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function bf(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var na=!1;function gh(e,t){switch(e){case"compositionend":return bf(t);case"keypress":return t.which!==32?null:(gf=!0,vf);case"textInput":return e=t.data,e===vf&&gf?null:e;default:return null}}function ph(e,t){if(na)return e==="compositionend"||!Ni&&pf(e,t)?(e=rf(),wn=_i=nl=null,na=!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)return{node:l,offset:t-e};e=a}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=xf(l)}}function Of(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Of(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Df(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Yn(e.document);t instanceof e.HTMLIFrameElement;){try{var l=typeof t.contentWindow.location.href=="string"}catch{l=!1}if(l)e=t.contentWindow;else break;t=Yn(e.document)}return t}function Oi(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var Nh=Gt&&"documentMode"in document&&11>=document.documentMode,ua=null,Di=null,Ja=null,Mi=!1;function Mf(e,t,l){var a=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;Mi||ua==null||ua!==Yn(a)||(a=ua,"selectionStart"in a&&Oi(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Ja&&Ka(Ja,a)||(Ja=a,a=qu(Di,"onSelect"),0>=i,n-=i,Ct=1<<32-dt(t)+n|l<te?(ce=w,w=null):ce=w.sibling;var re=S(v,w,p[te],T);if(re===null){w===null&&(w=ce);break}e&&w&&re.alternate===null&&t(v,w),h=u(re,h,te),fe===null?J=re:fe.sibling=re,fe=re,w=ce}if(te===p.length)return l(v,w),se&&Qt(v,te),J;if(w===null){for(;tete?(ce=w,w=null):ce=w.sibling;var Nl=S(v,w,re.value,T);if(Nl===null){w===null&&(w=ce);break}e&&w&&Nl.alternate===null&&t(v,w),h=u(Nl,h,te),fe===null?J=Nl:fe.sibling=Nl,fe=Nl,w=ce}if(re.done)return l(v,w),se&&Qt(v,te),J;if(w===null){for(;!re.done;te++,re=p.next())re=D(v,re.value,T),re!==null&&(h=u(re,h,te),fe===null?J=re:fe.sibling=re,fe=re);return se&&Qt(v,te),J}for(w=a(w);!re.done;te++,re=p.next())re=_(w,v,te,re.value,T),re!==null&&(e&&re.alternate!==null&&w.delete(re.key===null?te:re.key),h=u(re,h,te),fe===null?J=re:fe.sibling=re,fe=re);return e&&w.forEach(function(Ky){return t(v,Ky)}),se&&Qt(v,te),J}function Se(v,h,p,T){if(typeof p=="object"&&p!==null&&p.type===P&&p.key===null&&(p=p.props.children),typeof p=="object"&&p!==null){switch(p.$$typeof){case de:e:{for(var J=p.key;h!==null;){if(h.key===J){if(J=p.type,J===P){if(h.tag===7){l(v,h.sibling),T=n(h,p.props.children),T.return=v,v=T;break e}}else if(h.elementType===J||typeof J=="object"&&J!==null&&J.$$typeof===k&&Gl(J)===h.type){l(v,h.sibling),T=n(h,p.props),Pa(T,p),T.return=v,v=T;break e}l(v,h);break}else t(v,h);h=h.sibling}p.type===P?(T=Rl(p.props.children,v.mode,T,p.key),T.return=v,v=T):(T=In(p.type,p.key,p.props,null,v.mode,T),Pa(T,p),T.return=v,v=T)}return i(v);case V:e:{for(J=p.key;h!==null;){if(h.key===J)if(h.tag===4&&h.stateNode.containerInfo===p.containerInfo&&h.stateNode.implementation===p.implementation){l(v,h.sibling),T=n(h,p.children||[]),T.return=v,v=T;break e}else{l(v,h);break}else t(v,h);h=h.sibling}T=Li(p,v.mode,T),T.return=v,v=T}return i(v);case k:return p=Gl(p),Se(v,h,p,T)}if(Ke(p))return Q(v,h,p,T);if(je(p)){if(J=je(p),typeof J!="function")throw Error(o(150));return p=J.call(p),W(v,h,p,T)}if(typeof p.then=="function")return Se(v,h,uu(p),T);if(p.$$typeof===ge)return Se(v,h,tu(v,p),T);iu(v,p)}return typeof p=="string"&&p!==""||typeof p=="number"||typeof p=="bigint"?(p=""+p,h!==null&&h.tag===6?(l(v,h.sibling),T=n(h,p),T.return=v,v=T):(l(v,h),T=Bi(p,v.mode,T),T.return=v,v=T),i(v)):l(v,h)}return function(v,h,p,T){try{Ia=0;var J=Se(v,h,p,T);return va=null,J}catch(w){if(w===ya||w===au)throw w;var fe=ht(29,w,null,v.mode);return fe.lanes=T,fe.return=v,fe}finally{}}}var Ql=er(!0),tr=er(!1),fl=!1;function Wi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Fi(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function rl(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function ol(e,t,l){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,(oe&2)!==0){var n=a.pending;return n===null?t.next=t:(t.next=n.next,n.next=t),a.pending=t,t=Fn(e),Lf(e,null,l),t}return Wn(e,a,t,l),Fn(e)}function en(e,t,l){if(t=t.updateQueue,t!==null&&(t=t.shared,(l&4194048)!==0)){var a=t.lanes;a&=e.pendingLanes,l|=a,t.lanes=l,Vs(e,l)}}function Ii(e,t){var l=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,l===a)){var n=null,u=null;if(l=l.firstBaseUpdate,l!==null){do{var i={lane:l.lane,tag:l.tag,payload:l.payload,callback:null,next:null};u===null?n=u=i:u=u.next=i,l=l.next}while(l!==null);u===null?n=u=t:u=u.next=t}else n=u=t;l={baseState:a.baseState,firstBaseUpdate:n,lastBaseUpdate:u,shared:a.shared,callbacks:a.callbacks},e.updateQueue=l;return}e=l.lastBaseUpdate,e===null?l.firstBaseUpdate=t:e.next=t,l.lastBaseUpdate=t}var Pi=!1;function tn(){if(Pi){var e=ha;if(e!==null)throw e}}function ln(e,t,l,a){Pi=!1;var n=e.updateQueue;fl=!1;var u=n.firstBaseUpdate,i=n.lastBaseUpdate,s=n.shared.pending;if(s!==null){n.shared.pending=null;var m=s,b=m.next;m.next=null,i===null?u=b:i.next=b,i=m;var x=e.alternate;x!==null&&(x=x.updateQueue,s=x.lastBaseUpdate,s!==i&&(s===null?x.firstBaseUpdate=b:s.next=b,x.lastBaseUpdate=m))}if(u!==null){var D=n.baseState;i=0,x=b=m=null,s=u;do{var S=s.lane&-536870913,_=S!==s.lane;if(_?(ie&S)===S:(a&S)===S){S!==0&&S===ma&&(Pi=!0),x!==null&&(x=x.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});e:{var Q=e,W=s;S=t;var Se=l;switch(W.tag){case 1:if(Q=W.payload,typeof Q=="function"){D=Q.call(Se,D,S);break e}D=Q;break e;case 3:Q.flags=Q.flags&-65537|128;case 0:if(Q=W.payload,S=typeof Q=="function"?Q.call(Se,D,S):Q,S==null)break e;D=B({},D,S);break e;case 2:fl=!0}}S=s.callback,S!==null&&(e.flags|=64,_&&(e.flags|=8192),_=n.callbacks,_===null?n.callbacks=[S]:_.push(S))}else _={lane:S,tag:s.tag,payload:s.payload,callback:s.callback,next:null},x===null?(b=x=_,m=D):x=x.next=_,i|=S;if(s=s.next,s===null){if(s=n.shared.pending,s===null)break;_=s,s=_.next,_.next=null,n.lastBaseUpdate=_,n.shared.pending=null}}while(!0);x===null&&(m=D),n.baseState=m,n.firstBaseUpdate=b,n.lastBaseUpdate=x,u===null&&(n.shared.lanes=0),vl|=i,e.lanes=i,e.memoizedState=D}}function lr(e,t){if(typeof e!="function")throw Error(o(191,e));e.call(t)}function ar(e,t){var l=e.callbacks;if(l!==null)for(e.callbacks=null,e=0;eu?u:8;var i=z.T,s={};z.T=s,pc(e,!1,t,l);try{var m=n(),b=z.S;if(b!==null&&b(s,m),m!==null&&typeof m=="object"&&typeof m.then=="function"){var x=qh(m,a);un(e,t,x,bt(e))}else un(e,t,a,bt(e))}catch(D){un(e,t,{then:function(){},status:"rejected",reason:D},bt())}finally{R.p=u,i!==null&&s.types!==null&&(i.types=s.types),z.T=i}}function Qh(){}function vc(e,t,l,a){if(e.tag!==5)throw Error(o(476));var n=qr(e).queue;Rr(e,n,t,U,l===null?Qh:function(){return Hr(e),l(a)})}function qr(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:U,baseState:U,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vt,lastRenderedState:U},next:null};var l={};return t.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Vt,lastRenderedState:l},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Hr(e){var t=qr(e);t.next===null&&(t=e.alternate.memoizedState),un(e,t.next.queue,{},bt())}function gc(){return We(An)}function Br(){return He().memoizedState}function Lr(){return He().memoizedState}function wh(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var l=bt();e=rl(l);var a=ol(t,e,l);a!==null&&(ft(a,t,l),en(a,t,l)),t={cache:Ki()},e.payload=t;return}t=t.return}}function Xh(e,t,l){var a=bt();l={lane:a,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},vu(e)?Yr(t,l):(l=qi(e,t,l,a),l!==null&&(ft(l,e,a),Qr(l,t,a)))}function Gr(e,t,l){var a=bt();un(e,t,l,a)}function un(e,t,l,a){var n={lane:a,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null};if(vu(e))Yr(t,n);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var i=t.lastRenderedState,s=u(i,l);if(n.hasEagerState=!0,n.eagerState=s,mt(s,i))return Wn(e,t,n,0),Ee===null&&$n(),!1}catch{}finally{}if(l=qi(e,t,n,a),l!==null)return ft(l,e,a),Qr(l,t,a),!0}return!1}function pc(e,t,l,a){if(a={lane:2,revertLane:Wc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},vu(e)){if(t)throw Error(o(479))}else t=qi(e,l,a,2),t!==null&&ft(t,e,2)}function vu(e){var t=e.alternate;return e===ee||t!==null&&t===ee}function Yr(e,t){pa=fu=!0;var l=e.pending;l===null?t.next=t:(t.next=l.next,l.next=t),e.pending=t}function Qr(e,t,l){if((l&4194048)!==0){var a=t.lanes;a&=e.pendingLanes,l|=a,t.lanes=l,Vs(e,l)}}var cn={readContext:We,use:du,useCallback:Ce,useContext:Ce,useEffect:Ce,useImperativeHandle:Ce,useLayoutEffect:Ce,useInsertionEffect:Ce,useMemo:Ce,useReducer:Ce,useRef:Ce,useState:Ce,useDebugValue:Ce,useDeferredValue:Ce,useTransition:Ce,useSyncExternalStore:Ce,useId:Ce,useHostTransitionStatus:Ce,useFormState:Ce,useActionState:Ce,useOptimistic:Ce,useMemoCache:Ce,useCacheRefresh:Ce};cn.useEffectEvent=Ce;var wr={readContext:We,use:du,useCallback:function(e,t){return lt().memoizedState=[e,t===void 0?null:t],e},useContext:We,useEffect:zr,useImperativeHandle:function(e,t,l){l=l!=null?l.concat([e]):null,hu(4194308,4,Or.bind(null,t,e),l)},useLayoutEffect:function(e,t){return hu(4194308,4,e,t)},useInsertionEffect:function(e,t){hu(4,2,e,t)},useMemo:function(e,t){var l=lt();t=t===void 0?null:t;var a=e();if(wl){ll(!0);try{e()}finally{ll(!1)}}return l.memoizedState=[a,t],a},useReducer:function(e,t,l){var a=lt();if(l!==void 0){var n=l(t);if(wl){ll(!0);try{l(t)}finally{ll(!1)}}}else n=t;return a.memoizedState=a.baseState=n,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},a.queue=e,e=e.dispatch=Xh.bind(null,ee,e),[a.memoizedState,e]},useRef:function(e){var t=lt();return e={current:e},t.memoizedState=e},useState:function(e){e=oc(e);var t=e.queue,l=Gr.bind(null,ee,t);return t.dispatch=l,[e.memoizedState,l]},useDebugValue:hc,useDeferredValue:function(e,t){var l=lt();return yc(l,e,t)},useTransition:function(){var e=oc(!1);return e=Rr.bind(null,ee,e.queue,!0,!1),lt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,l){var a=ee,n=lt();if(se){if(l===void 0)throw Error(o(407));l=l()}else{if(l=t(),Ee===null)throw Error(o(349));(ie&127)!==0||fr(a,t,l)}n.memoizedState=l;var u={value:l,getSnapshot:t};return n.queue=u,zr(or.bind(null,a,u,e),[e]),a.flags|=2048,Sa(9,{destroy:void 0},rr.bind(null,a,u,l,t),null),l},useId:function(){var e=lt(),t=Ee.identifierPrefix;if(se){var l=Rt,a=Ct;l=(a&~(1<<32-dt(a)-1)).toString(32)+l,t="_"+t+"R_"+l,l=ru++,0<\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof a.is=="string"?i.createElement("select",{is:a.is}):i.createElement("select"),a.multiple?u.multiple=!0:a.size&&(u.size=a.size);break;default:u=typeof a.is=="string"?i.createElement(n,{is:a.is}):i.createElement(n)}}u[ke]=t,u[at]=a;e:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)u.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break e;for(;i.sibling===null;){if(i.return===null||i.return===t)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=u;e:switch(Ie(u,n,a),n){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}a&&Jt(t)}}return Te(t),Uc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,l),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&Jt(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(o(166));if(e=X.current,oa(t)){if(e=t.stateNode,l=t.memoizedProps,a=null,n=$e,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}e[ke]=t,e=!!(e.nodeValue===l||a!==null&&a.suppressHydrationWarning===!0||sd(e.nodeValue,l)),e||cl(t,!0)}else e=Hu(e).createTextNode(a),e[ke]=t,t.stateNode=e}return Te(t),null;case 31:if(l=t.memoizedState,e===null||e.memoizedState!==null){if(a=oa(t),l!==null){if(e===null){if(!a)throw Error(o(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(557));e[ke]=t}else ql(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Te(t),e=!1}else l=wi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),e=!0;if(!e)return t.flags&256?(vt(t),t):(vt(t),null);if((t.flags&128)!==0)throw Error(o(558))}return Te(t),null;case 13:if(a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(n=oa(t),a!==null&&a.dehydrated!==null){if(e===null){if(!n)throw Error(o(318));if(n=t.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(o(317));n[ke]=t}else ql(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Te(t),n=!1}else n=wi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),n=!0;if(!n)return t.flags&256?(vt(t),t):(vt(t),null)}return vt(t),(t.flags&128)!==0?(t.lanes=l,t):(l=a!==null,e=e!==null&&e.memoizedState!==null,l&&(a=t.child,n=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(n=a.alternate.memoizedState.cachePool.pool),u=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(u=a.memoizedState.cachePool.pool),u!==n&&(a.flags|=2048)),l!==e&&l&&(t.child.flags|=8192),_u(t,t.updateQueue),Te(t),null);case 4:return _e(),e===null&&es(t.stateNode.containerInfo),Te(t),null;case 10:return Xt(t.type),Te(t),null;case 19:if(y(qe),a=t.memoizedState,a===null)return Te(t),null;if(n=(t.flags&128)!==0,u=a.rendering,u===null)if(n)fn(a,!1);else{if(Re!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(u=su(e),u!==null){for(t.flags|=128,fn(a,!1),e=u.updateQueue,t.updateQueue=e,_u(t,e),t.subtreeFlags=0,e=l,l=t.child;l!==null;)Gf(l,e),l=l.sibling;return j(qe,qe.current&1|2),se&&Qt(t,a.treeForkCount),t.child}e=e.sibling}a.tail!==null&&rt()>Nu&&(t.flags|=128,n=!0,fn(a,!1),t.lanes=4194304)}else{if(!n)if(e=su(u),e!==null){if(t.flags|=128,n=!0,e=e.updateQueue,t.updateQueue=e,_u(t,e),fn(a,!0),a.tail===null&&a.tailMode==="hidden"&&!u.alternate&&!se)return Te(t),null}else 2*rt()-a.renderingStartTime>Nu&&l!==536870912&&(t.flags|=128,n=!0,fn(a,!1),t.lanes=4194304);a.isBackwards?(u.sibling=t.child,t.child=u):(e=a.last,e!==null?e.sibling=u:t.child=u,a.last=u)}return a.tail!==null?(e=a.tail,a.rendering=e,a.tail=e.sibling,a.renderingStartTime=rt(),e.sibling=null,l=qe.current,j(qe,n?l&1|2:l&1),se&&Qt(t,a.treeForkCount),e):(Te(t),null);case 22:case 23:return vt(t),tc(),a=t.memoizedState!==null,e!==null?e.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(l&536870912)!==0&&(t.flags&128)===0&&(Te(t),t.subtreeFlags&6&&(t.flags|=8192)):Te(t),l=t.updateQueue,l!==null&&_u(t,l.retryQueue),l=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==l&&(t.flags|=2048),e!==null&&y(Ll),null;case 24:return l=null,e!==null&&(l=e.memoizedState.cache),t.memoizedState.cache!==l&&(t.flags|=2048),Xt(Be),Te(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function kh(e,t){switch(Yi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Xt(Be),_e(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return tl(t),null;case 31:if(t.memoizedState!==null){if(vt(t),t.alternate===null)throw Error(o(340));ql()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(vt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));ql()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return y(qe),null;case 4:return _e(),null;case 10:return Xt(t.type),null;case 22:case 23:return vt(t),tc(),e!==null&&y(Ll),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Xt(Be),null;case 25:return null;default:return null}}function mo(e,t){switch(Yi(t),t.tag){case 3:Xt(Be),_e();break;case 26:case 27:case 5:tl(t);break;case 4:_e();break;case 31:t.memoizedState!==null&&vt(t);break;case 13:vt(t);break;case 19:y(qe);break;case 10:Xt(t.type);break;case 22:case 23:vt(t),tc(),e!==null&&y(Ll);break;case 24:Xt(Be)}}function rn(e,t){try{var l=t.updateQueue,a=l!==null?l.lastEffect:null;if(a!==null){var n=a.next;l=n;do{if((l.tag&e)===e){a=void 0;var u=l.create,i=l.inst;a=u(),i.destroy=a}l=l.next}while(l!==n)}}catch(s){ve(t,t.return,s)}}function hl(e,t,l){try{var a=t.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var u=n.next;a=u;do{if((a.tag&e)===e){var i=a.inst,s=i.destroy;if(s!==void 0){i.destroy=void 0,n=t;var m=l,b=s;try{b()}catch(x){ve(n,m,x)}}}a=a.next}while(a!==u)}}catch(x){ve(t,t.return,x)}}function ho(e){var t=e.updateQueue;if(t!==null){var l=e.stateNode;try{ar(t,l)}catch(a){ve(e,e.return,a)}}}function yo(e,t,l){l.props=Xl(e.type,e.memoizedProps),l.state=e.memoizedState;try{l.componentWillUnmount()}catch(a){ve(e,t,a)}}function on(e,t){try{var l=e.ref;if(l!==null){switch(e.tag){case 26:case 27:case 5:var a=e.stateNode;break;case 30:a=e.stateNode;break;default:a=e.stateNode}typeof l=="function"?e.refCleanup=l(a):l.current=a}}catch(n){ve(e,t,n)}}function qt(e,t){var l=e.ref,a=e.refCleanup;if(l!==null)if(typeof a=="function")try{a()}catch(n){ve(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof l=="function")try{l(null)}catch(n){ve(e,t,n)}else l.current=null}function vo(e){var t=e.type,l=e.memoizedProps,a=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":l.autoFocus&&a.focus();break e;case"img":l.src?a.src=l.src:l.srcSet&&(a.srcset=l.srcSet)}}catch(n){ve(e,e.return,n)}}function Cc(e,t,l){try{var a=e.stateNode;vy(a,e.type,l,t),a[at]=t}catch(n){ve(e,e.return,n)}}function go(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&_l(e.type)||e.tag===4}function Rc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||go(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&_l(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function qc(e,t,l){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l).insertBefore(e,t):(t=l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,t.appendChild(e),l=l._reactRootContainer,l!=null||t.onclick!==null||(t.onclick=Lt));else if(a!==4&&(a===27&&_l(e.type)&&(l=e.stateNode,t=null),e=e.child,e!==null))for(qc(e,t,l),e=e.sibling;e!==null;)qc(e,t,l),e=e.sibling}function Eu(e,t,l){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?l.insertBefore(e,t):l.appendChild(e);else if(a!==4&&(a===27&&_l(e.type)&&(l=e.stateNode),e=e.child,e!==null))for(Eu(e,t,l),e=e.sibling;e!==null;)Eu(e,t,l),e=e.sibling}function po(e){var t=e.stateNode,l=e.memoizedProps;try{for(var a=e.type,n=t.attributes;n.length;)t.removeAttributeNode(n[0]);Ie(t,a,l),t[ke]=e,t[at]=l}catch(u){ve(e,e.return,u)}}var kt=!1,Ye=!1,Hc=!1,bo=typeof WeakSet=="function"?WeakSet:Set,Ze=null;function $h(e,t){if(e=e.containerInfo,as=Xu,e=Df(e),Oi(e)){if("selectionStart"in e)var l={start:e.selectionStart,end:e.selectionEnd};else e:{l=(l=e.ownerDocument)&&l.defaultView||window;var a=l.getSelection&&l.getSelection();if(a&&a.rangeCount!==0){l=a.anchorNode;var n=a.anchorOffset,u=a.focusNode;a=a.focusOffset;try{l.nodeType,u.nodeType}catch{l=null;break e}var i=0,s=-1,m=-1,b=0,x=0,D=e,S=null;t:for(;;){for(var _;D!==l||n!==0&&D.nodeType!==3||(s=i+n),D!==u||a!==0&&D.nodeType!==3||(m=i+a),D.nodeType===3&&(i+=D.nodeValue.length),(_=D.firstChild)!==null;)S=D,D=_;for(;;){if(D===e)break t;if(S===l&&++b===n&&(s=i),S===u&&++x===a&&(m=i),(_=D.nextSibling)!==null)break;D=S,S=D.parentNode}D=_}l=s===-1||m===-1?null:{start:s,end:m}}else l=null}l=l||{start:0,end:0}}else l=null;for(ns={focusedElem:e,selectionRange:l},Xu=!1,Ze=t;Ze!==null;)if(t=Ze,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Ze=e;else for(;Ze!==null;){switch(t=Ze,u=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(l=0;l title"))),Ie(u,a,l),u[ke]=e,Xe(u),a=u;break e;case"link":var i=zd("link","href",n).get(a+(l.href||""));if(i){for(var s=0;sSe&&(i=Se,Se=W,W=i);var v=Tf(s,W),h=Tf(s,Se);if(v&&h&&(_.rangeCount!==1||_.anchorNode!==v.node||_.anchorOffset!==v.offset||_.focusNode!==h.node||_.focusOffset!==h.offset)){var p=D.createRange();p.setStart(v.node,v.offset),_.removeAllRanges(),W>Se?(_.addRange(p),_.extend(h.node,h.offset)):(p.setEnd(h.node,h.offset),_.addRange(p))}}}}for(D=[],_=s;_=_.parentNode;)_.nodeType===1&&D.push({element:_,left:_.scrollLeft,top:_.scrollTop});for(typeof s.focus=="function"&&s.focus(),s=0;sl?32:l,z.T=null,l=Xc,Xc=null;var u=pl,i=Pt;if(Qe=0,za=pl=null,Pt=0,(oe&6)!==0)throw Error(o(331));var s=oe;if(oe|=4,Do(u.current),xo(u,u.current,i,l),oe=s,gn(0,!1),ot&&typeof ot.onPostCommitFiberRoot=="function")try{ot.onPostCommitFiberRoot(Ra,u)}catch{}return!0}finally{R.p=n,z.T=a,ko(e,t)}}function Wo(e,t,l){t=At(l,t),t=Ec(e.stateNode,t,2),e=ol(e,t,2),e!==null&&(Ha(e,2),Ht(e))}function ve(e,t,l){if(e.tag===3)Wo(e,e,l);else for(;t!==null;){if(t.tag===3){Wo(t,e,l);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(gl===null||!gl.has(a))){e=At(l,e),l=Wr(2),a=ol(t,l,2),a!==null&&(Fr(l,a,t,e),Ha(a,2),Ht(a));break}}t=t.return}}function Jc(e,t,l){var a=e.pingCache;if(a===null){a=e.pingCache=new Ih;var n=new Set;a.set(t,n)}else n=a.get(t),n===void 0&&(n=new Set,a.set(t,n));n.has(l)||(Gc=!0,n.add(l),e=ay.bind(null,e,t,l),t.then(e,e))}function ay(e,t,l){var a=e.pingCache;a!==null&&a.delete(t),e.pingedLanes|=e.suspendedLanes&l,e.warmLanes&=~l,Ee===e&&(ie&l)===l&&(Re===4||Re===3&&(ie&62914560)===ie&&300>rt()-zu?(oe&2)===0&&Na(e,0):Yc|=l,ja===ie&&(ja=0)),Ht(e)}function Fo(e,t){t===0&&(t=Xs()),e=Cl(e,t),e!==null&&(Ha(e,t),Ht(e))}function ny(e){var t=e.memoizedState,l=0;t!==null&&(l=t.retryLane),Fo(e,l)}function uy(e,t){var l=0;switch(e.tag){case 31:case 13:var a=e.stateNode,n=e.memoizedState;n!==null&&(l=n.retryLane);break;case 19:a=e.stateNode;break;case 22:a=e.stateNode._retryCache;break;default:throw Error(o(314))}a!==null&&a.delete(t),Fo(e,l)}function iy(e,t){return ii(e,t)}var Uu=null,Ta=null,kc=!1,Cu=!1,$c=!1,Sl=0;function Ht(e){e!==Ta&&e.next===null&&(Ta===null?Uu=Ta=e:Ta=Ta.next=e),Cu=!0,kc||(kc=!0,sy())}function gn(e,t){if(!$c&&Cu){$c=!0;do for(var l=!1,a=Uu;a!==null;){if(e!==0){var n=a.pendingLanes;if(n===0)var u=0;else{var i=a.suspendedLanes,s=a.pingedLanes;u=(1<<31-dt(42|e)+1)-1,u&=n&~(i&~s),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(l=!0,td(a,u))}else u=ie,u=Bn(a,a===Ee?u:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(u&3)===0||qa(a,u)||(l=!0,td(a,u));a=a.next}while(l);$c=!1}}function cy(){Io()}function Io(){Cu=kc=!1;var e=0;Sl!==0&&py()&&(e=Sl);for(var t=rt(),l=null,a=Uu;a!==null;){var n=a.next,u=Po(a,t);u===0?(a.next=null,l===null?Uu=n:l.next=n,n===null&&(Ta=l)):(l=a,(e!==0||(u&3)!==0)&&(Cu=!0)),a=n}Qe!==0&&Qe!==5||gn(e),Sl!==0&&(Sl=0)}function Po(e,t){for(var l=e.suspendedLanes,a=e.pingedLanes,n=e.expirationTimes,u=e.pendingLanes&-62914561;0s)break;var x=m.transferSize,D=m.initiatorType;x&&fd(D)&&(m=m.responseEnd,i+=x*(m"u"?null:document;function _d(e,t,l){var a=Oa;if(a&&typeof t=="string"&&t){var n=_t(t);n='link[rel="'+e+'"][href="'+n+'"]',typeof l=="string"&&(n+='[crossorigin="'+l+'"]'),Sd.has(n)||(Sd.add(n),e={rel:e,crossOrigin:l,href:t},a.querySelector(n)===null&&(t=a.createElement("link"),Ie(t,"link",e),Xe(t),a.head.appendChild(t)))}}function xy(e){el.D(e),_d("dns-prefetch",e,null)}function Ty(e,t){el.C(e,t),_d("preconnect",e,t)}function Oy(e,t,l){el.L(e,t,l);var a=Oa;if(a&&e&&t){var n='link[rel="preload"][as="'+_t(t)+'"]';t==="image"&&l&&l.imageSrcSet?(n+='[imagesrcset="'+_t(l.imageSrcSet)+'"]',typeof l.imageSizes=="string"&&(n+='[imagesizes="'+_t(l.imageSizes)+'"]')):n+='[href="'+_t(e)+'"]';var u=n;switch(t){case"style":u=Da(e);break;case"script":u=Ma(e)}Ot.has(u)||(e=B({rel:"preload",href:t==="image"&&l&&l.imageSrcSet?void 0:e,as:t},l),Ot.set(u,e),a.querySelector(n)!==null||t==="style"&&a.querySelector(_n(u))||t==="script"&&a.querySelector(En(u))||(t=a.createElement("link"),Ie(t,"link",e),Xe(t),a.head.appendChild(t)))}}function Dy(e,t){el.m(e,t);var l=Oa;if(l&&e){var a=t&&typeof t.as=="string"?t.as:"script",n='link[rel="modulepreload"][as="'+_t(a)+'"][href="'+_t(e)+'"]',u=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Ma(e)}if(!Ot.has(u)&&(e=B({rel:"modulepreload",href:e},t),Ot.set(u,e),l.querySelector(n)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(l.querySelector(En(u)))return}a=l.createElement("link"),Ie(a,"link",e),Xe(a),l.head.appendChild(a)}}}function My(e,t,l){el.S(e,t,l);var a=Oa;if(a&&e){var n=Il(a).hoistableStyles,u=Da(e);t=t||"default";var i=n.get(u);if(!i){var s={loading:0,preload:null};if(i=a.querySelector(_n(u)))s.loading=5;else{e=B({rel:"stylesheet",href:e,"data-precedence":t},l),(l=Ot.get(u))&&os(e,l);var m=i=a.createElement("link");Xe(m),Ie(m,"link",e),m._p=new Promise(function(b,x){m.onload=b,m.onerror=x}),m.addEventListener("load",function(){s.loading|=1}),m.addEventListener("error",function(){s.loading|=2}),s.loading|=4,Lu(i,t,a)}i={type:"stylesheet",instance:i,count:1,state:s},n.set(u,i)}}}function Uy(e,t){el.X(e,t);var l=Oa;if(l&&e){var a=Il(l).hoistableScripts,n=Ma(e),u=a.get(n);u||(u=l.querySelector(En(n)),u||(e=B({src:e,async:!0},t),(t=Ot.get(n))&&ds(e,t),u=l.createElement("script"),Xe(u),Ie(u,"link",e),l.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Cy(e,t){el.M(e,t);var l=Oa;if(l&&e){var a=Il(l).hoistableScripts,n=Ma(e),u=a.get(n);u||(u=l.querySelector(En(n)),u||(e=B({src:e,async:!0,type:"module"},t),(t=Ot.get(n))&&ds(e,t),u=l.createElement("script"),Xe(u),Ie(u,"link",e),l.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Ed(e,t,l,a){var n=(n=X.current)?Bu(n):null;if(!n)throw Error(o(446));switch(e){case"meta":case"title":return null;case"style":return typeof l.precedence=="string"&&typeof l.href=="string"?(t=Da(l.href),l=Il(n).hoistableStyles,a=l.get(t),a||(a={type:"style",instance:null,count:0,state:null},l.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(l.rel==="stylesheet"&&typeof l.href=="string"&&typeof l.precedence=="string"){e=Da(l.href);var u=Il(n).hoistableStyles,i=u.get(e);if(i||(n=n.ownerDocument||n,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,i),(u=n.querySelector(_n(e)))&&!u._p&&(i.instance=u,i.state.loading=5),Ot.has(e)||(l={rel:"preload",as:"style",href:l.href,crossOrigin:l.crossOrigin,integrity:l.integrity,media:l.media,hrefLang:l.hrefLang,referrerPolicy:l.referrerPolicy},Ot.set(e,l),u||Ry(n,e,l,i.state))),t&&a===null)throw Error(o(528,""));return i}if(t&&a!==null)throw Error(o(529,""));return null;case"script":return t=l.async,l=l.src,typeof l=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ma(l),l=Il(n).hoistableScripts,a=l.get(t),a||(a={type:"script",instance:null,count:0,state:null},l.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,e))}}function Da(e){return'href="'+_t(e)+'"'}function _n(e){return'link[rel="stylesheet"]['+e+"]"}function Ad(e){return B({},e,{"data-precedence":e.precedence,precedence:null})}function Ry(e,t,l,a){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?a.loading=1:(t=e.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),Ie(t,"link",l),Xe(t),e.head.appendChild(t))}function Ma(e){return'[src="'+_t(e)+'"]'}function En(e){return"script[async]"+e}function jd(e,t,l){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+_t(l.href)+'"]');if(a)return t.instance=a,Xe(a),a;var n=B({},l,{"data-href":l.href,"data-precedence":l.precedence,href:null,precedence:null});return a=(e.ownerDocument||e).createElement("style"),Xe(a),Ie(a,"style",n),Lu(a,l.precedence,e),t.instance=a;case"stylesheet":n=Da(l.href);var u=e.querySelector(_n(n));if(u)return t.state.loading|=4,t.instance=u,Xe(u),u;a=Ad(l),(n=Ot.get(n))&&os(a,n),u=(e.ownerDocument||e).createElement("link"),Xe(u);var i=u;return i._p=new Promise(function(s,m){i.onload=s,i.onerror=m}),Ie(u,"link",a),t.state.loading|=4,Lu(u,l.precedence,e),t.instance=u;case"script":return u=Ma(l.src),(n=e.querySelector(En(u)))?(t.instance=n,Xe(n),n):(a=l,(n=Ot.get(u))&&(a=B({},l),ds(a,n)),e=e.ownerDocument||e,n=e.createElement("script"),Xe(n),Ie(n,"link",a),e.head.appendChild(n),t.instance=n);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,Lu(a,l.precedence,e));return t.instance}function Lu(e,t,l){for(var a=l.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),n=a.length?a[a.length-1]:null,u=n,i=0;i title"):null)}function qy(e,t,l){if(l===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function xd(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function Hy(e,t,l,a){if(l.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(l.state.loading&4)===0){if(l.instance===null){var n=Da(a.href),u=t.querySelector(_n(n));if(u){t=u._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Yu.bind(e),t.then(e,e)),l.state.loading|=4,l.instance=u,Xe(u);return}u=t.ownerDocument||t,a=Ad(a),(n=Ot.get(n))&&os(a,n),u=u.createElement("link"),Xe(u);var i=u;i._p=new Promise(function(s,m){i.onload=s,i.onerror=m}),Ie(u,"link",a),l.instance=u}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(l,t),(t=l.state.preload)&&(l.state.loading&3)===0&&(e.count++,l=Yu.bind(e),t.addEventListener("load",l),t.addEventListener("error",l))}}var ms=0;function By(e,t){return e.stylesheets&&e.count===0&&wu(e,e.stylesheets),0ms?50:800)+t);return e.unsuspend=l,function(){e.unsuspend=null,clearTimeout(a),clearTimeout(n)}}:null}function Yu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)wu(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Qu=null;function wu(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Qu=new Map,t.forEach(Ly,e),Qu=null,Yu.call(e))}function Ly(e,t){if(!(t.state.loading&4)){var l=Qu.get(e);if(l)var a=l.get(null);else{l=new Map,Qu.set(e,l);for(var n=e.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(f)}catch(d){console.error(d)}}return f(),Es.exports=ev(),Es.exports}var lv=tv();/** * @license lucide-react v0.575.0 - ISC * * This source code is licensed under the ISC license. @@ -156,12 +156,12 @@ Error generating stack: `+a.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Nv=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Tv=Ve("sparkles",Nv);/** + */const Nv=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],xv=Ve("sparkles",Nv);/** * @license lucide-react v0.575.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const xv=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Hs=Ve("star",xv);/** + */const Tv=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Hs=Ve("star",Tv);/** * @license lucide-react v0.575.0 - ISC * * This source code is licensed under the ISC license. @@ -176,4 +176,4 @@ Error generating stack: `+a.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Uv=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],kl=Ve("x",Uv),Cv="2026-07-16T12:00:00.000Z",dm=["Administración","Recursos Humanos","CDC"],Rv=[];function qv(){return{schemaVersion:1,apps:Rv.map(f=>({...f,keywords:[...f.keywords]})),favoritesByUser:{},recentByUser:{},updatedAt:Cv}}const On="glm-hub:state:v1";function Hv(f){if(!f||typeof f!="object")return!1;const d=f;return typeof d.id=="string"&&typeof d.name=="string"&&typeof d.description=="string"&&typeof d.category=="string"&&Array.isArray(d.keywords)&&typeof d.url=="string"&&typeof d.mark=="string"&&typeof d.accent=="string"&&typeof d.iconDataUrl=="string"&&(d.visibility==="published"||d.visibility==="hidden")}function Bv(f){if(!f||typeof f!="object")return!1;const d=f;return d.schemaVersion===1&&Array.isArray(d.apps)&&d.apps.every(Hv)&&!!d.favoritesByUser&&typeof d.favoritesByUser=="object"&&!!d.recentByUser&&typeof d.recentByUser=="object"}function Pd(f,d){return Object.fromEntries(Object.entries(f).map(([g,o])=>[g,o.filter(O=>d.has(O))]))}function Lv(f){switch(f){case"Administración":case"Recursos Humanos":case"CDC":return f;case"Recursos":return"Recursos Humanos";case"Clientes":case"Creatividad":return"CDC";case"Operaciones":case"Analítica":default:return"Administración"}}function Gv(f){let d=!1;const g=f.apps.map(o=>{const O=Lv(o.category);return O===o.category?o:(d=!0,{...o,category:O})});return d?{...f,apps:g,updatedAt:new Date().toISOString()}:f}function Yv(f){const d=f.apps.filter(o=>!!o.iconDataUrl.trim());if(d.length===f.apps.length)return f;const g=new Set(d.map(o=>o.id));return{...f,apps:d,favoritesByUser:Pd(f.favoritesByUser,g),recentByUser:Pd(f.recentByUser,g),updatedAt:new Date().toISOString()}}function Qv(){const f=qv();try{const d=localStorage.getItem(On);if(!d)return localStorage.setItem(On,JSON.stringify(f)),{data:f,warning:""};const g=JSON.parse(d);if(!Bv(g))return localStorage.setItem(`${On}:backup`,d),localStorage.setItem(On,JSON.stringify(f)),{data:f,warning:"Los datos locales no eran válidos. Restauramos el catálogo inicial."};const o=Gv(g),O=Yv(o);return O!==g&&localStorage.setItem(On,JSON.stringify(O)),{data:O,warning:""}}catch{return{data:f,warning:"No pudimos leer los datos guardados. Estás viendo el catálogo inicial."}}}function Ca(f){return f.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLocaleLowerCase("es-DO").trim()}function Jl(f){if(!f.trim())return null;try{const d=new URL(f.trim()),g=d.protocol==="http:"&&(d.hostname==="localhost"||d.hostname==="127.0.0.1");return d.protocol!=="https:"&&!g||d.username||d.password?null:d.toString()}catch{return null}}const mm="https://dbit.digitalcompass.agency".trim(),hm="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE".trim(),ym=globalThis.supabase;if(!mm||!hm)throw new Error("Faltan VITE_SUPABASE_URL o VITE_SUPABASE_ANON_KEY en el archivo .env.");if(!ym)throw new Error("No se pudo cargar la librería de Supabase.");const Ue=ym.createClient(mm,hm,{auth:{autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"pkce"}}),Mn="glm_hub_apps",Ms="glm_hub_favorites",vm="glm_hub_recent_apps",Pu="glm-hub-icons",em="glm-hub:supabase-catalog-migrated:v1";function gm(f){return{id:f.id,name:f.name,description:f.description,category:f.category,keywords:[],url:f.url??"",mark:"",accent:"#4F758B",iconDataUrl:f.icon_url,visibility:f.visibility,createdAt:f.created_at,updatedAt:f.updated_at}}function wv(f){const d=/^data:(image\/(?:png|jpeg|webp));base64,([a-zA-Z0-9+/=]+)$/.exec(f);if(!d)throw new Error("El ícono no tiene un formato válido.");const g=d[1],o=atob(d[2]),O=new Uint8Array(o.length);for(let A=0;A[o.app_id,o.has_access===!0]))}async function Bs(){const{data:f,error:d}=await Ue.from(Mn).select("id,name,description,category,url,icon_url,visibility,created_at,updated_at").order("name",{ascending:!0});if(d)throw new Error(`No se pudo cargar el catálogo compartido: ${d.message}`);return(f??[]).map(gm)}async function Kv(f){const{data:d,error:g}=await Ue.from(Ms).select("app_id,created_at").eq("user_id",f).order("created_at",{ascending:!1});if(g)throw new Error(`No se pudieron cargar los favoritos: ${g.message}`);return(d??[]).map(o=>o.app_id)}async function Jv(f){const{data:d,error:g}=await Ue.from(vm).select("app_id,last_opened_at").eq("user_id",f).order("last_opened_at",{ascending:!1}).limit(30);if(g)throw new Error(`No se pudieron cargar los accesos recientes: ${g.message}`);return(d??[]).map(o=>o.app_id)}async function kv(f){const[d,g,o]=await Promise.all([Bs(),Kv(f),Jv(f)]);return{schemaVersion:1,apps:d,favoritesByUser:{[f]:g},recentByUser:{[f]:o},updatedAt:new Date().toISOString()}}async function pm(f,d,g){const o=(d==null?void 0:d.id)??crypto.randomUUID(),O=await Zv(o,f.iconDataUrl),A={name:f.name,description:f.description,category:f.category,url:f.url||null,icon_url:O,visibility:f.visibility,updated_by:g};let C;if(d?C=await Ue.from(Mn).update(A).eq("id",o).select("id,name,description,category,url,icon_url,visibility,created_at,updated_at").single():C=await Ue.from(Mn).insert({id:o,...A,created_by:g}).select("id,name,description,category,url,icon_url,visibility,created_at,updated_at").single(),C.error)throw O!==f.iconDataUrl&&await Us(O),new Error(`No se pudo guardar la aplicación: ${C.error.message}`);return d&&d.iconDataUrl!==O&&await Us(d.iconDataUrl),gm(C.data)}async function $v(f){const{error:d}=await Ue.from(Mn).delete().eq("id",f.id);if(d)throw new Error(`No se pudo eliminar la aplicación: ${d.message}`);await Us(f.iconDataUrl)}async function Wv(f,d,g){if(g){const{error:O}=await Ue.from(Ms).upsert({user_id:f,app_id:d},{onConflict:"user_id,app_id"});if(O)throw new Error(`No se pudo guardar el favorito: ${O.message}`);return}const{error:o}=await Ue.from(Ms).delete().eq("user_id",f).eq("app_id",d);if(o)throw new Error(`No se pudo quitar el favorito: ${o.message}`)}async function Fv(f,d){const{error:g}=await Ue.from(vm).upsert({user_id:f,app_id:d,last_opened_at:new Date().toISOString()},{onConflict:"user_id,app_id"});if(g)throw new Error(`No se pudo registrar el acceso reciente: ${g.message}`)}async function Iv(f,d){if(f.role!=="admin"||d.length===0||localStorage.getItem(em)==="completed")return 0;const g=await Bs(),o=new Set(g.map(C=>C.name.trim().toLocaleLowerCase("es-DO"))),O=d.filter(C=>{const Z=C.name.trim().toLocaleLowerCase("es-DO");return!!C.iconDataUrl.trim()&&!o.has(Z)});let A=0;for(const C of O)await pm({name:C.name,description:C.description,category:C.category,url:C.url,iconDataUrl:C.iconDataUrl,visibility:C.visibility},null,f.id),o.add(C.name.trim().toLocaleLowerCase("es-DO")),A+=1;return localStorage.setItem(em,"completed"),A}function Pv(f){const d=Ue.channel("glm-hub-apps-shared").on("postgres_changes",{event:"*",schema:"public",table:Mn},()=>f()).subscribe();return()=>{Ue.removeChannel(d)}}const Cs=new Intl.Collator("es-DO",{sensitivity:"base"}),e0="@gomezleemarketing.com",tm="https://agenteit.digitalcompass.agency/webhook/glm-hub-generar-icono".trim()??"",lm="https://agenteit.digitalcompass.agency/webhook/glm-hub-solicitar-acceso".trim()??"";function Ns(f=""){return`/${f}`}function t0(){return new URL("/",window.location.origin).toString()}function l0(f,d){var C,Z;const g=f.user.user_metadata??{},o=g.full_name??g.name,A=(((C=f.user.email)==null?void 0:C.trim().toLocaleLowerCase("en-US"))??"").split("@")[0]||"Usuario GLM";return((Z=d==null?void 0:d.full_name)==null?void 0:Z.trim())||(typeof o=="string"?o.trim():"")||A}function a0(f){const d=f.user.user_metadata??{},g=d.avatar_url??d.picture;if(typeof g!="string"||!g.trim())return"";try{const o=new URL(g.trim());return o.protocol==="https:"?o.toString():""}catch{return""}}async function n0(f){var C;const d=((C=f.user.email)==null?void 0:C.trim().toLocaleLowerCase("en-US"))??"";if(!d.endsWith(e0))return{session:null,error:"Debes continuar con una cuenta corporativa @gomezleemarketing.com."};const{data:g,error:o}=await Ue.from("glm_hub_authorized_users").select("email, full_name, role, is_active").eq("email",d).limit(1),A=(g??[])[0]??null;return o?(console.error("No se pudo validar el perfil de acceso:",o),{session:null,error:"No pudimos completar el inicio de sesión. Intenta nuevamente."}):A&&!A.is_active?{session:null,error:"Tu acceso al GLM Hub está deshabilitado. Contacta a IT Support."}:{session:{user:{id:f.user.id,name:l0(f,A),email:d,role:(A==null?void 0:A.role)==="admin"?"admin":"member",avatarUrl:a0(f)},expiresAt:(f.expires_at??Math.floor(Date.now()/1e3)+3600)*1e3},error:""}}function bm(f){const d=f.trim().split(/\s+/).filter(Boolean);if(d.length===0)return"GL";if(d.length===1)return d[0].slice(0,2).toLocaleUpperCase("es-DO");const g=d.length>=4?d.length-2:d.length-1;return`${d[0][0]}${d[g][0]}`.toLocaleUpperCase("es-DO")}function u0(){const f=new Date().getHours();return f<12?"Buenos días":f<19?"Buenas tardes":"Buenas noches"}function am(f){return f&&f[0].toLocaleUpperCase("es-DO")+f.slice(1)}function nm(f){const d=new Intl.DateTimeFormat("es-DO",{weekday:"long",day:"numeric",month:"long",year:"numeric"}).formatToParts(f),g=o=>{var O;return((O=d.find(A=>A.type===o))==null?void 0:O.value)??""};return`${am(g("weekday"))} ${g("day")} de ${am(g("month"))} de ${g("year")}`}function i0(){const[f,d]=H.useState(()=>nm(new Date));return H.useEffect(()=>{const g=()=>d(nm(new Date));g();const o=window.setInterval(g,6e4);return()=>window.clearInterval(o)},[]),f}function Wu(){return{name:"",description:"",category:"Administración",url:"",iconDataUrl:"",visibility:"published"}}function Dn(f){return{name:f.name,description:f.description,category:f.category,url:f.url,iconDataUrl:f.iconDataUrl,visibility:f.visibility}}async function Sm(f,d=!0){if(!new Set(["image/png","image/jpeg","image/webp"]).has(f.type))throw new Error("Usa un ícono en formato PNG, JPG o WebP.");if(d&&f.size>1024*1024)throw new Error("El ícono debe pesar menos de 1 MB.");const o=await createImageBitmap(f);if(o.width>4096||o.height>4096)throw o.close(),new Error("El ícono no puede superar 4096 × 4096 px.");const O=document.createElement("canvas");O.width=192,O.height=192;const A=O.getContext("2d");if(!A)throw o.close(),new Error("Este navegador no pudo procesar el ícono.");const C=Math.min(192/o.width,192/o.height),Z=o.width*C,q=o.height*C,E=(192-Z)/2,Y=(192-q)/2;return A.clearRect(0,0,192,192),A.drawImage(o,E,Y,Z,q),o.close(),O.toDataURL("image/webp",.9)}async function c0(f){if(!f.startsWith("data:image/"))throw new Error("La IA no devolvió una imagen válida.");const g=await(await fetch(f)).blob();return _m(g)}async function _m(f){const d=f.type||"image/png";if(!d.startsWith("image/"))throw new Error("El flujo de IA no devolvió un archivo de imagen.");const g=d==="image/jpeg"?"jpg":d.split("/")[1]||"png",o=new File([f],`icono-generado.${g}`,{type:d});return Sm(o,!1)}function ei({compact:f=!1}){return c.jsx("img",{className:f?"brand-logo brand-logo--compact":"brand-logo",src:"/glm-logo.png",alt:"GomezLee Marketing",width:"350",height:"109"})}function ti({app:f,size:d="regular",showPlaceholder:g=!1}){const[o,O]=H.useState(!1),A=!!f.iconDataUrl&&!o;return c.jsx("span",{className:`app-mark app-mark--${d}`,"aria-hidden":"true",children:A?c.jsx("img",{src:f.iconDataUrl,alt:"",onError:()=>O(!0)}):g?c.jsx(vv,{className:"app-mark__placeholder",size:36,strokeWidth:1.5}):null})}function Em({user:f,label:d}){const[g,o]=H.useState(!1),O=!!f.avatarUrl&&!g;return c.jsx("span",{className:"avatar","aria-label":d,"aria-hidden":d?void 0:!0,children:O?c.jsx("img",{src:f.avatarUrl,alt:"",referrerPolicy:"no-referrer",onError:()=>o(!0)}):bm(f.name)})}function Ts({messages:f,onDismiss:d}){return c.jsx("div",{className:"toast-stack","aria-live":"polite","aria-relevant":"additions",children:f.map(g=>c.jsxs("div",{className:`toast toast--${g.kind}`,children:[c.jsx("span",{className:"toast__signal","aria-hidden":"true"}),c.jsxs("div",{children:[c.jsx("strong",{children:g.title}),g.detail?c.jsx("p",{children:g.detail}):null]}),c.jsx("button",{type:"button",className:"icon-button icon-button--quiet","aria-label":"Cerrar mensaje",onClick:()=>d(g.id),children:c.jsx(kl,{size:18,"aria-hidden":"true"})})]},g.id))})}function s0({onLogin:f,error:d,disabled:g=!1}){const[o,O]=H.useState(!1),A=async()=>{O(!0),await f(),O(!1)};return c.jsxs("main",{className:"login-shell",children:[c.jsxs("section",{className:"login-story","aria-labelledby":"login-headline",children:[c.jsx("div",{className:"login-story__topline",children:c.jsx(ei,{})}),c.jsxs("div",{className:"login-story__content",children:[c.jsx("p",{className:"eyebrow",children:"ACCESO INTERNO"}),c.jsxs("h1",{id:"login-headline",children:["Todo el trabajo",c.jsx("span",{children:"de GLM, a un clic."})]}),c.jsx("p",{className:"login-story__lede",children:"Tu punto de partida para abrir herramientas, encontrar recursos y mantener el día en movimiento."})]}),c.jsx("div",{className:"login-story__type","aria-hidden":"true",children:"GLM"})]}),c.jsx("section",{className:"login-panel","aria-label":"Inicio de sesión",children:c.jsxs("div",{className:"login-panel__inner",children:[c.jsxs("div",{className:"login-panel__heading",children:[c.jsx("p",{className:"section-kicker",children:"GLM HUB"}),c.jsx("h2",{children:"Entra a tu espacio."})]}),c.jsxs("div",{className:"login-form",children:[d?c.jsx("p",{className:"form-error",id:"login-error",role:"alert",children:d}):null,c.jsxs("button",{className:"primary-button primary-button--full",type:"button",disabled:g||o,onClick:()=>void A(),children:[c.jsx(bv,{size:18,"aria-hidden":"true"}),o?"Conectando…":"Continuar con Google",o?null:c.jsx(Un,{size:18,"aria-hidden":"true"})]})]})]})})]})}function f0({user:f,view:d,onNavigate:g,onLogout:o}){return c.jsxs("aside",{className:"sidebar",children:[c.jsx("div",{className:"sidebar__brand",children:c.jsx(ei,{compact:!0})}),c.jsxs("nav",{className:"sidebar__nav","aria-label":"Navegación principal",children:[c.jsxs("button",{type:"button",className:d==="hub"?"is-active":"",onClick:()=>g("hub"),"aria-current":d==="hub"?"page":void 0,children:[c.jsx(sm,{size:20,"aria-hidden":"true"}),c.jsx("span",{children:"Aplicaciones"})]}),f.role==="admin"?c.jsxs("button",{type:"button",className:d==="admin"?"is-active":"",onClick:()=>g("admin"),"aria-current":d==="admin"?"page":void 0,children:[c.jsx(om,{size:20,"aria-hidden":"true"}),c.jsx("span",{children:"Administrar"})]}):null]}),c.jsxs("div",{className:"sidebar__account",children:[c.jsx(Em,{user:f}),c.jsxs("span",{className:"sidebar__account-copy",children:[c.jsx("strong",{children:f.name}),c.jsx("small",{children:f.role==="admin"?"Administrador":"Usuario"})]}),c.jsx("button",{type:"button",className:"icon-button","aria-label":"Cerrar sesión",onClick:o,children:c.jsx(rm,{size:18,"aria-hidden":"true"})})]})]})}function r0({user:f}){return c.jsxs("header",{className:"mobile-header",children:[c.jsx(ei,{compact:!0}),c.jsx(Em,{user:f,label:`Sesión de ${f.name}`})]})}function o0({user:f,view:d,onNavigate:g,onLogout:o}){return c.jsxs("nav",{className:"mobile-nav","aria-label":"Navegación móvil",children:[c.jsxs("button",{type:"button",className:d==="hub"?"is-active":"",onClick:()=>g("hub"),children:[c.jsx(sm,{size:20,"aria-hidden":"true"}),c.jsx("span",{children:"Inicio"})]}),f.role==="admin"?c.jsxs("button",{type:"button",className:d==="admin"?"is-active":"",onClick:()=>g("admin"),children:[c.jsx(om,{size:20,"aria-hidden":"true"}),c.jsx("span",{children:"Administrar"})]}):null,c.jsxs("button",{type:"button",onClick:o,children:[c.jsx(rm,{size:20,"aria-hidden":"true"}),c.jsx("span",{children:"Salir"})]})]})}function Am({hasAccess:f}){const d=f===null?"Verificando acceso":f?"Disponible":"Sin acceso",g=f===null?"access-indicator--checking":f?"access-indicator--granted":"access-indicator--denied";return c.jsxs("span",{className:`access-indicator ${g}`,"aria-label":d,children:[c.jsx("span",{"aria-hidden":"true"}),d]})}function d0({app:f,isFavorite:d,hasAccess:g,onActivate:o,onFavorite:O}){const A=!!Jl(f.url);return c.jsxs("article",{className:"quick-launch",children:[c.jsxs("div",{className:"quick-launch__top",children:[c.jsx(ti,{app:f,size:"regular"}),c.jsx("button",{type:"button",className:`favorite-button ${d?"is-favorite":""}`,onClick:()=>O(f.id),"aria-label":d?`Quitar ${f.name} de favoritos`:`Agregar ${f.name} a favoritos`,"aria-pressed":d,children:c.jsx(Hs,{size:18,fill:d?"currentColor":"none","aria-hidden":"true"})})]}),c.jsxs("div",{className:"quick-launch__copy",children:[c.jsxs("div",{className:"quick-launch__meta",children:[c.jsx("span",{className:"quick-launch__category",children:f.category}),c.jsx(Am,{hasAccess:g})]}),c.jsx("h3",{children:f.name}),c.jsx("p",{children:f.description})]}),c.jsxs("button",{type:"button",className:"quick-launch__action",onClick:()=>o(f),children:[c.jsx("span",{children:A?"Abrir aplicación":"Enlace pendiente"}),A?c.jsx(Un,{size:18,"aria-hidden":"true"}):c.jsx(fm,{size:17,"aria-hidden":"true"})]})]})}function m0({app:f,index:d,isFavorite:g,hasAccess:o,onActivate:O,onFavorite:A}){const C=!!Jl(f.url);return c.jsxs("article",{className:"directory-row",children:[c.jsx("span",{className:"directory-row__number","aria-hidden":"true",children:String(d+1).padStart(2,"0")}),c.jsx(ti,{app:f,size:"small"}),c.jsxs("div",{className:"directory-row__copy",children:[c.jsx("h3",{children:f.name}),c.jsx("p",{children:f.description})]}),c.jsx("span",{className:"directory-row__category",children:f.category}),c.jsx("span",{className:"directory-row__status",children:c.jsx(Am,{hasAccess:o})}),c.jsx("button",{type:"button",className:`favorite-button ${g?"is-favorite":""}`,onClick:()=>A(f.id),"aria-label":g?`Quitar ${f.name} de favoritos`:`Agregar ${f.name} a favoritos`,"aria-pressed":g,children:c.jsx(Hs,{size:18,fill:g?"currentColor":"none","aria-hidden":"true"})}),c.jsxs("button",{type:"button",className:"directory-row__open",onClick:()=>O(f),children:[c.jsx("span",{children:C?"Abrir":"Ver estado"}),C?c.jsx(Un,{size:17,"aria-hidden":"true"}):c.jsx(cm,{size:17,"aria-hidden":"true"})]})]})}function h0({search:f,favoritesOnly:d,onClear:g}){return c.jsxs("div",{className:"empty-state",children:[c.jsx("span",{className:"empty-state__mark","aria-hidden":"true",children:"0"}),c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"SIN RESULTADOS"}),c.jsx("h3",{children:d?"Aún no tienes favoritos aquí.":`No encontramos “${f||"esa aplicación"}”.`}),c.jsx("p",{children:"Prueba otro término, cambia la categoría o vuelve a ver todo el directorio."}),c.jsx("button",{type:"button",className:"text-button",onClick:g,children:"Limpiar filtros"})]})]})}function y0({apps:f,onSubmit:d}){const g=H.useRef(null),[o,O]=H.useState("Todas"),[A,C]=H.useState(""),[Z,q]=H.useState(!1),E=H.useMemo(()=>[...f].filter(V=>V.visibility==="published").sort((V,P)=>Cs.compare(V.name,P.name)),[f]),Y=H.useMemo(()=>o==="Todas"?E:E.filter(V=>V.category===o),[o,E]);H.useEffect(()=>{A&&!Y.some(V=>V.id===A)&&C("")},[A,Y]),H.useEffect(()=>{if(!Z)return;const V=P=>{P.preventDefault(),P.returnValue=""};return window.addEventListener("beforeunload",V),()=>window.removeEventListener("beforeunload",V)},[Z]);const B=()=>{var V;O("Todas"),C(""),(V=g.current)==null||V.showModal()},$=()=>{var V;Z||(V=g.current)==null||V.close()},de=async V=>{var K;V.preventDefault();const P=E.find(le=>le.id===A);if(!(!P||Z)){q(!0);try{await d(P)&&((K=g.current)==null||K.close(),O("Todas"),C(""))}finally{q(!1)}}};return c.jsxs("section",{className:"access-request-bridge","aria-label":"Solicitud de acceso a aplicaciones",children:[c.jsx("div",{className:"access-request-bridge__number","aria-hidden":"true",children:"?"}),c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"SOLICITUD DE ACCESO"}),c.jsx("h2",{children:"¿No tienes acceso a una aplicación?"}),c.jsx("p",{children:"Selecciona el portal que necesitas y envía la solicitud al equipo responsable."})]}),c.jsxs("button",{type:"button",className:"secondary-button",onClick:B,children:["Solicitar acceso aquí",c.jsx(Un,{size:18,"aria-hidden":"true"})]}),c.jsxs("dialog",{className:"access-request-dialog",ref:g,onCancel:V=>{Z&&V.preventDefault()},children:[c.jsx("button",{type:"button",className:"access-request-dialog__close",onClick:$,"aria-label":"Cerrar",children:c.jsx(kl,{size:19,"aria-hidden":"true"})}),c.jsx("p",{className:"section-kicker",children:"GLM HUB"}),c.jsx("h2",{children:"Solicitar acceso"}),c.jsx("p",{className:"access-request-dialog__intro",children:"Elige el área y la aplicación. El catálogo se actualiza automáticamente con los portales publicados."}),c.jsxs("form",{onSubmit:V=>void de(V),children:[c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"access-request-area",children:["Área",c.jsx(Kl,{})]}),c.jsxs("select",{id:"access-request-area",value:o,onChange:V=>O(V.target.value),disabled:Z,required:!0,children:[c.jsx("option",{value:"Todas",children:"Todas"}),c.jsx("option",{value:"Administración",children:"Administración"}),c.jsx("option",{value:"Recursos Humanos",children:"Recursos Humanos"}),c.jsx("option",{value:"CDC",children:"CDC"})]})]}),c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"access-request-app",children:["Aplicación",c.jsx(Kl,{})]}),c.jsxs("select",{id:"access-request-app",value:A,onChange:V=>C(V.target.value),disabled:Z||Y.length===0,required:!0,children:[c.jsx("option",{value:"",children:Y.length===0?"No hay aplicaciones publicadas en esta área":"Selecciona una aplicación"}),Y.map(V=>c.jsx("option",{value:V.id,children:V.name},V.id))]})]}),c.jsxs("div",{className:"access-request-dialog__actions",children:[c.jsx("button",{type:"button",className:"secondary-button secondary-button--quiet",onClick:$,disabled:Z,children:"Cancelar"}),c.jsx("button",{type:"submit",className:"primary-button",disabled:!A||Z,children:Z?"Enviando…":"Enviar solicitud"})]})]})]}),Z?c.jsx("div",{className:"generation-overlay",role:"dialog","aria-modal":"true","aria-labelledby":"access-request-loading-title",children:c.jsxs("div",{className:"generation-overlay__card",children:[c.jsx("span",{className:"generation-spinner","aria-hidden":"true"}),c.jsx("p",{className:"section-kicker",children:"GLM HUB"}),c.jsx("h2",{id:"access-request-loading-title",children:"Enviando la solicitud…"}),c.jsx("p",{children:"Estamos registrando la solicitud y enviando el correo a las personas responsables."})]})}):null]})}function v0(f,d,g=!1){return d<=(g?5:7)?Array.from({length:d},(O,A)=>A+1):g?f<=3?[1,2,3,"ellipsis-end",d]:f>=d-2?[1,"ellipsis-start",d-2,d-1,d]:[1,"ellipsis-start",f,"ellipsis-end",d]:f<=4?[1,2,3,4,5,"ellipsis-end",d]:f>=d-3?[1,"ellipsis-start",d-4,d-3,d-2,d-1,d]:[1,"ellipsis-start",f-1,f,f+1,"ellipsis-end",d]}function Rs({currentPage:f,totalPages:d,onPageChange:g,compact:o=!1,label:O}){if(d<=1)return null;const A=v0(f,d,o);return c.jsxs("nav",{className:`pagination ${o?"pagination--compact":""}`,"aria-label":O,children:[c.jsx("button",{type:"button",className:"pagination__arrow",disabled:f<=1,onClick:()=>g(f-1),"aria-label":"Página anterior",children:c.jsx(dv,{size:16,"aria-hidden":"true"})}),c.jsx("div",{className:"pagination__pages",children:A.map(C=>typeof C=="number"?c.jsx("button",{type:"button",className:`pagination__page ${C===f?"is-active":""}`,onClick:()=>g(C),"aria-label":`Ir a la página ${C}`,"aria-current":C===f?"page":void 0,children:C},C):c.jsx("span",{className:"pagination__ellipsis","aria-hidden":"true",children:"…"},C))}),c.jsx("button",{type:"button",className:"pagination__arrow",disabled:f>=d,onClick:()=>g(f+1),"aria-label":"Página siguiente",children:c.jsx(cm,{size:16,"aria-hidden":"true"})})]})}const Fu=10,xs=6,Os=12;function g0({user:f,data:d,accessByApp:g,accessReady:o,storageWarning:O,onActivate:A,onFavorite:C,onAdmin:Z,onRequestAccess:q}){const[E,Y]=H.useState({Todas:"",Administración:"","Recursos Humanos":"",CDC:""}),[B,$]=H.useState("Todas"),[de,V]=H.useState(!1),[P,K]=H.useState(1),[le,Me]=H.useState(1),ge=E[B]??"",Ae=r=>{Y(y=>({...y,[B]:r}))},Oe=H.useDeferredValue(ge),ze=i0(),F=f.role==="admin",k=d.favoritesByUser[f.id]??[],me=d.recentByUser[f.id]??[],Ne=H.useMemo(()=>new Set(k),[k]),he=H.useMemo(()=>[...d.apps.filter(r=>r.visibility==="published"&&!!r.iconDataUrl.trim())].sort((r,y)=>Cs.compare(r.name,y.name)),[d.apps]),je=H.useMemo(()=>{const r=Ca(Oe);return he.filter(y=>B!=="Todas"&&y.category!==B||de&&!Ne.has(y.id)?!1:r?Ca(y.name).includes(r):!0).sort((y,j)=>Number(Ne.has(j.id))-Number(Ne.has(y.id))||Cs.compare(y.name,j.name))},[B,Oe,Ne,de,he]),we=Math.max(1,Math.ceil(je.length/Fu));H.useEffect(()=>{K(1)},[ge,B,de]),H.useEffect(()=>{P>we&&K(we)},[P,we]);const tt=H.useMemo(()=>{const r=(P-1)*Fu;return je.slice(r,r+Fu)},[P,je]),Ke=r=>{K(Math.min(Math.max(r,1),we)),window.requestAnimationFrame(()=>{var y;(y=document.getElementById("directory-title"))==null||y.scrollIntoView({behavior:"smooth",block:"start"})})},z=H.useMemo(()=>{const r=new Map(he.map(G=>[G.id,G])),y=[],j=new Set,M=G=>{const X=r.get(G);!X||j.has(G)||(y.push(X),j.add(G))};if(k.forEach(M),y.length<3){for(const G of me)if(M(G),y.length>=3)break}if(y.length<3){for(const G of he)if(M(G.id),y.length>=3)break}return y},[k,he,me]),R=Math.max(1,Math.ceil(z.length/xs)),U=H.useMemo(()=>{const r=(le-1)*xs;return z.slice(r,r+xs)},[z,le]);H.useEffect(()=>{le>R&&Me(R)},[le,R]),H.useEffect(()=>{Me(1)},[d.favoritesByUser,d.recentByUser,f.id]);const L=r=>{Me(Math.min(Math.max(r,1),R)),window.requestAnimationFrame(()=>{var y;(y=document.getElementById("quick-title"))==null||y.scrollIntoView({behavior:"smooth",block:"start"})})},N=()=>{Y({Todas:"",Administración:"","Recursos Humanos":"",CDC:""}),$("Todas"),V(!1)};return c.jsxs("main",{className:"page-content hub-page",children:[c.jsxs("header",{className:"page-header",children:[c.jsxs("div",{children:[c.jsxs("p",{className:"page-header__meta",children:[u0(),", ",f.name]}),c.jsx("h1",{children:"Tu mesa de trabajo."})]}),c.jsx("div",{className:"page-header__aside",children:c.jsx("span",{children:ze})})]}),O?c.jsx("div",{className:"inline-alert",role:"status",children:O}):null,c.jsxs("section",{className:"search-stage","aria-labelledby":"search-title",children:[c.jsx("div",{className:"search-stage__copy",children:c.jsx("h2",{id:"search-title",children:"¿Qué necesitas abrir?"})}),c.jsxs("div",{className:"hub-search",children:[c.jsx(Ds,{size:21,"aria-hidden":"true"}),c.jsx("label",{className:"sr-only",htmlFor:"hub-search-input",children:"Buscar por nombre de proyecto"}),c.jsx("input",{id:"hub-search-input",type:"search",value:ge,onChange:r=>Ae(r.target.value),placeholder:"Buscar por nombre de proyecto…"}),ge?c.jsx("button",{type:"button",onClick:()=>Ae(""),"aria-label":"Limpiar búsqueda",children:c.jsx(kl,{size:18,"aria-hidden":"true"})}):null]})]}),c.jsxs("section",{className:"quick-section","aria-labelledby":"quick-title",children:[c.jsxs("div",{className:"section-heading",children:[c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"FIJADAS PARA TI"}),c.jsx("h2",{id:"quick-title",children:"Acceso rápido"})]}),c.jsx("p",{children:"Abre lo que más usas sin detener el ritmo."})]}),c.jsx("div",{className:"quick-grid",children:U.map(r=>c.jsx(d0,{app:r,isFavorite:Ne.has(r.id),hasAccess:o?g[r.id]===!0:null,onActivate:A,onFavorite:C},r.id))}),c.jsx(Rs,{currentPage:le,totalPages:R,onPageChange:L,compact:R>5,label:"Paginación de acceso rápido"})]}),c.jsxs("section",{className:"directory-section","aria-labelledby":"directory-title",children:[c.jsxs("div",{className:"section-heading section-heading--directory",children:[c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"DIRECTORIO GLM"}),c.jsx("h2",{id:"directory-title",children:"Todas las aplicaciones"})]}),c.jsxs("div",{className:"directory-count","aria-live":"polite",children:[c.jsx("strong",{children:je.length}),c.jsx("span",{children:je.length===1?"resultado":"resultados"})]})]}),c.jsxs("div",{className:"filter-bar","aria-label":"Filtros del directorio",children:[c.jsx("div",{className:"category-filters",children:["Todas",...dm].map(r=>c.jsx("button",{type:"button",className:B===r?"is-active":"",onClick:()=>$(r),"aria-pressed":B===r,children:r},r))}),c.jsxs("div",{className:"filter-bar__search",children:[c.jsx(Ds,{size:16,"aria-hidden":"true"}),c.jsx("label",{className:"sr-only",htmlFor:"directory-search-input",children:`Buscar por nombre de proyecto en ${B}`}),c.jsx("input",{id:"directory-search-input",type:"search",value:ge,onChange:r=>Ae(r.target.value),placeholder:B==="Todas"?"Buscar por nombre de proyecto…":`Buscar en ${B}…`}),ge?c.jsx("button",{type:"button",onClick:()=>Ae(""),"aria-label":"Limpiar búsqueda",children:c.jsx(kl,{size:15,"aria-hidden":"true"})}):null]}),c.jsxs("button",{type:"button",className:`favorites-filter ${de?"is-active":""}`,onClick:()=>V(r=>!r),"aria-pressed":de,children:[c.jsx(Hs,{size:17,fill:de?"currentColor":"none","aria-hidden":"true"}),"Solo favoritos"]})]}),je.length>0?c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"directory-list",children:tt.map((r,y)=>c.jsx(m0,{app:r,index:(P-1)*Fu+y,isFavorite:Ne.has(r.id),hasAccess:o?g[r.id]===!0:null,onActivate:A,onFavorite:C},r.id))}),c.jsx(Rs,{currentPage:P,totalPages:we,onPageChange:Ke,compact:we>5,label:"Paginación de aplicaciones"})]}):c.jsx(h0,{search:ge,favoritesOnly:de,onClear:N})]}),F?c.jsxs("section",{className:"admin-bridge","aria-label":"Acceso al panel de administración",children:[c.jsx("div",{className:"admin-bridge__number","aria-hidden":"true",children:"+"}),c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"CONTROL DEL CATÁLOGO"}),c.jsx("h2",{children:"¿Falta una herramienta?"}),c.jsx("p",{children:"Adjunta su ícono, pega el enlace y publícala para todo el equipo."})]}),c.jsxs("button",{type:"button",className:"secondary-button",onClick:Z,children:["Administrar aplicaciones",c.jsx(Un,{size:18,"aria-hidden":"true"})]})]}):c.jsx(y0,{apps:he,onSubmit:q})]})}function p0({apps:f,selectedId:d,onSelect:g,onDelete:o}){const[O,A]=H.useState(""),[C,Z]=H.useState(1),[q,E]=H.useState(null),Y=H.useRef(null),B=H.useMemo(()=>{const K=Ca(O);return K?f.filter(le=>Ca(`${le.name} ${le.category}`).includes(K)):f},[f,O]),$=Math.max(1,Math.ceil(B.length/Os));H.useEffect(()=>{Z(1)},[O]),H.useEffect(()=>{C>$&&Z($)},[C,$]);const de=H.useMemo(()=>{const K=(C-1)*Os;return B.slice(K,K+Os)},[B,C]),V=(K,le)=>{var Me;K.stopPropagation(),E(le),(Me=Y.current)==null||Me.showModal()},P=async()=>{var K;q&&await o(q.id)&&((K=Y.current)==null||K.close(),E(null))};return c.jsxs("aside",{className:"admin-list","aria-label":"Aplicaciones configuradas",children:[c.jsxs("div",{className:"admin-list__top",children:[c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"CATÁLOGO"}),c.jsxs("h2",{children:[f.length," ",f.length===1?"aplicación":"aplicaciones"]})]}),c.jsx("button",{type:"button",className:"icon-button icon-button--accent",onClick:()=>g(null),"aria-label":"Crear aplicación",children:c.jsx(Id,{size:20,"aria-hidden":"true"})})]}),c.jsxs("div",{className:"admin-list__search",children:[c.jsx(Ds,{size:17,"aria-hidden":"true"}),c.jsx("label",{htmlFor:"admin-search",className:"sr-only",children:"Buscar en el catálogo"}),c.jsx("input",{id:"admin-search",type:"search",value:O,onChange:K=>A(K.target.value),placeholder:"Buscar…"}),O?c.jsx("button",{type:"button",onClick:()=>A(""),"aria-label":"Limpiar búsqueda",children:c.jsx(kl,{size:15,"aria-hidden":"true"})}):null]}),c.jsxs("div",{className:"admin-list__items",children:[C===1?c.jsxs("button",{type:"button",className:`admin-list__new ${d===null?"is-active":""}`,onClick:()=>g(null),children:[c.jsx("span",{className:"admin-list__new-icon",children:c.jsx(Id,{size:18,"aria-hidden":"true"})}),c.jsxs("span",{className:"admin-list__item-info",children:[c.jsx("strong",{children:"Nueva aplicación"}),c.jsx("small",{children:"Crear y publicar"})]})]}):null,de.map(K=>c.jsxs("div",{className:`admin-list__item-row ${d===K.id?"is-active":""}`,onClick:()=>g(K.id),role:"button",tabIndex:0,onKeyDown:le=>{(le.key==="Enter"||le.key===" ")&&g(K.id)},children:[c.jsx(ti,{app:K,size:"small"}),c.jsxs("span",{className:"admin-list__item-info",children:[c.jsx("strong",{children:K.name}),c.jsx("small",{children:K.category})]}),c.jsxs("div",{className:"admin-list__item-actions",children:[c.jsx("span",{className:`mini-status ${K.visibility==="hidden"?"is-hidden":""}`,children:K.visibility==="hidden"?"Oculta":Jl(K.url)?"Lista":"Pendiente"}),c.jsx("button",{type:"button",className:"admin-list__delete-icon",onClick:le=>V(le,K),title:`Eliminar ${K.name}`,"aria-label":`Eliminar ${K.name}`,children:c.jsx(Iu,{size:15,"aria-hidden":"true"})})]})]},K.id))]}),c.jsx(Rs,{currentPage:C,totalPages:$,onPageChange:Z,compact:!0,label:"Paginación del catálogo de administración"}),c.jsxs("dialog",{className:"confirm-dialog",ref:Y,children:[c.jsx("button",{type:"button",className:"confirm-dialog__close",onClick:()=>{var K;return(K=Y.current)==null?void 0:K.close()},"aria-label":"Cerrar",children:c.jsx(kl,{size:19,"aria-hidden":"true"})}),c.jsx("span",{className:"confirm-dialog__icon",children:c.jsx(Iu,{size:22,"aria-hidden":"true"})}),c.jsx("p",{className:"section-kicker",children:"ACCIÓN PERMANENTE"}),c.jsxs("h2",{children:["Eliminar ",q==null?void 0:q.name]}),c.jsx("p",{children:"El portal y sus accesos se eliminarán permanentemente. Esta acción no se puede deshacer."}),c.jsxs("div",{className:"confirm-dialog__actions",children:[c.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{var K;return(K=Y.current)==null?void 0:K.close()},children:"Conservar"}),c.jsx("button",{type:"button",className:"danger-button danger-button--solid",onClick:P,children:"Sí, eliminar"})]})]})]})}function Kl(){return c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"required-mark","aria-hidden":"true",children:"*"}),c.jsx("span",{className:"sr-only",children:" obligatorio"})]})}function b0({app:f,allApps:d,onSave:g,onDelete:o,onCancel:O}){const[A,C]=H.useState(()=>f?Dn(f):Wu()),[Z,q]=H.useState(()=>JSON.stringify(f?Dn(f):Wu())),[E,Y]=H.useState({}),[B,$]=H.useState(""),[de,V]=H.useState(!1),[P,K]=H.useState(!1),[le,Me]=H.useState(!1),[ge,Ae]=H.useState(!1),Oe=H.useRef(null),ze=H.useRef(null),F=JSON.stringify(A)!==Z,k=de||P||le,me=A.name.trim().length>=2&&!!A.description.trim();H.useEffect(()=>{const N=f?Dn(f):Wu();C(N),q(JSON.stringify(N)),Y({}),$(""),window.requestAnimationFrame(()=>{var r;return(r=ze.current)==null?void 0:r.focus()})},[f]),H.useEffect(()=>{if(!F&&!P)return;const N=r=>r.preventDefault();return window.addEventListener("beforeunload",N),()=>window.removeEventListener("beforeunload",N)},[P,F]),H.useEffect(()=>{if(!P)return;const N=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=N}},[P]);const Ne={id:(f==null?void 0:f.id)??"preview",name:A.name||"Nombre de la aplicación",description:A.description||"Una descripción breve ayuda al equipo a reconocerla.",category:A.category,keywords:[],url:A.url,mark:bm(A.name||"GLM"),accent:(f==null?void 0:f.accent)??"#4F758B",iconDataUrl:A.iconDataUrl,visibility:A.visibility,createdAt:(f==null?void 0:f.createdAt)??new Date().toISOString(),updatedAt:new Date().toISOString()},he=(N,r)=>{C(y=>({...y,[N]:r})),Y(y=>({...y,[N]:""}))},je=async N=>{if(!(!N||P)){$(""),V(!0);try{const r=await Sm(N);he("iconDataUrl",r)}catch(r){$(r instanceof Error?r.message:"No pudimos procesar el ícono.")}finally{V(!1)}}},we=N=>{var r;je((r=N.target.files)==null?void 0:r[0]),N.target.value=""},tt=N=>{var r;N.preventDefault(),Ae(!1),je((r=N.dataTransfer.files)==null?void 0:r[0])},Ke=async()=>{var G;const N=A.name.trim(),r=A.description.trim(),y={};if(N.length<2&&(y.name="Completa el nombre antes de generar el ícono."),r||(y.description="Completa la descripción antes de generar el ícono."),Object.keys(y).length>0){Y(X=>({...X,...y}));return}if(!tm){$("Falta configurar VITE_ICON_GENERATOR_WEBHOOK_URL en el archivo .env.");return}$(""),K(!0);const j=new AbortController,M=window.setTimeout(()=>j.abort(),18e4);try{const{data:{session:X}}=await Ue.auth.getSession();if(!(X!=null&&X.access_token))throw new Error("La sesión venció. Inicia sesión nuevamente.");const ae=await fetch(tm,{method:"POST",mode:"cors",cache:"no-store",credentials:"omit",signal:j.signal,headers:{Accept:"image/*, application/json;q=0.9, text/plain;q=0.8","Content-Type":"text/plain;charset=UTF-8"},body:JSON.stringify({accessToken:X.access_token,name:N,description:r})}),Je=((G=ae.headers.get("content-type"))==null?void 0:G.toLocaleLowerCase("en-US"))??"";if(ae.ok&&Je.startsWith("image/")){const tl=await _m(await ae.blob());he("iconDataUrl",tl);return}const _e=await ae.text();let Pe=null;if(_e)try{Pe=JSON.parse(_e)}catch{Pe=null}if(ae.ok&&(Pe!=null&&Pe.ok)&&Pe.imageDataUrl){const tl=await c0(Pe.imageDataUrl);he("iconDataUrl",tl);return}throw new Error((Pe==null?void 0:Pe.error)||(_e&&_e.length<500?_e:"")||`El flujo no pudo generar el ícono (HTTP ${ae.status}).`)}catch(X){X instanceof DOMException&&X.name==="AbortError"?$("La generación tardó más de 3 minutos y fue cancelada. Intenta nuevamente."):X instanceof TypeError&&/failed to fetch/i.test(X.message)?$("No se pudo conectar con el webhook de n8n. Verifica que el workflow esté activo y publicado."):$(X instanceof Error?X.message:"No pudimos generar el ícono con IA.")}finally{window.clearTimeout(M),K(!1)}},z=()=>{const N={},r=A.name.trim(),y=A.description.trim();(r.length<2||r.length>60)&&(N.name="Escribe un nombre de 2 a 60 caracteres."),y||(N.description="Añade una descripción breve."),y.length>180&&(N.description="La descripción no puede superar 180 caracteres."),A.iconDataUrl||(N.iconDataUrl="Adjunta o genera un ícono antes de publicar la aplicación."),A.url.trim()&&!Jl(A.url)&&(N.url="Usa una URL https:// válida, sin credenciales embebidas.");const j=Ca(r);return d.some(G=>G.id!==(f==null?void 0:f.id)&&Ca(G.name)===j)&&(N.name="Ya existe una aplicación con ese nombre."),Y(N),Object.keys(N).length===0},R=async N=>{if(N.preventDefault(),k||!z()){window.requestAnimationFrame(()=>{var r,y;return(y=(r=document.querySelector(".field-error"))==null?void 0:r.focus)==null?void 0:y.call(r)});return}Me(!0);try{const r=await g({...A,name:A.name.trim(),description:A.description.trim(),url:A.url.trim()},(f==null?void 0:f.id)??null);if(r){const y=Dn(r);C(y),q(JSON.stringify(y))}}finally{Me(!1)}},U=()=>{if(!P&&(!F||window.confirm("Hay cambios sin guardar. ¿Quieres descartarlos?"))){const N=f?Dn(f):Wu();C(N),q(JSON.stringify(N)),Y({}),$(""),O()}},L=async()=>{var N;!f||k||await o(f.id)&&((N=Oe.current)==null||N.close(),O())};return c.jsxs("section",{className:"app-editor","aria-labelledby":"editor-title","aria-busy":k,children:[c.jsxs("div",{className:"app-editor__heading",children:[c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:f?"EDITAR APLICACIÓN":"NUEVA APLICACIÓN"}),c.jsx("h2",{id:"editor-title",children:f?f.name:"Configura el nuevo acceso"})]}),F?c.jsxs("span",{className:"dirty-state is-dirty",children:[c.jsx("span",{"aria-hidden":"true"}),"Cambios sin guardar"]}):null]}),c.jsxs("div",{className:"editor-layout",children:[c.jsxs("form",{className:"editor-form",onSubmit:R,noValidate:!0,children:[c.jsxs("section",{className:"editor-form__section","aria-labelledby":"identity-section-title",children:[c.jsx("h3",{className:"editor-form__section-title",id:"identity-section-title",children:"Identidad"}),c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"app-name",children:["Nombre de la aplicación",f?null:c.jsx(Kl,{})]}),c.jsx("input",{ref:ze,id:"app-name",value:A.name,onChange:N=>he("name",N.target.value),placeholder:"Ej. Media Planner",maxLength:60,"aria-invalid":!!E.name,"aria-describedby":E.name?"app-name-error":void 0,disabled:k,required:!0}),c.jsxs("div",{className:"field-meta",children:[E.name?c.jsx("span",{id:"app-name-error",className:"field-error",role:"alert",tabIndex:-1,children:E.name}):c.jsx("span",{children:"Como el equipo la reconoce."}),c.jsxs("span",{children:[A.name.length,"/60"]})]})]}),c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"app-description",children:["Descripción breve",f?null:c.jsx(Kl,{})]}),c.jsx("textarea",{id:"app-description",value:A.description,onChange:N=>he("description",N.target.value),placeholder:"Explica qué resuelve en una sola frase.",maxLength:180,rows:3,"aria-invalid":!!E.description,"aria-describedby":E.description?"app-description-error":void 0,disabled:k,required:!0}),c.jsxs("div",{className:`field-meta ${E.description?"":"field-meta--counter-only"}`,children:[E.description?c.jsx("span",{id:"app-description-error",className:"field-error",role:"alert",tabIndex:-1,children:E.description}):null,c.jsxs("span",{children:[A.description.length,"/180"]})]})]}),c.jsxs("div",{className:"form-split",children:[c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"app-category",children:["Categoría",f?null:c.jsx(Kl,{})]}),c.jsx("select",{id:"app-category",value:A.category,onChange:N=>he("category",N.target.value),disabled:k,required:!0,children:dm.map(N=>c.jsx("option",{children:N},N))})]}),c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"app-visibility",children:["Visibilidad",f?null:c.jsx(Kl,{})]}),c.jsxs("select",{id:"app-visibility",value:A.visibility,onChange:N=>he("visibility",N.target.value),disabled:k,required:!0,children:[c.jsx("option",{value:"published",children:"Publicada"}),c.jsx("option",{value:"hidden",children:"Oculta"})]})]})]})]}),c.jsxs("section",{className:"editor-form__section","aria-labelledby":"icon-section-title",children:[c.jsxs("h3",{className:"editor-form__section-title",id:"icon-section-title",children:["Ícono",f?null:c.jsx(Kl,{})]}),c.jsxs("div",{className:"icon-config",children:[c.jsxs("label",{className:`icon-dropzone ${ge?"is-dragging":""}`,onDragEnter:N=>{N.preventDefault(),k||Ae(!0)},onDragOver:N=>N.preventDefault(),onDragLeave:()=>Ae(!1),onDrop:tt,children:[c.jsx("input",{type:"file",accept:"image/png,image/jpeg,image/webp",onChange:we,disabled:k}),c.jsx("span",{className:"icon-dropzone__symbol",children:c.jsx(Mv,{size:20,"aria-hidden":"true"})}),c.jsxs("span",{children:[c.jsx("strong",{children:de?"Procesando…":"Adjuntar ícono"}),c.jsx("small",{children:"PNG, JPG o WebP · máximo 1 MB"})]})]}),A.iconDataUrl?c.jsx("button",{type:"button",className:"text-button text-button--danger",disabled:k,onClick:()=>he("iconDataUrl",""),children:"Quitar ícono"}):null]}),c.jsx("div",{className:"ai-icon-actions",children:c.jsxs("button",{type:"button",className:"secondary-button ai-icon-button",onClick:()=>void Ke(),disabled:!me||k,title:me?void 0:"Completa el nombre y la descripción breve.",children:[c.jsx(Tv,{size:18,"aria-hidden":"true"}),"Generar ícono con IA"]})}),B?c.jsx("p",{className:"field-error field-error--standalone",role:"alert",children:B}):null,E.iconDataUrl?c.jsx("p",{className:"field-error field-error--standalone",role:"alert",tabIndex:-1,children:E.iconDataUrl}):null]}),c.jsxs("section",{className:"editor-form__section","aria-labelledby":"destination-section-title",children:[c.jsx("h3",{className:"editor-form__section-title",id:"destination-section-title",children:"Destino"}),c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"app-url",children:["Enlace de la aplicación ",c.jsx("span",{children:"Opcional"})]}),c.jsxs("div",{className:"url-field",children:[c.jsx(fm,{size:18,"aria-hidden":"true"}),c.jsx("input",{id:"app-url",type:"url",value:A.url,onChange:N=>he("url",N.target.value),placeholder:"https://aplicacion.com","aria-invalid":!!E.url,"aria-describedby":E.url?"app-url-error":"app-url-help",disabled:k})]}),E.url?c.jsx("span",{id:"app-url-error",className:"field-error",role:"alert",tabIndex:-1,children:E.url}):c.jsx("span",{id:"app-url-help",className:"field-help",children:"Si lo dejas vacío, aparecerá como “Enlace pendiente”."})]})]}),c.jsxs("div",{className:"editor-actions",children:[c.jsxs("button",{type:"submit",className:"primary-button",disabled:k,children:[c.jsx(Av,{size:18,"aria-hidden":"true"}),le?"Guardando…":f?"Guardar cambios":"Publicar aplicación"]}),c.jsx("button",{type:"button",className:"secondary-button secondary-button--quiet",disabled:k,onClick:U,children:"Cancelar"}),f?c.jsxs("button",{type:"button",className:"danger-button",disabled:k,onClick:()=>{var N;return(N=Oe.current)==null?void 0:N.showModal()},children:[c.jsx(Iu,{size:17,"aria-hidden":"true"}),"Eliminar"]}):null]})]}),c.jsxs("aside",{className:"app-preview","aria-label":"Vista previa de la aplicación",children:[c.jsxs("div",{className:"app-preview__label",children:[c.jsx("span",{children:"VISTA PREVIA"}),c.jsx("span",{className:"app-preview__rule"})]}),c.jsxs("div",{className:"preview-card",children:[c.jsx(ti,{app:Ne,size:"large",showPlaceholder:!f&&!A.iconDataUrl}),c.jsx("span",{className:"quick-launch__category",children:Ne.category}),c.jsx("h3",{children:Ne.name}),c.jsx("p",{children:Ne.description}),c.jsxs("span",{className:`availability ${Jl(Ne.url)?"availability--ready":"availability--pending"}`,children:[c.jsx("span",{"aria-hidden":"true"}),Jl(Ne.url)?"Lista para abrir":"Enlace pendiente"]})]}),c.jsx("p",{className:"app-preview__note",children:"Así aparecerá en el Hub para el equipo."})]})]}),c.jsxs("dialog",{className:"confirm-dialog",ref:Oe,children:[c.jsx("button",{type:"button",className:"confirm-dialog__close",onClick:()=>{var N;return(N=Oe.current)==null?void 0:N.close()},"aria-label":"Cerrar",children:c.jsx(kl,{size:19,"aria-hidden":"true"})}),c.jsx("span",{className:"confirm-dialog__icon",children:c.jsx(Iu,{size:22,"aria-hidden":"true"})}),c.jsx("p",{className:"section-kicker",children:"ACCIÓN PERMANENTE"}),c.jsxs("h2",{children:["Eliminar ",f==null?void 0:f.name]}),c.jsx("p",{children:"La aplicación se quitará del catálogo compartido para todo el equipo. Esta acción no se puede deshacer."}),c.jsxs("div",{className:"confirm-dialog__actions",children:[c.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{var N;return(N=Oe.current)==null?void 0:N.close()},children:"Conservar"}),c.jsx("button",{type:"button",className:"danger-button danger-button--solid",onClick:()=>void L(),children:"Sí, eliminar"})]})]}),P?c.jsx("div",{className:"generation-overlay",role:"dialog","aria-modal":"true","aria-labelledby":"generation-title",children:c.jsxs("div",{className:"generation-overlay__card",children:[c.jsx("span",{className:"generation-spinner","aria-hidden":"true"}),c.jsx("p",{className:"section-kicker",children:"GEMINI"}),c.jsx("h2",{id:"generation-title",children:"Generando el ícono…"}),c.jsx("p",{children:"Estamos creando una propuesta a partir del nombre y la descripción de la aplicación."})]})}):null]})}function S0({data:f,onSave:d,onDelete:g,onBack:o}){const[O,A]=H.useState(null),C=O?f.apps.find(E=>E.id===O)??null:null,Z=async(E,Y)=>{const B=await d(E,Y);return B&&A(B.id),B},q=async E=>{const Y=await g(E);return Y&&A(null),Y};return c.jsxs("main",{className:"page-content admin-page",children:[c.jsx("header",{className:"page-header admin-header",children:c.jsxs("div",{children:[c.jsxs("button",{type:"button",className:"back-button",onClick:o,children:[c.jsx(fv,{size:17,"aria-hidden":"true"}),"Volver al Hub"]}),c.jsx("p",{className:"page-header__meta",children:"PANEL DE ADMINISTRACIÓN"}),c.jsx("h1",{children:"Controla el catálogo."})]})}),c.jsxs("div",{className:"admin-workspace",children:[c.jsx(p0,{apps:f.apps,selectedId:O,onSelect:A,onDelete:q}),c.jsx(b0,{app:C,allApps:f.apps,onSave:Z,onDelete:q,onCancel:()=>A(null)})]})]})}function _0(){return c.jsxs("div",{className:"catalog-loading",role:"status","aria-live":"polite",children:[c.jsx(ei,{compact:!0}),c.jsx("span",{className:"generation-spinner","aria-hidden":"true"}),c.jsx("p",{children:"Cargando aplicaciones…"})]})}function E0(){const[f]=H.useState(()=>Qv()),[d,g]=H.useState({schemaVersion:1,apps:[],favoritesByUser:{},recentByUser:{},updatedAt:new Date().toISOString()}),[o,O]=H.useState(null),[A,C]=H.useState(()=>"hub"),[Z,q]=H.useState([]),[E,Y]=H.useState(!1),[B,$]=H.useState(!1),[de,V]=H.useState(""),[P,K]=H.useState({}),[le,Me]=H.useState(!1),[ge,Ae]=H.useState(""),Oe=H.useRef(0),ze=H.useRef(null),F=H.useCallback(U=>{q(L=>L.filter(N=>N.id!==U))},[]),k=H.useCallback((U,L,N)=>{const r=crypto.randomUUID();q(y=>[...y.slice(-2),{id:r,kind:U,title:L,detail:N}]),window.setTimeout(()=>{q(y=>y.filter(j=>j.id!==r))},5200)},[]);H.useEffect(()=>{let U=!0;const L=y=>{const j=(y.expires_at??Math.floor(Date.now()/1e3)+3600)*1e3;O(M=>!M||M.user.id!==y.user.id||M.expiresAt===j?M:{...M,expiresAt:j})},N=async y=>{const j=++Oe.current;if(!y){if(!U||j!==Oe.current)return;ze.current=null,O(null),$(!1),Y(!0);return}if(ze.current===y.user.id){if(!U||j!==Oe.current)return;L(y),Y(!0);return}const M=await n0(y);if(!U||j!==Oe.current)return;if(!M.session){ze.current=null,O(null),Ae(M.error),$(!1),Y(!0),await Ue.auth.signOut({scope:"local"});return}const G=M.session;ze.current=G.user.id,Ae(""),O(G),Y(!0),window.location.hash!=="#hub"&&window.location.hash!=="#admin"&&window.history.replaceState(null,"",Ns("#hub"))};Ue.auth.getSession().then(({data:{session:y}})=>{N(y)});const{data:{subscription:r}}=Ue.auth.onAuthStateChange((y,j)=>{if(y!=="INITIAL_SESSION"){if(y==="TOKEN_REFRESHED"&&j&&ze.current===j.user.id){L(j);return}window.setTimeout(()=>{N(j)},0)}});return()=>{U=!1,r.unsubscribe()}},[]);const me=(o==null?void 0:o.user)??null;H.useEffect(()=>{if(!me)return;let U=!0,L=!1;const N=async()=>{if(!L){L=!0;try{const j=await Bs();if(!U)return;g(M=>({...M,apps:j,updatedAt:new Date().toISOString()}))}catch(j){console.error("No se pudo refrescar el catálogo compartido:",j)}finally{L=!1}}};(async()=>{$(!1),V("");try{const j=await Iv(me,f.data.apps),M=await kv(me.id);if(!U)return;g(M),$(!0),j>0&&k("success","Catálogo compartido activado",`${j} ${j===1?"aplicación fue migrada":"aplicaciones fueron migradas"} a Supabase.`)}catch(j){if(!U)return;const M=j instanceof Error?j.message:"No se pudo cargar el catálogo compartido.";V(M),$(!0),k("error","No se pudo cargar el catálogo",M)}})();const y=Pv(()=>void N());return()=>{U=!1,y()}},[me==null?void 0:me.id,me==null?void 0:me.role,f.data.apps,k]),H.useEffect(()=>{if(!me){K({}),Me(!1);return}let U=!0,L=!1;const N=async()=>{if(!L){L=!0;try{const j=await Vv();if(!U)return;K(j),Me(!0)}catch(j){console.warn("No se pudo verificar el acceso a las aplicaciones:",j),U&&Me(!1)}finally{L=!1}}};N();const r=window.setInterval(()=>void N(),6e4),y=()=>void N();return window.addEventListener("focus",y),()=>{U=!1,window.clearInterval(r),window.removeEventListener("focus",y)}},[me==null?void 0:me.id]),H.useEffect(()=>{const U=()=>{const L=window.location.hash==="#admin"?"admin":"hub";if(L==="admin"&&(o==null?void 0:o.user.role)!=="admin"){C("hub"),window.history.replaceState(null,"","#hub");return}C(L)};return U(),window.addEventListener("hashchange",U),()=>window.removeEventListener("hashchange",U)},[o==null?void 0:o.user.role]);const Ne=U=>{if(U==="admin"&&(o==null?void 0:o.user.role)!=="admin"){k("error","Acceso restringido","Necesitas permisos de administrador para abrir este panel.");return}C(U),window.history.replaceState(null,"",Ns(U==="admin"?"#admin":"#hub")),window.scrollTo({top:0,behavior:"smooth"})},he=async U=>{if(!o)return;const L=o.user.id,N=d.favoritesByUser[L]??[],r=N.includes(U),y=r?N.filter(j=>j!==U):[U,...N];g(j=>({...j,favoritesByUser:{...j.favoritesByUser,[L]:y},updatedAt:new Date().toISOString()}));try{await Wv(L,U,!r),k("success",r?"Quitada de favoritos":"Agregada a favoritos")}catch(j){g(M=>({...M,favoritesByUser:{...M.favoritesByUser,[L]:N}})),k("error","No se actualizó el favorito",j instanceof Error?j.message:void 0)}},je=U=>{if(!o)return;const L=Jl(U.url);if(!L){k("info","Enlace pendiente",`${U.name} todavía no tiene un enlace configurado.`);return}const N=window.open(L,"_blank","noopener,noreferrer");N&&(N.opener=null);const r=o.user.id,y=d.recentByUser[r]??[],j=[U.id,...y.filter(M=>M!==U.id)].slice(0,30);g(M=>({...M,recentByUser:{...M.recentByUser,[r]:j},updatedAt:new Date().toISOString()})),Fv(r,U.id).catch(M=>console.warn("No se guardó el acceso reciente:",M))},we=async(U,L)=>{if(!o||o.user.role!=="admin")return null;const N=L?d.apps.find(r=>r.id===L)??null:null;try{const r=await pm(U,N,o.user.id);return g(y=>({...y,apps:N?y.apps.map(j=>j.id===r.id?r:j):[r,...y.apps],updatedAt:new Date().toISOString()})),k("success",N?"Cambios guardados":"Aplicación publicada",`${r.name} ya está disponible en el catálogo compartido.`),r}catch(r){return k("error","No se guardó la aplicación",r instanceof Error?r.message:void 0),null}},tt=async U=>{if(!o||o.user.role!=="admin")return!1;const L=d.apps.find(N=>N.id===U);if(!L)return!1;try{await $v(L);const N=r=>Object.fromEntries(Object.entries(r).map(([y,j])=>[y,j.filter(M=>M!==U)]));return g(r=>({...r,apps:r.apps.filter(y=>y.id!==U),favoritesByUser:N(r.favoritesByUser),recentByUser:N(r.recentByUser),updatedAt:new Date().toISOString()})),k("success","Aplicación eliminada",`${L.name} salió del catálogo compartido.`),!0}catch(N){return k("error","No se eliminó la aplicación",N instanceof Error?N.message:void 0),!1}},Ke=async U=>{if(!o||o.user.role==="admin")return!1;if(!lm)return k("error","No se pudo enviar la solicitud","La función de solicitudes no está disponible en este momento."),!1;const L=new AbortController,N=window.setTimeout(()=>L.abort(),12e4);try{const{data:{session:r}}=await Ue.auth.getSession();if(!(r!=null&&r.access_token))throw new Error("La sesión venció. Cierra sesión e inicia nuevamente.");const y=await fetch(lm,{method:"POST",mode:"cors",cache:"no-store",credentials:"omit",signal:L.signal,headers:{Accept:"application/json, text/plain;q=0.9","Content-Type":"text/plain;charset=UTF-8"},body:JSON.stringify({accessToken:r.access_token,appId:U.id})}),j=await y.text();let M=null;if(j)try{M=JSON.parse(j)}catch{M=null}if(!y.ok||!(M!=null&&M.ok)){const G=String((M==null?void 0:M.error)||"").toLowerCase();let X="No pudimos enviar la solicitud en este momento. Intenta nuevamente.";throw G.includes("pendiente")?X="Ya tienes una solicitud pendiente para esta aplicación.":G.includes("sesión")||y.status===401?X="Tu sesión venció. Cierra sesión e inicia nuevamente.":G.includes("ya no está publicada")||G.includes("no está disponible")?X="La aplicación seleccionada ya no está disponible.":(G.includes("no está autorizado")||y.status===403)&&(X="Tu cuenta no está habilitada para enviar esta solicitud."),console.error("Error interno al enviar la solicitud de acceso",{status:y.status,responseText:j}),new Error(X)}return k("success","Solicitud enviada",M.message||`La solicitud para ${U.name} fue enviada correctamente.`),!0}catch(r){return r instanceof DOMException&&r.name==="AbortError"?k("error","La solicitud tardó demasiado","Intenta nuevamente en unos minutos."):r instanceof TypeError&&/failed to fetch/i.test(r.message)?(console.error("No se pudo contactar el servicio de solicitudes",r),k("error","No se pudo enviar la solicitud","Intenta nuevamente en unos minutos.")):k("error","No se pudo enviar la solicitud",r instanceof Error?r.message:"Intenta nuevamente en unos minutos."),!1}finally{window.clearTimeout(N)}},z=async()=>{Ae("");const{error:U}=await Ue.auth.signInWithOAuth({provider:"google",options:{redirectTo:t0(),queryParams:{hd:"gomezleemarketing.com",prompt:"select_account"}}});U&&(console.error("No se pudo iniciar el acceso con Google:",U),Ae("No pudimos abrir el acceso con Google. Intenta nuevamente."))},R=async()=>{const{error:U}=await Ue.auth.signOut();if(U){k("error","No se pudo cerrar la sesión",U.message);return}O(null),$(!1),K({}),Me(!1),C("hub"),window.history.replaceState(null,"",Ns())};return!E||!o?c.jsxs(c.Fragment,{children:[c.jsx(s0,{onLogin:z,error:ge,disabled:!E}),c.jsx(Ts,{messages:Z,onDismiss:F})]}):B?c.jsxs("div",{className:"app-shell",children:[c.jsx(f0,{user:o.user,view:A,onNavigate:Ne,onLogout:R}),c.jsx(r0,{user:o.user}),A==="admin"&&o.user.role==="admin"?c.jsx(S0,{data:d,onSave:we,onDelete:tt,onBack:()=>Ne("hub")}):c.jsx(g0,{user:o.user,data:d,accessByApp:P,accessReady:le,storageWarning:de,onActivate:je,onFavorite:U=>void he(U),onAdmin:()=>Ne("admin"),onRequestAccess:Ke}),c.jsx(o0,{user:o.user,view:A,onNavigate:Ne,onLogout:R}),c.jsx(Ts,{messages:Z,onDismiss:F})]}):c.jsxs(c.Fragment,{children:[c.jsx(_0,{}),c.jsx(Ts,{messages:Z,onDismiss:F})]})}const um="https://dbit.digitalcompass.agency/storage/v1/object/public/public-assets/GLM.png?v=glm-hub-20260722-v3";function A0(){document.querySelectorAll('link[rel="icon"], link[rel="shortcut icon"]').forEach(g=>{g.remove()});const f=document.createElement("link");f.rel="icon",f.type="image/png",f.sizes="512x512",f.href=um,document.head.appendChild(f);const d=document.createElement("link");d.rel="shortcut icon",d.type="image/png",d.href=um,document.head.appendChild(d)}A0();lv.createRoot(document.getElementById("root")).render(c.jsx(H.StrictMode,{children:c.jsx(E0,{})})); + */const Uv=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],kl=Ve("x",Uv),Cv="2026-07-16T12:00:00.000Z",dm=["Administración","Recursos Humanos","CDC"],Rv=[];function qv(){return{schemaVersion:1,apps:Rv.map(f=>({...f,keywords:[...f.keywords]})),favoritesByUser:{},recentByUser:{},updatedAt:Cv}}const On="glm-hub:state:v1";function Hv(f){if(!f||typeof f!="object")return!1;const d=f;return typeof d.id=="string"&&typeof d.name=="string"&&typeof d.description=="string"&&typeof d.category=="string"&&Array.isArray(d.keywords)&&typeof d.url=="string"&&typeof d.mark=="string"&&typeof d.accent=="string"&&typeof d.iconDataUrl=="string"&&(d.visibility==="published"||d.visibility==="hidden")}function Bv(f){if(!f||typeof f!="object")return!1;const d=f;return d.schemaVersion===1&&Array.isArray(d.apps)&&d.apps.every(Hv)&&!!d.favoritesByUser&&typeof d.favoritesByUser=="object"&&!!d.recentByUser&&typeof d.recentByUser=="object"}function Pd(f,d){return Object.fromEntries(Object.entries(f).map(([g,o])=>[g,o.filter(O=>d.has(O))]))}function Lv(f){switch(f){case"Administración":case"Recursos Humanos":case"CDC":return f;case"Recursos":return"Recursos Humanos";case"Clientes":case"Creatividad":return"CDC";case"Operaciones":case"Analítica":default:return"Administración"}}function Gv(f){let d=!1;const g=f.apps.map(o=>{const O=Lv(o.category);return O===o.category?o:(d=!0,{...o,category:O})});return d?{...f,apps:g,updatedAt:new Date().toISOString()}:f}function Yv(f){const d=f.apps.filter(o=>!!o.iconDataUrl.trim());if(d.length===f.apps.length)return f;const g=new Set(d.map(o=>o.id));return{...f,apps:d,favoritesByUser:Pd(f.favoritesByUser,g),recentByUser:Pd(f.recentByUser,g),updatedAt:new Date().toISOString()}}function Qv(){const f=qv();try{const d=localStorage.getItem(On);if(!d)return localStorage.setItem(On,JSON.stringify(f)),{data:f,warning:""};const g=JSON.parse(d);if(!Bv(g))return localStorage.setItem(`${On}:backup`,d),localStorage.setItem(On,JSON.stringify(f)),{data:f,warning:"Los datos locales no eran válidos. Restauramos el catálogo inicial."};const o=Gv(g),O=Yv(o);return O!==g&&localStorage.setItem(On,JSON.stringify(O)),{data:O,warning:""}}catch{return{data:f,warning:"No pudimos leer los datos guardados. Estás viendo el catálogo inicial."}}}function Ca(f){return f.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLocaleLowerCase("es-DO").trim()}function Jl(f){if(!f.trim())return null;try{const d=new URL(f.trim()),g=d.protocol==="http:"&&(d.hostname==="localhost"||d.hostname==="127.0.0.1");return d.protocol!=="https:"&&!g||d.username||d.password?null:d.toString()}catch{return null}}const mm="https://dbit.digitalcompass.agency".trim(),hm="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE".trim(),ym=globalThis.supabase;if(!mm||!hm)throw new Error("Faltan VITE_SUPABASE_URL o VITE_SUPABASE_ANON_KEY en el archivo .env.");if(!ym)throw new Error("No se pudo cargar la librería de Supabase.");const Ue=ym.createClient(mm,hm,{auth:{autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"pkce"}}),Mn="glm_hub_apps",Ms="glm_hub_favorites",vm="glm_hub_recent_apps",Pu="glm-hub-icons",em="glm-hub:supabase-catalog-migrated:v1";function gm(f){return{id:f.id,name:f.name,description:f.description,category:f.category,keywords:[],url:f.url??"",mark:"",accent:"#4F758B",iconDataUrl:f.icon_url,visibility:f.visibility,createdAt:f.created_at,updatedAt:f.updated_at}}function wv(f){const d=/^data:(image\/(?:png|jpeg|webp));base64,([a-zA-Z0-9+/=]+)$/.exec(f);if(!d)throw new Error("El ícono no tiene un formato válido.");const g=d[1],o=atob(d[2]),O=new Uint8Array(o.length);for(let A=0;A[o.app_id,o.has_access===!0]))}async function Bs(){const{data:f,error:d}=await Ue.from(Mn).select("id,name,description,category,url,icon_url,visibility,created_at,updated_at").order("name",{ascending:!0});if(d)throw new Error(`No se pudo cargar el catálogo compartido: ${d.message}`);return(f??[]).map(gm)}async function Kv(f){const{data:d,error:g}=await Ue.from(Ms).select("app_id,created_at").eq("user_id",f).order("created_at",{ascending:!1});if(g)throw new Error(`No se pudieron cargar los favoritos: ${g.message}`);return(d??[]).map(o=>o.app_id)}async function Jv(f){const{data:d,error:g}=await Ue.from(vm).select("app_id,last_opened_at").eq("user_id",f).order("last_opened_at",{ascending:!1}).limit(30);if(g)throw new Error(`No se pudieron cargar los accesos recientes: ${g.message}`);return(d??[]).map(o=>o.app_id)}async function kv(f){const[d,g,o]=await Promise.all([Bs(),Kv(f),Jv(f)]);return{schemaVersion:1,apps:d,favoritesByUser:{[f]:g},recentByUser:{[f]:o},updatedAt:new Date().toISOString()}}async function pm(f,d,g){const o=(d==null?void 0:d.id)??crypto.randomUUID(),O=await Zv(o,f.iconDataUrl),A={name:f.name,description:f.description,category:f.category,url:f.url||null,icon_url:O,visibility:f.visibility,updated_by:g};let C;if(d?C=await Ue.from(Mn).update(A).eq("id",o).select("id,name,description,category,url,icon_url,visibility,created_at,updated_at").single():C=await Ue.from(Mn).insert({id:o,...A,created_by:g}).select("id,name,description,category,url,icon_url,visibility,created_at,updated_at").single(),C.error)throw O!==f.iconDataUrl&&await Us(O),new Error(`No se pudo guardar la aplicación: ${C.error.message}`);return d&&d.iconDataUrl!==O&&await Us(d.iconDataUrl),gm(C.data)}async function $v(f){const{error:d}=await Ue.from(Mn).delete().eq("id",f.id);if(d)throw new Error(`No se pudo eliminar la aplicación: ${d.message}`);await Us(f.iconDataUrl)}async function Wv(f,d,g){if(g){const{error:O}=await Ue.from(Ms).upsert({user_id:f,app_id:d},{onConflict:"user_id,app_id"});if(O)throw new Error(`No se pudo guardar el favorito: ${O.message}`);return}const{error:o}=await Ue.from(Ms).delete().eq("user_id",f).eq("app_id",d);if(o)throw new Error(`No se pudo quitar el favorito: ${o.message}`)}async function Fv(f,d){const{error:g}=await Ue.from(vm).upsert({user_id:f,app_id:d,last_opened_at:new Date().toISOString()},{onConflict:"user_id,app_id"});if(g)throw new Error(`No se pudo registrar el acceso reciente: ${g.message}`)}async function Iv(f,d){if(f.role!=="admin"||d.length===0||localStorage.getItem(em)==="completed")return 0;const g=await Bs(),o=new Set(g.map(C=>C.name.trim().toLocaleLowerCase("es-DO"))),O=d.filter(C=>{const Z=C.name.trim().toLocaleLowerCase("es-DO");return!!C.iconDataUrl.trim()&&!o.has(Z)});let A=0;for(const C of O)await pm({name:C.name,description:C.description,category:C.category,url:C.url,iconDataUrl:C.iconDataUrl,visibility:C.visibility},null,f.id),o.add(C.name.trim().toLocaleLowerCase("es-DO")),A+=1;return localStorage.setItem(em,"completed"),A}function Pv(f){const d=Ue.channel("glm-hub-apps-shared").on("postgres_changes",{event:"*",schema:"public",table:Mn},()=>f()).subscribe();return()=>{Ue.removeChannel(d)}}const Cs=new Intl.Collator("es-DO",{sensitivity:"base"}),e0="@gomezleemarketing.com",tm="https://agenteit.digitalcompass.agency/webhook/glm-hub-generar-icono".trim()??"",lm="https://agenteit.digitalcompass.agency/webhook/glm-hub-solicitar-acceso".trim()??"";function Ns(f=""){return`/${f}`}function t0(){return new URL("/",window.location.origin).toString()}function l0(f,d){var C,Z;const g=f.user.user_metadata??{},o=g.full_name??g.name,A=(((C=f.user.email)==null?void 0:C.trim().toLocaleLowerCase("en-US"))??"").split("@")[0]||"Usuario GLM";return((Z=d==null?void 0:d.full_name)==null?void 0:Z.trim())||(typeof o=="string"?o.trim():"")||A}function a0(f){const d=f.user.user_metadata??{},g=d.avatar_url??d.picture;if(typeof g!="string"||!g.trim())return"";try{const o=new URL(g.trim());return o.protocol==="https:"?o.toString():""}catch{return""}}async function n0(f){var C;const d=((C=f.user.email)==null?void 0:C.trim().toLocaleLowerCase("en-US"))??"";if(!d.endsWith(e0))return{session:null,error:"Debes continuar con una cuenta corporativa @gomezleemarketing.com."};const{data:g,error:o}=await Ue.from("glm_hub_authorized_users").select("email, full_name, role, is_active").eq("email",d).limit(1),A=(g??[])[0]??null;return o?(console.error("No se pudo validar el perfil de acceso:",o),{session:null,error:"No pudimos completar el inicio de sesión. Intenta nuevamente."}):A&&!A.is_active?{session:null,error:"Tu acceso al GLM Hub está deshabilitado. Contacta a IT Support."}:{session:{user:{id:f.user.id,name:l0(f,A),email:d,role:(A==null?void 0:A.role)==="admin"?"admin":"member",avatarUrl:a0(f)},expiresAt:(f.expires_at??Math.floor(Date.now()/1e3)+3600)*1e3},error:""}}function bm(f){const d=f.trim().split(/\s+/).filter(Boolean);if(d.length===0)return"GL";if(d.length===1)return d[0].slice(0,2).toLocaleUpperCase("es-DO");const g=d.length>=4?d.length-2:d.length-1;return`${d[0][0]}${d[g][0]}`.toLocaleUpperCase("es-DO")}function u0(){const f=new Date().getHours();return f<12?"Buenos días":f<19?"Buenas tardes":"Buenas noches"}function am(f){return f&&f[0].toLocaleUpperCase("es-DO")+f.slice(1)}function nm(f){const d=new Intl.DateTimeFormat("es-DO",{weekday:"long",day:"numeric",month:"long",year:"numeric"}).formatToParts(f),g=o=>{var O;return((O=d.find(A=>A.type===o))==null?void 0:O.value)??""};return`${am(g("weekday"))} ${g("day")} de ${am(g("month"))} de ${g("year")}`}function i0(){const[f,d]=H.useState(()=>nm(new Date));return H.useEffect(()=>{const g=()=>d(nm(new Date));g();const o=window.setInterval(g,6e4);return()=>window.clearInterval(o)},[]),f}function Wu(){return{name:"",description:"",category:"Administración",url:"",iconDataUrl:"",visibility:"published"}}function Dn(f){return{name:f.name,description:f.description,category:f.category,url:f.url,iconDataUrl:f.iconDataUrl,visibility:f.visibility}}async function Sm(f,d=!0){if(!new Set(["image/png","image/jpeg","image/webp"]).has(f.type))throw new Error("Usa un ícono en formato PNG, JPG o WebP.");if(d&&f.size>1024*1024)throw new Error("El ícono debe pesar menos de 1 MB.");const o=await createImageBitmap(f);if(o.width>4096||o.height>4096)throw o.close(),new Error("El ícono no puede superar 4096 × 4096 px.");const O=document.createElement("canvas");O.width=192,O.height=192;const A=O.getContext("2d");if(!A)throw o.close(),new Error("Este navegador no pudo procesar el ícono.");const C=Math.min(192/o.width,192/o.height),Z=o.width*C,q=o.height*C,E=(192-Z)/2,Y=(192-q)/2;return A.clearRect(0,0,192,192),A.drawImage(o,E,Y,Z,q),o.close(),O.toDataURL("image/webp",.9)}async function c0(f){if(!f.startsWith("data:image/"))throw new Error("La IA no devolvió una imagen válida.");const g=await(await fetch(f)).blob();return _m(g)}async function _m(f){const d=f.type||"image/png";if(!d.startsWith("image/"))throw new Error("El flujo de IA no devolvió un archivo de imagen.");const g=d==="image/jpeg"?"jpg":d.split("/")[1]||"png",o=new File([f],`icono-generado.${g}`,{type:d});return Sm(o,!1)}function ei({compact:f=!1}){return c.jsx("img",{className:f?"brand-logo brand-logo--compact":"brand-logo",src:"/glm-logo.png",alt:"GomezLee Marketing",width:"350",height:"109"})}function ti({app:f,size:d="regular",showPlaceholder:g=!1}){const[o,O]=H.useState(!1),A=!!f.iconDataUrl&&!o;return c.jsx("span",{className:`app-mark app-mark--${d}`,"aria-hidden":"true",children:A?c.jsx("img",{src:f.iconDataUrl,alt:"",onError:()=>O(!0)}):g?c.jsx(vv,{className:"app-mark__placeholder",size:36,strokeWidth:1.5}):null})}function Em({user:f,label:d}){const[g,o]=H.useState(!1),O=!!f.avatarUrl&&!g;return c.jsx("span",{className:"avatar","aria-label":d,"aria-hidden":d?void 0:!0,children:O?c.jsx("img",{src:f.avatarUrl,alt:"",referrerPolicy:"no-referrer",onError:()=>o(!0)}):bm(f.name)})}function xs({messages:f,onDismiss:d}){return c.jsx("div",{className:"toast-stack","aria-live":"polite","aria-relevant":"additions",children:f.map(g=>c.jsxs("div",{className:`toast toast--${g.kind}`,children:[c.jsx("span",{className:"toast__signal","aria-hidden":"true"}),c.jsxs("div",{children:[c.jsx("strong",{children:g.title}),g.detail?c.jsx("p",{children:g.detail}):null]}),c.jsx("button",{type:"button",className:"icon-button icon-button--quiet","aria-label":"Cerrar mensaje",onClick:()=>d(g.id),children:c.jsx(kl,{size:18,"aria-hidden":"true"})})]},g.id))})}function s0({onLogin:f,error:d,disabled:g=!1}){const[o,O]=H.useState(!1),A=async()=>{O(!0),await f(),O(!1)};return c.jsxs("main",{className:"login-shell",children:[c.jsxs("section",{className:"login-story","aria-labelledby":"login-headline",children:[c.jsx("div",{className:"login-story__topline",children:c.jsx(ei,{})}),c.jsxs("div",{className:"login-story__content",children:[c.jsx("p",{className:"eyebrow",children:"ACCESO INTERNO"}),c.jsxs("h1",{id:"login-headline",children:["Todo el trabajo",c.jsx("span",{children:"de GLM, a un clic."})]}),c.jsx("p",{className:"login-story__lede",children:"Tu punto de partida para abrir herramientas, encontrar recursos y mantener el día en movimiento."})]}),c.jsx("div",{className:"login-story__type","aria-hidden":"true",children:"GLM"})]}),c.jsx("section",{className:"login-panel","aria-label":"Inicio de sesión",children:c.jsxs("div",{className:"login-panel__inner",children:[c.jsxs("div",{className:"login-panel__heading",children:[c.jsx("p",{className:"section-kicker",children:"GLM HUB"}),c.jsx("h2",{children:"Entra a tu espacio."})]}),c.jsxs("div",{className:"login-form",children:[d?c.jsx("p",{className:"form-error",id:"login-error",role:"alert",children:d}):null,c.jsxs("button",{className:"primary-button primary-button--full",type:"button",disabled:g||o,onClick:()=>void A(),children:[c.jsx(bv,{size:18,"aria-hidden":"true"}),o?"Conectando…":"Continuar con Google",o?null:c.jsx(Un,{size:18,"aria-hidden":"true"})]})]})]})})]})}function f0({user:f,view:d,onNavigate:g,onLogout:o}){return c.jsxs("aside",{className:"sidebar",children:[c.jsx("div",{className:"sidebar__brand",children:c.jsx(ei,{compact:!0})}),c.jsxs("nav",{className:"sidebar__nav","aria-label":"Navegación principal",children:[c.jsxs("button",{type:"button",className:d==="hub"?"is-active":"",onClick:()=>g("hub"),"aria-current":d==="hub"?"page":void 0,children:[c.jsx(sm,{size:20,"aria-hidden":"true"}),c.jsx("span",{children:"Aplicaciones"})]}),f.role==="admin"?c.jsxs("button",{type:"button",className:d==="admin"?"is-active":"",onClick:()=>g("admin"),"aria-current":d==="admin"?"page":void 0,children:[c.jsx(om,{size:20,"aria-hidden":"true"}),c.jsx("span",{children:"Administrar"})]}):null]}),c.jsxs("div",{className:"sidebar__account",children:[c.jsx(Em,{user:f}),c.jsxs("span",{className:"sidebar__account-copy",children:[c.jsx("strong",{children:f.name}),c.jsx("small",{children:f.role==="admin"?"Administrador":"Usuario"})]}),c.jsx("button",{type:"button",className:"icon-button","aria-label":"Cerrar sesión",onClick:o,children:c.jsx(rm,{size:18,"aria-hidden":"true"})})]})]})}function r0({user:f}){return c.jsxs("header",{className:"mobile-header",children:[c.jsx(ei,{compact:!0}),c.jsx(Em,{user:f,label:`Sesión de ${f.name}`})]})}function o0({user:f,view:d,onNavigate:g,onLogout:o}){return c.jsxs("nav",{className:"mobile-nav","aria-label":"Navegación móvil",children:[c.jsxs("button",{type:"button",className:d==="hub"?"is-active":"",onClick:()=>g("hub"),children:[c.jsx(sm,{size:20,"aria-hidden":"true"}),c.jsx("span",{children:"Inicio"})]}),f.role==="admin"?c.jsxs("button",{type:"button",className:d==="admin"?"is-active":"",onClick:()=>g("admin"),children:[c.jsx(om,{size:20,"aria-hidden":"true"}),c.jsx("span",{children:"Administrar"})]}):null,c.jsxs("button",{type:"button",onClick:o,children:[c.jsx(rm,{size:20,"aria-hidden":"true"}),c.jsx("span",{children:"Salir"})]})]})}function Am({hasAccess:f}){const d=f===null?"Verificando acceso":f?"Con acceso":"Sin acceso",g=f===null?"access-indicator--checking":f?"access-indicator--granted":"access-indicator--denied";return c.jsxs("span",{className:`access-indicator ${g}`,"aria-label":d,children:[c.jsx("span",{"aria-hidden":"true"}),d]})}function d0({app:f,isFavorite:d,hasAccess:g,onActivate:o,onFavorite:O}){const A=!!Jl(f.url);return c.jsxs("article",{className:"quick-launch",children:[c.jsxs("div",{className:"quick-launch__top",children:[c.jsx(ti,{app:f,size:"regular"}),c.jsx("button",{type:"button",className:`favorite-button ${d?"is-favorite":""}`,onClick:()=>O(f.id),"aria-label":d?`Quitar ${f.name} de favoritos`:`Agregar ${f.name} a favoritos`,"aria-pressed":d,children:c.jsx(Hs,{size:18,fill:d?"currentColor":"none","aria-hidden":"true"})})]}),c.jsxs("div",{className:"quick-launch__copy",children:[c.jsxs("div",{className:"quick-launch__meta",children:[c.jsx("span",{className:"quick-launch__category",children:f.category}),c.jsx(Am,{hasAccess:g})]}),c.jsx("h3",{children:f.name}),c.jsx("p",{children:f.description})]}),c.jsxs("button",{type:"button",className:"quick-launch__action",onClick:()=>o(f),children:[c.jsx("span",{children:A?"Abrir aplicación":"Enlace pendiente"}),A?c.jsx(Un,{size:18,"aria-hidden":"true"}):c.jsx(fm,{size:17,"aria-hidden":"true"})]})]})}function m0({app:f,index:d,isFavorite:g,hasAccess:o,onActivate:O,onFavorite:A}){const C=!!Jl(f.url);return c.jsxs("article",{className:"directory-row",children:[c.jsx("span",{className:"directory-row__number","aria-hidden":"true",children:String(d+1).padStart(2,"0")}),c.jsx(ti,{app:f,size:"small"}),c.jsxs("div",{className:"directory-row__copy",children:[c.jsx("h3",{children:f.name}),c.jsx("p",{children:f.description}),c.jsxs("span",{className:`availability ${C?"availability--ready":"availability--pending"}`,children:[c.jsx("span",{"aria-hidden":"true"}),C?"Disponible":"Enlace pendiente"]})]}),c.jsx("span",{className:"directory-row__category",children:f.category}),c.jsx("span",{className:"directory-row__status",children:c.jsx(Am,{hasAccess:o})}),c.jsx("button",{type:"button",className:`favorite-button ${g?"is-favorite":""}`,onClick:()=>A(f.id),"aria-label":g?`Quitar ${f.name} de favoritos`:`Agregar ${f.name} a favoritos`,"aria-pressed":g,children:c.jsx(Hs,{size:18,fill:g?"currentColor":"none","aria-hidden":"true"})}),c.jsxs("button",{type:"button",className:"directory-row__open",onClick:()=>O(f),children:[c.jsx("span",{children:C?"Abrir":"Ver estado"}),C?c.jsx(Un,{size:17,"aria-hidden":"true"}):c.jsx(cm,{size:17,"aria-hidden":"true"})]})]})}function h0({search:f,favoritesOnly:d,onClear:g}){return c.jsxs("div",{className:"empty-state",children:[c.jsx("span",{className:"empty-state__mark","aria-hidden":"true",children:"0"}),c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"SIN RESULTADOS"}),c.jsx("h3",{children:d?"Aún no tienes favoritos aquí.":`No encontramos “${f||"esa aplicación"}”.`}),c.jsx("p",{children:"Prueba otro término, cambia la categoría o vuelve a ver todo el directorio."}),c.jsx("button",{type:"button",className:"text-button",onClick:g,children:"Limpiar filtros"})]})]})}function y0({apps:f,onSubmit:d}){const g=H.useRef(null),[o,O]=H.useState("Todas"),[A,C]=H.useState(""),[Z,q]=H.useState(!1),E=H.useMemo(()=>[...f].filter(V=>V.visibility==="published").sort((V,P)=>Cs.compare(V.name,P.name)),[f]),Y=H.useMemo(()=>o==="Todas"?E:E.filter(V=>V.category===o),[o,E]);H.useEffect(()=>{A&&!Y.some(V=>V.id===A)&&C("")},[A,Y]),H.useEffect(()=>{if(!Z)return;const V=P=>{P.preventDefault(),P.returnValue=""};return window.addEventListener("beforeunload",V),()=>window.removeEventListener("beforeunload",V)},[Z]);const B=()=>{var V;O("Todas"),C(""),(V=g.current)==null||V.showModal()},$=()=>{var V;Z||(V=g.current)==null||V.close()},de=async V=>{var K;V.preventDefault();const P=E.find(le=>le.id===A);if(!(!P||Z)){q(!0);try{await d(P)&&((K=g.current)==null||K.close(),O("Todas"),C(""))}finally{q(!1)}}};return c.jsxs("section",{className:"access-request-bridge","aria-label":"Solicitud de acceso a aplicaciones",children:[c.jsx("div",{className:"access-request-bridge__number","aria-hidden":"true",children:"?"}),c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"SOLICITUD DE ACCESO"}),c.jsx("h2",{children:"¿No tienes acceso a una aplicación?"}),c.jsx("p",{children:"Selecciona el portal que necesitas y envía la solicitud al equipo responsable."})]}),c.jsxs("button",{type:"button",className:"secondary-button",onClick:B,children:["Solicitar acceso aquí",c.jsx(Un,{size:18,"aria-hidden":"true"})]}),c.jsxs("dialog",{className:"access-request-dialog",ref:g,onCancel:V=>{Z&&V.preventDefault()},children:[c.jsx("button",{type:"button",className:"access-request-dialog__close",onClick:$,"aria-label":"Cerrar",children:c.jsx(kl,{size:19,"aria-hidden":"true"})}),c.jsx("p",{className:"section-kicker",children:"GLM HUB"}),c.jsx("h2",{children:"Solicitar acceso"}),c.jsx("p",{className:"access-request-dialog__intro",children:"Elige el área y la aplicación. El catálogo se actualiza automáticamente con los portales publicados."}),c.jsxs("form",{onSubmit:V=>void de(V),children:[c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"access-request-area",children:["Área",c.jsx(Kl,{})]}),c.jsxs("select",{id:"access-request-area",value:o,onChange:V=>O(V.target.value),disabled:Z,required:!0,children:[c.jsx("option",{value:"Todas",children:"Todas"}),c.jsx("option",{value:"Administración",children:"Administración"}),c.jsx("option",{value:"Recursos Humanos",children:"Recursos Humanos"}),c.jsx("option",{value:"CDC",children:"CDC"})]})]}),c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"access-request-app",children:["Aplicación",c.jsx(Kl,{})]}),c.jsxs("select",{id:"access-request-app",value:A,onChange:V=>C(V.target.value),disabled:Z||Y.length===0,required:!0,children:[c.jsx("option",{value:"",children:Y.length===0?"No hay aplicaciones publicadas en esta área":"Selecciona una aplicación"}),Y.map(V=>c.jsx("option",{value:V.id,children:V.name},V.id))]})]}),c.jsxs("div",{className:"access-request-dialog__actions",children:[c.jsx("button",{type:"button",className:"secondary-button secondary-button--quiet",onClick:$,disabled:Z,children:"Cancelar"}),c.jsx("button",{type:"submit",className:"primary-button",disabled:!A||Z,children:Z?"Enviando…":"Enviar solicitud"})]})]})]}),Z?c.jsx("div",{className:"generation-overlay",role:"dialog","aria-modal":"true","aria-labelledby":"access-request-loading-title",children:c.jsxs("div",{className:"generation-overlay__card",children:[c.jsx("span",{className:"generation-spinner","aria-hidden":"true"}),c.jsx("p",{className:"section-kicker",children:"GLM HUB"}),c.jsx("h2",{id:"access-request-loading-title",children:"Enviando la solicitud…"}),c.jsx("p",{children:"Estamos registrando la solicitud y enviando el correo a las personas responsables."})]})}):null]})}function v0(f,d,g=!1){return d<=(g?5:7)?Array.from({length:d},(O,A)=>A+1):g?f<=3?[1,2,3,"ellipsis-end",d]:f>=d-2?[1,"ellipsis-start",d-2,d-1,d]:[1,"ellipsis-start",f,"ellipsis-end",d]:f<=4?[1,2,3,4,5,"ellipsis-end",d]:f>=d-3?[1,"ellipsis-start",d-4,d-3,d-2,d-1,d]:[1,"ellipsis-start",f-1,f,f+1,"ellipsis-end",d]}function Rs({currentPage:f,totalPages:d,onPageChange:g,compact:o=!1,label:O}){if(d<=1)return null;const A=v0(f,d,o);return c.jsxs("nav",{className:`pagination ${o?"pagination--compact":""}`,"aria-label":O,children:[c.jsx("button",{type:"button",className:"pagination__arrow",disabled:f<=1,onClick:()=>g(f-1),"aria-label":"Página anterior",children:c.jsx(dv,{size:16,"aria-hidden":"true"})}),c.jsx("div",{className:"pagination__pages",children:A.map(C=>typeof C=="number"?c.jsx("button",{type:"button",className:`pagination__page ${C===f?"is-active":""}`,onClick:()=>g(C),"aria-label":`Ir a la página ${C}`,"aria-current":C===f?"page":void 0,children:C},C):c.jsx("span",{className:"pagination__ellipsis","aria-hidden":"true",children:"…"},C))}),c.jsx("button",{type:"button",className:"pagination__arrow",disabled:f>=d,onClick:()=>g(f+1),"aria-label":"Página siguiente",children:c.jsx(cm,{size:16,"aria-hidden":"true"})})]})}const Fu=10,Ts=6,Os=12;function g0({user:f,data:d,accessByApp:g,accessReady:o,storageWarning:O,onActivate:A,onFavorite:C,onAdmin:Z,onRequestAccess:q}){const[E,Y]=H.useState({Todas:"",Administración:"","Recursos Humanos":"",CDC:""}),[B,$]=H.useState("Todas"),[de,V]=H.useState(!1),[P,K]=H.useState(1),[le,Me]=H.useState(1),ge=E[B]??"",Ae=r=>{Y(y=>({...y,[B]:r}))},Oe=H.useDeferredValue(ge),ze=i0(),F=f.role==="admin",k=d.favoritesByUser[f.id]??[],me=d.recentByUser[f.id]??[],Ne=H.useMemo(()=>new Set(k),[k]),he=H.useMemo(()=>[...d.apps.filter(r=>r.visibility==="published"&&!!r.iconDataUrl.trim())].sort((r,y)=>Cs.compare(r.name,y.name)),[d.apps]),je=H.useMemo(()=>{const r=Ca(Oe);return he.filter(y=>B!=="Todas"&&y.category!==B||de&&!Ne.has(y.id)?!1:r?Ca(y.name).includes(r):!0).sort((y,j)=>Number(Ne.has(j.id))-Number(Ne.has(y.id))||Cs.compare(y.name,j.name))},[B,Oe,Ne,de,he]),we=Math.max(1,Math.ceil(je.length/Fu));H.useEffect(()=>{K(1)},[ge,B,de]),H.useEffect(()=>{P>we&&K(we)},[P,we]);const tt=H.useMemo(()=>{const r=(P-1)*Fu;return je.slice(r,r+Fu)},[P,je]),Ke=r=>{K(Math.min(Math.max(r,1),we)),window.requestAnimationFrame(()=>{var y;(y=document.getElementById("directory-title"))==null||y.scrollIntoView({behavior:"smooth",block:"start"})})},z=H.useMemo(()=>{const r=new Map(he.map(G=>[G.id,G])),y=[],j=new Set,M=G=>{const X=r.get(G);!X||j.has(G)||(y.push(X),j.add(G))};if(k.forEach(M),y.length<3){for(const G of me)if(M(G),y.length>=3)break}if(y.length<3){for(const G of he)if(M(G.id),y.length>=3)break}return y},[k,he,me]),R=Math.max(1,Math.ceil(z.length/Ts)),U=H.useMemo(()=>{const r=(le-1)*Ts;return z.slice(r,r+Ts)},[z,le]);H.useEffect(()=>{le>R&&Me(R)},[le,R]),H.useEffect(()=>{Me(1)},[d.favoritesByUser,d.recentByUser,f.id]);const L=r=>{Me(Math.min(Math.max(r,1),R)),window.requestAnimationFrame(()=>{var y;(y=document.getElementById("quick-title"))==null||y.scrollIntoView({behavior:"smooth",block:"start"})})},N=()=>{Y({Todas:"",Administración:"","Recursos Humanos":"",CDC:""}),$("Todas"),V(!1)};return c.jsxs("main",{className:"page-content hub-page",children:[c.jsxs("header",{className:"page-header",children:[c.jsxs("div",{children:[c.jsxs("p",{className:"page-header__meta",children:[u0(),", ",f.name]}),c.jsx("h1",{children:"Tu mesa de trabajo."})]}),c.jsx("div",{className:"page-header__aside",children:c.jsx("span",{children:ze})})]}),O?c.jsx("div",{className:"inline-alert",role:"status",children:O}):null,c.jsxs("section",{className:"search-stage","aria-labelledby":"search-title",children:[c.jsx("div",{className:"search-stage__copy",children:c.jsx("h2",{id:"search-title",children:"¿Qué necesitas abrir?"})}),c.jsxs("div",{className:"hub-search",children:[c.jsx(Ds,{size:21,"aria-hidden":"true"}),c.jsx("label",{className:"sr-only",htmlFor:"hub-search-input",children:"Buscar por nombre de proyecto"}),c.jsx("input",{id:"hub-search-input",type:"search",value:ge,onChange:r=>Ae(r.target.value),placeholder:"Buscar por nombre de proyecto…"}),ge?c.jsx("button",{type:"button",onClick:()=>Ae(""),"aria-label":"Limpiar búsqueda",children:c.jsx(kl,{size:18,"aria-hidden":"true"})}):null]})]}),c.jsxs("section",{className:"quick-section","aria-labelledby":"quick-title",children:[c.jsxs("div",{className:"section-heading",children:[c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"FIJADAS PARA TI"}),c.jsx("h2",{id:"quick-title",children:"Acceso rápido"})]}),c.jsx("p",{children:"Abre lo que más usas sin detener el ritmo."})]}),c.jsx("div",{className:"quick-grid",children:U.map(r=>c.jsx(d0,{app:r,isFavorite:Ne.has(r.id),hasAccess:o?g[r.id]===!0:null,onActivate:A,onFavorite:C},r.id))}),c.jsx(Rs,{currentPage:le,totalPages:R,onPageChange:L,compact:R>5,label:"Paginación de acceso rápido"})]}),c.jsxs("section",{className:"directory-section","aria-labelledby":"directory-title",children:[c.jsxs("div",{className:"section-heading section-heading--directory",children:[c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"DIRECTORIO GLM"}),c.jsx("h2",{id:"directory-title",children:"Todas las aplicaciones"})]}),c.jsxs("div",{className:"directory-count","aria-live":"polite",children:[c.jsx("strong",{children:je.length}),c.jsx("span",{children:je.length===1?"resultado":"resultados"})]})]}),c.jsxs("div",{className:"filter-bar","aria-label":"Filtros del directorio",children:[c.jsx("div",{className:"category-filters",children:["Todas",...dm].map(r=>c.jsx("button",{type:"button",className:B===r?"is-active":"",onClick:()=>$(r),"aria-pressed":B===r,children:r},r))}),c.jsxs("div",{className:"filter-bar__search",children:[c.jsx(Ds,{size:16,"aria-hidden":"true"}),c.jsx("label",{className:"sr-only",htmlFor:"directory-search-input",children:`Buscar por nombre de proyecto en ${B}`}),c.jsx("input",{id:"directory-search-input",type:"search",value:ge,onChange:r=>Ae(r.target.value),placeholder:B==="Todas"?"Buscar por nombre de proyecto…":`Buscar en ${B}…`}),ge?c.jsx("button",{type:"button",onClick:()=>Ae(""),"aria-label":"Limpiar búsqueda",children:c.jsx(kl,{size:15,"aria-hidden":"true"})}):null]}),c.jsxs("button",{type:"button",className:`favorites-filter ${de?"is-active":""}`,onClick:()=>V(r=>!r),"aria-pressed":de,children:[c.jsx(Hs,{size:17,fill:de?"currentColor":"none","aria-hidden":"true"}),"Solo favoritos"]})]}),je.length>0?c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"directory-list",children:tt.map((r,y)=>c.jsx(m0,{app:r,index:(P-1)*Fu+y,isFavorite:Ne.has(r.id),hasAccess:o?g[r.id]===!0:null,onActivate:A,onFavorite:C},r.id))}),c.jsx(Rs,{currentPage:P,totalPages:we,onPageChange:Ke,compact:we>5,label:"Paginación de aplicaciones"})]}):c.jsx(h0,{search:ge,favoritesOnly:de,onClear:N})]}),F?c.jsxs("section",{className:"admin-bridge","aria-label":"Acceso al panel de administración",children:[c.jsx("div",{className:"admin-bridge__number","aria-hidden":"true",children:"+"}),c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"CONTROL DEL CATÁLOGO"}),c.jsx("h2",{children:"¿Falta una herramienta?"}),c.jsx("p",{children:"Adjunta su ícono, pega el enlace y publícala para todo el equipo."})]}),c.jsxs("button",{type:"button",className:"secondary-button",onClick:Z,children:["Administrar aplicaciones",c.jsx(Un,{size:18,"aria-hidden":"true"})]})]}):c.jsx(y0,{apps:he,onSubmit:q})]})}function p0({apps:f,selectedId:d,onSelect:g,onDelete:o}){const[O,A]=H.useState(""),[C,Z]=H.useState(1),[q,E]=H.useState(null),Y=H.useRef(null),B=H.useMemo(()=>{const K=Ca(O);return K?f.filter(le=>Ca(`${le.name} ${le.category}`).includes(K)):f},[f,O]),$=Math.max(1,Math.ceil(B.length/Os));H.useEffect(()=>{Z(1)},[O]),H.useEffect(()=>{C>$&&Z($)},[C,$]);const de=H.useMemo(()=>{const K=(C-1)*Os;return B.slice(K,K+Os)},[B,C]),V=(K,le)=>{var Me;K.stopPropagation(),E(le),(Me=Y.current)==null||Me.showModal()},P=async()=>{var K;q&&await o(q.id)&&((K=Y.current)==null||K.close(),E(null))};return c.jsxs("aside",{className:"admin-list","aria-label":"Aplicaciones configuradas",children:[c.jsxs("div",{className:"admin-list__top",children:[c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:"CATÁLOGO"}),c.jsxs("h2",{children:[f.length," ",f.length===1?"aplicación":"aplicaciones"]})]}),c.jsx("button",{type:"button",className:"icon-button icon-button--accent",onClick:()=>g(null),"aria-label":"Crear aplicación",children:c.jsx(Id,{size:20,"aria-hidden":"true"})})]}),c.jsxs("div",{className:"admin-list__search",children:[c.jsx(Ds,{size:17,"aria-hidden":"true"}),c.jsx("label",{htmlFor:"admin-search",className:"sr-only",children:"Buscar en el catálogo"}),c.jsx("input",{id:"admin-search",type:"search",value:O,onChange:K=>A(K.target.value),placeholder:"Buscar…"}),O?c.jsx("button",{type:"button",onClick:()=>A(""),"aria-label":"Limpiar búsqueda",children:c.jsx(kl,{size:15,"aria-hidden":"true"})}):null]}),c.jsxs("div",{className:"admin-list__items",children:[C===1?c.jsxs("button",{type:"button",className:`admin-list__new ${d===null?"is-active":""}`,onClick:()=>g(null),children:[c.jsx("span",{className:"admin-list__new-icon",children:c.jsx(Id,{size:18,"aria-hidden":"true"})}),c.jsxs("span",{className:"admin-list__item-info",children:[c.jsx("strong",{children:"Nueva aplicación"}),c.jsx("small",{children:"Crear y publicar"})]})]}):null,de.map(K=>c.jsxs("div",{className:`admin-list__item-row ${d===K.id?"is-active":""}`,onClick:()=>g(K.id),role:"button",tabIndex:0,onKeyDown:le=>{(le.key==="Enter"||le.key===" ")&&g(K.id)},children:[c.jsx(ti,{app:K,size:"small"}),c.jsxs("span",{className:"admin-list__item-info",children:[c.jsx("strong",{children:K.name}),c.jsx("small",{children:K.category})]}),c.jsxs("div",{className:"admin-list__item-actions",children:[c.jsx("span",{className:`mini-status ${K.visibility==="hidden"?"is-hidden":""}`,children:K.visibility==="hidden"?"Oculta":Jl(K.url)?"Lista":"Pendiente"}),c.jsx("button",{type:"button",className:"admin-list__delete-icon",onClick:le=>V(le,K),title:`Eliminar ${K.name}`,"aria-label":`Eliminar ${K.name}`,children:c.jsx(Iu,{size:15,"aria-hidden":"true"})})]})]},K.id))]}),c.jsx(Rs,{currentPage:C,totalPages:$,onPageChange:Z,compact:!0,label:"Paginación del catálogo de administración"}),c.jsxs("dialog",{className:"confirm-dialog",ref:Y,children:[c.jsx("button",{type:"button",className:"confirm-dialog__close",onClick:()=>{var K;return(K=Y.current)==null?void 0:K.close()},"aria-label":"Cerrar",children:c.jsx(kl,{size:19,"aria-hidden":"true"})}),c.jsx("span",{className:"confirm-dialog__icon",children:c.jsx(Iu,{size:22,"aria-hidden":"true"})}),c.jsx("p",{className:"section-kicker",children:"ACCIÓN PERMANENTE"}),c.jsxs("h2",{children:["Eliminar ",q==null?void 0:q.name]}),c.jsx("p",{children:"El portal y sus accesos se eliminarán permanentemente. Esta acción no se puede deshacer."}),c.jsxs("div",{className:"confirm-dialog__actions",children:[c.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{var K;return(K=Y.current)==null?void 0:K.close()},children:"Conservar"}),c.jsx("button",{type:"button",className:"danger-button danger-button--solid",onClick:P,children:"Sí, eliminar"})]})]})]})}function Kl(){return c.jsxs(c.Fragment,{children:[c.jsx("span",{className:"required-mark","aria-hidden":"true",children:"*"}),c.jsx("span",{className:"sr-only",children:" obligatorio"})]})}function b0({app:f,allApps:d,onSave:g,onDelete:o,onCancel:O}){const[A,C]=H.useState(()=>f?Dn(f):Wu()),[Z,q]=H.useState(()=>JSON.stringify(f?Dn(f):Wu())),[E,Y]=H.useState({}),[B,$]=H.useState(""),[de,V]=H.useState(!1),[P,K]=H.useState(!1),[le,Me]=H.useState(!1),[ge,Ae]=H.useState(!1),Oe=H.useRef(null),ze=H.useRef(null),F=JSON.stringify(A)!==Z,k=de||P||le,me=A.name.trim().length>=2&&!!A.description.trim();H.useEffect(()=>{const N=f?Dn(f):Wu();C(N),q(JSON.stringify(N)),Y({}),$(""),window.requestAnimationFrame(()=>{var r;return(r=ze.current)==null?void 0:r.focus()})},[f]),H.useEffect(()=>{if(!F&&!P)return;const N=r=>r.preventDefault();return window.addEventListener("beforeunload",N),()=>window.removeEventListener("beforeunload",N)},[P,F]),H.useEffect(()=>{if(!P)return;const N=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=N}},[P]);const Ne={id:(f==null?void 0:f.id)??"preview",name:A.name||"Nombre de la aplicación",description:A.description||"Una descripción breve ayuda al equipo a reconocerla.",category:A.category,keywords:[],url:A.url,mark:bm(A.name||"GLM"),accent:(f==null?void 0:f.accent)??"#4F758B",iconDataUrl:A.iconDataUrl,visibility:A.visibility,createdAt:(f==null?void 0:f.createdAt)??new Date().toISOString(),updatedAt:new Date().toISOString()},he=(N,r)=>{C(y=>({...y,[N]:r})),Y(y=>({...y,[N]:""}))},je=async N=>{if(!(!N||P)){$(""),V(!0);try{const r=await Sm(N);he("iconDataUrl",r)}catch(r){$(r instanceof Error?r.message:"No pudimos procesar el ícono.")}finally{V(!1)}}},we=N=>{var r;je((r=N.target.files)==null?void 0:r[0]),N.target.value=""},tt=N=>{var r;N.preventDefault(),Ae(!1),je((r=N.dataTransfer.files)==null?void 0:r[0])},Ke=async()=>{var G;const N=A.name.trim(),r=A.description.trim(),y={};if(N.length<2&&(y.name="Completa el nombre antes de generar el ícono."),r||(y.description="Completa la descripción antes de generar el ícono."),Object.keys(y).length>0){Y(X=>({...X,...y}));return}if(!tm){$("Falta configurar VITE_ICON_GENERATOR_WEBHOOK_URL en el archivo .env.");return}$(""),K(!0);const j=new AbortController,M=window.setTimeout(()=>j.abort(),18e4);try{const{data:{session:X}}=await Ue.auth.getSession();if(!(X!=null&&X.access_token))throw new Error("La sesión venció. Inicia sesión nuevamente.");const ae=await fetch(tm,{method:"POST",mode:"cors",cache:"no-store",credentials:"omit",signal:j.signal,headers:{Accept:"image/*, application/json;q=0.9, text/plain;q=0.8","Content-Type":"text/plain;charset=UTF-8"},body:JSON.stringify({accessToken:X.access_token,name:N,description:r})}),Je=((G=ae.headers.get("content-type"))==null?void 0:G.toLocaleLowerCase("en-US"))??"";if(ae.ok&&Je.startsWith("image/")){const tl=await _m(await ae.blob());he("iconDataUrl",tl);return}const _e=await ae.text();let Pe=null;if(_e)try{Pe=JSON.parse(_e)}catch{Pe=null}if(ae.ok&&(Pe!=null&&Pe.ok)&&Pe.imageDataUrl){const tl=await c0(Pe.imageDataUrl);he("iconDataUrl",tl);return}throw new Error((Pe==null?void 0:Pe.error)||(_e&&_e.length<500?_e:"")||`El flujo no pudo generar el ícono (HTTP ${ae.status}).`)}catch(X){X instanceof DOMException&&X.name==="AbortError"?$("La generación tardó más de 3 minutos y fue cancelada. Intenta nuevamente."):X instanceof TypeError&&/failed to fetch/i.test(X.message)?$("No se pudo conectar con el webhook de n8n. Verifica que el workflow esté activo y publicado."):$(X instanceof Error?X.message:"No pudimos generar el ícono con IA.")}finally{window.clearTimeout(M),K(!1)}},z=()=>{const N={},r=A.name.trim(),y=A.description.trim();(r.length<2||r.length>60)&&(N.name="Escribe un nombre de 2 a 60 caracteres."),y||(N.description="Añade una descripción breve."),y.length>180&&(N.description="La descripción no puede superar 180 caracteres."),A.iconDataUrl||(N.iconDataUrl="Adjunta o genera un ícono antes de publicar la aplicación."),A.url.trim()&&!Jl(A.url)&&(N.url="Usa una URL https:// válida, sin credenciales embebidas.");const j=Ca(r);return d.some(G=>G.id!==(f==null?void 0:f.id)&&Ca(G.name)===j)&&(N.name="Ya existe una aplicación con ese nombre."),Y(N),Object.keys(N).length===0},R=async N=>{if(N.preventDefault(),k||!z()){window.requestAnimationFrame(()=>{var r,y;return(y=(r=document.querySelector(".field-error"))==null?void 0:r.focus)==null?void 0:y.call(r)});return}Me(!0);try{const r=await g({...A,name:A.name.trim(),description:A.description.trim(),url:A.url.trim()},(f==null?void 0:f.id)??null);if(r){const y=Dn(r);C(y),q(JSON.stringify(y))}}finally{Me(!1)}},U=()=>{if(!P&&(!F||window.confirm("Hay cambios sin guardar. ¿Quieres descartarlos?"))){const N=f?Dn(f):Wu();C(N),q(JSON.stringify(N)),Y({}),$(""),O()}},L=async()=>{var N;!f||k||await o(f.id)&&((N=Oe.current)==null||N.close(),O())};return c.jsxs("section",{className:"app-editor","aria-labelledby":"editor-title","aria-busy":k,children:[c.jsxs("div",{className:"app-editor__heading",children:[c.jsxs("div",{children:[c.jsx("p",{className:"section-kicker",children:f?"EDITAR APLICACIÓN":"NUEVA APLICACIÓN"}),c.jsx("h2",{id:"editor-title",children:f?f.name:"Configura el nuevo acceso"})]}),F?c.jsxs("span",{className:"dirty-state is-dirty",children:[c.jsx("span",{"aria-hidden":"true"}),"Cambios sin guardar"]}):null]}),c.jsxs("div",{className:"editor-layout",children:[c.jsxs("form",{className:"editor-form",onSubmit:R,noValidate:!0,children:[c.jsxs("section",{className:"editor-form__section","aria-labelledby":"identity-section-title",children:[c.jsx("h3",{className:"editor-form__section-title",id:"identity-section-title",children:"Identidad"}),c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"app-name",children:["Nombre de la aplicación",f?null:c.jsx(Kl,{})]}),c.jsx("input",{ref:ze,id:"app-name",value:A.name,onChange:N=>he("name",N.target.value),placeholder:"Ej. Media Planner",maxLength:60,"aria-invalid":!!E.name,"aria-describedby":E.name?"app-name-error":void 0,disabled:k,required:!0}),c.jsxs("div",{className:"field-meta",children:[E.name?c.jsx("span",{id:"app-name-error",className:"field-error",role:"alert",tabIndex:-1,children:E.name}):c.jsx("span",{children:"Como el equipo la reconoce."}),c.jsxs("span",{children:[A.name.length,"/60"]})]})]}),c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"app-description",children:["Descripción breve",f?null:c.jsx(Kl,{})]}),c.jsx("textarea",{id:"app-description",value:A.description,onChange:N=>he("description",N.target.value),placeholder:"Explica qué resuelve en una sola frase.",maxLength:180,rows:3,"aria-invalid":!!E.description,"aria-describedby":E.description?"app-description-error":void 0,disabled:k,required:!0}),c.jsxs("div",{className:`field-meta ${E.description?"":"field-meta--counter-only"}`,children:[E.description?c.jsx("span",{id:"app-description-error",className:"field-error",role:"alert",tabIndex:-1,children:E.description}):null,c.jsxs("span",{children:[A.description.length,"/180"]})]})]}),c.jsxs("div",{className:"form-split",children:[c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"app-category",children:["Categoría",f?null:c.jsx(Kl,{})]}),c.jsx("select",{id:"app-category",value:A.category,onChange:N=>he("category",N.target.value),disabled:k,required:!0,children:dm.map(N=>c.jsx("option",{children:N},N))})]}),c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"app-visibility",children:["Visibilidad",f?null:c.jsx(Kl,{})]}),c.jsxs("select",{id:"app-visibility",value:A.visibility,onChange:N=>he("visibility",N.target.value),disabled:k,required:!0,children:[c.jsx("option",{value:"published",children:"Publicada"}),c.jsx("option",{value:"hidden",children:"Oculta"})]})]})]})]}),c.jsxs("section",{className:"editor-form__section","aria-labelledby":"icon-section-title",children:[c.jsxs("h3",{className:"editor-form__section-title",id:"icon-section-title",children:["Ícono",f?null:c.jsx(Kl,{})]}),c.jsxs("div",{className:"icon-config",children:[c.jsxs("label",{className:`icon-dropzone ${ge?"is-dragging":""}`,onDragEnter:N=>{N.preventDefault(),k||Ae(!0)},onDragOver:N=>N.preventDefault(),onDragLeave:()=>Ae(!1),onDrop:tt,children:[c.jsx("input",{type:"file",accept:"image/png,image/jpeg,image/webp",onChange:we,disabled:k}),c.jsx("span",{className:"icon-dropzone__symbol",children:c.jsx(Mv,{size:20,"aria-hidden":"true"})}),c.jsxs("span",{children:[c.jsx("strong",{children:de?"Procesando…":"Adjuntar ícono"}),c.jsx("small",{children:"PNG, JPG o WebP · máximo 1 MB"})]})]}),A.iconDataUrl?c.jsx("button",{type:"button",className:"text-button text-button--danger",disabled:k,onClick:()=>he("iconDataUrl",""),children:"Quitar ícono"}):null]}),c.jsx("div",{className:"ai-icon-actions",children:c.jsxs("button",{type:"button",className:"secondary-button ai-icon-button",onClick:()=>void Ke(),disabled:!me||k,title:me?void 0:"Completa el nombre y la descripción breve.",children:[c.jsx(xv,{size:18,"aria-hidden":"true"}),"Generar ícono con IA"]})}),B?c.jsx("p",{className:"field-error field-error--standalone",role:"alert",children:B}):null,E.iconDataUrl?c.jsx("p",{className:"field-error field-error--standalone",role:"alert",tabIndex:-1,children:E.iconDataUrl}):null]}),c.jsxs("section",{className:"editor-form__section","aria-labelledby":"destination-section-title",children:[c.jsx("h3",{className:"editor-form__section-title",id:"destination-section-title",children:"Destino"}),c.jsxs("div",{className:"form-field",children:[c.jsxs("label",{htmlFor:"app-url",children:["Enlace de la aplicación ",c.jsx("span",{children:"Opcional"})]}),c.jsxs("div",{className:"url-field",children:[c.jsx(fm,{size:18,"aria-hidden":"true"}),c.jsx("input",{id:"app-url",type:"url",value:A.url,onChange:N=>he("url",N.target.value),placeholder:"https://aplicacion.com","aria-invalid":!!E.url,"aria-describedby":E.url?"app-url-error":"app-url-help",disabled:k})]}),E.url?c.jsx("span",{id:"app-url-error",className:"field-error",role:"alert",tabIndex:-1,children:E.url}):c.jsx("span",{id:"app-url-help",className:"field-help",children:"Si lo dejas vacío, aparecerá como “Enlace pendiente”."})]})]}),c.jsxs("div",{className:"editor-actions",children:[c.jsxs("button",{type:"submit",className:"primary-button",disabled:k,children:[c.jsx(Av,{size:18,"aria-hidden":"true"}),le?"Guardando…":f?"Guardar cambios":"Publicar aplicación"]}),c.jsx("button",{type:"button",className:"secondary-button secondary-button--quiet",disabled:k,onClick:U,children:"Cancelar"}),f?c.jsxs("button",{type:"button",className:"danger-button",disabled:k,onClick:()=>{var N;return(N=Oe.current)==null?void 0:N.showModal()},children:[c.jsx(Iu,{size:17,"aria-hidden":"true"}),"Eliminar"]}):null]})]}),c.jsxs("aside",{className:"app-preview","aria-label":"Vista previa de la aplicación",children:[c.jsxs("div",{className:"app-preview__label",children:[c.jsx("span",{children:"VISTA PREVIA"}),c.jsx("span",{className:"app-preview__rule"})]}),c.jsxs("div",{className:"preview-card",children:[c.jsx(ti,{app:Ne,size:"large",showPlaceholder:!f&&!A.iconDataUrl}),c.jsx("span",{className:"quick-launch__category",children:Ne.category}),c.jsx("h3",{children:Ne.name}),c.jsx("p",{children:Ne.description}),c.jsxs("span",{className:`availability ${Jl(Ne.url)?"availability--ready":"availability--pending"}`,children:[c.jsx("span",{"aria-hidden":"true"}),Jl(Ne.url)?"Lista para abrir":"Enlace pendiente"]})]}),c.jsx("p",{className:"app-preview__note",children:"Así aparecerá en el Hub para el equipo."})]})]}),c.jsxs("dialog",{className:"confirm-dialog",ref:Oe,children:[c.jsx("button",{type:"button",className:"confirm-dialog__close",onClick:()=>{var N;return(N=Oe.current)==null?void 0:N.close()},"aria-label":"Cerrar",children:c.jsx(kl,{size:19,"aria-hidden":"true"})}),c.jsx("span",{className:"confirm-dialog__icon",children:c.jsx(Iu,{size:22,"aria-hidden":"true"})}),c.jsx("p",{className:"section-kicker",children:"ACCIÓN PERMANENTE"}),c.jsxs("h2",{children:["Eliminar ",f==null?void 0:f.name]}),c.jsx("p",{children:"La aplicación se quitará del catálogo compartido para todo el equipo. Esta acción no se puede deshacer."}),c.jsxs("div",{className:"confirm-dialog__actions",children:[c.jsx("button",{type:"button",className:"secondary-button",onClick:()=>{var N;return(N=Oe.current)==null?void 0:N.close()},children:"Conservar"}),c.jsx("button",{type:"button",className:"danger-button danger-button--solid",onClick:()=>void L(),children:"Sí, eliminar"})]})]}),P?c.jsx("div",{className:"generation-overlay",role:"dialog","aria-modal":"true","aria-labelledby":"generation-title",children:c.jsxs("div",{className:"generation-overlay__card",children:[c.jsx("span",{className:"generation-spinner","aria-hidden":"true"}),c.jsx("p",{className:"section-kicker",children:"GEMINI"}),c.jsx("h2",{id:"generation-title",children:"Generando el ícono…"}),c.jsx("p",{children:"Estamos creando una propuesta a partir del nombre y la descripción de la aplicación."})]})}):null]})}function S0({data:f,onSave:d,onDelete:g,onBack:o}){const[O,A]=H.useState(null),C=O?f.apps.find(E=>E.id===O)??null:null,Z=async(E,Y)=>{const B=await d(E,Y);return B&&A(B.id),B},q=async E=>{const Y=await g(E);return Y&&A(null),Y};return c.jsxs("main",{className:"page-content admin-page",children:[c.jsx("header",{className:"page-header admin-header",children:c.jsxs("div",{children:[c.jsxs("button",{type:"button",className:"back-button",onClick:o,children:[c.jsx(fv,{size:17,"aria-hidden":"true"}),"Volver al Hub"]}),c.jsx("p",{className:"page-header__meta",children:"PANEL DE ADMINISTRACIÓN"}),c.jsx("h1",{children:"Controla el catálogo."})]})}),c.jsxs("div",{className:"admin-workspace",children:[c.jsx(p0,{apps:f.apps,selectedId:O,onSelect:A,onDelete:q}),c.jsx(b0,{app:C,allApps:f.apps,onSave:Z,onDelete:q,onCancel:()=>A(null)})]})]})}function _0(){return c.jsxs("div",{className:"catalog-loading",role:"status","aria-live":"polite",children:[c.jsx(ei,{compact:!0}),c.jsx("span",{className:"generation-spinner","aria-hidden":"true"}),c.jsx("p",{children:"Cargando aplicaciones…"})]})}function E0(){const[f]=H.useState(()=>Qv()),[d,g]=H.useState({schemaVersion:1,apps:[],favoritesByUser:{},recentByUser:{},updatedAt:new Date().toISOString()}),[o,O]=H.useState(null),[A,C]=H.useState(()=>"hub"),[Z,q]=H.useState([]),[E,Y]=H.useState(!1),[B,$]=H.useState(!1),[de,V]=H.useState(""),[P,K]=H.useState({}),[le,Me]=H.useState(!1),[ge,Ae]=H.useState(""),Oe=H.useRef(0),ze=H.useRef(null),F=H.useCallback(U=>{q(L=>L.filter(N=>N.id!==U))},[]),k=H.useCallback((U,L,N)=>{const r=crypto.randomUUID();q(y=>[...y.slice(-2),{id:r,kind:U,title:L,detail:N}]),window.setTimeout(()=>{q(y=>y.filter(j=>j.id!==r))},5200)},[]);H.useEffect(()=>{let U=!0;const L=y=>{const j=(y.expires_at??Math.floor(Date.now()/1e3)+3600)*1e3;O(M=>!M||M.user.id!==y.user.id||M.expiresAt===j?M:{...M,expiresAt:j})},N=async y=>{const j=++Oe.current;if(!y){if(!U||j!==Oe.current)return;ze.current=null,O(null),$(!1),Y(!0);return}if(ze.current===y.user.id){if(!U||j!==Oe.current)return;L(y),Y(!0);return}const M=await n0(y);if(!U||j!==Oe.current)return;if(!M.session){ze.current=null,O(null),Ae(M.error),$(!1),Y(!0),await Ue.auth.signOut({scope:"local"});return}const G=M.session;ze.current=G.user.id,Ae(""),O(G),Y(!0),window.location.hash!=="#hub"&&window.location.hash!=="#admin"&&window.history.replaceState(null,"",Ns("#hub"))};Ue.auth.getSession().then(({data:{session:y}})=>{N(y)});const{data:{subscription:r}}=Ue.auth.onAuthStateChange((y,j)=>{if(y!=="INITIAL_SESSION"){if(y==="TOKEN_REFRESHED"&&j&&ze.current===j.user.id){L(j);return}window.setTimeout(()=>{N(j)},0)}});return()=>{U=!1,r.unsubscribe()}},[]);const me=(o==null?void 0:o.user)??null;H.useEffect(()=>{if(!me)return;let U=!0,L=!1;const N=async()=>{if(!L){L=!0;try{const j=await Bs();if(!U)return;g(M=>({...M,apps:j,updatedAt:new Date().toISOString()}))}catch(j){console.error("No se pudo refrescar el catálogo compartido:",j)}finally{L=!1}}};(async()=>{$(!1),V("");try{const j=await Iv(me,f.data.apps),M=await kv(me.id);if(!U)return;g(M),$(!0),j>0&&k("success","Catálogo compartido activado",`${j} ${j===1?"aplicación fue migrada":"aplicaciones fueron migradas"} a Supabase.`)}catch(j){if(!U)return;const M=j instanceof Error?j.message:"No se pudo cargar el catálogo compartido.";V(M),$(!0),k("error","No se pudo cargar el catálogo",M)}})();const y=Pv(()=>void N());return()=>{U=!1,y()}},[me==null?void 0:me.id,me==null?void 0:me.role,f.data.apps,k]),H.useEffect(()=>{if(!me){K({}),Me(!1);return}let U=!0,L=!1;const N=async()=>{if(!L){L=!0;try{const j=await Vv();if(!U)return;K(j),Me(!0)}catch(j){console.warn("No se pudo verificar el acceso a las aplicaciones:",j),U&&Me(!1)}finally{L=!1}}};N();const r=window.setInterval(()=>void N(),6e4),y=()=>void N();return window.addEventListener("focus",y),()=>{U=!1,window.clearInterval(r),window.removeEventListener("focus",y)}},[me==null?void 0:me.id]),H.useEffect(()=>{const U=()=>{const L=window.location.hash==="#admin"?"admin":"hub";if(L==="admin"&&(o==null?void 0:o.user.role)!=="admin"){C("hub"),window.history.replaceState(null,"","#hub");return}C(L)};return U(),window.addEventListener("hashchange",U),()=>window.removeEventListener("hashchange",U)},[o==null?void 0:o.user.role]);const Ne=U=>{if(U==="admin"&&(o==null?void 0:o.user.role)!=="admin"){k("error","Acceso restringido","Necesitas permisos de administrador para abrir este panel.");return}C(U),window.history.replaceState(null,"",Ns(U==="admin"?"#admin":"#hub")),window.scrollTo({top:0,behavior:"smooth"})},he=async U=>{if(!o)return;const L=o.user.id,N=d.favoritesByUser[L]??[],r=N.includes(U),y=r?N.filter(j=>j!==U):[U,...N];g(j=>({...j,favoritesByUser:{...j.favoritesByUser,[L]:y},updatedAt:new Date().toISOString()}));try{await Wv(L,U,!r),k("success",r?"Quitada de favoritos":"Agregada a favoritos")}catch(j){g(M=>({...M,favoritesByUser:{...M.favoritesByUser,[L]:N}})),k("error","No se actualizó el favorito",j instanceof Error?j.message:void 0)}},je=U=>{if(!o)return;const L=Jl(U.url);if(!L){k("info","Enlace pendiente",`${U.name} todavía no tiene un enlace configurado.`);return}const N=window.open(L,"_blank","noopener,noreferrer");N&&(N.opener=null);const r=o.user.id,y=d.recentByUser[r]??[],j=[U.id,...y.filter(M=>M!==U.id)].slice(0,30);g(M=>({...M,recentByUser:{...M.recentByUser,[r]:j},updatedAt:new Date().toISOString()})),Fv(r,U.id).catch(M=>console.warn("No se guardó el acceso reciente:",M))},we=async(U,L)=>{if(!o||o.user.role!=="admin")return null;const N=L?d.apps.find(r=>r.id===L)??null:null;try{const r=await pm(U,N,o.user.id);return g(y=>({...y,apps:N?y.apps.map(j=>j.id===r.id?r:j):[r,...y.apps],updatedAt:new Date().toISOString()})),k("success",N?"Cambios guardados":"Aplicación publicada",`${r.name} ya está disponible en el catálogo compartido.`),r}catch(r){return k("error","No se guardó la aplicación",r instanceof Error?r.message:void 0),null}},tt=async U=>{if(!o||o.user.role!=="admin")return!1;const L=d.apps.find(N=>N.id===U);if(!L)return!1;try{await $v(L);const N=r=>Object.fromEntries(Object.entries(r).map(([y,j])=>[y,j.filter(M=>M!==U)]));return g(r=>({...r,apps:r.apps.filter(y=>y.id!==U),favoritesByUser:N(r.favoritesByUser),recentByUser:N(r.recentByUser),updatedAt:new Date().toISOString()})),k("success","Aplicación eliminada",`${L.name} salió del catálogo compartido.`),!0}catch(N){return k("error","No se eliminó la aplicación",N instanceof Error?N.message:void 0),!1}},Ke=async U=>{if(!o||o.user.role==="admin")return!1;if(!lm)return k("error","No se pudo enviar la solicitud","La función de solicitudes no está disponible en este momento."),!1;const L=new AbortController,N=window.setTimeout(()=>L.abort(),12e4);try{const{data:{session:r}}=await Ue.auth.getSession();if(!(r!=null&&r.access_token))throw new Error("La sesión venció. Cierra sesión e inicia nuevamente.");const y=await fetch(lm,{method:"POST",mode:"cors",cache:"no-store",credentials:"omit",signal:L.signal,headers:{Accept:"application/json, text/plain;q=0.9","Content-Type":"text/plain;charset=UTF-8"},body:JSON.stringify({accessToken:r.access_token,appId:U.id})}),j=await y.text();let M=null;if(j)try{M=JSON.parse(j)}catch{M=null}if(!y.ok||!(M!=null&&M.ok)){const G=String((M==null?void 0:M.error)||"").toLowerCase();let X="No pudimos enviar la solicitud en este momento. Intenta nuevamente.";throw G.includes("pendiente")?X="Ya tienes una solicitud pendiente para esta aplicación.":G.includes("sesión")||y.status===401?X="Tu sesión venció. Cierra sesión e inicia nuevamente.":G.includes("ya no está publicada")||G.includes("no está disponible")?X="La aplicación seleccionada ya no está disponible.":(G.includes("no está autorizado")||y.status===403)&&(X="Tu cuenta no está habilitada para enviar esta solicitud."),console.error("Error interno al enviar la solicitud de acceso",{status:y.status,responseText:j}),new Error(X)}return k("success","Solicitud enviada",M.message||`La solicitud para ${U.name} fue enviada correctamente.`),!0}catch(r){return r instanceof DOMException&&r.name==="AbortError"?k("error","La solicitud tardó demasiado","Intenta nuevamente en unos minutos."):r instanceof TypeError&&/failed to fetch/i.test(r.message)?(console.error("No se pudo contactar el servicio de solicitudes",r),k("error","No se pudo enviar la solicitud","Intenta nuevamente en unos minutos.")):k("error","No se pudo enviar la solicitud",r instanceof Error?r.message:"Intenta nuevamente en unos minutos."),!1}finally{window.clearTimeout(N)}},z=async()=>{Ae("");const{error:U}=await Ue.auth.signInWithOAuth({provider:"google",options:{redirectTo:t0(),queryParams:{hd:"gomezleemarketing.com",prompt:"select_account"}}});U&&(console.error("No se pudo iniciar el acceso con Google:",U),Ae("No pudimos abrir el acceso con Google. Intenta nuevamente."))},R=async()=>{const{error:U}=await Ue.auth.signOut();if(U){k("error","No se pudo cerrar la sesión",U.message);return}O(null),$(!1),K({}),Me(!1),C("hub"),window.history.replaceState(null,"",Ns())};return!E||!o?c.jsxs(c.Fragment,{children:[c.jsx(s0,{onLogin:z,error:ge,disabled:!E}),c.jsx(xs,{messages:Z,onDismiss:F})]}):B?c.jsxs("div",{className:"app-shell",children:[c.jsx(f0,{user:o.user,view:A,onNavigate:Ne,onLogout:R}),c.jsx(r0,{user:o.user}),A==="admin"&&o.user.role==="admin"?c.jsx(S0,{data:d,onSave:we,onDelete:tt,onBack:()=>Ne("hub")}):c.jsx(g0,{user:o.user,data:d,accessByApp:P,accessReady:le,storageWarning:de,onActivate:je,onFavorite:U=>void he(U),onAdmin:()=>Ne("admin"),onRequestAccess:Ke}),c.jsx(o0,{user:o.user,view:A,onNavigate:Ne,onLogout:R}),c.jsx(xs,{messages:Z,onDismiss:F})]}):c.jsxs(c.Fragment,{children:[c.jsx(_0,{}),c.jsx(xs,{messages:Z,onDismiss:F})]})}const um="https://dbit.digitalcompass.agency/storage/v1/object/public/public-assets/GLM.png?v=glm-hub-20260722-v3";function A0(){document.querySelectorAll('link[rel="icon"], link[rel="shortcut icon"]').forEach(g=>{g.remove()});const f=document.createElement("link");f.rel="icon",f.type="image/png",f.sizes="512x512",f.href=um,document.head.appendChild(f);const d=document.createElement("link");d.rel="shortcut icon",d.type="image/png",d.href=um,document.head.appendChild(d)}A0();lv.createRoot(document.getElementById("root")).render(c.jsx(H.StrictMode,{children:c.jsx(E0,{})})); diff --git a/dist/index.html b/dist/index.html index cc5866a..cbdde76 100644 --- a/dist/index.html +++ b/dist/index.html @@ -9,7 +9,7 @@ GLM Hub — GomezLee Marketing - + diff --git a/scripts/build-static-esm.mjs b/scripts/build-static-esm.mjs index 1974181..42be176 100644 --- a/scripts/build-static-esm.mjs +++ b/scripts/build-static-esm.mjs @@ -6,7 +6,7 @@ const root = path.resolve(new URL('..', import.meta.url).pathname); const srcDir = path.join(root, 'src'); const distDir = path.join(root, 'dist'); const assetsDir = path.join(distDir, 'assets'); -const BUILD_VERSION = '20260814-single-access-status'; +const BUILD_VERSION = '20260814-availability-and-access-status'; const env = { VITE_SUPABASE_URL: 'https://dbit.digitalcompass.agency', diff --git a/src/App.tsx b/src/App.tsx index a4a3de7..af96694 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -540,7 +540,7 @@ function MobileNav({ user, view, onNavigate, onLogout }: MobileNavProps) { type AccessState = boolean | null; function AccessIndicator({ hasAccess }: { hasAccess: AccessState }) { - const label = hasAccess === null ? "Verificando acceso" : hasAccess ? "Disponible" : "Sin acceso"; + const label = hasAccess === null ? "Verificando acceso" : hasAccess ? "Con acceso" : "Sin acceso"; const stateClass = hasAccess === null ? "access-indicator--checking" : hasAccess ? "access-indicator--granted" : "access-indicator--denied"; return ( @@ -609,6 +609,10 @@ function DirectoryRow({ app, index, isFavorite, hasAccess, onActivate, onFavorit

{app.name}

{app.description}

+ +
{app.category}