From 2229a29af1cee3f3ef55771cd47764735ed9e00c Mon Sep 17 00:00:00 2001 From: Rafael Lopes Date: Mon, 18 May 2026 19:11:01 -0300 Subject: [PATCH] FEAT: Ajusta home page do atendente MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Adicionado aba de comunicados e notas - Alterado aba lateral para exibir apenas as opções de atendimento - Removido arquivos de build do repositório --- .gitignore | 31 +- dist/assets/favicon_blue-CzkOczz3.png | Bin 4934 -> 0 bytes dist/assets/index-1xjqdjIG.js | 68 ---- dist/assets/index-BsY34Fgu.css | 1 - dist/assets/logo_white_dark_mode-BKcVSu03.png | Bin 25841 -> 0 bytes dist/assets/logo_white_mode-BIHgqUPv.png | Bin 26537 -> 0 bytes dist/index.html | 14 - src/modules/auth/components/LoginForm.jsx | 111 ++++-- src/modules/auth/hooks/useLogin.js | 47 ++- src/modules/auth/pages/LoginPage.jsx | 9 +- src/modules/auth/services/authService.js | 40 +- src/modules/home/components/HomeSidebar.jsx | 4 +- src/modules/home/components/HomeTopbar.jsx | 39 +- .../home/components/MessagesWorkspace.jsx | 369 ++++++++++++++---- src/modules/home/pages/HomePage.jsx | 3 +- src/modules/home/services/homeMocks.js | 9 +- .../components/ManagementLayout.jsx | 2 +- src/modules/management/pages/AdminPage.jsx | 6 +- .../management/pages/SupervisorPage.jsx | 6 +- .../management/pages/WhatsappAdminPage.jsx | 4 + src/routes/router.jsx | 23 +- 21 files changed, 542 insertions(+), 244 deletions(-) delete mode 100644 dist/assets/favicon_blue-CzkOczz3.png delete mode 100644 dist/assets/index-1xjqdjIG.js delete mode 100644 dist/assets/index-BsY34Fgu.css delete mode 100644 dist/assets/logo_white_dark_mode-BKcVSu03.png delete mode 100644 dist/assets/logo_white_mode-BIHgqUPv.png delete mode 100644 dist/index.html diff --git a/.gitignore b/.gitignore index f3fd91a..18af867 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,31 @@ -node_modules -dist +# Dependencies +node_modules/ + +# Build output +dist/ + +# Local environment files +.env +.env.local .env.development +.env.development.local .env.production +.env.production.local +.env.test +.env.test.local + +# Logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Vite cache +.vite/ + +# Editor and OS files +.DS_Store +Thumbs.db +.idea/ +.vscode/ diff --git a/dist/assets/favicon_blue-CzkOczz3.png b/dist/assets/favicon_blue-CzkOczz3.png deleted file mode 100644 index d953c4f5ba069bf5d781df732b80e8dae08566fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4934 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 Js94vS{{c%df&Tyi diff --git a/dist/assets/index-1xjqdjIG.js b/dist/assets/index-1xjqdjIG.js deleted file mode 100644 index 385e977..0000000 --- a/dist/assets/index-1xjqdjIG.js +++ /dev/null @@ -1,68 +0,0 @@ -function Rd(e,t){for(var r=0;rn[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))n(l);new MutationObserver(l=>{for(const i of l)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(l){const i={};return l.integrity&&(i.integrity=l.integrity),l.referrerPolicy&&(i.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?i.credentials="include":l.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(l){if(l.ep)return;l.ep=!0;const i=r(l);fetch(l.href,i)}})();function Pd(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var _d={exports:{}},Di={},Td={exports:{}},Y={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var ml=Symbol.for("react.element"),Sp=Symbol.for("react.portal"),kp=Symbol.for("react.fragment"),Cp=Symbol.for("react.strict_mode"),Ep=Symbol.for("react.profiler"),jp=Symbol.for("react.provider"),Rp=Symbol.for("react.context"),Pp=Symbol.for("react.forward_ref"),_p=Symbol.for("react.suspense"),Tp=Symbol.for("react.memo"),Lp=Symbol.for("react.lazy"),Vs=Symbol.iterator;function zp(e){return e===null||typeof e!="object"?null:(e=Vs&&e[Vs]||e["@@iterator"],typeof e=="function"?e:null)}var Ld={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},zd=Object.assign,Md={};function pn(e,t,r){this.props=e,this.context=t,this.refs=Md,this.updater=r||Ld}pn.prototype.isReactComponent={};pn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};pn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Nd(){}Nd.prototype=pn.prototype;function Ma(e,t,r){this.props=e,this.context=t,this.refs=Md,this.updater=r||Ld}var Na=Ma.prototype=new Nd;Na.constructor=Ma;zd(Na,pn.prototype);Na.isPureReactComponent=!0;var $s=Array.isArray,Dd=Object.prototype.hasOwnProperty,Da={current:null},Id={key:!0,ref:!0,__self:!0,__source:!0};function Od(e,t,r){var n,l={},i=null,o=null;if(t!=null)for(n in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)Dd.call(t,n)&&!Id.hasOwnProperty(n)&&(l[n]=t[n]);var a=arguments.length-2;if(a===1)l.children=r;else if(1>>1,ie=z[le];if(0>>1;lel(Ie,$))Oel(rt,Ie)?(z[le]=rt,z[Oe]=$,le=Oe):(z[le]=Ie,z[Ye]=$,le=Ye);else if(Oel(rt,$))z[le]=rt,z[Oe]=$,le=Oe;else break e}}return B}function l(z,B){var $=z.sortIndex-B.sortIndex;return $!==0?$:z.id-B.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,a=o.now();e.unstable_now=function(){return o.now()-a}}var s=[],u=[],h=1,c=null,p=3,w=!1,k=!1,S=!1,L=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,f=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function v(z){for(var B=r(u);B!==null;){if(B.callback===null)n(u);else if(B.startTime<=z)n(u),B.sortIndex=B.expirationTime,t(s,B);else break;B=r(u)}}function E(z){if(S=!1,v(z),!k)if(r(s)!==null)k=!0,Ft(j);else{var B=r(u);B!==null&&At(E,B.startTime-z)}}function j(z,B){k=!1,S&&(S=!1,m(P),P=-1),w=!0;var $=p;try{for(v(B),c=r(s);c!==null&&(!(c.expirationTime>B)||z&&!V());){var le=c.callback;if(typeof le=="function"){c.callback=null,p=c.priorityLevel;var ie=le(c.expirationTime<=B);B=e.unstable_now(),typeof ie=="function"?c.callback=ie:c===r(s)&&n(s),v(B)}else n(s);c=r(s)}if(c!==null)var ut=!0;else{var Ye=r(u);Ye!==null&&At(E,Ye.startTime-B),ut=!1}return ut}finally{c=null,p=$,w=!1}}var M=!1,y=null,P=-1,W=5,N=-1;function V(){return!(e.unstable_now()-Nz||125le?(z.sortIndex=$,t(u,z),r(s)===null&&z===r(u)&&(S?(m(P),P=-1):S=!0,At(E,$-le))):(z.sortIndex=ie,t(s,z),k||w||(k=!0,Ft(j))),z},e.unstable_shouldYield=V,e.unstable_wrapCallback=function(z){var B=p;return function(){var $=p;p=B;try{return z.apply(this,arguments)}finally{p=$}}}})(Bd);Wd.exports=Bd;var Hp=Wd.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Vp=R,qe=Hp;function T(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Fo=Object.prototype.hasOwnProperty,$p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ks={},Ys={};function Qp(e){return Fo.call(Ys,e)?!0:Fo.call(Ks,e)?!1:$p.test(e)?Ys[e]=!0:(Ks[e]=!0,!1)}function Kp(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Yp(e,t,r,n){if(t===null||typeof t>"u"||Kp(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function We(e,t,r,n,l,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=l,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var Te={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Te[e]=new We(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Te[t]=new We(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Te[e]=new We(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Te[e]=new We(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Te[e]=new We(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Te[e]=new We(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Te[e]=new We(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Te[e]=new We(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Te[e]=new We(e,5,!1,e.toLowerCase(),null,!1,!1)});var Oa=/[\-:]([a-z])/g;function Fa(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Oa,Fa);Te[t]=new We(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Oa,Fa);Te[t]=new We(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Oa,Fa);Te[t]=new We(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Te[e]=new We(e,1,!1,e.toLowerCase(),null,!1,!1)});Te.xlinkHref=new We("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Te[e]=new We(e,1,!1,e.toLowerCase(),null,!0,!0)});function Aa(e,t,r,n){var l=Te.hasOwnProperty(t)?Te[t]:null;(l!==null?l.type!==0:n||!(2a||l[o]!==i[a]){var s=` -`+l[o].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=a);break}}}finally{ao=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?In(e):""}function Xp(e){switch(e.tag){case 5:return In(e.type);case 16:return In("Lazy");case 13:return In("Suspense");case 19:return In("SuspenseList");case 0:case 2:case 15:return e=so(e.type,!1),e;case 11:return e=so(e.type.render,!1),e;case 1:return e=so(e.type,!0),e;default:return""}}function Wo(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Br:return"Fragment";case Wr:return"Portal";case Ao:return"Profiler";case ba:return"StrictMode";case bo:return"Suspense";case Uo:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case $d:return(e.displayName||"Context")+".Consumer";case Vd:return(e._context.displayName||"Context")+".Provider";case Ua:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Wa:return t=e.displayName||null,t!==null?t:Wo(e.type)||"Memo";case Ht:t=e._payload,e=e._init;try{return Wo(e(t))}catch{}}return null}function Gp(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Wo(t);case 8:return t===ba?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function lr(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Kd(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Jp(e){var t=Kd(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var l=r.get,i=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(o){n=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(o){n=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ll(e){e._valueTracker||(e._valueTracker=Jp(e))}function Yd(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=Kd(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function ai(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Bo(e,t){var r=t.checked;return he({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function Gs(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=lr(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Xd(e,t){t=t.checked,t!=null&&Aa(e,"checked",t,!1)}function Ho(e,t){Xd(e,t);var r=lr(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Vo(e,t.type,r):t.hasOwnProperty("defaultValue")&&Vo(e,t.type,lr(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Js(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function Vo(e,t,r){(t!=="number"||ai(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var On=Array.isArray;function qr(e,t,r,n){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=zl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Gn(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var Un={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Zp=["Webkit","ms","Moz","O"];Object.keys(Un).forEach(function(e){Zp.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Un[t]=Un[e]})});function qd(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||Un.hasOwnProperty(e)&&Un[e]?(""+t).trim():t+"px"}function ec(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,l=qd(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,l):e[r]=l}}var qp=he({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ko(e,t){if(t){if(qp[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(T(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(T(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(T(61))}if(t.style!=null&&typeof t.style!="object")throw Error(T(62))}}function Yo(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Xo=null;function Ba(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Go=null,en=null,tn=null;function eu(e){if(e=yl(e)){if(typeof Go!="function")throw Error(T(280));var t=e.stateNode;t&&(t=bi(t),Go(e.stateNode,e.type,t))}}function tc(e){en?tn?tn.push(e):tn=[e]:en=e}function rc(){if(en){var e=en,t=tn;if(tn=en=null,eu(e),t)for(e=0;e>>=0,e===0?32:31-(dh(e)/ch|0)|0}var Ml=64,Nl=4194304;function Fn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ci(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,l=e.suspendedLanes,i=e.pingedLanes,o=r&268435455;if(o!==0){var a=o&~l;a!==0?n=Fn(a):(i&=o,i!==0&&(n=Fn(i)))}else o=r&~l,o!==0?n=Fn(o):i!==0&&(n=Fn(i));if(n===0)return 0;if(t!==0&&t!==n&&!(t&l)&&(l=n&-n,i=t&-t,l>=i||l===16&&(i&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0r;r++)t.push(e);return t}function gl(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-mt(t),e[t]=r}function mh(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=Bn),uu=" ",du=!1;function kc(e,t){switch(e){case"keyup":return Hh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Cc(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Hr=!1;function $h(e,t){switch(e){case"compositionend":return Cc(t);case"keypress":return t.which!==32?null:(du=!0,uu);case"textInput":return e=t.data,e===uu&&du?null:e;default:return null}}function Qh(e,t){if(Hr)return e==="compositionend"||!Ga&&kc(e,t)?(e=wc(),Gl=Ka=Kt=null,Hr=!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:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=hu(r)}}function Pc(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Pc(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function _c(){for(var e=window,t=ai();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch{r=!1}if(r)e=t.contentWindow;else break;t=ai(e.document)}return t}function Ja(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function tm(e){var t=_c(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&Pc(r.ownerDocument.documentElement,r)){if(n!==null&&Ja(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=r.textContent.length,i=Math.min(n.start,l);n=n.end===void 0?i:Math.min(n.end,l),!e.extend&&i>n&&(l=n,n=i,i=l),l=mu(r,i);var o=mu(r,n);l&&o&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),i>n?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus=="function"&&r.focus(),r=0;r=document.documentMode,Vr=null,ra=null,Vn=null,na=!1;function gu(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;na||Vr==null||Vr!==ai(n)||(n=Vr,"selectionStart"in n&&Ja(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Vn&&rl(Vn,n)||(Vn=n,n=hi(ra,"onSelect"),0Kr||(e.current=ua[Kr],ua[Kr]=null,Kr--)}function ae(e,t){Kr++,ua[Kr]=e.current,e.current=t}var ir={},De=ar(ir),$e=ar(!1),jr=ir;function an(e,t){var r=e.type.contextTypes;if(!r)return ir;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in r)l[i]=t[i];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Qe(e){return e=e.childContextTypes,e!=null}function gi(){ue($e),ue(De)}function Cu(e,t,r){if(De.current!==ir)throw Error(T(168));ae(De,t),ae($e,r)}function Fc(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var l in n)if(!(l in t))throw Error(T(108,Gp(e)||"Unknown",l));return he({},r,n)}function vi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ir,jr=De.current,ae(De,e),ae($e,$e.current),!0}function Eu(e,t,r){var n=e.stateNode;if(!n)throw Error(T(169));r?(e=Fc(e,t,jr),n.__reactInternalMemoizedMergedChildContext=e,ue($e),ue(De),ae(De,e)):ue($e),ae($e,r)}var Pt=null,Ui=!1,Co=!1;function Ac(e){Pt===null?Pt=[e]:Pt.push(e)}function pm(e){Ui=!0,Ac(e)}function sr(){if(!Co&&Pt!==null){Co=!0;var e=0,t=ne;try{var r=Pt;for(ne=1;e>=o,l-=o,_t=1<<32-mt(t)+l|r<P?(W=y,y=null):W=y.sibling;var N=p(m,y,v[P],E);if(N===null){y===null&&(y=W);break}e&&y&&N.alternate===null&&t(m,y),f=i(N,f,P),M===null?j=N:M.sibling=N,M=N,y=W}if(P===v.length)return r(m,y),ce&&mr(m,P),j;if(y===null){for(;PP?(W=y,y=null):W=y.sibling;var V=p(m,y,N.value,E);if(V===null){y===null&&(y=W);break}e&&y&&V.alternate===null&&t(m,y),f=i(V,f,P),M===null?j=V:M.sibling=V,M=V,y=W}if(N.done)return r(m,y),ce&&mr(m,P),j;if(y===null){for(;!N.done;P++,N=v.next())N=c(m,N.value,E),N!==null&&(f=i(N,f,P),M===null?j=N:M.sibling=N,M=N);return ce&&mr(m,P),j}for(y=n(m,y);!N.done;P++,N=v.next())N=w(y,m,P,N.value,E),N!==null&&(e&&N.alternate!==null&&y.delete(N.key===null?P:N.key),f=i(N,f,P),M===null?j=N:M.sibling=N,M=N);return e&&y.forEach(function(J){return t(m,J)}),ce&&mr(m,P),j}function L(m,f,v,E){if(typeof v=="object"&&v!==null&&v.type===Br&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case Tl:e:{for(var j=v.key,M=f;M!==null;){if(M.key===j){if(j=v.type,j===Br){if(M.tag===7){r(m,M.sibling),f=l(M,v.props.children),f.return=m,m=f;break e}}else if(M.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===Ht&&Pu(j)===M.type){r(m,M.sibling),f=l(M,v.props),f.ref=Pn(m,M,v),f.return=m,m=f;break e}r(m,M);break}else t(m,M);M=M.sibling}v.type===Br?(f=Er(v.props.children,m.mode,E,v.key),f.return=m,m=f):(E=li(v.type,v.key,v.props,null,m.mode,E),E.ref=Pn(m,f,v),E.return=m,m=E)}return o(m);case Wr:e:{for(M=v.key;f!==null;){if(f.key===M)if(f.tag===4&&f.stateNode.containerInfo===v.containerInfo&&f.stateNode.implementation===v.implementation){r(m,f.sibling),f=l(f,v.children||[]),f.return=m,m=f;break e}else{r(m,f);break}else t(m,f);f=f.sibling}f=zo(v,m.mode,E),f.return=m,m=f}return o(m);case Ht:return M=v._init,L(m,f,M(v._payload),E)}if(On(v))return k(m,f,v,E);if(kn(v))return S(m,f,v,E);Ul(m,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,f!==null&&f.tag===6?(r(m,f.sibling),f=l(f,v),f.return=m,m=f):(r(m,f),f=Lo(v,m.mode,E),f.return=m,m=f),o(m)):r(m,f)}return L}var un=Bc(!0),Hc=Bc(!1),wi=ar(null),Si=null,Gr=null,ts=null;function rs(){ts=Gr=Si=null}function ns(e){var t=wi.current;ue(wi),e._currentValue=t}function fa(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function nn(e,t){Si=e,ts=Gr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ve=!0),e.firstContext=null)}function at(e){var t=e._currentValue;if(ts!==e)if(e={context:e,memoizedValue:t,next:null},Gr===null){if(Si===null)throw Error(T(308));Gr=e,Si.dependencies={lanes:0,firstContext:e}}else Gr=Gr.next=e;return t}var wr=null;function ls(e){wr===null?wr=[e]:wr.push(e)}function Vc(e,t,r,n){var l=t.interleaved;return l===null?(r.next=r,ls(t)):(r.next=l.next,l.next=r),t.interleaved=r,Dt(e,n)}function Dt(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var Vt=!1;function is(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function $c(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Lt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function er(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,G&2){var l=n.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),n.pending=t,Dt(e,r)}return l=n.interleaved,l===null?(t.next=t,ls(n)):(t.next=l.next,l.next=t),n.interleaved=t,Dt(e,r)}function Zl(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Va(e,r)}}function _u(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var l=null,i=null;if(r=r.firstBaseUpdate,r!==null){do{var o={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};i===null?l=i=o:i=i.next=o,r=r.next}while(r!==null);i===null?l=i=t:i=i.next=t}else l=i=t;r={baseState:n.baseState,firstBaseUpdate:l,lastBaseUpdate:i,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function ki(e,t,r,n){var l=e.updateQueue;Vt=!1;var i=l.firstBaseUpdate,o=l.lastBaseUpdate,a=l.shared.pending;if(a!==null){l.shared.pending=null;var s=a,u=s.next;s.next=null,o===null?i=u:o.next=u,o=s;var h=e.alternate;h!==null&&(h=h.updateQueue,a=h.lastBaseUpdate,a!==o&&(a===null?h.firstBaseUpdate=u:a.next=u,h.lastBaseUpdate=s))}if(i!==null){var c=l.baseState;o=0,h=u=s=null,a=i;do{var p=a.lane,w=a.eventTime;if((n&p)===p){h!==null&&(h=h.next={eventTime:w,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var k=e,S=a;switch(p=t,w=r,S.tag){case 1:if(k=S.payload,typeof k=="function"){c=k.call(w,c,p);break e}c=k;break e;case 3:k.flags=k.flags&-65537|128;case 0:if(k=S.payload,p=typeof k=="function"?k.call(w,c,p):k,p==null)break e;c=he({},c,p);break e;case 2:Vt=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,p=l.effects,p===null?l.effects=[a]:p.push(a))}else w={eventTime:w,lane:p,tag:a.tag,payload:a.payload,callback:a.callback,next:null},h===null?(u=h=w,s=c):h=h.next=w,o|=p;if(a=a.next,a===null){if(a=l.shared.pending,a===null)break;p=a,a=p.next,p.next=null,l.lastBaseUpdate=p,l.shared.pending=null}}while(!0);if(h===null&&(s=c),l.baseState=s,l.firstBaseUpdate=u,l.lastBaseUpdate=h,t=l.shared.interleaved,t!==null){l=t;do o|=l.lane,l=l.next;while(l!==t)}else i===null&&(l.shared.lanes=0);_r|=o,e.lanes=o,e.memoizedState=c}}function Tu(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;tr?r:4,e(!0);var n=jo.transition;jo.transition={};try{e(!1),t()}finally{ne=r,jo.transition=n}}function uf(){return st().memoizedState}function vm(e,t,r){var n=rr(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},df(e))cf(t,r);else if(r=Vc(e,t,r,n),r!==null){var l=be();gt(r,e,n,l),ff(r,t,n)}}function ym(e,t,r){var n=rr(e),l={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(df(e))cf(t,l);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,a=i(o,r);if(l.hasEagerState=!0,l.eagerState=a,vt(a,o)){var s=t.interleaved;s===null?(l.next=l,ls(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}r=Vc(e,t,l,n),r!==null&&(l=be(),gt(r,e,n,l),ff(r,t,n))}}function df(e){var t=e.alternate;return e===pe||t!==null&&t===pe}function cf(e,t){$n=Ei=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function ff(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,Va(e,r)}}var ji={readContext:at,useCallback:ze,useContext:ze,useEffect:ze,useImperativeHandle:ze,useInsertionEffect:ze,useLayoutEffect:ze,useMemo:ze,useReducer:ze,useRef:ze,useState:ze,useDebugValue:ze,useDeferredValue:ze,useTransition:ze,useMutableSource:ze,useSyncExternalStore:ze,useId:ze,unstable_isNewReconciler:!1},xm={readContext:at,useCallback:function(e,t){return wt().memoizedState=[e,t===void 0?null:t],e},useContext:at,useEffect:zu,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,ei(4194308,4,nf.bind(null,t,e),r)},useLayoutEffect:function(e,t){return ei(4194308,4,e,t)},useInsertionEffect:function(e,t){return ei(4,2,e,t)},useMemo:function(e,t){var r=wt();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=wt();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=vm.bind(null,pe,e),[n.memoizedState,e]},useRef:function(e){var t=wt();return e={current:e},t.memoizedState=e},useState:Lu,useDebugValue:ps,useDeferredValue:function(e){return wt().memoizedState=e},useTransition:function(){var e=Lu(!1),t=e[0];return e=gm.bind(null,e[1]),wt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=pe,l=wt();if(ce){if(r===void 0)throw Error(T(407));r=r()}else{if(r=t(),je===null)throw Error(T(349));Pr&30||Xc(n,t,r)}l.memoizedState=r;var i={value:r,getSnapshot:t};return l.queue=i,zu(Jc.bind(null,n,i,e),[e]),n.flags|=2048,dl(9,Gc.bind(null,n,i,r,t),void 0,null),r},useId:function(){var e=wt(),t=je.identifierPrefix;if(ce){var r=Tt,n=_t;r=(n&~(1<<32-mt(n)-1)).toString(32)+r,t=":"+t+"R"+r,r=sl++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=o.createElement(r,{is:n.is}):(e=o.createElement(r),r==="select"&&(o=e,n.multiple?o.multiple=!0:n.size&&(o.size=n.size))):e=o.createElementNS(e,r),e[St]=t,e[il]=n,kf(e,t,!1,!1),t.stateNode=e;e:{switch(o=Yo(r,n),r){case"dialog":se("cancel",e),se("close",e),l=n;break;case"iframe":case"object":case"embed":se("load",e),l=n;break;case"video":case"audio":for(l=0;lfn&&(t.flags|=128,n=!0,_n(i,!1),t.lanes=4194304)}else{if(!n)if(e=Ci(o),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),_n(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!ce)return Me(t),null}else 2*ye()-i.renderingStartTime>fn&&r!==1073741824&&(t.flags|=128,n=!0,_n(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(r=i.last,r!==null?r.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=ye(),t.sibling=null,r=fe.current,ae(fe,n?r&1|2:r&1),t):(Me(t),null);case 22:case 23:return xs(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?Xe&1073741824&&(Me(t),t.subtreeFlags&6&&(t.flags|=8192)):Me(t),null;case 24:return null;case 25:return null}throw Error(T(156,t.tag))}function Pm(e,t){switch(qa(t),t.tag){case 1:return Qe(t.type)&&gi(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return dn(),ue($e),ue(De),ss(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return as(t),null;case 13:if(ue(fe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(T(340));sn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ue(fe),null;case 4:return dn(),null;case 10:return ns(t.type._context),null;case 22:case 23:return xs(),null;case 24:return null;default:return null}}var Bl=!1,Ne=!1,_m=typeof WeakSet=="function"?WeakSet:Set,I=null;function Jr(e,t){var r=e.ref;if(r!==null)if(typeof r=="function")try{r(null)}catch(n){ve(e,t,n)}else r.current=null}function Sa(e,t,r){try{r()}catch(n){ve(e,t,n)}}var Bu=!1;function Tm(e,t){if(la=fi,e=_c(),Ja(e)){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var l=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var o=0,a=-1,s=-1,u=0,h=0,c=e,p=null;t:for(;;){for(var w;c!==r||l!==0&&c.nodeType!==3||(a=o+l),c!==i||n!==0&&c.nodeType!==3||(s=o+n),c.nodeType===3&&(o+=c.nodeValue.length),(w=c.firstChild)!==null;)p=c,c=w;for(;;){if(c===e)break t;if(p===r&&++u===l&&(a=o),p===i&&++h===n&&(s=o),(w=c.nextSibling)!==null)break;c=p,p=c.parentNode}c=w}r=a===-1||s===-1?null:{start:a,end:s}}else r=null}r=r||{start:0,end:0}}else r=null;for(ia={focusedElem:e,selectionRange:r},fi=!1,I=t;I!==null;)if(t=I,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,I=e;else for(;I!==null;){t=I;try{var k=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(k!==null){var S=k.memoizedProps,L=k.memoizedState,m=t.stateNode,f=m.getSnapshotBeforeUpdate(t.elementType===t.type?S:ct(t.type,S),L);m.__reactInternalSnapshotBeforeUpdate=f}break;case 3:var v=t.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(T(163))}}catch(E){ve(t,t.return,E)}if(e=t.sibling,e!==null){e.return=t.return,I=e;break}I=t.return}return k=Bu,Bu=!1,k}function Qn(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var l=n=n.next;do{if((l.tag&e)===e){var i=l.destroy;l.destroy=void 0,i!==void 0&&Sa(t,r,i)}l=l.next}while(l!==n)}}function Hi(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function ka(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t=="function"?t(e):t.current=e}}function jf(e){var t=e.alternate;t!==null&&(e.alternate=null,jf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[St],delete t[il],delete t[sa],delete t[cm],delete t[fm])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Rf(e){return e.tag===5||e.tag===3||e.tag===4}function Hu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Rf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ca(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=mi));else if(n!==4&&(e=e.child,e!==null))for(Ca(e,t,r),e=e.sibling;e!==null;)Ca(e,t,r),e=e.sibling}function Ea(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(Ea(e,t,r),e=e.sibling;e!==null;)Ea(e,t,r),e=e.sibling}var Pe=null,ft=!1;function Wt(e,t,r){for(r=r.child;r!==null;)Pf(e,t,r),r=r.sibling}function Pf(e,t,r){if(kt&&typeof kt.onCommitFiberUnmount=="function")try{kt.onCommitFiberUnmount(Ii,r)}catch{}switch(r.tag){case 5:Ne||Jr(r,t);case 6:var n=Pe,l=ft;Pe=null,Wt(e,t,r),Pe=n,ft=l,Pe!==null&&(ft?(e=Pe,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Pe.removeChild(r.stateNode));break;case 18:Pe!==null&&(ft?(e=Pe,r=r.stateNode,e.nodeType===8?ko(e.parentNode,r):e.nodeType===1&&ko(e,r),el(e)):ko(Pe,r.stateNode));break;case 4:n=Pe,l=ft,Pe=r.stateNode.containerInfo,ft=!0,Wt(e,t,r),Pe=n,ft=l;break;case 0:case 11:case 14:case 15:if(!Ne&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){l=n=n.next;do{var i=l,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&Sa(r,t,o),l=l.next}while(l!==n)}Wt(e,t,r);break;case 1:if(!Ne&&(Jr(r,t),n=r.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(a){ve(r,t,a)}Wt(e,t,r);break;case 21:Wt(e,t,r);break;case 22:r.mode&1?(Ne=(n=Ne)||r.memoizedState!==null,Wt(e,t,r),Ne=n):Wt(e,t,r);break;default:Wt(e,t,r)}}function Vu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new _m),t.forEach(function(n){var l=Am.bind(null,e,n);r.has(n)||(r.add(n),n.then(l,l))})}}function dt(e,t){var r=t.deletions;if(r!==null)for(var n=0;nl&&(l=o),n&=~i}if(n=l,n=ye()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*zm(n/1960))-n,10e?16:e,Yt===null)var n=!1;else{if(e=Yt,Yt=null,_i=0,G&6)throw Error(T(331));var l=G;for(G|=4,I=e.current;I!==null;){var i=I,o=i.child;if(I.flags&16){var a=i.deletions;if(a!==null){for(var s=0;sye()-vs?Cr(e,0):gs|=r),Ke(e,t)}function If(e,t){t===0&&(e.mode&1?(t=Nl,Nl<<=1,!(Nl&130023424)&&(Nl=4194304)):t=1);var r=be();e=Dt(e,t),e!==null&&(gl(e,t,r),Ke(e,r))}function Fm(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),If(e,r)}function Am(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,l=e.memoizedState;l!==null&&(r=l.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(T(314))}n!==null&&n.delete(t),If(e,r)}var Of;Of=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||$e.current)Ve=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return Ve=!1,jm(e,t,r);Ve=!!(e.flags&131072)}else Ve=!1,ce&&t.flags&1048576&&bc(t,xi,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;ti(e,t),e=t.pendingProps;var l=an(t,De.current);nn(t,r),l=ds(null,t,n,e,l,r);var i=cs();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Qe(n)?(i=!0,vi(t)):i=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,is(t),l.updater=Bi,t.stateNode=l,l._reactInternals=t,ha(t,n,e,r),t=va(null,t,n,!0,i,r)):(t.tag=0,ce&&i&&Za(t),Ae(null,t,l,r),t=t.child),t;case 16:n=t.elementType;e:{switch(ti(e,t),e=t.pendingProps,l=n._init,n=l(n._payload),t.type=n,l=t.tag=Um(n),e=ct(n,e),l){case 0:t=ga(null,t,n,e,r);break e;case 1:t=bu(null,t,n,e,r);break e;case 11:t=Fu(null,t,n,e,r);break e;case 14:t=Au(null,t,n,ct(n.type,e),r);break e}throw Error(T(306,n,""))}return t;case 0:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:ct(n,l),ga(e,t,n,l,r);case 1:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:ct(n,l),bu(e,t,n,l,r);case 3:e:{if(xf(t),e===null)throw Error(T(387));n=t.pendingProps,i=t.memoizedState,l=i.element,$c(e,t),ki(t,n,null,r);var o=t.memoizedState;if(n=o.element,i.isDehydrated)if(i={element:n,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){l=cn(Error(T(423)),t),t=Uu(e,t,n,r,l);break e}else if(n!==l){l=cn(Error(T(424)),t),t=Uu(e,t,n,r,l);break e}else for(Je=qt(t.stateNode.containerInfo.firstChild),Ze=t,ce=!0,ht=null,r=Hc(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(sn(),n===l){t=It(e,t,r);break e}Ae(e,t,n,r)}t=t.child}return t;case 5:return Qc(t),e===null&&ca(t),n=t.type,l=t.pendingProps,i=e!==null?e.memoizedProps:null,o=l.children,oa(n,l)?o=null:i!==null&&oa(n,i)&&(t.flags|=32),yf(e,t),Ae(e,t,o,r),t.child;case 6:return e===null&&ca(t),null;case 13:return wf(e,t,r);case 4:return os(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=un(t,null,n,r):Ae(e,t,n,r),t.child;case 11:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:ct(n,l),Fu(e,t,n,l,r);case 7:return Ae(e,t,t.pendingProps,r),t.child;case 8:return Ae(e,t,t.pendingProps.children,r),t.child;case 12:return Ae(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,l=t.pendingProps,i=t.memoizedProps,o=l.value,ae(wi,n._currentValue),n._currentValue=o,i!==null)if(vt(i.value,o)){if(i.children===l.children&&!$e.current){t=It(e,t,r);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var a=i.dependencies;if(a!==null){o=i.child;for(var s=a.firstContext;s!==null;){if(s.context===n){if(i.tag===1){s=Lt(-1,r&-r),s.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var h=u.pending;h===null?s.next=s:(s.next=h.next,h.next=s),u.pending=s}}i.lanes|=r,s=i.alternate,s!==null&&(s.lanes|=r),fa(i.return,r,t),a.lanes|=r;break}s=s.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(T(341));o.lanes|=r,a=o.alternate,a!==null&&(a.lanes|=r),fa(o,r,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}Ae(e,t,l.children,r),t=t.child}return t;case 9:return l=t.type,n=t.pendingProps.children,nn(t,r),l=at(l),n=n(l),t.flags|=1,Ae(e,t,n,r),t.child;case 14:return n=t.type,l=ct(n,t.pendingProps),l=ct(n.type,l),Au(e,t,n,l,r);case 15:return gf(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,l=t.pendingProps,l=t.elementType===n?l:ct(n,l),ti(e,t),t.tag=1,Qe(n)?(e=!0,vi(t)):e=!1,nn(t,r),pf(t,n,l),ha(t,n,l,r),va(null,t,n,!0,e,r);case 19:return Sf(e,t,r);case 22:return vf(e,t,r)}throw Error(T(156,t.tag))};function Ff(e,t){return uc(e,t)}function bm(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function it(e,t,r,n){return new bm(e,t,r,n)}function Ss(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Um(e){if(typeof e=="function")return Ss(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ua)return 11;if(e===Wa)return 14}return 2}function nr(e,t){var r=e.alternate;return r===null?(r=it(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function li(e,t,r,n,l,i){var o=2;if(n=e,typeof e=="function")Ss(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Br:return Er(r.children,l,i,t);case ba:o=8,l|=8;break;case Ao:return e=it(12,r,t,l|2),e.elementType=Ao,e.lanes=i,e;case bo:return e=it(13,r,t,l),e.elementType=bo,e.lanes=i,e;case Uo:return e=it(19,r,t,l),e.elementType=Uo,e.lanes=i,e;case Qd:return $i(r,l,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Vd:o=10;break e;case $d:o=9;break e;case Ua:o=11;break e;case Wa:o=14;break e;case Ht:o=16,n=null;break e}throw Error(T(130,e==null?e:typeof e,""))}return t=it(o,r,t,l),t.elementType=e,t.type=n,t.lanes=i,t}function Er(e,t,r,n){return e=it(7,e,n,t),e.lanes=r,e}function $i(e,t,r,n){return e=it(22,e,n,t),e.elementType=Qd,e.lanes=r,e.stateNode={isHidden:!1},e}function Lo(e,t,r){return e=it(6,e,null,t),e.lanes=r,e}function zo(e,t,r){return t=it(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Wm(e,t,r,n,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=co(0),this.expirationTimes=co(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=co(0),this.identifierPrefix=n,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function ks(e,t,r,n,l,i,o,a,s){return e=new Wm(e,t,r,a,s),t===1?(t=1,i===!0&&(t|=8)):t=0,i=it(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},is(i),e}function Bm(e,t,r){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Wf)}catch(e){console.error(e)}}Wf(),Ud.exports=et;var Rs=Ud.exports;const Km=Pd(Rs),Ym=Rd({__proto__:null,default:Km},[Rs]);var Zu=Rs;Oo.createRoot=Zu.createRoot,Oo.hydrateRoot=Zu.hydrateRoot;/** - * @remix-run/router v1.23.2 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function de(){return de=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function Lr(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Gm(){return Math.random().toString(36).substr(2,8)}function ed(e,t){return{usr:e.state,key:e.key,idx:t}}function fl(e,t,r,n){return r===void 0&&(r=null),de({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?ur(t):t,{state:r,key:t&&t.key||n||Gm()})}function zr(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function ur(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function Jm(e,t,r,n){n===void 0&&(n={});let{window:l=document.defaultView,v5Compat:i=!1}=n,o=l.history,a=we.Pop,s=null,u=h();u==null&&(u=0,o.replaceState(de({},o.state,{idx:u}),""));function h(){return(o.state||{idx:null}).idx}function c(){a=we.Pop;let L=h(),m=L==null?null:L-u;u=L,s&&s({action:a,location:S.location,delta:m})}function p(L,m){a=we.Push;let f=fl(S.location,L,m);u=h()+1;let v=ed(f,u),E=S.createHref(f);try{o.pushState(v,"",E)}catch(j){if(j instanceof DOMException&&j.name==="DataCloneError")throw j;l.location.assign(E)}i&&s&&s({action:a,location:S.location,delta:1})}function w(L,m){a=we.Replace;let f=fl(S.location,L,m);u=h();let v=ed(f,u),E=S.createHref(f);o.replaceState(v,"",E),i&&s&&s({action:a,location:S.location,delta:0})}function k(L){let m=l.location.origin!=="null"?l.location.origin:l.location.href,f=typeof L=="string"?L:zr(L);return f=f.replace(/ $/,"%20"),K(m,"No window.location.(origin|href) available to create URL for href: "+f),new URL(f,m)}let S={get action(){return a},get location(){return e(l,o)},listen(L){if(s)throw new Error("A history only accepts one active listener");return l.addEventListener(qu,c),s=L,()=>{l.removeEventListener(qu,c),s=null}},createHref(L){return t(l,L)},createURL:k,encodeLocation(L){let m=k(L);return{pathname:m.pathname,search:m.search,hash:m.hash}},push:p,replace:w,go(L){return o.go(L)}};return S}var re;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(re||(re={}));const Zm=new Set(["lazy","caseSensitive","path","id","index","children"]);function qm(e){return e.index===!0}function zi(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((l,i)=>{let o=[...r,String(i)],a=typeof l.id=="string"?l.id:o.join("-");if(K(l.index!==!0||!l.children,"Cannot specify children on an index route"),K(!n[a],'Found a route id collision on id "'+a+`". Route id's must be globally unique within Data Router usages`),qm(l)){let s=de({},l,t(l),{id:a});return n[a]=s,s}else{let s=de({},l,t(l),{id:a,children:void 0});return n[a]=s,l.children&&(s.children=zi(l.children,t,o,n)),s}})}function vr(e,t,r){return r===void 0&&(r="/"),ii(e,t,r,!1)}function ii(e,t,r,n){let l=typeof t=="string"?ur(t):t,i=gn(l.pathname||"/",r);if(i==null)return null;let o=Bf(e);tg(o);let a=null;for(let s=0;a==null&&s{let s={relativePath:a===void 0?i.path||"":a,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};s.relativePath.startsWith("/")&&(K(s.relativePath.startsWith(n),'Absolute route path "'+s.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),s.relativePath=s.relativePath.slice(n.length));let u=zt([n,s.relativePath]),h=r.concat(s);i.children&&i.children.length>0&&(K(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),Bf(i.children,t,h,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:sg(u,i.index),routesMeta:h})};return e.forEach((i,o)=>{var a;if(i.path===""||!((a=i.path)!=null&&a.includes("?")))l(i,o);else for(let s of Hf(i.path))l(i,o,s)}),t}function Hf(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,l=r.endsWith("?"),i=r.replace(/\?$/,"");if(n.length===0)return l?[i,""]:[i];let o=Hf(n.join("/")),a=[];return a.push(...o.map(s=>s===""?i:[i,s].join("/"))),l&&a.push(...o),a.map(s=>e.startsWith("/")&&s===""?"/":s)}function tg(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:ug(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const rg=/^:[\w-]+$/,ng=3,lg=2,ig=1,og=10,ag=-2,td=e=>e==="*";function sg(e,t){let r=e.split("/"),n=r.length;return r.some(td)&&(n+=ag),t&&(n+=lg),r.filter(l=>!td(l)).reduce((l,i)=>l+(rg.test(i)?ng:i===""?ig:og),n)}function ug(e,t){return e.length===t.length&&e.slice(0,-1).every((n,l)=>n===t[l])?e[e.length-1]-t[t.length-1]:0}function dg(e,t,r){r===void 0&&(r=!1);let{routesMeta:n}=e,l={},i="/",o=[];for(let a=0;a{let{paramName:p,isOptional:w}=h;if(p==="*"){let S=a[c]||"";o=i.slice(0,i.length-S.length).replace(/(.)\/+$/,"$1")}const k=a[c];return w&&!k?u[p]=void 0:u[p]=(k||"").replace(/%2F/g,"/"),u},{}),pathname:i,pathnameBase:o,pattern:e}}function cg(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),Lr(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],l="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,a,s)=>(n.push({paramName:a,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(n.push({paramName:"*"}),l+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?l+="\\/*$":e!==""&&e!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,t?void 0:"i"),n]}function fg(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Lr(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function gn(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}const pg=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,hg=e=>pg.test(e);function mg(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:l=""}=typeof e=="string"?ur(e):e,i;if(r)if(hg(r))i=r;else{if(r.includes("//")){let o=r;r=r.replace(/\/\/+/g,"/"),Lr(!1,"Pathnames cannot have embedded double slashes - normalizing "+(o+" -> "+r))}r.startsWith("/")?i=nd(r.substring(1),"/"):i=nd(r,t)}else i=t;return{pathname:i,search:vg(n),hash:yg(l)}}function nd(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(l=>{l===".."?r.length>1&&r.pop():l!=="."&&r.push(l)}),r.length>1?r.join("/"):"/"}function Mo(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function Vf(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function Gi(e,t){let r=Vf(e);return t?r.map((n,l)=>l===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function Ji(e,t,r,n){n===void 0&&(n=!1);let l;typeof e=="string"?l=ur(e):(l=de({},e),K(!l.pathname||!l.pathname.includes("?"),Mo("?","pathname","search",l)),K(!l.pathname||!l.pathname.includes("#"),Mo("#","pathname","hash",l)),K(!l.search||!l.search.includes("#"),Mo("#","search","hash",l)));let i=e===""||l.pathname==="",o=i?"/":l.pathname,a;if(o==null)a=r;else{let c=t.length-1;if(!n&&o.startsWith("..")){let p=o.split("/");for(;p[0]==="..";)p.shift(),c-=1;l.pathname=p.join("/")}a=c>=0?t[c]:"/"}let s=mg(l,a),u=o&&o!=="/"&&o.endsWith("/"),h=(i||o===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||h)&&(s.pathname+="/"),s}const zt=e=>e.join("/").replace(/\/\/+/g,"/"),gg=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),vg=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,yg=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class Mi{constructor(t,r,n,l){l===void 0&&(l=!1),this.status=t,this.statusText=r||"",this.internal=l,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}}function pl(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const $f=["post","put","patch","delete"],xg=new Set($f),wg=["get",...$f],Sg=new Set(wg),kg=new Set([301,302,303,307,308]),Cg=new Set([307,308]),No={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Eg={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Ln={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},Ps=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,jg=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Qf="remix-router-transitions";function Rg(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",n=!r;K(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let l;if(e.mapRouteProperties)l=e.mapRouteProperties;else if(e.detectErrorBoundary){let g=e.detectErrorBoundary;l=x=>({hasErrorBoundary:g(x)})}else l=jg;let i={},o=zi(e.routes,l,void 0,i),a,s=e.basename||"/",u=e.dataStrategy||Lg,h=e.patchRoutesOnNavigation,c=de({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),p=null,w=new Set,k=null,S=null,L=null,m=e.hydrationData!=null,f=vr(o,e.history.location,s),v=!1,E=null;if(f==null&&!h){let g=Be(404,{pathname:e.history.location.pathname}),{matches:x,route:C}=hd(o);f=x,E={[C.id]:g}}f&&!e.hydrationData&&El(f,o,e.history.location.pathname).active&&(f=null);let j;if(f)if(f.some(g=>g.route.lazy))j=!1;else if(!f.some(g=>g.route.loader))j=!0;else if(c.v7_partialHydration){let g=e.hydrationData?e.hydrationData.loaderData:null,x=e.hydrationData?e.hydrationData.errors:null;if(x){let C=f.findIndex(_=>x[_.route.id]!==void 0);j=f.slice(0,C+1).every(_=>!La(_.route,g,x))}else j=f.every(C=>!La(C.route,g,x))}else j=e.hydrationData!=null;else if(j=!1,f=[],c.v7_partialHydration){let g=El(null,o,e.history.location.pathname);g.active&&g.matches&&(v=!0,f=g.matches)}let M,y={historyAction:e.history.action,location:e.history.location,matches:f,initialized:j,navigation:No,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||E,fetchers:new Map,blockers:new Map},P=we.Pop,W=!1,N,V=!1,J=new Map,Z=null,te=!1,Le=!1,Ft=[],At=new Set,z=new Map,B=0,$=-1,le=new Map,ie=new Set,ut=new Map,Ye=new Map,Ie=new Set,Oe=new Map,rt=new Map,Sl;function lp(){if(p=e.history.listen(g=>{let{action:x,location:C,delta:_}=g;if(Sl){Sl(),Sl=void 0;return}Lr(rt.size===0||_!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let D=Us({currentLocation:y.location,nextLocation:C,historyAction:x});if(D&&_!=null){let U=new Promise(H=>{Sl=H});e.history.go(_*-1),Cl(D,{state:"blocked",location:C,proceed(){Cl(D,{state:"proceeding",proceed:void 0,reset:void 0,location:C}),U.then(()=>e.history.go(_))},reset(){let H=new Map(y.blockers);H.set(D,Ln),Fe({blockers:H})}});return}return fr(x,C)}),r){Vg(t,J);let g=()=>$g(t,J);t.addEventListener("pagehide",g),Z=()=>t.removeEventListener("pagehide",g)}return y.initialized||fr(we.Pop,y.location,{initialHydration:!0}),M}function ip(){p&&p(),Z&&Z(),w.clear(),N&&N.abort(),y.fetchers.forEach((g,x)=>kl(x)),y.blockers.forEach((g,x)=>bs(x))}function op(g){return w.add(g),()=>w.delete(g)}function Fe(g,x){x===void 0&&(x={}),y=de({},y,g);let C=[],_=[];c.v7_fetcherPersist&&y.fetchers.forEach((D,U)=>{D.state==="idle"&&(Ie.has(U)?_.push(U):C.push(U))}),Ie.forEach(D=>{!y.fetchers.has(D)&&!z.has(D)&&_.push(D)}),[...w].forEach(D=>D(y,{deletedFetchers:_,viewTransitionOpts:x.viewTransitionOpts,flushSync:x.flushSync===!0})),c.v7_fetcherPersist?(C.forEach(D=>y.fetchers.delete(D)),_.forEach(D=>kl(D))):_.forEach(D=>Ie.delete(D))}function Ir(g,x,C){var _,D;let{flushSync:U}=C===void 0?{}:C,H=y.actionData!=null&&y.navigation.formMethod!=null&&pt(y.navigation.formMethod)&&y.navigation.state==="loading"&&((_=g.state)==null?void 0:_._isRedirect)!==!0,F;x.actionData?Object.keys(x.actionData).length>0?F=x.actionData:F=null:H?F=y.actionData:F=null;let A=x.loaderData?fd(y.loaderData,x.loaderData,x.matches||[],x.errors):y.loaderData,O=y.blockers;O.size>0&&(O=new Map(O),O.forEach((X,Re)=>O.set(Re,Ln)));let b=W===!0||y.navigation.formMethod!=null&&pt(y.navigation.formMethod)&&((D=g.state)==null?void 0:D._isRedirect)!==!0;a&&(o=a,a=void 0),te||P===we.Pop||(P===we.Push?e.history.push(g,g.state):P===we.Replace&&e.history.replace(g,g.state));let Q;if(P===we.Pop){let X=J.get(y.location.pathname);X&&X.has(g.pathname)?Q={currentLocation:y.location,nextLocation:g}:J.has(g.pathname)&&(Q={currentLocation:g,nextLocation:y.location})}else if(V){let X=J.get(y.location.pathname);X?X.add(g.pathname):(X=new Set([g.pathname]),J.set(y.location.pathname,X)),Q={currentLocation:y.location,nextLocation:g}}Fe(de({},x,{actionData:F,loaderData:A,historyAction:P,location:g,initialized:!0,navigation:No,revalidation:"idle",restoreScrollPosition:Bs(g,x.matches||y.matches),preventScrollReset:b,blockers:O}),{viewTransitionOpts:Q,flushSync:U===!0}),P=we.Pop,W=!1,V=!1,te=!1,Le=!1,Ft=[]}async function Ms(g,x){if(typeof g=="number"){e.history.go(g);return}let C=Ta(y.location,y.matches,s,c.v7_prependBasename,g,c.v7_relativeSplatPath,x==null?void 0:x.fromRouteId,x==null?void 0:x.relative),{path:_,submission:D,error:U}=ld(c.v7_normalizeFormMethod,!1,C,x),H=y.location,F=fl(y.location,_,x&&x.state);F=de({},F,e.history.encodeLocation(F));let A=x&&x.replace!=null?x.replace:void 0,O=we.Push;A===!0?O=we.Replace:A===!1||D!=null&&pt(D.formMethod)&&D.formAction===y.location.pathname+y.location.search&&(O=we.Replace);let b=x&&"preventScrollReset"in x?x.preventScrollReset===!0:void 0,Q=(x&&x.flushSync)===!0,X=Us({currentLocation:H,nextLocation:F,historyAction:O});if(X){Cl(X,{state:"blocked",location:F,proceed(){Cl(X,{state:"proceeding",proceed:void 0,reset:void 0,location:F}),Ms(g,x)},reset(){let Re=new Map(y.blockers);Re.set(X,Ln),Fe({blockers:Re})}});return}return await fr(O,F,{submission:D,pendingError:U,preventScrollReset:b,replace:x&&x.replace,enableViewTransition:x&&x.viewTransition,flushSync:Q})}function ap(){if(to(),Fe({revalidation:"loading"}),y.navigation.state!=="submitting"){if(y.navigation.state==="idle"){fr(y.historyAction,y.location,{startUninterruptedRevalidation:!0});return}fr(P||y.historyAction,y.navigation.location,{overrideNavigation:y.navigation,enableViewTransition:V===!0})}}async function fr(g,x,C){N&&N.abort(),N=null,P=g,te=(C&&C.startUninterruptedRevalidation)===!0,vp(y.location,y.matches),W=(C&&C.preventScrollReset)===!0,V=(C&&C.enableViewTransition)===!0;let _=a||o,D=C&&C.overrideNavigation,U=C!=null&&C.initialHydration&&y.matches&&y.matches.length>0&&!v?y.matches:vr(_,x,s),H=(C&&C.flushSync)===!0;if(U&&y.initialized&&!Le&&Og(y.location,x)&&!(C&&C.submission&&pt(C.submission.formMethod))){Ir(x,{matches:U},{flushSync:H});return}let F=El(U,_,x.pathname);if(F.active&&F.matches&&(U=F.matches),!U){let{error:oe,notFoundMatches:ee,route:me}=ro(x.pathname);Ir(x,{matches:ee,loaderData:{},errors:{[me.id]:oe}},{flushSync:H});return}N=new AbortController;let A=Ur(e.history,x,N.signal,C&&C.submission),O;if(C&&C.pendingError)O=[yr(U).route.id,{type:re.error,error:C.pendingError}];else if(C&&C.submission&&pt(C.submission.formMethod)){let oe=await sp(A,x,C.submission,U,F.active,{replace:C.replace,flushSync:H});if(oe.shortCircuited)return;if(oe.pendingActionResult){let[ee,me]=oe.pendingActionResult;if(Ge(me)&&pl(me.error)&&me.error.status===404){N=null,Ir(x,{matches:oe.matches,loaderData:{},errors:{[ee]:me.error}});return}}U=oe.matches||U,O=oe.pendingActionResult,D=Do(x,C.submission),H=!1,F.active=!1,A=Ur(e.history,A.url,A.signal)}let{shortCircuited:b,matches:Q,loaderData:X,errors:Re}=await up(A,x,U,F.active,D,C&&C.submission,C&&C.fetcherSubmission,C&&C.replace,C&&C.initialHydration===!0,H,O);b||(N=null,Ir(x,de({matches:Q||U},pd(O),{loaderData:X,errors:Re})))}async function sp(g,x,C,_,D,U){U===void 0&&(U={}),to();let H=Bg(x,C);if(Fe({navigation:H},{flushSync:U.flushSync===!0}),D){let O=await jl(_,x.pathname,g.signal);if(O.type==="aborted")return{shortCircuited:!0};if(O.type==="error"){let b=yr(O.partialMatches).route.id;return{matches:O.partialMatches,pendingActionResult:[b,{type:re.error,error:O.error}]}}else if(O.matches)_=O.matches;else{let{notFoundMatches:b,error:Q,route:X}=ro(x.pathname);return{matches:b,pendingActionResult:[X.id,{type:re.error,error:Q}]}}}let F,A=bn(_,x);if(!A.route.action&&!A.route.lazy)F={type:re.error,error:Be(405,{method:g.method,pathname:x.pathname,routeId:A.route.id})};else if(F=(await yn("action",y,g,[A],_,null))[A.route.id],g.signal.aborted)return{shortCircuited:!0};if(kr(F)){let O;return U&&U.replace!=null?O=U.replace:O=ud(F.response.headers.get("Location"),new URL(g.url),s,e.history)===y.location.pathname+y.location.search,await pr(g,F,!0,{submission:C,replace:O}),{shortCircuited:!0}}if(Xt(F))throw Be(400,{type:"defer-action"});if(Ge(F)){let O=yr(_,A.route.id);return(U&&U.replace)!==!0&&(P=we.Push),{matches:_,pendingActionResult:[O.route.id,F]}}return{matches:_,pendingActionResult:[A.route.id,F]}}async function up(g,x,C,_,D,U,H,F,A,O,b){let Q=D||Do(x,U),X=U||H||gd(Q),Re=!te&&(!c.v7_partialHydration||!A);if(_){if(Re){let ge=Ns(b);Fe(de({navigation:Q},ge!==void 0?{actionData:ge}:{}),{flushSync:O})}let q=await jl(C,x.pathname,g.signal);if(q.type==="aborted")return{shortCircuited:!0};if(q.type==="error"){let ge=yr(q.partialMatches).route.id;return{matches:q.partialMatches,loaderData:{},errors:{[ge]:q.error}}}else if(q.matches)C=q.matches;else{let{error:ge,notFoundMatches:Fr,route:Sn}=ro(x.pathname);return{matches:Fr,loaderData:{},errors:{[Sn.id]:ge}}}}let oe=a||o,[ee,me]=od(e.history,y,C,X,x,c.v7_partialHydration&&A===!0,c.v7_skipActionErrorRevalidation,Le,Ft,At,Ie,ut,ie,oe,s,b);if(no(q=>!(C&&C.some(ge=>ge.route.id===q))||ee&&ee.some(ge=>ge.route.id===q)),$=++B,ee.length===0&&me.length===0){let q=Fs();return Ir(x,de({matches:C,loaderData:{},errors:b&&Ge(b[1])?{[b[0]]:b[1].error}:null},pd(b),q?{fetchers:new Map(y.fetchers)}:{}),{flushSync:O}),{shortCircuited:!0}}if(Re){let q={};if(!_){q.navigation=Q;let ge=Ns(b);ge!==void 0&&(q.actionData=ge)}me.length>0&&(q.fetchers=dp(me)),Fe(q,{flushSync:O})}me.forEach(q=>{Ut(q.key),q.controller&&z.set(q.key,q.controller)});let Or=()=>me.forEach(q=>Ut(q.key));N&&N.signal.addEventListener("abort",Or);let{loaderResults:xn,fetcherResults:jt}=await Ds(y,C,ee,me,g);if(g.signal.aborted)return{shortCircuited:!0};N&&N.signal.removeEventListener("abort",Or),me.forEach(q=>z.delete(q.key));let yt=$l(xn);if(yt)return await pr(g,yt.result,!0,{replace:F}),{shortCircuited:!0};if(yt=$l(jt),yt)return ie.add(yt.key),await pr(g,yt.result,!0,{replace:F}),{shortCircuited:!0};let{loaderData:lo,errors:wn}=cd(y,C,xn,b,me,jt,Oe);Oe.forEach((q,ge)=>{q.subscribe(Fr=>{(Fr||q.done)&&Oe.delete(ge)})}),c.v7_partialHydration&&A&&y.errors&&(wn=de({},y.errors,wn));let hr=Fs(),Rl=As($),Pl=hr||Rl||me.length>0;return de({matches:C,loaderData:lo,errors:wn},Pl?{fetchers:new Map(y.fetchers)}:{})}function Ns(g){if(g&&!Ge(g[1]))return{[g[0]]:g[1].data};if(y.actionData)return Object.keys(y.actionData).length===0?null:y.actionData}function dp(g){return g.forEach(x=>{let C=y.fetchers.get(x.key),_=zn(void 0,C?C.data:void 0);y.fetchers.set(x.key,_)}),new Map(y.fetchers)}function cp(g,x,C,_){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");Ut(g);let D=(_&&_.flushSync)===!0,U=a||o,H=Ta(y.location,y.matches,s,c.v7_prependBasename,C,c.v7_relativeSplatPath,x,_==null?void 0:_.relative),F=vr(U,H,s),A=El(F,U,H);if(A.active&&A.matches&&(F=A.matches),!F){Et(g,x,Be(404,{pathname:H}),{flushSync:D});return}let{path:O,submission:b,error:Q}=ld(c.v7_normalizeFormMethod,!0,H,_);if(Q){Et(g,x,Q,{flushSync:D});return}let X=bn(F,O),Re=(_&&_.preventScrollReset)===!0;if(b&&pt(b.formMethod)){fp(g,x,O,X,F,A.active,D,Re,b);return}ut.set(g,{routeId:x,path:O}),pp(g,x,O,X,F,A.active,D,Re,b)}async function fp(g,x,C,_,D,U,H,F,A){to(),ut.delete(g);function O(xe){if(!xe.route.action&&!xe.route.lazy){let Ar=Be(405,{method:A.formMethod,pathname:C,routeId:x});return Et(g,x,Ar,{flushSync:H}),!0}return!1}if(!U&&O(_))return;let b=y.fetchers.get(g);bt(g,Hg(A,b),{flushSync:H});let Q=new AbortController,X=Ur(e.history,C,Q.signal,A);if(U){let xe=await jl(D,new URL(X.url).pathname,X.signal,g);if(xe.type==="aborted")return;if(xe.type==="error"){Et(g,x,xe.error,{flushSync:H});return}else if(xe.matches){if(D=xe.matches,_=bn(D,C),O(_))return}else{Et(g,x,Be(404,{pathname:C}),{flushSync:H});return}}z.set(g,Q);let Re=B,ee=(await yn("action",y,X,[_],D,g))[_.route.id];if(X.signal.aborted){z.get(g)===Q&&z.delete(g);return}if(c.v7_fetcherPersist&&Ie.has(g)){if(kr(ee)||Ge(ee)){bt(g,Bt(void 0));return}}else{if(kr(ee))if(z.delete(g),$>Re){bt(g,Bt(void 0));return}else return ie.add(g),bt(g,zn(A)),pr(X,ee,!1,{fetcherSubmission:A,preventScrollReset:F});if(Ge(ee)){Et(g,x,ee.error);return}}if(Xt(ee))throw Be(400,{type:"defer-action"});let me=y.navigation.location||y.location,Or=Ur(e.history,me,Q.signal),xn=a||o,jt=y.navigation.state!=="idle"?vr(xn,y.navigation.location,s):y.matches;K(jt,"Didn't find any matches after fetcher action");let yt=++B;le.set(g,yt);let lo=zn(A,ee.data);y.fetchers.set(g,lo);let[wn,hr]=od(e.history,y,jt,A,me,!1,c.v7_skipActionErrorRevalidation,Le,Ft,At,Ie,ut,ie,xn,s,[_.route.id,ee]);hr.filter(xe=>xe.key!==g).forEach(xe=>{let Ar=xe.key,Hs=y.fetchers.get(Ar),wp=zn(void 0,Hs?Hs.data:void 0);y.fetchers.set(Ar,wp),Ut(Ar),xe.controller&&z.set(Ar,xe.controller)}),Fe({fetchers:new Map(y.fetchers)});let Rl=()=>hr.forEach(xe=>Ut(xe.key));Q.signal.addEventListener("abort",Rl);let{loaderResults:Pl,fetcherResults:q}=await Ds(y,jt,wn,hr,Or);if(Q.signal.aborted)return;Q.signal.removeEventListener("abort",Rl),le.delete(g),z.delete(g),hr.forEach(xe=>z.delete(xe.key));let ge=$l(Pl);if(ge)return pr(Or,ge.result,!1,{preventScrollReset:F});if(ge=$l(q),ge)return ie.add(ge.key),pr(Or,ge.result,!1,{preventScrollReset:F});let{loaderData:Fr,errors:Sn}=cd(y,jt,Pl,void 0,hr,q,Oe);if(y.fetchers.has(g)){let xe=Bt(ee.data);y.fetchers.set(g,xe)}As(yt),y.navigation.state==="loading"&&yt>$?(K(P,"Expected pending action"),N&&N.abort(),Ir(y.navigation.location,{matches:jt,loaderData:Fr,errors:Sn,fetchers:new Map(y.fetchers)})):(Fe({errors:Sn,loaderData:fd(y.loaderData,Fr,jt,Sn),fetchers:new Map(y.fetchers)}),Le=!1)}async function pp(g,x,C,_,D,U,H,F,A){let O=y.fetchers.get(g);bt(g,zn(A,O?O.data:void 0),{flushSync:H});let b=new AbortController,Q=Ur(e.history,C,b.signal);if(U){let ee=await jl(D,new URL(Q.url).pathname,Q.signal,g);if(ee.type==="aborted")return;if(ee.type==="error"){Et(g,x,ee.error,{flushSync:H});return}else if(ee.matches)D=ee.matches,_=bn(D,C);else{Et(g,x,Be(404,{pathname:C}),{flushSync:H});return}}z.set(g,b);let X=B,oe=(await yn("loader",y,Q,[_],D,g))[_.route.id];if(Xt(oe)&&(oe=await _s(oe,Q.signal,!0)||oe),z.get(g)===b&&z.delete(g),!Q.signal.aborted){if(Ie.has(g)){bt(g,Bt(void 0));return}if(kr(oe))if($>X){bt(g,Bt(void 0));return}else{ie.add(g),await pr(Q,oe,!1,{preventScrollReset:F});return}if(Ge(oe)){Et(g,x,oe.error);return}K(!Xt(oe),"Unhandled fetcher deferred data"),bt(g,Bt(oe.data))}}async function pr(g,x,C,_){let{submission:D,fetcherSubmission:U,preventScrollReset:H,replace:F}=_===void 0?{}:_;x.response.headers.has("X-Remix-Revalidate")&&(Le=!0);let A=x.response.headers.get("Location");K(A,"Expected a Location header on the redirect Response"),A=ud(A,new URL(g.url),s,e.history);let O=fl(y.location,A,{_isRedirect:!0});if(r){let ee=!1;if(x.response.headers.has("X-Remix-Reload-Document"))ee=!0;else if(Ps.test(A)){const me=e.history.createURL(A);ee=me.origin!==t.location.origin||gn(me.pathname,s)==null}if(ee){F?t.location.replace(A):t.location.assign(A);return}}N=null;let b=F===!0||x.response.headers.has("X-Remix-Replace")?we.Replace:we.Push,{formMethod:Q,formAction:X,formEncType:Re}=y.navigation;!D&&!U&&Q&&X&&Re&&(D=gd(y.navigation));let oe=D||U;if(Cg.has(x.response.status)&&oe&&pt(oe.formMethod))await fr(b,O,{submission:de({},oe,{formAction:A}),preventScrollReset:H||W,enableViewTransition:C?V:void 0});else{let ee=Do(O,D);await fr(b,O,{overrideNavigation:ee,fetcherSubmission:U,preventScrollReset:H||W,enableViewTransition:C?V:void 0})}}async function yn(g,x,C,_,D,U){let H,F={};try{H=await zg(u,g,x,C,_,D,U,i,l)}catch(A){return _.forEach(O=>{F[O.route.id]={type:re.error,error:A}}),F}for(let[A,O]of Object.entries(H))if(Fg(O)){let b=O.result;F[A]={type:re.redirect,response:Dg(b,C,A,D,s,c.v7_relativeSplatPath)}}else F[A]=await Ng(O);return F}async function Ds(g,x,C,_,D){let U=g.matches,H=yn("loader",g,D,C,x,null),F=Promise.all(_.map(async b=>{if(b.matches&&b.match&&b.controller){let X=(await yn("loader",g,Ur(e.history,b.path,b.controller.signal),[b.match],b.matches,b.key))[b.match.route.id];return{[b.key]:X}}else return Promise.resolve({[b.key]:{type:re.error,error:Be(404,{pathname:b.path})}})})),A=await H,O=(await F).reduce((b,Q)=>Object.assign(b,Q),{});return await Promise.all([Ug(x,A,D.signal,U,g.loaderData),Wg(x,O,_)]),{loaderResults:A,fetcherResults:O}}function to(){Le=!0,Ft.push(...no()),ut.forEach((g,x)=>{z.has(x)&&At.add(x),Ut(x)})}function bt(g,x,C){C===void 0&&(C={}),y.fetchers.set(g,x),Fe({fetchers:new Map(y.fetchers)},{flushSync:(C&&C.flushSync)===!0})}function Et(g,x,C,_){_===void 0&&(_={});let D=yr(y.matches,x);kl(g),Fe({errors:{[D.route.id]:C},fetchers:new Map(y.fetchers)},{flushSync:(_&&_.flushSync)===!0})}function Is(g){return Ye.set(g,(Ye.get(g)||0)+1),Ie.has(g)&&Ie.delete(g),y.fetchers.get(g)||Eg}function kl(g){let x=y.fetchers.get(g);z.has(g)&&!(x&&x.state==="loading"&&le.has(g))&&Ut(g),ut.delete(g),le.delete(g),ie.delete(g),c.v7_fetcherPersist&&Ie.delete(g),At.delete(g),y.fetchers.delete(g)}function hp(g){let x=(Ye.get(g)||0)-1;x<=0?(Ye.delete(g),Ie.add(g),c.v7_fetcherPersist||kl(g)):Ye.set(g,x),Fe({fetchers:new Map(y.fetchers)})}function Ut(g){let x=z.get(g);x&&(x.abort(),z.delete(g))}function Os(g){for(let x of g){let C=Is(x),_=Bt(C.data);y.fetchers.set(x,_)}}function Fs(){let g=[],x=!1;for(let C of ie){let _=y.fetchers.get(C);K(_,"Expected fetcher: "+C),_.state==="loading"&&(ie.delete(C),g.push(C),x=!0)}return Os(g),x}function As(g){let x=[];for(let[C,_]of le)if(_0}function mp(g,x){let C=y.blockers.get(g)||Ln;return rt.get(g)!==x&&rt.set(g,x),C}function bs(g){y.blockers.delete(g),rt.delete(g)}function Cl(g,x){let C=y.blockers.get(g)||Ln;K(C.state==="unblocked"&&x.state==="blocked"||C.state==="blocked"&&x.state==="blocked"||C.state==="blocked"&&x.state==="proceeding"||C.state==="blocked"&&x.state==="unblocked"||C.state==="proceeding"&&x.state==="unblocked","Invalid blocker state transition: "+C.state+" -> "+x.state);let _=new Map(y.blockers);_.set(g,x),Fe({blockers:_})}function Us(g){let{currentLocation:x,nextLocation:C,historyAction:_}=g;if(rt.size===0)return;rt.size>1&&Lr(!1,"A router only supports one blocker at a time");let D=Array.from(rt.entries()),[U,H]=D[D.length-1],F=y.blockers.get(U);if(!(F&&F.state==="proceeding")&&H({currentLocation:x,nextLocation:C,historyAction:_}))return U}function ro(g){let x=Be(404,{pathname:g}),C=a||o,{matches:_,route:D}=hd(C);return no(),{notFoundMatches:_,route:D,error:x}}function no(g){let x=[];return Oe.forEach((C,_)=>{(!g||g(_))&&(C.cancel(),x.push(_),Oe.delete(_))}),x}function gp(g,x,C){if(k=g,L=x,S=C||null,!m&&y.navigation===No){m=!0;let _=Bs(y.location,y.matches);_!=null&&Fe({restoreScrollPosition:_})}return()=>{k=null,L=null,S=null}}function Ws(g,x){return S&&S(g,x.map(_=>eg(_,y.loaderData)))||g.key}function vp(g,x){if(k&&L){let C=Ws(g,x);k[C]=L()}}function Bs(g,x){if(k){let C=Ws(g,x),_=k[C];if(typeof _=="number")return _}return null}function El(g,x,C){if(h)if(g){if(Object.keys(g[0].params).length>0)return{active:!0,matches:ii(x,C,s,!0)}}else return{active:!0,matches:ii(x,C,s,!0)||[]};return{active:!1,matches:null}}async function jl(g,x,C,_){if(!h)return{type:"success",matches:g};let D=g;for(;;){let U=a==null,H=a||o,F=i;try{await h({signal:C,path:x,matches:D,fetcherKey:_,patch:(b,Q)=>{C.aborted||sd(b,Q,H,F,l)}})}catch(b){return{type:"error",error:b,partialMatches:D}}finally{U&&!C.aborted&&(o=[...o])}if(C.aborted)return{type:"aborted"};let A=vr(H,x,s);if(A)return{type:"success",matches:A};let O=ii(H,x,s,!0);if(!O||D.length===O.length&&D.every((b,Q)=>b.route.id===O[Q].route.id))return{type:"success",matches:null};D=O}}function yp(g){i={},a=zi(g,l,void 0,i)}function xp(g,x){let C=a==null;sd(g,x,a||o,i,l),C&&(o=[...o],Fe({}))}return M={get basename(){return s},get future(){return c},get state(){return y},get routes(){return o},get window(){return t},initialize:lp,subscribe:op,enableScrollRestoration:gp,navigate:Ms,fetch:cp,revalidate:ap,createHref:g=>e.history.createHref(g),encodeLocation:g=>e.history.encodeLocation(g),getFetcher:Is,deleteFetcher:hp,dispose:ip,getBlocker:mp,deleteBlocker:bs,patchRoutes:xp,_internalFetchControllers:z,_internalActiveDeferreds:Oe,_internalSetRoutes:yp},M}function Pg(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function Ta(e,t,r,n,l,i,o,a){let s,u;if(o){s=[];for(let c of t)if(s.push(c),c.route.id===o){u=c;break}}else s=t,u=t[t.length-1];let h=Ji(l||".",Gi(s,i),gn(e.pathname,r)||e.pathname,a==="path");if(l==null&&(h.search=e.search,h.hash=e.hash),(l==null||l===""||l===".")&&u){let c=Ts(h.search);if(u.route.index&&!c)h.search=h.search?h.search.replace(/^\?/,"?index&"):"?index";else if(!u.route.index&&c){let p=new URLSearchParams(h.search),w=p.getAll("index");p.delete("index"),w.filter(S=>S).forEach(S=>p.append("index",S));let k=p.toString();h.search=k?"?"+k:""}}return n&&r!=="/"&&(h.pathname=h.pathname==="/"?r:zt([r,h.pathname])),zr(h)}function ld(e,t,r,n){if(!n||!Pg(n))return{path:r};if(n.formMethod&&!bg(n.formMethod))return{path:r,error:Be(405,{method:n.formMethod})};let l=()=>({path:r,error:Be(400,{type:"invalid-body"})}),i=n.formMethod||"get",o=e?i.toUpperCase():i.toLowerCase(),a=Xf(r);if(n.body!==void 0){if(n.formEncType==="text/plain"){if(!pt(o))return l();let p=typeof n.body=="string"?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce((w,k)=>{let[S,L]=k;return""+w+S+"="+L+` -`},""):String(n.body);return{path:r,submission:{formMethod:o,formAction:a,formEncType:n.formEncType,formData:void 0,json:void 0,text:p}}}else if(n.formEncType==="application/json"){if(!pt(o))return l();try{let p=typeof n.body=="string"?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:o,formAction:a,formEncType:n.formEncType,formData:void 0,json:p,text:void 0}}}catch{return l()}}}K(typeof FormData=="function","FormData is not available in this environment");let s,u;if(n.formData)s=za(n.formData),u=n.formData;else if(n.body instanceof FormData)s=za(n.body),u=n.body;else if(n.body instanceof URLSearchParams)s=n.body,u=dd(s);else if(n.body==null)s=new URLSearchParams,u=new FormData;else try{s=new URLSearchParams(n.body),u=dd(s)}catch{return l()}let h={formMethod:o,formAction:a,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:u,json:void 0,text:void 0};if(pt(h.formMethod))return{path:r,submission:h};let c=ur(r);return t&&c.search&&Ts(c.search)&&s.append("index",""),c.search="?"+s,{path:zr(c),submission:h}}function id(e,t,r){r===void 0&&(r=!1);let n=e.findIndex(l=>l.route.id===t);return n>=0?e.slice(0,r?n+1:n):e}function od(e,t,r,n,l,i,o,a,s,u,h,c,p,w,k,S){let L=S?Ge(S[1])?S[1].error:S[1].data:void 0,m=e.createURL(t.location),f=e.createURL(l),v=r;i&&t.errors?v=id(r,Object.keys(t.errors)[0],!0):S&&Ge(S[1])&&(v=id(r,S[0]));let E=S?S[1].statusCode:void 0,j=o&&E&&E>=400,M=v.filter((P,W)=>{let{route:N}=P;if(N.lazy)return!0;if(N.loader==null)return!1;if(i)return La(N,t.loaderData,t.errors);if(_g(t.loaderData,t.matches[W],P)||s.some(Z=>Z===P.route.id))return!0;let V=t.matches[W],J=P;return ad(P,de({currentUrl:m,currentParams:V.params,nextUrl:f,nextParams:J.params},n,{actionResult:L,actionStatus:E,defaultShouldRevalidate:j?!1:a||m.pathname+m.search===f.pathname+f.search||m.search!==f.search||Kf(V,J)}))}),y=[];return c.forEach((P,W)=>{if(i||!r.some(te=>te.route.id===P.routeId)||h.has(W))return;let N=vr(w,P.path,k);if(!N){y.push({key:W,routeId:P.routeId,path:P.path,matches:null,match:null,controller:null});return}let V=t.fetchers.get(W),J=bn(N,P.path),Z=!1;p.has(W)?Z=!1:u.has(W)?(u.delete(W),Z=!0):V&&V.state!=="idle"&&V.data===void 0?Z=a:Z=ad(J,de({currentUrl:m,currentParams:t.matches[t.matches.length-1].params,nextUrl:f,nextParams:r[r.length-1].params},n,{actionResult:L,actionStatus:E,defaultShouldRevalidate:j?!1:a})),Z&&y.push({key:W,routeId:P.routeId,path:P.path,matches:N,match:J,controller:new AbortController})}),[M,y]}function La(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=t!=null&&t[e.id]!==void 0,l=r!=null&&r[e.id]!==void 0;return!n&&l?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!n&&!l}function _g(e,t,r){let n=!t||r.route.id!==t.route.id,l=e[r.route.id]===void 0;return n||l}function Kf(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function ad(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function sd(e,t,r,n,l){var i;let o;if(e){let u=n[e];K(u,"No route found to patch children into: routeId = "+e),u.children||(u.children=[]),o=u.children}else o=r;let a=t.filter(u=>!o.some(h=>Yf(u,h))),s=zi(a,l,[e||"_","patch",String(((i=o)==null?void 0:i.length)||"0")],n);o.push(...s)}function Yf(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,n)=>{var l;return(l=t.children)==null?void 0:l.some(i=>Yf(r,i))}):!1}async function Tg(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let l=r[e.id];K(l,"No route found in manifest");let i={};for(let o in n){let s=l[o]!==void 0&&o!=="hasErrorBoundary";Lr(!s,'Route "'+l.id+'" has a static property "'+o+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+o+'" will be ignored.')),!s&&!Zm.has(o)&&(i[o]=n[o])}Object.assign(l,i),Object.assign(l,de({},t(l),{lazy:void 0}))}async function Lg(e){let{matches:t}=e,r=t.filter(l=>l.shouldLoad);return(await Promise.all(r.map(l=>l.resolve()))).reduce((l,i,o)=>Object.assign(l,{[r[o].route.id]:i}),{})}async function zg(e,t,r,n,l,i,o,a,s,u){let h=i.map(w=>w.route.lazy?Tg(w.route,s,a):void 0),c=i.map((w,k)=>{let S=h[k],L=l.some(f=>f.route.id===w.route.id);return de({},w,{shouldLoad:L,resolve:async f=>(f&&n.method==="GET"&&(w.route.lazy||w.route.loader)&&(L=!0),L?Mg(t,n,w,S,f,u):Promise.resolve({type:re.data,result:void 0}))})}),p=await e({matches:c,request:n,params:i[0].params,fetcherKey:o,context:u});try{await Promise.all(h)}catch{}return p}async function Mg(e,t,r,n,l,i){let o,a,s=u=>{let h,c=new Promise((k,S)=>h=S);a=()=>h(),t.signal.addEventListener("abort",a);let p=k=>typeof u!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+r.route.id+"]"))):u({request:t,params:r.params,context:i},...k!==void 0?[k]:[]),w=(async()=>{try{return{type:"data",result:await(l?l(S=>p(S)):p())}}catch(k){return{type:"error",result:k}}})();return Promise.race([w,c])};try{let u=r.route[e];if(n)if(u){let h,[c]=await Promise.all([s(u).catch(p=>{h=p}),n]);if(h!==void 0)throw h;o=c}else if(await n,u=r.route[e],u)o=await s(u);else if(e==="action"){let h=new URL(t.url),c=h.pathname+h.search;throw Be(405,{method:t.method,pathname:c,routeId:r.route.id})}else return{type:re.data,result:void 0};else if(u)o=await s(u);else{let h=new URL(t.url),c=h.pathname+h.search;throw Be(404,{pathname:c})}K(o.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(u){return{type:re.error,result:u}}finally{a&&t.signal.removeEventListener("abort",a)}return o}async function Ng(e){let{result:t,type:r}=e;if(Gf(t)){let c;try{let p=t.headers.get("Content-Type");p&&/\bapplication\/json\b/.test(p)?t.body==null?c=null:c=await t.json():c=await t.text()}catch(p){return{type:re.error,error:p}}return r===re.error?{type:re.error,error:new Mi(t.status,t.statusText,c),statusCode:t.status,headers:t.headers}:{type:re.data,data:c,statusCode:t.status,headers:t.headers}}if(r===re.error){if(md(t)){var n,l;if(t.data instanceof Error){var i,o;return{type:re.error,error:t.data,statusCode:(i=t.init)==null?void 0:i.status,headers:(o=t.init)!=null&&o.headers?new Headers(t.init.headers):void 0}}return{type:re.error,error:new Mi(((n=t.init)==null?void 0:n.status)||500,void 0,t.data),statusCode:pl(t)?t.status:void 0,headers:(l=t.init)!=null&&l.headers?new Headers(t.init.headers):void 0}}return{type:re.error,error:t,statusCode:pl(t)?t.status:void 0}}if(Ag(t)){var a,s;return{type:re.deferred,deferredData:t,statusCode:(a=t.init)==null?void 0:a.status,headers:((s=t.init)==null?void 0:s.headers)&&new Headers(t.init.headers)}}if(md(t)){var u,h;return{type:re.data,data:t.data,statusCode:(u=t.init)==null?void 0:u.status,headers:(h=t.init)!=null&&h.headers?new Headers(t.init.headers):void 0}}return{type:re.data,data:t}}function Dg(e,t,r,n,l,i){let o=e.headers.get("Location");if(K(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!Ps.test(o)){let a=n.slice(0,n.findIndex(s=>s.route.id===r)+1);o=Ta(new URL(t.url),a,l,!0,o,i),e.headers.set("Location",o)}return e}function ud(e,t,r,n){let l=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];if(Ps.test(e)){let i=e,o=i.startsWith("//")?new URL(t.protocol+i):new URL(i);if(l.includes(o.protocol))throw new Error("Invalid redirect location");let a=gn(o.pathname,r)!=null;if(o.origin===t.origin&&a)return o.pathname+o.search+o.hash}try{let i=n.createURL(e);if(l.includes(i.protocol))throw new Error("Invalid redirect location")}catch{}return e}function Ur(e,t,r,n){let l=e.createURL(Xf(t)).toString(),i={signal:r};if(n&&pt(n.formMethod)){let{formMethod:o,formEncType:a}=n;i.method=o.toUpperCase(),a==="application/json"?(i.headers=new Headers({"Content-Type":a}),i.body=JSON.stringify(n.json)):a==="text/plain"?i.body=n.text:a==="application/x-www-form-urlencoded"&&n.formData?i.body=za(n.formData):i.body=n.formData}return new Request(l,i)}function za(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function dd(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Ig(e,t,r,n,l){let i={},o=null,a,s=!1,u={},h=r&&Ge(r[1])?r[1].error:void 0;return e.forEach(c=>{if(!(c.route.id in t))return;let p=c.route.id,w=t[p];if(K(!kr(w),"Cannot handle redirect results in processLoaderData"),Ge(w)){let k=w.error;h!==void 0&&(k=h,h=void 0),o=o||{};{let S=yr(e,p);o[S.route.id]==null&&(o[S.route.id]=k)}i[p]=void 0,s||(s=!0,a=pl(w.error)?w.error.status:500),w.headers&&(u[p]=w.headers)}else Xt(w)?(n.set(p,w.deferredData),i[p]=w.deferredData.data,w.statusCode!=null&&w.statusCode!==200&&!s&&(a=w.statusCode),w.headers&&(u[p]=w.headers)):(i[p]=w.data,w.statusCode&&w.statusCode!==200&&!s&&(a=w.statusCode),w.headers&&(u[p]=w.headers))}),h!==void 0&&r&&(o={[r[0]]:h},i[r[0]]=void 0),{loaderData:i,errors:o,statusCode:a||200,loaderHeaders:u}}function cd(e,t,r,n,l,i,o){let{loaderData:a,errors:s}=Ig(t,r,n,o);return l.forEach(u=>{let{key:h,match:c,controller:p}=u,w=i[h];if(K(w,"Did not find corresponding fetcher result"),!(p&&p.signal.aborted))if(Ge(w)){let k=yr(e.matches,c==null?void 0:c.route.id);s&&s[k.route.id]||(s=de({},s,{[k.route.id]:w.error})),e.fetchers.delete(h)}else if(kr(w))K(!1,"Unhandled fetcher revalidation redirect");else if(Xt(w))K(!1,"Unhandled fetcher deferred data");else{let k=Bt(w.data);e.fetchers.set(h,k)}}),{loaderData:a,errors:s}}function fd(e,t,r,n){let l=de({},t);for(let i of r){let o=i.route.id;if(t.hasOwnProperty(o)?t[o]!==void 0&&(l[o]=t[o]):e[o]!==void 0&&i.route.loader&&(l[o]=e[o]),n&&n.hasOwnProperty(o))break}return l}function pd(e){return e?Ge(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function yr(e,t){return(t?e.slice(0,e.findIndex(n=>n.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function hd(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Be(e,t){let{pathname:r,routeId:n,method:l,type:i,message:o}=t===void 0?{}:t,a="Unknown Server Error",s="Unknown @remix-run/router error";return e===400?(a="Bad Request",l&&r&&n?s="You made a "+l+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":i==="defer-action"?s="defer() is not supported in actions":i==="invalid-body"&&(s="Unable to encode submission body")):e===403?(a="Forbidden",s='Route "'+n+'" does not match URL "'+r+'"'):e===404?(a="Not Found",s='No route matches URL "'+r+'"'):e===405&&(a="Method Not Allowed",l&&r&&n?s="You made a "+l.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":l&&(s='Invalid request method "'+l.toUpperCase()+'"')),new Mi(e||500,a,new Error(s),!0)}function $l(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,l]=t[r];if(kr(l))return{key:n,result:l}}}function Xf(e){let t=typeof e=="string"?ur(e):e;return zr(de({},t,{hash:""}))}function Og(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Fg(e){return Gf(e.result)&&kg.has(e.result.status)}function Xt(e){return e.type===re.deferred}function Ge(e){return e.type===re.error}function kr(e){return(e&&e.type)===re.redirect}function md(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function Ag(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function Gf(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function bg(e){return Sg.has(e.toLowerCase())}function pt(e){return xg.has(e.toLowerCase())}async function Ug(e,t,r,n,l){let i=Object.entries(t);for(let o=0;o(p==null?void 0:p.route.id)===a);if(!u)continue;let h=n.find(p=>p.route.id===u.route.id),c=h!=null&&!Kf(h,u)&&(l&&l[u.route.id])!==void 0;Xt(s)&&c&&await _s(s,r,!1).then(p=>{p&&(t[a]=p)})}}async function Wg(e,t,r){for(let n=0;n(u==null?void 0:u.route.id)===i)&&Xt(a)&&(K(o,"Expected an AbortController for revalidating fetcher deferred result"),await _s(a,o.signal,!0).then(u=>{u&&(t[l]=u)}))}}async function _s(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:re.data,data:e.deferredData.unwrappedData}}catch(l){return{type:re.error,error:l}}return{type:re.data,data:e.deferredData.data}}}function Ts(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function bn(e,t){let r=typeof t=="string"?ur(t).search:t.search;if(e[e.length-1].route.index&&Ts(r||""))return e[e.length-1];let n=Vf(e);return n[n.length-1]}function gd(e){let{formMethod:t,formAction:r,formEncType:n,text:l,formData:i,json:o}=e;if(!(!t||!r||!n)){if(l!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:l};if(i!=null)return{formMethod:t,formAction:r,formEncType:n,formData:i,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:o,text:void 0}}}function Do(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Bg(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function zn(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Hg(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function Bt(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Vg(e,t){try{let r=e.sessionStorage.getItem(Qf);if(r){let n=JSON.parse(r);for(let[l,i]of Object.entries(n||{}))i&&Array.isArray(i)&&t.set(l,new Set(i||[]))}}catch{}}function $g(e,t){if(t.size>0){let r={};for(let[n,l]of t)r[n]=[...l];try{e.sessionStorage.setItem(Qf,JSON.stringify(r))}catch(n){Lr(!1,"Failed to save applied view transitions in sessionStorage ("+n+").")}}}/** - * React Router v6.30.3 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function Ni(){return Ni=Object.assign?Object.assign.bind():function(e){for(var t=1;t{a.current=!0}),R.useCallback(function(u,h){if(h===void 0&&(h={}),!a.current)return;if(typeof u=="number"){n.go(u);return}let c=Ji(u,JSON.parse(o),i,h.relative==="path");e==null&&t!=="/"&&(c.pathname=c.pathname==="/"?t:zt([t,c.pathname])),(h.replace?n.replace:n.push)(c,h.state,h)},[t,n,o,i,e])}function ep(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=R.useContext(dr),{matches:l}=R.useContext(cr),{pathname:i}=wl(),o=JSON.stringify(Gi(l,n.v7_relativeSplatPath));return R.useMemo(()=>Ji(e,JSON.parse(o),i,r==="path"),[e,o,i,r])}function Yg(e,t,r,n){vn()||K(!1);let{navigator:l}=R.useContext(dr),{matches:i}=R.useContext(cr),o=i[i.length-1],a=o?o.params:{};o&&o.pathname;let s=o?o.pathnameBase:"/";o&&o.route;let u=wl(),h;h=u;let c=h.pathname||"/",p=c;if(s!=="/"){let S=s.replace(/^\//,"").split("/");p="/"+c.replace(/^\//,"").split("/").slice(S.length).join("/")}let w=vr(e,{pathname:p});return qg(w&&w.map(S=>Object.assign({},S,{params:Object.assign({},a,S.params),pathname:zt([s,l.encodeLocation?l.encodeLocation(S.pathname).pathname:S.pathname]),pathnameBase:S.pathnameBase==="/"?s:zt([s,l.encodeLocation?l.encodeLocation(S.pathnameBase).pathname:S.pathnameBase])})),i,r,n)}function Xg(){let e=nv(),t=pl(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,l={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return R.createElement(R.Fragment,null,R.createElement("h2",null,"Unexpected Application Error!"),R.createElement("h3",{style:{fontStyle:"italic"}},t),r?R.createElement("pre",{style:l},r):null,null)}const Gg=R.createElement(Xg,null);class Jg extends R.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?R.createElement(cr.Provider,{value:this.props.routeContext},R.createElement(Zf.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Zg(e){let{routeContext:t,match:r,children:n}=e,l=R.useContext(Zi);return l&&l.static&&l.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(l.staticContext._deepestRenderedBoundaryId=r.route.id),R.createElement(cr.Provider,{value:t},n)}function qg(e,t,r,n){var l;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var i;if(!r)return null;if(r.errors)e=r.matches;else if((i=n)!=null&&i.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,a=(l=r)==null?void 0:l.errors;if(a!=null){let h=o.findIndex(c=>c.route.id&&(a==null?void 0:a[c.route.id])!==void 0);h>=0||K(!1),o=o.slice(0,Math.min(o.length,h+1))}let s=!1,u=-1;if(r&&n&&n.v7_partialHydration)for(let h=0;h=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((h,c,p)=>{let w,k=!1,S=null,L=null;r&&(w=a&&c.route.id?a[c.route.id]:void 0,S=c.route.errorElement||Gg,s&&(u<0&&p===0?(iv("route-fallback"),k=!0,L=null):u===p&&(k=!0,L=c.route.hydrateFallbackElement||null)));let m=t.concat(o.slice(0,p+1)),f=()=>{let v;return w?v=S:k?v=L:c.route.Component?v=R.createElement(c.route.Component,null):c.route.element?v=c.route.element:v=h,R.createElement(Zg,{match:c,routeContext:{outlet:h,matches:m,isDataRoute:r!=null},children:v})};return r&&(c.route.ErrorBoundary||c.route.errorElement||p===0)?R.createElement(Jg,{location:r.location,revalidation:r.revalidation,component:S,error:w,children:f(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):f()},null)}var tp=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(tp||{}),rp=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(rp||{});function ev(e){let t=R.useContext(Zi);return t||K(!1),t}function tv(e){let t=R.useContext(Jf);return t||K(!1),t}function rv(e){let t=R.useContext(cr);return t||K(!1),t}function np(e){let t=rv(),r=t.matches[t.matches.length-1];return r.route.id||K(!1),r.route.id}function nv(){var e;let t=R.useContext(Zf),r=tv(rp.UseRouteError),n=np();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function lv(){let{router:e}=ev(tp.UseNavigateStable),t=np(),r=R.useRef(!1);return qf(()=>{r.current=!0}),R.useCallback(function(l,i){i===void 0&&(i={}),r.current&&(typeof l=="number"?e.navigate(l):e.navigate(l,Ni({fromRouteId:t},i)))},[e,t])}const vd={};function iv(e,t,r){vd[e]||(vd[e]=!0)}function ov(e,t){e==null||e.v7_startTransition,(e==null?void 0:e.v7_relativeSplatPath)===void 0&&(!t||t.v7_relativeSplatPath),t&&(t.v7_fetcherPersist,t.v7_normalizeFormMethod,t.v7_partialHydration,t.v7_skipActionErrorRevalidation)}function av(e){let{to:t,replace:r,state:n,relative:l}=e;vn()||K(!1);let{future:i,static:o}=R.useContext(dr),{matches:a}=R.useContext(cr),{pathname:s}=wl(),u=Dr(),h=Ji(t,Gi(a,i.v7_relativeSplatPath),s,l==="path"),c=JSON.stringify(h);return R.useEffect(()=>u(JSON.parse(c),{replace:r,state:n,relative:l}),[u,c,l,r,n]),null}function sv(e){let{basename:t="/",children:r=null,location:n,navigationType:l=we.Pop,navigator:i,static:o=!1,future:a}=e;vn()&&K(!1);let s=t.replace(/^\/*/,"/"),u=R.useMemo(()=>({basename:s,navigator:i,static:o,future:Ni({v7_relativeSplatPath:!1},a)}),[s,a,i,o]);typeof n=="string"&&(n=ur(n));let{pathname:h="/",search:c="",hash:p="",state:w=null,key:k="default"}=n,S=R.useMemo(()=>{let L=gn(h,s);return L==null?null:{location:{pathname:L,search:c,hash:p,state:w,key:k},navigationType:l}},[s,h,c,p,w,k,l]);return S==null?null:R.createElement(dr.Provider,{value:u},R.createElement(Ls.Provider,{children:r,value:S}))}new Promise(()=>{});function uv(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:R.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:R.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:R.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}/** - * React Router DOM v6.30.3 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function hl(){return hl=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(r[l]=e[l]);return r}function cv(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function fv(e,t){return e.button===0&&(!t||t==="_self")&&!cv(e)}const pv=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],hv="6";try{window.__reactRouterVersion=hv}catch{}function mv(e,t){return Rg({basename:void 0,future:hl({},void 0,{v7_prependBasename:!0}),history:Xm({window:void 0}),hydrationData:gv(),routes:e,mapRouteProperties:uv,dataStrategy:void 0,patchRoutesOnNavigation:void 0,window:void 0}).initialize()}function gv(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=hl({},t,{errors:vv(t.errors)})),t}function vv(e){if(!e)return null;let t=Object.entries(e),r={};for(let[n,l]of t)if(l&&l.__type==="RouteErrorResponse")r[n]=new Mi(l.status,l.statusText,l.data,l.internal===!0);else if(l&&l.__type==="Error"){if(l.__subType){let i=window[l.__subType];if(typeof i=="function")try{let o=new i(l.message);o.stack="",r[n]=o}catch{}}if(r[n]==null){let i=new Error(l.message);i.stack="",r[n]=i}}else r[n]=l;return r}const yv=R.createContext({isTransitioning:!1}),xv=R.createContext(new Map),wv="startTransition",yd=Op[wv],Sv="flushSync",xd=Ym[Sv];function kv(e){yd?yd(e):e()}function Mn(e){xd?xd(e):e()}class Cv{constructor(){this.status="pending",this.promise=new Promise((t,r)=>{this.resolve=n=>{this.status==="pending"&&(this.status="resolved",t(n))},this.reject=n=>{this.status==="pending"&&(this.status="rejected",r(n))}})}}function Ev(e){let{fallbackElement:t,router:r,future:n}=e,[l,i]=R.useState(r.state),[o,a]=R.useState(),[s,u]=R.useState({isTransitioning:!1}),[h,c]=R.useState(),[p,w]=R.useState(),[k,S]=R.useState(),L=R.useRef(new Map),{v7_startTransition:m}=n||{},f=R.useCallback(P=>{m?kv(P):P()},[m]),v=R.useCallback((P,W)=>{let{deletedFetchers:N,flushSync:V,viewTransitionOpts:J}=W;P.fetchers.forEach((te,Le)=>{te.data!==void 0&&L.current.set(Le,te.data)}),N.forEach(te=>L.current.delete(te));let Z=r.window==null||r.window.document==null||typeof r.window.document.startViewTransition!="function";if(!J||Z){V?Mn(()=>i(P)):f(()=>i(P));return}if(V){Mn(()=>{p&&(h&&h.resolve(),p.skipTransition()),u({isTransitioning:!0,flushSync:!0,currentLocation:J.currentLocation,nextLocation:J.nextLocation})});let te=r.window.document.startViewTransition(()=>{Mn(()=>i(P))});te.finished.finally(()=>{Mn(()=>{c(void 0),w(void 0),a(void 0),u({isTransitioning:!1})})}),Mn(()=>w(te));return}p?(h&&h.resolve(),p.skipTransition(),S({state:P,currentLocation:J.currentLocation,nextLocation:J.nextLocation})):(a(P),u({isTransitioning:!0,flushSync:!1,currentLocation:J.currentLocation,nextLocation:J.nextLocation}))},[r.window,p,h,L,f]);R.useLayoutEffect(()=>r.subscribe(v),[r,v]),R.useEffect(()=>{s.isTransitioning&&!s.flushSync&&c(new Cv)},[s]),R.useEffect(()=>{if(h&&o&&r.window){let P=o,W=h.promise,N=r.window.document.startViewTransition(async()=>{f(()=>i(P)),await W});N.finished.finally(()=>{c(void 0),w(void 0),a(void 0),u({isTransitioning:!1})}),w(N)}},[f,o,h,r.window]),R.useEffect(()=>{h&&o&&l.location.key===o.location.key&&h.resolve()},[h,p,l.location,o]),R.useEffect(()=>{!s.isTransitioning&&k&&(a(k.state),u({isTransitioning:!0,flushSync:!1,currentLocation:k.currentLocation,nextLocation:k.nextLocation}),S(void 0))},[s.isTransitioning,k]),R.useEffect(()=>{},[]);let E=R.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:P=>r.navigate(P),push:(P,W,N)=>r.navigate(P,{state:W,preventScrollReset:N==null?void 0:N.preventScrollReset}),replace:(P,W,N)=>r.navigate(P,{replace:!0,state:W,preventScrollReset:N==null?void 0:N.preventScrollReset})}),[r]),j=r.basename||"/",M=R.useMemo(()=>({router:r,navigator:E,static:!1,basename:j}),[r,E,j]),y=R.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return R.useEffect(()=>ov(n,r.future),[n,r.future]),R.createElement(R.Fragment,null,R.createElement(Zi.Provider,{value:M},R.createElement(Jf.Provider,{value:l},R.createElement(xv.Provider,{value:L.current},R.createElement(yv.Provider,{value:s},R.createElement(sv,{basename:j,location:l.location,navigationType:l.historyAction,navigator:E,future:y},l.initialized||r.future.v7_partialHydration?R.createElement(jv,{routes:r.routes,future:r.future,state:l}):t))))),null)}const jv=R.memo(Rv);function Rv(e){let{routes:t,future:r,state:n}=e;return Yg(t,void 0,n,r)}const Pv=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",_v=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,zs=R.forwardRef(function(t,r){let{onClick:n,relative:l,reloadDocument:i,replace:o,state:a,target:s,to:u,preventScrollReset:h,viewTransition:c}=t,p=dv(t,pv),{basename:w}=R.useContext(dr),k,S=!1;if(typeof u=="string"&&_v.test(u)&&(k=u,Pv))try{let v=new URL(window.location.href),E=u.startsWith("//")?new URL(v.protocol+u):new URL(u),j=gn(E.pathname,w);E.origin===v.origin&&j!=null?u=j+E.search+E.hash:S=!0}catch{}let L=Qg(u,{relative:l}),m=Tv(u,{replace:o,state:a,target:s,preventScrollReset:h,relative:l,viewTransition:c});function f(v){n&&n(v),v.defaultPrevented||m(v)}return R.createElement("a",hl({},p,{href:k||L,onClick:S||i?n:f,ref:r,target:s}))});var wd;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(wd||(wd={}));var Sd;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Sd||(Sd={}));function Tv(e,t){let{target:r,replace:n,state:l,preventScrollReset:i,relative:o,viewTransition:a}=t===void 0?{}:t,s=Dr(),u=wl(),h=ep(e,{relative:o});return R.useCallback(c=>{if(fv(c,r)){c.preventDefault();let p=n!==void 0?n:zr(u)===zr(h);s(e,{replace:p,state:l,preventScrollReset:i,relative:o,viewTransition:a})}},[u,s,h,n,l,r,e,i,o,a])}const Lv=450;async function zv(){return await new Promise(e=>window.setTimeout(e,Lv)),{id:"agent-001",name:"Ana Camolesi",email:"ana.camolesi@sothis.local"}}function Mv(){const e=Dr(),[t,r]=R.useState(!1);async function n(){r(!0);try{await zv(),e("/home")}finally{r(!1)}}return{isSubmitting:t,login:n}}const kd={width:"100%",border:"1px solid var(--color-border)",borderRadius:"16px",padding:"0.95rem 1rem",background:"#fff",color:"var(--color-text)",outline:"none"},Nv={width:"100%",padding:"0.95rem 1rem",borderRadius:"16px",border:"none",background:"linear-gradient(135deg, var(--color-primary), #0b5a86)",color:"#fff",fontWeight:700,boxShadow:"var(--shadow-md)"},Dv={width:"100%",padding:"0.95rem 1rem",borderRadius:"16px",border:"1px solid rgba(0, 49, 80, 0.16)",background:"#fff",color:"var(--color-primary)",fontWeight:700},Iv={username:"",password:""};function Ov(){const[e,t]=R.useState(Iv),{login:r,isSubmitting:n}=Mv();async function l(i){i.preventDefault(),await r(e)}return d.jsxs("form",{onSubmit:l,style:{display:"grid",gap:"1rem"},children:[d.jsxs("label",{style:{display:"grid",gap:"0.5rem"},children:[d.jsx("span",{style:{fontWeight:600},children:"Usuario AD"}),d.jsx("input",{style:kd,type:"text",placeholder:"seu.usuario",value:e.username,onChange:i=>t(o=>({...o,username:i.target.value}))})]}),d.jsxs("label",{style:{display:"grid",gap:"0.5rem"},children:[d.jsx("span",{style:{fontWeight:600},children:"Senha"}),d.jsx("input",{style:kd,type:"password",placeholder:"Digite sua senha",value:e.password,onChange:i=>t(o=>({...o,password:i.target.value}))})]}),d.jsx("button",{style:Nv,type:"submit",disabled:n,children:n?"Entrando...":"Entrar"}),d.jsx("button",{style:Dv,type:"button",children:"Entrar com Microsoft"}),d.jsx("a",{href:"#forgot-password",style:{justifySelf:"center",color:"var(--color-secondary)",fontWeight:600},children:"Esqueci minha senha"})]})}const Fv="/assets/logo_white_mode-BIHgqUPv.png",Av="/assets/logo_white_dark_mode-BKcVSu03.png",Cd={sm:{gap:"0.75rem",logoHeight:42,titleSize:"1rem",subtitleSize:"0.85rem"},md:{gap:"1rem",logoHeight:54,titleSize:"1.2rem",subtitleSize:"0.95rem"},lg:{gap:"1.25rem",logoHeight:78,titleSize:"1.5rem",subtitleSize:"1.05rem"}};function qi({compact:e=!1,theme:t="light",size:r}){const n=t==="dark"?Av:Fv,i=Cd[r||(e?"sm":"md")]||Cd.md;return d.jsxs("div",{style:{display:"flex",alignItems:"center",gap:i.gap},children:[d.jsx("img",{src:n,alt:"Sothis",style:{height:i.logoHeight,width:"auto",objectFit:"contain"}}),d.jsxs("div",{children:[d.jsx("div",{style:{fontSize:i.titleSize,fontWeight:800},children:"Sothis Omnichannel"}),d.jsx("div",{style:{color:"var(--color-text-soft)",fontSize:i.subtitleSize},children:"Central de atendimento unificada"})]})]})}function bv(){return d.jsx("main",{style:{minHeight:"100vh",display:"grid",placeItems:"center",padding:"2rem"},children:d.jsxs("section",{style:{width:"min(100%, 1080px)",display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(320px, 1fr))",gap:"1.5rem",alignItems:"stretch"},children:[d.jsxs("article",{style:{background:"linear-gradient(180deg, rgba(0, 49, 80, 0.98) 0%, rgba(11, 90, 134, 0.95) 100%)",color:"#fff",borderRadius:"32px",padding:"2.5rem",boxShadow:"var(--shadow-lg)",position:"relative",overflow:"hidden",display:"grid",gap:"1.5rem",alignContent:"space-between",minHeight:"540px"},children:[d.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,background:"radial-gradient(circle at top right, rgba(229, 162, 42, 0.3), transparent 30%), radial-gradient(circle at bottom left, rgba(0, 164, 183, 0.22), transparent 35%)"}}),d.jsxs("div",{style:{position:"relative",display:"grid",gap:"1.5rem"},children:[d.jsx(qi,{theme:"dark"}),d.jsxs("div",{children:[d.jsx("p",{style:{textTransform:"uppercase",letterSpacing:"0.12em",fontWeight:700,color:"rgba(255, 255, 255, 0.7)",margin:0},children:"MVP de atendimento"}),d.jsx("h1",{style:{margin:"0.75rem 0",fontSize:"clamp(2.2rem, 4vw, 3.4rem)",lineHeight:1.05},children:"Conecte-se com seu cliente em uma unica tela."}),d.jsx("p",{style:{margin:0,maxWidth:"34rem",color:"rgba(255, 255, 255, 0.78)",fontSize:"1.05rem"},children:"Acesse a exeriência all in one e acompanhe o produto pensado para facilitar o contato no dia a dia."})]})]}),d.jsx("div",{style:{position:"relative",display:"grid",gridTemplateColumns:"repeat(3, minmax(0, 1fr))",gap:"0.75rem"},children:[{label:"Canais",value:"WhatsApp, SMS e Voz"},{label:"Fila",value:"Distribuicao rapida"},{label:"UX",value:"Padrao SaaS responsivo"}].map(e=>d.jsxs("div",{style:{padding:"1rem",borderRadius:"20px",background:"rgba(255, 255, 255, 0.1)",backdropFilter:"blur(10px)"},children:[d.jsx("div",{style:{fontSize:"0.8rem",opacity:.7},children:e.label}),d.jsx("strong",{style:{display:"block",marginTop:"0.35rem"},children:e.value})]},e.label))})]}),d.jsxs("article",{style:{background:"var(--color-surface)",backdropFilter:"blur(12px)",border:"1px solid rgba(255, 255, 255, 0.65)",borderRadius:"32px",padding:"2.5rem",boxShadow:"var(--shadow-lg)",display:"grid",gap:"1.75rem",alignContent:"center"},children:[d.jsxs("div",{style:{display:"grid",gap:"0.75rem"},children:[d.jsx("span",{style:{width:"fit-content",padding:"0.4rem 0.8rem",borderRadius:999,background:"rgba(0, 164, 183, 0.12)",color:"var(--color-primary)",fontWeight:700,fontSize:"0.85rem"},children:"Login seguro"}),d.jsxs("div",{children:[d.jsx("h2",{style:{margin:0,fontSize:"2rem"},children:"Entrar na plataforma"}),d.jsx("p",{style:{margin:"0.75rem 0 0",color:"var(--color-text-soft)",lineHeight:1.6},children:"Use seu usuario corporativo para acessar o MVP. A autenticacao e mockada nesta etapa e leva voce diretamente para a dashboard principal."})]})]}),d.jsx(Ov,{})]})]})})}function Uv({items:e,activeItem:t,isMobile:r=!1}){const n=Dr();return d.jsxs("aside",{style:{background:"linear-gradient(180deg, rgba(0, 49, 80, 0.98), rgba(7, 64, 98, 0.96))",color:"#fff",borderRadius:"28px",padding:"1.5rem",display:"grid",gap:"1.25rem",alignContent:"start"},children:[d.jsx("button",{type:"button",onClick:()=>n("/new-attendance"),style:{border:"none",borderRadius:"20px",padding:"1rem 1.15rem",background:"linear-gradient(135deg, var(--color-highlight), #f3b94d)",color:"#132534",fontWeight:800,textAlign:"left"},children:"+ Novo Atendimento"}),d.jsx("nav",{style:{display:"grid",gap:"0.5rem",gridTemplateColumns:r?"repeat(auto-fit, minmax(180px, 1fr))":"1fr"},children:e.map(l=>{const i=l.id===t;return d.jsxs("button",{type:"button",onClick:()=>l.route&&n(l.route),style:{border:"none",borderRadius:"18px",padding:"0.9rem 1rem",background:i?"rgba(255, 255, 255, 0.14)":"transparent",color:"#fff",display:"flex",alignItems:"center",justifyContent:"space-between",fontWeight:i?700:500,width:"100%"},children:[d.jsx("span",{children:l.label}),l.count?d.jsx("span",{style:{minWidth:30,borderRadius:999,padding:"0.2rem 0.5rem",background:"rgba(255, 255, 255, 0.12)",fontSize:"0.82rem"},children:l.count}):null]},l.id)})})]})}function Wv({activeTab:e,onTabChange:t,searchValue:r,onSearchChange:n,isWideDesktop:l=!1,isDesktop:i=!1,isTablet:o=!1,isMobile:a=!1}){const s=[{id:"messages",label:"Mensagens"},{id:"calls",label:"Ligacoes"}],u=a?"1fr":l?"max-content minmax(180px, 220px) minmax(280px, 1fr) max-content":i||o?"repeat(2, minmax(0, 1fr))":"1fr";return d.jsxs("header",{style:{display:"grid",gridTemplateColumns:u,gap:"1rem",alignItems:"center"},children:[d.jsx("div",{style:{display:"inline-flex",padding:"0.35rem",borderRadius:"18px",background:"rgba(0, 49, 80, 0.06)",gap:"0.35rem",width:a?"100%":"fit-content",justifyContent:a?"space-between":"flex-start",minWidth:0},children:s.map(h=>{const c=h.id===e;return d.jsx("button",{type:"button",onClick:()=>t(h.id),style:{border:"none",borderRadius:"14px",padding:"0.8rem 1rem",background:c?"var(--color-primary)":"transparent",color:c?"#fff":"var(--color-primary)",fontWeight:700},children:h.label},h.id)})}),d.jsx("div",{style:{padding:"0.9rem 1.1rem",borderRadius:"18px",background:"#fff",border:"1px solid var(--color-border)",color:"var(--color-text-soft)",fontWeight:600,width:a?"100%":"auto",minWidth:0},children:"Sexta, 19 de marco"}),d.jsx("input",{type:"search",placeholder:"Buscar conversas, contatos ou protocolos",value:r,onChange:h=>n(h.target.value),style:{width:"100%",border:"1px solid var(--color-border)",borderRadius:"18px",padding:"0.95rem 1rem",background:"#fff",outline:"none",minWidth:0}}),d.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.9rem",justifySelf:a?"stretch":"end",justifyContent:a?"space-between":"flex-end",width:a?"100%":"auto",minWidth:0},children:[d.jsxs("div",{style:{textAlign:"right",minWidth:0},children:[d.jsx("strong",{style:{display:"block"},children:"Ana Camolesi"}),d.jsx("span",{style:{color:"var(--color-text-soft)",fontSize:"0.92rem"},children:"Atendimento omnichannel"})]}),d.jsx("div",{"aria-hidden":"true",style:{width:48,height:48,borderRadius:"16px",display:"grid",placeItems:"center",background:"linear-gradient(135deg, var(--color-accent), var(--color-primary))",color:"#fff",fontWeight:800},children:"AM"})]})]})}function Bv({channel:e}){const t={WhatsApp:"#2bb741",Email:"#e5a22a",SMS:"#00a4b7"};return d.jsx("span",{style:{display:"inline-flex",alignItems:"center",borderRadius:999,padding:"0.22rem 0.6rem",background:`${t[e]||"#003150"}16`,color:t[e]||"#003150",fontSize:"0.8rem",fontWeight:700},children:e})}function Hv({conversations:e,activeConversationId:t,onSelectConversation:r,actionItems:n,isWideDesktop:l=!1,isDesktop:i=!1,isTablet:o=!1,isMobile:a=!1}){const s=Dr(),u=e.find(c=>c.id===t)||e[0],h=a?"1fr":l?"minmax(240px, 0.95fr) minmax(360px, 1.8fr) minmax(220px, 0.8fr)":i||o?"minmax(260px, 320px) minmax(0, 1fr)":"1fr";return d.jsxs("div",{style:{display:"grid",gridTemplateColumns:h,gap:"1rem",alignItems:"start"},children:[d.jsxs("section",{style:{background:"#fff",borderRadius:"26px",border:"1px solid var(--color-border)",padding:"1rem",display:"grid",gap:"0.75rem",minWidth:0},children:[d.jsxs("div",{children:[d.jsx("strong",{style:{fontSize:"1.05rem"},children:"Conversas"}),d.jsx("p",{style:{margin:"0.35rem 0 0",color:"var(--color-text-soft)"},children:"Atendimento em tempo real por canal."})]}),e.map(c=>{const p=c.id===u.id;return d.jsxs("button",{type:"button",onClick:()=>r(c.id),style:{border:"1px solid",borderColor:p?"rgba(0, 164, 183, 0.26)":"var(--color-border)",borderRadius:"20px",padding:"1rem",background:p?"rgba(0, 164, 183, 0.08)":"#fff",textAlign:"left",display:"grid",gap:"0.6rem"},children:[d.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:"1rem"},children:[d.jsx("strong",{children:c.name}),d.jsx("span",{style:{color:"var(--color-text-soft)",fontSize:"0.86rem"},children:c.time})]}),d.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:"0.75rem"},children:[d.jsx(Bv,{channel:c.channel}),c.unread?d.jsx("span",{style:{minWidth:24,borderRadius:999,padding:"0.15rem 0.45rem",background:"var(--color-secondary)",color:"#fff",fontSize:"0.78rem",fontWeight:700,textAlign:"center"},children:c.unread}):null]}),d.jsx("span",{style:{color:"var(--color-text-soft)"},children:c.lastMessage})]},c.id)})]}),d.jsxs("section",{style:{background:"#fff",borderRadius:"26px",border:"1px solid var(--color-border)",display:"grid",gridTemplateRows:"auto 1fr auto",minHeight:580,overflow:"hidden",minWidth:0},children:[d.jsxs("header",{style:{padding:"1.15rem 1.25rem",borderBottom:"1px solid var(--color-border)",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"1rem"},children:[d.jsxs("div",{children:[d.jsx("strong",{style:{display:"block",fontSize:"1.08rem"},children:u.name}),d.jsx("span",{style:{color:"var(--color-text-soft)"},children:u.status==="online"?"Online agora":"Offline"})]}),d.jsxs("div",{style:{display:"flex",gap:"0.6rem",flexWrap:"wrap"},children:[d.jsx("button",{type:"button",onClick:()=>s("/chat"),style:{border:"1px solid var(--color-border)",borderRadius:"14px",padding:"0.7rem 0.9rem",background:"#fff",color:"var(--color-primary)",fontWeight:700},children:"Abrir chat"}),d.jsx("button",{type:"button",style:{border:"none",borderRadius:"14px",padding:"0.7rem 0.9rem",background:"rgba(0, 49, 80, 0.08)",color:"var(--color-primary)",fontWeight:700},children:"Transferir"})]})]}),d.jsx("div",{style:{padding:"1.25rem",display:"grid",gap:"0.9rem",alignContent:"start",background:"linear-gradient(180deg, rgba(245, 248, 251, 0.45), rgba(255, 255, 255, 0.9))"},children:u.messages.map(c=>{const p=c.from==="agent";return d.jsx("div",{style:{justifySelf:p?"end":"start",maxWidth:"72%",padding:"0.95rem 1rem",borderRadius:p?"18px 18px 6px 18px":"18px 18px 18px 6px",background:p?"var(--color-primary)":"#edf1f5",color:p?"#fff":"var(--color-text)",boxShadow:"var(--shadow-md)"},children:c.text},c.id)})}),d.jsxs("footer",{style:{padding:"1rem 1.25rem 1.25rem",borderTop:"1px solid var(--color-border)",display:"grid",gridTemplateColumns:"1fr auto",gap:"0.75rem"},children:[d.jsx("input",{type:"text",value:"Posso acionar o time responsavel e te retorno em seguida.",readOnly:!0,style:{border:"1px solid var(--color-border)",borderRadius:"18px",padding:"0.95rem 1rem",background:"#fff"}}),d.jsx("button",{type:"button",style:{border:"none",borderRadius:"18px",padding:"0.95rem 1.2rem",background:"linear-gradient(135deg, var(--color-primary), #0b5a86)",color:"#fff",fontWeight:700},children:"Enviar"})]})]}),d.jsxs("aside",{style:{background:"#fff",borderRadius:"26px",border:"1px solid var(--color-border)",padding:"1.2rem",display:"grid",gap:"1rem",alignContent:"start",gridColumn:l?"auto":"1 / -1",minWidth:0},children:[d.jsxs("div",{children:[d.jsx("strong",{style:{fontSize:"1.05rem"},children:"Painel de acoes"}),d.jsx("p",{style:{margin:"0.35rem 0 0",color:"var(--color-text-soft)"},children:"Contexto rapido do atendimento selecionado."})]}),n.map(c=>d.jsxs("article",{style:{borderRadius:"20px",padding:"1rem",background:"rgba(0, 49, 80, 0.04)"},children:[d.jsx("span",{style:{color:"var(--color-text-soft)",display:"block",marginBottom:"0.35rem"},children:c.title}),d.jsx("strong",{children:c.value})]},c.title)),d.jsx("button",{type:"button",onClick:()=>s("/new-attendance"),style:{border:"1px solid var(--color-border)",borderRadius:"18px",padding:"0.95rem 1rem",background:"#fff",color:"var(--color-primary)",fontWeight:700},children:"Criar novo fluxo"})]})]})}function Vv({calls:e,isWideDesktop:t=!1,isDesktop:r=!1,isMobile:n=!1}){const l=Dr();return d.jsxs("section",{style:{background:"#fff",borderRadius:"26px",border:"1px solid var(--color-border)",padding:"1.5rem",display:"grid",gap:"1rem"},children:[d.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:"1rem",flexWrap:"wrap"},children:[d.jsxs("div",{children:[d.jsx("strong",{style:{display:"block",fontSize:"1.1rem"},children:"Ligacoes recentes"}),d.jsx("span",{style:{color:"var(--color-text-soft)"},children:"Visualizacao rapida do fluxo de voz do time."})]}),d.jsx("button",{type:"button",onClick:()=>l("/call"),style:{border:"none",borderRadius:"18px",padding:"0.95rem 1.1rem",background:"linear-gradient(135deg, var(--color-primary), #0b5a86)",color:"#fff",fontWeight:700},children:"Nova ligacao"})]}),d.jsx("div",{style:{display:"grid",gap:"0.85rem"},children:e.map(i=>d.jsxs("article",{style:{borderRadius:"22px",border:"1px solid var(--color-border)",padding:"1rem 1.1rem",display:"grid",gridTemplateColumns:n?"1fr":t?"minmax(0, 1.4fr) repeat(3, minmax(100px, 1fr)) auto":r?"minmax(0, 1.2fr) repeat(2, minmax(100px, 1fr)) auto":"repeat(2, minmax(0, 1fr))",gap:"1rem",alignItems:"center"},children:[d.jsxs("div",{children:[d.jsx("strong",{style:{display:"block"},children:i.name}),d.jsx("span",{style:{color:"var(--color-text-soft)"},children:i.area})]}),d.jsx("span",{children:i.duration}),d.jsx("span",{children:i.status}),n?null:d.jsx("span",{style:{color:"var(--color-text-soft)"},children:"Hoje"}),d.jsx("button",{type:"button",onClick:()=>l("/call"),style:{border:"1px solid var(--color-border)",borderRadius:"14px",padding:"0.7rem 0.95rem",background:"#fff",color:"var(--color-primary)",fontWeight:700},children:"Ver"})]},i.id))})]})}const $v=[{id:"dashboard",label:"Dashboard"},{id:"new-attendance",label:"Novos Atendimentos",route:"/new-attendance"},{id:"in-progress",label:"Em andamento",count:8},{id:"completed",label:"Finalizados",count:24},{id:"contacts",label:"Contatos",count:128}],Ql=[{id:"maria-souza",name:"Maria Souza",channel:"WhatsApp",status:"online",lastMessage:"Preciso atualizar o cadastro do meu pedido.",unread:2,time:"09:42",messages:[{id:1,from:"customer",text:"Oi, bom dia! Preciso de ajuda com meu pedido."},{id:2,from:"agent",text:"Bom dia, Maria! Claro, me conta o que aconteceu."},{id:3,from:"customer",text:"Quero confirmar se o endereco foi alterado."}]},{id:"empresa-alpha",name:"Empresa Alpha",channel:"Email",status:"offline",lastMessage:"Aguardando retorno sobre a proposta comercial.",unread:0,time:"Ontem",messages:[{id:1,from:"customer",text:"Precisamos rever os valores da ultima proposta."},{id:2,from:"agent",text:"Perfeito, vou encaminhar para o time comercial."}]},{id:"joao-pedro",name:"Joao Pedro",channel:"SMS",status:"online",lastMessage:"Pode me ligar em 10 minutos?",unread:1,time:"08:15",messages:[{id:1,from:"customer",text:"Recebi a cobranca em duplicidade."},{id:2,from:"agent",text:"Vou analisar isso agora para voce."},{id:3,from:"customer",text:"Pode me ligar em 10 minutos?"}]}],Qv=[{title:"Area atual",value:"Suporte"},{title:"SLA restante",value:"18 min"},{title:"Prioridade",value:"Alta"}],Kv=[{id:"call-1",name:"Beatriz Lima",area:"Comercial",duration:"12:48",status:"Encerrada"},{id:"call-2",name:"Carlos Nunes",area:"Suporte",duration:"03:12",status:"Perdida"},{id:"call-3",name:"Grupo Solaris",area:"Financeiro",duration:"08:55",status:"Em andamento"}];function Yv(){return typeof window>"u"?1440:window.innerWidth}function eo(){const[e,t]=R.useState(Yv);return R.useEffect(()=>{function r(){t(window.innerWidth)}return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),{width:e,isWideDesktop:e>=1500,isDesktop:e>=1180,isTablet:e<1180&&e>=760,isMobile:e<760}}function Xv(){var w,k;const{isWideDesktop:e,isDesktop:t,isTablet:r,isMobile:n}=eo(),[l,i]=R.useState("messages"),[o,a]=R.useState(""),[s,u]=R.useState(Ql[0].id),h=o.trim().toLowerCase(),c=h?Ql.filter(S=>`${S.name} ${S.channel} ${S.lastMessage}`.toLowerCase().includes(h)):Ql,p=((w=c.find(S=>S.id===s))==null?void 0:w.id)||((k=c[0])==null?void 0:k.id)||Ql[0].id;return d.jsx("main",{style:{minHeight:"100vh",padding:"1.5rem"},children:d.jsx("section",{style:{width:"min(1680px, calc(100vw - 3rem))",margin:"0 auto",background:"var(--color-surface-strong)",borderRadius:"32px",boxShadow:"var(--shadow-lg)",padding:"1.5rem",display:"grid",gap:"1.5rem"},children:d.jsxs("div",{style:{display:"grid",gridTemplateColumns:t?"minmax(340px, 380px) minmax(0, 1fr)":"1fr",gap:"1.5rem",alignItems:"start"},children:[d.jsxs("div",{style:{display:"grid",gap:"1.25rem"},children:[d.jsx("div",{style:{background:"#fff",border:"1px solid var(--color-border)",borderRadius:"28px",padding:"1.5rem"},children:d.jsx(qi,{size:"lg"})}),d.jsx(Uv,{items:$v,activeItem:"dashboard",isMobile:!t})]}),d.jsxs("div",{style:{display:"grid",gap:"1.25rem",minWidth:0},children:[d.jsx(Wv,{activeTab:l,onTabChange:i,searchValue:o,onSearchChange:a,isWideDesktop:e,isDesktop:t,isTablet:r,isMobile:n}),d.jsxs("section",{style:{display:"grid",gap:"1rem"},children:[d.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))",gap:"1rem"},children:[{label:"Atendimentos ativos",value:"18",detail:"7 aguardando retorno"},{label:"Primeira resposta",value:"2m 14s",detail:"Dentro do SLA"},{label:"Fila de voz",value:"4 chamadas",detail:"1 prioridade alta"}].map(S=>d.jsxs("article",{style:{padding:"1.15rem",borderRadius:"22px",border:"1px solid var(--color-border)",background:"#fff"},children:[d.jsx("span",{style:{color:"var(--color-text-soft)",display:"block"},children:S.label}),d.jsx("strong",{style:{display:"block",fontSize:"1.4rem",marginTop:"0.45rem"},children:S.value}),d.jsx("span",{style:{color:"var(--color-text-soft)",display:"block",marginTop:"0.45rem"},children:S.detail})]},S.label))}),l==="messages"?d.jsx(Hv,{conversations:c,activeConversationId:p,onSelectConversation:u,actionItems:Qv,isWideDesktop:e,isDesktop:t,isTablet:r,isMobile:n}):d.jsx(Vv,{calls:Kv,isWideDesktop:e,isDesktop:t,isMobile:n})]})]})]})})})}function Gv({channel:e}){const t={WhatsApp:"#2bb741",Email:"#e5a22a",SMS:"#00a4b7"};return d.jsx("span",{style:{display:"inline-flex",alignItems:"center",borderRadius:999,padding:"0.22rem 0.6rem",background:`${t[e]||"#003150"}16`,color:t[e]||"#003150",fontSize:"0.8rem",fontWeight:700},children:e})}function Jv({contacts:e,activeContactId:t,onSelectContact:r,isMobile:n=!1}){return d.jsxs("aside",{style:{background:"#fff",border:"1px solid var(--color-border)",borderRadius:"28px",padding:"1rem",display:"grid",gap:"0.85rem"},children:[d.jsxs("div",{children:[d.jsx("strong",{style:{display:"block",fontSize:"1.08rem"},children:"Conversas ativas"}),d.jsx("span",{style:{color:"var(--color-text-soft)"},children:"WhatsApp, SMS e email em uma fila visual."})]}),d.jsx("div",{style:{display:"grid",gap:"0.75rem",gridTemplateColumns:"1fr"},children:e.map(l=>{const i=l.id===t;return d.jsxs("button",{type:"button",onClick:()=>r(l.id),style:{border:"1px solid",borderColor:i?"rgba(0, 164, 183, 0.26)":"var(--color-border)",background:i?"rgba(0, 164, 183, 0.08)":"#fff",borderRadius:"20px",padding:"1rem",textAlign:"left",display:"grid",gap:"0.6rem"},children:[d.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:"1rem"},children:[d.jsx("strong",{children:l.name}),d.jsx("span",{style:{fontSize:"0.82rem",color:"var(--color-text-soft)"},children:l.time})]}),d.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:"0.75rem"},children:[d.jsx(Gv,{channel:l.channel}),l.unread?d.jsx("span",{style:{minWidth:24,borderRadius:999,padding:"0.15rem 0.45rem",background:"var(--color-secondary)",color:"#fff",fontSize:"0.78rem",fontWeight:700,textAlign:"center"},children:l.unread}):null]}),d.jsx("span",{style:{color:"var(--color-text-soft)"},children:l.preview})]},l.id)})})]})}function Ed({isOpen:e,transferArea:t,setTransferArea:r,transferAreas:n,attendants:l,transferAttendant:i,setTransferAttendant:o,transferNote:a,setTransferNote:s,onSubmit:u,onClose:h}){if(!e)return null;const c={width:"100%",border:"1px solid var(--color-border)",borderRadius:"16px",padding:"0.9rem 1rem",background:"#fff",outline:"none"};return d.jsxs("aside",{style:{background:"#fff",border:"1px solid var(--color-border)",borderRadius:"28px",padding:"1.25rem",display:"grid",gap:"1rem"},children:[d.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:"1rem"},children:[d.jsxs("div",{children:[d.jsx("strong",{style:{display:"block",fontSize:"1.06rem"},children:"Transferir atendimento"}),d.jsx("span",{style:{color:"var(--color-text-soft)"},children:"Reencaminhe a conversa para a area ideal."})]}),d.jsx("button",{type:"button",onClick:h,style:{border:"none",background:"transparent",color:"var(--color-text-soft)",fontWeight:700},children:"Fechar"})]}),d.jsxs("label",{style:{display:"grid",gap:"0.45rem"},children:[d.jsx("span",{style:{fontWeight:600},children:"Area"}),d.jsx("select",{value:t,onChange:p=>r(p.target.value),style:c,children:n.map(p=>d.jsx("option",{value:p,children:p},p))})]}),d.jsxs("label",{style:{display:"grid",gap:"0.45rem"},children:[d.jsx("span",{style:{fontWeight:600},children:"Atendente"}),d.jsx("select",{value:i,onChange:p=>o(p.target.value),style:c,children:l.map(p=>d.jsx("option",{value:p,children:p},p))})]}),d.jsxs("label",{style:{display:"grid",gap:"0.45rem"},children:[d.jsx("span",{style:{fontWeight:600},children:"Observacao"}),d.jsx("textarea",{rows:5,value:a,onChange:p=>s(p.target.value),placeholder:"Contexto opcional para ajudar o proximo atendente.",style:{...c,resize:"vertical"}})]}),d.jsx("button",{type:"button",onClick:u,style:{border:"none",borderRadius:"16px",padding:"0.95rem 1rem",background:"linear-gradient(135deg, var(--color-primary), #0b5a86)",color:"#fff",fontWeight:700},children:"Confirmar transferencia"})]})}function Zv({contact:e,messages:t,selectedArea:r,setSelectedArea:n,draft:l,setDraft:i,onSend:o,onToggleTransfer:a,isReplying:s,isMobile:u=!1}){const h=R.useRef(null);return R.useEffect(()=>{const c=h.current;c&&c.scrollTo({top:c.scrollHeight,behavior:"smooth"})},[t,s]),d.jsxs("section",{style:{background:"#fff",border:"1px solid var(--color-border)",borderRadius:"28px",overflow:"hidden",display:"grid",gridTemplateRows:"auto 1fr auto",minHeight:680},children:[d.jsxs("header",{style:{padding:"1.25rem 1.5rem",borderBottom:"1px solid var(--color-border)",display:"grid",gridTemplateColumns:u?"1fr":"minmax(0, 1fr) auto",gap:"1rem",alignItems:"center"},children:[d.jsxs("div",{children:[d.jsx("strong",{style:{display:"block",fontSize:"1.15rem"},children:e.name}),d.jsxs("span",{style:{color:"var(--color-text-soft)"},children:[e.status==="online"?"Online":"Offline"," • ",e.lastSeen]})]}),d.jsxs("div",{style:{display:"flex",gap:"0.7rem",flexWrap:"wrap",justifyContent:u?"stretch":"flex-end"},children:[d.jsxs("select",{value:r,onChange:c=>n(c.target.value),style:{border:"1px solid var(--color-border)",borderRadius:"14px",padding:"0.8rem 0.95rem",background:"#fff",fontWeight:600},children:[d.jsx("option",{children:"Suporte"}),d.jsx("option",{children:"Financeiro"}),d.jsx("option",{children:"Comercial"})]}),d.jsx("button",{type:"button",onClick:a,style:{border:"none",borderRadius:"14px",padding:"0.8rem 1rem",background:"rgba(0, 49, 80, 0.08)",color:"var(--color-primary)",fontWeight:700},children:"Transferir"})]})]}),d.jsxs("div",{ref:h,style:{padding:"1.5rem",display:"grid",gap:"0.9rem",alignContent:"start",overflowY:"auto",background:"radial-gradient(circle at top left, rgba(0, 164, 183, 0.06), transparent 22%), linear-gradient(180deg, rgba(245, 248, 251, 0.8), rgba(255, 255, 255, 0.95))"},children:[t.map(c=>{const p=c.sender==="agent";return c.sender==="system"?d.jsx("div",{style:{justifySelf:"center",padding:"0.7rem 1rem",borderRadius:"999px",background:"rgba(0, 49, 80, 0.08)",color:"var(--color-primary)",fontSize:"0.88rem",fontWeight:600},children:c.text},c.id):d.jsx("div",{style:{justifySelf:p?"end":"start",maxWidth:u?"88%":"72%",padding:"0.95rem 1rem",borderRadius:p?"18px 18px 6px 18px":"18px 18px 18px 6px",background:p?"var(--color-primary)":"#edf1f5",color:p?"#fff":"var(--color-text)",boxShadow:"var(--shadow-md)"},children:c.text},c.id)}),s?d.jsx("div",{style:{justifySelf:"start",padding:"0.8rem 0.95rem",borderRadius:"18px 18px 18px 6px",background:"#edf1f5",color:"var(--color-text-soft)",fontWeight:600},children:"Digitando..."}):null]}),d.jsxs("footer",{style:{padding:"1rem 1.25rem 1.25rem",borderTop:"1px solid var(--color-border)",display:"grid",gridTemplateColumns:u?"1fr":"1fr auto",gap:"0.75rem"},children:[d.jsx("input",{type:"text",value:l,onChange:c=>i(c.target.value),onKeyDown:c=>{c.key==="Enter"&&o()},placeholder:"Escreva sua mensagem...",style:{border:"1px solid var(--color-border)",borderRadius:"18px",padding:"0.95rem 1rem",background:"#fff",outline:"none"}}),d.jsx("button",{type:"button",onClick:o,style:{border:"none",borderRadius:"18px",padding:"0.95rem 1.2rem",background:"linear-gradient(135deg, var(--color-primary), #0b5a86)",color:"#fff",fontWeight:700},children:"Enviar"})]})]})}const oi=[{id:"maria-souza",name:"Maria Souza",channel:"WhatsApp",status:"online",area:"Suporte",lastSeen:"Online agora",preview:"Preciso atualizar o cadastro do meu pedido.",time:"09:42",unread:2,messages:[{id:1,sender:"customer",text:"Oi, bom dia! Preciso de ajuda com meu pedido."},{id:2,sender:"agent",text:"Bom dia, Maria! Claro, me conta o que aconteceu."},{id:3,sender:"customer",text:"Quero confirmar se o endereco foi alterado."},{id:4,sender:"agent",text:"Estou verificando aqui e te atualizo em instantes."}]},{id:"joao-pedro",name:"Joao Pedro",channel:"SMS",status:"offline",area:"Financeiro",lastSeen:"Visto ha 12 min",preview:"Pode me ligar em 10 minutos?",time:"08:15",unread:1,messages:[{id:1,sender:"customer",text:"Recebi a cobranca em duplicidade."},{id:2,sender:"agent",text:"Vou analisar isso agora para voce."},{id:3,sender:"customer",text:"Pode me ligar em 10 minutos?"}]},{id:"empresa-alpha",name:"Empresa Alpha",channel:"Email",status:"offline",area:"Comercial",lastSeen:"Visto ontem",preview:"Aguardando retorno sobre a proposta comercial.",time:"Ontem",unread:0,messages:[{id:1,sender:"customer",text:"Precisamos rever os valores da ultima proposta."},{id:2,sender:"agent",text:"Perfeito, vou encaminhar para o time comercial."}]}],qv=["Suporte","Financeiro","Comercial"],jd={Suporte:["Ana Camolesi","Rafael Lopes","Romero Britto"],Financeiro:["Roberto Pêra","Monica Limoeira","Edson Arantes"],Comercial:["Natasha Homanoff","Helena Pêra","Pedro Parque"]},ey=["Recebi sua mensagem e ja vou verificar.","Consegue me confirmar o numero do protocolo?","Posso seguir com essa atualizacao por aqui."];function ty(e){const t=[`Perfeito, obrigado pelo retorno, ${e.split(" ")[0]}.`,"Tudo bem, fico no aguardo dessa confirmacao.","Entendi. Se precisar, posso encaminhar para a area responsavel."];return t[Math.floor(Math.random()*t.length)]}function ry(){return oi.reduce((e,t)=>(e[t.id]=t.messages,e),{})}function ny(){const[e,t]=R.useState(oi),[r,n]=R.useState(oi[0].id),[l,i]=R.useState(ry),[o,a]=R.useState(""),[s,u]=R.useState(oi[0].area),[h,c]=R.useState(!1),[p,w]=R.useState("Suporte"),[k,S]=R.useState(jd.Suporte[0]),[L,m]=R.useState(""),[f,v]=R.useState(!1),E=R.useRef(null),j=R.useMemo(()=>e.find(V=>V.id===r)||e[0],[e,r]),M=l[r]||[],y=jd[p]||[];R.useEffect(()=>{u(j.area)},[j]),R.useEffect(()=>{S(y[0]||"")},[p]),R.useEffect(()=>()=>{E.current&&window.clearTimeout(E.current)},[]);function P(V,J){t(Z=>Z.map(te=>te.id===V?{...te,preview:J,time:"Agora",unread:0}:te))}function W(){const V=o.trim();if(!V)return;const J={id:Date.now(),sender:"agent",text:V};i(Z=>({...Z,[r]:[...Z[r]||[],J]})),P(r,V),a(""),v(!0),E.current=window.setTimeout(()=>{const Z={id:Date.now()+1,sender:"customer",text:ty(j.name)};i(te=>({...te,[r]:[...te[r]||[],Z]})),t(te=>te.map(Le=>Le.id===r?{...Le,preview:Z.text,time:"Agora",unread:Le.unread+1}:Le)),v(!1)},1400)}function N(){const V=L.trim(),J=V?`Transferencia solicitada para ${p} com ${k}. Obs: ${V}`:`Transferencia solicitada para ${p} com ${k}.`;i(Z=>({...Z,[r]:[...Z[r]||[],{id:Date.now()+2,sender:"system",text:J}]})),t(Z=>Z.map(te=>te.id===r?{...te,area:p}:te)),u(p),c(!1),m("")}return{contacts:e,activeContact:j,activeContactId:r,setActiveContactId:n,messages:M,draft:o,setDraft:a,sendMessage:W,isReplying:f,selectedArea:s,setSelectedArea:u,isTransferOpen:h,setIsTransferOpen:c,transferArea:p,setTransferArea:w,transferAreas:qv,attendants:y,transferAttendant:k,setTransferAttendant:S,transferNote:L,setTransferNote:m,submitTransfer:N}}function ly(){const{isWideDesktop:e,isDesktop:t,isTablet:r,isMobile:n}=eo(),{contacts:l,activeContact:i,activeContactId:o,setActiveContactId:a,messages:s,draft:u,setDraft:h,sendMessage:c,isReplying:p,selectedArea:w,setSelectedArea:k,isTransferOpen:S,setIsTransferOpen:L,transferArea:m,setTransferArea:f,transferAreas:v,attendants:E,transferAttendant:j,setTransferAttendant:M,transferNote:y,setTransferNote:P,submitTransfer:W}=ny(),N=n?"1fr":e?"minmax(260px, 320px) minmax(0, 1.6fr) minmax(280px, 320px)":t||r?"minmax(260px, 320px) minmax(0, 1fr)":"1fr";return d.jsx("main",{style:{minHeight:"100vh",padding:"1.5rem"},children:d.jsxs("section",{style:{width:"min(1680px, calc(100vw - 3rem))",margin:"0 auto",background:"var(--color-surface-strong)",borderRadius:"32px",boxShadow:"var(--shadow-lg)",padding:"1.5rem",display:"grid",gap:"1.25rem"},children:[d.jsxs("header",{style:{display:"grid",gridTemplateColumns:n?"1fr":"auto 1fr auto",gap:"1rem",alignItems:"center"},children:[d.jsx(qi,{}),d.jsx("div",{style:{justifySelf:n?"stretch":"center",padding:"0.85rem 1rem",borderRadius:"18px",background:"rgba(0, 49, 80, 0.06)",color:"var(--color-primary)",fontWeight:700,textAlign:"center"},children:"Atendimento em tempo real"}),d.jsx(zs,{to:"/home",style:{justifySelf:n?"stretch":"end",borderRadius:"16px",padding:"0.85rem 1rem",background:"var(--color-primary)",color:"#fff",fontWeight:700,textAlign:"center"},children:"Voltar para home"})]}),d.jsxs("section",{style:{display:"grid",gridTemplateColumns:N,gap:"1rem",alignItems:"start"},children:[d.jsx(Jv,{contacts:l,activeContactId:o,onSelectContact:a,isMobile:n}),d.jsxs("div",{style:{display:"grid",gap:"1rem",minWidth:0},children:[d.jsx(Zv,{contact:i,messages:s,selectedArea:w,setSelectedArea:k,draft:u,setDraft:h,onSend:c,onToggleTransfer:()=>L(V=>!V),isReplying:p,isMobile:n}),d.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(220px, 1fr))",gap:"0.75rem"},children:ey.map(V=>d.jsx("button",{type:"button",onClick:()=>h(V),style:{border:"1px solid var(--color-border)",borderRadius:"18px",padding:"0.85rem 1rem",background:"#fff",color:"var(--color-primary)",fontWeight:600,textAlign:"left"},children:V},V))})]}),e?d.jsx(Ed,{isOpen:S,transferArea:m,setTransferArea:f,transferAreas:v,attendants:E,transferAttendant:j,setTransferAttendant:M,transferNote:y,setTransferNote:P,onSubmit:W,onClose:()=>L(!1)}):null]}),e?null:d.jsx(Ed,{isOpen:S,transferArea:m,setTransferArea:f,transferAreas:v,attendants:E,transferAttendant:j,setTransferAttendant:M,transferNote:y,setTransferNote:P,onSubmit:W,onClose:()=>L(!1)})]})})}function iy({id:e}){const t={width:22,height:22,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round",strokeLinejoin:"round"};return e==="mute"?d.jsxs("svg",{...t,children:[d.jsx("path",{d:"M11 5a2 2 0 0 1 4 0v5a2 2 0 0 1-4 0z"}),d.jsx("path",{d:"M19 10a7 7 0 0 1-.6 2.8"}),d.jsx("path",{d:"M5.6 5.6 18.4 18.4"}),d.jsx("path",{d:"M9 10a3 3 0 0 0 4.7 2.5"}),d.jsx("path",{d:"M12 19v3"}),d.jsx("path",{d:"M8 22h8"})]}):e==="keypad"?d.jsxs("svg",{...t,children:[d.jsx("rect",{x:"4",y:"4",width:"4",height:"4",rx:"1"}),d.jsx("rect",{x:"10",y:"4",width:"4",height:"4",rx:"1"}),d.jsx("rect",{x:"16",y:"4",width:"4",height:"4",rx:"1"}),d.jsx("rect",{x:"4",y:"10",width:"4",height:"4",rx:"1"}),d.jsx("rect",{x:"10",y:"10",width:"4",height:"4",rx:"1"}),d.jsx("rect",{x:"16",y:"10",width:"4",height:"4",rx:"1"}),d.jsx("rect",{x:"4",y:"16",width:"4",height:"4",rx:"1"}),d.jsx("rect",{x:"10",y:"16",width:"4",height:"4",rx:"1"}),d.jsx("rect",{x:"16",y:"16",width:"4",height:"4",rx:"1"})]}):e==="speaker"?d.jsxs("svg",{...t,children:[d.jsx("path",{d:"M5 9v6h4l5 4V5l-5 4z"}),d.jsx("path",{d:"M18 9a4 4 0 0 1 0 6"}),d.jsx("path",{d:"M20.5 6.5a7.5 7.5 0 0 1 0 11"})]}):d.jsxs("svg",{...t,children:[d.jsx("path",{d:"M16 3h5v5"}),d.jsx("path",{d:"M21 3l-7 7"}),d.jsx("path",{d:"M8 7H3v5"}),d.jsx("path",{d:"M3 12l7-7"}),d.jsx("path",{d:"M16 21h5v-5"}),d.jsx("path",{d:"M21 21l-7-7"})]})}function oy({controls:e,isMobile:t=!1}){return d.jsx("div",{style:{display:"grid",gridTemplateColumns:t?"repeat(2, minmax(0, 1fr))":"repeat(4, minmax(120px, 1fr))",gap:"1rem"},children:e.map(r=>d.jsxs("button",{type:"button",style:{border:"1px solid rgba(255, 255, 255, 0.12)",borderRadius:"24px",padding:"1rem",background:"rgba(255, 255, 255, 0.06)",color:"#fff",display:"grid",gap:"0.35rem",justifyItems:"start",textAlign:"left"},children:[d.jsx("span",{"aria-hidden":"true",style:{width:48,height:48,borderRadius:"16px",background:"rgba(255, 255, 255, 0.1)",display:"grid",placeItems:"center",fontWeight:800,color:"#fff"},children:d.jsx(iy,{id:r.id})}),d.jsx("strong",{children:r.label}),d.jsx("span",{style:{color:"rgba(255, 255, 255, 0.66)",fontSize:"0.9rem"},children:r.hint})]},r.id))})}function ay({isMobile:e=!1}){return d.jsxs("header",{style:{display:"grid",gridTemplateColumns:e?"1fr":"auto 1fr auto",alignItems:"center",gap:"1rem"},children:[d.jsx("div",{style:{justifySelf:e?"stretch":"start",padding:"0.65rem 0.95rem",borderRadius:"999px",background:"rgba(255, 255, 255, 0.08)",color:"rgba(255, 255, 255, 0.84)",fontWeight:700,textAlign:"center"},children:"Ligacao ativa"}),d.jsx("div",{style:{textAlign:"center",color:"rgba(255, 255, 255, 0.68)",letterSpacing:"0.12em",textTransform:"uppercase",fontSize:"0.8rem",fontWeight:700},children:"Softphone MVP Omnichannel"}),d.jsx(zs,{to:"/home",style:{justifySelf:e?"stretch":"end",borderRadius:"16px",padding:"0.85rem 1rem",background:"rgba(255, 255, 255, 0.08)",color:"#fff",fontWeight:700,textAlign:"center"},children:"Voltar para home"})]})}function sy(e){const t=String(Math.floor(e/3600)).padStart(2,"0"),r=String(Math.floor(e%3600/60)).padStart(2,"0"),n=String(e%60).padStart(2,"0");return`${t}:${r}:${n}`}function uy(e=0){const[t,r]=R.useState(e);return R.useEffect(()=>{const n=window.setInterval(()=>{r(l=>l+1)},1e3);return()=>window.clearInterval(n)},[]),{seconds:t,formattedTime:sy(t)}}const Nn={customerName:"Maria Souza",role:"Cliente VIP • Ligação via PABX",number:"+55 11 99888-7766",queue:"Fila Suporte Premium",initials:"MS"},dy=[{id:"mute",label:"Mudo",hint:"Microfone"},{id:"keypad",label:"Teclado",hint:"DTMF"},{id:"speaker",label:"Alto-falante",hint:"Saida de audio"},{id:"transfer",label:"Transferir",hint:"Encaminhar"}];function cy(){const{isMobile:e}=eo(),{formattedTime:t}=uy(312);return d.jsx("main",{style:{minHeight:"100vh",padding:"1.5rem",background:"radial-gradient(circle at top, rgba(0, 164, 183, 0.22), transparent 22%), radial-gradient(circle at bottom, rgba(181, 31, 31, 0.2), transparent 26%), linear-gradient(180deg, #061521 0%, #0a2233 100%)"},children:d.jsxs("section",{style:{width:"min(1480px, calc(100vw - 3rem))",minHeight:"calc(100vh - 3rem)",margin:"0 auto",borderRadius:"36px",padding:"1.5rem",display:"grid",gap:"1.5rem",background:"linear-gradient(180deg, rgba(8, 22, 34, 0.94), rgba(10, 34, 51, 0.92))",border:"1px solid rgba(255, 255, 255, 0.08)",boxShadow:"0 30px 70px rgba(0, 0, 0, 0.35)",color:"#fff"},children:[d.jsx(ay,{isMobile:e}),d.jsxs("section",{style:{display:"grid",gridTemplateColumns:e?"1fr":"minmax(280px, 360px) minmax(0, 1fr)",gap:"1.5rem",alignItems:"stretch",flex:1},children:[d.jsxs("aside",{style:{borderRadius:"30px",padding:"1.5rem",background:"rgba(255, 255, 255, 0.05)",border:"1px solid rgba(255, 255, 255, 0.08)",display:"grid",gap:"1rem",alignContent:"start"},children:[d.jsx("span",{style:{width:"fit-content",padding:"0.45rem 0.8rem",borderRadius:"999px",background:"rgba(229, 162, 42, 0.16)",color:"#ffd37f",fontWeight:700,fontSize:"0.84rem"},children:Nn.queue}),d.jsx("div",{"aria-hidden":"true",style:{width:e?110:132,height:e?110:132,borderRadius:"32px",background:"linear-gradient(135deg, #0d3d5d, #00a4b7)",display:"grid",placeItems:"center",fontSize:e?"2rem":"2.4rem",fontWeight:800,boxShadow:"0 20px 40px rgba(0, 0, 0, 0.28)"},children:Nn.initials}),d.jsxs("div",{children:[d.jsx("strong",{style:{display:"block",fontSize:"1.5rem"},children:Nn.customerName}),d.jsx("span",{style:{color:"rgba(255, 255, 255, 0.7)"},children:Nn.role})]}),d.jsx("div",{style:{display:"grid",gap:"0.85rem"},children:[{label:"Numero",value:Nn.number},{label:"Canal original",value:"Atendimento omnichannel"},{label:"Responsavel atual",value:"Ana Camolesi"}].map(r=>d.jsxs("article",{style:{borderRadius:"22px",padding:"1rem",background:"rgba(255, 255, 255, 0.05)"},children:[d.jsx("span",{style:{color:"rgba(255, 255, 255, 0.62)",display:"block"},children:r.label}),d.jsx("strong",{style:{display:"block",marginTop:"0.35rem"},children:r.value})]},r.label))})]}),d.jsxs("section",{style:{display:"grid",gap:"1.5rem",alignContent:"space-between"},children:[d.jsxs("div",{style:{borderRadius:"32px",padding:e?"1.5rem":"2.25rem",background:"radial-gradient(circle at top right, rgba(229, 162, 42, 0.2), transparent 28%), rgba(255, 255, 255, 0.04)",border:"1px solid rgba(255, 255, 255, 0.08)",display:"grid",gap:"1rem",justifyItems:"center",textAlign:"center",minHeight:e?"auto":360,alignContent:"center"},children:[d.jsx("span",{style:{width:"fit-content",padding:"0.5rem 0.9rem",borderRadius:"999px",background:"rgba(0, 164, 183, 0.16)",color:"#8ce8f2",fontWeight:700},children:"Chamada em andamento"}),d.jsx("strong",{style:{fontSize:e?"2.7rem":"4rem",letterSpacing:"0.08em"},children:t}),d.jsx("p",{style:{margin:0,maxWidth:"34rem",color:"rgba(255, 255, 255, 0.74)",lineHeight:1.6},children:"Voce esta em uma ligacao ativa com a cliente. Os controles abaixo sao visuais neste MVP e ajudam a demonstrar a experiencia de voz do produto."})]}),d.jsx(oy,{controls:dy,isMobile:e}),d.jsxs("div",{style:{display:"grid",gridTemplateColumns:e?"1fr":"repeat(2, minmax(0, 1fr)) auto",gap:"1rem",alignItems:"center"},children:[d.jsx("div",{style:{borderRadius:"24px",padding:"1rem 1.15rem",background:"rgba(255, 255, 255, 0.05)",color:"rgba(255, 255, 255, 0.72)"},children:"Qualidade da chamada: Estavel"}),d.jsx("div",{style:{borderRadius:"24px",padding:"1rem 1.15rem",background:"rgba(255, 255, 255, 0.05)",color:"rgba(255, 255, 255, 0.72)"},children:"Gravacao mock: Habilitada"}),d.jsx("button",{type:"button",style:{border:"none",borderRadius:"24px",padding:"1rem 1.4rem",background:"linear-gradient(135deg, var(--color-secondary), #d43a3a)",color:"#fff",fontWeight:800,minHeight:58},children:"Encerrar chamada"})]})]})]})]})})}function fy({contacts:e,activeContactId:t,onSelectContact:r,selectedChannel:n}){return d.jsxs("aside",{style:{background:"#fff",border:"1px solid var(--color-border)",borderRadius:"28px",padding:"1.25rem",display:"grid",gap:"0.9rem"},children:[d.jsxs("div",{children:[d.jsx("strong",{style:{display:"block",fontSize:"1.08rem"},children:"Contatos recentes"}),d.jsx("span",{style:{color:"var(--color-text-soft)"},children:"Reaproveite ultimos atendimentos para ganhar velocidade."})]}),d.jsx("div",{style:{display:"grid",gap:"0.75rem"},children:e.map(l=>{const i=l.id===t,o=n==="call"?l.channel==="Ligacao":n==="sms"?l.channel==="SMS":l.channel==="WhatsApp";return d.jsxs("button",{type:"button",onClick:()=>r(l.id),style:{border:"1px solid",borderColor:i?"rgba(0, 164, 183, 0.26)":"var(--color-border)",background:i?"rgba(0, 164, 183, 0.08)":"#fff",borderRadius:"20px",padding:"1rem",textAlign:"left",display:"grid",gap:"0.5rem"},children:[d.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:"1rem"},children:[d.jsx("strong",{children:l.name}),o?d.jsx("span",{style:{padding:"0.2rem 0.5rem",borderRadius:999,background:"rgba(0, 164, 183, 0.12)",color:"var(--color-primary)",fontSize:"0.76rem",fontWeight:700},children:"Sugerido"}):null]}),d.jsx("span",{style:{color:"var(--color-text-soft)"},children:l.phone}),d.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:"1rem"},children:[d.jsx("span",{style:{color:"var(--color-primary)",fontWeight:700},children:l.channel}),d.jsx("span",{style:{color:"var(--color-text-soft)",fontSize:"0.85rem"},children:l.lastContact})]})]},l.id)})})]})}const Io=[{id:"whatsapp",label:"WhatsApp",route:"/chat",accent:"#2bb741"},{id:"sms",label:"SMS",route:"/chat",accent:"#00a4b7"},{id:"call",label:"Ligacao",route:"/call",accent:"#e5a22a"}],py=["Suporte","Financeiro","Comercial"],Dn=[{id:"maria-souza",name:"Maria Souza",phone:"+55 11 99888-7766",channel:"WhatsApp",lastContact:"Hoje, 09:42"},{id:"empresa-alpha",name:"Empresa Alpha",phone:"+55 11 4002-2020",channel:"Email",lastContact:"Ontem, 16:18"},{id:"joao-pedro",name:"Joao Pedro",phone:"+55 31 98877-1102",channel:"SMS",lastContact:"Hoje, 08:15"},{id:"beatriz-lima",name:"Beatriz Lima",phone:"+55 21 99701-4455",channel:"Ligacao",lastContact:"Hoje, 07:51"}];function hy(){const e=Dr(),{isWideDesktop:t,isDesktop:r,isTablet:n,isMobile:l}=eo(),[i,o]=R.useState(""),[a,s]=R.useState("whatsapp"),[u,h]=R.useState(""),[c,p]=R.useState(Dn[0].id),[w,k]=R.useState(""),S=i.trim().toLowerCase(),L=R.useMemo(()=>S?Dn.filter(j=>`${j.name} ${j.phone} ${j.channel}`.toLowerCase().includes(S)):Dn,[S]),m=L.find(j=>j.id===c)||Dn.find(j=>j.id===c)||Dn[0],f=Io.find(j=>j.id===a)||Io[0],v=l?"1fr":t?"minmax(300px, 360px) minmax(0, 1fr)":r||n?"minmax(280px, 340px) minmax(0, 1fr)":"1fr";function E(){e(f.route)}return d.jsx("main",{style:{minHeight:"100vh",padding:"1.5rem"},children:d.jsxs("section",{style:{width:"min(1680px, calc(100vw - 3rem))",margin:"0 auto",background:"var(--color-surface-strong)",borderRadius:"32px",boxShadow:"var(--shadow-lg)",padding:"1.5rem",display:"grid",gap:"1.25rem"},children:[d.jsxs("header",{style:{display:"grid",gridTemplateColumns:l?"1fr":"auto 1fr auto",gap:"1rem",alignItems:"center"},children:[d.jsx(qi,{}),d.jsx("div",{style:{justifySelf:l?"stretch":"center",padding:"0.85rem 1rem",borderRadius:"18px",background:"rgba(0, 49, 80, 0.06)",color:"var(--color-primary)",fontWeight:700,textAlign:"center"},children:"Criacao rapida de atendimento"}),d.jsx(zs,{to:"/home",style:{justifySelf:l?"stretch":"end",borderRadius:"16px",padding:"0.85rem 1rem",background:"var(--color-primary)",color:"#fff",fontWeight:700,textAlign:"center"},children:"Voltar para home"})]}),d.jsxs("section",{style:{display:"grid",gridTemplateColumns:v,gap:"1rem",alignItems:"start"},children:[d.jsx(fy,{contacts:L,activeContactId:m.id,onSelectContact:p,selectedChannel:a}),d.jsxs("section",{style:{background:"#fff",border:"1px solid var(--color-border)",borderRadius:"28px",padding:"1.5rem",display:"grid",gap:"1.25rem"},children:[d.jsxs("div",{children:[d.jsx("strong",{style:{display:"block",fontSize:"1.18rem"},children:"Novo atendimento"}),d.jsx("p",{style:{margin:"0.45rem 0 0",color:"var(--color-text-soft)",lineHeight:1.6},children:"Escolha o contato, o canal e a area opcional antes de iniciar. O fluxo e mockado e leva voce direto para chat ou ligacao."})]}),d.jsxs("div",{style:{display:"grid",gridTemplateColumns:l?"1fr":"minmax(0, 1fr) auto",gap:"0.85rem"},children:[d.jsx("input",{type:"search",value:i,onChange:j=>o(j.target.value),placeholder:"Buscar contato por nome ou numero",style:{border:"1px solid var(--color-border)",borderRadius:"18px",padding:"0.95rem 1rem",background:"#fff",outline:"none"}}),d.jsx("button",{type:"button",onClick:()=>k(m.phone),style:{border:"1px solid var(--color-border)",borderRadius:"18px",padding:"0.95rem 1rem",background:"#fff",color:"var(--color-primary)",fontWeight:700},children:"Novo numero"})]}),d.jsx("div",{style:{display:"grid",gridTemplateColumns:l?"1fr":"repeat(3, minmax(0, 1fr))",gap:"0.85rem"},children:Io.map(j=>{const M=j.id===a;return d.jsxs("button",{type:"button",onClick:()=>s(j.id),style:{border:"1px solid",borderColor:M?`${j.accent}44`:"var(--color-border)",borderRadius:"22px",padding:"1rem",background:M?`${j.accent}12`:"#fff",textAlign:"left",display:"grid",gap:"0.45rem"},children:[d.jsx("strong",{style:{color:M?j.accent:"var(--color-text)"},children:j.label}),d.jsx("span",{style:{color:"var(--color-text-soft)"},children:j.id==="call"?"Inicia uma ligacao mock em tela cheia.":"Abre o fluxo de conversa em tempo real."})]},j.id)})}),d.jsxs("div",{style:{display:"grid",gridTemplateColumns:l?"1fr":"repeat(2, minmax(0, 1fr))",gap:"1rem"},children:[d.jsxs("label",{style:{display:"grid",gap:"0.45rem"},children:[d.jsx("span",{style:{fontWeight:600},children:"Area (opcional)"}),d.jsxs("select",{value:u,onChange:j=>h(j.target.value),style:{border:"1px solid var(--color-border)",borderRadius:"18px",padding:"0.95rem 1rem",background:"#fff",outline:"none"},children:[d.jsx("option",{value:"",children:"Selecionar depois"}),py.map(j=>d.jsx("option",{value:j,children:j},j))]})]}),d.jsxs("label",{style:{display:"grid",gap:"0.45rem"},children:[d.jsx("span",{style:{fontWeight:600},children:"Numero selecionado"}),d.jsx("input",{type:"text",value:w||m.phone,onChange:j=>k(j.target.value),placeholder:"+55 11 99999-9999",style:{border:"1px solid var(--color-border)",borderRadius:"18px",padding:"0.95rem 1rem",background:"#fff",outline:"none"}})]})]}),d.jsxs("section",{style:{display:"grid",gridTemplateColumns:l?"1fr":"minmax(0, 1.1fr) minmax(280px, 0.9fr)",gap:"1rem"},children:[d.jsxs("article",{style:{borderRadius:"24px",padding:"1.25rem",background:"linear-gradient(135deg, rgba(0, 49, 80, 0.98), rgba(11, 90, 134, 0.94))",color:"#fff",display:"grid",gap:"0.7rem"},children:[d.jsx("span",{style:{width:"fit-content",padding:"0.35rem 0.75rem",borderRadius:"999px",background:"rgba(255, 255, 255, 0.12)",fontWeight:700,fontSize:"0.84rem"},children:"Resumo do fluxo"}),d.jsx("strong",{style:{fontSize:"1.25rem"},children:m.name}),d.jsxs("span",{style:{color:"rgba(255, 255, 255, 0.74)"},children:["Canal escolhido: ",f.label]}),d.jsxs("span",{style:{color:"rgba(255, 255, 255, 0.74)"},children:["Numero: ",w||m.phone]}),d.jsxs("span",{style:{color:"rgba(255, 255, 255, 0.74)"},children:["Area: ",u||"Definir depois"]})]}),d.jsxs("article",{style:{borderRadius:"24px",padding:"1.25rem",border:"1px solid var(--color-border)",background:"#fff",display:"grid",gap:"0.7rem"},children:[d.jsx("strong",{children:"Proxima rota"}),d.jsx("span",{style:{color:"var(--color-text-soft)"},children:f.route==="/call"?"Ao iniciar, voce vai para a tela de ligacao.":"Ao iniciar, voce vai para a tela de chat."}),d.jsx("button",{type:"button",onClick:E,style:{border:"none",borderRadius:"18px",padding:"1rem 1.1rem",background:"linear-gradient(135deg, var(--color-primary), #0b5a86)",color:"#fff",fontWeight:800,marginTop:"0.4rem"},children:"Iniciar atendimento"})]})]})]})]})]})})}const my=mv([{path:"/",element:d.jsx(av,{to:"/login",replace:!0})},{path:"/login",element:d.jsx(bv,{})},{path:"/home",element:d.jsx(Xv,{})},{path:"/chat",element:d.jsx(ly,{})},{path:"/call",element:d.jsx(cy,{})},{path:"/new-attendance",element:d.jsx(hy,{})}]);Oo.createRoot(document.getElementById("root")).render(d.jsx(Ad.StrictMode,{children:d.jsx(Ev,{router:my})})); diff --git a/dist/assets/index-BsY34Fgu.css b/dist/assets/index-BsY34Fgu.css deleted file mode 100644 index 80add01..0000000 --- a/dist/assets/index-BsY34Fgu.css +++ /dev/null @@ -1 +0,0 @@ -:root{font-family:Segoe UI,Helvetica Neue,sans-serif;color:#122230;background:radial-gradient(circle at top left,rgba(0,164,183,.12),transparent 28%),radial-gradient(circle at bottom right,rgba(229,162,42,.14),transparent 24%),#f5f8fb;color-scheme:light;--color-primary: #003150;--color-secondary: #b51f1f;--color-accent: #00a4b7;--color-highlight: #e5a22a;--color-surface: rgba(255, 255, 255, .9);--color-surface-strong: #ffffff;--color-text: #122230;--color-text-soft: #5e6d7b;--color-border: rgba(0, 49, 80, .12);--shadow-lg: 0 24px 60px rgba(0, 49, 80, .12);--shadow-md: 0 12px 28px rgba(0, 49, 80, .08)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh}body,button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none} diff --git a/dist/assets/logo_white_dark_mode-BKcVSu03.png b/dist/assets/logo_white_dark_mode-BKcVSu03.png deleted file mode 100644 index 9f6233d086bb35ebc2e6b7a31dab0c137cf854fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25841 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

3$=5W~JJfG}KL`9&G!EXPxYJb{G3oz+ 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 QC1?26+yCTUv3~OZ0IV`sI{*Lx diff --git a/dist/index.html b/dist/index.html deleted file mode 100644 index 2ba7a16..0000000 --- a/dist/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - Omnichannel Sothis - - - - -

- - diff --git a/src/modules/auth/components/LoginForm.jsx b/src/modules/auth/components/LoginForm.jsx index 66f1d6c..0ad3e61 100644 --- a/src/modules/auth/components/LoginForm.jsx +++ b/src/modules/auth/components/LoginForm.jsx @@ -39,7 +39,7 @@ const initialFormData = { export function LoginForm() { const [formData, setFormData] = useState(initialFormData); - const { login, isSubmitting } = useLogin(); + const { login, startMicrosoftLogin, providers, error, isSubmitting } = useLogin(); async function handleSubmit(event) { event.preventDefault(); @@ -48,50 +48,89 @@ export function LoginForm() { return (
- + {providers.ldap ? ( + <> + - + - + + + ) : null} - + {providers.microsoft ? ( + + ) : null} - + {error} + + ) : null} + + {!providers.ldap && !providers.microsoft ? ( +
+ Nenhum provedor de login esta habilitado. +
+ ) : null} + + - Esqueci minha senha -
+ Acesso somente via AD ou Microsoft corporativo. +
); } diff --git a/src/modules/auth/hooks/useLogin.js b/src/modules/auth/hooks/useLogin.js index cddc6da..91a68eb 100644 --- a/src/modules/auth/hooks/useLogin.js +++ b/src/modules/auth/hooks/useLogin.js @@ -1,17 +1,51 @@ -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; -import { mockLogin } from '../services/authService'; +import { + getAuthConfig, + loginWithAd, + startMicrosoftLogin, + storeAuthSession, +} from '../services/authService'; export function useLogin() { const navigate = useNavigate(); const [isSubmitting, setIsSubmitting] = useState(false); + const [error, setError] = useState(''); + const [providers, setProviders] = useState({ ldap: true, microsoft: false }); - async function login() { - setIsSubmitting(true); + useEffect(() => { + getAuthConfig() + .then((config) => setProviders(config.providers || { ldap: true, microsoft: false })) + .catch(() => setProviders({ ldap: true, microsoft: false })); + }, []); + + useEffect(() => { + const params = new URLSearchParams(window.location.search); + const token = params.get('token'); + const rawUser = params.get('user'); + + if (!token || !rawUser) return; try { - await mockLogin(); + const user = JSON.parse(rawUser); + storeAuthSession({ token, user }); + window.history.replaceState({}, document.title, window.location.pathname); + navigate('/home', { replace: true }); + } catch { + setError('Nao foi possivel concluir o login Microsoft.'); + } + }, [navigate]); + + async function login(credentials) { + setIsSubmitting(true); + setError(''); + + try { + const authResult = await loginWithAd(credentials); + storeAuthSession(authResult); navigate('/home'); + } catch (loginError) { + setError(loginError.message || 'Falha ao autenticar.'); } finally { setIsSubmitting(false); } @@ -19,6 +53,9 @@ export function useLogin() { return { isSubmitting, + error, + providers, login, + startMicrosoftLogin, }; } diff --git a/src/modules/auth/pages/LoginPage.jsx b/src/modules/auth/pages/LoginPage.jsx index 2de87cf..6f50c2c 100644 --- a/src/modules/auth/pages/LoginPage.jsx +++ b/src/modules/auth/pages/LoginPage.jsx @@ -58,7 +58,7 @@ export function LoginPage() { margin: 0, }} > - MVP de atendimento + Atendimento Múltiplos canais

- Conecte-se com seu cliente em uma única tela. + Conexão multiatendimento em um único lugar.

{[ - { label: 'Canais', value: 'WhatsApp, SMS e Voz' }, + { label: 'Canais', value: 'WhatsApp, SMS e E-mail' }, { label: 'Fila', value: 'Distribuição rápida' }, { label: 'UX', value: 'Padrão SaaS responsivo' }, ].map((item) => ( @@ -147,8 +147,7 @@ export function LoginPage() { lineHeight: 1.6, }} > - Use seu usuário corporativo para acessar o MVP. A autenticação e mockada - nesta etapa e leva você diretamente para a dashboard principal. + Use seu usuario corporativo para acessar o MVP com Active Directory ou Microsoft.

diff --git a/src/modules/auth/services/authService.js b/src/modules/auth/services/authService.js index 452383a..1dde66f 100644 --- a/src/modules/auth/services/authService.js +++ b/src/modules/auth/services/authService.js @@ -1,11 +1,35 @@ -const networkDelay = 450; +const API_BASE_URL = import.meta.env.VITE_API_URL || 'http://localhost:3001'; -export async function mockLogin() { - await new Promise((resolve) => window.setTimeout(resolve, networkDelay)); +async function parseJsonResponse(response) { + const data = await response.json().catch(() => null); - return { - id: 'agent-001', - name: 'Ana Camolesi', - email: 'ana.camolesi@sothis.local', - }; + if (!response.ok) { + throw new Error(data?.message || 'Nao foi possivel autenticar.'); + } + + return data; +} + +export async function getAuthConfig() { + const response = await fetch(`${API_BASE_URL}/auth/config`); + return parseJsonResponse(response); +} + +export async function loginWithAd(credentials) { + const response = await fetch(`${API_BASE_URL}/auth/login`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(credentials), + }); + + return parseJsonResponse(response); +} + +export function startMicrosoftLogin() { + window.location.href = `${API_BASE_URL}/auth/oauth/microsoft/start`; +} + +export function storeAuthSession(authResult) { + window.localStorage.setItem('authToken', authResult.token); + window.localStorage.setItem('authUser', JSON.stringify(authResult.user)); } diff --git a/src/modules/home/components/HomeSidebar.jsx b/src/modules/home/components/HomeSidebar.jsx index d36ab36..a68ec42 100644 --- a/src/modules/home/components/HomeSidebar.jsx +++ b/src/modules/home/components/HomeSidebar.jsx @@ -1,5 +1,5 @@ import { useNavigate } from 'react-router-dom'; -import { clearSession, getCurrentUserProfile } from '../../auth/services/sessionService'; +import { clearSession } from '../../auth/services/sessionService'; export function HomeSidebar({ items, activeItem, isMobile = false }) { const navigate = useNavigate(); @@ -29,7 +29,7 @@ export function HomeSidebar({ items, activeItem, isMobile = false }) { textAlign: 'left', }} > - + Novo Atendimento + Abrir atendimento