PageSourceSearch

https://xpedioo.ai/assets/index-j_W7d_HZ.js

js xpedioo.ai collected 2026-10-05 14:15:38 UTC 1,682,152 bytes, 64 lines download raw bytes

vendor: 5,118 bytes, line 1
1function DI(t,a){for(var r=0;r<a.length;r++){const s=a[r];if(typeof s!="string"&&!Array.isArray(s)){for(const l in s)if(l!=="default"&&!(l in t)){const d=Object.getOwnPropertyDescriptor(s,l);d&&Object.defineProperty(t,l,d.get?d:{enumerable:!0,get:()=>s[l]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))s(l);new MutationObserver(l=>{for(const d of l)if(d.type==="childList")for(const u of d.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&s(u)}).observe(document,{childList:!0,subtree:!0});function r(l){const d={};return l.integrity&&(d.integrity=l.integrity),l.referrerPolicy&&(d.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?d.credentials="include":l.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function s(l){if(l.ep)return;l.ep=!0;const d=r(l);fetch(l.href,d)}})();function Tu(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var kh={exports:{}},nl={};var G0;function LI(){if(G0)return nl;G0=1;var t=Symbol.for("react.transitional.element"),a=Symbol.for("react.fragment");function r(s,l,d){var u=null;if(d!==void 0&&(u=""+d),l.key!==void 0&&(u=""+l.key),"key"in l){d={};for(var p in l)p!=="key"&&(d[p]=l[p])}else d=l;return l=d.ref,{$$typeof:t,type:s,key:u,ref:l!==void 0?l:null,props:d}}return nl.Fragment=a,nl.jsx=r,nl.jsxs=r,nl}var U0;function VI(){return U0||(U0=1,kh.exports=LI()),kh.exports}var e=VI(),Sh={exports:{}},rl={},Ih={exports:{}},Ch={};var X0;function _I(){return X0||(X0=1,(function(t){function a(_,ee){var X=_.length;_.push(ee);e:for(;0<X;){var oe=X-1>>>1,M=_[oe];if(0<l(M,ee))_[oe]=ee,_[X]=M,X=oe;else break e}}function r(_){return _.length===0?null:_[0]}function s(_){if(_.length===0)return null;var ee=_[0],X=_.pop();if(X!==ee){_[0]=X;e:for(var oe=0,M=_.length,Q=M>>>1;oe<Q;){var F=2*(oe+1)-1,Y=_[F],re=F+1,W=_[re];if(0>l(Y,X))re<M&&0>l(W,Y)?(_[oe]=W,_[re]=X,oe=re):(_[oe]=Y,_[F]=X,oe=F);else if(re<M&&0>l(W,X))_[oe]=W,_[re]=X,oe=re;else break e}}return ee}function l(_,ee){var X=_.sortIndex-ee.sortIndex;return X!==0?X:_.id-ee.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;t.unstable_now=function(){return d.now()}}else{var u=Date,p=u.now();t.unstable_now=function(){return u.now()-p}}var g=[],h=[],x=1,b=null,w=3,N=!1,A=!1,k=!1,I=!1,T=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,R=typeof setImmediate<"u"?setImmediate:null;function C(_){for(var ee=r(h);ee!==null;){if(ee.callback===null)s(h);else if(ee.startTime<=_)s(h),ee.sortIndex=ee.expirationTime,a(g,ee);else break;ee=r(h)}}function P(_){if(k=!1,C(_),!A)if(r(g)!==null)A=!0,z||(z=!0,ce());else{var ee=r(h);ee!==null&&ue(P,ee.startTime-_)}}var z=!1,V=-1,D=5,K=-1;function ne(){return I?!0:!(t.unstable_now()-K<D)}function le(){if(I=!1,z){var _=t.unstable_now();K=_;var ee=!0;try{e:{A=!1,k&&(k=!1,E(V),V=-1),N=!0;var X=w;try{t:{for(C(_),b=r(g);b!==null&&!(b.expirationTime>_&&ne());){var oe=b.callback;if(typeof oe=="function"){b.callback=null,w=b.priorityLevel;var M=oe(b.expirationTime<=_);if(_=t.unstable_now(),typeof M=="function"){b.callback=M,C(_),ee=!0;break t}b===r(g)&&s(g),C(_)}else s(g);b=r(g)}if(b!==null)ee=!0;else{var Q=r(h);Q!==null&&ue(P,Q.startTime-_),ee=!1}}break e}finally{b=null,w=X,N=!1}ee=void 0}}finally{ee?ce():z=!1}}}var ce;if(typeof R=="function")ce=function(){R(le)};else if(typeof MessageChannel<"u"){var ye=new MessageChannel,se=ye.port2;ye.port1.onmessage=le,ce=function(){se.postMessage(null)}}else ce=function(){T(le,0)};function ue(_,ee){V=T(function(){_(t.unstable_now())},ee)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(_){_.callback=null},t.unstable_forceFrameRate=function(_){0>_||125<_?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):D=0<_?Math.floor(1e3/_):5},t.unstable_getCurrentPriorityLevel=function(){return w},t.unstable_next=function(_){switch(w){case 1:case 2:case 3:var ee=3;break;default:ee=w}var X=w;w=ee;try{return _()}finally{w=X}},t.unstable_requestPaint=function(){I=!0},t.unstable_runWithPriority=function(_,ee){switch(_){case 1:case 2:case 3:case 4:case 5:break;default:_=3}var X=w;w=_;try{return ee()}finally{w=X}},t.unstable_scheduleCallback=function(_,ee,X){var oe=t.unstable_now();switch(typeof X=="object"&&X!==null?(X=X.delay,X=typeof X=="number"&&0<X?oe+X:oe):X=oe,_){case 1:var M=-1;break;case 2:M=250;break;case 5:M=1073741823;break;case 4:M=1e4;break;default:M=5e3}return M=X+M,_={id:x++,callback:ee,priorityLevel:_,startTime:X,expirationTime:M,sortIndex:-1},X>oe?(_.sortIndex=X,a(h,_),r(g)===null&&_===r(h)&&(k?(E(V),V=-1):k=!0,ue(P,X-oe))):(_.sortIndex=M,a(g,_),A||N||(A=!0,z||(z=!0,
vendor: 31,352 bytes, lines 1-8
1ce()))),_},t.unstable_shouldYield=ne,t.unstable_wrapCallback=function(_){var ee=w;return function(){var X=w;w=ee;try{return _.apply(this,arguments)}finally{w=X}}}})(Ch)),Ch}var $0;function zI(){return $0||($0=1,Ih.exports=_I()),Ih.exports}var Mh={exports:{}},Ee={};var W0;function qI(){if(W0)return Ee;W0=1;var t=Symbol.for("react.transitional.element"),a=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),d=Symbol.for("react.consumer"),u=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),x=Symbol.for("react.lazy"),b=Symbol.iterator;function w(M){return M===null||typeof M!="object"?null:(M=b&&M[b]||M["@@iterator"],typeof M=="function"?M:null)}var N={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},A=Object.assign,k={};function I(M,Q,F){this.props=M,this.context=Q,this.refs=k,this.updater=F||N}I.prototype.isReactComponent={},I.prototype.setState=function(M,Q){if(typeof M!="object"&&typeof M!="function"&&M!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,M,Q,"setState")},I.prototype.forceUpdate=function(M){this.updater.enqueueForceUpdate(this,M,"forceUpdate")};function T(){}T.prototype=I.prototype;function E(M,Q,F){this.props=M,this.context=Q,this.refs=k,this.updater=F||N}var R=E.prototype=new T;R.constructor=E,A(R,I.prototype),R.isPureReactComponent=!0;var C=Array.isArray,P={H:null,A:null,T:null,S:null,V:null},z=Object.prototype.hasOwnProperty;function V(M,Q,F,Y,re,W){return F=W.ref,{$$typeof:t,type:M,key:Q,ref:F!==void 0?F:null,props:W}}function D(M,Q){return V(M.type,Q,void 0,void 0,void 0,M.props)}function K(M){return typeof M=="object"&&M!==null&&M.$$typeof===t}function ne(M){var Q={"=":"=0",":":"=2"};return"$"+M.replace(/[=:]/g,function(F){return Q[F]})}var le=/\/+/g;function ce(M,Q){return typeof M=="object"&&M!==null&&M.key!=null?ne(""+M.key):Q.toString(36)}function ye(){}function se(M){switch(M.status){case"fulfilled":return M.value;case"rejected":throw M.reason;default:switch(typeof M.status=="string"?M.then(ye,ye):(M.status="pending",M.then(function(Q){M.status==="pending"&&(M.status="fulfilled",M.value=Q)},function(Q){M.status==="pending"&&(M.status="rejected",M.reason=Q)})),M.status){case"fulfilled":return M.value;case"rejected":throw M.reason}}throw M}function ue(M,Q,F,Y,re){var W=typeof M;(W==="undefined"||W==="boolean")&&(M=null);var te=!1;if(M===null)te=!0;else switch(W){case"bigint":case"string":case"number":te=!0;break;case"object":switch(M.$$typeof){case t:case a:te=!0;break;case x:return te=M._init,ue(te(M._payload),Q,F,Y,re)}}if(te)return re=re(M),te=Y===""?"."+ce(M,0):Y,C(re)?(F="",te!=null&&(F=te.replace(le,"$&/")+"/"),ue(re,Q,F,"",function(Se){return Se})):re!=null&&(K(re)&&(re=D(re,F+(re.key==null||M&&M.key===re.key?"":(""+re.key).replace(le,"$&/")+"/")+te)),Q.push(re)),1;te=0;var je=Y===""?".":Y+":";if(C(M))for(var ke=0;ke<M.length;ke++)Y=M[ke],W=je+ce(Y,ke),te+=ue(Y,Q,F,W,re);else if(ke=w(M),typeof ke=="function")for(M=ke.call(M),ke=0;!(Y=M.next()).done;)Y=Y.value,W=je+ce(Y,ke++),te+=ue(Y,Q,F,W,re);else if(W==="object"){if(typeof M.then=="function")return ue(se(M),Q,F,Y,re);throw Q=String(M),Error("Objects are not valid as a React child (found: "+(Q==="[object Object]"?"object with keys {"+Object.keys(M).join(", ")+"}":Q)+"). If you meant to render a collection of children, use an array instead.")}return te}function _(M,Q,F){if(M==null)return M;var Y=[],re=0;return ue(M,Y,"","",function(W){return Q.call(F,W,re++)}),Y}function ee(M){if(M._status===-1){var Q=M._result;Q=Q(),Q.then(function(F){(M._status===0||M._status===-1)&&(M._status=1,M._result=F)},function(F){(M._status===0||M._status===-1)&&(M._status=2,M._result=F)}),M._status===-1&&(M._status=0,M._result=Q)}if(M._status===1)return M._result.default;throw M._result}var X=typeof reportError=="function"?reportError:function(M){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var Q=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof M=="object"&&M!==null&&typeof M.message=="string"?String(M.message):String(M),error:M});if(!window.dispatchEvent(Q))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",M);return}console.error(M)};function oe(){}return Ee.Children={map:_,forEach:function(M,Q,F){_(M,function(){Q.apply(this,arguments)},F)},count:function(M){var Q=0;return _(M,function(){Q++}),Q},toArray:function(M){return _(M,function(Q){return Q})||[]},only:function(M){if(!K(M))throw Error("React.Children.only expected to receive a single React element child.");return M}},Ee.Component=I,Ee.Fragment=r,Ee.Profiler=l,Ee.PureComponent=E,Ee.StrictMode=s,Ee.Suspense=g,Ee.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=P,Ee.__COMPILER_RUNTIME={__proto__:null,c:function(M){return P.H.useMemoCache(M)}},Ee.cache=function(M){return function(){return M.apply(null,arguments)}},Ee.cloneElement=function(M,Q,F){if(M==null)throw Error("The argument must be a React element, but you passed "+M+".");var Y=A({},M.props),re=M.key,W=void 0;if(Q!=null)for(te in Q.ref!==void 0&&(W=void 0),Q.key!==void 0&&(re=""+Q.key),Q)!z.call(Q,te)||te==="key"||te==="__self"||te==="__source"||te==="ref"&&Q.ref===void 0||(Y[te]=Q[te]);var te=arguments.length-2;if(te===1)Y.children=F;else if(1<te){for(var je=Array(te),ke=0;ke<te;ke++)je[ke]=arguments[ke+2];Y.children=je}return V(M.type,re,void 0,void 0,W,Y)},Ee.createContext=function(M){return M={$$typeof:u,_currentValue:M,_currentValue2:M,_threadCount:0,Provider:null,Consumer:null},M.Provider=M,M.Consumer={$$typeof:d,_context:M},M},Ee.createElement=function(M,Q,F){var Y,re={},W=null;if(Q!=null)for(Y in Q.key!==void 0&&(W=""+Q.key),Q)z.call(Q,Y)&&Y!=="key"&&Y!=="__self"&&Y!=="__source"&&(re[Y]=Q[Y]);var te=arguments.length-2;if(te===1)re.children=F;else if(1<te){for(var je=Array(te),ke=0;ke<te;ke++)je[ke]=arguments[ke+2];re.children=je}if(M&&M.defaultProps)for(Y in te=M.defaultProps,te)re[Y]===void 0&&(re[Y]=te[Y]);return V(M,W,void 0,void 0,null,re)},Ee.createRef=function(){return{current:null}},Ee.forwardRef=function(M){return{$$typeof:p,render:M}},Ee.isValidElement=K,Ee.lazy=function(M){return{$$typeof:x,_payload:{_status:-1,_result:M},_init:ee}},Ee.memo=function(M,Q){return{$$typeof:h,type:M,compare:Q===void 0?null:Q}},Ee.startTransition=function(M){var Q=P.T,F={};P.T=F;try{var Y=M(),re=P.S;re!==null&&re(F,Y),typeof Y=="object"&&Y!==null&&typeof Y.then=="function"&&Y.then(oe,X)}catch(W){X(W)}finally{P.T=Q}},Ee.unstable_useCacheRefresh=function(){return P.H.useCacheRefresh()},Ee.use=function(M){return P.H.use(M)},Ee.useActionState=function(M,Q,F){return P.H.useActionState(M,Q,F)},Ee.useCallback=function(M,Q){return P.H.useCallback(M,Q)},Ee.useContext=function(M){return P.H.useContext(M)},Ee.useDebugValue=function(){},Ee.useDeferredValue=function(M,Q){return P.H.useDeferredValue(M,Q)},Ee.useEffect=function(M,Q,F){var Y=P.H;if(typeof F=="function")throw Error("useEffect CRUD overload is not enabled in this build of React.");return Y.useEffect(M,Q)},Ee.useId=function(){return P.H.useId()},Ee.useImperativeHandle=function(M,Q,F){return P.H.useImperativeHandle(M,Q,F)},Ee.useInsertionEffect=function(M,Q){return P.H.useInsertionEffect(M,Q)},Ee.useLayoutEffect=function(M,Q){return P.H.useLayoutEffect(M,Q)},Ee.useMemo=function(M,Q){return P.H.useMemo(M,Q)},Ee.useOptimistic=function(M,Q){return P.H.useOptimistic(M,Q)},Ee.useReducer=function(M,Q,F){return P.H.useReducer(M,Q,F)},Ee.useRef=function(M){return P.H.useRef(M)},Ee.useState=function(M){return P.H.useState(M)},Ee.useSyncExternalStore=function(M,Q,F){return P.H.useSyncExternalStore(M,Q,F)},Ee.useTransition=function(){return P.H.useTransition()},Ee.version="19.1.0",Ee}var K0;function Eu(){return K0||(K0=1,Mh.exports=qI()),Mh.exports}var Th={exports:{}},Ft={};var Y0;function FI(){if(Y0)return Ft;Y0=1;var t=Eu();function a(g){var h="https://react.dev/errors/"+g;if(1<arguments.length){h+="?args[]="+encodeURIComponent(arguments[1]);for(var x=2;x<arguments.length;x++)h+="&args[]="+encodeURIComponent(arguments[x])}return"Minified React error #"+g+"; visit "+h+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(){}var s={d:{f:r,r:function(){throw Error(a(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},l=Symbol.for("react.portal");function d(g,h,x){var b=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:l,key:b==null?null:""+b,children:g,containerInfo:h,implementation:x}}var u=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function p(g,h){if(g==="font")return"";if(typeof h=="string")return h==="use-credentials"?h:""}return Ft.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=s,Ft.createPortal=function(g,h){var x=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!h||h.nodeType!==1&&h.nodeType!==9&&h.nodeType!==11)throw Error(a(299));return d(g,h,null,x)},Ft.flushSync=function(g){var h=u.T,x=s.p;try{if(u.T=null,s.p=2,g)return g()}finally{u.T=h,s.p=x,s.d.f()}},Ft.preconnect=function(g,h){typeof g=="string"&&(h?(h=h.crossOrigin,h=typeof h=="string"?h==="use-credentials"?h:"":void 0):h=null,s.d.C(g,h))},Ft.prefetchDNS=function(g){typeof g=="string"&&s.d.D(g)},Ft.preinit=function(g,h){if(typeof g=="string"&&h&&typeof h.as=="string"){var x=h.as,b=p(x,h.crossOrigin),w=typeof h.integrity=="string"?h.integrity:void 0,N=typeof h.fetchPriority=="string"?h.fetchPriority:void 0;x==="style"?s.d.S(g,typeof h.precedence=="string"?h.precedence:void 0,{crossOrigin:b,integrity:w,fetchPriority:N}):x==="script"&&s.d.X(g,{crossOrigin:b,integrity:w,fetchPriority:N,nonce:typeof h.nonce=="string"?h.nonce:void 0})}},Ft.preinitModule=function(g,h){if(typeof g=="string")if(typeof h=="object"&&h!==null){if(h.as==null||h.as==="script"){var x=p(h.as,h.crossOrigin);s.d.M(g,{crossOrigin:x,integrity:typeof h.integrity=="string"?h.integrity:void 0,nonce:typeof h.nonce=="string"?h.nonce:void 0})}}else h==null&&s.d.M(g)},Ft.preload=function(g,h){if(typeof g=="string"&&typeof h=="object"&&h!==null&&typeof h.as=="string"){var x=h.as,b=p(x,h.crossOrigin);s.d.L(g,x,{crossOrigin:b,integrity:typeof h.integrity=="string"?h.integrity:void 0,nonce:typeof h.nonce=="string"?h.nonce:void 0,type:typeof h.type=="string"?h.type:void 0,fetchPriority:typeof h.fetchPriority=="string"?h.fetchPriority:void 0,referrerPolicy:typeof h.referrerPolicy=="string"?h.referrerPolicy:void 0,imageSrcSet:typeof h.imageSrcSet=="string"?h.imageSrcSet:void 0,imageSizes:typeof h.imageSizes=="string"?h.imageSizes:void 0,media:typeof h.media=="string"?h.media:void 0})}},Ft.preloadModule=function(g,h){if(typeof g=="string")if(h){var x=p(h.as,h.crossOrigin);s.d.m(g,{as:typeof h.as=="string"&&h.as!=="script"?h.as:void 0,crossOrigin:x,integrity:typeof h.integrity=="string"?h.integrity:void 0})}else s.d.m(g)},Ft.requestFormReset=function(g){s.d.r(g)},Ft.unstable_batchedUpdates=function(g,h){return g(h)},Ft.useFormState=function(g,h,x){return u.H.useFormState(g,h,x)},Ft.useFormStatus=function(){return u.H.useHostTransitionStatus()},Ft.version="19.1.0",Ft}var Q0;function mj(){if(Q0)return Th.exports;Q0=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(a){console.error(a)}}return t(),Th.exports=FI(),Th.exports}var Z0;function BI(){if(Z0)return rl;Z0=1;var t=zI(),a=Eu(),r=mj();function s(i){var n="https://react.dev/errors/"+i;if(1<arguments.length){n+="?args[]="+encodeURIComponent(arguments[1]);for(var o=2;o<arguments.length;o++)n+="&args[]="+encodeURIComponent(arguments[o])}return"Minified React error #"+i+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function l(i){return!(!i||i.nodeType!==1&&i.nodeType!==9&&i.nodeType!==11)}function d(i){var n=i,o=i;if(i.alternate)for(;n.return;)n=n.return;else{i=n;do n=i,(n.flags&4098)!==0&&(o=n.return),i=n.return;while(i)}return n.tag===3?o:null}function u(i){if(i.tag===13){var n=i.memoizedState;if(n===null&&(i=i.alternate,i!==null&&(n=i.memoizedState)),n!==null)return n.dehydrated}return null}function p(i){if(d(i)!==i)throw Error(s(188))}function g(i){var n=i.alternate;if(!n){if(n=d(i),n===null)throw Error(s(188));return n!==i?null:i}for(var o=i,c=n;;){var m=o.return;if(m===null)break;var f=m.alternate;if(f===null){if(c=m.return,c!==null){o=c;continue}break}if(m.child===f.child){for(f=m.child;f;){if(f===o)return p(m),i;if(f===c)return p(m),n;f=f.sibling}throw Error(s(188))}if(o.return!==c.return)o=m,c=f;else{for(var j=!1,S=m.child;S;){if(S===o){j=!0,o=m,c=f;break}if(S===c){j=!0,c=m,o=f;break}S=S.sibling}if(!j){for(S=f.child;S;){if(S===o){j=!0,o=f,c=m;break}if(S===c){j=!0,c=f,o=m;break}S=S.sibling}if(!j)throw Error(s(189))}}if(o.alternate!==c)throw Error(s(190))}if(o.tag!==3)throw Error(s(188));return o.stateNode.current===o?i:n}function h(i){var n=i.tag;if(n===5||n===26||n===27||n===6)return i;for(i=i.child;i!==null;){if(n=h(i),n!==null)return n;i=i.sibling}return null}var x=Object.assign,b=Symbol.for("react.element"),w=Symbol.for("react.transitional.element"),N=Symbol.for("react.portal"),A=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),I=Symbol.for("react.profiler"),T=Symbol.for("react.provider"),E=Symbol.for("react.consumer"),R=Symbol.for("react.context"),C=Symbol.for("react.forward_ref"),P=Symbol.for("react.suspense"),z=Symbol.for("react.suspense_list"),V=Symbol.for("react.memo"),D=Symbol.for("react.lazy"),K=Symbol.for("react.activity"),ne=Symbol.for("react.memo_cache_sentinel"),le=Symbol.iterator;function ce(i){return i===null||typeof i!="object"?null:(i=le&&i[le]||i["@@iterator"],typeof i=="function"?i:null)}var ye=Symbol.for("react.client.reference");function se(i){if(i==null)return null;if(typeof i=="function")return i.$$typeof===ye?null:i.displayName||i.name||null;if(typeof i=="string")return i;switch(i){case A:return"Fragment";case I:return"Profiler";case k:return"StrictMode";case P:return"Suspense";case z:return"SuspenseList";case K:return"Activity"}if(typeof i=="object")switch(i.$$typeof){case N:return"Portal";case R:return(i.displayName||"Context")+".Provider";case E:return(i._context.displayName||"Context")+".Consumer";case C:var n=i.render;return i=i.displayName,i||(i=n.displayName||n.name||"",i=i!==""?"ForwardRef("+i+")":"ForwardRef"),i;case V:return n=i.displayName||null,n!==null?n:se(i.type)||"Memo";case D:n=i._payload,i=i._init;try{return se(i(n))}catch{}}return null}var ue=Array.isArray,_=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ee=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,X={pending:!1,data:null,method:null,action:null},oe=[],M=-1;function Q(i){return{current:i}}function F(i){0>M||(i.current=oe[M],oe[M]=null,M--)}function Y(i,n){M++,oe[M]=i.current,i.current=n}var re=Q(null),W=Q(null),te=Q(null),je=Q(null);function ke(i,n){switch(Y(te,n),Y(W,i),Y(re,null),n.nodeType){case 9:case 11:i=(i=n.documentElement)&&(i=i.namespaceURI)?y0(i):0;break;default:if(i=n.tagName,n=n.namespaceURI)n=y0(n),i=b0(n,i);else switch(i){case"svg":i=1;break;case"math":i=2;break;default:i=0}}F(re),Y(re,i)}function Se(){F(re),F(W),F(te)}function la(i){i.memoizedState!==null&&Y(je,i);var n=re.current,o=b0(n,i.type);n!==o&&(Y(W,i),Y(re,o))}function Da(i){W.current===i&&(F(re),F(W)),je.current===i&&(F(je),Jo._currentValue=X)}var ai=Object.prototype.hasOwnProperty,Ai=t.unstable_scheduleCallback,ca=t.unstable_cancelCallback,pS=t.unstable_shouldYield,hS=t.unstable_requestPaint,ii=t.unstable_now,fS=t.unstable_getCurrentPriorityLevel,Zx=t.unstable_ImmediatePriority,Jx=t.unstable_UserBlockingPriority,ac=t.unstable_NormalPriority,gS=t.unstable_LowPriority,ey=t.unstable_IdlePriority,xS=t.log,yS=t.unstable_setDisableYieldValue,so=null,da=null;function Zi(i){if(typeof xS=="function"&&yS(i),da&&typeof da.setStrictMode=="function")try{da.setStrictMode(so,i)}catch{}}var ua=Math.clz32?Math.clz32:wS,bS=Math.log,vS=Math.LN2;function wS(i){return i>>>=0,i===0?32:31-(bS(i)/vS|0)|0}var ic=256,nc=4194304;function Bn(i){var n=i&42;if(n!==0)return n;switch(i&-i){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return i&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return i}}function rc(i,n,o){var c=i.pendingLanes;if(c===0)return 0;var m=0,f=i.suspendedLanes,j=i.pingedLanes;i=i.warmLanes;var S=c&134217727;return S!==0?(c=S&~f,c!==0?m=Bn(c):(j&=S,j!==0?m=Bn(j):o||(o=S&~i,o!==0&&(m=Bn(o))))):(S=c&~f,S!==0?m=Bn(S):j!==0?m=Bn(j):o||(o=c&~i,o!==0&&(m=Bn(o)))),m===0?0:n!==0&&n!==m&&(n&f)===0&&(f=m&-m,o=n&-n,f>=o||f===32&&(o&4194048)!==0)?n:m}function oo(i,n){return(i.pendingLanes&~(i.suspendedLanes&~i.pingedLanes)&n)===0}function jS(i,n){switch(i){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ty(){var i=ic;return ic<<=1,(ic&4194048)===0&&(ic=256),i}function ay(){var i=nc;return nc<<=1,(nc&62914560)===0&&(nc=4194304),i}function hm(i){for(var n=[],o=0;31>o;o++)n.push(i);return n}function lo(i,n){i.pendingLanes|=n,n!==268435456&&(i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0)}function NS(i,n,o,c,m,f){var j=i.pendingLanes;i.pendingLanes=o,i.suspendedLanes=0,i.pingedLanes=0,i.warmLanes=0,i.expiredLanes&=o,i.entangledLanes&=o,i.errorRecoveryDisabledLanes&=o,i.shellSuspendCounter=0;var S=i.entanglements,O=i.expirationTimes,G=i.hiddenUpdates;for(o=j&~o;0<o;){var Z=31-ua(o),ae=1<<Z;S[Z]=0,O[Z]=-1;var U=G[Z];if(U!==null)for(G[Z]=null,Z=0;Z<U.length;Z++){var $=U[Z];$!==null&&($.lane&=-536870913)}o&=~ae}c!==0&&iy(i,c,0),f!==0&&m===0&&i.tag!==0&&(i.suspendedLanes|=f&~(j&~n))}function iy(i,n,o){i.pendingLanes|=n,i.suspendedLanes&=~n;var c=31-ua(n);i.entangledLanes|=n,i.entanglements[c]=i.entanglements[c]|1073741824|o&4194090}function ny(i,n){var o=i.entangledLanes|=n;for(i=i.entanglements;o;){var c=31-ua(o),m=1<<c;m&n|i[c]&n&&(i[c]|=n),o&=~m}}function fm(i){switch(i){case 2:i=1;break;case 8:i=4;break;case 32:i=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:i=128;break;case 268435456:i=134217728;break;default:i=0}return i}function gm(i){return i&=-i,2<i?8<i?(i&134217727)!==0?32:268435456:8:2}function ry(){var i=ee.p;return i!==0?i:(i=window.event,i===void 0?32:_0(i.type))}function AS(i,n){var o=ee.p;try{return ee.p=i,n()}finally{ee.p=o}}var Ji=Math.random().toString(36).slice(2),zt="__reactFiber$"+Ji,Jt="__reactProps$"+Ji,Rr="__reactContainer$"+Ji,xm="__reactEvents$"+Ji,kS="__reactListeners$"+Ji,SS="__reactHandles$"+Ji,sy="__reactResources$"+Ji,co="__reactMarker$"+Ji;function ym(i){delete i[zt],delete i[Jt],delete i[xm],delete i[kS],delete i[SS]}function Pr(i){var n=i[zt];if(n)return n;for(var o=i.parentNode;o;){if(n=o[Rr]||o[zt]){if(o=n.alternate,n.child!==null||o!==null&&o.child!==null)for(i=N0(i);i!==null;){if(o=i[zt])return o;i=N0(i)}return n}i=o,o=i.parentNode}return null}function Or(i){if(i=i[zt]||i[Rr]){var n=i.tag;if(n===5||n===6||n===13||n===26||n===27||n===3)return i}return null}function uo(i){var n=i.tag;if(n===5||n===26||n===27||n===6)return i.stateNode;throw Error(s(33))}function Dr(i){var n=i[sy];return n||(n=i[sy]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function Ct(i){i[co]=!0}var oy=new Set,ly={};function Hn(i,n){Lr(i,n),Lr(i+"Capture",n)}function Lr(i,n){for(ly[i]=n,i=0;i<n.length;i++)oy.add(n[i])}var IS=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),cy={},dy={};function CS(i){return ai.call(dy,i)?!0:ai.call(cy,i)?!1:IS.test(i)?dy[i]=!0:(cy[i]=!0,!1)}function sc(i,n,o){if(CS(n))if(o===null)i.removeAttribute(n);else{switch(typeof o){case"undefined":case"function":case"symbol":i.removeAttribute(n);return;case"boolean":var c=n.toLowerCase().slice(0,5);if(c!=="data-"&&c!=="aria-"){i.removeAttribute(n);return}}i.setAttribute(n,""+o)}}function oc(i,n,o){if(o===null)i.removeAttribute(n);else{switch(typeof o){case"undefined":case"function":case"symbol":case"boolean":i.removeAttribute(n);return}i.setAttribute(n,""+o)}}function ki(i,n,o,c){if(c===null)i.removeAttribute(o);else{switch(typeof c){case"undefined":case"function":case"symbol":case"boolean":i.removeAttribute(o);return}i.setAttributeNS(n,o,""+c)}}var bm,uy;function Vr(i){if(bm===void 0)try{throw Error()}catch(o){var n=o.stack.trim().match(/\n( *(at )?)/);bm=n&&n[1]||"",uy=-1<o.stack.indexOf(`
2    at`)?" (<anonymous>)":-1<o.stack.indexOf("@")?"@unknown:0:0":""}return`
3`+bm+i+uy}var vm=!1;function wm(i,n){if(!i||vm)return"";vm=!0;var o=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var c={DetermineComponentFrameRoot:function(){try{if(n){var ae=function(){throw Error()};if(Object.defineProperty(ae.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ae,[])}catch($){var U=$}Reflect.construct(i,[],ae)}else{try{ae.call()}catch($){U=$}i.call(ae.prototype)}}else{try{throw Error()}catch($){U=$}(ae=i())&&typeof ae.catch=="function"&&ae.catch(function(){})}}catch($){if($&&U&&typeof $.stack=="string")return[$.stack,U.stack]}return[null,null]}};c.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var m=Object.getOwnPropertyDescriptor(c.DetermineComponentFrameRoot,"name");m&&m.configurable&&Object.defineProperty(c.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var f=c.DetermineComponentFrameRoot(),j=f[0],S=f[1];if(j&&S){var O=j.split(`
4`),G=S.split(`
5`);for(m=c=0;c<O.length&&!O[c].includes("DetermineComponentFrameRoot");)c++;for(;m<G.length&&!G[m].includes("DetermineComponentFrameRoot");)m++;if(c===O.length||m===G.length)for(c=O.length-1,m=G.length-1;1<=c&&0<=m&&O[c]!==G[m];)m--;for(;1<=c&&0<=m;c--,m--)if(O[c]!==G[m]){if(c!==1||m!==1)do if(c--,m--,0>m||O[c]!==G[m]){var Z=`
6`+O[c].replace(" at new "," at ");return i.displayName&&Z.includes("<anonymous>")&&(Z=Z.replace("<anonymous>",i.displayName)),Z}while(1<=c&&0<=m);break}}}finally{vm=!1,Error.prepareStackTrace=o}return(o=i?i.displayName||i.name:"")?Vr(o):""}function MS(i){switch(i.tag){case 26:case 27:case 5:return Vr(i.type);case 16:return Vr("Lazy");case 13:return Vr("Suspense");case 19:return Vr("SuspenseList");case 0:case 15:return wm(i.type,!1);case 11:return wm(i.type.render,!1);case 1:return wm(i.type,!0);case 31:return Vr("Activity");default:return""}}function my(i){try{var n="";do n+=MS(i),i=i.return;while(i);return n}catch(o){return`
7Error generating stack: `+o.message+`
8`+o.stack}}function Na(i){switch(typeof i){case"bigint":case"boolean":case"number":case"string":case"undefined":return i;case"object":return i;default:return""}}function py(i){var n=i.type;return(i=i.nodeName)&&i.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function TS(i){var n=py(i)?"checked":"value",o=Object.getOwnPropertyDescriptor(i.constructor.prototype,n),c=""+i[n];if(!i.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var m=o.get,f=o.set;return Object.defineProperty(i,n,{configurable:!0,get:function(){return m.call(this)},set:function(j){c=""+j,f.call(this,j)}}),Object.defineProperty(i,n,{enumerable:o.enumerable}),{getValue:function(){return c},setValue:function(j){c=""+j},stopTracking:function(){i._valueTracker=null,delete i[n]}}}}function lc(i){i._valueTracker||(i._valueTracker=TS(i))}function hy(i){if(!i)return!1;var n=i._valueTracker;if(!n)return!0;var o=n.getValue(),c="";return i&&(c=py(i)?i.checked?"true":"false":i.value),i=c,i!==o?(n.setValue(i),!0):!1}function cc(i){if(i=i||(typeof document<"u"?document:void 0),typeof i>"u")return null;try{return i.activeElement||i.body}catch{return i.body}}var ES=/[\n"\\]/g;function Aa(i){return i.replace(ES,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function jm(i,n,o,c,m,f,j,S){i.name="",j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"?i.type=j:i.removeAttribute("type"),n!=null?j==="number"?(n===0&&i.value===""||i.value!=n)&&(i.value=""+Na(n)):i.value!==""+Na(n)&&(i.value=""+Na(n)):j!=="submit"&&j!=="reset"||i.removeAttribute("value"),n!=null?Nm(i,j,Na(n)):o!=null?Nm(i,j,Na(o)):c!=null&&i.removeAttribute("value"),m==null&&f!=null&&(i.defaultChecked=!!f),m!=null&&(i.checked=m&&typeof m!="function"&&typeof m!="symbol"),S!=null&&typeof S!="function"&&typeof S!="symbol"&&typeof S!="boolean"?i.name=""+Na(S):i.removeAttribute("name")}function fy(i,n,o,c,m,f,j,S){if(f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(i.type=f),n!=null||o!=null){if(!(f!=="submit"&&f!=="reset"||n!=null))return;o=o!=null?""+Na(o):"",n=n!=null?""+Na(n):o,S||n===i.value||(i.value=n),i.defaultValue=n}c=c??m,c=typeof c!="function"&&typeof c!="symbol"&&!!c,i.checked=S?i.checked:!!c,i.defaultChecked=!!c,j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"&&(i.name=j)}function Nm(i,n,o){n==="number"&&cc(i.ownerDocument)===i||i.defaultValue===""+o||(i.defaultValue=""+o)}function _r(i,n,o,c){if(i=i.options,n){n={};for(var m=0;m<o.length;m++)n["$"+o[m]]=!0;for(o=0;o<i.length;o++)m=n.hasOwnProperty("$"+i[o].value),i[o].selected!==m&&(i[o].selected=m),m&&c&&(i[o].defaultSelected=!0)}else{for(o=""+Na(o),n=null,m=0;m<i.length;m++){if(i[m].value===o){i[m].selected=!0,c&&(i[m].defaultSelected=!0);return}n!==null||i[m].disabled||(n=i[m])}n!==null&&(n.selected=!0)}}function gy(i,n,o){if(n!=null&&(n=""+Na(n),n!==i.value&&(i.value=n),o==null)){i.defaultValue!==n&&(i.defaultValue=n);return}i.defaultValue=o!=null?""+Na(o):""}function xy(i,n,o,c){if(n==null){if(c!=null){if(o!=null)throw Error(s(92));if(ue(c)){if(1<c.length)throw Error(s(93));c=c[0]}o=c}o==null&&(o=""),n=o}o=Na(n),i.defaultValue=o,c=i.textContent,c===o&&c!==""&&c!==null&&(i.value=c)}function zr(i,n){if(n){var o=i.firstChild;if(o&&o===i.lastChild&&o.nodeType===3){o.nodeValue=n;return}}i.textContent=n}var RS=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function yy(i,n,o){var c=n.indexOf("--")===0;o==null||typeof o=="boolean"||o===""?c?i.setProperty(n,""):n==="float"?i.cssFloat="":i[n]="":c?i.setProperty(n,o):typeof o!="number"||o===0||RS.has(n)?n==="float"?i.cssFloat=o:i[n]=(""+o).trim():i[n]=o+"px"}function by(i,n,o){if(n!=null&&typeof n!="object")throw Error(s(62));if(i=i.style,o!=null){for(var c in o)!o.hasOwnProperty(c)||n!=null&&n.hasOwnProperty(c)||(c.indexOf("--")===0?i.setProperty(c,""):c==="float"?i.cssFloat="":i[c]="");for(var m in n)c=n[m],n.hasOwnProperty(m)&&o[m]!==c&&yy(i,m,c)}else for(var f in n)n.hasOwnProperty(f)&&yy(i,f,n[f])}function Am(i){if(i.indexOf("-")===-1)return!1;switch(i){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 PS=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode
8-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),OS=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function dc(i){return OS.test(""+i)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":i}var km=null;function Sm(i){return i=i.target||i.srcElement||window,i.correspondingUseElement&&(i=i.correspondingUseElement),i.nodeType===3?i.parentNode:i}var qr=null,Fr=null;function vy(i){var n=Or(i);if(n&&(i=n.stateNode)){var o=i[Jt]||null;e:switch(i=n.stateNode,n.type){case"input":if(jm(i,o.value,o.defaultValue,o.defaultValue,o.checked,o.defaultChecked,o.type,o.name),n=o.name,o.type==="radio"&&n!=null){for(o=i;o.parentNode;)o=o.parentNode;for(o=o.querySelectorAll('input[name="'+Aa(""+n)+'"][type="radio"]'),n=0;n<o.length;n++){var c=o[n];if(c!==i&&c.form===i.form){var m=c[Jt]||null;if(!m)throw Error(s(90));jm(c,m.value,m.defaultValue,m.defaultValue,m.checked,m.defaultChecked,m.type,m.name)}}for(n=0;n<o.length;n++)c=o[n],c.form===i.form&&hy(c)}break e;case"textarea":gy(i,o.value,o.defaultValue);break e;case"select":n=o.value,n!=null&&_r(i,!!o.multiple,n,!1)}}}var Im=!1;function wy(i,n,o){if(Im)return i(n,o);Im=!0;try{var c=i(n);return c}finally{if(Im=!1,(qr!==null||Fr!==null)&&(Kc(),qr&&(n=qr,i=Fr,Fr=qr=null,vy(n),i)))for(n=0;n<i.length;n++)vy(i[n])}}function mo(i,n){var o=i.stateNode;if(o===null)return null;var c=o[Jt]||null;if(c===null)return null;o=c[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(c=!c.disabled)||(i=i.type,c=!(i==="button"||i==="input"||i==="select"||i==="textarea")),i=!c;break e;default:i=!1}if(i)return null;if(o&&typeof o!="function")throw Error(s(231,n,typeof o));return o}var Si=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Cm=!1;if(Si)try{var po={};Object.defineProperty(po,"passive",{get:function(){Cm=!0}}),window.addEventListener("test",po,po),window.removeEventListener("test",po,po)}catch{Cm=!1}var en=null,Mm=null,uc=null;function jy(){if(uc)return uc;var i,n=Mm,o=n.length,c,m="value"in en?en.value:en.textContent,f=m.length;for(i=0;i<o&&n[i]===m[i];i++);var j=o-i;for(c=1;c<=j&&n[o-c]===m[f-c];c++);return uc=m.slice(i,1<c?1-c:void 0)}function mc(i){var n=i.keyCode;return"charCode"in i?(i=i.charCode,i===0&&n===13&&(i=13)):i=n,i===10&&(i=13),32<=i||i===13?i:0}function pc(){return!0}function Ny(){return!1}function ea(i){function n(o,c,m,f,j){this._reactName=o,this._targetInst=m,this.type=c,this.nativeEvent=f,this.target=j,this.currentTarget=null;for(var S in i)i.hasOwnProperty(S)&&(o=i[S],this[S]=o?o(f):f[S]);return this.isDefaultPrevented=(f.defaultPrevented!=null?f.defaultPrevented:f.returnValue===!1)?pc:Ny,this.isPropagationStopped=Ny,this}return x(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var o=this.nativeEvent;o&&(o.preventDefault?o.preventDefault():typeof o.returnValue!="unknown"&&(o.returnValue=!1),this.isDefaultPrevented=pc)},stopPropagation:function(){var o=this.nativeEvent;o&&(o.stopPropagation?o.stopPropagation():typeof o.cancelBubble!="unknown"&&(o.cancelBubble=!0),this.isPropagationStopped=pc)},persist:function(){},isPersistent:pc}),n}var Gn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(i){return i.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},hc=ea(Gn),ho=x({},Gn,{view:0,detail:0}),DS=ea(ho),Tm,Em,fo,fc=x({},ho,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Pm,button:0,buttons:0,relatedTarget:function(i){return i.relatedTarget===void 0?i.fromElement===i.srcElement?i.toElement:i.fromElement:i.relatedTarget},movementX:function(i){return"movementX"in i?i.movementX:(i!==fo&&(fo&&i.type==="mousemove"?(Tm=i.screenX-fo.screenX,Em=i.screenY-fo.screenY):Em=Tm=0,fo=i),Tm)},movementY:function(i){return"movementY"in i?i.movementY:Em}}),Ay=ea(fc),LS=x({},fc,{dataTransfer:0}),VS=ea(LS),_S=x({},ho,{relatedTarget:0}),Rm=ea(_S),zS=x({},Gn,{animationName:0,elapsedTime:0,pseudoElement:0}),qS=ea(zS),FS=x({},Gn,{clipboardData:function(i){return"clipboardData"in i?i.clipboardData:window.clipboardData}}),BS=ea(FS),HS=x({},Gn,{data:0}),ky=ea(HS),GS={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},US={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},XS={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function $S(i){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(i):(i=XS[i])?!!n[i]:!1}function Pm(){return $S}var WS=x({},ho,{key:function(i){if(i.key){var n=GS[i.key]||i.key;if(n!=="Unidentified")return n}
vendor: 4,180 bytes, line 8
8return i.type==="keypress"?(i=mc(i),i===13?"Enter":String.fromCharCode(i)):i.type==="keydown"||i.type==="keyup"?US[i.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Pm,charCode:function(i){return i.type==="keypress"?mc(i):0},keyCode:function(i){return i.type==="keydown"||i.type==="keyup"?i.keyCode:0},which:function(i){return i.type==="keypress"?mc(i):i.type==="keydown"||i.type==="keyup"?i.keyCode:0}}),KS=ea(WS),YS=x({},fc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Sy=ea(YS),QS=x({},ho,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Pm}),ZS=ea(QS),JS=x({},Gn,{propertyName:0,elapsedTime:0,pseudoElement:0}),e5=ea(JS),t5=x({},fc,{deltaX:function(i){return"deltaX"in i?i.deltaX:"wheelDeltaX"in i?-i.wheelDeltaX:0},deltaY:function(i){return"deltaY"in i?i.deltaY:"wheelDeltaY"in i?-i.wheelDeltaY:"wheelDelta"in i?-i.wheelDelta:0},deltaZ:0,deltaMode:0}),a5=ea(t5),i5=x({},Gn,{newState:0,oldState:0}),n5=ea(i5),r5=[9,13,27,32],Om=Si&&"CompositionEvent"in window,go=null;Si&&"documentMode"in document&&(go=document.documentMode);var s5=Si&&"TextEvent"in window&&!go,Iy=Si&&(!Om||go&&8<go&&11>=go),Cy=" ",My=!1;function Ty(i,n){switch(i){case"keyup":return r5.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ey(i){return i=i.detail,typeof i=="object"&&"data"in i?i.data:null}var Br=!1;function o5(i,n){switch(i){case"compositionend":return Ey(n);case"keypress":return n.which!==32?null:(My=!0,Cy);case"textInput":return i=n.data,i===Cy&&My?null:i;default:return null}}function l5(i,n){if(Br)return i==="compositionend"||!Om&&Ty(i,n)?(i=jy(),uc=Mm=en=null,Br=!1,i):null;switch(i){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return Iy&&n.locale!=="ko"?null:n.data;default:return null}}var c5={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Ry(i){var n=i&&i.nodeName&&i.nodeName.toLowerCase();return n==="input"?!!c5[i.type]:n==="textarea"}function Py(i,n,o,c){qr?Fr?Fr.push(c):Fr=[c]:qr=c,n=td(n,"onChange"),0<n.length&&(o=new hc("onChange","change",null,o,c),i.push({event:o,listeners:n}))}var xo=null,yo=null;function d5(i){p0(i,0)}function gc(i){var n=uo(i);if(hy(n))return i}function Oy(i,n){if(i==="change")return n}var Dy=!1;if(Si){var Dm;if(Si){var Lm="oninput"in document;if(!Lm){var Ly=document.createElement("div");Ly.setAttribute("oninput","return;"),Lm=typeof Ly.oninput=="function"}Dm=Lm}else Dm=!1;Dy=Dm&&(!document.documentMode||9<document.documentMode)}function Vy(){xo&&(xo.detachEvent("onpropertychange",_y),yo=xo=null)}function _y(i){if(i.propertyName==="value"&&gc(yo)){var n=[];Py(n,yo,i,Sm(i)),wy(d5,n)}}function u5(i,n,o){i==="focusin"?(Vy(),xo=n,yo=o,xo.attachEvent("onpropertychange",_y)):i==="focusout"&&Vy()}function m5(i){if(i==="selectionchange"||i==="keyup"||i==="keydown")return gc(yo)}function p5(i,n){if(i==="click")return gc(n)}function h5(i,n){if(i==="input"||i==="change")return gc(n)}function f5(i,n){return i===n&&(i!==0||1/i===1/n)||i!==i&&n!==n}var ma=typeof Object.is=="function"?Object.is:f5;function bo(i,n){if(ma(i,n))return!0;if(typeof i!="object"||i===null||typeof n!="object"||n===null)return!1;var o=Object.keys(i),c=Object.keys(n);if(o.length!==c.length)return!1;for(c=0;c<o.length;c++){var m=o[c];if(!ai.call(n,m)||!ma(i[m],n[m]))return!1}return!0}function zy(i){for(;i&&i.firstChild;)i=i.firstChild;return i}function qy(i,n){var o=zy(i);i=0;for(var c;o;){if(o.nodeType===3){if(c=i+o.textContent.length,i<=n&&c>=n)return{node:o,offset:n-i};i=c}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=zy(o)}}function Fy(i,n){return i&&n?i===n?!0:i&&i.nodeType===3?!1:n&&n.nodeType===3?Fy(i,n.parentNode):"contains"in i?i.contains(n):i.
vendor: 98,852 bytes, line 8
8compareDocumentPosition?!!(i.compareDocumentPosition(n)&16):!1:!1}function By(i){i=i!=null&&i.ownerDocument!=null&&i.ownerDocument.defaultView!=null?i.ownerDocument.defaultView:window;for(var n=cc(i.document);n instanceof i.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)i=n.contentWindow;else break;n=cc(i.document)}return n}function Vm(i){var n=i&&i.nodeName&&i.nodeName.toLowerCase();return n&&(n==="input"&&(i.type==="text"||i.type==="search"||i.type==="tel"||i.type==="url"||i.type==="password")||n==="textarea"||i.contentEditable==="true")}var g5=Si&&"documentMode"in document&&11>=document.documentMode,Hr=null,_m=null,vo=null,zm=!1;function Hy(i,n,o){var c=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;zm||Hr==null||Hr!==cc(c)||(c=Hr,"selectionStart"in c&&Vm(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}),vo&&bo(vo,c)||(vo=c,c=td(_m,"onSelect"),0<c.length&&(n=new hc("onSelect","select",null,n,o),i.push({event:n,listeners:c}),n.target=Hr)))}function Un(i,n){var o={};return o[i.toLowerCase()]=n.toLowerCase(),o["Webkit"+i]="webkit"+n,o["Moz"+i]="moz"+n,o}var Gr={animationend:Un("Animation","AnimationEnd"),animationiteration:Un("Animation","AnimationIteration"),animationstart:Un("Animation","AnimationStart"),transitionrun:Un("Transition","TransitionRun"),transitionstart:Un("Transition","TransitionStart"),transitioncancel:Un("Transition","TransitionCancel"),transitionend:Un("Transition","TransitionEnd")},qm={},Gy={};Si&&(Gy=document.createElement("div").style,"AnimationEvent"in window||(delete Gr.animationend.animation,delete Gr.animationiteration.animation,delete Gr.animationstart.animation),"TransitionEvent"in window||delete Gr.transitionend.transition);function Xn(i){if(qm[i])return qm[i];if(!Gr[i])return i;var n=Gr[i],o;for(o in n)if(n.hasOwnProperty(o)&&o in Gy)return qm[i]=n[o];return i}var Uy=Xn("animationend"),Xy=Xn("animationiteration"),$y=Xn("animationstart"),x5=Xn("transitionrun"),y5=Xn("transitionstart"),b5=Xn("transitioncancel"),Wy=Xn("transitionend"),Ky=new Map,Fm="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Fm.push("scrollEnd");function La(i,n){Ky.set(i,n),Hn(n,[i])}var Yy=new WeakMap;function ka(i,n){if(typeof i=="object"&&i!==null){var o=Yy.get(i);return o!==void 0?o:(n={value:i,source:n,stack:my(n)},Yy.set(i,n),n)}return{value:i,source:n,stack:my(n)}}var Sa=[],Ur=0,Bm=0;function xc(){for(var i=Ur,n=Bm=Ur=0;n<i;){var o=Sa[n];Sa[n++]=null;var c=Sa[n];Sa[n++]=null;var m=Sa[n];Sa[n++]=null;var f=Sa[n];if(Sa[n++]=null,c!==null&&m!==null){var j=c.pending;j===null?m.next=m:(m.next=j.next,j.next=m),c.pending=m}f!==0&&Qy(o,m,f)}}function yc(i,n,o,c){Sa[Ur++]=i,Sa[Ur++]=n,Sa[Ur++]=o,Sa[Ur++]=c,Bm|=c,i.lanes|=c,i=i.alternate,i!==null&&(i.lanes|=c)}function Hm(i,n,o,c){return yc(i,n,o,c),bc(i)}function Xr(i,n){return yc(i,null,null,n),bc(i)}function Qy(i,n,o){i.lanes|=o;var c=i.alternate;c!==null&&(c.lanes|=o);for(var m=!1,f=i.return;f!==null;)f.childLanes|=o,c=f.alternate,c!==null&&(c.childLanes|=o),f.tag===22&&(i=f.stateNode,i===null||i._visibility&1||(m=!0)),i=f,f=f.return;return i.tag===3?(f=i.stateNode,m&&n!==null&&(m=31-ua(o),i=f.hiddenUpdates,c=i[m],c===null?i[m]=[n]:c.push(n),n.lane=o|536870912),f):null}function bc(i){if(50<Uo)throw Uo=0,Kp=null,Error(s(185));for(var n=i.return;n!==null;)i=n,n=i.return;return i.tag===3?i.stateNode:null}var $r={};function v5(i,n,o,c){this.tag=i,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=c,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function pa(i,n,o,c){return new v5(i,n,o,c)}function Gm(i){return i=i.prototype,!(!i||!i.isReactComponent)}function Ii(i,n){var o=i.alternate;return o===null?(o=pa(i.tag,n,i.key,i.mode),o.elementType=i.elementType,o.type=i.type,o.stateNode=i.stateNode,o.alternate=i,i.alternate=o):(o.pendingProps=n,o.type=i.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=i.flags&65011712,o.childLanes=i.childLanes,o.lanes=i.lanes,o.child=i.child,o.memoizedProps=i.memoizedProps,o.memoizedState=i.memoizedState,o.updateQueue=i.updateQueue,n=i.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=i.sibling,o.index=i.index,o.ref=i.ref,o.refCleanup=i.refCleanup,o}function Zy(i,n){i.flags&=65011714;var o=i.alternate;return o===null?(i.childLanes=0,i.lanes=n,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=o.childLanes,i.lanes=o.lanes,i.child=o.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=o.memoizedProps,i.memoizedState=o.memoizedState,i.updateQueue=o.updateQueue,i.type=o.type,n=o.dependencies,i.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext}),i}function vc(i,n,o,c,m,f){var j=0;if(c=i,typeof i=="function")Gm(i)&&(j=1);else if(typeof i=="string")j=jI(i,o,re.current)?26:i==="html"||i==="head"||i==="body"?27:5;else e:switch(i){case K:return i=pa(31,o,n,m),i.elementType=K,i.lanes=f,i;case A:return $n(o.children,m,f,n);case k:j=8,m|=24;break;case I:return i=pa(12,o,n,m|2),i.elementType=I,i.lanes=f,i;case P:return i=pa(13,o,n,m),i.elementType=P,i.lanes=f,i;case z:return i=pa(19,o,n,m),i.elementType=z,i.lanes=f,i;default:if(typeof i=="object"&&i!==null)switch(i.$$typeof){case T:case R:j=10;break e;case E:j=9;break e;case C:j=11;break e;case V:j=14;break e;case D:j=16,c=null;break e}j=29,o=Error(s(130,i===null?"null":typeof i,"")),c=null}return n=pa(j,o,n,m),n.elementType=i,n.type=c,n.lanes=f,n}function $n(i,n,o,c){return i=pa(7,i,c,n),i.lanes=o,i}function Um(i,n,o){return i=pa(6,i,null,n),i.lanes=o,i}function Xm(i,n,o){return n=pa(4,i.children!==null?i.children:[],i.key,n),n.lanes=o,n.stateNode={containerInfo:i.containerInfo,pendingChildren:null,implementation:i.implementation},n}var Wr=[],Kr=0,wc=null,jc=0,Ia=[],Ca=0,Wn=null,Ci=1,Mi="";function Kn(i,n){Wr[Kr++]=jc,Wr[Kr++]=wc,wc=i,jc=n}function Jy(i,n,o){Ia[Ca++]=Ci,Ia[Ca++]=Mi,Ia[Ca++]=Wn,Wn=i;var c=Ci;i=Mi;var m=32-ua(c)-1;c&=~(1<<m),o+=1;var f=32-ua(n)+m;if(30<f){var j=m-m%5;f=(c&(1<<j)-1).toString(32),c>>=j,m-=j,Ci=1<<32-ua(n)+m|o<<m|c,Mi=f+i}else Ci=1<<f|o<<m|c,Mi=i}function $m(i){i.return!==null&&(Kn(i,1),Jy(i,1,0))}function Wm(i){for(;i===wc;)wc=Wr[--Kr],Wr[Kr]=null,jc=Wr[--Kr],Wr[Kr]=null;for(;i===Wn;)Wn=Ia[--Ca],Ia[Ca]=null,Mi=Ia[--Ca],Ia[Ca]=null,Ci=Ia[--Ca],Ia[Ca]=null}var Ut=null,dt=null,Ke=!1,Yn=null,ni=!1,Km=Error(s(519));function Qn(i){var n=Error(s(418,""));throw No(ka(n,i)),Km}function eb(i){var n=i.stateNode,o=i.type,c=i.memoizedProps;switch(n[zt]=i,n[Jt]=c,o){case"dialog":Le("cancel",n),Le("close",n);break;case"iframe":case"object":case"embed":Le("load",n);break;case"video":case"audio":for(o=0;o<$o.length;o++)Le($o[o],n);break;case"source":Le("error",n);break;case"img":case"image":case"link":Le("error",n),Le("load",n);break;case"details":Le("toggle",n);break;case"input":Le("invalid",n),fy(n,c.value,c.defaultValue,c.checked,c.defaultChecked,c.type,c.name,!0),lc(n);break;case"select":Le("invalid",n);break;case"textarea":Le("invalid",n),xy(n,c.value,c.defaultValue,c.children),lc(n)}o=c.children,typeof o!="string"&&typeof o!="number"&&typeof o!="bigint"||n.textContent===""+o||c.suppressHydrationWarning===!0||x0(n.textContent,o)?(c.popover!=null&&(Le("beforetoggle",n),Le("toggle",n)),c.onScroll!=null&&Le("scroll",n),c.onScrollEnd!=null&&Le("scrollend",n),c.onClick!=null&&(n.onclick=ad),n=!0):n=!1,n||Qn(i)}function tb(i){for(Ut=i.return;Ut;)switch(Ut.tag){case 5:case 13:ni=!1;return;case 27:case 3:ni=!0;return;default:Ut=Ut.return}}function wo(i){if(i!==Ut)return!1;if(!Ke)return tb(i),Ke=!0,!1;var n=i.tag,o;if((o=n!==3&&n!==27)&&((o=n===5)&&(o=i.type,o=!(o!=="form"&&o!=="button")||uh(i.type,i.memoizedProps)),o=!o),o&&dt&&Qn(i),tb(i),n===13){if(i=i.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(s(317));e:{for(i=i.nextSibling,n=0;i;){if(i.nodeType===8)if(o=i.data,o==="/$"){if(n===0){dt=_a(i.nextSibling);break e}n--}else o!=="$"&&o!=="$!"&&o!=="$?"||n++;i=i.nextSibling}dt=null}}else n===27?(n=dt,xn(i.type)?(i=fh,fh=null,dt=i):dt=n):dt=Ut?_a(i.stateNode.nextSibling):null;return!0}function jo(){dt=Ut=null,Ke=!1}function ab(){var i=Yn;return i!==null&&(ia===null?ia=i:ia.push.apply(ia,i),Yn=null),i}function No(i){Yn===null?Yn=[i]:Yn.push(i)}var Ym=Q(null),Zn=null,Ti=null;function tn(i,n,o){Y(Ym,n._currentValue),n._currentValue=o}function Ei(i){i._currentValue=Ym.current,F(Ym)}function Qm(i,n,o){for(;i!==null;){var c=i.alternate;if((i.childLanes&n)!==n?(i.childLanes|=n,c!==null&&(c.childLanes|=n)):c!==null&&(c.childLanes&n)!==n&&(c.childLanes|=n),i===o)break;i=i.return}}function Zm(i,n,o,c){var m=i.child;for(m!==null&&(m.return=i);m!==null;){var f=m.dependencies;if(f!==null){var j=m.child;f=f.firstContext;e:for(;f!==null;){var S=f;f=m;for(var O=0;O<n.length;O++)if(S.context===n[O]){f.lanes|=o,S=f.alternate,S!==null&&(S.lanes|=o),Qm(f.return,o,i),c||(j=null);break e}f=S.next}}else if(m.tag===18){if(j=m.return,j===null)throw Error(s(341));j.lanes|=o,f=j.alternate,f!==null&&(f.lanes|=o),Qm(j,o,i),j=null}else j=m.child;if(j!==null)j.return=m;else for(j=m;j!==null;){if(j===i){j=null;break}if(m=j.sibling,m!==null){m.return=j.return,j=m;break}j=j.return}m=j}}function Ao(i,n,o,c){i=null;for(var m=n,f=!1;m!==null;){if(!f){if((m.flags&524288)!==0)f=!0;else if((m.flags&262144)!==0)break}if(m.tag===10){var j=m.alternate;if(j===null)throw Error(s(387));if(j=j.memoizedProps,j!==null){var S=m.type;ma(m.pendingProps.value,j.value)||(i!==null?i.push(S):i=[S])}}else if(m===je.current){if(j=m.alternate,j===null)throw Error(s(387));j.memoizedState.memoizedState!==m.memoizedState.memoizedState&&(i!==null?i.push(Jo):i=[Jo])}m=m.return}i!==null&&Zm(n,i,o,c),n.flags|=262144}function Nc(i){for(i=i.firstContext;i!==null;){if(!ma(i.context._currentValue,i.memoizedValue))return!0;i=i.next}return!1}function Jn(i){Zn=i,Ti=null,i=i.dependencies,i!==null&&(i.firstContext=null)}function qt(i){return ib(Zn,i)}function Ac(i,n){return Zn===null&&Jn(i),ib(i,n)}function ib(i,n){var o=n._currentValue;if(n={context:n,memoizedValue:o,next:null},Ti===null){if(i===null)throw Error(s(308));Ti=n,i.dependencies={lanes:0,firstContext:n},i.flags|=524288}else Ti=Ti.next=n;return o}var w5=typeof AbortController<"u"?AbortController:function(){var i=[],n=this.signal={aborted:!1,addEventListener:function(o,c){i.push(c)}};this.abort=function(){n.aborted=!0,i.forEach(function(o){return o()})}},j5=t.unstable_scheduleCallback,N5=t.unstable_NormalPriority,wt={$$typeof:R,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Jm(){return{controller:new w5,data:new Map,refCount:0}}function ko(i){i.refCount--,i.refCount===0&&j5(N5,function(){i.controller.abort()})}var So=null,ep=0,Yr=0,Qr=null;function A5(i,n){if(So===null){var o=So=[];ep=0,Yr=ah(),Qr={status:"pending",value:void 0,then:function(c){o.push(c)}}}return ep++,n.then(nb,nb),n}function nb(){if(--ep===0&&So!==null){Qr!==null&&(Qr.status="fulfilled");var i=So;So=null,Yr=0,Qr=null;for(var n=0;n<i.length;n++)(0,i[n])()}}function k5(i,n){var o=[],c={status:"pending",value:null,reason:null,then:function(m){o.push(m)}};return i.then(function(){c.status="fulfilled",c.value=n;for(var m=0;m<o.length;m++)(0,o[m])(n)},function(m){for(c.status="rejected",c.reason=m,m=0;m<o.length;m++)(0,o[m])(void 0)}),c}var rb=_.S;_.S=function(i,n){typeof n=="object"&&n!==null&&typeof n.then=="function"&&A5(i,n),rb!==null&&rb(i,n)};var er=Q(null);function tp(){var i=er.current;return i!==null?i:it.pooledCache}function kc(i,n){n===null?Y(er,er.current):Y(er,n.pool)}function sb(){var i=tp();return i===null?null:{parent:wt._currentValue,pool:i}}var Io=Error(s(460)),ob=Error(s(474)),Sc=Error(s(542)),ap={then:function(){}};function lb(i){return i=i.status,i==="fulfilled"||i==="rejected"}function Ic(){}function cb(i,n,o){switch(o=i[o],o===void 0?i.push(n):o!==n&&(n.then(Ic,Ic),n=o),n.status){case"fulfilled":return n.value;case"rejected":throw i=n.reason,ub(i),i;default:if(typeof n.status=="string")n.then(Ic,Ic);else{if(i=it,i!==null&&100<i.shellSuspendCounter)throw Error(s(482));i=n,i.status="pending",i.then(function(c){if(n.status==="pending"){var m=n;m.status="fulfilled",m.value=c}},function(c){if(n.status==="pending"){var m=n;m.status="rejected",m.reason=c}})}switch(n.status){case"fulfilled":return n.value;case"rejected":throw i=n.reason,ub(i),i}throw Co=n,Io}}var Co=null;function db(){if(Co===null)throw Error(s(459));var i=Co;return Co=null,i}function ub(i){if(i===Io||i===Sc)throw Error(s(483))}var an=!1;function ip(i){i.updateQueue={baseState:i.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function np(i,n){i=i.updateQueue,n.updateQueue===i&&(n.updateQueue={baseState:i.baseState,firstBaseUpdate:i.firstBaseUpdate,lastBaseUpdate:i.lastBaseUpdate,shared:i.shared,callbacks:null})}function nn(i){return{lane:i,tag:0,payload:null,callback:null,next:null}}function rn(i,n,o){var c=i.updateQueue;if(c===null)return null;if(c=c.shared,(Ye&2)!==0){var m=c.pending;return m===null?n.next=n:(n.next=m.next,m.next=n),c.pending=n,n=bc(i),Qy(i,null,o),n}return yc(i,c,n,o),bc(i)}function Mo(i,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194048)!==0)){var c=n.lanes;c&=i.pendingLanes,o|=c,n.lanes=o,ny(i,o)}}function rp(i,n){var o=i.updateQueue,c=i.alternate;if(c!==null&&(c=c.updateQueue,o===c)){var m=null,f=null;if(o=o.firstBaseUpdate,o!==null){do{var j={lane:o.lane,tag:o.tag,payload:o.payload,callback:null,next:null};f===null?m=f=j:f=f.next=j,o=o.next}while(o!==null);f===null?m=f=n:f=f.next=n}else m=f=n;o={baseState:c.baseState,firstBaseUpdate:m,lastBaseUpdate:f,shared:c.shared,callbacks:c.callbacks},i.updateQueue=o;return}i=o.lastBaseUpdate,i===null?o.firstBaseUpdate=n:i.next=n,o.lastBaseUpdate=n}var sp=!1;function To(){if(sp){var i=Qr;if(i!==null)throw i}}function Eo(i,n,o,c){sp=!1;var m=i.updateQueue;an=!1;var f=m.firstBaseUpdate,j=m.lastBaseUpdate,S=m.shared.pending;if(S!==null){m.shared.pending=null;var O=S,G=O.next;O.next=null,j===null?f=G:j.next=G,j=O;var Z=i.alternate;Z!==null&&(Z=Z.updateQueue,S=Z.lastBaseUpdate,S!==j&&(S===null?Z.firstBaseUpdate=G:S.next=G,Z.lastBaseUpdate=O))}if(f!==null){var ae=m.baseState;j=0,Z=G=O=null,S=f;do{var U=S.lane&-536870913,$=U!==S.lane;if($?(Fe&U)===U:(c&U)===U){U!==0&&U===Yr&&(sp=!0),Z!==null&&(Z=Z.next={lane:0,tag:S.tag,payload:S.payload,callback:null,next:null});e:{var Ae=i,we=S;U=n;var et=o;switch(we.tag){case 1:if(Ae=we.payload,typeof Ae=="function"){ae=Ae.call(et,ae,U);break e}ae=Ae;break e;case 3:Ae.flags=Ae.flags&-65537|128;case 0:if(Ae=we.payload,U=typeof Ae=="function"?Ae.call(et,ae,U):Ae,U==null)break e;ae=x({},ae,U);break e;case 2:an=!0}}U=S.callback,U!==null&&(i.flags|=64,$&&(i.flags|=8192),$=m.callbacks,$===null?m.callbacks=[U]:$.push(U))}else $={lane:U,tag:S.tag,payload:S.payload,callback:S.callback,next:null},Z===null?(G=Z=$,O=ae):Z=Z.next=$,j|=U;if(S=S.next,S===null){if(S=m.shared.pending,S===null)break;$=S,S=$.next,$.next=null,m.lastBaseUpdate=$,m.shared.pending=null}}while(!0);Z===null&&(O=ae),m.baseState=O,m.firstBaseUpdate=G,m.lastBaseUpdate=Z,f===null&&(m.shared.lanes=0),pn|=j,i.lanes=j,i.memoizedState=ae}}function mb(i,n){if(typeof i!="function")throw Error(s(191,i));i.call(n)}function pb(i,n){var o=i.callbacks;if(o!==null)for(i.callbacks=null,i=0;i<o.length;i++)mb(o[i],n)}var Zr=Q(null),Cc=Q(0);function hb(i,n){i=_i,Y(Cc,i),Y(Zr,n),_i=i|n.baseLanes}function op(){Y(Cc,_i),Y(Zr,Zr.current)}function lp(){_i=Cc.current,F(Zr),F(Cc)}var sn=0,Re=null,Ze=null,xt=null,Mc=!1,Jr=!1,tr=!1,Tc=0,Ro=0,es=null,S5=0;function ft(){throw Error(s(321))}function cp(i,n){if(n===null)return!1;for(var o=0;o<n.length&&o<i.length;o++)if(!ma(i[o],n[o]))return!1;return!0}function dp(i,n,o,c,m,f){return sn=f,Re=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,_.H=i===null||i.memoizedState===null?Qb:Zb,tr=!1,f=o(c,m),tr=!1,Jr&&(f=gb(n,o,c,m)),fb(i),f}function fb(i){_.H=Lc;var n=Ze!==null&&Ze.next!==null;if(sn=0,xt=Ze=Re=null,Mc=!1,Ro=0,es=null,n)throw Error(s(300));i===null||Mt||(i=i.dependencies,i!==null&&Nc(i)&&(Mt=!0))}function gb(i,n,o,c){Re=i;var m=0;do{if(Jr&&(es=null),Ro=0,Jr=!1,25<=m)throw Error(s(301));if(m+=1,xt=Ze=null,i.updateQueue!=null){var f=i.updateQueue;f.lastEffect=null,f.events=null,f.stores=null,f.memoCache!=null&&(f.memoCache.index=0)}_.H=P5,f=n(o,c)}while(Jr);return f}function I5(){var i=_.H,n=i.useState()[0];return n=typeof n.then=="function"?Po(n):n,i=i.useState()[0],(Ze!==null?Ze.memoizedState:null)!==i&&(Re.flags|=1024),n}function up(){var i=Tc!==0;return Tc=0,i}function mp(i,n,o){n.updateQueue=i.updateQueue,n.flags&=-2053,i.lanes&=~o}function pp(i){if(Mc){for(i=i.memoizedState;i!==null;){var n=i.queue;n!==null&&(n.pending=null),i=i.next}Mc=!1}sn=0,xt=Ze=Re=null,Jr=!1,Ro=Tc=0,es=null}function ta(){var i={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return xt===null?Re.memoizedState=xt=i:xt=xt.next=i,xt}function yt(){if(Ze===null){var i=Re.alternate;i=i!==null?i.memoizedState:null}else i=Ze.next;var n=xt===null?Re.memoizedState:xt.next;if(n!==null)xt=n,Ze=i;else{if(i===null)throw Re.alternate===null?Error(s(467)):Error(s(310));Ze=i,i={memoizedState:Ze.memoizedState,baseState:Ze.baseState,baseQueue:Ze.baseQueue,queue:Ze.queue,next:null},xt===null?Re.memoizedState=xt=i:xt=xt.next=i}return xt}function hp(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Po(i){var n=Ro;return Ro+=1,es===null&&(es=[]),i=cb(es,i,n),n=Re,(xt===null?n.memoizedState:xt.next)===null&&(n=n.alternate,_.H=n===null||n.memoizedState===null?Qb:Zb),i}function Ec(i){if(i!==null&&typeof i=="object"){if(typeof i.then=="function")return Po(i);if(i.$$typeof===R)return qt(i)}throw Error(s(438,String(i)))}function fp(i){var n=null,o=Re.updateQueue;if(o!==null&&(n=o.memoCache),n==null){var c=Re.alternate;c!==null&&(c=c.updateQueue,c!==null&&(c=c.memoCache,c!=null&&(n={data:c.data.map(function(m){return m.slice()}),index:0})))}if(n==null&&(n={data:[],index:0}),o===null&&(o=hp(),Re.updateQueue=o),o.memoCache=n,o=n.data[n.index],o===void 0)for(o=n.data[n.index]=Array(i),c=0;c<i;c++)o[c]=ne;return n.index++,o}function Ri(i,n){return typeof n=="function"?n(i):n}function Rc(i){var n=yt();return gp(n,Ze,i)}function gp(i,n,o){var c=i.queue;if(c===null)throw Error(s(311));c.lastRenderedReducer=o;var m=i.baseQueue,f=c.pending;if(f!==null){if(m!==null){var j=m.next;m.next=f.next,f.next=j}n.baseQueue=m=f,c.pending=null}if(f=i.baseState,m===null)i.memoizedState=f;else{n=m.next;var S=j=null,O=null,G=n,Z=!1;do{var ae=G.lane&-536870913;if(ae!==G.lane?(Fe&ae)===ae:(sn&ae)===ae){var U=G.revertLane;if(U===0)O!==null&&(O=O.next={lane:0,revertLane:0,action:G.action,hasEagerState:G.hasEagerState,eagerState:G.eagerState,next:null}),ae===Yr&&(Z=!0);else if((sn&U)===U){G=G.next,U===Yr&&(Z=!0);continue}else ae={lane:0,revertLane:G.revertLane,action:G.action,hasEagerState:G.hasEagerState,eagerState:G.eagerState,next:null},O===null?(S=O=ae,j=f):O=O.next=ae,Re.lanes|=U,pn|=U;ae=G.action,tr&&o(f,ae),f=G.hasEagerState?G.eagerState:o(f,ae)}else U={lane:ae,revertLane:G.revertLane,action:G.action,hasEagerState:G.hasEagerState,eagerState:G.eagerState,next:null},O===null?(S=O=U,j=f):O=O.next=U,Re.lanes|=ae,pn|=ae;G=G.next}while(G!==null&&G!==n);if(O===null?j=f:O.next=S,!ma(f,i.memoizedState)&&(Mt=!0,Z&&(o=Qr,o!==null)))throw o;i.memoizedState=f,i.baseState=j,i.baseQueue=O,c.lastRenderedState=f}return m===null&&(c.lanes=0),[i.memoizedState,c.dispatch]}function xp(i){var n=yt(),o=n.queue;if(o===null)throw Error(s(311));o.lastRenderedReducer=i;var c=o.dispatch,m=o.pending,f=n.memoizedState;if(m!==null){o.pending=null;var j=m=m.next;do f=i(f,j.action),j=j.next;while(j!==m);ma(f,n.memoizedState)||(Mt=!0),n.memoizedState=f,n.baseQueue===null&&(n.baseState=f),o.lastRenderedState=f}return[f,c]}function xb(i,n,o){var c=Re,m=yt(),f=Ke;if(f){if(o===void 0)throw Error(s(407));o=o()}else o=n();var j=!ma((Ze||m).memoizedState,o);j&&(m.memoizedState=o,Mt=!0),m=m.queue;var S=vb.bind(null,c,m,i);if(Oo(2048,8,S,[i]),m.getSnapshot!==n||j||xt!==null&&xt.memoizedState.tag&1){if(c.flags|=2048,ts(9,Pc(),bb.bind(null,c,m,o,n),null),it===null)throw Error(s(349));f||(sn&124)!==0||yb(c,n,o)}return o}function yb(i,n,o){i.flags|=16384,i={getSnapshot:n,value:o},n=Re.updateQueue,n===null?(n=hp(),Re.updateQueue=n,n.stores=[i]):(o=n.stores,o===null?n.stores=[i]:o.push(i))}function bb(i,n,o,c){n.value=o,n.getSnapshot=c,wb(n)&&jb(i)}function vb(i,n,o){return o(function(){wb(n)&&jb(i)})}function wb(i){var n=i.getSnapshot;i=i.value;try{var o=n();return!ma(i,o)}catch{return!0}}function jb(i){var n=Xr(i,2);n!==null&&ya(n,i,2)}function yp(i){var n=ta();if(typeof i=="function"){var o=i;if(i=o(),tr){Zi(!0);try{o()}finally{Zi(!1)}}}return n.memoizedState=n.baseState=i,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ri,lastRenderedState:i},n}function Nb(i,n,o,c){return i.baseState=o,gp(i,Ze,typeof c=="function"?c:Ri)}function C5(i,n,o,c,m){if(Dc(i))throw Error(s(485));if(i=n.action,i!==null){var f={payload:m,action:i,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(j){f.listeners.push(j)}};_.T!==null?o(!0):f.isTransition=!1,c(f),o=n.pending,o===null?(f.next=n.pending=f,Ab(n,f)):(f.next=o.next,n.pending=o.next=f)}}function Ab(i,n){var o=n.action,c=n.payload,m=i.state;if(n.isTransition){var f=_.T,j={};_.T=j;try{var S=o(m,c),O=_.S;O!==null&&O(j,S),kb(i,n,S)}catch(G){bp(i,n,G)}finally{_.T=f}}else try{f=o(m,c),kb(i,n,f)}catch(G){bp(i,n,G)}}function kb(i,n,o){o!==null&&typeof o=="object"&&typeof o.then=="function"?o.then(function(c){Sb(i,n,c)},function(c){return bp(i,n,c)}):Sb(i,n,o)}function Sb(i,n,o){n.status="fulfilled",n.value=o,Ib(n),i.state=o,n=i.pending,n!==null&&(o=n.next,o===n?i.pending=null:(o=o.next,n.next=o,Ab(i,o)))}function bp(i,n,o){var c=i.pending;if(i.pending=null,c!==null){c=c.next;do n.status="rejected",n.reason=o,Ib(n),n=n.next;while(n!==c)}i.action=null}function Ib(i){i=i.listeners;for(var n=0;n<i.length;n++)(0,i[n])()}function Cb(i,n){return n}function Mb(i,n){if(Ke){var o=it.formState;if(o!==null){e:{var c=Re;if(Ke){if(dt){t:{for(var m=dt,f=ni;m.nodeType!==8;){if(!f){m=null;break t}if(m=_a(m.nextSibling),m===null){m=null;break t}}f=m.data,m=f==="F!"||f==="F"?m:null}if(m){dt=_a(m.nextSibling),c=m.data==="F!";break e}}Qn(c)}c=!1}c&&(n=o[0])}}return o=ta(),o.memoizedState=o.baseState=n,c={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Cb,lastRenderedState:n},o.queue=c,o=Wb.bind(null,Re,c),c.dispatch=o,c=yp(!1),f=Ap.bind(null,Re,!1,c.queue),c=ta(),m={state:n,dispatch:null,action:i,pending:null},c.queue=m,o=C5.bind(null,Re,m,f,o),m.dispatch=o,c.memoizedState=i,[n,o,!1]}function Tb(i){var n=yt();return Eb(n,Ze,i)}function Eb(i,n,o){if(n=gp(i,n,Cb)[0],i=Rc(Ri)[0],typeof n=="object"&&n!==null&&typeof n.then=="function")try{var c=Po(n)}catch(j){throw j===Io?Sc:j}else c=n;n=yt();var m=n.queue,f=m.dispatch;return o!==n.memoizedState&&(Re.flags|=2048,ts(9,Pc(),M5.bind(null,m,o),null)),[c,f,i]}function M5(i,n){i.action=n}function Rb(i){var n=yt(),o=Ze;if(o!==null)return Eb(n,o,i);yt(),n=n.memoizedState,o=yt();var c=o.queue.dispatch;return o.memoizedState=i,[n,c,!1]}function ts(i,n,o,c){return i={tag:i,create:o,deps:c,inst:n,next:null},n=Re.updateQueue,n===null&&(n=hp(),Re.updateQueue=n),o=n.lastEffect,o===null?n.lastEffect=i.next=i:(c=o.next,o.next=i,i.next=c,n.lastEffect=i),i}function Pc(){return{destroy:void 0,resource:void 0}}function Pb(){return yt().memoizedState}function Oc(i,n,o,c){var m=ta();c=c===void 0?null:c,Re.flags|=i,m.memoizedState=ts(1|n,Pc(),o,c)}function Oo(i,n,o,c){var m=yt();c=c===void 0?null:c;var f=m.memoizedState.inst;Ze!==null&&c!==null&&cp(c,Ze.memoizedState.deps)?m.memoizedState=ts(n,f,o,c):(Re.flags|=i,m.memoizedState=ts(1|n,f,o,c))}function Ob(i,n){Oc(8390656,8,i,n)}function Db(i,n){Oo(2048,8,i,n)}function Lb(i,n){return Oo(4,2,i,n)}function Vb(i,n){return Oo(4,4,i,n)}function _b(i,n){if(typeof n=="function"){i=i();var o=n(i);return function(){typeof o=="function"?o():n(null)}}if(n!=null)return i=i(),n.current=i,function(){n.current=null}}function zb(i,n,o){o=o!=null?o.concat([i]):null,Oo(4,4,_b.bind(null,n,i),o)}function vp(){}function qb(i,n){var o=yt();n=n===void 0?null:n;var c=o.memoizedState;return n!==null&&cp(n,c[1])?c[0]:(o.memoizedState=[i,n],i)}function Fb(i,n){var o=yt();n=n===void 0?null:n;var c=o.memoizedState;if(n!==null&&cp(n,c[1]))return c[0];if(c=i(),tr){Zi(!0);try{i()}finally{Zi(!1)}}return o.memoizedState=[c,n],c}function wp(i,n,o){return o===void 0||(sn&1073741824)!==0?i.memoizedState=n:(i.memoizedState=o,i=Gv(),Re.lanes|=i,pn|=i,o)}function Bb(i,n,o,c){return ma(o,n)?o:Zr.current!==null?(i=wp(i,o,c),ma(i,n)||(Mt=!0),i):(sn&42)===0?(Mt=!0,i.memoizedState=o):(i=Gv(),Re.lanes|=i,pn|=i,n)}function Hb(i,n,o,c,m){var f=ee.p;ee.p=f!==0&&8>f?f:8;var j=_.T,S={};_.T=S,Ap(i,!1,n,o);try{var O=m(),G=_.S;if(G!==null&&G(S,O),O!==null&&typeof O=="object"&&typeof O.then=="function"){var Z=k5(O,c);Do(i,n,Z,xa(i))}else Do(i,n,c,xa(i))}catch(ae){Do(i,n,{then:function(){},status:"rejected",reason:ae},xa())}finally{ee.p=f,_.T=j}}function T5(){}function jp(i,n,o,c){if(i.tag!==5)throw Error(s(476));var m=Gb(i).queue;Hb(i,m,n,X,o===null?T5:function(){return Ub(i),o(c)})}function Gb(i){var n=i.memoizedState;if(n!==null)return n;n={memoizedState:X,baseState:X,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ri,lastRenderedState:X},next:null};var o={};return n.next={memoizedState:o,baseState:o,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ri,lastRenderedState:o},next:null},i.memoizedState=n,i=i.alternate,i!==null&&(i.memoizedState=n),n}function Ub(i){var n=Gb(i).next.queue;Do(i,n,{},xa())}function Np(){return qt(Jo)}function Xb(){return yt().memoizedState}function $b(){return yt().memoizedState}function E5(i){for(var n=i.return;n!==null;){switch(n.tag){case 24:case 3:var o=xa();i=nn(o);var c=rn(n,i,o);c!==null&&(ya(c,n,o),Mo(c,n,o)),n={cache:Jm()},i.payload=n;return}n=n.return}}function R5(i,n,o){var c=xa();o={lane:c,revertLane:0,action:o,hasEagerState:!1,eagerState:null,next:null},Dc(i)?Kb(n,o):(o=Hm(i,n,o,c),o!==null&&(ya(o,i,c),Yb(o,n,c)))}function Wb(i,n,o){var c=xa();Do(i,n,o,c)}function Do(i,n,o,c){var m={lane:c,revertLane:0,action:o,hasEagerState:!1,eagerState:null,next:null};if(Dc(i))Kb(n,m);else{var f=i.alternate;if(i.lanes===0&&(f===null||f.lanes===0)&&(f=n.lastRenderedReducer,f!==null))try{var j=n.lastRenderedState,S=f(j,o);if(m.hasEagerState=!0,m.eagerState=S,ma(S,j))return yc(i,n,m,0),it===null&&xc(),!1}catch{}if(o=Hm(i,n,m,c),o!==null)return ya(o,i,c),Yb(o,n,c),!0}return!1}function Ap(i,n,o,c){if(c={lane:2,revertLane:ah(),action:c,hasEagerState:!1,eagerState:null,next:null},Dc(i)){if(n)throw Error(s(479))}else n=Hm(i,o,c,2),n!==null&&ya(n,i,2)}function Dc(i){var n=i.alternate;return i===Re||n!==null&&n===Re}function Kb(i,n){Jr=Mc=!0;var o=i.pending;o===null?n.next=n:(n.next=o.next,o.next=n),i.pending=n}function Yb(i,n,o){if((o&4194048)!==0){var c=n.lanes;c&=i.pendingLanes,o|=c,n.lanes=o,ny(i,o)}}var Lc={readContext:qt,use:Ec,useCallback:ft,useContext:ft,useEffect:ft,useImperativeHandle:ft,useLayoutEffect:ft,useInsertionEffect:ft,useMemo:ft,useReducer:ft,useRef:ft,useState:ft,useDebugValue:ft,useDeferredValue:ft,useTransition:ft,useSyncExternalStore:ft,useId:ft,useHostTransitionStatus:ft,useFormState:ft,useActionState:ft,useOptimistic:ft,useMemoCache:ft,useCacheRefresh:ft},Qb={readContext:qt,use:Ec,useCallback:function(i,n){return ta().memoizedState=[i,n===void 0?null:n],i},useContext:qt,useEffect:Ob,useImperativeHandle:function(i,n,o){o=o!=null?o.concat([i]):null,Oc(4194308,4,_b.bind(null,n,i),o)},useLayoutEffect:function(i,n){return Oc(4194308,4,i,n)},useInsertionEffect:function(i,n){Oc(4,2,i,n)},useMemo:function(i,n){var o=ta();n=n===void 0?null:n;var c=i();if(tr){Zi(!0);try{i()}finally{Zi(!1)}}return o.memoizedState=[c,n],c},useReducer:function(i,n,o){var c=ta();if(o!==void 0){var m=o(n);if(tr){Zi(!0);try{o(n)}finally{Zi(!1)}}}else m=n;return c.memoizedState=c.baseState=m,i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:i,lastRenderedState:m},c.queue=i,i=i.dispatch=R5.bind(null,Re,i),[c.memoizedState,i]},useRef:function(i){var n=ta();return i={current:i},n.memoizedState=i},useState:function(i){i=yp(i);var n=i.queue,o=Wb.bind(null,Re,n);return n.dispatch=o,[i.memoizedState,o]},useDebugValue:vp,useDeferredValue:function(i,n){var o=ta();return wp(o,i,n)},useTransition:function(){var i=yp(!1);return i=Hb.bind(null,Re,i.queue,!0,!1),ta().memoizedState=i,[!1,i]},useSyncExternalStore:function(i,n,o){var c=Re,m=ta();if(Ke){if(o===void 0)throw Error(s(407));o=o()}else{if(o=n(),it===null)throw Error(s(349));(Fe&124)!==0||yb(c,n,o)}m.memoizedState=o;var f={value:o,getSnapshot:n};return m.queue=f,Ob(vb.bind(null,c,f,i),[i]),c.flags|=2048,ts(9,Pc(),bb.bind(null,c,f,o,n),null),o},useId:function(){var i=ta(),n=it.identifierPrefix;if(Ke){var o=Mi,c=Ci;o=(c&~(1<<32-ua(c)-1)).toString(32)+o,n="«"+n+"R"+o,o=Tc++,0<o&&(n+="H"+o.toString(32)),n+="»"}else o=S5++,n="«"+n+"r"+o.toString(32)+"»";return i.memoizedState=n},useHostTransitionStatus:Np,useFormState:Mb,useActionState:Mb,useOptimistic:function(i){var n=ta();n.memoizedState=n.baseState=i;var o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return n.queue=o,n=Ap.bind(null,Re,!0,o),o.dispatch=n,[i,n]},useMemoCache:fp,useCacheRefresh:function(){return ta().memoizedState=E5.bind(null,Re)}},Zb={readContext:qt,use:Ec,useCallback:qb,useContext:qt,useEffect:Db,useImperativeHandle:zb,useInsertionEffect:Lb,useLayoutEffect:Vb,useMemo:Fb,useReducer:Rc,useRef:Pb,useState:function(){return Rc(Ri)},useDebugValue:vp,useDeferredValue:function(i,n){var o=yt();return Bb(o,Ze.memoizedState,i,n)},useTransition:function(){var i=Rc(Ri)[0],n=yt().memoizedState;return[typeof i=="boolean"?i:Po(i),n]},useSyncExternalStore:xb,useId:Xb,useHostTransitionStatus:Np,useFormState:Tb,useActionState:Tb,useOptimistic:function(i,n){var o=yt();return Nb(o,Ze,i,n)},useMemoCache:fp,useCacheRefresh:$b},P5={readContext:qt,use:Ec,useCallback:qb,useContext:qt,useEffect:Db,useImperativeHandle:zb,useInsertionEffect:Lb,useLayoutEffect:Vb,useMemo:Fb,useReducer:xp,useRef:Pb,useState:function(){return xp(Ri)},useDebugValue:vp,useDeferredValue:function(i,n){var o=yt();return Ze===null?wp(o,i,n):Bb(o,Ze.memoizedState,i,n)},useTransition:function(){var i=xp(Ri)[0],n=yt().memoizedState;return[typeof i=="boolean"?i:Po(i),n]},useSyncExternalStore:xb,useId:Xb,useHostTransitionStatus:Np,useFormState:Rb,useActionState:Rb,useOptimistic:function(i,n){var o=yt();return Ze!==null?Nb(o,Ze,i,n):(o.baseState=i,[i,o.queue.dispatch])},useMemoCache:fp,useCacheRefresh:$b},as=null,Lo=0;function Vc(i){var n=Lo;return Lo+=1,as===null&&(as=[]),cb(as,i,n)}function Vo(i,n){n=n.props.ref,i.ref=n!==void 0?n:null}function _c(i,n){throw n.$$typeof===b?Error(s(525)):(i=Object.prototype.toString.call(n),Error(s(31,i==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":i)))}function Jb(i){var n=i._init;return n(i._payload)}function ev(i){function n(q,L){if(i){var H=q.deletions;H===null?(q.deletions=[L],q.flags|=16):H.push(L)}}function o(q,L){if(!i)return null;for(;L!==null;)n(q,L),L=L.sibling;return null}function c(q){for(var L=new Map;q!==null;)q.key!==null?L.set(q.key,q):L.set(q.index,q),q=q.sibling;return L}function m(q,L){return q=Ii(q,L),q.index=0,q.sibling=null,q}function f(q,L,H){return q.index=H,i?(H=q.alternate,H!==null?(H=H.index,H<L?(q.flags|=67108866,L):H):(q.flags|=67108866,L)):(q.flags|=1048576,L)}function j(q){return i&&q.alternate===null&&(q.flags|=67108866),q}function S(q,L,H,J){return L===null||L.tag!==6?(L=Um(H,q.mode,J),L.return=q,L):(L=m(L,H),L.return=q,L)}function O(q,L,H,J){var he=H.type;return he===A?Z(q,L,H.props.children,J,H.key):L!==null&&(L.elementType===he||typeof he=="object"&&he!==null&&he.$$typeof===D&&Jb(he)===L.type)?(L=m(L,H.props),Vo(L,H),L.return=q,L):(L=vc(H.type,H.key,H.props,null,q.mode,J),Vo(L,H),L.return=q,L)}function G(q,L,H,J){return L===null||L.tag!==4||L.stateNode.containerInfo!==H.containerInfo||L.stateNode.implementation!==H.implementation?(L=Xm(H,q.mode,J),L.return=q,L):(L=m(L,H.children||[]),L.return=q,L)}function Z(q,L,H,J,he){return L===null||L.tag!==7?(L=$n(H,q.mode,J,he),L.return=q,L):(L=m(L,H),L.return=q,L)}function ae(q,L,H){if(typeof L=="string"&&L!==""||typeof L=="number"||typeof L=="bigint")return L=Um(""+L,q.mode,H),L.return=q,L;if(typeof L=="object"&&L!==null){switch(L.$$typeof){case w:return H=vc(L.type,L.key,L.props,null,q.mode,H),Vo(H,L),H.return=q,H;case N:return L=Xm(L,q.mode,H),L.return=q,L;case D:var J=L._init;return L=J(L._payload),ae(q,L,H)}if(ue(L)||ce(L))return L=$n(L,q.mode,H,null),L.return=q,L;if(typeof L.then=="function")return ae(q,Vc(L),H);if(L.$$typeof===R)return ae(q,Ac(q,L),H);_c(q,L)}return null}function U(q,L,H,J){var he=L!==null?L.key:null;if(typeof H=="string"&&H!==""||typeof H=="number"||typeof H=="bigint")return he!==null?null:S(q,L,""+H,J);if(typeof H=="object"&&H!==null){switch(H.$$typeof){case w:return H.key===he?O(q,L,H,J):null;case N:return H.key===he?G(q,L,H,J):null;case D:return he=H._init,H=he(H._payload),U(q,L,H,J)}if(ue(H)||ce(H))return he!==null?null:Z(q,L,H,J,null);if(typeof H.then=="function")return U(q,L,Vc(H),J);if(H.$$typeof===R)return U(q,L,Ac(q,H),J);_c(q,H)}return null}function $(q,L,H,J,he){if(typeof J=="string"&&J!==""||typeof J=="number"||typeof J=="bigint")return q=q.get(H)||null,S(L,q,""+J,he);if(typeof J=="object"&&J!==null){switch(J.$$typeof){case w:return q=q.get(J.key===null?H:J.key)||null,O(L,q,J,he);case N:return q=q.get(J.key===null?H:J.key)||null,G(L,q,J,he);case D:var Oe=J._init;return J=Oe(J._payload),$(q,L,H,J,he)}if(ue(J)||ce(J))return q=q.get(H)||null,Z(L,q,J,he,null);if(typeof J.then=="function")return $(q,L,H,Vc(J),he);if(J.$$typeof===R)return $(q,L,H,Ac(L,J),he);_c(L,J)}return null}function Ae(q,L,H,J){for(var he=null,Oe=null,xe=L,Ne=L=0,Et=null;xe!==null&&Ne<H.length;Ne++){xe.index>Ne?(Et=xe,xe=null):Et=xe.sibling;var Xe=U(q,xe,H[Ne],J);if(Xe===null){xe===null&&(xe=Et);break}i&&xe&&Xe.alternate===null&&n(q,xe),L=f(Xe,L,Ne),Oe===null?he=Xe:Oe.sibling=Xe,Oe=Xe,xe=Et}if(Ne===H.length)return o(q,xe),Ke&&Kn(q,Ne),he;if(xe===null){for(;Ne<H.length;Ne++)xe=ae(q,H[Ne],J),xe!==null&&(L=f(xe,L,Ne),Oe===null?he=xe:Oe.sibling=xe,Oe=xe);return Ke&&Kn(q,Ne),he}for(xe=c(xe);Ne<H.length;Ne++)Et=$(xe,q,Ne,H[Ne],J),Et!==null&&(i&&Et.alternate!==null&&xe.delete(Et.key===null?Ne:Et.key),L=f(Et,L,Ne),Oe===null?he=Et:Oe.sibling=Et,Oe=Et);return i&&xe.forEach(function(jn){return n(q,jn)}),Ke&&Kn(q,Ne),he}function we(q,L,H,J){if(H==null)throw Error(s(151));for(var he=null,Oe=null,xe=L,Ne=L=0,Et=null,Xe=H.next();xe!==null&&!Xe.done;Ne++,Xe=H.next()){xe.index>Ne?(Et=xe,xe=null):Et=xe.sibling;var jn=U(q,xe,Xe.value,J);if(jn===null){xe===null&&(xe=Et);break}i&&xe&&jn.alternate===null&&n(q,xe),L=f(jn,L,Ne),Oe===null?he=jn:Oe.sibling=jn,Oe=jn,xe=Et}if(Xe.done)return o(q,xe),Ke&&Kn(q,Ne),he;if(xe===null){for(;!Xe.done;Ne++,Xe=H.next())Xe=ae(q,Xe.value,J),Xe!==null&&(L=f(Xe,L,Ne),Oe===null?he=Xe:Oe.sibling=Xe,Oe=Xe);return Ke&&Kn(q,Ne),he}for(xe=c(xe);!Xe.done;Ne++,Xe=H.next())Xe=$(xe,q,Ne,Xe.value,J),Xe!==null&&(i&&Xe.alternate!==null&&xe.delete(Xe.key===null?Ne:Xe.key),L=f(Xe,L,Ne),Oe===null?he=Xe:Oe.sibling=Xe,Oe=Xe);return i&&xe.forEach(function(OI){return n(q,OI)}),Ke&&Kn(q,Ne),he}function et(q,L,H,J){if(typeof H=="object"&&H!==null&&H.type===A&&H.key===null&&(H=H.props.children),typeof H=="object"&&H!==null){switch(H.$$typeof){case w:e:{for(var he=H.key;L!==null;){if(L.key===he){if(he=H.type,he===A){if(L.tag===7){o(q,L.sibling),J=m(L,H.props.children),J.return=q,q=J;break e}}else if(L.elementType===he||typeof he=="object"&&he!==null&&he.$$typeof===D&&Jb(he)===L.type){o(q,L.sibling),J=m(L,H.props),Vo(J,H),J.return=q,q=J;break e}o(q,L);break}else n(q,L);L=L.sibling}H.type===A?(J=$n(H.props.children,q.mode,J,H.key),J.return=q,q=J):(J=vc(H.type,H.key,H.props,null,q.mode,J),Vo(J,H),J.return=q,q=J)}return j(q);case N:e:{for(he=H.key;L!==null;){if(L.key===he)if(L.tag===4&&L.stateNode.containerInfo===H.containerInfo&&L.stateNode.implementation===H.implementation){o(q,L.sibling),J=m(L,H.children||[]),J.return=q,q=J;break e}else{o(q,L);break}else n(q,L);L=L.sibling}J=Xm(H,q.mode,J),J.return=q,q=J}return j(q);case D:return he=H._init,H=he(H._payload),et(q,L,H,J)}if(ue(H))return Ae(q,L,H,J);if(ce(H)){if(he=ce(H),typeof he!="function")throw Error(s(150));return H=he.call(H),we(q,L,H,J)}if(typeof H.then=="function")return et(q,L,Vc(H),J);if(H.$$typeof===R)return et(q,L,Ac(q,H),J);_c(q,H)}return typeof H=="string"&&H!==""||typeof H=="number"||typeof H=="bigint"?(H=""+H,L!==null&&L.tag===6?(o(q,L.sibling),J=m(L,H),J.return=q,q=J):(o(q,L),J=Um(H,q.mode,J),J.return=q,q=J),j(q)):o(q,L)}return function(q,L,H,J){try{Lo=0;var he=et(q,L,H,J);return as=null,he}catch(xe){if(xe===Io||xe===Sc)throw xe;var Oe=pa(29,xe,null,q.mode);return Oe.lanes=J,Oe.return=q,Oe}}}var is=ev(!0),tv=ev(!1),Ma=Q(null),ri=null;function on(i){var n=i.alternate;Y(jt,jt.current&1),Y(Ma,i),ri===null&&(n===null||Zr.current!==null||n.memoizedState!==null)&&(ri=i)}function av(i){if(i.tag===22){if(Y(jt,jt.current),Y(Ma,i),ri===null){var n=i.alternate;n!==null&&n.memoizedState!==null&&(ri=i)}}else ln()}function ln(){Y(jt,jt.current),Y(Ma,Ma.current)}function Pi(i){F(Ma),ri===i&&(ri=null),F(jt)}var jt=Q(0);function zc(i){for(var n=i;n!==null;){if(n.tag===13){var o=n.memoizedState;if(o!==null&&(o=o.dehydrated,o===null||o.data==="$?"||hh(o)))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===i)break;for(;n.sibling===null;){if(n.return===null||n.return===i)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}function kp(i,n,o,c){n=i.memoizedState,o=o(c,n),o=o==null?n:x({},n,o),i.memoizedState=o,i.lanes===0&&(i.updateQueue.baseState=o)}var Sp={enqueueSetState:function(i,n,o){i=i._reactInternals;var c=xa(),m=nn(c);m.payload=n,o!=null&&(m.callback=o),n=rn(i,m,c),n!==null&&(ya(n,i,c),Mo(n,i,c))},enqueueReplaceState:function(i,n,o){i=i._reactInternals;var c=xa(),m=nn(c);m.tag=1,m.payload=n,o!=null&&(m.callback=o),n=rn(i,m,c),n!==null&&(ya(n,i,c),Mo(n,i,c))},enqueueForceUpdate:function(i,n){i=i._reactInternals;var o=xa(),c=nn(o);c.tag=2,n!=null&&(c.callback=n),n=rn(i,c,o),n!==null&&(ya(n,i,o),Mo(n,i,o))}};function iv(i,n,o,c,m,f,j){return i=i.stateNode,typeof i.shouldComponentUpdate=="function"?i.shouldComponentUpdate(c,f,j):n.prototype&&n.prototype.isPureReactComponent?!bo(o,c)||!bo(m,f):!0}function nv(i,n,o,c){i=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(o,c),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(o,c),n.state!==i&&Sp.enqueueReplaceState(n,n.state,null)}function ar(i,n){var o=n;if("ref"in n){o={};for(var c in n)c!=="ref"&&(o[c]=n[c])}if(i=i.defaultProps){o===n&&(o=x({},o));for(var m in i)o[m]===void 0&&(o[m]=i[m])}return o}var qc=typeof reportError=="function"?reportError:function(i){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof i=="object"&&i!==null&&typeof i.message=="string"?String(i.message):String(i),error:i});if(!window.dispatchEvent(n))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",i);return}console.error(i)};function rv(i){qc(i)}function sv(i){console.error(i)}function ov(i){qc(i)}function Fc(i,n){try{var o=i.onUncaughtError;o(n.value,{componentStack:n.stack})}catch(c){setTimeout(function(){throw c})}}function lv(i,n,o){try{var c=i.onCaughtError;c(o.value,{componentStack:o.stack,errorBoundary:n.tag===1?n.stateNode:null})}catch(m){setTimeout(function(){throw m})}}function Ip(i,n,o){return o=nn(o),o.tag=3,o.payload={element:null},o.callback=function(){Fc(i,n)},o}function cv(i){return i=nn(i),i.tag=3,i}function dv(i,n,o,c){var m=o.type.getDerivedStateFromError;if(typeof m=="function"){var f=c.value;i.payload=function(){return m(f)},i.callback=function(){lv(n,o,c)}}var j=o.stateNode;j!==null&&typeof j.componentDidCatch=="function"&&(i.callback=function(){lv(n,o,c),typeof m!="function"&&(hn===null?hn=new Set([this]):hn.add(this));var S=c.stack;this.componentDidCatch(c.value,{componentStack:S!==null?S:""})})}function O5(i,n,o,c,m){if(o.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){if(n=o.alternate,n!==null&&Ao(n,o,m,!0),o=Ma.current,o!==null){switch(o.tag){case 13:return ri===null?Qp():o.alternate===null&&ut===0&&(ut=3),o.flags&=-257,o.flags|=65536,o.lanes=m,c===ap?o.flags|=16384:(n=o.updateQueue,n===null?o.updateQueue=new Set([c]):n.add(c),Jp(i,c,m)),!1;case 22:return o.flags|=65536,c===ap?o.flags|=16384:(n=o.updateQueue,n===null?(n={transitions:null,markerInstances:null,retryQueue:new Set([c])},o.updateQueue=n):(o=n.retryQueue,o===null?n.retryQueue=new Set([c]):o.add(c)),Jp(i,c,m)),!1}throw Error(s(435,o.tag))}return Jp(i,c,m),Qp(),!1}if(Ke)return n=Ma.current,n!==null?((n.flags&65536)===0&&(n.flags|=256),n.flags|=65536,n.lanes=m,c!==Km&&(i=Error(s(422),{cause:c}),No(ka(i,o)))):(c!==Km&&(n=Error(s(423),{cause:c}),No(ka(n,o))),i=i.current.alternate,i.flags|=65536,m&=-m,i.lanes|=m,c=ka(c,o),m=Ip(i.stateNode,c,m),rp(i,m),ut!==4&&(ut=2)),!1;var f=Error(s(520),{cause:c});if(f=ka(f,o),Go===null?Go=[f]:Go.push(f),ut!==4&&(ut=2),n===null)return!0;c=ka(c,o),o=n;do{switch(o.tag){case 3:return o.flags|=65536,i=m&-m,o.lanes|=i,i=Ip(o.stateNode,c,i),rp(o,i),!1;case 1:if(n=o.type,f=o.stateNode,(o.flags&128)===0&&(typeof n.getDerivedStateFromError=="function"||f!==null&&typeof f.componentDidCatch=="function"&&(hn===null||!hn.has(f))))return o.flags|=65536,m&=-m,o.lanes|=m,m=cv(m),dv(m,i,o,c),rp(o,m),!1}o=o.return}while(o!==null);return!1}var uv=Error(s(461)),Mt=!1;function Dt(i,n,o,c){n.child=i===null?tv(n,null,o,c):is(n,i.child,o,c)}function mv(i,n,o,c,m){o=o.render;var f=n.ref;if("ref"in c){var j={};for(var S in c)S!=="ref"&&(j[S]=c[S])}else j=c;return Jn(n),c=dp(i,n,o,j,f,m),S=up(),i!==null&&!Mt?(mp(i,n,m),Oi(i,n,m)):(Ke&&S&&$m(n),n.flags|=1,Dt(i,n,c,m),n.child)}function pv(i,n,o,c,m){if(i===null){var f=o.type;return typeof f=="function"&&!Gm(f)&&f.defaultProps===void 0&&o.compare===null?(n.tag=15,n.type=f,hv(i,n,f,c,m)):(i=vc(o.type,null,c,n,n.mode,m),i.ref=n.ref,i.return=n,n.child=i)}if(f=i.child,!Dp(i,m)){var j=f.memoizedProps;if(o=o.compare,o=o!==null?o:bo,o(j,c)&&i.ref===n.ref)return Oi(i,n,m)}return n.flags|=1,i=Ii(f,c),i.ref=n.ref,i.return=n,n.child=i}function hv(i,n,o,c,m){if(i!==null){var f=i.memoizedProps;if(bo(f,c)&&i.ref===n.ref)if(Mt=!1,n.pendingProps=c=f,Dp(i,m))(i.flags&131072)!==0&&(Mt=!0);else return n.lanes=i.lanes,Oi(i,n,m)}return Cp(i,n,o,c,m)}function fv(i,n,o){var c=n.pendingProps,m=c.children,f=i!==null?i.memoizedState:null;if(c.mode==="hidden"){if((n.flags&128)!==0){if(c=f!==null?f.baseLanes|o:o,i!==null){for(m=n.child=i.child,f=0;m!==null;)f=f|m.lanes|m.childLanes,m=m.sibling;n.childLanes=f&~c}else n.childLanes=0,n.child=null;return gv(i,n,c,o)}if((o&536870912)!==0)n.memoizedState={baseLanes:0,cachePool:null},i!==null&&kc(n,f!==null?f.cachePool:null),f!==null?hb(n,f):op(),av(n);else return n.lanes=n.childLanes=536870912,gv(i,n,f!==null?f.baseLanes|o:o,o)}else f!==null?(kc(n,f.cachePool),hb(n,f),ln(),n.memoizedState=null):(i!==null&&kc(n,null),op(),ln());return Dt(i,n,m,o),n.child}function gv(i,n,o,c){var m=tp();return m=m===null?null:{parent:wt._currentValue,pool:m},n.memoizedState={baseLanes:o,cachePool:m},i!==null&&kc(n,null),op(),av(n),i!==null&&Ao(i,n,c,!0),null}function Bc(i,n){var o=n.ref;if(o===null)i!==null&&i.ref!==null&&(n.flags|=4194816);else{if(typeof o!="function"&&typeof o!="object")throw Error(s(284));(i===null||i.ref!==o)&&(n.flags|=4194816)}}function Cp(i,n,o,c,m){return Jn(n),o=dp(i,n,o,c,void 0,m),c=up(),i!==null&&!Mt?(mp(i,n,m),Oi(i,n,m)):(Ke&&c&&$m(n),n.flags|=1,Dt(i,n,o,m),n.child)}function xv(i,n,o,c,m,f){return Jn(n),n.updateQueue=null,o=gb(n,c,o,m),fb(i),c=up(),i!==null&&!Mt?(mp(i,n,f),Oi(i,n,f)):(Ke&&c&&$m(n),n.flags|=1,Dt(i,n,o,f),n.child)}function yv(i,n,o,c,m){if(Jn(n),n.stateNode===null){var f=$r,j=o.contextType;typeof j=="object"&&j!==null&&(f=qt(j)),f=new o(c,f),n.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,f.updater=Sp,n.stateNode=f,f._reactInternals=n,f=n.stateNode,f.props=c,f.state=n.memoizedState,f.refs={},ip(n),j=o.contextType,f.context=typeof j=="object"&&j!==null?qt(j):$r,f.state=n.memoizedState,j=o.getDerivedStateFromProps,typeof j=="function"&&(kp(n,o,j,c),f.state=n.memoizedState),typeof o.getDerivedStateFromProps=="function"||typeof f.getSnapshotBeforeUpdate=="function"||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(j=f.state,typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount(),j!==f.state&&Sp.enqueueReplaceState(f,f.state,null),Eo(n,c,f,m),To(),f.state=n.memoizedState),typeof f.componentDidMount=="function"&&(n.flags|=4194308),c=!0}else if(i===null){f=n.stateNode;var S=n.memoizedProps,O=ar(o,S);f.props=O;var G=f.context,Z=o.contextType;j=$r,typeof Z=="object"&&Z!==null&&(j=qt(Z));var ae=o.getDerivedStateFromProps;Z=typeof ae=="function"||typeof f.getSnapshotBeforeUpdate=="function",S=n.pendingProps!==S,Z||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(S||G!==j)&&nv(n,f,c,j),an=!1;var U=n.memoizedState;f.state=U,Eo(n,c,f,m),To(),G=n.memoizedState,S||U!==G||an?(typeof ae=="function"&&(kp(n,o,ae,c),G=n.memoizedState),(O=an||iv(n,o,O,c,U,G,j))?(Z||typeof f.UNSAFE_componentWillMount!="function"&&typeof f.componentWillMount!="function"||(typeof f.componentWillMount=="function"&&f.componentWillMount(),typeof f.UNSAFE_componentWillMount=="function"&&f.UNSAFE_componentWillMount()),typeof f.componentDidMount=="function"&&(n.flags|=4194308)):(typeof f.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=c,n.memoizedState=G),f.props=c,f.state=G,f.context=j,c=O):(typeof f.componentDidMount=="function"&&(n.flags|=4194308),c=!1)}else{f=n.stateNode,np(i,n),j=n.memoizedProps,Z=ar(o,j),f.props=Z,ae=n.pendingProps,U=f.context,G=o.contextType,O=$r,typeof G=="object"&&G!==null&&(O=qt(G)),S=o.getDerivedStateFromProps,(G=typeof S=="function"||typeof f.getSnapshotBeforeUpdate=="function")||typeof f.UNSAFE_componentWillReceiveProps!="function"&&typeof f.componentWillReceiveProps!="function"||(j!==ae||U!==O)&&nv(n,f,c,O),an=!1,U=n.memoizedState,f.state=U,Eo(n,c,f,m),To();var $=n.memoizedState;j!==ae||U!==$||an||i!==null&&i.dependencies!==null&&Nc(i.dependencies)?(typeof S=="function"&&(kp(n,o,S,c),$=n.memoizedState),(Z=an||iv(n,o,Z,c,U,$,O)||i!==null&&i.dependencies!==null&&Nc(i.dependencies))?(G||typeof f.UNSAFE_componentWillUpdate!="function"&&typeof f.componentWillUpdate!="function"||(typeof f.componentWillUpdate=="function"&&f.componentWillUpdate(c,$,O),typeof f.UNSAFE_componentWillUpdate=="function"&&f.UNSAFE_componentWillUpdate(c,$,O)),typeof f.componentDidUpdate=="function"&&(n.flags|=4),typeof f.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof f.componentDidUpdate!="function"||j===i.memoizedProps&&U===i.memoizedState||(n.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||j===i.memoizedProps&&U===i.memoizedState||(n.flags|=1024),n.memoizedProps=c,n.memoizedState=$),f.props=c,f.state=$,f.context=O,c=Z):(typeof f.componentDidUpdate!="function"||j===i.memoizedProps&&U===i.memoizedState||(n.flags|=4),typeof f.getSnapshotBeforeUpdate!="function"||j===i.memoizedProps&&U===i.memoizedState||(n.flags|=1024),c=!1)}return f=c,Bc(i,n),c=(n.flags&128)!==0,f||c?(f=n.stateNode,o=c&&typeof o.getDerivedStateFromError!="function"?null:f.render(),n.flags|=1,i!==null&&c?(n.child=is(n,i.child,null,m),n.child=is(n,null,o,m)):Dt(i,n,o,m),n.memoizedState=f.state,i=n.child):i=Oi(i,n,m),i}function bv(i,n,o,c){return jo(),n.flags|=256,Dt(i,n,o,c),n.child}var Mp={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Tp(i){return{baseLanes:i,cachePool:sb()}}function Ep(i,n,o){return i=i!==null?i.childLanes&~o:0,n&&(i|=Ta),i}function vv(i,n,o){var c=n.pendingProps,m=!1,f=(n.flags&128)!==0,j;if((j=f)||(j=i!==null&&i.memoizedState===null?!1:(jt.current&2)!==0),j&&(m=!0,n.flags&=-129),j=(n.flags&32)!==0,n.flags&=-33,i===null){if(Ke){if(m?on(n):ln(),Ke){var S=dt,O;if(O=S){e:{for(O=S,S=ni;O.nodeType!==8;){if(!S){S=null;break e}if(O=_a(O.nextSibling),O===null){S=null;break e}}S=O}S!==null?(n.memoizedState={dehydrated:S,treeContext:Wn!==null?{id:Ci,overflow:Mi}:null,retryLane:536870912,hydrationErrors:null},O=pa(18,null,null,0),O.stateNode=S,O.return=n,n.child=O,Ut=n,dt=null,O=!0):O=!1}O||Qn(n)}if(S=n.memoizedState,S!==null&&(S=S.dehydrated,S!==null))return hh(S)?n.lanes=32:n.lanes=536870912,null;Pi(n)}return S=c.children,c=c.fallback,m?(ln(),m=n.mode,S=Hc({mode:"hidden",children:S},m),c=$n(c,m,o,null),S.return=n,c.return=n,S.sibling=c,n.child=S,m=n.child,m.memoizedState=Tp(o),m.childLanes=Ep(i,j,o),n.memoizedState=Mp,c):(on(n),Rp(n,S))}if(O=i.memoizedState,O!==null&&(S=O.dehydrated,S!==null)){if(f)n.flags&256?(on(n),n.flags&=-257,n=Pp(i,n,o)):n.memoizedState!==null?(ln(),n.child=i.child,n.flags|=128,n=null):(ln(),m=c.fallback,S=n.mode,c=Hc({mode:"visible",children:c.children},S),m=$n(m,S,o,null),m.flags|=2,c.return=n,m.return=n,c.sibling=m,n.child=c,is(n,i.child,null,o),c=n.child,c.memoizedState=Tp(o),c.childLanes=Ep(i,j,o),n.memoizedState=Mp,n=m);else if(on(n),hh(S)){if(j=S.nextSibling&&S.nextSibling.dataset,j)var G=j.dgst;j=G,c=Error(s(419)),c.stack="",c.digest=j,No({value:c,source:null,stack:null}),n=Pp(i,n,o)}else if(Mt||Ao(i,n,o,!1),j=(o&i.childLanes)!==0,Mt||j){if(j=it,j!==null&&(c=o&-o,c=(c&42)!==0?1:fm(c),c=(c&(j.suspendedLanes|o))!==0?0:c,c!==0&&c!==O.retryLane))throw O.retryLane=c,Xr(i,c),ya(j,i,c),uv;S.data==="$?"||Qp(),n=Pp(i,n,o)}else S.data==="$?"?(n.flags|=192,n.child=i.child,n=null):(i=O.treeContext,dt=_a(S.nextSibling),Ut=n,Ke=!0,Yn=null,ni=!1,i!==null&&(Ia[Ca++]=Ci,Ia[Ca++]=Mi,Ia[Ca++]=Wn,Ci=i.id,Mi=i.overflow,Wn=n),n=Rp(n,c.children),n.flags|=4096);return n}return m?(ln(),m=c.fallback,S=n.mode,O=i.child,G=O.sibling,c=Ii(O,{mode:"hidden",children:c.children}),c.subtreeFlags=O.subtreeFlags&65011712,G!==null?m=Ii(G,m):(m=$n(m,S,o,null),m.flags|=2),m.return=n,c.return=n,c.sibling=m,n.child=c,c=m,m=n.child,S=i.child.memoizedState,S===null?S=Tp(o):(O=S.cachePool,O!==null?(G=wt._currentValue,O=O.parent!==G?{parent:G,pool:G}:O):O=sb(),S={baseLanes:S.baseLanes|o,cachePool:O}),m.memoizedState=S,m.childLanes=Ep(i,j,o),n.memoizedState=Mp,c):(on(n),o=i.child,i=o.sibling,o=Ii(o,{mode:"visible",children:c.children}),o.return=n,o.sibling=null,i!==null&&(j=n.deletions,j===null?(n.deletions=[i],n.flags|=16):j.push(i)),n.child=o,n.memoizedState=null,o)}function Rp(i,n){return n=Hc({mode:"visible",children:n},i.mode),n.return=i,i.child=n}function Hc(i,n){return i=pa(22,i,null,n),i.lanes=0,i.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},i}function Pp(i,n,o){return is(n,i.child,null,o),i=Rp(n,n.pendingProps.children),i.flags|=2,n.memoizedState=null,i}function wv(i,n,o){i.lanes|=n;var c=i.alternate;c!==null&&(c.lanes|=n),Qm(i.return,n,o)}function Op(i,n,o,c,m){var f=i.memoizedState;f===null?i.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:c,tail:o,tailMode:m}:(f.isBackwards=n,f.rendering=null,f.renderingStartTime=0,f.last=c,f.tail=o,f.tailMode=m)}function jv(i,n,o){var c=n.pendingProps,m=c.revealOrder,f=c.tail;if(Dt(i,n,c.children,o),c=jt.current,(c&2)!==0)c=c&1|2,n.flags|=128;else{if(i!==null&&(i.flags&128)!==0)e:for(i=n.child;i!==null;){if(i.tag===13)i.memoizedState!==null&&wv(i,o,n);else if(i.tag===19)wv(i,o,n);else if(i.child!==null){i.child.return=i,i=i.child;continue}if(i===n)break e;for(;i.sibling===null;){if(i.return===null||i.return===n)break e;i=i.return}i.sibling.return=i.return,i=i.sibling}c&=1}switch(Y(jt,c),m){case"forwards":for(o=n.child,m=null;o!==null;)i=o.alternate,i!==null&&zc(i)===null&&(m=o),o=o.sibling;o=m,o===null?(m=n.child,n.child=null):(m=o.sibling,o.sibling=null),Op(n,!1,m,o,f);break;case"backwards":for(o=null,m=n.child,n.child=null;m!==null;){if(i=m.alternate,i!==null&&zc(i)===null){n.child=m;break}i=m.sibling,m.sibling=o,o=m,m=i}Op(n,!0,o,null,f);break;case"together":Op(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function Oi(i,n,o){if(i!==null&&(n.dependencies=i.dependencies),pn|=n.lanes,(o&n.childLanes)===0)if(i!==null){if(Ao(i,n,o,!1),(o&n.childLanes)===0)return null}else return null;if(i!==null&&n.child!==i.child)throw Error(s(153));if(n.child!==null){for(i=n.child,o=Ii(i,i.pendingProps),n.child=o,o.return=n;i.sibling!==null;)i=i.sibling,o=o.sibling=Ii(i,i.pendingProps),o.return=n;o.sibling=null}return n.child}function Dp(i,n){return(i.lanes&n)!==0?!0:(i=i.dependencies,!!(i!==null&&Nc(i)))}function D5(i,n,o){switch(n.tag){case 3:ke(n,n.stateNode.containerInfo),tn(n,wt,i.memoizedState.cache),jo();break;case 27:case 5:la(n);break;case 4:ke(n,n.stateNode.containerInfo);break;case 10:tn(n,n.type,n.memoizedProps.value);break;case 13:var c=n.memoizedState;if(c!==null)return c.dehydrated!==null?(on(n),n.flags|=128,null):(o&n.child.childLanes)!==0?vv(i,n,o):(on(n),i=Oi(i,n,o),i!==null?i.sibling:null);on(n);break;case 19:var m=(i.flags&128)!==0;if(c=(o&n.childLanes)!==0,c||(Ao(i,n,o,!1),c=(o&n.childLanes)!==0),m){if(c)return jv(i,n,o);n.flags|=128}if(m=n.memoizedState,m!==null&&(m.rendering=null,m.tail=null,m.lastEffect=null),Y(jt,jt.current),c)break;return null;case 22:case 23:return n.lanes=0,fv(i,n,o);case 24:tn(n,wt,i.memoizedState.cache)}return Oi(i,n,o)}function Nv(i,n,o){if(i!==null)if(i.memoizedProps!==n.pendingProps)Mt=!0;else{if(!Dp(i,o)&&(n.flags&128)===0)return Mt=!1,D5(i,n,o);Mt=(i.flags&131072)!==0}else Mt=!1,Ke&&(n.flags&1048576)!==0&&Jy(n,jc,n.index);switch(n.lanes=0,n.tag){case 16:e:{i=n.pendingProps;var c=n.elementType,m=c._init;if(c=m(c._payload),n.type=c,typeof c=="function")Gm(c)?(i=ar(c,i),n.tag=1,n=yv(null,n,c,i,o)):(n.tag=0,n=Cp(null,n,c,i,o));else{if(c!=null){if(m=c.$$typeof,m===C){n.tag=11,n=mv(null,n,c,i,o);break e}else if(m===V){n.tag=14,n=pv(null,n,c,i,o);break e}}throw n=se(c)||c,Error(s(306,n,""))}}return n;case 0:return Cp(i,n,n.type,n.pendingProps,o);case 1:return c=n.type,m=ar(c,n.pendingProps),yv(i,n,c,m,o);case 3:e:{if(ke(n,n.stateNode.containerInfo),i===null)throw Error(s(387));c=n.pendingProps;var f=n.memoizedState;m=f.element,np(i,n),Eo(n,c,null,o);var j=n.memoizedState;if(c=j.cache,tn(n,wt,c),c!==f.cache&&Zm(n,[wt],o,!0),To(),c=j.element,f.isDehydrated)if(f={element:c,isDehydrated:!1,cache:j.cache},n.updateQueue.baseState=f,n.memoizedState=f,n.flags&256){n=bv(i,n,c,o);break e}else if(c!==m){m=ka(Error(s(424)),n),No(m),n=bv(i,n,c,o);break e}else for(i=n.stateNode.containerInfo,i.nodeType===9?i=i.body:i=i.nodeName==="HTML"?i.ownerDocument.body:i,dt=_a(i.firstChild),Ut=n,Ke=!0,Yn=null,ni=!0,o=tv(n,null,c,o),n.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(jo(),c===m){n=Oi(i,n,o);break e}Dt(i,n,c,o)}n=n.child}return n;case 26:return Bc(i,n),i===null?(o=I0(n.type,null,n.pendingProps,null))?n.memoizedState=o:Ke||(o=n.type,i=n.pendingProps,c=id(te.current).createElement(o),c[zt]=n,c[Jt]=i,Vt(c,o,i),Ct(c),n.stateNode=c):n.memoizedState=I0(n.type,i.memoizedProps,n.pendingProps,i.memoizedState),null;case 27:return la(n),i===null&&Ke&&(c=n.stateNode=A0(n.type,n.pendingProps,te.current),Ut=n,ni=!0,m=dt,xn(n.type)?(fh=m,dt=_a(c.firstChild)):dt=m),Dt(i,n,n.pendingProps.children,o),Bc(i,n),i===null&&(n.flags|=4194304),n.child;case 5:return i===null&&Ke&&((m=c=dt)&&(c=cI(c,n.type,n.pendingProps,ni),c!==null?(n.stateNode=c,Ut=n,dt=_a(c.firstChild),ni=!1,m=!0):m=!1),m||Qn(n)),la(n),m=n.type,f=n.pendingProps,j=i!==null?i.memoizedProps:null,c=f.children,uh(m,f)?c=null:j!==null&&uh(m,j)&&(n.flags|=32),n.memoizedState!==null&&(m=dp(i,n,I5,null,null,o),Jo._currentValue=m),Bc(i,n),Dt(i,n,c,o),n.child;case 6:return i===null&&Ke&&((i=o=dt)&&(o=dI(o,n.pendingProps,ni),o!==null?(n.stateNode=o,Ut=n,dt=null,i=!0):i=!1),i||Qn(n)),null;case 13:return vv(i,n,o);case 4:return ke(n,n.stateNode.containerInfo),c=n.pendingProps,i===null?n.child=is(n,null,c,o):Dt(i,n,c,o),n.child;case 11:return mv(i,n,n.type,n.pendingProps,o);case 7:return Dt(i,n,n.pendingProps,o),n.child;case 8:return Dt(i,n,n.pendingProps.children,o),n.child;case 12:return Dt(i,n,n.pendingProps.children,o),n.child;case 10:return c=n.pendingProps,tn(n,n.type,c.value),Dt(i,n,c.children,o),n.child;case 9:return m=n.type._context,c=n.pendingProps.children,Jn(n),m=qt(m),c=c(m),n.flags|=1,Dt(i,n,c,o),n.child;case 14:return pv(i,n,n.type,n.pendingProps,o);case 15:return hv(i,n,n.type,n.pendingProps,o);case 19:return jv(i,n,o);case 31:return c=n.pendingProps,o=n.mode,c={mode:c.mode,children:c.children},i===null?(o=Hc(c,o),o.ref=n.ref,n.child=o,o.return=n,n=o):(o=Ii(i.child,c),o.ref=n.ref,n.child=o,o.return=n,n=o),n;case 22:return fv(i,n,o);case 24:return Jn(n),c=qt(wt),i===null?(m=tp(),m===null&&(m=it,f=Jm(),m.pooledCache=f,f.refCount++,f!==null&&(m.pooledCacheLanes|=o),m=f),n.memoizedState={parent:c,cache:m},ip(n),tn(n,wt,m)):((i.lanes&o)!==0&&(np(i,n),Eo(n,null,null,o),To()),m=i.memoizedState,f=n.memoizedState,m.parent!==c?(m={parent:c,cache:c},n.memoizedState=m,n.lanes===0&&(n.memoizedState=n.updateQueue.baseState=m),tn(n,wt,c)):(c=f.cache,tn(n,wt,c),c!==m.cache&&Zm(n,[wt],o,!0))),Dt(i,n,n.pendingProps.children,o),n.child;case 29:throw n.pendingProps}throw Error(s(156,n.tag))}function Di(i){i.flags|=4}function Av(i,n){if(n.type!=="stylesheet"||(n.state.loading&4)!==0)i.flags&=-16777217;else if(i.flags|=16777216,!R0(n)){if(n=Ma.current,n!==null&&((Fe&4194048)===Fe?ri!==null:(Fe&62914560)!==Fe&&(Fe&536870912)===0||n!==ri))throw Co=ap,ob;i.flags|=8192}}function Gc(i,n){n!==null&&(i.flags|=4),i.flags&16384&&(n=i.tag!==22?ay():536870912,i.lanes|=n,os|=n)}function _o(i,n){if(!Ke)switch(i.tailMode){case"hidden":n=i.tail;for(var o=null;n!==null;)n.alternate!==null&&(o=n),n=n.sibling;o===null?i.tail=null:o.sibling=null;break;case"collapsed":o=i.tail;for(var c=null;o!==null;)o.alternate!==null&&(c=o),o=o.sibling;c===null?n||i.tail===null?i.tail=null:i.tail.sibling=null:c.sibling=null}}function lt(i){var n=i.alternate!==null&&i.alternate.child===i.child,o=0,c=0;if(n)for(var m=i.child;m!==null;)o|=m.lanes|m.childLanes,c|=m.subtreeFlags&65011712,c|=m.flags&65011712,m.return=i,m=m.sibling;else for(m=i.child;m!==null;)o|=m.lanes|m.childLanes,c|=m.subtreeFlags,c|=m.flags,m.return=i,m=m.sibling;return i.subtreeFlags|=c,i.childLanes=o,n}function L5(i,n,o){var c=n.pendingProps;switch(Wm(n),n.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return lt(n),null;case 1:return lt(n),null;case 3:return o=n.stateNode,c=null,i!==null&&(c=i.memoizedState.cache),n.memoizedState.cache!==c&&(n.flags|=2048),Ei(wt),Se(),o.pendingContext&&(o.context=o.pendingContext,o.pendingContext=null),(i===null||i.child===null)&&(wo(n)?Di(n):i===null||i.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,ab())),lt(n),null;case 26:return o=n.memoizedState,i===null?(Di(n),o!==null?(lt(n),Av(n,o)):(lt(n),n.flags&=-16777217)):o?o!==i.memoizedState?(Di(n),lt(n),Av(n,o)):(lt(n),n.flags&=-16777217):(i.memoizedProps!==c&&Di(n),lt(n),n.flags&=-16777217),null;case 27:Da(n),o=te.current;var m=n.type;if(i!==null&&n.stateNode!=null)i.memoizedProps!==c&&Di(n);else{if(!c){if(n.stateNode===null)throw Error(s(166));return lt(n),null}i=re.current,wo(n)?eb(n):(i=A0(m,c,o),n.stateNode=i,Di(n))}return lt(n),null;case 5:if(Da(n),o=n.type,i!==null&&n.stateNode!=null)i.memoizedProps!==c&&Di(n);else{if(!c){if(n.stateNode===null)throw Error(s(166));return lt(n),null}if(i=re.current,wo(n))eb(n);else{switch(m=id(te.current),i){case 1:i=m.createElementNS("http://www.w3.org/2000/svg",o);break;case 2:i=m.createElementNS("http://www.w3.org/1998/Math/MathML",o);break;default:switch(o){case"svg":i=m.createElementNS("http://www.w3.org/2000/svg",o);break;case"math":i=m.createElementNS("http://www.w3.org/1998/Math/MathML",o);break;case"script":i=m.createElement("div"),i.innerHTML="<script><\/script>",i=i.removeChild(i.firstChild);break;case"select":i=typeof c.is=="string"?m.createElement("select",{is:c.is}):m.createElement("select"),c.multiple?i.multiple=!0:c.size&&(i.size=c.size);break;default:i=typeof c.is=="string"?m.createElement(o,{is:c.is}):m.createElement(o)}}i[zt]=n,i[Jt]=c;e:for(m=n.child;m!==null;){if(m.tag===5||m.tag===6)i.appendChild(m.stateNode);else if(m.tag!==4&&m.tag!==27&&m.child!==null){m.child.return=m,m=m.child;continue}if(m===n)break e;for(;m.sibling===null;){if(m.return===null||m.return===n)break e;m=m.return}m.sibling.return=m.return,m=m.sibling}n.stateNode=i;e:switch(Vt(i,o,c),o){case"button":case"input":case"select":case"textarea":i=!!c.autoFocus;break e;case"img":i=!0;break e;default:i=!1}i&&Di(n)}}return lt(n),n.flags&=-16777217,null;case 6:if(i&&n.stateNode!=null)i.memoizedProps!==c&&Di(n);else{if(typeof c!="string"&&n.stateNode===null)throw Error(s(166));if(i=te.current,wo(n)){if(i=n.stateNode,o=n.memoizedProps,c=null,m=Ut,m!==null)switch(m.tag){case 27:case 5:c=m.memoizedProps}i[zt]=n,i=!!(i.nodeValue===o||c!==null&&c.suppressHydrationWarning===!0||x0(i.nodeValue,o)),i||Qn(n)}else i=id(i).createTextNode(c),i[zt]=n,n.stateNode=i}return lt(n),null;case 13:if(c=n.memoizedState,i===null||i.memoizedState!==null&&i.memoizedState.dehydrated!==null){if(m=wo(n),c!==null&&c.dehydrated!==null){if(i===null){if(!m)throw Error(s(318));if(m=n.memoizedState,m=m!==null?m.dehydrated:null,!m)throw Error(s(317));m[zt]=n}else jo(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;lt(n),m=!1}else m=ab(),i!==null&&i.memoizedState!==null&&(i.memoizedState.hydrationErrors=m),m=!0;if(!m)return n.flags&256?(Pi(n),n):(Pi(n),null)}if(Pi(n),(n.flags&128)!==0)return n.lanes=o,n;if(o=c!==null,i=i!==null&&i.memoizedState!==null,o){c=n.child,m=null,c.alternate!==null&&c.alternate.memoizedState!==null&&c.alternate.memoizedState.cachePool!==null&&(m=c.alternate.memoizedState.cachePool.pool);var f=null;c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(f=c.memoizedState.cachePool.pool),f!==m&&(c.flags|=2048)}return o!==i&&o&&(n.child.flags|=8192),Gc(n,n.updateQueue),lt(n),null;case 4:return Se(),i===null&&sh(n.stateNode.containerInfo),lt(n),null;case 10:return Ei(n.type),lt(n),null;case 19:if(F(jt),m=n.memoizedState,m===null)return lt(n),null;if(c=(n.flags&128)!==0,f=m.rendering,f===null)if(c)_o(m,!1);else{if(ut!==0||i!==null&&(i.flags&128)!==0)for(i=n.child;i!==null;){if(f=zc(i),f!==null){for(n.flags|=128,_o(m,!1),i=f.updateQueue,n.updateQueue=i,Gc(n,i),n.subtreeFlags=0,i=o,o=n.child;o!==null;)Zy(o,i),o=o.sibling;return Y(jt,jt.current&1|2),n.child}i=i.sibling}m.tail!==null&&ii()>$c&&(n.flags|=128,c=!0,_o(m,!1),n.lanes=4194304)}else{if(!c)if(i=zc(f),i!==null){if(n.flags|=128,c=!0,i=i.updateQueue,n.updateQueue=i,Gc(n,i),_o(m,!0),m.tail===null&&m.tailMode==="hidden"&&!f.alternate&&!Ke)return lt(n),null}else 2*ii()-m.renderingStartTime>$c&&o!==536870912&&(n.flags|=128,c=!0,_o(m,!1),n.lanes=4194304);m.isBackwards?(f.sibling=n.child,n.child=f):(i=m.last,i!==null?i.sibling=f:n.child=f,m.last=f)}return m.tail!==null?(n=m.tail,m.rendering=n,m.tail=n.sibling,m.renderingStartTime=ii(),n.sibling=null,i=jt.current,Y(jt,c?i&1|2:i&1),n):(lt(n),null);case 22:case 23:return Pi(n),lp(),c=n.memoizedState!==null,i!==null?i.memoizedState!==null!==c&&(n.flags|=8192):c&&(n.flags|=8192),c?(o&536870912)!==0&&(n.flags&128)===0&&(lt(n),n.subtreeFlags&6&&(n.flags|=8192)):lt(n),o=n.updateQueue,o!==null&&Gc(n,o.retryQueue),o=null,i!==null&&i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(o=i.memoizedState.cachePool.pool),c=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(c=n.memoizedState.cachePool.pool),c!==o&&(n.flags|=2048),i!==null&&F(er),null;case 24:return o=null,i!==null&&(o=i.memoizedState.cache),n.memoizedState.cache!==o&&(n.flags|=2048),Ei(wt),lt(n),null;case 25:return null;case 30:return null}throw Error(s(156,n.tag))}function V5(i,n){switch(Wm(n),n.tag){case 1:return i=n.flags,i&65536?(n.flags=i&-65537|128,n):null;case 3:return Ei(wt),Se(),i=n.flags,(i&65536)!==0&&(i&128)===0?(n.flags=i&-65537|128,n):null;case 26:case 27:case 5:return Da(n),null;case 13:if(Pi(n),i=n.memoizedState,i!==null&&i.dehydrated!==null){if(n.alternate===null)throw Error(s(340));jo()}return i=n.flags,i&65536?(n.flags=i&-65537|128,n):null;case 19:return F(jt),null;case 4:return Se(),null;case 10:return Ei(n.type),null;case 22:case 23:return Pi(n),lp(),i!==null&&F(er),i=n.flags,i&65536?(n.flags=i&-65537|128,n):null;case 24:return Ei(wt),null;case 25:return null;default:return null}}function kv(i,n){switch(Wm(n),n.tag){case 3:Ei(wt),Se();break;case 26:case 27:case 5:Da(n);break;case 4:Se();break;case 13:Pi(n);break;case 19:F(jt);break;case 10:Ei(n.type);break;case 22:case 23:Pi(n),lp(),i!==null&&F(er);break;case 24:Ei(wt)}}function zo(i,n){try{var o=n.updateQueue,c=o!==null?o.lastEffect:null;if(c!==null){var m=c.next;o=m;do{if((o.tag&i)===i){c=void 0;var f=o.create,j=o.inst;c=f(),j.destroy=c}o=o.next}while(o!==m)}}catch(S){tt(n,n.return,S)}}function cn(i,n,o){try{var c=n.updateQueue,m=c!==null?c.lastEffect:null;if(m!==null){var f=m.next;c=f;do{if((c.tag&i)===i){var j=c.inst,S=j.destroy;if(S!==void 0){j.destroy=void 0,m=n;var O=o,G=S;try{G()}catch(Z){tt(m,O,Z)}}}c=c.next}while(c!==f)}}catch(Z){tt(n,n.return,Z)}}function Sv(i){var n=i.updateQueue;if(n!==null){var o=i.stateNode;try{pb(n,o)}catch(c){tt(i,i.return,c)}}}function Iv(i,n,o){o.props=ar(i.type,i.memoizedProps),o.state=i.memoizedState;try{o.componentWillUnmount()}catch(c){tt(i,n,c)}}function qo(i,n){try{var o=i.ref;if(o!==null){switch(i.tag){case 26:case 27:case 5:var c=i.stateNode;break;case 30:c=i.stateNode;break;default:c=i.stateNode}typeof o=="function"?i.refCleanup=o(c):o.current=c}}catch(m){tt(i,n,m)}}function si(i,n){var o=i.ref,c=i.refCleanup;if(o!==null)if(typeof c=="function")try{c()}catch(m){tt(i,n,m)}finally{i.refCleanup=null,i=i.alternate,i!=null&&(i.refCleanup=null)}else if(typeof o=="function")try{o(null)}catch(m){tt(i,n,m)}else o.current=null}function Cv(i){var n=i.type,o=i.memoizedProps,c=i.stateNode;try{e:switch(n){case"button":case"input":case"select":case"textarea":o.autoFocus&&c.focus();break e;case"img":o.src?c.src=o.src:o.srcSet&&(c.srcset=o.srcSet)}}catch(m){tt(i,i.return,m)}}function Lp(i,n,o){try{var c=i.stateNode;nI(c,i.type,o,n),c[Jt]=n}catch(m){tt(i,i.return,m)}}function Mv(i){return i.tag===5||i.tag===3||i.tag===26||i.tag===27&&xn(i.type)||i.tag===4}function Vp(i){e:for(;;){for(;i.sibling===null;){if(i.return===null||Mv(i.return))return null;i=i.return}for(i.sibling.return=i.return,i=i.sibling;i.tag!==5&&i.tag!==6&&i.tag!==18;){if(i.tag===27&&xn(i.type)||i.flags&2||i.child===null||i.tag===4)continue e;i.child.return=i,i=i.child}if(!(i.flags&2))return i.stateNode}}function _p(i,n,o){var c=i.tag;if(c===5||c===6)i=i.stateNode,n?(o.nodeType===9?o.body:o.nodeName==="HTML"?o.ownerDocument.body:o).insertBefore(i,n):(n=o.nodeType===9?o.body:o.nodeName==="HTML"?o.ownerDocument.body:o,n.appendChild(i),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=ad));else if(c!==4&&(c===27&&xn(i.type)&&(o=i.stateNode,n=null),i=i.child,i!==null))for(_p(i,n,o),i=i.sibling;i!==null;)_p(i,n,o),i=i.sibling}function Uc(i,n,o){var c=i.tag;if(c===5||c===6)i=i.stateNode,n?o.insertBefore(i,n):o.appendChild(i);else if(c!==4&&(c===27&&xn(i.type)&&(o=i.stateNode),i=i.child,i!==null))for(Uc(i,n,o),i=i.sibling;i!==null;)Uc(i,n,o),i=i.sibling}function Tv(i){var n=i.stateNode,o=i.memoizedProps;try{for(var c=i.type,m=n.attributes;m.length;)n.removeAttributeNode(m[0]);Vt(n,c,o),n[zt]=i,n[Jt]=o}catch(f){tt(i,i.return,f)}}var Li=!1,gt=!1,zp=!1,Ev=typeof WeakSet=="function"?WeakSet:Set,Tt=null;function _5(i,n){if(i=i.containerInfo,ch=cd,i=By(i),Vm(i)){if("selectionStart"in i)var o={start:i.selectionStart,end:i.selectionEnd};else e:{o=(o=i.ownerDocument)&&o.defaultView||window;var c=o.getSelection&&o.getSelection();if(c&&c.rangeCount!==0){o=c.anchorNode;var m=c.anchorOffset,f=c.focusNode;c=c.focusOffset;try{o.nodeType,f.nodeType}catch{o=null;break e}var j=0,S=-1,O=-1,G=0,Z=0,ae=i,U=null;t:for(;;){for(var $;ae!==o||m!==0&&ae.nodeType!==3||(S=j+m),ae!==f||c!==0&&ae.nodeType!==3||(O=j+c),ae.nodeType===3&&(j+=ae.nodeValue.length),($=ae.firstChild)!==null;)U=ae,ae=$;for(;;){if(ae===i)break t;if(U===o&&++G===m&&(S=j),U===f&&++Z===c&&(O=j),($=ae.nextSibling)!==null)break;ae=U,U=ae.parentNode}ae=$}o=S===-1||O===-1?null:{start:S,end:O}}else o=null}o=o||{start:0,end:0}}else o=null;for(dh={focusedElem:i,selectionRange:o},cd=!1,Tt=n;Tt!==null;)if(n=Tt,i=n.child,(n.subtreeFlags&1024)!==0&&i!==null)i.return=n,Tt=i;else for(;Tt!==null;){switch(n=Tt,f=n.alternate,i=n.flags,n.tag){case 0:break;case 11:case 15:break;case 1:if((i&1024)!==0&&f!==null){i=void 0,o=n,m=f.memoizedProps,f=f.memoizedState,c=o.stateNode;try{var Ae=ar(o.type,m,o.elementType===o.type);i=c.getSnapshotBeforeUpdate(Ae,f),c.__reactInternalSnapshotBeforeUpdate=i}catch(we){tt(o,o.return,we)}}break;case 3:if((i&1024)!==0){if(i=n.stateNode.containerInfo,o=i.nodeType,o===9)ph(i);else if(o===1)switch(i.nodeName){case"HEAD":case"HTML":case"BODY":ph(i);break;default:i.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((i&1024)!==0)throw Error(s(163))}if(i=n.sibling,i!==null){i.return=n.return,Tt=i;break}Tt=n.return}}function Rv(i,n,o){var c=o.flags;switch(o.tag){case 0:case 11:case 15:dn(i,o),c&4&&zo(5,o);break;case 1:if(dn(i,o),c&4)if(i=o.stateNode,n===null)try{i.componentDidMount()}catch(j){tt(o,o.return,j)}else{var m=ar(o.type,n.memoizedProps);n=n.memoizedState;try{i.componentDidUpdate(m,n,i.__reactInternalSnapshotBeforeUpdate)}catch(j){tt(o,o.return,j)}}c&64&&Sv(o),c&512&&qo(o,o.return);break;case 3:if(dn(i,o),c&64&&(i=o.updateQueue,i!==null)){if(n=null,o.child!==null)switch(o.child.tag){case 27:case 5:n=o.child.stateNode;break;case 1:n=o.child.stateNode}try{pb(i,n)}catch(j){tt(o,o.return,j)}}break;case 27:n===null&&c&4&&Tv(o);case 26:case 5:dn(i,o),n===null&&c&4&&Cv(o),c&512&&qo(o,o.return);break;case 12:dn(i,o);break;case 13:dn(i,o),c&4&&Dv(i,o),c&64&&(i=o.memoizedState,i!==null&&(i=i.dehydrated,i!==null&&(o=$5.bind(null,o),uI(i,o))));break;case 22:if(c=o.memoizedState!==null||Li,!c){n=n!==null&&n.memoizedState!==null||gt,m=Li;var f=gt;Li=c,(gt=n)&&!f?un(i,o,(o.subtreeFlags&8772)!==0):dn(i,o),Li=m,gt=f}break;case 30:break;default:dn(i,o)}}function Pv(i){var n=i.alternate;n!==null&&(i.alternate=null,Pv(n)),i.child=null,i.deletions=null,i.sibling=null,i.tag===5&&(n=i.stateNode,n!==null&&ym(n)),i.stateNode=null,i.return=null,i.dependencies=null,i.memoizedProps=null,i.memoizedState=null,i.pendingProps=null,i.stateNode=null,i.updateQueue=null}var rt=null,aa=!1;function Vi(i,n,o){for(o=o.child;o!==null;)Ov(i,n,o),o=o.sibling}function Ov(i,n,o){if(da&&typeof da.onCommitFiberUnmount=="function")try{da.onCommitFiberUnmount(so,o)}catch{}switch(o.tag){case 26:gt||si(o,n),Vi(i,n,o),o.memoizedState?o.memoizedState.count--:o.stateNode&&(o=o.stateNode,o.parentNode.removeChild(o));break;case 27:gt||si(o,n);var c=rt,m=aa;xn(o.type)&&(rt=o.stateNode,aa=!1),Vi(i,n,o),Ko(o.stateNode),rt=c,aa=m;break;case 5:gt||si(o,n);case 6:if(c=rt,m=aa,rt=null,Vi(i,n,o),rt=c,aa=m,rt!==null)if(aa)try{(rt.nodeType===9?rt.body:rt.nodeName==="HTML"?rt.ownerDocument.body:rt).removeChild(o.stateNode)}catch(f){tt(o,n,f)}else try{rt.removeChild(o.stateNode)}catch(f){tt(o,n,f)}break;case 18:rt!==null&&(aa?(i=rt,j0(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,o.stateNode),il(i)):j0(rt,o.stateNode));break;case 4:c=rt,m=aa,rt=o.stateNode.containerInfo,aa=!0,Vi(i,n,o),rt=c,aa=m;break;case 0:case 11:case 14:case 15:gt||cn(2,o,n),gt||cn(4,o,n),Vi(i,n,o);break;case 1:gt||(si(o,n),c=o.stateNode,typeof c.componentWillUnmount=="function"&&Iv(o,n,c)),Vi(i,n,o);break;case 21:Vi(i,n,o);break;case 22:gt=(c=gt)||o.memoizedState!==null,Vi(i,n,o),gt=c;break;default:Vi(i,n,o)}}function Dv(i,n){if(n.memoizedState===null&&(i=n.alternate,i!==null&&(i=i.memoizedState,i!==null&&(i=i.dehydrated,i!==null))))try{il(i)}catch(o){tt(n,n.return,o)}}function z5(i){switch(i.tag){case 13:case 19:var n=i.stateNode;return n===null&&(n=i.stateNode=new Ev),n;case 22:return i=i.stateNode,n=i._retryCache,n===null&&(n=i._retryCache=new Ev),n;default:throw Error(s(435,i.tag))}}function qp(i,n){var o=z5(i);n.forEach(function(c){var m=W5.bind(null,i,c);o.has(c)||(o.add(c),c.then(m,m))})}function ha(i,n){var o=n.deletions;if(o!==null)for(var c=0;c<o.length;c++){var m=o[c],f=i,j=n,S=j;e:for(;S!==null;){switch(S.tag){case 27:if(xn(S.type)){rt=S.stateNode,aa=!1;break e}break;case 5:rt=S.stateNode,aa=!1;break e;case 3:case 4:rt=S.stateNode.containerInfo,aa=!0;break e}S=S.return}if(rt===null)throw Error(s(160));Ov(f,j,m),rt=null,aa=!1,f=m.alternate,f!==null&&(f.return=null),m.return=null}if(n.subtreeFlags&13878)for(n=n.child;n!==null;)Lv(n,i),n=n.sibling}var Va=null;function Lv(i,n){var o=i.alternate,c=i.flags;switch(i.tag){case 0:case 11:case 14:case 15:ha(n,i),fa(i),c&4&&(cn(3,i,i.return),zo(3,i),cn(5,i,i.return));break;case 1:ha(n,i),fa(i),c&512&&(gt||o===null||si(o,o.return)),c&64&&Li&&(i=i.updateQueue,i!==null&&(c=i.callbacks,c!==null&&(o=i.shared.hiddenCallbacks,i.shared.hiddenCallbacks=o===null?c:o.concat(c))));break;case 26:var m=Va;if(ha(n,i),fa(i),c&512&&(gt||o===null||si(o,o.return)),c&4){var f=o!==null?o.memoizedState:null;if(c=i.memoizedState,o===null)if(c===null)if(i.stateNode===null){e:{c=i.type,o=i.memoizedProps,m=m.ownerDocument||m;t:switch(c){case"title":f=m.getElementsByTagName("title")[0],(!f||f[co]||f[zt]||f.namespaceURI==="http://www.w3.org/2000/svg"||f.hasAttribute("itemprop"))&&(f=m.createElement(c),m.head.insertBefore(f,m.querySelector("head > title"))),Vt(f,c,o),f[zt]=i,Ct(f),c=f;break e;case"link":var j=T0("link","href",m).get(c+(o.href||""));if(j){for(var S=0;S<j.length;S++)if(f=j[S],f.getAttribute("href")===(o.href==null||o.href===""?null:o.href)&&f.getAttribute("rel")===(o.rel==null?null:o.rel)&&f.getAttribute("title")===(o.title==null?null:o.title)&&f.getAttribute("crossorigin")===(o.crossOrigin==null?null:o.crossOrigin)){j.splice(S,1);break t}}f=m.createElement(c),Vt(f,c,o),m.head.appendChild(f);break;case"meta":if(j=T0("meta","content",m).get(c+(o.content||""))){for(S=0;S<j.length;S++)if(f=j[S],f.getAttribute("content")===(o.content==null?null:""+o.content)&&f.getAttribute("name")===(o.name==null?null:o.name)&&f.getAttribute("property")===(o.property==null?null:o.property)&&f.getAttribute("http-equiv")===(o.httpEquiv==null?null:o.httpEquiv)&&f.getAttribute("charset")===(o.charSet==null?null:o.charSet)){j.splice(S,1);break t}}f=m.createElement(c),Vt(f,c,o),m.head.appendChild(f);break;default:throw Error(s(468,c))}f[zt]=i,Ct(f),c=f}i.stateNode=c}else E0(m,i.type,i.stateNode);else i.stateNode=M0(m,c,i.memoizedProps);else f!==c?(f===null?o.stateNode!==null&&(o=o.stateNode,o.parentNode.removeChild(o)):f.count--,c===null?E0(m,i.type,i.stateNode):M0(m,c,i.memoizedProps)):c===null&&i.stateNode!==null&&Lp(i,i.memoizedProps,o.memoizedProps)}break;case 27:ha(n,i),fa(i),c&512&&(gt||o===null||si(o,o.return)),o!==null&&c&4&&Lp(i,i.memoizedProps,o.memoizedProps);break;case 5:if(ha(n,i),fa(i),c&512&&(gt||o===null||si(o,o.return)),i.flags&32){m=i.stateNode;try{zr(m,"")}catch($){tt(i,i.return,$)}}c&4&&i.stateNode!=null&&(m=i.memoizedProps,Lp(i,m,o!==null?o.memoizedProps:m)),c&1024&&(zp=!0);break;case 6:if(ha(n,i),fa(i),c&4){if(i.stateNode===null)throw Error(s(162));c=i.memoizedProps,o=i.stateNode;try{o.nodeValue=c}catch($){tt(i,i.return,$)}}break;case 3:if(sd=null,m=Va,Va=nd(n.containerInfo),ha(n,i),Va=m,fa(i),c&4&&o!==null&&o.memoizedState.isDehydrated)try{il(n.containerInfo)}catch($){tt(i,i.return,$)}zp&&(zp=!1,Vv(i));break;case 4:c=Va,Va=nd(i.stateNode.containerInfo),ha(n,i),fa(i),Va=c;break;case 12:ha(n,i),fa(i);break;case 13:ha(n,i),fa(i),i.child.flags&8192&&i.memoizedState!==null!=(o!==null&&o.memoizedState!==null)&&(Xp=ii()),c&4&&(c=i.updateQueue,c!==null&&(i.updateQueue=null,qp(i,c)));break;case 22:m=i.memoizedState!==null;var O=o!==null&&o.memoizedState!==null,G=Li,Z=gt;if(Li=G||m,gt=Z||O,ha(n,i),gt=Z,Li=G,fa(i),c&8192)e:for(n=i.stateNode,n._visibility=m?n._visibility&-2:n._visibility|1,m&&(o===null||O||Li||gt||ir(i)),o=null,n=i;;){if(n.tag===5||n.tag===26){if(o===null){O=o=n;try{if(f=O.stateNode,m)j=f.style,typeof j.setProperty=="function"?j.setProperty("display","none","important"):j.display="none";else{S=O.stateNode;var ae=O.memoizedProps.style,U=ae!=null&&ae.hasOwnProperty("display")?ae.display:null;S.style.display=U==null||typeof U=="boolean"?"":(""+U).trim()}}catch($){tt(O,O.return,$)}}}else if(n.tag===6){if(o===null){O=n;try{O.stateNode.nodeValue=m?"":O.memoizedProps}catch($){tt(O,O.return,$)}}}else if((n.tag!==22&&n.tag!==23||n.memoizedState===null||n===i)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===i)break e;for(;n.sibling===null;){if(n.return===null||n.return===i)break e;o===n&&(o=null),n=n.return}o===n&&(o=null),n.sibling.return=n.return,n=n.sibling}c&4&&(c=i.updateQueue,c!==null&&(o=c.retryQueue,o!==null&&(c.retryQueue=null,qp(i,o))));break;case 19:ha(n,i),fa(i),c&4&&(c=i.updateQueue,c!==null&&(i.updateQueue=null,qp(i,c)));break;case 30:break;case 21:break;default:ha(n,i),fa(i)}}function fa(i){var n=i.flags;if(n&2){try{for(var o,c=i.return;c!==null;){if(Mv(c)){o=c;break}c=c.return}if(o==null)throw Error(s(160));switch(o.tag){case 27:var m=o.stateNode,f=Vp(i);Uc(i,f,m);break;case 5:var j=o.stateNode;o.flags&32&&(zr(j,""),o.flags&=-33);var S=Vp(i);Uc(i,S,j);break;case 3:case 4:var O=o.stateNode.containerInfo,G=Vp(i);_p(i,G,O);break;default:throw Error(s(161))}}catch(Z){tt(i,i.return,Z)}i.flags&=-3}n&4096&&(i.flags&=-4097)}function Vv(i){if(i.subtreeFlags&1024)for(i=i.child;i!==null;){var n=i;Vv(n),n.tag===5&&n.flags&1024&&n.stateNode.reset(),i=i.sibling}}function dn(i,n){if(n.subtreeFlags&8772)for(n=n.child;n!==null;)Rv(i,n.alternate,n),n=n.sibling}function ir(i){for(i=i.child;i!==null;){var n=i;switch(n.tag){case 0:case 11:case 14:case 15:cn(4,n,n.return),ir(n);break;case 1:si(n,n.return);var o=n.stateNode;typeof o.componentWillUnmount=="function"&&Iv(n,n.return,o),ir(n);break;case 27:Ko(n.stateNode);case 26:case 5:si(n,n.return),ir(n);break;case 22:n.memoizedState===null&&ir(n);break;case 30:ir(n);break;default:ir(n)}i=i.sibling}}function un(i,n,o){for(o=o&&(n.subtreeFlags&8772)!==0,n=n.child;n!==null;){var c=n.alternate,m=i,f=n,j=f.flags;switch(f.tag){case 0:case 11:case 15:un(m,f,o),zo(4,f);break;case 1:if(un(m,f,o),c=f,m=c.stateNode,typeof m.componentDidMount=="function")try{m.componentDidMount()}catch(G){tt(c,c.return,G)}if(c=f,m=c.updateQueue,m!==null){var S=c.stateNode;try{var O=m.shared.hiddenCallbacks;if(O!==null)for(m.shared.hiddenCallbacks=null,m=0;m<O.length;m++)mb(O[m],S)}catch(G){tt(c,c.return,G)}}o&&j&64&&Sv(f),qo(f,f.return);break;case 27:Tv(f);case 26:case 5:un(m,f,o),o&&c===null&&j&4&&Cv(f),qo(f,f.return);break;case 12:un(m,f,o);break;case 13:un(m,f,o),o&&j&4&&Dv(m,f);break;case 22:f.memoizedState===null&&un(m,f,o),qo(f,f.return);break;case 30:break;default:un(m,f,o)}n=n.sibling}}function Fp(i,n){var o=null;i!==null&&i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(o=i.memoizedState.cachePool.pool),i=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(i=n.memoizedState.cachePool.pool),i!==o&&(i!=null&&i.refCount++,o!=null&&ko(o))}function Bp(i,n){i=null,n.alternate!==null&&(i=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==i&&(n.refCount++,i!=null&&ko(i))}function oi(i,n,o,c){if(n.subtreeFlags&10256)for(n=n.child;n!==null;)_v(i,n,o,c),n=n.sibling}function _v(i,n,o,c){var m=n.flags;switch(n.tag){case 0:case 11:case 15:oi(i,n,o,c),m&2048&&zo(9,n);break;case 1:oi(i,n,o,c);break;case 3:oi(i,n,o,c),m&2048&&(i=null,n.alternate!==null&&(i=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==i&&(n.refCount++,i!=null&&ko(i)));break;case 12:if(m&2048){oi(i,n,o,c),i=n.stateNode;try{var f=n.memoizedProps,j=f.id,S=f.onPostCommit;typeof S=="function"&&S(j,n.alternate===null?"mount":"update",i.passiveEffectDuration,-0)}catch(O){tt(n,n.return,O)}}else oi(i,n,o,c);break;case 13:oi(i,n,o,c);break;case 23:break;case 22:f=n.stateNode,j=n.alternate,n.memoizedState!==null?f._visibility&2?oi(i,n,o,c):Fo(i,n):f._visibility&2?oi(i,n,o,c):(f._visibility|=2,ns(i,n,o,c,(n.subtreeFlags&10256)!==0)),m&2048&&Fp(j,n);break;case 24:oi(i,n,o,c),m&2048&&Bp(n.alternate,n);break;default:oi(i,n,o,c)}}function ns(i,n,o,c,m){for(m=m&&(n.subtreeFlags&10256)!==0,n=n.child;n!==null;){var f=i,j=n,S=o,O=c,G=j.flags;switch(j.tag){case 0:case 11:case 15:ns(f,j,S,O,m),zo(8,j);break;case 23:break;case 22:var Z=j.stateNode;j.memoizedState!==null?Z._visibility&2?ns(f,j,S,O,m):Fo(f,j):(Z._visibility|=2,ns(f,j,S,O,m)),m&&G&2048&&Fp(j.alternate,j);break;case 24:ns(f,j,S,O,m),m&&G&2048&&Bp(j.alternate,j);break;default:ns(f,j,S,O,m)}n=n.sibling}}function Fo(i,n){if(n.subtreeFlags&10256)for(n=n.child;n!==null;){var o=i,c=n,m=c.flags;switch(c.tag){case 22:Fo(o,c),m&2048&&Fp(c.alternate,c);break;case 24:Fo(o,c),m&2048&&Bp(c.alternate,c);break;default:Fo(o,c)}n=n.sibling}}var Bo=8192;function rs(i){if(i.subtreeFlags&Bo)for(i=i.child;i!==null;)zv(i),i=i.sibling}function zv(i){switch(i.tag){case 26:rs(i),i.flags&Bo&&i.memoizedState!==null&&AI(Va,i.memoizedState,i.memoizedProps);break;case 5:rs(i);break;case 3:case 4:var n=Va;Va=nd(i.stateNode.containerInfo),rs(i),Va=n;break;case 22:i.memoizedState===null&&(n=i.alternate,n!==null&&n.memoizedState!==null?(n=Bo,Bo=16777216,rs(i),Bo=n):rs(i));break;default:rs(i)}}function qv(i){var n=i.alternate;if(n!==null&&(i=n.child,i!==null)){n.child=null;do n=i.sibling,i.sibling=null,i=n;while(i!==null)}}function Ho(i){var n=i.deletions;if((i.flags&16)!==0){if(n!==null)for(var o=0;o<n.length;o++){var c=n[o];Tt=c,Bv(c,i)}qv(i)}if(i.subtreeFlags&10256)for(i=i.child;i!==null;)Fv(i),i=i.sibling}function Fv(i){switch(i.tag){case 0:case 11:case 15:Ho(i),i.flags&2048&&cn(9,i,i.return);break;case 3:Ho(i);break;case 12:Ho(i);break;case 22:var n=i.stateNode;i.memoizedState!==null&&n._visibility&2&&(i.return===null||i.return.tag!==13)?(n._visibility&=-3,Xc(i)):Ho(i);break;default:Ho(i)}}function Xc(i){var n=i.deletions;if((i.flags&16)!==0){if(n!==null)for(var o=0;o<n.length;o++){var c=n[o];Tt=c,Bv(c,i)}qv(i)}for(i=i.child;i!==null;){switch(n=i,n.tag){case 0:case 11:case 15:cn(8,n,n.return),Xc(n);break;case 22:o=n.stateNode,o._visibility&2&&(o._visibility&=-3,Xc(n));break;default:Xc(n)}i=i.sibling}}function Bv(i,n){for(;Tt!==null;){var o=Tt;switch(o.tag){case 0:case 11:case 15:cn(8,o,n);break;case 23:case 22:if(o.memoizedState!==null&&o.memoizedState.cachePool!==null){var c=o.memoizedState.cachePool.pool;c!=null&&c.refCount++}break;case 24:ko(o.memoizedState.cache)}if(c=o.child,c!==null)c.return=o,Tt=c;else e:for(o=i;Tt!==null;){c=Tt;var m=c.sibling,f=c.return;if(Pv(c),c===o){Tt=null;break e}if(m!==null){m.return=f,Tt=m;break e}Tt=f}}}var q5={getCacheForType:function(i){var n=qt(wt),o=n.data.get(i);return o===void 0&&(o=i(),n.data.set(i,o)),o}},F5=typeof WeakMap=="function"?WeakMap:Map,Ye=0,it=null,De=null,Fe=0,Qe=0,ga=null,mn=!1,ss=!1,Hp=!1,_i=0,ut=0,pn=0,nr=0,Gp=0,Ta=0,os=0,Go=null,ia=null,Up=!1,Xp=0,$c=1/0,Wc=null,hn=null,Lt=0,fn=null,ls=null,cs=0,$p=0,Wp=null,Hv=null,Uo=0,Kp=null;function xa(){if((Ye&2)!==0&&Fe!==0)return Fe&-Fe;if(_.T!==null){var i=Yr;return i!==0?i:ah()}return ry()}function Gv(){Ta===0&&(Ta=(Fe&536870912)===0||Ke?ty():536870912);var i=Ma.current;return i!==null&&(i.flags|=32),Ta}function ya(i,n,o){(i===it&&(Qe===2||Qe===9)||i.cancelPendingCommit!==null)&&(ds(i,0),gn(i,Fe,Ta,!1)),lo(i,o),((Ye&2)===0||i!==it)&&(i===it&&((Ye&2)===0&&(nr|=o),ut===4&&gn(i,Fe,Ta,!1)),li(i))}function Uv(i,n,o){if((Ye&6)!==0)throw Error(s(327));var c=!o&&(n&124)===0&&(n&i.expiredLanes)===0||oo(i,n),m=c?G5(i,n):Zp(i,n,!0),f=c;do{if(m===0){ss&&!c&&gn(i,n,0,!1);break}else{if(o=i.current.alternate,f&&!B5(o)){m=Zp(i,n,!1),f=!1;continue}if(m===2){if(f=n,i.errorRecoveryDisabledLanes&f)var j=0;else j=i.pendingLanes&-536870913,j=j!==0?j:j&536870912?536870912:0;if(j!==0){n=j;e:{var S=i;m=Go;var O=S.current.memoizedState.isDehydrated;if(O&&(ds(S,j).flags|=256),j=Zp(S,j,!1),j!==2){if(Hp&&!O){S.errorRecoveryDisabledLanes|=f,nr|=f,m=4;break e}f=ia,ia=m,f!==null&&(ia===null?ia=f:ia.push.apply(ia,f))}m=j}if(f=!1,m!==2)continue}}if(m===1){ds(i,0),gn(i,n,0,!0);break}e:{switch(c=i,f=m,f){case 0:case 1:throw Error(s(345));case 4:if((n&4194048)!==n)break;case 6:gn(c,n,Ta,!mn);break e;case 2:ia=null;break;case 3:case 5:break;default:throw Error(s(329))}if((n&62914560)===n&&(m=Xp+300-ii(),10<m)){if(gn(c,n,Ta,!mn),rc(c,0,!0)!==0)break e;c.timeoutHandle=v0(Xv.bind(null,c,o,ia,Wc,Up,n,Ta,nr,os,mn,f,2,-0,0),m);break e}Xv(c,o,ia,Wc,Up,n,Ta,nr,os,mn,f,0,-0,0)}}break}while(!0);li(i)}function Xv(i,n,o,c,m,f,j,S,O,G,Z,ae,U,$){if(i.timeoutHandle=-1,ae=n.subtreeFlags,(ae&8192||(ae&16785408)===16785408)&&(Zo={stylesheets:null,count:0,unsuspend:NI},zv(n),ae=kI(),ae!==null)){i.cancelPendingCommit=ae(Jv.bind(null,i,n,f,o,c,m,j,S,O,Z,1,U,$)),gn(i,f,j,!G);return}Jv(i,n,f,o,c,m,j,S,O)}function B5(i){for(var n=i;;){var o=n.tag;if((o===0||o===11||o===15)&&n.flags&16384&&(o=n.updateQueue,o!==null&&(o=o.stores,o!==null)))for(var c=0;c<o.length;c++){var m=o[c],f=m.getSnapshot;m=m.value;try{if(!ma(f(),m))return!1}catch{return!1}}if(o=n.child,n.subtreeFlags&16384&&o!==null)o.return=n,n=o;else{if(n===i)break;for(;n.sibling===null;){if(n.return===null||n.return===i)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function gn(i,n,o,c){n&=~Gp,n&=~nr,i.suspendedLanes|=n,i.pingedLanes&=~n,c&&(i.warmLanes|=n),c=i.expirationTimes;for(var m=n;0<m;){var f=31-ua(m),j=1<<f;c[f]=-1,m&=~j}o!==0&&iy(i,o,n)}function Kc(){return(Ye&6)===0?(Xo(0),!1):!0}function Yp(){if(De!==null){if(Qe===0)var i=De.return;else i=De,Ti=Zn=null,pp(i),as=null,Lo=0,i=De;for(;i!==null;)kv(i.alternate,i),i=i.return;De=null}}function ds(i,n){var o=i.timeoutHandle;o!==-1&&(i.timeoutHandle=-1,sI(o)),o=i.cancelPendingCommit,o!==null&&(i.cancelPendingCommit=null,o()),Yp(),it=i,De=o=Ii(i.current,null),Fe=n,Qe=0,ga=null,mn=!1,ss=oo(i,n),Hp=!1,os=Ta=Gp=nr=pn=ut=0,ia=Go=null,Up=!1,(n&8)!==0&&(n|=n&32);var c=i.entangledLanes;if(c!==0)for(i=i.entanglements,c&=n;0<c;){var m=31-ua(c),f=1<<m;n|=i[m],c&=~f}return _i=n,xc(),o}function $v(i,n){Re=null,_.H=Lc,n===Io||n===Sc?(n=db(),Qe=3):n===ob?(n=db(),Qe=4):Qe=n===uv?8:n!==null&&typeof n=="object"&&typeof n.then=="function"?6:1,ga=n,De===null&&(ut=1,Fc(i,ka(n,i.current)))}function Wv(){var i=_.H;return _.H=Lc,i===null?Lc:i}function Kv(){var i=_.A;return _.A=q5,i}function Qp(){ut=4,mn||(Fe&4194048)!==Fe&&Ma.current!==null||(ss=!0),(pn&134217727)===0&&(nr&134217727)===0||it===null||gn(it,Fe,Ta,!1)}function Zp(i,n,o){var c=Ye;Ye|=2;var m=Wv(),f=Kv();(it!==i||Fe!==n)&&(Wc=null,ds(i,n)),n=!1;var j=ut;e:do try{if(Qe!==0&&De!==null){var S=De,O=ga;switch(Qe){case 8:Yp(),j=6;break e;case 3:case 2:case 9:case 6:Ma.current===null&&(n=!0);var G=Qe;if(Qe=0,ga=null,us(i,S,O,G),o&&ss){j=0;break e}break;default:G=Qe,Qe=0,ga=null,us(i,S,O,G)}}H5(),j=ut;break}catch(Z){$v(i,Z)}while(!0);return n&&i.shellSuspendCounter++,Ti=Zn=null,Ye=c,_.H=m,_.A=f,De===null&&(it=null,Fe=0,xc()),j}function H5(){for(;De!==null;)Yv(De)}function G5(i,n){var o=Ye;Ye|=2;var c=Wv(),m=Kv();it!==i||Fe!==n?(Wc=null,$c=ii()+500,ds(i,n)):ss=oo(i,n);e:do try{if(Qe!==0&&De!==null){n=De;var f=ga;t:switch(Qe){case 1:Qe=0,ga=null,us(i,n,f,1);break;case 2:case 9:if(lb(f)){Qe=0,ga=null,Qv(n);break}n=function(){Qe!==2&&Qe!==9||it!==i||(Qe=7),li(i)},f.then(n,n);break e;case 3:Qe=7;break e;case 4:Qe=5;break e;case 7:lb(f)?(Qe=0,ga=null,Qv(n)):(Qe=0,ga=null,us(i,n,f,7));break;case 5:var j=null;switch(De.tag){case 26:j=De.memoizedState;case 5:case 27:var S=De;if(!j||R0(j)){Qe=0,ga=null;var O=S.sibling;if(O!==null)De=O;else{var G=S.return;G!==null?(De=G,Yc(G)):De=null}break t}}Qe=0,ga=null,us(i,n,f,5);break;case 6:Qe=0,ga=null,us(i,n,f,6);break;case 8:Yp(),ut=6;break e;default:throw Error(s(462))}}U5();break}catch(Z){$v(i,Z)}while(!0);return Ti=Zn=null,_.H=c,_.A=m,Ye=o,De!==null?0:(it=null,Fe=0,xc(),ut)}function U5(){for(;De!==null&&!pS();)Yv(De)}function Yv(i){var n=Nv(i.alternate,i,_i);i.memoizedProps=i.pendingProps,n===null?Yc(i):De=n}function Qv(i){var n=i,o=n.alternate;switch(n.tag){case 15:case 0:n=xv(o,n,n.pendingProps,n.type,void 0,Fe);break;case 11:n=xv(o,n,n.pendingProps,n.type.render,n.ref,Fe);break;case 5:pp(n);default:kv(o,n),n=De=Zy(n,_i),n=Nv(o,n,_i)}i.memoizedProps=i.pendingProps,n===null?Yc(i):De=n}function us(i,n,o,c){Ti=Zn=null,pp(n),as=null,Lo=0;var m=n.return;try{if(O5(i,m,n,o,Fe)){ut=1,Fc(i,ka(o,i.current)),De=null;return}}catch(f){if(m!==null)throw De=m,f;ut=1,Fc(i,ka(o,i.current)),De=null;return}n.flags&32768?(Ke||c===1?i=!0:ss||(Fe&536870912)!==0?i=!1:(mn=i=!0,(c===2||c===9||c===3||c===6)&&(c=Ma.current,c!==null&&c.tag===13&&(c.flags|=16384))),Zv(n,i)):Yc(n)}function Yc(i){var n=i;do{if((n.flags&32768)!==0){Zv(n,mn);return}i=n.return;var o=L5(n.alternate,n,_i);if(o!==null){De=o;return}if(n=n.sibling,n!==null){De=n;return}De=n=i}while(n!==null);ut===0&&(ut=5)}function Zv(i,n){do{var o=V5(i.alternate,i);if(o!==null){o.flags&=32767,De=o;return}if(o=i.return,o!==null&&(o.flags|=32768,o.subtreeFlags=0,o.deletions=null),!n&&(i=i.sibling,i!==null)){De=i;return}De=i=o}while(i!==null);ut=6,De=null}function Jv(i,n,o,c,m,f,j,S,O){i.cancelPendingCommit=null;do Qc();while(Lt!==0);if((Ye&6)!==0)throw Error(s(327));if(n!==null){if(n===i.current)throw Error(s(177));if(f=n.lanes|n.childLanes,f|=Bm,NS(i,o,f,j,S,O),i===it&&(De=it=null,Fe=0),ls=n,fn=i,cs=o,$p=f,Wp=m,Hv=c,(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?(i.callbackNode=null,i.callbackPriority=0,K5(ac,function(){return n0(),null})):(i.callbackNode=null,i.callbackPriority=0),c=(n.flags&13878)!==0,(n.subtreeFlags&13878)!==0||c){c=_.T,_.T=null,m=ee.p,ee.p=2,j=Ye,Ye|=4;try{_5(i,n,o)}finally{Ye=j,ee.p=m,_.T=c}}Lt=1,e0(),t0(),a0()}}function e0(){if(Lt===1){Lt=0;var i=fn,n=ls,o=(n.flags&13878)!==0;if((n.subtreeFlags&13878)!==0||o){o=_.T,_.T=null;var c=ee.p;ee.p=2;var m=Ye;Ye|=4;try{Lv(n,i);var f=dh,j=By(i.containerInfo),S=f.focusedElem,O=f.selectionRange;if(j!==S&&S&&S.ownerDocument&&Fy(S.ownerDocument.documentElement,S)){if(O!==null&&Vm(S)){var G=O.start,Z=O.end;if(Z===void 0&&(Z=G),"selectionStart"in S)S.selectionStart=G,S.selectionEnd=Math.min(Z,S.value.length);else{var ae=S.ownerDocument||document,U=ae&&ae.defaultView||window;if(U.getSelection){var $=U.getSelection(),Ae=S.textContent.length,we=Math.min(O.start,Ae),et=O.end===void 0?we:Math.min(O.end,Ae);!$.extend&&we>et&&(j=et,et=we,we=j);var q=qy(S,we),L=qy(S,et);if(q&&L&&($.rangeCount!==1||$.anchorNode!==q.node||$.anchorOffset!==q.offset||$.focusNode!==L.node||$.focusOffset!==L.offset)){var H=ae.createRange();H.setStart(q.node,q.offset),$.removeAllRanges(),we>et?($.addRange(H),$.extend(L.node,L.offset)):(H.setEnd(L.node,L.offset),$.addRange(H))}}}}for(ae=[],$=S;$=$.parentNode;)$.nodeType===1&&ae.push({element:$,left:$.scrollLeft,top:$.scrollTop});for(typeof S.focus=="function"&&S.focus(),S=0;S<ae.length;S++){var J=ae[S];J.element.scrollLeft=J.left,J.element.scrollTop=J.top}}cd=!!ch,dh=ch=null}finally{Ye=m,ee.p=c,_.T=o}}i.current=n,Lt=2}}function t0(){if(Lt===2){Lt=0;var i=fn,n=ls,o=(n.flags&8772)!==0;if((n.subtreeFlags&8772)!==0||o){o=_.T,_.T=null;var c=ee.p;ee.p=2;var m=Ye;Ye|=4;try{Rv(i,n.alternate,n)}finally{Ye=m,ee.p=c,_.T=o}}Lt=3}}function a0(){if(Lt===4||Lt===3){Lt=0,hS();var i=fn,n=ls,o=cs,c=Hv;(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?Lt=5:(Lt=0,ls=fn=null,i0(i,i.pendingLanes));var m=i.pendingLanes;if(m===0&&(hn=null),gm(o),n=n.stateNode,da&&typeof da.onCommitFiberRoot=="function")try{da.onCommitFiberRoot(so,n,void 0,(n.current.flags&128)===128)}catch{}if(c!==null){n=_.T,m=ee.p,ee.p=2,_.T=null;try{for(var f=i.onRecoverableError,j=0;j<c.length;j++){var S=c[j];f(S.value,{componentStack:S.stack})}}finally{_.T=n,ee.p=m}}(cs&3)!==0&&Qc(),li(i),m=i.pendingLanes,(o&4194090)!==0&&(m&42)!==0?i===Kp?Uo++:(Uo=0,Kp=i):Uo=0,Xo(0)}}function i0(i,n){(i.pooledCacheLanes&=n)===0&&(n=i.pooledCache,n!=null&&(i.pooledCache=null,ko(n)))}function Qc(i){return e0(),t0(),a0(),n0()}function n0(){if(Lt!==5)return!1;var i=fn,n=$p;$p=0;var o=gm(cs),c=_.T,m=ee.p;try{ee.p=32>o?32:o,_.T=null,o=Wp,Wp=null;var f=fn,j=cs;if(Lt=0,ls=fn=null,cs=0,(Ye&6)!==0)throw Error(s(331));var S=Ye;if(Ye|=4,Fv(f.current),_v(f,f.current,j,o),Ye=S,Xo(0,!1),da&&typeof da.onPostCommitFiberRoot=="function")try{da.onPostCommitFiberRoot(so,f)}catch{}return!0}finally{ee.p=m,_.T=c,i0(i,n)}}function r0(i,n,o){n=ka(o,n),n=Ip(i.stateNode,n,2),i=rn(i,n,2),i!==null&&(lo(i,2),li(i))}function tt(i,n,o){if(i.tag===3)r0(i,i,o);else for(;n!==null;){if(n.tag===3){r0(n,i,o);break}else if(n.tag===1){var c=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof c.componentDidCatch=="function"&&(hn===null||!hn.has(c))){i=ka(o,i),o=cv(2),c=rn(n,o,2),c!==null&&(dv(o,c,n,i),lo(c,2),li(c));break}}n=n.return}}function Jp(i,n,o){var c=i.pingCache;if(c===null){c=i.pingCache=new F5;var m=new Set;c.set(n,m)}else m=c.get(n),m===void 0&&(m=new Set,c.set(n,m));m.has(o)||(Hp=!0,m.add(o),i=X5.bind(null,i,n,o),n.then(i,i))}function X5(i,n,o){var c=i.pingCache;c!==null&&c.delete(n),i.pingedLanes|=i.suspendedLanes&o,i.warmLanes&=~o,it===i&&(Fe&o)===o&&(ut===4||ut===3&&(Fe&62914560)===Fe&&300>ii()-Xp?(Ye&2)===0&&ds(i,0):Gp|=o,os===Fe&&(os=0)),li(i)}function s0(i,n){n===0&&(n=ay()),i=Xr(i,n),i!==null&&(lo(i,n),li(i))}function $5(i){var n=i.memoizedState,o=0;n!==null&&(o=n.retryLane),s0(i,o)}function W5(i,n){var o=0;switch(i.tag){case 13:var c=i.stateNode,m=i.memoizedState;m!==null&&(o=m.retryLane);break;case 19:c=i.stateNode;break;case 22:c=i.stateNode._retryCache;break;default:throw Error(s(314))}c!==null&&c.delete(n),s0(i,o)}function K5(i,n){return Ai(i,n)}var Zc=null,ms=null,eh=!1,Jc=!1,th=!1,rr=0;function li(i){i!==ms&&i.next===null&&(ms===null?Zc=ms=i:ms=ms.next=i),Jc=!0,eh||(eh=!0,Q5())}function Xo(i,n){if(!th&&Jc){th=!0;do for(var o=!1,c=Zc;c!==null;){if(i!==0){var m=c.pendingLanes;if(m===0)var f=0;else{var j=c.suspendedLanes,S=c.pingedLanes;f=(1<<31-ua(42|i)+1)-1,f&=m&~(j&~S),f=f&201326741?f&201326741|1:f?f|2:0}f!==0&&(o=!0,d0(c,f))}else f=Fe,f=rc(c,c===it?f:0,c.cancelPendingCommit!==null||c.timeoutHandle!==-1),(f&3)===0||oo(c,f)||(o=!0,d0(c,f));c=c.next}while(o);th=!1}}function Y5(){o0()}function o0(){Jc=eh=!1;var i=0;rr!==0&&(rI()&&(i=rr),rr=0);for(var n=ii(),o=null,c=Zc;c!==null;){var m=c.next,f=l0(c,n);f===0?(c.next=null,o===null?Zc=m:o.next=m,m===null&&(ms=o)):(o=c,(i!==0||(f&3)!==0)&&(Jc=!0)),c=m}Xo(i)}function l0(i,n){for(var o=i.suspendedLanes,c=i.pingedLanes,m=i.expirationTimes,f=i.pendingLanes&-62914561;0<f;){var j=31-ua(f),S=1<<j,O=m[j];O===-1?((S&o)===0||(S&c)!==0)&&(m[j]=jS(S,n)):O<=n&&(i.expiredLanes|=S),f&=~S}if(n=it,o=Fe,o=rc(i,i===n?o:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),c=i.callbackNode,o===0||i===n&&(Qe===2||Qe===9)||i.cancelPendingCommit!==null)return c!==null&&c!==null&&ca(c),i.callbackNode=null,i.callbackPriority=0;if((o&3)===0||oo(i,o)){if(n=o&-o,n===i.callbackPriority)return n;switch(c!==null&&ca(c),gm(o)){case 2:case 8:o=Jx;break;case 32:o=ac;break;case 268435456:o=ey;break;default:o=ac}return c=c0.bind(null,i),o=Ai(o,c),i.callbackPriority=n,i.callbackNode=o,n}return c!==null&&c!==null&&ca(c),i.callbackPriority=2,i.callbackNode=null,2}function c0(i,n){if(Lt!==0&&Lt!==5)return i.callbackNode=null,i.callbackPriority=0,null;var o=i.callbackNode;if(Qc()&&i.callbackNode!==o)return null;var c=Fe;return c=rc(i,i===it?c:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),c===0?null:(Uv(i,c,n),l0(i,ii()),i.callbackNode!=null&&i.callbackNode===o?c0.bind(null,i):null)}function d0(i,n){if(Qc())return null;Uv(i,n,!0)}function Q5(){oI(function(){(Ye&6)!==0?Ai(Zx,Y5):o0()})}function ah(){return rr===0&&(rr=ty()),rr}function u0(i){return i==null||typeof i=="symbol"||typeof i=="boolean"?null:typeof i=="function"?i:dc(""+i)}function m0(i,n){var o=n.ownerDocument.createElement("input");return o.name=n.name,o.value=n.value,i.id&&o.setAttribute("form",i.id),n.parentNode.insertBefore(o,n),i=new FormData(i),o.parentNode.removeChild(o),i}function Z5(i,n,o,c,m){if(n==="submit"&&o&&o.stateNode===m){var f=u0((m[Jt]||null).action),j=c.submitter;j&&(n=(n=j[Jt]||null)?u0(n.formAction):j.getAttribute("formAction"),n!==null&&(f=n,j=null));var S=new hc("action","action",null,c,m);i.push({event:S,listeners:[{instance:null,listener:function(){if(c.defaultPrevented){if(rr!==0){var O=j?m0(m,j):new FormData(m);jp(o,{pending:!0,data:O,method:m.method,action:f},null,O)}}else typeof f=="function"&&(S.preventDefault(),O=j?m0(m,j):new FormData(m),jp(o,{pending:!0,data:O,method:m.method,action:f},f,O))},currentTarget:m}]})}}for(var ih=0;ih<Fm.length;ih++){var nh=Fm[ih],J5=nh.toLowerCase(),eI=nh[0].toUpperCase()+nh.slice(1);La(J5,"on"+eI)}La(Uy,"onAnimationEnd"),La(Xy,"onAnimationIteration"),La($y,"onAnimationStart"),La("dblclick","onDoubleClick"),La("focusin","onFocus"),La("focusout","onBlur"),La(x5,"onTransitionRun"),La(y5,"onTransitionStart"),La(b5,"onTransitionCancel"),La(Wy,"onTransitionEnd"),Lr("onMouseEnter",["mouseout","mouseover"]),Lr("onMouseLeave",["mouseout","mouseover"]),Lr("onPointerEnter",["pointerout","pointerover"]),Lr("onPointerLeave",["pointerout","pointerover"]),Hn("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Hn("onSelect","focusout contextmenu dragend focu
8sin keydown keyup mousedown mouseup selectionchange".split(" ")),Hn("onBeforeInput",["compositionend","keypress","textInput","paste"]),Hn("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Hn("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Hn("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var $o="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),tI=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat($o));function p0(i,n){n=(n&4)!==0;for(var o=0;o<i.length;o++){var c=i[o],m=c.event;c=c.listeners;e:{var f=void 0;if(n)for(var j=c.length-1;0<=j;j--){var S=c[j],O=S.instance,G=S.currentTarget;if(S=S.listener,O!==f&&m.isPropagationStopped())break e;f=S,m.currentTarget=G;try{f(m)}catch(Z){qc(Z)}m.currentTarget=null,f=O}else for(j=0;j<c.length;j++){if(S=c[j],O=S.instance,G=S.currentTarget,S=S.listener,O!==f&&m.isPropagationStopped())break e;f=S,m.currentTarget=G;try{f(m)}catch(Z){qc(Z)}m.currentTarget=null,f=O}}}}function Le(i,n){var o=n[xm];o===void 0&&(o=n[xm]=new Set);var c=i+"__bubble";o.has(c)||(h0(n,i,2,!1),o.add(c))}function rh(i,n,o){var c=0;n&&(c|=4),h0(o,i,c,n)}var ed="_reactListening"+Math.random().toString(36).slice(2);function sh(i){if(!i[ed]){i[ed]=!0,oy.forEach(function(o){o!=="selectionchange"&&(tI.has(o)||rh(o,!1,i),rh(o,!0,i))});var n=i.nodeType===9?i:i.ownerDocument;n===null||n[ed]||(n[ed]=!0,rh("selectionchange",!1,n))}}function h0(i,n,o,c){switch(_0(n)){case 2:var m=CI;break;case 8:m=MI;break;default:m=vh}o=m.bind(null,n,o,i),m=void 0,!Cm||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(m=!0),c?m!==void 0?i.addEventListener(n,o,{capture:!0,passive:m}):i.addEventListener(n,o,!0):m!==void 0?i.addEventListener(n,o,{passive:m}):i.addEventListener(n,o,!1)}function oh(i,n,o,c,m){var f=c;if((n&1)===0&&(n&2)===0&&c!==null)e:for(;;){if(c===null)return;var j=c.tag;if(j===3||j===4){var S=c.stateNode.containerInfo;if(S===m)break;if(j===4)for(j=c.return;j!==null;){var O=j.tag;if((O===3||O===4)&&j.stateNode.containerInfo===m)return;j=j.return}for(;S!==null;){if(j=Pr(S),j===null)return;if(O=j.tag,O===5||O===6||O===26||O===27){c=f=j;continue e}S=S.parentNode}}c=c.return}wy(function(){var G=f,Z=Sm(o),ae=[];e:{var U=Ky.get(i);if(U!==void 0){var $=hc,Ae=i;switch(i){case"keypress":if(mc(o)===0)break e;case"keydown":case"keyup":$=KS;break;case"focusin":Ae="focus",$=Rm;break;case"focusout":Ae="blur",$=Rm;break;case"beforeblur":case"afterblur":$=Rm;break;case"click":if(o.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":$=Ay;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":$=VS;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":$=ZS;break;case Uy:case Xy:case $y:$=qS;break;case Wy:$=e5;break;case"scroll":case"scrollend":$=DS;break;case"wheel":$=a5;break;case"copy":case"cut":case"paste":$=BS;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":$=Sy;break;case"toggle":case"beforetoggle":$=n5}var we=(n&4)!==0,et=!we&&(i==="scroll"||i==="scrollend"),q=we?U!==null?U+"Capture":null:U;we=[];for(var L=G,H;L!==null;){var J=L;if(H=J.stateNode,J=J.tag,J!==5&&J!==26&&J!==27||H===null||q===null||(J=mo(L,q),J!=null&&we.push(Wo(L,J,H))),et)break;L=L.return}0<we.length&&(U=new $(U,Ae,null,o,Z),ae.push({event:U,listeners:we}))}}if((n&7)===0){e:{if(U=i==="mouseover"||i==="pointerover",$=i==="mouseout"||i==="pointerout",U&&o!==km&&(Ae=o.relatedTarget||o.fromElement)&&(Pr(Ae)||Ae[Rr]))break e;if(($||U)&&(U=Z.window===Z?Z:(U=Z.ownerDocument)?U.defaultView||U.parentWindow:window,$?(Ae=o.relatedTarget||o.toElement,$=G,Ae=Ae?Pr(Ae):null,Ae!==null&&(et=d(Ae),we=Ae.tag,Ae!==et||we!==5&&we!==27&&we!==6)&&(Ae=null)):($=null,Ae=G),$!==Ae)){if(we=Ay,J="onMouseLeave",q="onMouseEnter",L="mouse",(i==="pointerout"||i==="pointerover")&&(we=Sy,J="onPointerLeave",q="onPointerEnter",L="pointer"),et=$==null?U:uo($),H=Ae==null?U:uo(Ae),U=new we(J,L+"leave",$,o,Z),U.target=et,U.relatedTarget=H,J=null,Pr(Z)===G&&(we=new we(q,L+"enter",Ae,o,Z),we.target=H,we.relatedTarget=et,J=we),et=J,$&&Ae)t:{for(we=$,q=Ae,L=0,H=we;H;H=ps(H))L++;for(H=0,J=q;J;J=ps(J))H++;for(;0<L-H;)we=ps(we),L--;for(;0<H-L;)q=ps(q),H--;for(;L--;){if(we===q||q!==null&&we===q.alternate)break t;we=ps(we),q=ps(q)}we=null}else we=null;$!==null&&f0(ae,U,$,we,!1),Ae!==null&&et!==null&&f0(ae,et,Ae,we,!0)}}
vendor: 5,211 bytes, lines 8-9
8e:{if(U=G?uo(G):window,$=U.nodeName&&U.nodeName.toLowerCase(),$==="select"||$==="input"&&U.type==="file")var he=Oy;else if(Ry(U))if(Dy)he=h5;else{he=m5;var Oe=u5}else $=U.nodeName,!$||$.toLowerCase()!=="input"||U.type!=="checkbox"&&U.type!=="radio"?G&&Am(G.elementType)&&(he=Oy):he=p5;if(he&&(he=he(i,G))){Py(ae,he,o,Z);break e}Oe&&Oe(i,U,G),i==="focusout"&&G&&U.type==="number"&&G.memoizedProps.value!=null&&Nm(U,"number",U.value)}switch(Oe=G?uo(G):window,i){case"focusin":(Ry(Oe)||Oe.contentEditable==="true")&&(Hr=Oe,_m=G,vo=null);break;case"focusout":vo=_m=Hr=null;break;case"mousedown":zm=!0;break;case"contextmenu":case"mouseup":case"dragend":zm=!1,Hy(ae,o,Z);break;case"selectionchange":if(g5)break;case"keydown":case"keyup":Hy(ae,o,Z)}var xe;if(Om)e:{switch(i){case"compositionstart":var Ne="onCompositionStart";break e;case"compositionend":Ne="onCompositionEnd";break e;case"compositionupdate":Ne="onCompositionUpdate";break e}Ne=void 0}else Br?Ty(i,o)&&(Ne="onCompositionEnd"):i==="keydown"&&o.keyCode===229&&(Ne="onCompositionStart");Ne&&(Iy&&o.locale!=="ko"&&(Br||Ne!=="onCompositionStart"?Ne==="onCompositionEnd"&&Br&&(xe=jy()):(en=Z,Mm="value"in en?en.value:en.textContent,Br=!0)),Oe=td(G,Ne),0<Oe.length&&(Ne=new ky(Ne,i,null,o,Z),ae.push({event:Ne,listeners:Oe}),xe?Ne.data=xe:(xe=Ey(o),xe!==null&&(Ne.data=xe)))),(xe=s5?o5(i,o):l5(i,o))&&(Ne=td(G,"onBeforeInput"),0<Ne.length&&(Oe=new ky("onBeforeInput","beforeinput",null,o,Z),ae.push({event:Oe,listeners:Ne}),Oe.data=xe)),Z5(ae,i,G,o,Z)}p0(ae,n)})}function Wo(i,n,o){return{instance:i,listener:n,currentTarget:o}}function td(i,n){for(var o=n+"Capture",c=[];i!==null;){var m=i,f=m.stateNode;if(m=m.tag,m!==5&&m!==26&&m!==27||f===null||(m=mo(i,o),m!=null&&c.unshift(Wo(i,m,f)),m=mo(i,n),m!=null&&c.push(Wo(i,m,f))),i.tag===3)return c;i=i.return}return[]}function ps(i){if(i===null)return null;do i=i.return;while(i&&i.tag!==5&&i.tag!==27);return i||null}function f0(i,n,o,c,m){for(var f=n._reactName,j=[];o!==null&&o!==c;){var S=o,O=S.alternate,G=S.stateNode;if(S=S.tag,O!==null&&O===c)break;S!==5&&S!==26&&S!==27||G===null||(O=G,m?(G=mo(o,f),G!=null&&j.unshift(Wo(o,G,O))):m||(G=mo(o,f),G!=null&&j.push(Wo(o,G,O)))),o=o.return}j.length!==0&&i.push({event:n,listeners:j})}var aI=/\r\n?/g,iI=/\u0000|\uFFFD/g;function g0(i){return(typeof i=="string"?i:""+i).replace(aI,`
9`).replace(iI,"")}function x0(i,n){return n=g0(n),g0(i)===n}function ad(){}function Je(i,n,o,c,m,f){switch(o){case"children":typeof c=="string"?n==="body"||n==="textarea"&&c===""||zr(i,c):(typeof c=="number"||typeof c=="bigint")&&n!=="body"&&zr(i,""+c);break;case"className":oc(i,"class",c);break;case"tabIndex":oc(i,"tabindex",c);break;case"dir":case"role":case"viewBox":case"width":case"height":oc(i,o,c);break;case"style":by(i,c,f);break;case"data":if(n!=="object"){oc(i,"data",c);break}case"src":case"href":if(c===""&&(n!=="a"||o!=="href")){i.removeAttribute(o);break}if(c==null||typeof c=="function"||typeof c=="symbol"||typeof c=="boolean"){i.removeAttribute(o);break}c=dc(""+c),i.setAttribute(o,c);break;case"action":case"formAction":if(typeof c=="function"){i.setAttribute(o,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof f=="function"&&(o==="formAction"?(n!=="input"&&Je(i,n,"name",m.name,m,null),Je(i,n,"formEncType",m.formEncType,m,null),Je(i,n,"formMethod",m.formMethod,m,null),Je(i,n,"formTarget",m.formTarget,m,null)):(Je(i,n,"encType",m.encType,m,null),Je(i,n,"method",m.method,m,null),Je(i,n,"target",m.target,m,null)));if(c==null||typeof c=="symbol"||typeof c=="boolean"){i.removeAttribute(o);break}c=dc(""+c),i.setAttribute(o,c);break;case"onClick":c!=null&&(i.onclick=ad);break;case"onScroll":c!=null&&Le("scroll",i);break;case"onScrollEnd":c!=null&&Le("scrollend",i);break;case"dangerouslySetInnerHTML":if(c!=null){if(typeof c!="object"||!("__html"in c))throw Error(s(61));if(o=c.__html,o!=null){if(m.children!=null)throw Error(s(60));i.innerHTML=o}}break;case"multiple":i.multiple=c&&typeof c!="function"&&typeof c!="symbol";break;case"muted":i.muted=c&&typeof c!="function"&&typeof c!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(c==null||typeof c=="function"||typeof c=="boolean"||typeof c=="symbol"){i.removeAttribute("xlink:href");break}o=dc(""+c),i.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",o);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":c!=null&&typeof c!="function"&&typeof c!="symbol"?i.setAttribute(o,""+c):i.removeAttribute(o);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInl
9ine":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":c&&typeof c!="function"&&typeof c!="symbol"?i.setAttribute(o,""):i.removeAttribute(o);break;case"capture":case"download":c===!0?i.setAttribute(o,""):c!==!1&&c!=null&&typeof c!="function"&&typeof c!="symbol"?i.setAttribute(o,c):i.removeAttribute(o);break;case"cols":case"rows":case"size":case"span":c!=null&&typeof c!="function"&&typeof c!="symbol"&&!isNaN(c)&&1<=c?i.setAttribute(o,c):i.removeAttribute(o);break;case"rowSpan":case"start":c==null||typeof c=="function"||typeof c=="symbol"||isNaN(c)?i.removeAttribute(o):i.setAttribute(o,c);break;case"popover":Le("beforetoggle",i),Le("toggle",i),sc(i,"popover",c);break;case"xlinkActuate":ki(i,"http://www.w3.org/1999/xlink","xlink:actuate",c);break;case"xlinkArcrole":ki(i,"http://www.w3.org/1999/xlink","xlink:arcrole",c);break;case"xlinkRole":ki(i,"http://www.w3.org/1999/xlink","xlink:role",c);break;case"xlinkShow":ki(i,"http://www.w3.org/1999/xlink","xlink:show",c);break;case"xlinkTitle":ki(i,"http://www.w3.org/1999/xlink","xlink:title",c);break;case"xlinkType":ki(i,"http://www.w3.org/1999/xlink","xlink:type",c);break;case"xmlBase":ki(i,"http://www.w3.org/XML/1998/namespace","xml:base",c);break;case"xmlLang":ki(i,"http://www.w3.org/XML/1998/namespace","xml:lang",c);break;case"xmlSpace":ki(i,"http://www.w3.org/XML/1998/namespace","xml:space",c);break;case"is":sc(i,"is",c);break;case"innerText":case"textContent":break;default:(!(2<o.length)||o[0]!=="o"&&o[0]!=="O"||o[1]!=="n"&&o[1]!=="N")&&(o=PS.get(o)||o,sc(i,o,c))}}function lh(i,n,o,c,m,f){switch(o){case"style":by(i,c,f);break;case"dangerouslySetInnerHTML":if(c!=null){if(typeof c!="object"||!("__html"in c))throw Error(s(61));if(o=c.__html,o!=null){if(m.children!=null)throw Error(s(60));i.innerHTML=o}}break;case"children":typeof c=="string"?zr(i,c):(typeof c=="number"||typeof c=="bigint")&&zr(i,""+c);break;case"onScroll":c!=null&&Le("scroll",i);break;case"onScrollEnd":c!=null&&Le("scrollend",i);break;case"onClick":c!=null&&(i.onclick=ad);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!ly.hasOwnProperty(o))e:{if(o[0]==="o"&&o[1]==="n"&&(m=o.endsWith("Capture"),n=o.slice(2,m?o.length-7:void 0),f=i[Jt]||null,f=f!=null?f[o]:null,typeof f=="function"&&i.removeEventListener(n,f,m),typeof c=="function")){typeof f!="function"&&f!==null&&(o in i?i[o]=null:i.hasAttribute(o)&&i.removeAttribute(o)),i.addEventListener(n,c,m);break e}o in i?i[o]=c:c===!0?i.setAttribute(o,""):sc(i,o,c)}}}function Vt(i,n,o){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Le("error",i),Le("load",i);var c=!1,m=!1,f;for(f in o)if(o.hasOwnProperty(f)){var j=o[f];if(j!=null)switch(f){case"src":c=!0;break;case"srcSet":m=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(s(137,n));default:Je(i,n,f,j,o,null)}}m&&Je(i,n,"srcSet",o.srcSet,o,null),c&&Je(i,n,"src",o.src,o,null);return;case"input":Le("invalid",i);var S=f=j=m=null,O=null,G=null;for(c in o)if(o.hasOwnProperty(c)){var Z=o[c];if(Z!=null)switch(c){case"name":m=Z;break;case"type":j=Z;break;case"checked":O=Z;break;case"defaultChecked":G=Z;break;case"value":f=Z;break;case"defaultValue":S=Z;break;case"children":case"dangerouslySetInnerHTML":if(Z!=null)throw Error(s(137,n));break;default:Je(i,n,c,Z,o,null)}}fy(i,f,S,O,G,j,m,!1),lc(i);return;case"select":Le("invalid",i),c=j=f=null;for(m in o)if(o.hasOwnProperty(m)&&(S=o[m],S!=null))switch(m){case"value":f=S;break;case"defaultValue":j=S;break;case"multiple":c=S;default:Je(i,n,m,S,o,null)}n=f,o=j,i.multiple=!!c,n!=null?_r(i,!!c,n,!1):o!=null&&_r(i,!!c,o,!0);return;case"textarea":Le("invalid",i),f=m=c=null;for(j in o)if(o.hasOwnProperty(j)&&(S=o[j],S!=null))switch(j){case"value":c=S;break;case"defaultValue":m=S;break;case"children":f=S;break;case"dangerouslySetInnerHTML":if(S!=null)throw Error(s(91));break;default:Je(i,n,j,S,o,null)}xy(i,c,m,f),lc(i);return;case"option":for(O in o)o.hasOwnProperty(O)&&(c=o[O],c!=null)&&(O==="selected"?i.selected=c&&typeof c!="function"&&typeof c!="symbol":Je(i,n,O,c,o,null));return;case"dialog":Le("beforetoggle",i),Le("toggle",i),Le("cancel",i),Le("close",i);break;case"iframe":case"object":Le("load",i);break;case"video":case"audio":for(c=0;c<$o.length;c++)Le($o[c],i);break;case"image":Le("error",i),Le("load",i);break;case"details":Le("toggle",i);break;case"embed":case"source":case"link":Le("error",i),Le("load",i);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(G in o)if(o.hasOwnProperty(G)&&(c=o[G],c!=null))switch(G){case"children":case"dangerouslySetInnerHTML":throw Error(s(137,n));default:Je(i,n,G,c,o,null)}return;default:if(Am(n)){for(Z in o)o.hasOwnProperty(Z)&&(c=o[Z],c!==void 0&&lh(i,n,Z,c,o,void 0));return}}for(S in o)o.hasOwnProperty(S)&&(c=o[S],c!=null&&Je(i,n,S,c,o,null))}function nI(i,n,o,c){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var m=null,f=null,j=null,S=null,O=null,G=null,Z=null;for($ in o){var ae=o[$];if(o.hasOwnProperty($)&&ae!=null)switch($){case"checked":break;case"value":break;case"defaultValue":O=ae;default:c.hasOwnProperty($)||Je(i,n,$,null,c,ae)}}for(var U in c){var $=c[U];if(ae=o[U],c.hasOwnProperty(U)&&($!=null||ae!=null))switch(U){case"type":f=$;break;case"name":m=$;break;case"checked":G=$;break;case"defaultChecked":Z=$;break;case"value":j=$;break;case"defaultValue":S=$;break;case"children":case"dangerouslySetInnerHTML":if($!=null)throw Error(s(137,n));break;default:$!==ae&&Je(i,n,U,$,c,ae)}}jm(i,j,S,O,G,Z,f,m);return;case"select":$=j=S=U=null;for(f in o)if(O=o[f],o.hasOwnProperty(f)&&O!=null)switch(f){case"value":break;case"multiple":$=O;default:c.hasOwnProperty(f)||Je(i,n,f,null,c,O)}for(m in c)if(f=c[m],O=o[m],c.hasOwnProperty(m)&&(f!=null||O!=null))switch(m){case"value":U=f;break;case"defaultValue":S=f;break;case"multiple":j=f;default:f!==O&&Je(i,n,m,f,c,O)}n=S,o=j,c=$,U!=null?_r(i,!!o,U,!1):!!c!=!!o&&(n!=null?_r(i,!!o,n,!0):_r(i,!!o,o?[]:"",!1));return;case"textarea":$=U=null;for(S in o)if(m=o[S],o.hasOwnProperty(S)&&m!=null&&!c.hasOwnProperty(S))switch(S){case"value":break;case"children":break;default:Je(i,n,S,null,c,m)}for(j in c)if(m=c[j],f=o[j],c.hasOwnProperty(j)&&(m!=null||f!=null))switch(j){case"value":U=m;break;case"defaultValue":$=m;break;case"children":break;case"dangerouslySetInnerHTML":if(m!=null)throw Error(s(91));break;default:m!==f&&Je(i,n,j,m,c,f)}gy(i,U,$);return;case"option":for(var Ae in o)U=o[Ae],o.hasOwnProperty(Ae)&&U!=null&&!c.hasOwnProperty(Ae)&&(Ae==="selected"?i.selected=!1:Je(i,n,Ae,null,c,U));for(O in c)U=c[O],$=o[O],c.hasOwnProperty(O)&&U!==$&&(U!=null||$!=null)&&(O==="selected"?i.selected=U&&typeof U!="function"&&typeof U!="symbol":Je(i,n,O,U,c,$));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var we in o)U=o[we],o.hasOwnProperty(we)&&U!=null&&!c.hasOwnProperty(we)&&Je(i,n,we,null,c,U);for(G in c)if(U=c[G],$=o[G],c.hasOwnProperty(G)&&U!==$&&(U!=null||$!=null))switch(G){case"children":case"dangerouslySetInnerHTML":if(U!=null)throw Error(s(137,n));break;default:Je(i,n,G,U,c,$)}return;default:if(Am(n)){for(var et in o)U=o[et],o.hasOwnProperty(et)&&U!==void 0&&!c.hasOwnProperty(et)&&lh(i,n,et,void 0,c,U);for(Z in c)U=c[Z],$=o[Z],!c.hasOwnProperty(Z)||U===$||U===void 0&&$===void 0||lh(i,n,Z,U,c,$);return}}for(var q in o)U=o[q],o.hasOwnProperty(q)&&U!=null&&!c.hasOwnProperty(q)&&Je(i,n,q,null,c,U);for(ae in c)U=c[ae],$=o[ae],!c.hasOwnProperty(ae)||U===$||U==null&&$==null||Je(i,n,ae,U,c,$)}var ch=null,dh=null;function id(i){return i.nodeType===9?i:i.ownerDocument}function y0(i){switch(i){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function b0(i,n){if(i===0)switch(n){case"svg":return 1;case"math":return 2;default:return 0}return i===1&&n==="foreignObject"?0:i}function uh(i,n){return i==="textarea"||i==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.children=="bigint"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var mh=null;function rI(){var i=window.event;return i&&i.type==="popstate"?i===mh?!1:(mh=i,!0):(mh=null,!1)}var v0=typeof setTimeout=="function"?setTimeout:void 0,sI=typeof clearTimeout=="function"?clearTimeout:void 0,w0=typeof Promise=="function"?Promise:void 0,oI=typeof queueMicrotask=="function"?queueMicrotask:typeof w0<"u"?function(i){return w0.resolve(null).then(i).catch(lI)}:v0;function lI(i){setTimeout(function(){throw i})}function xn(i){return i==="head"}function j0(i,n){var o=n,c=0,m=0;do{var f=o.nextSibling;if(i.removeChild(o),f&&f.nodeType===8)if(o=f.data,o==="/$"){if(0<c&&8>c){o=c;var j=i.ownerDocument;if(o&1&&Ko(j.documentElement),o&2&&Ko(j.body),o&4)for(o=j.head,Ko(o),j=o.firstChild;j;){var S=j.nextSibling,O=j.nodeName;j[co]||O==="SCRIPT"||O==="STYLE"||O==="LINK"&&j.rel.toLowerCase()==="stylesheet"||o.removeChild(j),j=S}}if(m===0){i.removeChild(f),il(n);return}m--}
vendor: 6,827 bytes, line 9
9else o==="$"||o==="$?"||o==="$!"?m++:c=o.charCodeAt(0)-48;else c=0;o=f}while(o);il(n)}function ph(i){var n=i.firstChild;for(n&&n.nodeType===10&&(n=n.nextSibling);n;){var o=n;switch(n=n.nextSibling,o.nodeName){case"HTML":case"HEAD":case"BODY":ph(o),ym(o);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(o.rel.toLowerCase()==="stylesheet")continue}i.removeChild(o)}}function cI(i,n,o,c){for(;i.nodeType===1;){var m=o;if(i.nodeName.toLowerCase()!==n.toLowerCase()){if(!c&&(i.nodeName!=="INPUT"||i.type!=="hidden"))break}else if(c){if(!i[co])switch(n){case"meta":if(!i.hasAttribute("itemprop"))break;return i;case"link":if(f=i.getAttribute("rel"),f==="stylesheet"&&i.hasAttribute("data-precedence"))break;if(f!==m.rel||i.getAttribute("href")!==(m.href==null||m.href===""?null:m.href)||i.getAttribute("crossorigin")!==(m.crossOrigin==null?null:m.crossOrigin)||i.getAttribute("title")!==(m.title==null?null:m.title))break;return i;case"style":if(i.hasAttribute("data-precedence"))break;return i;case"script":if(f=i.getAttribute("src"),(f!==(m.src==null?null:m.src)||i.getAttribute("type")!==(m.type==null?null:m.type)||i.getAttribute("crossorigin")!==(m.crossOrigin==null?null:m.crossOrigin))&&f&&i.hasAttribute("async")&&!i.hasAttribute("itemprop"))break;return i;default:return i}}else if(n==="input"&&i.type==="hidden"){var f=m.name==null?null:""+m.name;if(m.type==="hidden"&&i.getAttribute("name")===f)return i}else return i;if(i=_a(i.nextSibling),i===null)break}return null}function dI(i,n,o){if(n==="")return null;for(;i.nodeType!==3;)if((i.nodeType!==1||i.nodeName!=="INPUT"||i.type!=="hidden")&&!o||(i=_a(i.nextSibling),i===null))return null;return i}function hh(i){return i.data==="$!"||i.data==="$?"&&i.ownerDocument.readyState==="complete"}function uI(i,n){var o=i.ownerDocument;if(i.data!=="$?"||o.readyState==="complete")n();else{var c=function(){n(),o.removeEventListener("DOMContentLoaded",c)};o.addEventListener("DOMContentLoaded",c),i._reactRetry=c}}function _a(i){for(;i!=null;i=i.nextSibling){var n=i.nodeType;if(n===1||n===3)break;if(n===8){if(n=i.data,n==="$"||n==="$!"||n==="$?"||n==="F!"||n==="F")break;if(n==="/$")return null}}return i}var fh=null;function N0(i){i=i.previousSibling;for(var n=0;i;){if(i.nodeType===8){var o=i.data;if(o==="$"||o==="$!"||o==="$?"){if(n===0)return i;n--}else o==="/$"&&n++}i=i.previousSibling}return null}function A0(i,n,o){switch(n=id(o),i){case"html":if(i=n.documentElement,!i)throw Error(s(452));return i;case"head":if(i=n.head,!i)throw Error(s(453));return i;case"body":if(i=n.body,!i)throw Error(s(454));return i;default:throw Error(s(451))}}function Ko(i){for(var n=i.attributes;n.length;)i.removeAttributeNode(n[0]);ym(i)}var Ea=new Map,k0=new Set;function nd(i){return typeof i.getRootNode=="function"?i.getRootNode():i.nodeType===9?i:i.ownerDocument}var zi=ee.d;ee.d={f:mI,r:pI,D:hI,C:fI,L:gI,m:xI,X:bI,S:yI,M:vI};function mI(){var i=zi.f(),n=Kc();return i||n}function pI(i){var n=Or(i);n!==null&&n.tag===5&&n.type==="form"?Ub(n):zi.r(i)}var hs=typeof document>"u"?null:document;function S0(i,n,o){var c=hs;if(c&&typeof n=="string"&&n){var m=Aa(n);m='link[rel="'+i+'"][href="'+m+'"]',typeof o=="string"&&(m+='[crossorigin="'+o+'"]'),k0.has(m)||(k0.add(m),i={rel:i,crossOrigin:o,href:n},c.querySelector(m)===null&&(n=c.createElement("link"),Vt(n,"link",i),Ct(n),c.head.appendChild(n)))}}function hI(i){zi.D(i),S0("dns-prefetch",i,null)}function fI(i,n){zi.C(i,n),S0("preconnect",i,n)}function gI(i,n,o){zi.L(i,n,o);var c=hs;if(c&&i&&n){var m='link[rel="preload"][as="'+Aa(n)+'"]';n==="image"&&o&&o.imageSrcSet?(m+='[imagesrcset="'+Aa(o.imageSrcSet)+'"]',typeof o.imageSizes=="string"&&(m+='[imagesizes="'+Aa(o.imageSizes)+'"]')):m+='[href="'+Aa(i)+'"]';var f=m;switch(n){case"style":f=fs(i);break;case"script":f=gs(i)}Ea.has(f)||(i=x({rel:"preload",href:n==="image"&&o&&o.imageSrcSet?void 0:i,as:n},o),Ea.set(f,i),c.querySelector(m)!==null||n==="style"&&c.querySelector(Yo(f))||n==="script"&&c.querySelector(Qo(f))||(n=c.createElement("link"),Vt(n,"link",i),Ct(n),c.head.appendChild(n)))}}function xI(i,n){zi.m(i,n);var o=hs;if(o&&i){var c=n&&typeof n.as=="string"?n.as:"script",m='link[rel="modulepreload"][as="'+Aa(c)+'"][href="'+Aa(i)+'"]',f=m;switch(c){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":f=gs(i)}if(!Ea.has(f)&&(i=x({rel:"modulepreload",href:i},n),Ea.set(f,i),o.querySelector(m)===null)){switch(c){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(o.querySelector(Qo(f)))return}c=o.createElement("link"),Vt(c,"link",i),Ct(c),o.head.appendChild(c)}}}function yI(i,n,o){zi.S(i,n,o);var c=hs;if(c&&i){var m=Dr(c).hoistableStyles,f=fs(i);n=n||"default";var j=m.get(f);if(!j){var S={loading:0,preload:null};if(j=c.querySelector(Yo(f)))S.loading=5;else{i=x({rel:"stylesheet",href:i,"data-precedence":n},o),(o=Ea.get(f))&&gh(i,o);var O=j=c.createElement("link");Ct(O),Vt(O,"link",i),O._p=new Promise(function(G,Z){O.onload=G,O.onerror=Z}),O.addEventListener("load",function(){S.loading|=1}),O.addEventListener("error",function(){S.loading|=2}),S.loading|=4,rd(j,n,c)}j={type:"stylesheet",instance:j,count:1,state:S},m.set(f,j)}}}function bI(i,n){zi.X(i,n);var o=hs;if(o&&i){var c=Dr(o).hoistableScripts,m=gs(i),f=c.get(m);f||(f=o.querySelector(Qo(m)),f||(i=x({src:i,async:!0},n),(n=Ea.get(m))&&xh(i,n),f=o.createElement("script"),Ct(f),Vt(f,"link",i),o.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},c.set(m,f))}}function vI(i,n){zi.M(i,n);var o=hs;if(o&&i){var c=Dr(o).hoistableScripts,m=gs(i),f=c.get(m);f||(f=o.querySelector(Qo(m)),f||(i=x({src:i,async:!0,type:"module"},n),(n=Ea.get(m))&&xh(i,n),f=o.createElement("script"),Ct(f),Vt(f,"link",i),o.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},c.set(m,f))}}function I0(i,n,o,c){var m=(m=te.current)?nd(m):null;if(!m)throw Error(s(446));switch(i){case"meta":case"title":return null;case"style":return typeof o.precedence=="string"&&typeof o.href=="string"?(n=fs(o.href),o=Dr(m).hoistableStyles,c=o.get(n),c||(c={type:"style",instance:null,count:0,state:null},o.set(n,c)),c):{type:"void",instance:null,count:0,state:null};case"link":if(o.rel==="stylesheet"&&typeof o.href=="string"&&typeof o.precedence=="string"){i=fs(o.href);var f=Dr(m).hoistableStyles,j=f.get(i);if(j||(m=m.ownerDocument||m,j={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},f.set(i,j),(f=m.querySelector(Yo(i)))&&!f._p&&(j.instance=f,j.state.loading=5),Ea.has(i)||(o={rel:"preload",as:"style",href:o.href,crossOrigin:o.crossOrigin,integrity:o.integrity,media:o.media,hrefLang:o.hrefLang,referrerPolicy:o.referrerPolicy},Ea.set(i,o),f||wI(m,i,o,j.state))),n&&c===null)throw Error(s(528,""));return j}if(n&&c!==null)throw Error(s(529,""));return null;
vendor: 2,707 bytes, line 9
9case"script":return n=o.async,o=o.src,typeof o=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=gs(o),o=Dr(m).hoistableScripts,c=o.get(n),c||(c={type:"script",instance:null,count:0,state:null},o.set(n,c)),c):{type:"void",instance:null,count:0,state:null};default:throw Error(s(444,i))}}function fs(i){return'href="'+Aa(i)+'"'}function Yo(i){return'link[rel="stylesheet"]['+i+"]"}function C0(i){return x({},i,{"data-precedence":i.precedence,precedence:null})}function wI(i,n,o,c){i.querySelector('link[rel="preload"][as="style"]['+n+"]")?c.loading=1:(n=i.createElement("link"),c.preload=n,n.addEventListener("load",function(){return c.loading|=1}),n.addEventListener("error",function(){return c.loading|=2}),Vt(n,"link",o),Ct(n),i.head.appendChild(n))}function gs(i){return'[src="'+Aa(i)+'"]'}function Qo(i){return"script[async]"+i}function M0(i,n,o){if(n.count++,n.instance===null)switch(n.type){case"style":var c=i.querySelector('style[data-href~="'+Aa(o.href)+'"]');if(c)return n.instance=c,Ct(c),c;var m=x({},o,{"data-href":o.href,"data-precedence":o.precedence,href:null,precedence:null});return c=(i.ownerDocument||i).createElement("style"),Ct(c),Vt(c,"style",m),rd(c,o.precedence,i),n.instance=c;case"stylesheet":m=fs(o.href);var f=i.querySelector(Yo(m));if(f)return n.state.loading|=4,n.instance=f,Ct(f),f;c=C0(o),(m=Ea.get(m))&&gh(c,m),f=(i.ownerDocument||i).createElement("link"),Ct(f);var j=f;return j._p=new Promise(function(S,O){j.onload=S,j.onerror=O}),Vt(f,"link",c),n.state.loading|=4,rd(f,o.precedence,i),n.instance=f;case"script":return f=gs(o.src),(m=i.querySelector(Qo(f)))?(n.instance=m,Ct(m),m):(c=o,(m=Ea.get(f))&&(c=x({},o),xh(c,m)),i=i.ownerDocument||i,m=i.createElement("script"),Ct(m),Vt(m,"link",c),i.head.appendChild(m),n.instance=m);case"void":return null;default:throw Error(s(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(c=n.instance,n.state.loading|=4,rd(c,o.precedence,i));return n.instance}function rd(i,n,o){for(var c=o.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),m=c.length?c[c.length-1]:null,f=m,j=0;j<c.length;j++){var S=c[j];if(S.dataset.precedence===n)f=S;else if(f!==m)break}f?f.parentNode.insertBefore(i,f.nextSibling):(n=o.nodeType===9?o.head:o,n.insertBefore(i,n.firstChild))}function gh(i,n){i.crossOrigin==null&&(i.crossOrigin=n.crossOrigin),i.referrerPolicy==null&&(i.referrerPolicy=n.referrerPolicy),i.title==null&&(i.title=n.title)}function xh(i,n){i.crossOrigin==null&&(i.crossOrigin=n.crossOrigin),i.referrerPolicy==null&&(i.referrerPolicy=n.referrerPolicy),i.integrity==null&&(i.integrity=n.integrity)}var sd=null;function T0(i,n,o){if(sd===null){var c=new Map,m=sd=new Map;m.set(o,c)}
vendor: 11,285 bytes, line 9
9else m=sd,c=m.get(o),c||(c=new Map,m.set(o,c));if(c.has(i))return c;for(c.set(i,null),o=o.getElementsByTagName(i),m=0;m<o.length;m++){var f=o[m];if(!(f[co]||f[zt]||i==="link"&&f.getAttribute("rel")==="stylesheet")&&f.namespaceURI!=="http://www.w3.org/2000/svg"){var j=f.getAttribute(n)||"";j=i+j;var S=c.get(j);S?S.push(f):c.set(j,[f])}}return c}function E0(i,n,o){i=i.ownerDocument||i,i.head.insertBefore(o,n==="title"?i.querySelector("head > title"):null)}function jI(i,n,o){if(o===1||n.itemProp!=null)return!1;switch(i){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;return n.rel==="stylesheet"?(i=n.disabled,typeof n.precedence=="string"&&i==null):!0;case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function R0(i){return!(i.type==="stylesheet"&&(i.state.loading&3)===0)}var Zo=null;function NI(){}function AI(i,n,o){if(Zo===null)throw Error(s(475));var c=Zo;if(n.type==="stylesheet"&&(typeof o.media!="string"||matchMedia(o.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var m=fs(o.href),f=i.querySelector(Yo(m));if(f){i=f._p,i!==null&&typeof i=="object"&&typeof i.then=="function"&&(c.count++,c=od.bind(c),i.then(c,c)),n.state.loading|=4,n.instance=f,Ct(f);return}f=i.ownerDocument||i,o=C0(o),(m=Ea.get(m))&&gh(o,m),f=f.createElement("link"),Ct(f);var j=f;j._p=new Promise(function(S,O){j.onload=S,j.onerror=O}),Vt(f,"link",o),n.instance=f}c.stylesheets===null&&(c.stylesheets=new Map),c.stylesheets.set(n,i),(i=n.state.preload)&&(n.state.loading&3)===0&&(c.count++,n=od.bind(c),i.addEventListener("load",n),i.addEventListener("error",n))}}function kI(){if(Zo===null)throw Error(s(475));var i=Zo;return i.stylesheets&&i.count===0&&yh(i,i.stylesheets),0<i.count?function(n){var o=setTimeout(function(){if(i.stylesheets&&yh(i,i.stylesheets),i.unsuspend){var c=i.unsuspend;i.unsuspend=null,c()}},6e4);return i.unsuspend=n,function(){i.unsuspend=null,clearTimeout(o)}}:null}function od(){if(this.count--,this.count===0){if(this.stylesheets)yh(this,this.stylesheets);else if(this.unsuspend){var i=this.unsuspend;this.unsuspend=null,i()}}}var ld=null;function yh(i,n){i.stylesheets=null,i.unsuspend!==null&&(i.count++,ld=new Map,n.forEach(SI,i),ld=null,od.call(i))}function SI(i,n){if(!(n.state.loading&4)){var o=ld.get(i);if(o)var c=o.get(null);else{o=new Map,ld.set(i,o);for(var m=i.querySelectorAll("link[data-precedence],style[data-precedence]"),f=0;f<m.length;f++){var j=m[f];(j.nodeName==="LINK"||j.getAttribute("media")!=="not all")&&(o.set(j.dataset.precedence,j),c=j)}c&&o.set(null,c)}m=n.instance,j=m.getAttribute("data-precedence"),f=o.get(j)||c,f===c&&o.set(null,m),o.set(j,m),this.count++,c=od.bind(this),m.addEventListener("load",c),m.addEventListener("error",c),f?f.parentNode.insertBefore(m,f.nextSibling):(i=i.nodeType===9?i.head:i,i.insertBefore(m,i.firstChild)),n.state.loading|=4}}var Jo={$$typeof:R,Provider:null,Consumer:null,_currentValue:X,_currentValue2:X,_threadCount:0};function II(i,n,o,c,m,f,j,S){this.tag=1,this.containerInfo=i,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=hm(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=hm(0),this.hiddenUpdates=hm(null),this.identifierPrefix=c,this.onUncaughtError=m,this.onCaughtError=f,this.onRecoverableError=j,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=S,this.incompleteTransitions=new Map}function P0(i,n,o,c,m,f,j,S,O,G,Z,ae){return i=new II(i,n,o,j,S,O,G,ae),n=1,f===!0&&(n|=24),f=pa(3,null,null,n),i.current=f,f.stateNode=i,n=Jm(),n.refCount++,i.pooledCache=n,n.refCount++,f.memoizedState={element:c,isDehydrated:o,cache:n},ip(f),i}function O0(i){return i?(i=$r,i):$r}function D0(i,n,o,c,m,f){m=O0(m),c.context===null?c.context=m:c.pendingContext=m,c=nn(n),c.payload={element:o},f=f===void 0?null:f,f!==null&&(c.callback=f),o=rn(i,c,n),o!==null&&(ya(o,i,n),Mo(o,i,n))}function L0(i,n){if(i=i.memoizedState,i!==null&&i.dehydrated!==null){var o=i.retryLane;i.retryLane=o!==0&&o<n?o:n}}function bh(i,n){L0(i,n),(i=i.alternate)&&L0(i,n)}function V0(i){if(i.tag===13){var n=Xr(i,67108864);n!==null&&ya(n,i,67108864),bh(i,67108864)}}var cd=!0;function CI(i,n,o,c){var m=_.T;_.T=null;var f=ee.p;try{ee.p=2,vh(i,n,o,c)}finally{ee.p=f,_.T=m}}function MI(i,n,o,c){var m=_.T;_.T=null;var f=ee.p;try{ee.p=8,vh(i,n,o,c)}finally{ee.p=f,_.T=m}}function vh(i,n,o,c){if(cd){var m=wh(c);if(m===null)oh(i,n,c,dd,o),z0(i,c);else if(EI(m,i,n,o,c))c.stopPropagation();else if(z0(i,c),n&4&&-1<TI.indexOf(i)){for(;m!==null;){var f=Or(m);if(f!==null)switch(f.tag){case 3:if(f=f.stateNode,f.current.memoizedState.isDehydrated){var j=Bn(f.pendingLanes);if(j!==0){var S=f;for(S.pendingLanes|=2,S.entangledLanes|=2;j;){var O=1<<31-ua(j);S.entanglements[1]|=O,j&=~O}li(f),(Ye&6)===0&&($c=ii()+500,Xo(0))}}break;case 13:S=Xr(f,2),S!==null&&ya(S,f,2),Kc(),bh(f,2)}if(f=wh(c),f===null&&oh(i,n,c,dd,o),f===m)break;m=f}m!==null&&c.stopPropagation()}else oh(i,n,c,null,o)}}function wh(i){return i=Sm(i),jh(i)}var dd=null;function jh(i){if(dd=null,i=Pr(i),i!==null){var n=d(i);if(n===null)i=null;else{var o=n.tag;if(o===13){if(i=u(n),i!==null)return i;i=null}else if(o===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;i=null}else n!==i&&(i=null)}}return dd=i,null}function _0(i){switch(i){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(fS()){case Zx:return 2;case Jx:return 8;case ac:case gS:return 32;case ey:return 268435456;default:return 32}default:return 32}}var Nh=!1,yn=null,bn=null,vn=null,el=new Map,tl=new Map,wn=[],TI="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function z0(i,n){switch(i){case"focusin":case"focusout":yn=null;break;case"dragenter":case"dragleave":bn=null;break;case"mouseover":case"mouseout":vn=null;break;case"pointerover":case"pointerout":el.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":tl.delete(n.pointerId)}}function al(i,n,o,c,m,f){return i===null||i.nativeEvent!==f?(i={blockedOn:n,domEventName:o,eventSystemFlags:c,nativeEvent:f,targetContainers:[m]},n!==null&&(n=Or(n),n!==null&&V0(n)),i):(i.eventSystemFlags|=c,n=i.targetContainers,m!==null&&n.indexOf(m)===-1&&n.push(m),i)}function EI(i,n,o,c,m){switch(n){case"focusin":return yn=al(yn,i,n,o,c,m),!0;case"dragenter":return bn=al(bn,i,n,o,c,m),!0;case"mouseover":return vn=al(vn,i,n,o,c,m),!0;case"pointerover":var f=m.pointerId;return el.set(f,al(el.get(f)||null,i,n,o,c,m)),!0;case"gotpointercapture":return f=m.pointerId,tl.set(f,al(tl.get(f)||null,i,n,o,c,m)),!0}return!1}function q0(i){var n=Pr(i.target);if(n!==null){var o=d(n);if(o!==null){if(n=o.tag,n===13){if(n=u(o),n!==null){i.blockedOn=n,AS(i.priority,function(){if(o.tag===13){var c=xa();c=fm(c);var m=Xr(o,c);m!==null&&ya(m,o,c),bh(o,c)}});return}}else if(n===3&&o.stateNode.current.memoizedState.isDehydrated){i.blockedOn=o.tag===3?o.stateNode.containerInfo:null;return}}}i.blockedOn=null}function ud(i){if(i.blockedOn!==null)return!1;for(var n=i.targetContainers;0<n.length;){var o=wh(i.nativeEvent);if(o===null){o=i.nativeEvent;var c=new o.constructor(o.type,o);km=c,o.target.dispatchEvent(c),km=null}else return n=Or(o),n!==null&&V0(n),i.blockedOn=o,!1;n.shift()}return!0}function F0(i,n,o){ud(i)&&o.delete(n)}function RI(){Nh=!1,yn!==null&&ud(yn)&&(yn=null),bn!==null&&ud(bn)&&(bn=null),vn!==null&&ud(vn)&&(vn=null),el.forEach(F0),tl.forEach(F0)}function md(i,n){i.blockedOn===n&&(i.blockedOn=null,Nh||(Nh=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,RI)))}var pd=null;function B0(i){pd!==i&&(pd=i,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){pd===i&&(pd=null);for(var n=0;n<i.length;n+=3){var o=i[n],c=i[n+1],m=i[n+2];if(typeof c!="function"){if(jh(c||o)===null)continue;break}var f=Or(o);f!==null&&(i.splice(n,3),n-=3,jp(f,{pending:!0,data:m,method:o.method,action:c},c,m))}}))}function il(i){function n(O){return md(O,i)}yn!==null&&md(yn,i),bn!==null&&md(bn,i),vn!==null&&md(vn,i),el.forEach(n),tl.forEach(n);for(var o=0;o<wn.length;o++){var c=wn[o];c.blockedOn===i&&(c.blockedOn=null)}for(;0<wn.length&&(o=wn[0],o.blockedOn===null);)q0(o),o.blockedOn===null&&wn.shift();if(o=(i.ownerDocument||i).$$reactFormReplay,o!=null)for(c=0;c<o.length;c+=3){var m=o[c],f=o[c+1],j=m[Jt]||null;if(typeof f=="function")j||B0(o);else if(j){var S=null;if(f&&f.hasAttribute("formAction")){if(m=f,j=f[Jt]||null)S=j.formAction;else if(jh(m)!==null)continue}else S=j.action;typeof S=="function"?o[c+1]=S:(o.splice(c,3),c-=3),B0(o)}}}function Ah(i){this._internalRoot=i}hd.prototype.render=Ah.prototype.render=function(i){var n=this._internalRoot;if(n===null)throw Error(s(409));var o=n.current,c=xa();D0(o,c,i,n,null,null)},hd.prototype.unmount=Ah.prototype.unmount=function(){var i=this._internalRoot;if(i!==null){this._internalRoot=null;var n=i.containerInfo;D0(i.current,2,null,i,null,null),Kc(),n[Rr]=null}};function hd(i){this._internalRoot=i}hd.prototype.unstable_scheduleHydration=function(i){if(i){var n=ry();i={blockedOn:null,target:i,priority:n};for(var o=0;o<wn.length&&n!==0&&n<wn[o].priority;o++);wn.splice(o,0,i),o===0&&q0(i)}};var H0=a.version;if(H0!=="19.1.0")throw Error(s(527,H0,"19.1.0"));ee.findDOMNode=function(i){var n=i._reactInternals;if(n===void 0)throw typeof i.render=="function"?Error(s(188)):(i=Object.keys(i).join(","),Error(s(268,i)));return i=g(n),i=i!==null?h(i):null,i=i===null?null:i.stateNode,i};var PI={bundleType:0,version:"19.1.0",rendererPackageName:"react-dom",currentDispatcherRef:_,reconcilerVersion:"19.1.0"};
9if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var fd=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!fd.isDisabled&&fd.supportsFiber)try{so=fd.inject(PI),da=fd}catch{}}return rl.createRoot=function(i,n){if(!l(i))throw Error(s(299));var o=!1,c="",m=rv,f=sv,j=ov,S=null;return n!=null&&(n.unstable_strictMode===!0&&(o=!0),n.identifierPrefix!==void 0&&(c=n.identifierPrefix),n.onUncaughtError!==void 0&&(m=n.onUncaughtError),n.onCaughtError!==void 0&&(f=n.onCaughtError),n.onRecoverableError!==void 0&&(j=n.onRecoverableError),n.unstable_transitionCallbacks!==void 0&&(S=n.unstable_transitionCallbacks)),n=P0(i,1,!1,null,null,o,c,m,f,j,S,null),i[Rr]=n.current,sh(i),new Ah(n)},rl.hydrateRoot=function(i,n,o){if(!l(i))throw Error(s(299));var c=!1,m="",f=rv,j=sv,S=ov,O=null,G=null;return o!=null&&(o.unstable_strictMode===!0&&(c=!0),o.identifierPrefix!==void 0&&(m=o.identifierPrefix),o.onUncaughtError!==void 0&&(f=o.onUncaughtError),o.onCaughtError!==void 0&&(j=o.onCaughtError),o.onRecoverableError!==void 0&&(S=o.onRecoverableError),o.unstable_transitionCallbacks!==void 0&&(O=o.unstable_transitionCallbacks),o.formState!==void 0&&(G=o.formState)),n=P0(i,1,!0,n,o??null,c,m,f,j,S,O,G),n.context=O0(null),o=n.current,c=xa(),c=fm(c),m=nn(c),m.callback=null,rn(o,m,c),o=c,n.current.lanes=o,lo(n,o),li(n),i[Rr]=n.current,sh(i),new hd(n)},rl.version="19.1.0",rl}var J0;function HI(){if(J0)return Sh.exports;J0=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(a){console.error(a)}}return t(),Sh.exports=BI(),Sh.exports}var GI=HI();function UI(t,a){if(t instanceof RegExp)return{keys:!1,pattern:t};var r,s,l,d,u=[],p="",g=t.split("/");for(g[0]||g.shift();l=g.shift();)r=l[0],r==="*"?(u.push(r),p+=l[1]==="?"?"(?:/(.*))?":"/(.*)"):r===":"?(s=l.indexOf("?",1),d=l.indexOf(".",1),u.push(l.substring(1,~s?s:~d?d:l.length)),p+=~s&&!~d?"(?:/([^/]+?))?":"/([^/]+?)",~d&&(p+=(~s?"?":"")+"\\"+l.substring(d))):p+="/"+l;return{keys:u,pattern:new RegExp("^"+p+(a?"(?=$|/)":"/?$"),"i")}}var y=Eu();const pt=Tu(y),Ru=DI({__proto__:null,default:pt},[y]);var Eh={exports:{}},Rh={};var ew;function XI(){if(ew)return Rh;ew=1;var t=Eu();function a(b,w){return b===w&&(b!==0||1/b===1/w)||b!==b&&w!==w}var r=typeof Object.is=="function"?Object.is:a,s=t.useState,l=t.useEffect,d=t.useLayoutEffect,u=t.useDebugValue;function p(b,w){var N=w(),A=s({inst:{value:N,getSnapshot:w}}),k=A[0].inst,I=A[1];return d(function(){k.value=N,k.getSnapshot=w,g(k)&&I({inst:k})},[b,N,w]),l(function(){return g(k)&&I({inst:k}),b(function(){g(k)&&I({inst:k})})},[b]),u(N),N}function g(b){var w=b.getSnapshot;b=b.value;try{var N=w();return!r(b,N)}catch{return!0}}function h(b,w){return w()}var x=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?h:p;return Rh.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:x,Rh}var tw;function $I(){return tw||(tw=1,Eh.exports=XI()),Eh.exports}var WI=$I();const KI=Ru.useInsertionEffect,YI=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",QI=YI?y.useLayoutEffect:y.useEffect,ZI=KI||QI,pj=t=>{const a=y.useRef([t,(...r)=>a[0](...r)]).current;return ZI(()=>{a[0]=t}),a[1]},JI="popstate",Lg="pushState",Vg="replaceState",eC="hashchange",aw=[JI,Lg,Vg,eC],tC=t=>{for(const a of aw)addEventListener(a,t);return()=>{for(const a of aw)removeEventListener(a,t)}},hj=(t,a)=>WI.useSyncExternalStore(tC,t,a),iw=()=>location.search,aC=({ssrSearch:t}={})=>hj(iw,t!=null?()=>t:iw),nw=()=>location.pathname,iC=({ssrPath:t}={})=>hj(nw,t!=null?()=>t:nw),nC=(t,{replace:a=!1,state:r=null}={})=>history[a?Vg:Lg](r,"",t),rC=(t={})=>[iC(t),nC],rw=Symbol.for("wouter_v3");if(typeof history<"u"&&typeof window[rw]>"u"){for(const t of[Lg,Vg]){const a=history[t];history[t]=function(){const r=a.apply(this,arguments),s=new Event(t);return s.arguments=arguments,dispatchEvent(s),r}}Object.defineProperty(window,rw,{value:!0})}const sC=(t,a)=>a.toLowerCase().indexOf(t.toLowerCase())?"~"+a:a.slice(t.length)||"/",fj=(t="")=>t==="/"?"":t,oC=(t,a)=>t[0]==="~"?t.slice(1):fj(a)+t,lC=(t="",a)=>sC(sw(fj(t)),sw(a)),sw=t=>{try{return decodeURI(t)}catch{return t}},gj={hook:rC,searchHook:aC,parser:UI,base:"",ssrPath:void 0,ssrSearch:void 0,ssrContext:void 0,hrefs:t=>t,aroundNav:(t,a,r)=>t(a,r)},xj=y.createContext(gj),Fl=()=>y.useContext(xj),yj={},bj=y.createContext(yj),cC=()=>y.useContext(bj),Pu=t=>{const[a,r]=t.hook(t);return[lC(t.base,a),pj((s,l)=>t.aroundNav(r,oC(s,t.base),l))]},Sr=()=>Pu(Fl()),vj=(t,a,r,s)=>{const{pattern:l,keys:d}=a instanceof RegExp?{keys:!1,pattern:a}:t(a||"*",s),u=l.exec(r)||[],[p,...g]=u;return p!==void 0?[!0,(()=>{const h=d!==!1?Object.fromEntries(d.map((b,w)=>[b,g[w]])):u.groups;let x={...g};return h&&Object.assign(x,h),x}
9)(),...s?[p]:[]]:[!1,null]},wj=({children:t,...a})=>{const r=Fl(),s=a.hook?gj:r;let l=s;const[d,u=a.ssrSearch??""]=a.ssrPath?.split("?")??[];d&&(a.ssrSearch=u,a.ssrPath=d),a.hrefs=a.hrefs??a.hook?.hrefs,a.searchHook=a.searchHook??a.hook?.searchHook;let p=y.useRef({}),g=p.current,h=g;for(let x in s){const b=x==="base"?s[x]+(a[x]??""):a[x]??s[x];g===h&&b!==h[x]&&(p.current=h={...h}),h[x]=b,(b!==s[x]||b!==l[x])&&(l=h)}return y.createElement(xj.Provider,{value:l,children:t})},ow=({children:t,component:a},r)=>a?y.createElement(a,{params:r}):typeof t=="function"?t(r):t,dC=t=>{let a=y.useRef(yj);const r=a.current;return a.current=Object.keys(t).length!==Object.keys(r).length||Object.entries(t).some(([s,l])=>l!==r[s])?t:r},_e=({path:t,nest:a,match:r,...s})=>{const l=Fl(),[d]=Pu(l),[u,p,g]=r??vj(l.parser,t,d,a),h=dC({...cC(),...p});if(!u)return null;const x=g?y.createElement(wj,{base:g},ow(s,h)):ow(s,h);return y.createElement(bj.Provider,{value:h,children:x})},Ie=y.forwardRef((t,a)=>{const r=Fl(),[s,l]=Pu(r),{to:d="",href:u=d,onClick:p,asChild:g,children:h,className:x,replace:b,state:w,transition:N,...A}=t,k=pj(T=>{T.ctrlKey||T.metaKey||T.altKey||T.shiftKey||T.button!==0||(p?.(T),T.defaultPrevented||(T.preventDefault(),l(u,t)))}),I=r.hrefs(u[0]==="~"?u.slice(1):r.base+u,r);return g&&y.isValidElement(h)?y.cloneElement(h,{onClick:k,href:I}):y.createElement("a",{...A,onClick:k,href:I,className:x?.call?x(s===u):x,children:h,ref:a})}),jj=t=>Array.isArray(t)?t.flatMap(a=>jj(a&&a.type===y.Fragment?a.props.children:a)):[t],lw=({children:t,location:a})=>{const r=Fl(),[s]=Pu(r);for(const l of jj(t)){let d=0;if(y.isValidElement(l)&&(d=vj(r.parser,l.props.path,a||s,l.props.nest))[0])return y.cloneElement(l,{match:d})}return null};var Ou=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},uC=class extends Ou{#e;#t;#a;constructor(){super(),this.#a=t=>{if(typeof window<"u"&&window.addEventListener){const a=()=>t();return window.addEventListener("visibilitychange",a,!1),()=>{window.removeEventListener("visibilitychange",a)}}}}onSubscribe(){this.#t||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(t){this.#a=t,this.#t?.(),this.#t=t(a=>{typeof a=="boolean"?this.setFocused(a):this.onFocus()})}setFocused(t){this.#e!==t&&(this.#e=t,this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(a=>{a(t)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},Nj=new uC,mC={setTimeout:(t,a)=>setTimeout(t,a),clearTimeout:t=>clearTimeout(t),setInterval:(t,a)=>setInterval(t,a),clearInterval:t=>clearInterval(t)},pC=class{#e=mC;#t=!1;setTimeoutProvider(t){this.#e=t}setTimeout(t,a){return this.#e.setTimeout(t,a)}clearTimeout(t){this.#e.clearTimeout(t)}setInterval(t,a){return this.#e.setInterval(t,a)}clearInterval(t){this.#e.clearInterval(t)}},Of=new pC;function hC(t){setTimeout(t,0)}var fC=typeof window>"u"||"Deno"in globalThis;function Ba(){}function gC(t,a){return typeof t=="function"?t(a):t}function xC(t){return typeof t=="number"&&t>=0&&t!==1/0}function yC(t,a){return Math.max(t+(a||0)-Date.now(),0)}function Df(t,a){return typeof t=="function"?t(a):t}function bC(t,a){return typeof t=="function"?t(a):t}function cw(t,a){const{type:r="all",exact:s,fetchStatus:l,predicate:d,queryKey:u,stale:p}=t;if(u){if(s){if(a.queryHash!==_g(u,a.options))return!1}else if(!Pl(a.queryKey,u))return!1}if(r!=="all"){const g=a.isActive();if(r==="active"&&!g||r==="inactive"&&g)return!1}return!(typeof p=="boolean"&&a.isStale()!==p||l&&l!==a.state.fetchStatus||d&&!d(a))}function dw(t,a){const{exact:r,status:s,predicate:l,mutationKey:d}=t;if(d){if(!a.options.mutationKey)return!1;if(r){if(Rl(a.options.mutationKey)!==Rl(d))return!1}else if(!Pl(a.options.mutationKey,d))return!1}return!(s&&a.state.status!==s||l&&!l(a))}function _g(t,a){return(a?.queryKeyHashFn||Rl)(t)}function Rl(t){return JSON.stringify(t,(a,r)=>Lf(r)?Object.keys(r).sort().reduce((s,l)=>(s[l]=r[l],s),{}):r)}function Pl(t,a){return t===a?!0:typeof t!=typeof a?!1:t&&a&&typeof t=="object"&&typeof a=="object"?Object.keys(a).every(r=>Pl(t[r],a[r])):!1}var vC=Object.prototype.hasOwnProperty;function Aj(t,a,r=0){if(t===a)return t;if(r>500)return a;const s=uw(t)&&uw(a);if(!s&&!(Lf(t)&&Lf(a)))return a;const d=(s?t:Object.keys(t)).length,u=s?a:Object.keys(a),p=u.length,g=s?new Array(p):{};let h=0;for(let x=0;x<p;x++){const b=s?x:u[x],w=t[b],N=a[b];if(w===N){g[b]=w,(s?x<d:vC.call(t,b))&&h++;continue}if(w===null||N===null||typeof w!="object"||typeof N!="object"){g[b]=N;continue}const A=Aj(w,N,r+1);g[b]=A,A===w&&h++}return d===p&&h===d?t:g}function uw(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function Lf(t){if(!mw(t))return!1;const a=t.constructor;if(a===void 0)return!0;const r=a.prototype;return!(!mw(r)||!r.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(t)!==Object.prototype)}function mw(t){return Object.prototype.toString.call(t)==="[object Object]"}function wC(t){return new Promise(a=>{Of.setTimeout(a,t)})}function jC(t,a,r){return typeof r.structuralSharing=="function"?r.structuralSharing(t,a):r.structuralSharing!==!1?Aj(t,a):a}function NC(t,a,r=0){const s=[...t,a];return r&&s.length>r?s.slice(1):s}function AC(t,a,r=0){const s=[a,...t];return r&&s.length>r?s.slice(0,-1):s}var zg=Symbol();function kj(t,a){return!t.queryFn&&a?.initialPromise?()=>a.initialPromise:!t.queryFn||t.queryFn===zg?()=>Promise.reject(new Error(`Missing queryFn: '${t.queryHash}'`)):t.queryFn}function kC(t,a,r){let s=!1,l;return Object.defineProperty(t,"signal",{enumerable:!0,get:()=>(l??=a(),s||(s=!0,l.aborted?r():l.addEventListener("abort",r,{once:!0})),l)}),t}var Sj=(()=>{let t=()=>fC;return{isServer(){return t()},setIsServer(a){t=a}}})();function SC(){let t,a;const r=new Promise((l,d)=>{t=l,a=d});r.status="pending",r.catch(()=>{});function s(l){Object.assign(r,l),delete r.resolve,delete r.reject}return r.resolve=l=>{s({status:"fulfilled",value:l}),t(l)},r.reject=l=>{s({status:"rejected",reason:l}),a(l)},r}var IC=hC;function CC(){let t=[],a=0,r=p=>{p()},s=p=>{p()},l=IC;const d=p=>{a?t.push(p):l(()=>{r(p)})},u=()=>{const p=t;t=[],p.length&&l(()=>{s(()=>{p.forEach(g=>{r(g)})})})};return{batch:p=>{let g;a++;try{g=p()}finally{a--,a||u()}return g},batchCalls:p=>(...g)=>{d(()=>{p(...g)})},schedule:d,setNotifyFunction:p=>{r=p},setBatchNotifyFunction:p=>{s=p},setScheduler:p=>{l=p}}}var $t=CC(),MC=class extends Ou{#e=!0;#t;#a;constructor(){super(),this.#a=t=>{if(typeof window<"u"&&window.addEventListener){const a=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",a,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",a),window.removeEventListener("offline",r)}}}}onSubscribe(){this.#t||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(t){this.#a=t,this.#t?.(),this.#t=t(this.setOnline.bind(this))}
vendor: 19,439 bytes, line 9
9setOnline(t){this.#e!==t&&(this.#e=t,this.listeners.forEach(r=>{r(t)}))}isOnline(){return this.#e}},cu=new MC;function TC(t){return Math.min(1e3*2**t,3e4)}function Ij(t){return(t??"online")==="online"?cu.isOnline():!0}var Vf=class extends Error{constructor(t){super("CancelledError"),this.revert=t?.revert,this.silent=t?.silent}};function Cj(t){let a=!1,r=0,s;const l=SC(),d=()=>l.status!=="pending",u=k=>{if(!d()){const I=new Vf(k);w(I),t.onCancel?.(I)}},p=()=>{a=!0},g=()=>{a=!1},h=()=>Nj.isFocused()&&(t.networkMode==="always"||cu.isOnline())&&t.canRun(),x=()=>Ij(t.networkMode)&&t.canRun(),b=k=>{d()||(s?.(),l.resolve(k))},w=k=>{d()||(s?.(),l.reject(k))},N=()=>new Promise(k=>{s=I=>{(d()||h())&&k(I)},t.onPause?.()}).then(()=>{s=void 0,d()||t.onContinue?.()}),A=()=>{if(d())return;let k;const I=r===0?t.initialPromise:void 0;try{k=I??t.fn()}catch(T){k=Promise.reject(T)}Promise.resolve(k).then(b).catch(T=>{if(d())return;const E=t.retry??(Sj.isServer()?0:3),R=t.retryDelay??TC,C=typeof R=="function"?R(r,T):R,P=E===!0||typeof E=="number"&&r<E||typeof E=="function"&&E(r,T);if(a||!P){w(T);return}r++,t.onFail?.(r,T),wC(C).then(()=>h()?void 0:N()).then(()=>{a?w(T):A()})})};return{promise:l,status:()=>l.status,cancel:u,continue:()=>(s?.(),l),cancelRetry:p,continueRetry:g,canStart:x,start:()=>(x()?A():N().then(A),l)}}var Mj=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),xC(this.gcTime)&&(this.#e=Of.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(Sj.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(Of.clearTimeout(this.#e),this.#e=void 0)}};function EC(t){return{onFetch:(a,r)=>{const s=a.options,l=a.fetchOptions?.meta?.fetchMore?.direction,d=a.state.data?.pages||[],u=a.state.data?.pageParams||[];let p={pages:[],pageParams:[]},g=0;const h=async()=>{let x=!1;const b=A=>{kC(A,()=>a.signal,()=>x=!0)},w=kj(a.options,a.fetchOptions),N=async(A,k,I)=>{if(x)return Promise.reject(a.signal.reason);if(k==null&&A.pages.length)return Promise.resolve(A);const E=(()=>{const z={client:a.client,queryKey:a.queryKey,pageParam:k,direction:I?"backward":"forward",meta:a.options.meta};return b(z),z})(),R=await w(E),{maxPages:C}=a.options,P=I?AC:NC;return{pages:P(A.pages,R,C),pageParams:P(A.pageParams,k,C)}};if(l&&d.length){const A=l==="backward",k=A?RC:pw,I={pages:d,pageParams:u},T=k(s,I);p=await N(I,T,A)}else{const A=t??d.length;do{const k=g===0?u[0]??s.initialPageParam:pw(s,p);if(g>0&&k==null)break;p=await N(p,k),g++}while(g<A)}return p};a.options.persister?a.fetchFn=()=>a.options.persister?.(h,{client:a.client,queryKey:a.queryKey,meta:a.options.meta,signal:a.signal},r):a.fetchFn=h}}}function pw(t,{pages:a,pageParams:r}){const s=a.length-1;return a.length>0?t.getNextPageParam(a[s],a,r[s],r):void 0}function RC(t,{pages:a,pageParams:r}){return a.length>0?t.getPreviousPageParam?.(a[0],a,r[0],r):void 0}var PC=class extends Mj{#e;#t;#a;#n;#r;#i;#l;#s;constructor(t){super(),this.#s=!1,this.#l=t.defaultOptions,this.setOptions(t.options),this.observers=[],this.#r=t.client,this.#n=this.#r.getQueryCache(),this.queryKey=t.queryKey,this.queryHash=t.queryHash,this.#t=fw(this.options),this.state=t.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#i?.promise}setOptions(t){if(this.options={...this.#l,...t},t?._type&&(this.#e=t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const a=fw(this.options);a.data!==void 0&&(this.setState(hw(a.data,a.dataUpdatedAt)),this.#t=a)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#n.remove(this)}setData(t,a){const r=jC(this.state.data,t,this.options);return this.#o({data:r,type:"success",dataUpdatedAt:a?.updatedAt,manual:a?.manual}),r}setState(t){this.#o({type:"setState",state:t})}cancel(t){const a=this.#i?.promise;return this.#i?.cancel(t),a?a.then(Ba).catch(Ba):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>bC(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===zg||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>Df(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!yC(this.state.dataUpdatedAt,t)}onFocus(){this.observers.find(a=>a.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(a=>a.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),this.#n.notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(a=>a!==t),this.observers.length||(this.#i&&(this.#s||this.#c()?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#n.notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}#c(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"}invalidate(){this.state.isInvalidated||this.#o({type:"invalidate"})}async fetch(t,a){if(this.state.fetchStatus!=="idle"&&this.#i?.status()!=="rejected"){if(this.state.data!==void 0&&a?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(t&&this.setOptions(t),!this.options.queryFn){const g=this.observers.find(h=>h.options.queryFn);g&&this.setOptions(g.options)}const r=new AbortController,s=g=>{Object.defineProperty(g,"signal",{enumerable:!0,get:()=>(this.#s=!0,r.signal)})},l=()=>{const g=kj(this.options,a),x=(()=>{const b={client:this.#r,queryKey:this.queryKey,meta:this.meta};return s(b),b})();return this.#s=!1,this.options.persister?this.options.persister(g,x,this):g(x)},u=(()=>{const g={fetchOptions:a,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:l};return s(g),g})();(this.#e==="infinite"?EC(this.options.pages):this.options.behavior)?.onFetch(u,this),this.#a=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==u.fetchOptions?.meta)&&this.#o({type:"fetch",meta:u.fetchOptions?.meta}),this.#i=Cj({initialPromise:a?.initialPromise,fn:u.fetchFn,onCancel:g=>{g instanceof Vf&&g.revert&&this.setState({...this.#a,fetchStatus:"idle"}),r.abort()},onFail:(g,h)=>{this.#o({type:"failed",failureCount:g,error:h})},onPause:()=>{this.#o({type:"pause"})},onContinue:()=>{this.#o({type:"continue"})},retry:u.options.retry,retryDelay:u.options.retryDelay,networkMode:u.options.networkMode,canRun:()=>!0});try{const g=await this.#i.start();if(g===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(g),this.#n.config.onSuccess?.(g,this),this.#n.config.onSettled?.(g,this.state.error,this),g}catch(g){if(g instanceof Vf){if(g.silent)return this.#i.promise;if(g.revert){if(this.state.data===void 0)throw g;return this.state.data}}throw this.#o({type:"error",error:g}),this.#n.config.onError?.(g,this),this.#n.config.onSettled?.(this.state.data,g,this),g}finally{this.scheduleGc()}}#o(t){const a=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...OC(r.data,this.options),fetchMeta:t.meta??null};case"success":const s={...r,...hw(t.data,t.dataUpdatedAt),dataUpdateCount:r.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#a=t.manual?s:void 0,s;case"error":const l=t.error;return{...r,error:l,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:l,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=a(this.state),$t.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),this.#n.notify({query:this,type:"updated",action:t})})}};function OC(t,a){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Ij(a.networkMode)?"fetching":"paused",...t===void 0&&{error:null,status:"pending"}}}function hw(t,a){return{data:t,dataUpdatedAt:a??Date.now(),error:null,isInvalidated:!1,status:"success"}}function fw(t){const a=typeof t.initialData=="function"?t.initialData():t.initialData,r=a!==void 0,s=r?typeof t.initialDataUpdatedAt=="function"?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:a,dataUpdateCount:0,dataUpdatedAt:r?s??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:r?"success":"pending",fetchStatus:"idle"}}var DC=class extends Mj{#e;#t;#a;#n;constructor(t){super(),this.#e=t.client,this.mutationId=t.mutationId,this.#a=t.mutationCache,this.#t=[],this.state=t.state||LC(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){this.#t.includes(t)||(this.#t.push(t),this.clearGcTimeout(),this.#a.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.#t=this.#t.filter(a=>a!==t),this.scheduleGc(),this.#a.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.#t.length||(this.state.status==="pending"?this.scheduleGc():this.#a.remove(this))}continue(){return this.#n?.continue()??this.execute(this.state.variables)}async execute(t){const a=()=>{this.#r({type:"continue"})},r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#n=Cj({fn:()=>this.options.mutationFn?this.options.mutationFn(t,r):Promise.reject(new Error("No mutationFn found")),onFail:(d,u)=>{this.#r({type:"failed",failureCount:d,error:u})},onPause:()=>{this.#r({type:"pause"})},onContinue:a,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#a.canRun(this)});const s=this.state.status==="pending",l=!this.#n.canStart();try{if(s)a();else{this.#r({type:"pending",variables:t,isPaused:l}),this.#a.config.onMutate&&await this.#a.config.onMutate(t,this,r);const u=await this.options.onMutate?.(t,r);u!==this.state.context&&this.#r({type:"pending",context:u,variables:t,isPaused:l})}const d=await this.#n.start();return await this.#a.config.onSuccess?.(d,t,this.state.context,this,r),await this.options.onSuccess?.(d,t,this.state.context,r),await this.#a.config.onSettled?.(d,null,this.state.variables,this.state.context,this,r),await this.options.onSettled?.(d,null,t,this.state.context,r),this.#r({type:"success",data:d}),d}catch(d){try{await this.#a.config.onError?.(d,t,this.state.context,this,r)}catch(u){Promise.reject(u)}try{await this.options.onError?.(d,t,this.state.context,r)}catch(u){Promise.reject(u)}try{await this.#a.config.onSettled?.(void 0,d,this.state.variables,this.state.context,this,r)}catch(u){Promise.reject(u)}try{await this.options.onSettled?.(void 0,d,t,this.state.context,r)}catch(u){Promise.reject(u)}throw this.#r({type:"error",error:d}),d}finally{this.#a.runNext(this)}}#r(t){const a=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=a(this.state),$t.batch(()=>{this.#t.forEach(r=>{r.onMutationUpdate(t)}),this.#a.notify({mutation:this,type:"updated",action:t})})}};function LC(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var VC=class extends Ou{constructor(t={}){super(),this.config=t,this.#e=new Set,this.#t=new Map,this.#a=0}#e;#t;#a;build(t,a,r){const s=new DC({client:t,mutationCache:this,mutationId:++this.#a,options:t.defaultMutationOptions(a),state:r});return this.add(s),s}add(t){this.#e.add(t);const a=gd(t);if(typeof a=="string"){const r=this.#t.get(a);r?r.push(t):this.#t.set(a,[t])}this.notify({type:"added",mutation:t})}remove(t){if(this.#e.delete(t)){const a=gd(t);if(typeof a=="string"){const r=this.#t.get(a);if(r)if(r.length>1){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}else r[0]===t&&this.#t.delete(a)}}this.notify({type:"removed",mutation:t})}canRun(t){const a=gd(t);if(typeof a=="string"){const s=this.#t.get(a)?.find(l=>l.state.status==="pending");return!s||s===t}else return!0}runNext(t){const a=gd(t);return typeof a=="string"?this.#t.get(a)?.find(s=>s!==t&&s.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){$t.batch(()=>{this.#e.forEach(t=>{this.notify({type:"removed",mutation:t})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(t){const a={exact:!0,...t};return this.getAll().find(r=>dw(a,r))}findAll(t={}){return this.getAll().filter(a=>dw(t,a))}notify(t){$t.batch(()=>{this.listeners.forEach(a=>{a(t)})})}resumePausedMutations(){const t=this.getAll().filter(a=>a.state.isPaused);return $t.batch(()=>Promise.all(t.map(a=>a.continue().catch(Ba))))}};function gd(t){return t.options.scope?.id}var _C=class extends Ou{constructor(t={}){super(),this.config=t,this.#e=new Map}#e;build(t,a,r){const s=a.queryKey,l=a.queryHash??_g(s,a);let d=this.get(l);return d||(d=new PC({client:t,queryKey:s,queryHash:l,options:t.defaultQueryOptions(a),state:r,defaultOptions:t.getQueryDefaults(s)}),this.add(d)),d}add(t){this.#e.has(t.queryHash)||(this.#e.set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const a=this.#e.get(t.queryHash);a&&(t.destroy(),a===t&&this.#e.delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){$t.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return this.#e.get(t)}getAll(){return[...this.#e.values()]}find(t){const a={exact:!0,...t};return this.getAll().find(r=>cw(a,r))}findAll(t={}){const a=this.getAll();return Object.keys(t).length>0?a.filter(r=>cw(t,r)):a}notify(t){$t.batch(()=>{this.listeners.forEach(a=>{a(t)})})}onFocus(){$t.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){$t.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},zC=class{#e;#t;#a;#n;#r;#i;#l;#s;constructor(t={}){this.#e=t.queryCache||new _C,this.#t=t.mutationCache||new VC,this.#a=t.defaultOptions||{},this.#n=new Map,this.#r=new Map,this.#i=0}mount(){this.#i++,this.#i===1&&(this.#l=Nj.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=cu.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#i--,this.#i===0&&(this.#l?.(),this.#l=void 0,this.#s?.(),this.#s=void 0)}isFetching(t){return this.#e.findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return this.#t.findAll({...t,status:"pending"}).length}getQueryData(t){const a=this.defaultQueryOptions({queryKey:t});return this.#e.get(a.queryHash)?.state.data}ensureQueryData(t){const a=this.defaultQueryOptions(t),r=this.#e.build(this,a),s=r.state.data;return s===void 0?this.fetchQuery(t):(t.revalidateIfStale&&r.isStaleByTime(Df(a.staleTime,r))&&this.prefetchQuery(a),Promise.resolve(s))}getQueriesData(t){return this.#e.findAll(t).map(({queryKey:a,state:r})=>{const s=r.data;return[a,s]})}setQueryData(t,a,r){const s=this.defaultQueryOptions({queryKey:t}),d=this.#e.get(s.queryHash)?.state.data,u=gC(a,d);if(u!==void 0)return this.#e.build(this,s).setData(u,{...r,manual:!0})}setQueriesData(t,a,r){return $t.batch(()=>this.#e.findAll(t).map(({queryKey:s})=>[s,this.setQueryData(s,a,r)]))}getQueryState(t){const a=this.defaultQueryOptions({queryKey:t});return this.#e.get(a.queryHash)?.state}removeQueries(t){const a=this.#e;$t.batch(()=>{a.findAll(t).forEach(r=>{a.remove(r)})})}resetQueries(t,a){const r=this.#e;return $t.batch(()=>(r.findAll(t).forEach(s=>{s.reset()}),this.refetchQueries({type:"active",...t},a)))}cancelQueries(t,a={}){const r={revert:!0,...a},s=$t.batch(()=>this.#e.findAll(t).map(l=>l.cancel(r)));return Promise.all(s).then(Ba).catch(Ba)}invalidateQueries(t,a={}){return $t.batch(()=>(this.#e.findAll(t).forEach(r=>{r.invalidate()}),t?.refetchType==="none"?Promise.resolve():this.refetchQueries({...t,type:t?.refetchType??t?.type??"active"},a)))}refetchQueries(t,a={}){const r={...a,cancelRefetch:a.cancelRefetch??!0},s=$t.batch(()=>this.#e.findAll(t).filter(l=>!l.isDisabled()&&!l.isStatic()).map(l=>{let d=l.fetch(void 0,r);return r.throwOnError||(d=d.catch(Ba)),l.state.fetchStatus==="paused"?Promise.resolve():d}));return Promise.all(s).then(Ba)}fetchQuery(t){const a=this.defaultQueryOptions(t);a.retry===void 0&&(a.retry=!1);const r=this.#e.build(this,a);return r.isStaleByTime(Df(a.staleTime,r))?r.fetch(a):Promise.resolve(r.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(Ba).catch(Ba)}fetchInfiniteQuery(t){return t._type="infinite",this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(Ba).catch(Ba)}ensureInfiniteQueryData(t){return t._type="infinite",this.ensureQueryData(t)}resumePausedMutations(){return cu.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#a}setDefaultOptions(t){this.#a=t}setQueryDefaults(t,a){this.#n.set(Rl(t),{queryKey:t,defaultOptions:a})}getQueryDefaults(t){const a=[...this.#n.values()],r={};return a.forEach(s=>{Pl(t,s.queryKey)&&Object.assign(r,s.defaultOptions)}),r}setMutationDefaults(t,a){this.#r.set(Rl(t),{mutationKey:t,defaultOptions:a})}getMutationDefaults(t){const a=[...this.#r.values()],r={};return a.forEach(s=>{Pl(t,s.mutationKey)&&Object.assign(r,s.defaultOptions)}),r}defaultQueryOptions(t){if(t._defaulted)return t;const a={...this.#a.queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return a.queryHash||(a.queryHash=_g(a.queryKey,a)),a.refetchOnReconnect===void 0&&(a.refetchOnReconnect=a.networkMode!=="always"),a.throwOnError===void 0&&(a.throwOnError=!!a.suspense),!a.networkMode&&a.persister&&(a.networkMode="offlineFirst"),a.queryFn===zg&&(a.enabled=!1),a}defaultMutationOptions(t){return t?._defaulted?t:{...this.#a.mutations,...t?.mutationKey&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},qC=y.createContext(void 0),FC=({client:t,children:a})=>(y.useEffect(()=>(t.mount(),()=>{t.unmount()}),[t]),e.jsx(qC.Provider,{value:t,children:a})),Ph,gw;function BC(){if(gw)return Ph;gw=1;var t=typeof Element<"u",a=typeof Map=="function",r=typeof Set=="function",s=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function l(d,u){if(d===u)return!0;
9if(d&&u&&typeof d=="object"&&typeof u=="object"){if(d.constructor!==u.constructor)return!1;var p,g,h;if(Array.isArray(d)){if(p=d.length,p!=u.length)return!1;for(g=p;g--!==0;)if(!l(d[g],u[g]))return!1;return!0}var x;if(a&&d instanceof Map&&u instanceof Map){if(d.size!==u.size)return!1;for(x=d.entries();!(g=x.next()).done;)if(!u.has(g.value[0]))return!1;for(x=d.entries();!(g=x.next()).done;)if(!l(g.value[1],u.get(g.value[0])))return!1;return!0}if(r&&d instanceof Set&&u instanceof Set){if(d.size!==u.size)return!1;for(x=d.entries();!(g=x.next()).done;)if(!u.has(g.value[0]))return!1;return!0}if(s&&ArrayBuffer.isView(d)&&ArrayBuffer.isView(u)){if(p=d.length,p!=u.length)return!1;for(g=p;g--!==0;)if(d[g]!==u[g])return!1;return!0}if(d.constructor===RegExp)return d.source===u.source&&d.flags===u.flags;if(d.valueOf!==Object.prototype.valueOf&&typeof d.valueOf=="function"&&typeof u.valueOf=="function")return d.valueOf()===u.valueOf();if(d.toString!==Object.prototype.toString&&typeof d.toString=="function"&&typeof u.toString=="function")return d.toString()===u.toString();if(h=Object.keys(d),p=h.length,p!==Object.keys(u).length)return!1;for(g=p;g--!==0;)if(!Object.prototype.hasOwnProperty.call(u,h[g]))return!1;if(t&&d instanceof Element)return!1;for(g=p;g--!==0;)if(!((h[g]==="_owner"||h[g]==="__v"||h[g]==="__o")&&d.$$typeof)&&!l(d[h[g]],u[h[g]]))return!1;return!0}return d!==d&&u!==u}return Ph=function(u,p){try{return l(u,p)}catch(g){if((g.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw g}},Ph}var HC=BC();const GC=Tu(HC);var Oh,xw;function UC(){if(xw)return Oh;xw=1;var t=function(a,r,s,l,d,u,p,g){if(!a){var h;if(r===void 0)h=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var x=[s,l,d,u,p,g],b=0;h=new Error(r.replace(/%s/g,function(){return x[b++]})),h.name="Invariant Violation"}throw h.framesToPop=1,h}};return Oh=t,Oh}var XC=UC();const yw=Tu(XC);var Dh,bw;function $C(){return bw||(bw=1,Dh=function(a,r,s,l){var d=s?s.call(l,a,r):void 0;if(d!==void 0)return!!d;if(a===r)return!0;if(typeof a!="object"||!a||typeof r!="object"||!r)return!1;var u=Object.keys(a),p=Object.keys(r);if(u.length!==p.length)return!1;for(var g=Object.prototype.hasOwnProperty.bind(r),h=0;h<u.length;h++){var x=u[h];if(!g(x))return!1;var b=a[x],w=r[x];if(d=s?s.call(l,b,w,x):void 0,d===!1||d===void 0&&b!==w)return!1}return!0}),Dh}var WC=$C();const KC=Tu(WC);var Tj=(t=>(t.BASE="base",t.BODY="body",t.HEAD="head",t.HTML="html",t.LINK="link",t.META="meta",t.NOSCRIPT="noscript",t.SCRIPT="script",t.STYLE="style",t.TITLE="title",t.FRAGMENT="Symbol(react.fragment)",t))(Tj||{}),Lh={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]},meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}},vw=Object.values(Tj),Du={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},Ej=Object.entries(Du).reduce((t,[a,r])=>(t[r]=a,t),{}),Ga="data-rh",zs={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},qs=(t,a)=>{for(let r=t.length-1;r>=0;r-=1){const s=t[r];if(Object.prototype.hasOwnProperty.call(s,a))return s[a]}return null},YC=t=>{let a=qs(t,"title");const r=qs(t,zs.TITLE_TEMPLATE);if(Array.isArray(a)&&(a=a.join("")),r&&a)return r.replace(/%s/g,()=>a);const s=qs(t,zs.DEFAULT_TITLE);return a||s||void 0},QC=t=>qs(t,zs.ON_CHANGE_CLIENT_STATE)||(()=>{}),Vh=(t,a)=>a.filter(r=>typeof r[t]<"u").map(r=>r[t]).reduce((r,s)=>({...r,...s}),{}),ZC=(t,a)=>a.filter(r=>typeof r.base<"u").map(r=>r.base).reverse().reduce((r,s)=>{if(!r.length){const l=Object.keys(s);for(let d=0;d<l.length;d+=1){const p=l[d].toLowerCase();if(t.indexOf(p)!==-1&&s[p])return r.concat(s)}}return r},[]),JC=t=>console&&typeof console.warn=="function"&&console.warn(t),sl=(t,a,r)=>{const s={};return r.filter(l=>Array.isArray(l[t])?!0:(typeof l[t]<"u"&&JC(`Helmet: ${t} should be of type "Array". Instead found type "${typeof l[t]}"`),!1)).map(l=>l[t]).reverse().reduce((l,d)=>{const u={};d.filter(g=>{let h;const x=Object.keys(g);for(let w=0;w<x.length;w+=1){const N=x[w],A=N.toLowerCase();
9a.indexOf(A)!==-1&&!(h==="rel"&&g[h].toLowerCase()==="canonical")&&!(A==="rel"&&g[A].toLowerCase()==="stylesheet")&&(h=A),a.indexOf(N)!==-1&&(N==="innerHTML"||N==="cssText"||N==="itemprop")&&(h=N)}if(!h||!g[h])return!1;const b=g[h].toLowerCase();return s[h]||(s[h]={}),u[h]||(u[h]={}),s[h][b]?!1:(u[h][b]=!0,!0)}).reverse().forEach(g=>l.push(g));const p=Object.keys(u);for(let g=0;g<p.length;g+=1){const h=p[g],x={...s[h],...u[h]};s[h]=x}return l},[]).reverse()},e6=(t,a)=>{if(Array.isArray(t)&&t.length){for(let r=0;r<t.length;r+=1)if(t[r][a])return!0}return!1},t6=t=>({baseTag:ZC(["href"],t),bodyAttributes:Vh("bodyAttributes",t),defer:qs(t,zs.DEFER),encode:qs(t,zs.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:Vh("htmlAttributes",t),linkTags:sl("link",["rel","href"],t),metaTags:sl("meta",["name","charset","http-equiv","property","itemprop"],t),noscriptTags:sl("noscript",["innerHTML"],t),onChangeClientState:QC(t),scriptTags:sl("script",["src","innerHTML"],t),styleTags:sl("style",["cssText"],t),title:YC(t),titleAttributes:Vh("titleAttributes",t),prioritizeSeoTags:e6(t,zs.PRIORITIZE_SEO_TAGS)}),Rj=t=>Array.isArray(t)?t.join(""):t,a6=(t,a)=>{const r=Object.keys(t);for(let s=0;s<r.length;s+=1)if(a[r[s]]&&a[r[s]].includes(t[r[s]]))return!0;return!1},_h=(t,a)=>Array.isArray(t)?t.reduce((r,s)=>(a6(s,a)?r.priority.push(s):r.default.push(s),r),{priority:[],default:[]}):{default:t,priority:[]},ww=(t,a)=>({...t,[a]:void 0}),i6=["noscript","script","style"],_f=(t,a=!0)=>a===!1?String(t):String(t).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;"),Pj=t=>Object.keys(t).reduce((a,r)=>{const s=typeof t[r]<"u"?`${r}="${t[r]}"`:`${r}`;return a?`${a} ${s}`:s},""),n6=(t,a,r,s)=>{const l=Pj(r),d=Rj(a);return l?`<${t} ${Ga}="true" ${l}>${_f(d,s)}</${t}>`:`<${t} ${Ga}="true">${_f(d,s)}</${t}>`},r6=(t,a,r=!0)=>a.reduce((s,l)=>{const d=l,u=Object.keys(d).filter(h=>!(h==="innerHTML"||h==="cssText")).reduce((h,x)=>{const b=typeof d[x]>"u"?x:`${x}="${_f(d[x],r)}"`;return h?`${h} ${b}`:b},""),p=d.innerHTML||d.cssText||"",g=i6.indexOf(t)===-1;return`${s}<${t} ${Ga}="true" ${u}${g?"/>":`>${p}</${t}>`}`},""),Oj=(t,a={})=>Object.keys(t).reduce((r,s)=>{const l=Du[s];return r[l||s]=t[s],r},a),s6=(t,a,r)=>{const s={key:a,[Ga]:!0},l=Oj(r,s);return[pt.createElement("title",l,a)]},Gd=(t,a)=>a.map((r,s)=>{const l={key:s,[Ga]:!0};return Object.keys(r).forEach(d=>{const p=Du[d]||d;if(p==="innerHTML"||p==="cssText"){const g=r.innerHTML||r.cssText;l.dangerouslySetInnerHTML={__html:g}}else l[p]=r[d]}),pt.createElement(t,l)}),Ra=(t,a,r=!0)=>{switch(t){case"title":return{toComponent:()=>s6(t,a.title,a.titleAttributes),toString:()=>n6(t,a.title,a.titleAttributes,r)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>Oj(a),toString:()=>Pj(a)};default:return{toComponent:()=>Gd(t,a),toString:()=>r6(t,a,r)}}},o6=({metaTags:t,linkTags:a,scriptTags:r,encode:s})=>{const l=_h(t,Lh.meta),d=_h(a,Lh.link),u=_h(r,Lh.script);return{priorityMethods:{toComponent:()=>[...Gd("meta",l.priority),...Gd("link",d.priority),...Gd("script",u.priority)],toString:()=>`${Ra("meta",l.priority,s)} ${Ra("link",d.priority,s)} ${Ra("script",u.priority,s)}`},metaTags:l.default,linkTags:d.default,scriptTags:u.default}},l6=t=>{const{baseTag:a,bodyAttributes:r,encode:s=!0,htmlAttributes:l,noscriptTags:d,styleTags:u,title:p="",titleAttributes:g,prioritizeSeoTags:h}=t;let{linkTags:x,metaTags:b,scriptTags:w}=t,N={toComponent:()=>[],toString:()=>""};return h&&({priorityMethods:N,linkTags:x,metaTags:b,scriptTags:w}=o6(t)),{priority:N,base:Ra("base",a,s),bodyAttributes:Ra("bodyAttributes",r,s),htmlAttributes:Ra("htmlAttributes",l,s),link:Ra("link",x,s),meta:Ra("meta",b,s),noscript:Ra("noscript",d,s),script:Ra("script",w,s),style:Ra("style",u,s),title:Ra("title",{title:p,titleAttributes:g},s)}},zf=l6,xd=[],qg=!!(typeof window<"u"&&window.document&&window.document.createElement),qf=class{instances=[];canUseDOM=qg;context;value={setHelmet:t=>{this.context.helmet=t},helmetInstances:{get:()=>this.canUseDOM?xd:this.instances,add:t=>{(this.canUseDOM?xd:this.instances).push(t)},remove:t=>{const a=(this.canUseDOM?xd:this.instances).indexOf(t);(this.canUseDOM?xd:this.instances).splice(a,1)}}};
9constructor(t,a){this.context=t,this.canUseDOM=a||!1,a||(t.helmet=zf({baseTag:[],bodyAttributes:{},htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},c6=parseInt(pt.version.split(".")[0],10),Ff=c6>=19,d6={},Dj=pt.createContext(d6),Lj=class Vj extends y.Component{static canUseDOM=qg;helmetData;constructor(a){super(a),Ff?this.helmetData=null:this.helmetData=new qf(this.props.context||{},Vj.canUseDOM)}render(){return Ff?pt.createElement(pt.Fragment,null,this.props.children):pt.createElement(Dj.Provider,{value:this.helmetData.value},this.props.children)}},xs=(t,a)=>{const r=document.head||document.querySelector("head"),s=r.querySelectorAll(`${t}[${Ga}]`),l=[].slice.call(s),d=[];let u;return a&&a.length&&a.forEach(p=>{const g=document.createElement(t);for(const h in p)if(Object.prototype.hasOwnProperty.call(p,h))if(h==="innerHTML")g.innerHTML=p.innerHTML;else if(h==="cssText"){const x=p.cssText;g.appendChild(document.createTextNode(x))}else{const x=h,b=typeof p[x]>"u"?"":p[x];g.setAttribute(h,b)}g.setAttribute(Ga,"true"),l.some((h,x)=>(u=x,g.isEqualNode(h)))?l.splice(u,1):d.push(g)}),l.forEach(p=>p.parentNode?.removeChild(p)),d.forEach(p=>r.appendChild(p)),{oldTags:l,newTags:d}},Bf=(t,a)=>{const r=document.getElementsByTagName(t)[0];if(!r)return;const s=r.getAttribute(Ga),l=s?s.split(","):[],d=[...l],u=Object.keys(a);for(const p of u){const g=a[p]||"";r.getAttribute(p)!==g&&r.setAttribute(p,g),l.indexOf(p)===-1&&l.push(p);const h=d.indexOf(p);h!==-1&&d.splice(h,1)}for(let p=d.length-1;p>=0;p-=1)r.removeAttribute(d[p]);l.length===d.length?r.removeAttribute(Ga):r.getAttribute(Ga)!==u.join(",")&&r.setAttribute(Ga,u.join(","))},u6=(t,a)=>{typeof t<"u"&&document.title!==t&&(document.title=Rj(t)),Bf("title",a)},jw=(t,a)=>{const{baseTag:r,bodyAttributes:s,htmlAttributes:l,linkTags:d,metaTags:u,noscriptTags:p,onChangeClientState:g,scriptTags:h,styleTags:x,title:b,titleAttributes:w}=t;Bf("body",s),Bf("html",l),u6(b,w);const N={baseTag:xs("base",r),linkTags:xs("link",d),metaTags:xs("meta",u),noscriptTags:xs("noscript",p),scriptTags:xs("script",h),styleTags:xs("style",x)},A={},k={};Object.keys(N).forEach(I=>{const{newTags:T,oldTags:E}=N[I];T.length&&(A[I]=T),E.length&&(k[I]=N[I].oldTags)}),a&&a(),g(t,A,k)},ol=null,m6=t=>{ol&&cancelAnimationFrame(ol),t.defer?ol=requestAnimationFrame(()=>{jw(t,()=>{ol=null})}):(jw(t),ol=null)},p6=m6,Nw=class extends y.Component{rendered=!1;shouldComponentUpdate(t){return!KC(t,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:t}=this.props.context;t.remove(this),this.emitChange()}emitChange(){const{helmetInstances:t,setHelmet:a}=this.props.context;let r=null;const s=t6(t.get().map(l=>{const{context:d,...u}=l.props;return u}));Lj.canUseDOM?p6(s):zf&&(r=zf(s)),a(r)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:t}=this.props.context;t.add(this),this.emitChange()}render(){return this.init(),null}},Ud=[],Aw=t=>{const a={};for(const r of Object.keys(t))a[Ej[r]||r]=t[r];return a},sr=t=>{const a={};for(const r of Object.keys(t)){const s=Du[r];a[s||r]=t[r]}return a},kw=(t,a)=>{if(!qg)return;const r=document.getElementsByTagName(t)[0];if(!r)return;const s="data-rh-managed",l=r.getAttribute(s),d=l?l.split(","):[],u=Object.keys(a);for(const p of d)u.includes(p)||r.removeAttribute(p);for(const p of u){const g=a[p];g==null||g===!1?r.removeAttribute(p):g===!0?r.setAttribute(p,""):r.setAttribute(p,String(g))}u.length>0?r.setAttribute(s,u.join(",")):r.removeAttribute(s)},zh=()=>{const t={},a={};for(const r of Ud){const{htmlAttributes:s,bodyAttributes:l}=r.props;s&&Object.assign(t,Aw(s)),l&&Object.assign(a,Aw(l))}kw("html",t),kw("body",a)},h6=class extends y.Component{componentDidMount(){Ud.push(this),zh()}componentDidUpdate(){zh()}componentWillUnmount(){const t=Ud.indexOf(this);t!==-1&&Ud.splice(t,1),zh()}resolveTitle(){const{title:t,titleTemplate:a,defaultTitle:r}=this.props;return t&&a?a.replace(/%s/g,()=>Array.isArray(t)?t.join(""):t):t||r||void 0}renderTitle(){const t=this.resolveTitle();if(t===void 0)return null;const a=this.props.titleAttributes||{};return pt.createElement("title",sr(a),t)}renderBase(){const{base:t}=this.props;return t?pt.createElement("base",sr(t)):null}renderMeta(){const{meta:t}=this.props;return!t||!Array.isArray(t)?null:t.map((a,r)=>
9pt.createElement("meta",{key:r,...sr(a)}))}renderLink(){const{link:t}=this.props;return!t||!Array.isArray(t)?null:t.map((a,r)=>pt.createElement("link",{key:r,...sr(a)}))}renderScript(){const{script:t}=this.props;return!t||!Array.isArray(t)?null:t.map((a,r)=>{const{innerHTML:s,...l}=a,d=sr(l);return s&&(d.dangerouslySetInnerHTML={__html:s}),pt.createElement("script",{key:r,...d})})}renderStyle(){const{style:t}=this.props;return!t||!Array.isArray(t)?null:t.map((a,r)=>{const{cssText:s,...l}=a,d=sr(l);return s&&(d.dangerouslySetInnerHTML={__html:s}),pt.createElement("style",{key:r,...d})})}renderNoscript(){const{noscript:t}=this.props;return!t||!Array.isArray(t)?null:t.map((a,r)=>{const{innerHTML:s,...l}=a,d=sr(l);return s&&(d.dangerouslySetInnerHTML={__html:s}),pt.createElement("noscript",{key:r,...d})})}render(){return pt.createElement(pt.Fragment,null,this.renderTitle(),this.renderBase(),this.renderMeta(),this.renderLink(),this.renderScript(),this.renderStyle(),this.renderNoscript())}},st=class extends y.Component{static defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1};shouldComponentUpdate(t){return!GC(ww(this.props,"helmetData"),ww(t,"helmetData"))}mapNestedChildrenToProps(t,a){if(!a)return null;switch(t.type){case"script":case"noscript":return{innerHTML:a};case"style":return{cssText:a};default:throw new Error(`<${t.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(t,a,r,s){return{...a,[t.type]:[...a[t.type]||[],{...r,...this.mapNestedChildrenToProps(t,s)}]}}mapObjectTypeChildren(t,a,r,s){switch(t.type){case"title":return{...a,[t.type]:s,titleAttributes:{...r}};case"body":return{...a,bodyAttributes:{...r}};case"html":return{...a,htmlAttributes:{...r}};default:return{...a,[t.type]:{...r}}}}mapArrayTypeChildrenToProps(t,a){let r={...a};return Object.keys(t).forEach(s=>{r={...r,[s]:t[s]}}),r}warnOnInvalidChildren(t,a){return yw(vw.some(r=>t.type===r),typeof t.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${vw.join(", ")} are allowed. Helmet does not support rendering <${t.type}> elements. Refer to our API for more information.`),yw(!a||typeof a=="string"||Array.isArray(a)&&!a.some(r=>typeof r!="string"),`Helmet expects a string as a child of <${t.type}>. Did you forget to wrap your children in braces? ( <${t.type}>{\`\`}</${t.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(t,a){let r={};return pt.Children.forEach(t,s=>{if(!s||!s.props)return;const{children:l,...d}=s.props,u=Object.keys(d).reduce((g,h)=>(g[Ej[h]||h]=d[h],g),{});let{type:p}=s;
9switch(typeof p=="symbol"?p=p.toString():this.warnOnInvalidChildren(s,l),p){case"Symbol(react.fragment)":a=this.mapChildrenToProps(l,a);break;case"link":case"meta":case"noscript":case"script":case"style":r=this.flattenArrayTypeChildren(s,r,u,l);break;default:a=this.mapObjectTypeChildren(s,a,u,l);break}}),this.mapArrayTypeChildrenToProps(r,a)}render(){const{children:t,...a}=this.props;let r={...a},{helmetData:s}=a;if(t&&(r=this.mapChildrenToProps(t,r)),s&&!(s instanceof qf)){const l=s;s=new qf(l.context,!0),delete r.helmetData}return Ff?pt.createElement(h6,{...r}):s?pt.createElement(Nw,{...r,context:s.value}):pt.createElement(Dj.Consumer,null,l=>pt.createElement(Nw,{...r,context:l}))}};const f6=1,g6=1e6;let qh=0;function x6(){return qh=(qh+1)%Number.MAX_SAFE_INTEGER,qh.toString()}const Fh=new Map,Sw=t=>{if(Fh.has(t))return;const a=setTimeout(()=>{Fh.delete(t),Al({type:"REMOVE_TOAST",toastId:t})},g6);Fh.set(t,a)},y6=(t,a)=>{switch(a.type){case"ADD_TOAST":return{...t,toasts:[a.toast,...t.toasts].slice(0,f6)};case"UPDATE_TOAST":return{...t,toasts:t.toasts.map(r=>r.id===a.toast.id?{...r,...a.toast}:r)};case"DISMISS_TOAST":{const{toastId:r}=a;return r?Sw(r):t.toasts.forEach(s=>{Sw(s.id)}),{...t,toasts:t.toasts.map(s=>
9s.id===r||r===void 0?{...s,open:!1}:s)}}case"REMOVE_TOAST":return a.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(r=>r.id!==a.toastId)}}},Xd=[];let $d={toasts:[]};function Al(t){$d=y6($d,t),Xd.forEach(a=>{a($d)})}function b6({...t}){const a=x6(),r=l=>Al({type:"UPDATE_TOAST",toast:{...l,id:a}}),s=()=>Al({type:"DISMISS_TOAST",toastId:a});return Al({type:"ADD_TOAST",toast:{...t,id:a,open:!0,onOpenChange:l=>{l||s()}}}),{id:a,dismiss:s,update:r}}function _j(){const[t,a]=y.useState($d);return y.useEffect(()=>(Xd.push(a),()=>{const r=Xd.indexOf(a);r>-1&&Xd.splice(r,1)}),[t]),{...t,toast:b6,dismiss:r=>Al({type:"DISMISS_TOAST",toastId:r})}}var Lu=mj();function He(t,a,{checkForDefaultPrevented:r=!0}={}){return function(l){if(t?.(l),r===!1||!l.defaultPrevented)return a?.(l)}}function Iw(t,a){if(typeof t=="function")return t(a);t!=null&&(t.current=a)}function Gs(...t){return a=>{let r=!1;const s=t.map(l=>{const d=Iw(l,a);return!r&&typeof d=="function"&&(r=!0),d});if(r)return()=>{for(let l=0;l<s.length;l++){const d=s[l];typeof d=="function"?d():Iw(t[l],null)}}}}function Bt(...t){return y.useCallback(Gs(...t),t)}function Ir(t,a=[]){let r=[];function s(d,u){const p=y.createContext(u);p.displayName=d+"Context";const g=r.length;r=[...r,u];const h=b=>{const{scope:w,children:N,...A}=b,k=w?.[t]?.[g]||p,I=y.useMemo(()=>A,Object.values(A));return e.jsx(k.Provider,{value:I,children:N})};h.displayName=d+"Provider";function x(b,w){const N=w?.[t]?.[g]||p,A=y.useContext(N);if(A)return A;if(u!==void 0)return u;throw new Error(`\`${b}\` must be used within \`${d}\``)}return[h,x]}const l=()=>{const d=r.map(u=>y.createContext(u));return function(p){const g=p?.[t]||d;return y.useMemo(()=>({[`__scope${t}`]:{...p,[t]:g}}),[p,g])}};return l.scopeName=t,[s,v6(l,...a)]}function v6(...t){const a=t[0];if(t.length===1)return a;const r=()=>{const s=t.map(l=>({useScope:l(),scopeName:l.scopeName}));return function(d){const u=s.reduce((p,{useScope:g,scopeName:h})=>{const b=g(d)[`__scope${h}`];return{...p,...b}},{});return y.useMemo(()=>({[`__scope${a.scopeName}`]:u}),[u])}};return r.scopeName=a.scopeName,r}function Ol(t){const a=y.forwardRef((r,s)=>{let{children:l,...d}=r,u=null,p=!1;const g=[];Cw(l)&&typeof yd=="function"&&(l=yd(l._payload)),y.Children.forEach(l,w=>{if(S6(w)){p=!0;const N=w;let A="child"in N.props?N.props.child:N.props.children;Cw(A)&&typeof yd=="function"&&(A=yd(A._payload)),u=N6(N,A),g.push(u?.props?.children)}else g.push(w)}),u?u=y.cloneElement(u,void 0,g):!p&&y.Children.count(l)===1&&y.isValidElement(l)&&(u=l);const h=u?k6(u):void 0,x=Bt(s,h);if(!u){if(l||l===0)throw new Error(p?T6(t):M6(t));return l}const b=A6(d,u.props??{});return u.type!==y.Fragment&&(b.ref=s?x:h),y.cloneElement(u,b)});return a.displayName=`${t}.Slot`,a}var w6=Ol("Slot"),zj=Symbol.for("radix.slottable");function j6(t){const a=r=>"child"in r?r.children(r.child):r.children;return a.displayName=`${t}.Slottable`,a.__radixId=zj,a}var N6=(t,a)=>{if("child"in t.props){const r=t.props.child;return y.isValidElement(r)?y.cloneElement(r,void 0,t.props.children(r.props.children)):null}return y.isValidElement(a)?a:null};function A6(t,a){const r={...a};for(const s in a){const l=t[s],d=a[s];/^on[A-Z]/.test(s)?l&&d?r[s]=(...p)=>{const g=d(...p);return l(...p),g}:l&&(r[s]=l):s==="style"?r[s]={...l,...d}:s==="className"&&(r[s]=[l,d].filter(Boolean).join(" "))}return{...t,...r}}function k6(t){let a=Object.getOwnPropertyDescriptor(t.props,"ref")?.get,r=a&&"isReactWarning"in a&&a.isReactWarning;return r?t.ref:(a=Object.getOwnPropertyDescriptor(t,"ref")?.get,r=a&&"isReactWarning"in a&&a.isReactWarning,r?t.props.ref:t.props.ref||t.ref)}function S6(t){return y.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===zj}var I6=Symbol.for("react.lazy");function Cw(t){return t!=null&&typeof t=="object"&&"$$typeof"in t&&t.$$typeof===I6&&"_payload"in t&&C6(t._payload)}function C6(t){return typeof t=="object"&&t!==null&&"then"in t}var M6=t=>`${t} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,T6=t=>`${t} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,yd=Ru[" use ".trim().toString()];function qj(t){const a=t+"CollectionProvider",[r,s]=Ir(a),[l,d]=r(a,{collectionRef:{current:null},itemMap:new Map}),u=k=>{const{scope:I,children:T}=k,E=y.useRef(null),R=y.useRef(new Map).current;return e.jsx(l,{scope:I,itemMap:R,collectionRef:E,children:T})};u.displayName=a;const p=t+"CollectionSlot",g=Ol(p),h=y.forwardRef((k,I)=>{const{scope:T,children:E}=k,R=d(p,T),C=Bt(I,R.collectionRef);return e.jsx(g,{ref:C,children:E})});h.displayName=p;const x=t+"CollectionItemSlot",b="data-radix-collection-item",w=Ol(x),N=y.forwardRef((k,I)=>{const{scope:T,children:E,...R}=k,C=y.useRef(null),P=Bt(I,C),z=d(x,T);return y.useEffect(()=>(z.itemMap.set(C,{ref:C,...R}),()=>{z.itemMap.delete(C)})),e.jsx(w,{[b]:"",ref:P,children:E})});N.displayName=x;function A(k){const I=d(t+"CollectionConsumer",k);return y.useCallback(()=>{const E=I.collectionRef.current;if(!E)return[];const R=Array.from(E.querySelectorAll(`[${b}]`));return Array.from(I.itemMap.values()).sort((z,V)=>R.indexOf(z.ref.current)-R.indexOf(V.ref.current))},[I.collectionRef,I.itemMap])}return[{Provider:u,Slot:h,ItemSlot:N},A,s]}var E6=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],qe=E6.reduce((t,a)=>{const r=Ol(`Primitive.${a}`),s=y.forwardRef((l,d)=>{const{asChild:u,...p}=l,g=u?r:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(g,{...p,ref:d})});return s.displayName=`Primitive.${a}`,{...t,[a]:s}},{});function Fj(t,a){t&&Lu.flushSync(()=>t.dispatchEvent(a))}function Ka(t){const a=y.useRef(t);return y.useEffect(()=>{a.current=t}),y.useMemo(()=>((...r)=>a.current?.(...r)),[])}function R6(t,a=globalThis?.document){const r=Ka(t);y.useEffect(()=>{const s=l=>{l.key==="Escape"&&r(l)};return a.addEventListener("keydown",s,{capture:!0}),()=>a.removeEventListener("keydown",s,{capture:!0})},[r,a])}var P6="DismissableLayer",Hf="dismissableLayer.update",O6="dismissableLayer.pointerDownOutside",D6="dismissableLayer.focusOutside",Mw,Fg=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),Vu=y.forwardRef((t,a)=>{const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:s=!1,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:u,onInteractOutside:p,onDismiss:g,...h}=t,x=y.useContext(Fg),[b,w]=y.useState(null),N=b?.ownerDocument??globalThis?.document,[,A]=y.useState({}),k=Bt(a,K=>w(K)),I=Array.from(x.layers),[T]=[...x.layersWithOutsidePointerEventsDisabled].slice(-1),E=I.indexOf(T),R=b?I.indexOf(b):-1,C=x.layersWithOutsidePointerEventsDisabled.size>0,P=R>=E,z=y.useRef(!1),V=_6(K=>{const ne=K.target;if(!(ne instanceof Node))return;const le=[...x.branches].some(ce=>ce.contains(ne));!P||le||(d?.(K),p?.(K),K.defaultPrevented||g?.())},{ownerDocument:N,deferPointerDownOutside:s,isDeferredPointerDownOutsideRef:z,dismissableSurfaces:x.dismissableSurfaces}),D=z6(K=>{if(s&&z.current)return;const ne=K.target;[...x.branches].some(ce=>ce.contains(ne))||(u?.(K),p?.(K),K.defaultPrevented||g?.())},N);return R6(K=>{R===x.layers.size-1&&(l?.(K),!K.defaultPrevented&&g&&(K.preventDefault(),g()))},N),y.useEffect(()=>{if(b)return r&&(x.layersWithOutsidePointerEventsDisabled.size===0&&(Mw=N.body.style.pointerEvents,N.body.style.pointerEvents="none"),x.layersWithOutsidePointerEventsDisabled.add(b)),x.layers.add(b),Tw(),()=>{r&&(x.layersWithOutsidePointerEventsDisabled.delete(b),x.layersWithOutsidePointerEventsDisabled.size===0&&(N.body.style.pointerEvents=Mw))}},[b,N,r,x]),y.useEffect(()=>()=>{b&&(x.layers.delete(b),x.layersWithOutsidePointerEventsDisabled.delete(b),Tw())},[b,x]),y.useEffect(()=>{const K=()=>A({});return document.addEventListener(Hf,K),()=>document.removeEventListener(Hf,K)},[]),e.jsx(qe.div,{...h,ref:k,style:{pointerEvents:C?P?"auto":"none":void 0,...t.style},onFocusCapture:He(t.onFocusCapture,D.onFocusCapture),onBlurCapture:He(t.onBlurCapture,D.onBlurCapture),onPointerDownCapture:He(t.onPointerDownCapture,V.onPointerDownCapture)})});
9Vu.displayName=P6;var L6="DismissableLayerBranch",Bj=y.forwardRef((t,a)=>{const r=y.useContext(Fg),s=y.useRef(null),l=Bt(a,s);return y.useEffect(()=>{const d=s.current;if(d)return r.branches.add(d),()=>{r.branches.delete(d)}},[r.branches]),e.jsx(qe.div,{...t,ref:l})});Bj.displayName=L6;function V6(){const t=y.useContext(Fg),[a,r]=y.useState(null);return y.useEffect(()=>{if(a)return t.dismissableSurfaces.add(a),()=>{t.dismissableSurfaces.delete(a)}},[a,t.dismissableSurfaces]),r}function _6(t,a){const{ownerDocument:r=globalThis?.document,deferPointerDownOutside:s=!1,isDeferredPointerDownOutsideRef:l,dismissableSurfaces:d}=a,u=Ka(t),p=y.useRef(!1),g=y.useRef(!1),h=y.useRef(new Map),x=y.useRef(()=>{});return y.useEffect(()=>{function b(){g.current=!1,l.current=!1,h.current.clear()}function w(){return Array.from(h.current.values()).some(Boolean)}function N(E){if(!g.current)return;const R=E.target;R instanceof Node&&[...d].some(P=>P.contains(R))||h.current.set(E.type,!0),E.type==="click"&&window.setTimeout(()=>{g.current&&x.current()},0)}function A(E){g.current&&h.current.set(E.type,!1)}const k=E=>{if(E.target&&!p.current){let R=function(){r.removeEventListener("click",x.current);const P=w();b(),P||Hj(O6,u,C,{discrete:!0})};const C={originalEvent:E};g.current=!0,l.current=s&&E.button===0,h.current.clear(),!s||E.button!==0?R():(r.removeEventListener("click",x.current),x.current=R,r.addEventListener("click",x.current,{once:!0}))}else r.removeEventListener("click",x.current),b();p.current=!1},I=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const E of I)r.addEventListener(E,N,!0),r.addEventListener(E,A);const T=window.setTimeout(()=>{r.addEventListener("pointerdown",k)},0);return()=>{window.clearTimeout(T),r.removeEventListener("pointerdown",k),r.removeEventListener("click",x.current);for(const E of I)r.removeEventListener(E,N,!0),r.removeEventListener(E,A)}},[r,u,s,l,d]),{onPointerDownCapture:()=>p.current=!0}}function z6(t,a=globalThis?.document){const r=Ka(t),s=y.useRef(!1);return y.useEffect(()=>{const l=d=>{d.target&&!s.current&&Hj(D6,r,{originalEvent:d},{discrete:!1})};return a.addEventListener("focusin",l),()=>a.removeEventListener("focusin",l)},[a,r]),{onFocusCapture:()=>s.current=!0,onBlurCapture:()=>s.current=!1}}function Tw(){const t=new CustomEvent(Hf);document.dispatchEvent(t)}function Hj(t,a,r,{discrete:s}){const l=r.originalEvent.target,d=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:r});a&&l.addEventListener(t,a,{once:!0}),s?Fj(l,d):l.dispatchEvent(d)}var q6=Vu,F6=Bj,fi=globalThis?.document?y.useLayoutEffect:()=>{},B6="Portal",_u=y.forwardRef((t,a)=>{const{container:r,...s}=t,[l,d]=y.useState(!1);fi(()=>d(!0),[]);const u=r||l&&globalThis?.document?.body;return u?Lu.createPortal(e.jsx(qe.div,{...s,ref:a}),u):null});_u.displayName=B6;function H6(t,a){return y.useReducer((r,s)=>a[r][s]??r,t)}var Vn=t=>{const{present:a,children:r}=t,s=G6(a),l=typeof r=="function"?r({present:s.isPresent}):y.Children.only(r),d=U6(s.ref,X6(l));return typeof r=="function"||s.isPresent?y.cloneElement(l,{ref:d}):null};Vn.displayName="Presence";function G6(t){const[a,r]=y.useState(),s=y.useRef(null),l=y.useRef(t),d=y.useRef("none"),u=t?"mounted":"unmounted",[p,g]=H6(u,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const h=bd(s.current);d.current=p==="mounted"?h:"none"},[p]),fi(()=>{const h=s.current,x=l.current;if(x!==t){const w=d.current,N=bd(h);t?g("MOUNT"):N==="none"||h?.display==="none"?g("UNMOUNT"):g(x&&w!==N?"ANIMATION_OUT":"UNMOUNT"),l.current=t}},[t,g]),fi(()=>{if(a){let h;const x=a.ownerDocument.defaultView??window,b=N=>{const k=bd(s.current).includes(CSS.escape(N.animationName));if(N.target===a&&k&&(g("ANIMATION_END"),!l.current)){const I=a.style.animationFillMode;a.style.animationFillMode="forwards",h=x.setTimeout(()=>{a.style.animationFillMode==="forwards"&&(a.style.animationFillMode=I)})}},w=N=>{N.target===a&&(d.current=bd(s.current))};return a.addEventListener("animationstart",w),a.addEventListener("animationcancel",b),a.addEventListener("animationend",b),()=>{x.clearTimeout(h),a.removeEventListener("animationstart",w),a.removeEventListener("animationcancel",b),a.removeEventListener("animationend",b)}}else g("ANIMATION_END")},[a,g]),{isPresent:["mounted","unmountSuspended"].includes(p),ref:y.useCallback(h=>{s.current=h?getComputedStyle(h):null,r(h)},[])}}function Ew(t,a){if(typeof t=="function")return t(a);t!=null&&(t.current=a)}function U6(...t){const a=y.useRef(t);return a.current=t,y.useCallback(r=>{const s=a.current;let l=!1;const d=s.map(u=>{const p=Ew(u,r);return!l&&typeof p=="function"&&(l=!0),p});if(l)return()=>{for(let u=0;u<d.length;u++){const p=d[u];typeof p=="function"?p():Ew(s[u],null)}}},[])}function bd(t){return t?.animationName||"none"}function X6(t){let a=Object.getOwnPropertyDescriptor(t.props,"ref")?.get,r=a&&"isReactWarning"in a&&a.isReactWarning;return r?t.ref:(a=Object.getOwnPropertyDescriptor(t,"ref")?.get,r=a&&"isReactWarning"in a&&a.isReactWarning,r?t.props.ref:t.props.ref||t.ref)}var $6=Ru[" useInsertionEffect ".trim().toString()]||fi;function zu({prop:t,defaultProp:a,onChange:r=()=>{},caller:s}){const[l,d,u]=W6({defaultProp:a,onChange:r}),p=t!==void 0,g=p?t:l;{const x=y.useRef(t!==void 0);y.useEffect(()=>{const b=x.current;b!==p&&console.warn(`${s} is changing from ${b?"controlled":"uncontrolled"} to ${p?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),x.current=p},[p,s])}const h=y.useCallback(x=>{if(p){const b=K6(x)?x(t):x;b!==t&&u.current?.(b)}else d(x)},[p,t,d,u]);return[g,h]}function W6({defaultProp:t,onChange:a}){const[r,s]=y.useState(t),l=y.useRef(r),d=y.useRef(a);return $6(()=>{d.current=a},[a]),y.useEffect(()=>{l.current!==r&&(d.current?.(r),l.current=r)},[r,l]),[r,s,d]}function K6(t){return typeof t=="function"}var Y6=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Q6="VisuallyHidden",qu=y.forwardRef((t,a)=>
9e.jsx(qe.span,{...t,ref:a,style:{...Y6,...t.style}}));qu.displayName=Q6;var Z6=qu,Bg="ToastProvider",[Hg,J6,eM]=qj("Toast"),[Gj]=Ir("Toast",[eM]),[tM,Fu]=Gj(Bg),Uj=t=>{const{__scopeToast:a,label:r="Notification",duration:s=5e3,swipeDirection:l="right",swipeThreshold:d=50,announcerContainer:u,children:p}=t,[g,h]=y.useState(null),[x,b]=y.useState(0),w=y.useRef(!1),N=y.useRef(!1);return r.trim()||console.error(`Invalid prop \`label\` supplied to \`${Bg}\`. Expected non-empty \`string\`.`),e.jsx(Hg.Provider,{scope:a,children:e.jsx(tM,{scope:a,label:r,duration:s,swipeDirection:l,swipeThreshold:d,toastCount:x,viewport:g,onViewportChange:h,onToastAdd:y.useCallback(()=>b(A=>A+1),[]),onToastRemove:y.useCallback(()=>b(A=>A-1),[]),isFocusedToastEscapeKeyDownRef:w,isClosePausedRef:N,announcerContainer:u,children:p})})};Uj.displayName=Bg;var Xj="ToastViewport",aM=["F8"],Gf="toast.viewportPause",Uf="toast.viewportResume",$j=y.forwardRef((t,a)=>{const{__scopeToast:r,hotkey:s=aM,label:l="Notifications ({hotkey})",...d}=t,u=Fu(Xj,r),p=J6(r),g=y.useRef(null),h=y.useRef(null),x=y.useRef(null),b=y.useRef(null),w=Bt(a,b,u.onViewportChange),N=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),A=u.toastCount>0;y.useEffect(()=>{const I=T=>{s.length!==0&&s.every(R=>T[R]||T.code===R)&&b.current?.focus()};return document.addEventListener("keydown",I),()=>document.removeEventListener("keydown",I)},[s]),y.useEffect(()=>{const I=g.current,T=b.current;if(A&&I&&T){const E=()=>{if(!u.isClosePausedRef.current){const z=new CustomEvent(Gf);T.dispatchEvent(z),u.isClosePausedRef.current=!0}},R=()=>{if(u.isClosePausedRef.current){const z=new CustomEvent(Uf);T.dispatchEvent(z),u.isClosePausedRef.current=!1}},C=z=>{!I.contains(z.relatedTarget)&&R()},P=()=>{I.contains(document.activeElement)||R()};return I.addEventListener("focusin",E),I.addEventListener("focusout",C),I.addEventListener("pointermove",E),I.addEventListener("pointerleave",P),window.addEventListener("blur",E),window.addEventListener("focus",R),()=>{I.removeEventListener("focusin",E),I.removeEventListener("focusout",C),I.removeEventListener("pointermove",E),I.removeEventListener("pointerleave",P),window.removeEventListener("blur",E),window.removeEventListener("focus",R)}}},[A,u.isClosePausedRef]);const k=y.useCallback(({tabbingDirection:I})=>{const E=p().map(R=>{const C=R.ref.current,P=[C,...fM(C)];return I==="forwards"?P:P.reverse()});return(I==="forwards"?E.reverse():E).flat()},[p]);return y.useEffect(()=>{const I=b.current;if(I){const T=E=>{const R=E.altKey||E.ctrlKey||E.metaKey;if(E.key==="Tab"&&!R){const P=document.activeElement,z=E.shiftKey;if(E.target===I&&z){h.current?.focus();return}const K=k({tabbingDirection:z?"backwards":"forwards"}),ne=K.findIndex(le=>le===P);Bh(K.slice(ne+1))?E.preventDefault():z?h.current?.focus():x.current?.focus()}};return I.addEventListener("keydown",T),()=>I.removeEventListener("keydown",T)}},[p,k]),e.jsxs(F6,{ref:g,role:"region","aria-label":l.replace("{hotkey}",N),tabIndex:-1,style:{pointerEvents:A?void 0:"none"},children:[A&&e.jsx(Xf,{ref:h,onFocusFromOutsideViewport:()=>{const I=k({tabbingDirection:"forwards"});Bh(I)}}),e.jsx(Hg.Slot,{scope:r,children:e.jsx(qe.ol,{tabIndex:-1,...d,ref:w})}),A&&e.jsx(Xf,{ref:x,onFocusFromOutsideViewport:()=>{const I=k({tabbingDirection:"backwards"});Bh(I)}})]})});$j.displayName=Xj;var Wj="ToastFocusProxy",Xf=y.forwardRef((t,a)=>{const{__scopeToast:r,onFocusFromOutsideViewport:s,...l}=t,d=Fu(Wj,r);return e.jsx(qu,{tabIndex:0,...l,ref:a,style:{position:"fixed"},onFocus:u=>{const p=u.relatedTarget;!d.viewport?.contains(p)&&s()}})});Xf.displayName=Wj;var Bl="Toast",iM="toast.swipeStart",nM="toast.swipeMove",rM="toast.swipeCancel",sM="toast.swipeEnd",Kj=y.forwardRef((t,a)=>{const{forceMount:r,open:s,defaultOpen:l,onOpenChange:d,...u}=t,[p,g]=zu({prop:s,defaultProp:l??!0,onChange:d,caller:Bl});return e.jsx(Vn,{present:r||p,children:e.jsx(cM,{open:p,...u,ref:a,onClose:()=>g(!1),onPause:Ka(t.onPause),onResume:Ka(t.onResume),onSwipeStart:He(t.onSwipeStart,h=>{h.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:He(t.onSwipeMove,h=>{const{x,y:b}=h.detail.delta;
9h.currentTarget.setAttribute("data-swipe","move"),h.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${x}px`),h.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${b}px`)}),onSwipeCancel:He(t.onSwipeCancel,h=>{h.currentTarget.setAttribute("data-swipe","cancel"),h.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),h.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),h.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),h.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:He(t.onSwipeEnd,h=>{const{x,y:b}=h.detail.delta;h.currentTarget.setAttribute("data-swipe","end"),h.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),h.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),h.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${x}px`),h.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${b}px`),g(!1)})})})});Kj.displayName=Bl;var[oM,lM]=Gj(Bl,{onClose(){}}),cM=y.forwardRef((t,a)=>{const{__scopeToast:r,type:s="foreground",duration:l,open:d,onClose:u,onEscapeKeyDown:p,onPause:g,onResume:h,onSwipeStart:x,onSwipeMove:b,onSwipeCancel:w,onSwipeEnd:N,...A}=t,k=Fu(Bl,r),[I,T]=y.useState(null),E=Bt(a,se=>T(se)),R=y.useRef(null),C=y.useRef(null),P=l||k.duration,z=y.useRef(0),V=y.useRef(P),D=y.useRef(0),{onToastAdd:K,onToastRemove:ne}=k,le=Ka(()=>{I?.contains(document.activeElement)&&k.viewport?.focus(),u()}),ce=y.useCallback(se=>{!se||se===1/0||(window.clearTimeout(D.current),z.current=new Date().getTime(),D.current=window.setTimeout(le,se))},[le]);y.useEffect(()=>{const se=k.viewport;if(se){const ue=()=>{ce(V.current),h?.()},_=()=>{const ee=new Date().getTime()-z.current;V.current=V.current-ee,window.clearTimeout(D.current),g?.()};return se.addEventListener(Gf,_),se.addEventListener(Uf,ue),()=>{se.removeEventListener(Gf,_),se.removeEventListener(Uf,ue)}}},[k.viewport,P,g,h,ce]),y.useEffect(()=>{d&&!k.isClosePausedRef.current&&ce(P)},[d,P,k.isClosePausedRef,ce]),y.useEffect(()=>(K(),()=>ne()),[K,ne]);const ye=y.useMemo(()=>I?aN(I):null,[I]);return k.viewport?e.jsxs(e.Fragment,{children:[ye&&e.jsx(dM,{__scopeToast:r,role:"status","aria-live":s==="foreground"?"assertive":"polite",children:ye}),e.jsx(oM,{scope:r,onClose:le,children:Lu.createPortal(e.jsx(Hg.ItemSlot,{scope:r,children:e.jsx(q6,{asChild:!0,onEscapeKeyDown:He(p,()=>{k.isFocusedToastEscapeKeyDownRef.current||le(),k.isFocusedToastEscapeKeyDownRef.current=!1}),children:e.jsx(qe.li,{tabIndex:0,"data-state":d?"open":"closed","data-swipe-direction":k.swipeDirection,...A,ref:E,style:{userSelect:"none",touchAction:"none",...t.style},onKeyDown:He(t.onKeyDown,se=>{se.key==="Escape"&&(p?.(se.nativeEvent),se.nativeEvent.defaultPrevented||(k.isFocusedToastEscapeKeyDownRef.current=!0,le()))}),onPointerDown:He(t.onPointerDown,se=>{se.button===0&&(R.current={x:se.clientX,y:se.clientY})}),onPointerMove:He(t.onPointerMove,se=>{if(!R.current)return;const ue=se.clientX-R.current.x,_=se.clientY-R.current.y,ee=!!C.current,X=["left","right"].includes(k.swipeDirection),oe=["left","up"].includes(k.swipeDirection)?Math.min:Math.max,M=X?oe(0,ue):0,Q=X?0:oe(0,_),F=se.pointerType==="touch"?10:2,Y={x:M,y:Q},re={originalEvent:se,delta:Y};ee?(C.current=Y,vd(nM,b,re,{discrete:!1})):Rw(Y,k.swipeDirection,F)?(C.current=Y,vd(iM,x,re,{discrete:!1}),se.target.setPointerCapture(se.pointerId)):(Math.abs(ue)>F||Math.abs(_)>F)&&(R.current=null)}),onPointerUp:He(t.onPointerUp,se=>{const ue=C.current,_=se.target;if(_.hasPointerCapture(se.pointerId)&&_.releasePointerCapture(se.pointerId),C.current=null,R.current=null,ue){const ee=se.currentTarget,X={originalEvent:se,delta:ue};Rw(ue,k.swipeDirection,k.swipeThreshold)?vd(sM,N,X,{discrete:!0}):vd(rM,w,X,{discrete:!0}),ee.addEventListener("click",oe=>oe.preventDefault(),{once:!0})}})})})}),k.viewport)})]}):null}),dM=t=>{const{__scopeToast:a,children:r,...s}=t,l=Fu(Bl,a),[d,u]=y.useState(!1),[p,g]=y.useState(!1);return pM(()=>u(!0)),y.useEffect(()=>{const h=window.setTimeout(()=>g(!0),1e3);return()=>window.clearTimeout(h)},[]),p?null:e.jsx(_u,{asChild:!0,container:l.announcerContainer||void 0,children:e.jsx(qu,{...s,children:d&&e.jsxs(e.Fragment,{children:[l.label," ",r]})})})},uM="ToastTitle",Yj=y.forwardRef((t,a)=>{const{__scopeToast:r,...s}=t;return e.jsx(qe.div,{...s,ref:a})});Yj.displayName=uM;var mM="ToastDescription",Qj=y.forwardRef((t,a)=>{const{__scopeToast:r,...s}=t;return e.jsx(qe.div,{...s,ref:a})});Qj.displayName=mM;var Zj="ToastAction",Jj=y.forwardRef((t,a)=>{const{altText:r,...s}=t;return r.trim()?e.jsx(tN,{altText:r,asChild:!0,children:e.jsx(Gg,{...s,ref:a})}):(console.error(`Invalid prop \`altText\` supplied to \`${Zj}\`. Expected non-empty \`string\`.`),null)});Jj.displayName=Zj;var eN="ToastClose",Gg=y.forwardRef((t,a)=>{const{__scopeToast:r,...s}=t,l=lM(eN,r);return e.jsx(tN,{asChild:!0,children:e.jsx(qe.button,{type:"button",...s,ref:a,onClick:He(t.onClick,l.onClose)})})});Gg.displayName=eN;var tN=y.forwardRef((t,a)=>{const{__scopeToast:r,altText:s,...l}=t;return e.jsx(qe.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":s||void 0,...l,ref:a})});function aN(t){const a=[];
9return Array.from(t.childNodes).forEach(s=>{if(s.nodeType===s.TEXT_NODE&&s.textContent&&a.push(s.textContent),hM(s)){const l=s.ariaHidden||s.hidden||s.style.display==="none",d=s.dataset.radixToastAnnounceExclude==="";if(!l)if(d){const u=s.dataset.radixToastAnnounceAlt;u&&a.push(u)}else a.push(...aN(s))}}),a}function vd(t,a,r,{discrete:s}){const l=r.originalEvent.currentTarget,d=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:r});a&&l.addEventListener(t,a,{once:!0}),s?Fj(l,d):l.dispatchEvent(d)}var Rw=(t,a,r=0)=>{const s=Math.abs(t.x),l=Math.abs(t.y),d=s>l;return a==="left"||a==="right"?d&&s>r:!d&&l>r};function pM(t=()=>{}){const a=Ka(t);fi(()=>{let r=0,s=0;return r=window.requestAnimationFrame(()=>s=window.requestAnimationFrame(a)),()=>{window.cancelAnimationFrame(r),window.cancelAnimationFrame(s)}},[a])}function hM(t){return t.nodeType===t.ELEMENT_NODE}function fM(t){const a=[],r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:s=>{const l=s.tagName==="INPUT"&&s.type==="hidden";return s.disabled||s.hidden||l?NodeFilter.FILTER_SKIP:s.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)a.push(r.currentNode);return a}function Bh(t){const a=document.activeElement;return t.some(r=>r===a?!0:(r.focus(),document.activeElement!==a))}var gM=Uj,iN=$j,nN=Kj,rN=Yj,sN=Qj,oN=Jj,lN=Gg;function cN(t){var a,r,s="";if(typeof t=="string"||typeof t=="number")s+=t;else if(typeof t=="object")if(Array.isArray(t)){var l=t.length;for(a=0;a<l;a++)t[a]&&(r=cN(t[a]))&&(s&&(s+=" "),s+=r)}else for(r in t)t[r]&&(s&&(s+=" "),s+=r);return s}function dN(){for(var t,a,r=0,s="",l=arguments.length;r<l;r++)(t=arguments[r])&&(a=cN(t))&&(s&&(s+=" "),s+=a);return s}const Pw=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,Ow=dN,Bu=(t,a)=>r=>{var s;if(a?.variants==null)return Ow(t,r?.class,r?.className);const{variants:l,defaultVariants:d}=a,u=Object.keys(l).map(h=>{const x=r?.[h],b=d?.[h];if(x===null)return null;const w=Pw(x)||Pw(b);return l[h][w]}),p=r&&Object.entries(r).reduce((h,x)=>{let[b,w]=x;return w===void 0||(h[b]=w),h},{}),g=a==null||(s=a.compoundVariants)===null||s===void 0?void 0:s.reduce((h,x)=>{let{class:b,className:w,...N}=x;return Object.entries(N).every(A=>{let[k,I]=A;return Array.isArray(I)?I.includes({...d,...p}[k]):{...d,...p}[k]===I})?[...h,b,w]:h},[]);return Ow(t,u,g,r?.class,r?.className)};const xM=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),yM=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,r,s)=>s?s.toUpperCase():r.toLowerCase()),Dw=t=>{const a=yM(t);return a.charAt(0).toUpperCase()+a.slice(1)},uN=(...t)=>t.filter((a,r,s)=>!!a&&a.trim()!==""&&s.indexOf(a)===r).join(" ").trim(),bM=t=>{for(const a in t)if(a.startsWith("aria-")||a==="role"||a==="title")return!0};var vM={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const wM=y.forwardRef(({color:t="currentColor",size:a=24,strokeWidth:r=2,absoluteStrokeWidth:s,className:l="",children:d,iconNode:u,...p},g)=>y.createElement("svg",{ref:g,...vM,width:a,height:a,stroke:t,strokeWidth:s?Number(r)*24/Number(a):r,className:uN("lucide",l),...!d&&!bM(p)&&{"aria-hidden":"true"},...p},[...u.map(([h,x])=>y.createElement(h,x)),...Array.isArray(d)?d:[d]]));const B=(t,a)=>{const r=y.forwardRef(({className:s,...l},d)=>y.createElement(wM,{ref:d,iconNode:a,className:uN(`lucide-${xM(Dw(t))}`,`lucide-${t}`,s),...l}));return r.displayName=Dw(t),r};const jM=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],Cr=B("activity",jM);const NM=[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]],AM=B("archive",NM);const kM=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],jr=B("arrow-left",kM);const SM=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Te=B("arrow-right",SM);const IM=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],mN=B("ban",IM);const CM=[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M6 12h.01M18 12h.01",key:"113zkx"}]],MM=B("banknote",CM);const TM=[["path",{d:"M 22 14 L 22 10",key:"nqc4tb"}],["rect",{x:"2",y:"6",width:"16",height:"12",rx:"2",key:"13zb55"}]],EM=B("battery",TM);const RM=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742",key:"178tsu"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05",key:"1hqiys"}]],PM=B("bell-off",RM);const OM=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],pN=B("bell",OM);const DM=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],_n=B("book-open",DM);const LM=[["path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z",key:"1fy3hk"}]],VM=B("bookmark",LM);const _M=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],vt=B("bot",_M);const zM=[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]],qM=B("box",zM);const FM=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],hN=B("boxes",FM);const BM=[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]],be=B("brain",BM);const HM=[["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2",key:"1ksdt3"}],["path",{d:"M22 13a18.15 18.15 0 0 1-20 0",key:"12hx5q"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],GM=B("briefcase-business",HM);const UM=[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],fN=B("briefcase",UM);const XM=[["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z",key:"uouzyp"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M21 21a4 4 0 0 0-3.81-4",key:"1b0z45"}],["path",{d:"M21 5a4 4 0 0 1-3.55 3.97",key:"5cxbf6"}
9],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M3 21a4 4 0 0 1 3.81-4",key:"1fjd4g"}],["path",{d:"M3 5a4 4 0 0 0 3.55 3.97",key:"1d7oge"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M9 7.13V6a3 3 0 1 1 6 0v1.13",key:"1vgav8"}]],$M=B("bug",XM);const WM=[["path",{d:"M10 12h4",key:"a56b0p"}],["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M14 21v-3a2 2 0 0 0-4 0v3",key:"1rgiei"}],["path",{d:"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2",key:"secmi2"}],["path",{d:"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16",key:"16ra0t"}]],yi=B("building-2",WM);const KM=[["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M12 6h.01",key:"1vi96p"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M16 6h.01",key:"1x0f13"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M8 6h.01",key:"1dz90k"}],["path",{d:"M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3",key:"cabbwy"}],["rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",key:"1uxh74"}]],YM=B("building",KM);const QM=[["path",{d:"M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z",key:"trhst0"}],["path",{d:"M17 21v-2",key:"ds4u3f"}],["path",{d:"M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10",key:"1mo9zo"}],["path",{d:"M21 21v-2",key:"eo0ou"}],["path",{d:"M3 5V3",key:"1k5hjh"}],["path",{d:"M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z",key:"1dd30t"}],["path",{d:"M7 5V3",key:"1t1388"}]],ZM=B("cable",QM);const JM=[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]],Zs=B("calendar-clock",JM);const eT=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],gN=B("calendar",eT);const tT=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],$e=B("chart-column",tT);const aT=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]],Ug=B("chart-line",aT);const iT=[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]],nT=B("chart-pie",iT);const rT=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],na=B("chevron-down",rT);const sT=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Ve=B("chevron-right",sT);const oT=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],lT=B("chevron-up",oT);const cT=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],dT=B("circle-alert",cT);const uT=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Me=B("circle-check",uT);const mT=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 18V6",key:"zqpxq5"}]],xN=B("circle-dollar-sign",mT);const pT=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]],hT=B("circle-dot",pT);const fT=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],gT=B("circle-question-mark",fT);const xT=[["path",{d:"M18 20a6 6 0 0 0-12 0",key:"1qehca"}],["circle",{cx:"12",cy:"10",r:"4",key:"1h16sb"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],yN=B("circle-user-round",xT);const yT=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],bT=B("circle-x",yT);const vT=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M11 9h4a2 2 0 0 0 2-2V3",key:"1ve2rv"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"M7 21v-4a2 2 0 0 1 2-2h4",key:"1fwkro"}],["circle",{cx:"15",cy:"15",r:"2",key:"3i40o0"}]],wT=B("circuit-board",vT);
9const jT=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]],Pt=B("clipboard-check",jT);const NT=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]],Xg=B("clipboard-list",NT);const AT=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],bN=B("clock",AT);const kT=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],Gi=B("cloud",kT);const ST=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],wi=B("code-xml",ST);const IT=[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]],CT=B("code",IT);const MT=[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Hl=B("compass",MT);const TT=[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]],Xa=B("cpu",TT);const ET=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]],RT=B("crosshair",ET);const PT=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Ot=B("database",PT);const OT=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],DT=B("disc",OT);const LT=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Gl=B("dollar-sign",LT);const VT=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],_T=B("download",VT);const zT=[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Ui=B("earth",zT);const qT=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],vN=B("external-link",qT);const FT=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],wN=B("eye-off",FT);const BT=[["path",{d:"M12 16h.01",key:"1drbdi"}],["path",{d:"M16 16h.01",key:"1f9h7w"}],["path",{d:"M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z",key:"1iv0i2"}],["path",{d:"M8 16h.01",key:"18s6g9"}]],HT=B("factory",BT);const GT=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Xi=B("eye",GT);const UT=[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m3 15 2 2 4-4",key:"1lhrkk"}]],Ya=B("file-check-2",UT);const XT=[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m5 12-3 3 3 3",key:"oke12k"}],["path",{d:"m9 18 3-3-3-3",key:"112psh"}]],Hu=B("file-code-2",XT);const $T=[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m2.305 15.53.923-.382",key:"yfp9st"}],["path",{d:"m3.228 12.852-.924-.383",key:"bckynb"}],["path",{d:"M4.677 21.5a2 2 0 0 0 1.313.5H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v2.5",key:"1yo3oz"}],["path",{d:"m4.852 11.228-.383-.923",key:"1j88i9"}],["path",{d:"m4.852 16.772-.383.924",key:"sag1dv"}],["path",{d:"m7.148 11.228.383-.923",key:"rj39hk"}],["path",{d:"m7.53 17.696-.382-.924",key:"1uu5cs"}],["path",{d:"m8.772 12.852.923-.383",key:"13811l"}],["path",{d:"m8.772 15.148.923.383",key:"z1a5l0"}],["circle",{cx:"6",cy:"14",r:"3",key:"a1xfv6"}]],WT=B("file-cog",$T);const KT=[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v1",key:"jmtmu2"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}
9],["rect",{width:"8",height:"5",x:"2",y:"13",rx:"1",key:"10y5wo"}],["path",{d:"M8 13v-2a2 2 0 1 0-4 0v2",key:"1pdxzg"}]],jN=B("file-lock-2",KT);const YT=[["path",{d:"m18 5-2.414-2.414A2 2 0 0 0 14.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2",key:"142zxg"}],["path",{d:"M21.378 12.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"2t3380"}],["path",{d:"M8 18h1",key:"13wk12"}]],$g=B("file-pen-line",YT);const QT=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],NN=B("file-search-2",QT);const ZT=[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"ms7g94"}],["path",{d:"m9 18-1.5-1.5",key:"1j6qii"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]],JT=B("file-search",ZT);const eE=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],Ht=B("file-text",eE);const tE=[["path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4",key:"1nerag"}],["path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88",key:"o46ks0"}],["path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02",key:"ptglia"}],["path",{d:"M2 12a10 10 0 0 1 18-6",key:"ydlgp0"}],["path",{d:"M2 16h.01",key:"1gqxmh"}],["path",{d:"M21.8 16c.2-2 .131-5.354 0-6",key:"drycrb"}],["path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2",key:"1tidbn"}],["path",{d:"M8.65 22c.21-.66.45-1.32.57-2",key:"13wd9y"}],["path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2",key:"1fr1j5"}]],AN=B("fingerprint",tE);const aE=[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]],Lw=B("flask-conical",aE);const iE=[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]],nE=B("folder-kanban",iE);const rE=[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]],sE=B("folder-tree",rE);const oE=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],Dl=B("funnel",oE);const lE=[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]],It=B("gauge",lE);const cE=[["path",{d:"M9 10h.01",key:"qbtxuw"}],["path",{d:"M15 10h.01",key:"1qmjsl"}],["path",{d:"M12 2a8 8 0 0 0-8 8v12l3-3 2.5 2.5L12 19l2.5 2.5L17 19l3 3V10a8 8 0 0 0-8-8z",key:"uwwb07"}]],dE=B("ghost",cE);const uE=[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]],ji=B("git-branch",uE);const mE=[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]],Ul=B("git-merge",mE);const pE=[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]],hE=B("git-pull-request",pE);const fE=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],gE=B("github",fE);const xE=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],Qt=B("globe",xE);const yE=[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]],kN=B("handshake",yE);const bE=[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}
9]],Nr=B("hard-drive",bE);const vE=[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]],wE=B("headset",vE);const jE=[["path",{d:"M3 14h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a9 9 0 0 1 18 0v7a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3",key:"1xhozi"}]],NE=B("headphones",jE);const AE=[["path",{d:"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5",key:"mvr1a0"}],["path",{d:"M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27",key:"auskq0"}]],yr=B("heart-pulse",AE);const kE=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],SN=B("history",kE);const SE=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],IN=B("house",SE);const IE=[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]],CN=B("inbox",IE);const CE=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],Gu=B("key",CE);const ME=[["path",{d:"M10 18v-7",key:"wt116b"}],["path",{d:"M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z",key:"1m329m"}],["path",{d:"M14 18v-7",key:"vav6t3"}],["path",{d:"M18 18v-7",key:"aexdmj"}],["path",{d:"M3 22h18",key:"8prr45"}],["path",{d:"M6 18v-7",key:"1ivflk"}]],TE=B("landmark",ME);const EE=[["path",{d:"M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z",key:"1pdavp"}],["path",{d:"M20.054 15.987H3.946",key:"14rxg9"}]],RE=B("laptop",EE);const PE=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],Fs=B("layout-dashboard",PE);const OE=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],Ue=B("layers",OE);const DE=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],Ki=B("layout-grid",DE);const LE=[["path",{d:"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",key:"nnexq3"}],["path",{d:"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12",key:"mt58a7"}]],MN=B("leaf",LE);const VE=[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]],TN=B("lightbulb",VE);const _E=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],zE=B("link-2",_E);const qE=[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]],FE=B("linkedin",qE);const BE=[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]],Ll=B("list-checks",BE);const HE=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Wt=B("loader-circle",HE);const GE=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],UE=B("log-out",GE);const XE=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],bi=B("lock",XE);const $E=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],Wg=B("mail",$E);const WE=[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]],Kg=B("map-pin",WE);const KE=[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]],YE=B("map",KE);const QE=[["path",{d:"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z",key:"q8bfy3"}],["path",{d:"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14",key:"1853fq"}],["path",{d:"M8 6v8",key:"15ugcq"}]],ZE=B("megaphone",QE);const JE=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],eR=B("menu",JE);const tR=[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]],aR=B("message-circle",tR);const iR=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7.5 9.5c0 .687.265 1.383.697 1.844l3.009 3.264a1.14 1.14 0 0 0 .407.314 1 1 0 0 0 .783-.004 1.14 1.14 0 0 0 .398-.31l3.008-3.264A2.77 2.77 0 0 0 16.5 9.5 2.5 2.5 0 0 0 12 8a2.5 2.5 0 0 0-4.5 1.5",key:"1faxuh"}]],nR=B("message-square-heart",iR);const rR=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],ra=B("message-square",rR);const sR=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M16.95 16.95A7 7 0 0 1 5 12v-2",key:"cqa7eg"}],["path",{d:"M18.89 13.23A7 7 0 0 0 19 12v-2",key:"16hl24"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}]],oR=B("mic-off",sR);const lR=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],Us=B("mic",lR);const cR=[["path",{d:"M5 12h14",key:"1ays0h"}]],dR=B("minus",cR);const uR=[["path",{d:"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8",key:"10dyio"}],["path",{d:"M10 19v-3.96 3.15",key:"1irgej"}],["path",{d:"M7 19h5",key:"qswx4l"}],["rect",{width:"6",height:"10",x:"16",y:"12",rx:"2",key:"1egngj"}]],EN=B("monitor-smartphone",uR);const mR=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],Vw=B("moon",mR);const pR=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],vi=B("network",pR);const hR=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Mr=B("package",hR);const fR=[["path",{d:"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z",key:"nt11vn"}],["path",{d:"m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18",key:"15qc1e"}],["path",{d:"m2.3 2.3 7.286 7.286",key:"1wuzzi"}],["circle",{cx:"11",cy:"11",r:"2",key:"xmgehs"}]],gR=B("pen-tool",fR);const xR=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],yR=B("pencil",xR);const bR=[["line",{x1:"19",x2:"5",y1:"5",y2:"19",key:"1x9vlm"}],["circle",{cx:"6.5",cy:"6.5",r:"2.5",key:"4mh3h7"}],["circle",{cx:"17.5",cy:"17.5",r:"2.5",key:"1mdrzq"}]],vR=B("percent",bR);const wR=[["path",{d:"M13 2a9 9 0 0 1 9 9",key:"1itnx2"}],["path",{d:"M13 6a5 5 0 0 1 5 5",key:"11nki7"}],["path",{d:"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 
90 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",key:"9njp5v"}]],jR=B("phone-call",wR);const NR=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],AR=B("play",NR);const kR=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],SR=B("plus",kR);const IR=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],CR=B("power",IR);const MR=[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]],TR=B("qr-code",MR);const ER=[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]],Yg=B("radar",ER);const RR=[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],RN=B("radio",RR);const PR=[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 17.5v-11",key:"1jc1ny"}]],PN=B("receipt",PR);const OR=[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]],Xl=B("refresh-ccw",OR);const DR=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],Tr=B("refresh-cw",DR);const LR=[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]],du=B("rocket",LR);const VR=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],zn=B("rotate-ccw",VR);const _R=[["circle",{cx:"6",cy:"19",r:"3",key:"1kj8tv"}],["path",{d:"M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15",key:"1d8sl"}],["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}]],$l=B("route",_R);const zR=[["path",{d:"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Z",key:"icamh8"}],["path",{d:"m14.5 12.5 2-2",key:"inckbg"}],["path",{d:"m11.5 9.5 2-2",key:"fmmyf7"}],["path",{d:"m8.5 6.5 2-2",key:"vc6u1g"}],["path",{d:"m17.5 15.5 2-2",key:"wo5hmg"}]],qR=B("ruler",zR);const FR=[["path",{d:"m13.5 6.5-3.148-3.148a1.205 1.205 0 0 0-1.704 0L6.352 5.648a1.205 1.205 0 0 0 0 1.704L9.5 10.5",key:"dzhfyz"}],["path",{d:"M16.5 7.5 19 5",key:"1ltcjm"}],["path",{d:"m17.5 10.5 3.148 3.148a1.205 1.205 0 0 1 0 1.704l-2.296 2.296a1.205 1.205 0 0 1-1.704 0L13.5 14.5",key:"nfoymv"}],["path",{d:"M9 21a6 6 0 0 0-6-6",key:"1iajcf"}],["path",{d:"M9.352 10.648a1.205 1.205 0 0 0 0 1.704l2.296 2.296a1.205 1.205 0 0 0 1.704 0l4.296-4.296a1.205 1.205 0 0 0 0-1.704l-2.296-2.296a1.205 1.205 0 0 0-1.704 0z",key:"nv9zqy"}]],BR=B("satellite",FR);const HR=[["path",{d:"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"7g6ntu"}],["path",{d:"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"ijws7r"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 3v18",key:"108xh3"}
9],["path",{d:"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2",key:"3gwbw2"}]],ON=B("scale",HR);const GR=[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]],uu=B("scroll-text",GR);const UR=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Gt=B("search",UR);const XR=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],DN=B("send",XR);const $R=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],Tn=B("server",$R);const WR=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Qg=B("settings-2",WR);const KR=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],kl=B("settings",KR);const YR=[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]],Uu=B("share-2",YR);const QR=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]],oa=B("shield-alert",QR);const ZR=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Be=B("shield-check",ZR);const JR=[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5 5a1 1 0 0 0-1 1v7c0 5 3.5 7.5 7.67 8.94a1 1 0 0 0 .67.01c2.35-.82 4.48-1.97 5.9-3.71",key:"1jlk70"}],["path",{d:"M9.309 3.652A12.252 12.252 0 0 0 11.24 2.28a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1v7a9.784 9.784 0 0 1-.08 1.264",key:"18rp1v"}]],$f=B("shield-off",JR);const eP=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],We=B("shield",eP);const tP=[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]],Js=B("smartphone",tP);const aP=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],Xu=B("smile",aP);const iP=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}
9],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],de=B("sparkles",iP);const nP=[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],br=B("square-check-big",nP);const rP=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],$u=B("star",rP);const sP=[["path",{d:"M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5",key:"slp6dd"}],["path",{d:"M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244",key:"o0xfot"}],["path",{d:"M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05",key:"wn3emo"}]],oP=B("store",sP);const lP=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],_w=B("sun",lP);const cP=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],ei=B("target",cP);const dP=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],uP=B("terminal",dP);const mP=[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]],ja=B("timer",mP);const pP=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Wf=B("trash-2",pP);const hP=[["path",{d:"M16 17h6v-6",key:"t6n2it"}],["path",{d:"m22 17-8.5-8.5-5 5L2 7",key:"x473p"}]],LN=B("trending-down",hP);const fP=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],ct=B("trending-up",fP);const gP=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],ht=B("triangle-alert",gP);const xP=[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]],zw=B("trophy",xP);const yP=[["path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z",key:"pff0z6"}]],bP=B("twitter",yP);const vP=[["path",{d:"m16 11 2 2 4-4",key:"9rsbq5"}],["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],wP=B("user-check",vP);const jP=[["path",{d:"M10 15H6a4 4 0 0 0-4 4v2",key:"1nfge6"}],["path",{d:"m14.305 16.53.923-.382",key:"1itpsq"}],["path",{d:"m15.228 13.852-.923-.383",key:"eplpkm"}],["path",{d:"m16.852 12.228-.383-.923",key:"13v3q0"}],["path",{d:"m16.852 17.772-.383.924",key:"1i8mnm"}],["path",{d:"m19.148 12.228.383-.923",key:"1q8j1v"}],["path",{d:"m19.53 18.696-.382-.924",key:"vk1qj3"}],["path",{d:"m20.772 13.852.924-.383",key:"n880s0"}],["path",{d:"m20.772 16.148.924.383",key:"1g6xey"}],["circle",{cx:"18",cy:"15",r:"3",key:"gjjjvw"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],NP=B("user-cog",jP);const AP=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],VN=B("user-plus",AP);const kP=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],ze=B("users",kP);const SP=[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]],IP=B("video",SP);const CP=[["path",{d:"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1",key:"18etb6"}],["path",{d:"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4",key:"xoc0q4"}]],MP=B("wallet",CP);const TP=[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]],Zg=B("wand-sparkles",TP);const EP=[["path",{d:"M12 20h.01",key:"zekei9"}
vendor: 5,970 bytes, line 9
9],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],RP=B("wifi",EP);const PP=[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]],nt=B("workflow",PP);const OP=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],Yi=B("wrench",OP);const DP=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],eo=B("x",DP);const LP=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],ge=B("zap",LP),VP=(t,a)=>{const r=new Array(t.length+a.length);for(let s=0;s<t.length;s++)r[s]=t[s];for(let s=0;s<a.length;s++)r[t.length+s]=a[s];return r},_P=(t,a)=>({classGroupId:t,validator:a}),_N=(t=new Map,a=null,r)=>({nextPart:t,validators:a,classGroupId:r}),mu="-",qw=[],zP="arbitrary..",qP=t=>{const a=BP(t),{conflictingClassGroups:r,conflictingClassGroupModifiers:s}=t;return{getClassGroupId:u=>{if(u.startsWith("[")&&u.endsWith("]"))return FP(u);const p=u.split(mu),g=p[0]===""&&p.length>1?1:0;return zN(p,g,a)},getConflictingClassGroupIds:(u,p)=>{if(p){const g=s[u],h=r[u];return g?h?VP(h,g):g:h||qw}return r[u]||qw}}},zN=(t,a,r)=>{if(t.length-a===0)return r.classGroupId;const l=t[a],d=r.nextPart.get(l);if(d){const h=zN(t,a+1,d);if(h)return h}const u=r.validators;if(u===null)return;const p=a===0?t.join(mu):t.slice(a).join(mu),g=u.length;for(let h=0;h<g;h++){const x=u[h];if(x.validator(p))return x.classGroupId}},FP=t=>t.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=t.slice(1,-1),r=a.indexOf(":"),s=a.slice(0,r);return s?zP+s:void 0})(),BP=t=>{const{theme:a,classGroups:r}=t;return HP(r,a)},HP=(t,a)=>{const r=_N();for(const s in t){const l=t[s];Jg(l,r,s,a)}return r},Jg=(t,a,r,s)=>{const l=t.length;for(let d=0;d<l;d++){const u=t[d];GP(u,a,r,s)}},GP=(t,a,r,s)=>{if(typeof t=="string"){UP(t,a,r);return}if(typeof t=="function"){XP(t,a,r,s);return}$P(t,a,r,s)},UP=(t,a,r)=>{const s=t===""?a:qN(a,t);s.classGroupId=r},XP=(t,a,r,s)=>{if(WP(t)){Jg(t(s),a,r,s);return}a.validators===null&&(a.validators=[]),a.validators.push(_P(r,t))},$P=(t,a,r,s)=>{const l=Object.entries(t),d=l.length;for(let u=0;u<d;u++){const[p,g]=l[u];Jg(g,qN(a,p),r,s)}},qN=(t,a)=>{let r=t;const s=a.split(mu),l=s.length;for(let d=0;d<l;d++){const u=s[d];let p=r.nextPart.get(u);p||(p=_N(),r.nextPart.set(u,p)),r=p}return r},WP=t=>"isThemeGetter"in t&&t.isThemeGetter===!0,KP=t=>{if(t<1)return{get:()=>{},set:()=>{}};let a=0,r=Object.create(null),s=Object.create(null);const l=(d,u)=>{r[d]=u,a++,a>t&&(a=0,s=r,r=Object.create(null))};return{get(d){let u=r[d];if(u!==void 0)return u;if((u=s[d])!==void 0)return l(d,u),u},set(d,u){d in r?r[d]=u:l(d,u)}}},Kf="!",Fw=":",YP=[],Bw=(t,a,r,s,l)=>({modifiers:t,hasImportantModifier:a,baseClassName:r,maybePostfixModifierPosition:s,isExternal:l}),QP=t=>{const{prefix:a,experimentalParseClassName:r}=t;let s=l=>{const d=[];let u=0,p=0,g=0,h;const x=l.length;for(let k=0;k<x;k++){const I=l[k];if(u===0&&p===0){if(I===Fw){d.push(l.slice(g,k)),g=k+1;continue}if(I==="/"){h=k;continue}}I==="["?u++:I==="]"?u--:I==="("?p++:I===")"&&p--}const b=d.length===0?l:l.slice(g);let w=b,N=!1;b.endsWith(Kf)?(w=b.slice(0,-1),N=!0):b.startsWith(Kf)&&(w=b.slice(1),N=!0);const A=h&&h>g?h-g:void 0;return Bw(d,N,w,A)};if(a){const l=a+Fw,d=s;s=u=>u.startsWith(l)?d(u.slice(l.length)):Bw(YP,!1,u,void 0,!0)}if(r){const l=s;s=d=>r({className:d,parseClassName:l})}return s},ZP=t=>{const a=new Map;return t.orderSensitiveModifiers.forEach((r,s)=>{a.set(r,1e6+s)}),r=>{const s=[];let l=[];for(let d=0;d<r.length;d++){const u=r[d],p=u[0]==="[",g=a.has(u);p||g?(l.length>0&&(l.sort(),s.push(...l),l=[]),s.push(u)):l.push(u)}return l.length>0&&(l.sort(),s.push(...l)),s}},JP=t=>({cache:KP(t.cacheSize),parseClassName:QP(t),sortModifiers:ZP(t),postfixLookupClassGroupIds:e8(t),...qP(t)}),e8=t=>{const a=Object.create(null),r=t.postfixLookupClassGroups;if(r)for(let s=0;s<r.length;s++)a[r[s]]=!0;return a},t8=/\s+/,a8=(t,a)=>{const{parseClassName:r,getClassGroupId:s,getConflictingClassGroupIds:l,sortModifiers:d,postfixLookupClassGroupIds:u}=a,p=[],g=t.trim().split(t8);let h="";for(let x=g.length-1;x>=0;x-=1){const b=g[x],{isExternal:w,modifiers:N,hasImportantModifier:A,baseClassName:k,maybePostfixModifierPosition:I}=r(b);if(w){h=b+(h.length>0?" "+h:h);continue}let T=!!I,E;if(T){const V=k.substring(0,I);E=s(V);const D=E&&u[E]?s(k):void 0;D&&D!==E&&(E=D,T=!1)}else E=s(k);if(!E){if(!T){h=b+(h.length>0?" "+h:h);continue}if(E=s(k),!E){h=b+(h.length>0?" "+h:h);continue}T=!1}const R=N.length===0?"":N.length===1?N[0]:d(N).join(":"),C=A?R+Kf:R,P=C+E;if(p.indexOf(P)>-1)continue;p.push(P);const z=l(E,T);for(let V=0;V<z.length;++V){const D=z[V];p.push(C+D)}h=b+(h.length>0?" "+h:h)}return h},i8=(...t)=>{let a=0,r,s,l="";for(;a<t.length;)(r=t[a++])&&(s=FN(r))&&(l&&(l+=" "),l+=s);return l},FN=t=>{if(typeof t=="string")return t;let a,r="";for(let s=0;s<t.length;s++)t[s]&&(a=FN(t[s]))&&(r&&(r+=" "),r+=a);return r},n8=(t,...a)=>{let r,s,l,d;const u=g=>{const h=a.reduce((x,b)=>b(x),t());return r=JP(h),s=r.cache.get,l=r.cache.set,d=p,p(g)},p=g=>{const h=s(g);if(h)return h;const x=a8(g,r);return l(g,x),x};return d=u,(...g)=>d(i8(...g))},r8=[],Nt=t=>{const a=r=>r[t]||r8;return a.isThemeGetter=!0,a},BN=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,HN=/^\((?:(\w[\w-]*):)?(.+)\)$/i,s8=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,o8=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,l8=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,c8=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,d8=
vendor: 10,003 bytes, line 9
9/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,u8=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Nn=t=>s8.test(t),Pe=t=>!!t&&!Number.isNaN(Number(t)),ci=t=>!!t&&Number.isInteger(Number(t)),Hh=t=>t.endsWith("%")&&Pe(t.slice(0,-1)),qi=t=>o8.test(t),GN=()=>!0,m8=t=>l8.test(t)&&!c8.test(t),ex=()=>!1,p8=t=>d8.test(t),h8=t=>u8.test(t),f8=t=>!me(t)&&!pe(t),g8=t=>t.startsWith("@container")&&(t[10]==="/"&&t[11]!==void 0||t[11]==="s"&&t[16]!==void 0&&t.startsWith("-size/",10)||t[11]==="n"&&t[18]!==void 0&&t.startsWith("-normal/",10)),x8=t=>qn(t,$N,ex),me=t=>BN.test(t),or=t=>qn(t,WN,m8),Hw=t=>qn(t,k8,Pe),y8=t=>qn(t,YN,GN),b8=t=>qn(t,KN,ex),Gw=t=>qn(t,UN,ex),v8=t=>qn(t,XN,h8),wd=t=>qn(t,QN,p8),pe=t=>HN.test(t),ll=t=>Er(t,WN),w8=t=>Er(t,KN),Uw=t=>Er(t,UN),j8=t=>Er(t,$N),N8=t=>Er(t,XN),jd=t=>Er(t,QN,!0),A8=t=>Er(t,YN,!0),qn=(t,a,r)=>{const s=BN.exec(t);return s?s[1]?a(s[1]):r(s[2]):!1},Er=(t,a,r=!1)=>{const s=HN.exec(t);return s?s[1]?a(s[1]):r:!1},UN=t=>t==="position"||t==="percentage",XN=t=>t==="image"||t==="url",$N=t=>t==="length"||t==="size"||t==="bg-size",WN=t=>t==="length",k8=t=>t==="number",KN=t=>t==="family-name",YN=t=>t==="number"||t==="weight",QN=t=>t==="shadow",S8=()=>{const t=Nt("color"),a=Nt("font"),r=Nt("text"),s=Nt("font-weight"),l=Nt("tracking"),d=Nt("leading"),u=Nt("breakpoint"),p=Nt("container"),g=Nt("spacing"),h=Nt("radius"),x=Nt("shadow"),b=Nt("inset-shadow"),w=Nt("text-shadow"),N=Nt("drop-shadow"),A=Nt("blur"),k=Nt("perspective"),I=Nt("aspect"),T=Nt("ease"),E=Nt("animate"),R=()=>["auto","avoid","all","avoid-page","page","left","right","column"],C=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],P=()=>[...C(),pe,me],z=()=>["auto","hidden","clip","visible","scroll"],V=()=>["auto","contain","none"],D=()=>[pe,me,g],K=()=>[Nn,"full","auto",...D()],ne=()=>[ci,"none","subgrid",pe,me],le=()=>["auto",{span:["full",ci,pe,me]},ci,pe,me],ce=()=>[ci,"auto",pe,me],ye=()=>["auto","min","max","fr",pe,me],se=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ue=()=>["start","end","center","stretch","center-safe","end-safe"],_=()=>["auto",...D()],ee=()=>[Nn,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...D()],X=()=>[Nn,"screen","full","dvw","lvw","svw","min","max","fit",...D()],oe=()=>[Nn,"screen","full","lh","dvh","lvh","svh","min","max","fit",...D()],M=()=>[t,pe,me],Q=()=>[...C(),Uw,Gw,{position:[pe,me]}],F=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Y=()=>["auto","cover","contain",j8,x8,{size:[pe,me]}],re=()=>[Hh,ll,or],W=()=>["","none","full",h,pe,me],te=()=>["",Pe,ll,or],je=()=>["solid","dashed","dotted","double"],ke=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Se=()=>[Pe,Hh,Uw,Gw],la=()=>["","none",A,pe,me],Da=()=>["none",Pe,pe,me],ai=()=>["none",Pe,pe,me],Ai=()=>[Pe,pe,me],ca=()=>[Nn,"full",...D()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[qi],breakpoint:[qi],color:[GN],container:[qi],"drop-shadow":[qi],ease:["in","out","in-out"],font:[f8],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[qi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[qi],shadow:[qi],spacing:["px",Pe],text:[qi],"text-shadow":[qi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Nn,me,pe,I]}],container:["container"],"container-type":[{"@container":["","normal","size",pe,me]}],"container-named":[g8],columns:[{columns:[Pe,me,pe,p]}],"break-after":[{"break-after":R()}],"break-before":[{"break-before":R()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:P()}],overflow:[{overflow:z()}],"overflow-x":[{"overflow-x":z()}],"overflow-y":[{"overflow-y":z()}],overscroll:[{overscroll:V()}],"overscroll-x":[{"overscroll-x":V()}],"overscroll-y":[{"overscroll-y":V()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:K()}],"inset-x":[{"inset-x":K()}],"inset-y":[{"inset-y":K()}],start:[{"inset-s":K(),start:K()}],end:[{"inset-e":K(),end:K()}],"inset-bs":[{"inset-bs":K()}],"inset-be":[{"inset-be":K()}],top:[{top:K()}],right:[{right:K()}],bottom:[{bottom:K()}],left:[{left:K()}],visibility:["visible","invisible","collapse"],z:[{z:[ci,"auto",pe,me]}],basis:[{basis:[Nn,"full","auto",p,...D()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Pe,Nn,"auto","initial","none",me]}],grow:[{grow:["",Pe,pe,me]}],shrink:[{shrink:["",Pe,pe,me]}],order:[{order:[ci,"first","last","none",pe,me]}],"grid-cols":[{"grid-cols":ne()}],"col-start-end":[{col:le()}],"col-start":[{"col-start":ce()}],"col-end":[{"col-end":ce()}],"grid-rows":[{"grid-rows":ne()}],"row-start-end":[{row:le()}],"row-start":[{"row-start":ce()}],"row-end":[{"row-end":ce()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ye()}],"auto-rows":[{"auto-rows":ye()}],gap:[{gap:D()}],"gap-x":[{"gap-x":D()}],"gap-y":[{"gap-y":D()}],"justify-content":[{justify:[...se(),"normal"]}],"justify-items":[{"justify-items":[...ue(),"normal"]}],"justify-self":[{"justify-self":["auto",...ue()]}],"align-content":[{content:["normal",...se()]}],"align-items":[{items:[...ue(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ue(),{baseline:["","last"]}]}],"place-content":[{"place-content":se()}],"place-items":[{"place-items":[...ue(),"baseline"]}],"place-self":[{"place-self":["auto",...ue()]}],p:[{p:D()}],px:[{px:D()}],py:[{py:D()}],ps:[{ps:D()}],pe:[{pe:D()}],pbs:[{pbs:D()}],pbe:[{pbe:D()}],pt:[{pt:D()}],pr:[{pr:D()}],pb:[{pb:D()}],pl:[{pl:D()}],m:[{m:_()}],mx:[{mx:_()}],my:[{my:_()}],ms:[{ms:_()}],me:[{me:_()}],mbs:[{mbs:_()}],mbe:[{mbe:_()}],mt:[{mt:_()}],mr:[{mr:_()}],mb:[{mb:_()}],ml:[{ml:_()}],"space-x":[{"space-x":D()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":D()}],"space-y-reverse":["space-y-reverse"],size:[{size:ee()}],"inline-size":[{inline:["auto",...X()]}],"min-inline-size":[{"min-inline":["auto",...X()]}],"max-inline-size":[{"max-inline":["none",...X()]}],"block-size":[{block:["auto",...oe()]}],"min-block-size":[{"min-block":["auto",...oe()]}],"max-block-size":[{"max-block":["none",...oe()]}],w:[{w:[p,"screen",...ee()]}],"min-w":[{"min-w":[p,"screen","none",...ee()]}],"max-w":[{"max-w":[p,"screen","none","prose",{screen:[u]},...ee()]}],h:[{h:["screen","lh",...ee()]}],"min-h":[{"min-h":["screen","lh","none",...ee()]}],"max-h":[{"max-h":["screen","lh",...ee()]}],"font-size":[{text:["base",r,ll,or]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[s,A8,y8]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Hh,me]}],"font-family":[{font:[w8,b8,a]}],"font-features":[{"font-features":[me]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,pe,me]}],"line-clamp":[{"line-clamp":[Pe,"none",pe,Hw]}],leading:[{leading:[d,...D()]}],"list-image":[{"list-image":["none",pe,me]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",pe,me]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:M()}],"text-color":[{text:M()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...je(),"wavy"]}],"text-decoration-thickness":[{decoration:[Pe,"from-font","auto",pe,or]}],"text-decoration-color":[{decoration:M()}],"underline-offset":[{"underline-offset":[Pe,"auto",pe,me]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:D()}],"tab-size":[{tab:[ci,pe,me]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",pe,me]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",pe,me]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Q()}],"bg-repeat":[{bg:F()}],"bg-size":[{bg:Y()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},ci,pe,me],radial:["",pe,me],conic:[ci,pe,me]},N8,v8]}],"bg-color":[{bg:M()}],"gradient-from-pos":[{from:re()}
9],"gradient-via-pos":[{via:re()}],"gradient-to-pos":[{to:re()}],"gradient-from":[{from:M()}],"gradient-via":[{via:M()}],"gradient-to":[{to:M()}],rounded:[{rounded:W()}],"rounded-s":[{"rounded-s":W()}],"rounded-e":[{"rounded-e":W()}],"rounded-t":[{"rounded-t":W()}],"rounded-r":[{"rounded-r":W()}],"rounded-b":[{"rounded-b":W()}],"rounded-l":[{"rounded-l":W()}],"rounded-ss":[{"rounded-ss":W()}],"rounded-se":[{"rounded-se":W()}],"rounded-ee":[{"rounded-ee":W()}],"rounded-es":[{"rounded-es":W()}],"rounded-tl":[{"rounded-tl":W()}],"rounded-tr":[{"rounded-tr":W()}],"rounded-br":[{"rounded-br":W()}],"rounded-bl":[{"rounded-bl":W()}],"border-w":[{border:te()}],"border-w-x":[{"border-x":te()}],"border-w-y":[{"border-y":te()}],"border-w-s":[{"border-s":te()}],"border-w-e":[{"border-e":te()}],"border-w-bs":[{"border-bs":te()}],"border-w-be":[{"border-be":te()}],"border-w-t":[{"border-t":te()}],"border-w-r":[{"border-r":te()}],"border-w-b":[{"border-b":te()}],"border-w-l":[{"border-l":te()}],"divide-x":[{"divide-x":te()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":te()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...je(),"hidden","none"]}],"divide-style":[{divide:[...je(),"hidden","none"]}],"border-color":[{border:M()}],"border-color-x":[{"border-x":M()}],"border-color-y":[{"border-y":M()}],"border-color-s":[{"border-s":M()}],"border-color-e":[{"border-e":M()}],"border-color-bs":[{"border-bs":M()}],"border-color-be":[{"border-be":M()}],"border-color-t":[{"border-t":M()}],"border-color-r":[{"border-r":M()}],"border-color-b":[{"border-b":M()}],"border-color-l":[{"border-l":M()}
vendor: 5,780 bytes, line 9
9],"divide-color":[{divide:M()}],"outline-style":[{outline:[...je(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Pe,pe,me]}],"outline-w":[{outline:["",Pe,ll,or]}],"outline-color":[{outline:M()}],shadow:[{shadow:["","none",x,jd,wd]}],"shadow-color":[{shadow:M()}],"inset-shadow":[{"inset-shadow":["none",b,jd,wd]}],"inset-shadow-color":[{"inset-shadow":M()}],"ring-w":[{ring:te()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:M()}],"ring-offset-w":[{"ring-offset":[Pe,or]}],"ring-offset-color":[{"ring-offset":M()}],"inset-ring-w":[{"inset-ring":te()}],"inset-ring-color":[{"inset-ring":M()}],"text-shadow":[{"text-shadow":["none",w,jd,wd]}],"text-shadow-color":[{"text-shadow":M()}],opacity:[{opacity:[Pe,pe,me]}],"mix-blend":[{"mix-blend":[...ke(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ke()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Pe]}],"mask-image-linear-from-pos":[{"mask-linear-from":Se()}],"mask-image-linear-to-pos":[{"mask-linear-to":Se()}],"mask-image-linear-from-color":[{"mask-linear-from":M()}],"mask-image-linear-to-color":[{"mask-linear-to":M()}],"mask-image-t-from-pos":[{"mask-t-from":Se()}],"mask-image-t-to-pos":[{"mask-t-to":Se()}],"mask-image-t-from-color":[{"mask-t-from":M()}],"mask-image-t-to-color":[{"mask-t-to":M()}],"mask-image-r-from-pos":[{"mask-r-from":Se()}],"mask-image-r-to-pos":[{"mask-r-to":Se()}],"mask-image-r-from-color":[{"mask-r-from":M()}],"mask-image-r-to-color":[{"mask-r-to":M()}],"mask-image-b-from-pos":[{"mask-b-from":Se()}],"mask-image-b-to-pos":[{"mask-b-to":Se()}],"mask-image-b-from-color":[{"mask-b-from":M()}],"mask-image-b-to-color":[{"mask-b-to":M()}],"mask-image-l-from-pos":[{"mask-l-from":Se()}],"mask-image-l-to-pos":[{"mask-l-to":Se()}],"mask-image-l-from-color":[{"mask-l-from":M()}],"mask-image-l-to-color":[{"mask-l-to":M()}],"mask-image-x-from-pos":[{"mask-x-from":Se()}],"mask-image-x-to-pos":[{"mask-x-to":Se()}],"mask-image-x-from-color":[{"mask-x-from":M()}],"mask-image-x-to-color":[{"mask-x-to":M()}],"mask-image-y-from-pos":[{"mask-y-from":Se()}],"mask-image-y-to-pos":[{"mask-y-to":Se()}],"mask-image-y-from-color":[{"mask-y-from":M()}],"mask-image-y-to-color":[{"mask-y-to":M()}],"mask-image-radial":[{"mask-radial":[pe,me]}],"mask-image-radial-from-pos":[{"mask-radial-from":Se()}],"mask-image-radial-to-pos":[{"mask-radial-to":Se()}],"mask-image-radial-from-color":[{"mask-radial-from":M()}],"mask-image-radial-to-color":[{"mask-radial-to":M()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":C()}],"mask-image-conic-pos":[{"mask-conic":[Pe]}],"mask-image-conic-from-pos":[{"mask-conic-from":Se()}],"mask-image-conic-to-pos":[{"mask-conic-to":Se()}],"mask-image-conic-from-color":[{"mask-conic-from":M()}],"mask-image-conic-to-color":[{"mask-conic-to":M()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Q()}],"mask-repeat":[{mask:F()}],"mask-size":[{mask:Y()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",pe,me]}],filter:[{filter:["","none",pe,me]}],blur:[{blur:la()}],brightness:[{brightness:[Pe,pe,me]}],contrast:[{contrast:[Pe,pe,me]}],"drop-shadow":[{"drop-shadow":["","none",N,jd,wd]}],"drop-shadow-color":[{"drop-shadow":M()}],grayscale:[{grayscale:["",Pe,pe,me]}],"hue-rotate":[{"hue-rotate":[Pe,pe,me]}],invert:[{invert:["",Pe,pe,me]}],saturate:[{saturate:[Pe,pe,me]}],sepia:[{sepia:["",Pe,pe,me]}],"backdrop-filter":[{"backdrop-filter":["","none",pe,me]}],"backdrop-blur":[{"backdrop-blur":la()}],"backdrop-brightness":[{"backdrop-brightness":[Pe,pe,me]}],"backdrop-contrast":[{"backdrop-contrast":[Pe,pe,me]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Pe,pe,me]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Pe,pe,me]}],"backdrop-invert":[{"backdrop-invert":["",Pe,pe,me]}],"backdrop-opacity":[{"backdrop-opacity":[Pe,pe,me]}],"backdrop-saturate":[{"backdrop-saturate":[Pe,pe,me]}],"backdrop-sepia":[{"backdrop-sepia":["",Pe,pe,me]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":D()}],"border-spacing-x":[{"border-spacing-x":D()}],"border-spacing-y":[{"border-spacing-y":D()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",pe,me]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Pe,"initial",pe,me]}],ease:[{ease:["linear","initial",T,pe,me]}],delay:[{delay:[Pe,pe,me]}],animate:[{animate:["none",E,pe,me]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,pe,me]}],"perspective-origin":[{"perspective-origin":P()}],rotate:[{rotate:Da()}],"rotate-x":[{"rotate-x":Da()}],"rotate-y":[{"rotate-y":Da()}],"rotate-z":[{"rotate-z":Da()}],scale:[{scale:ai()}],"scale-x":[{"scale-x":ai()}],"scale-y":[{"scale-y":ai()}],"scale-z":[{"scale-z":ai()}],"scale-3d":["scale-3d"],skew:[{skew:Ai()}],"skew-x":[{"skew-x":Ai()}],"skew-y":[{"skew-y":Ai()}],transform:[{transform:[pe,me,"","none","gpu","cpu"]}],"transform-origin":[{origin:P()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ca()}],"translate-x":[{"translate-x":ca()}],"translate-y":[{"translate-y":ca()}],"translate-z":[{"translate-z":ca()}],"translate-none":["translate-none"],zoom:[{zoom:[ci,pe,me]}],accent:[{accent:M()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:M()}
vendor: 5,321 bytes, line 9
9],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",pe,me]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":M()}],"scrollbar-track-color":[{"scrollbar-track":M()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":D()}],"scroll-mx":[{"scroll-mx":D()}],"scroll-my":[{"scroll-my":D()}],"scroll-ms":[{"scroll-ms":D()}],"scroll-me":[{"scroll-me":D()}],"scroll-mbs":[{"scroll-mbs":D()}],"scroll-mbe":[{"scroll-mbe":D()}],"scroll-mt":[{"scroll-mt":D()}],"scroll-mr":[{"scroll-mr":D()}],"scroll-mb":[{"scroll-mb":D()}],"scroll-ml":[{"scroll-ml":D()}],"scroll-p":[{"scroll-p":D()}],"scroll-px":[{"scroll-px":D()}],"scroll-py":[{"scroll-py":D()}],"scroll-ps":[{"scroll-ps":D()}],"scroll-pe":[{"scroll-pe":D()}],"scroll-pbs":[{"scroll-pbs":D()}],"scroll-pbe":[{"scroll-pbe":D()}],"scroll-pt":[{"scroll-pt":D()}],"scroll-pr":[{"scroll-pr":D()}],"scroll-pb":[{"scroll-pb":D()}],"scroll-pl":[{"scroll-pl":D()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",pe,me]}],fill:[{fill:["none",...M()]}],"stroke-w":[{stroke:[Pe,ll,or,Hw]}],stroke:[{stroke:["none",...M()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},I8=n8(S8);function ie(...t){return I8(dN(t))}const C8=gM,ZN=y.forwardRef(({className:t,...a},r)=>e.jsx(iN,{ref:r,className:ie("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",t),...a}));ZN.displayName=iN.displayName;
9const M8=Bu("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),JN=y.forwardRef(({className:t,variant:a,...r},s)=>e.jsx(nN,{ref:s,className:ie(M8({variant:a}),t),...r}));JN.displayName=nN.displayName;const T8=y.forwardRef(({className:t,...a},r)=>e.jsx(oN,{ref:r,className:ie("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",t),...a}));T8.displayName=oN.displayName;const eA=y.forwardRef(({className:t,...a},r)=>e.jsx(lN,{ref:r,className:ie("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",t),"toast-close":"",...a,children:e.jsx(eo,{className:"h-4 w-4"})}));eA.displayName=lN.displayName;const tA=y.forwardRef(({className:t,...a},r)=>e.jsx(rN,{ref:r,className:ie("text-sm font-semibold",t),...a}));tA.displayName=rN.displayName;const aA=y.forwardRef(({className:t,...a},r)=>e.jsx(sN,{ref:r,className:ie("text-sm opacity-90",t),...a}));aA.displayName=sN.displayName;function E8(){const{toasts:t}=_j();return e.jsxs(C8,{children:[t.map(function({id:a,title:r,description:s,action:l,...d}){return e.jsxs(JN,{...d,children:[e.jsxs("div",{className:"grid gap-1",children:[r&&e.jsx(tA,{children:r}),s&&e.jsx(aA,{children:s})]}),l,e.jsx(eA,{})]},a)}),e.jsx(ZN,{})]})}var R8=Ru[" useId ".trim().toString()]||(()=>{}),P8=0;function $a(t){const[a,r]=y.useState(R8());return fi(()=>{r(s=>s??String(P8++))},[t]),a?`radix-${a}`:""}const O8=["top","right","bottom","left"],En=Math.min,ba=Math.max,pu=Math.round,Nd=Math.floor,gi=t=>({x:t,y:t}),D8={left:"right",right:"left",bottom:"top",top:"bottom"};function Yf(t,a,r){return ba(t,En(a,r))}function $i(t,a){return typeof t=="function"?t(a):t}function Wi(t){return t.split("-")[0]}function to(t){return t.split("-")[1]}function tx(t){return t==="x"?"y":"x"}function ax(t){return t==="y"?"height":"width"}function hi(t){const a=t[0];return a==="t"||a==="b"?"y":"x"}function ix(t){return tx(hi(t))}function L8(t,a,r){r===void 0&&(r=!1);const s=to(t),l=ix(t),d=ax(l);let u=l==="x"?s===(r?"end":"start")?"right":"left":s==="start"?"bottom":"top";return a.reference[d]>a.floating[d]&&(u=hu(u)),[u,hu(u)]}function V8(t){const a=hu(t);return[Qf(t),a,Qf(a)]}function Qf(t){return t.includes("start")?t.replace("start","end"):t.replace("end","start")}const Xw=["left","right"],$w=["right","left"],_8=["top","bottom"],z8=["bottom","top"];function q8(t,a,r){switch(t){case"top":case"bottom":return r?a?$w:Xw:a?Xw:$w;case"left":case"right":return a?_8:z8;default:return[]}}function F8(t,a,r,s){const l=to(t);let d=q8(Wi(t),r==="start",s);return l&&(d=d.map(u=>u+"-"+l),a&&(d=d.concat(d.map(Qf)))),d}function hu(t){const a=Wi(t);return D8[a]+t.slice(a.length)}function B8(t){return{top:0,right:0,bottom:0,left:0,...t}}function iA(t){return typeof t!="number"?B8(t):{top:t,right:t,bottom:t,left:t}}function fu(t){const{x:a,y:r,width:s,height:l}=t;return{width:s,height:l,top:r,left:a,right:a+s,bottom:r+l,x:a,y:r}}function Ww(t,a,r){let{reference:s,floating:l}=t;const d=hi(a),u=ix(a),p=ax(u),g=Wi(a),h=d==="y",x=s.x+s.width/2-l.width/2,b=s.y+s.height/2-l.height/2,w=s[p]/2-l[p]/2;let N;switch(g){case"top":N={x,y:s.y-l.height};break;case"bottom":N={x,y:s.y+s.height};break;case"right":N={x:s.x+s.width,y:b};break;case"left":N={x:s.x-l.width,y:b};break;default:N={x:s.x,y:s.y}}switch(to(a)){case"start":N[u]-=w*(r&&h?-1:1);break;case"end":N[u]+=w*(r&&h?-1:1);break}return N}async function H8(t,a){var r;a===void 0&&(a={});const{x:s,y:l,platform:d,rects:u,elements:p,strategy:g}=t,{boundary:h="clippingAncestors",rootBoundary:x="viewport",elementContext:b="floating",altBoundary:w=!1,padding:N=0}=$i(a,t),A=iA(N),I=p[w?b==="floating"?"reference":"floating":b],T=fu(await d.getClippingRect
vendor: 4,874 bytes, line 9
9({element:(r=await(d.isElement==null?void 0:d.isElement(I)))==null||r?I:I.contextElement||await(d.getDocumentElement==null?void 0:d.getDocumentElement(p.floating)),boundary:h,rootBoundary:x,strategy:g})),E=b==="floating"?{x:s,y:l,width:u.floating.width,height:u.floating.height}:u.reference,R=await(d.getOffsetParent==null?void 0:d.getOffsetParent(p.floating)),C=await(d.isElement==null?void 0:d.isElement(R))?await(d.getScale==null?void 0:d.getScale(R))||{x:1,y:1}:{x:1,y:1},P=fu(d.convertOffsetParentRelativeRectToViewportRelativeRect?await d.convertOffsetParentRelativeRectToViewportRelativeRect({elements:p,rect:E,offsetParent:R,strategy:g}):E);return{top:(T.top-P.top+A.top)/C.y,bottom:(P.bottom-T.bottom+A.bottom)/C.y,left:(T.left-P.left+A.left)/C.x,right:(P.right-T.right+A.right)/C.x}}const G8=50,U8=async(t,a,r)=>{const{placement:s="bottom",strategy:l="absolute",middleware:d=[],platform:u}=r,p=u.detectOverflow?u:{...u,detectOverflow:H8},g=await(u.isRTL==null?void 0:u.isRTL(a));let h=await u.getElementRects({reference:t,floating:a,strategy:l}),{x,y:b}=Ww(h,s,g),w=s,N=0;const A={};for(let k=0;k<d.length;k++){const I=d[k];if(!I)continue;const{name:T,fn:E}=I,{x:R,y:C,data:P,reset:z}=await E({x,y:b,initialPlacement:s,placement:w,strategy:l,middlewareData:A,rects:h,platform:p,elements:{reference:t,floating:a}});x=R??x,b=C??b,A[T]={...A[T],...P},z&&N<G8&&(N++,typeof z=="object"&&(z.placement&&(w=z.placement),z.rects&&(h=z.rects===!0?await u.getElementRects({reference:t,floating:a,strategy:l}):z.rects),{x,y:b}=Ww(h,w,g)),k=-1)}return{x,y:b,placement:w,strategy:l,middlewareData:A}},X8=t=>({name:"arrow",options:t,async fn(a){const{x:r,y:s,placement:l,rects:d,platform:u,elements:p,middlewareData:g}=a,{element:h,padding:x=0}=$i(t,a)||{};if(h==null)return{};const b=iA(x),w={x:r,y:s},N=ix(l),A=ax(N),k=await u.getDimensions(h),I=N==="y",T=I?"top":"left",E=I?"bottom":"right",R=I?"clientHeight":"clientWidth",C=d.reference[A]+d.reference[N]-w[N]-d.floating[A],P=w[N]-d.reference[N],z=await(u.getOffsetParent==null?void 0:u.getOffsetParent(h));let V=z?z[R]:0;(!V||!await(u.isElement==null?void 0:u.isElement(z)))&&(V=p.floating[R]||d.floating[A]);const D=C/2-P/2,K=V/2-k[A]/2-1,ne=En(b[T],K),le=En(b[E],K),ce=ne,ye=V-k[A]-le,se=V/2-k[A]/2+D,ue=Yf(ce,se,ye),_=!g.arrow&&to(l)!=null&&se!==ue&&d.reference[A]/2-(se<ce?ne:le)-k[A]/2<0,ee=_?se<ce?se-ce:se-ye:0;return{[N]:w[N]+ee,data:{[N]:ue,centerOffset:se-ue-ee,..._&&{alignmentOffset:ee}},reset:_}}}),$8=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(a){var r,s;const{placement:l,middlewareData:d,rects:u,initialPlacement:p,platform:g,elements:h}=a,{mainAxis:x=!0,crossAxis:b=!0,fallbackPlacements:w,fallbackStrategy:N="bestFit",fallbackAxisSideDirection:A="none",flipAlignment:k=!0,...I}=$i(t,a);if((r=d.arrow)!=null&&r.alignmentOffset)return{};const T=Wi(l),E=hi(p),R=Wi(p)===p,C=await(g.isRTL==null?void 0:g.isRTL(h.floating)),P=w||(R||!k?[hu(p)]:V8(p)),z=A!=="none";!w&&z&&P.push(...F8(p,k,A,C));const V=[p,...P],D=await g.detectOverflow(a,I),K=[];let ne=((s=d.flip)==null?void 0:s.overflows)||[];if(x&&K.push(D[T]),b){const se=L8(l,u,C);K.push(D[se[0]],D[se[1]])}if(ne=[...ne,{placement:l,overflows:K}],!K.every(se=>se<=0)){var le,ce;const se=(((le=d.flip)==null?void 0:le.index)||0)+1,ue=V[se];if(ue&&(!(b==="alignment"?E!==hi(ue):!1)||ne.every(X=>hi(X.placement)===E?X.overflows[0]>0:!0)))return{data:{index:se,overflows:ne},reset:{placement:ue}};let _=(ce=ne.filter(ee=>ee.overflows[0]<=0).sort((ee,X)=>ee.overflows[1]-X.overflows[1])[0])==null?void 0:ce.placement;if(!_)switch(N){case"bestFit":{var ye;const ee=(ye=ne.filter(X=>{if(z){const oe=hi(X.placement);return oe===E||oe==="y"}return!0}).map(X=>[X.placement,X.overflows.filter(oe=>oe>0).reduce((oe,M)=>oe+M,0)]).sort((X,oe)=>X[1]-oe[1])[0])==null?void 0:ye[0];ee&&(_=ee);break}case"initialPlacement":_=p;break}if(l!==_)return{reset:{placement:_}}}return{}}}};function Kw(t,a){return{top:t.top-a.height,right:t.right-a.width,bottom:t.bottom-a.height,left:t.left-a.width}}function Yw(t){return O8.some(a=>t[a]>=0)}const W8=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(a){const{rects:r,platform:s}=a,{strategy:l="referenceHidden",...d}=$i(t,a);switch(l){case"referenceHidden":{const u=await s.detectOverflow(a,{...d,elementContext:"reference"}),p=Kw(u,r.reference);return{data:{referenceHiddenOffsets:p,referenceHidden:Yw(p)}}}case"escaped":{const u=await s.detectOverflow(a,{...d,altBoundary:!0}),p=Kw(u,r.floating);return{data:{escapedOffsets:p,escaped:Yw(p)}}}default:return{}}}}},nA=new Set(["left","top"]);async function K8(t,a){const{placement:r,platform:s,elements:l}=t,d=await(s.isRTL==null?void 0:s.isRTL(l.floating)),u=Wi(r),p=to(r),g=hi(r)==="y",h=nA.has(u)?-1:1,x=d&&g?-1:1,b=$i(a,t);let{mainAxis:w,crossAxis:N,alignmentAxis:A}=typeof b=="number"?{mainAxis:b,crossAxis:0,alignmentAxis:null}
9:{mainAxis:b.mainAxis||0,crossAxis:b.crossAxis||0,alignmentAxis:b.alignmentAxis};return p&&typeof A=="number"&&(N=p==="end"?A*-1:A),g?{x:N*x,y:w*h}:{x:w*h,y:N*x}}const Y8=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(a){var r,s;const{x:l,y:d,placement:u,middlewareData:p}=a,g=await K8(a,t);return u===((r=p.offset)==null?void 0:r.placement)&&(s=p.arrow)!=null&&s.alignmentOffset?{}:{x:l+g.x,y:d+g.y,data:{...g,placement:u}}}}},Q8=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(a){const{x:r,y:s,placement:l,platform:d}=a,{mainAxis:u=!0,crossAxis:p=!1,limiter:g={fn:T=>{let{x:E,y:R}=T;return{x:E,y:R}}},...h}=$i(t,a),x={x:r,y:s},b=await d.detectOverflow(a,h),w=hi(Wi(l)),N=tx(w);let A=x[N],k=x[w];if(u){const T=N==="y"?"top":"left",E=N==="y"?"bottom":"right",R=A+b[T],C=A-b[E];A=Yf(R,A,C)}if(p){const T=w==="y"?"top":"left",E=w==="y"?"bottom":"right",R=k+b[T],C=k-b[E];k=Yf(R,k,C)}const I=g.fn({...a,[N]:A,[w]:k});return{...I,data:{x:I.x-r,y:I.y-s,enabled:{[N]:u,[w]:p}}}}}},Z8=function(t){return t===void 0&&(t={}),{options:t,fn(a){const{x:r,y:s,placement:l,rects:d,middlewareData:u}=a,{offset:p=0,mainAxis:g=!0,crossAxis:h=!0}=$i(t,a),x={x:r,y:s},b=hi(l),w=tx(b);let N=x[w],A=x[b];const k=$i(p,a),I=typeof k=="number"?{mainAxis:k,crossAxis:0}:{mainAxis:0,crossAxis:0,...k};if(g){const R=w==="y"?"height":"width",C=d.reference[w]-d.floating[R]+I.mainAxis,P=d.reference[w]+d.reference[R]-I.mainAxis;N<C?N=C:N>P&&(N=P)}if(h){var T,E;const R=w==="y"?"width":"height",C=nA.has(Wi(l)),P=d.reference[b]-d.floating[R]+(C&&((T=u.offset)==null?void 0:T[b])||0)+(C?0:I.crossAxis),z=d.reference[b]+d.reference[R]+(C?0:((E=u.offset)==null?void 0:E[b])||0)-(C?I.crossAxis:0);A<P?A=P:A>z&&(A=z)}return{[w]:N,[b]:A}}}},J8=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(a){var r,s;const{placement:l,rects:d,platform:u,elements:p}=a,{apply:g=()=>{},...h}=$i(t,a),x=await u.detectOverflow(a,h),b=Wi(l),w=to(l),N=hi(l)==="y",{width:A,height:k}=d.floating;let I,T;b==="top"||b==="bottom"?(I=b,T=w===(await(u.isRTL==null?void 0:u.isRTL(p.floating))?"start":"end")?"left":"right"):(T=b,I=w==="end"?"top":"bottom");const E=k-x.top-x.bottom,R=A-x.left-x.right,C=En(k-x[I],E),P=En(A-x[T],R),z=!a.middlewareData.shift;let V=C,D=P;if((r=a.middlewareData.shift)!=null&&r.enabled.x&&(D=R),(s=a.middlewareData.shift)!=null&&s.enabled.y&&(V=E),z&&!w){const ne=ba(x.left,0),le=ba(x.right,0),ce=ba(x.top,0),ye=ba(x.bottom,0);N?D=A-2*(ne!==0||le!==0?ne+le:ba(x.left,x.right)):V=k-2*(ce!==0||ye!==0?ce+ye:ba(x.top,x.bottom))}await g({...a,availableWidth:D,availableHeight:V});const K=await u.getDimensions(p.floating);return A!==K.width||k!==K.height?{reset:{rects:!0}}:{}}}};function Wu(){return typeof window<"u"}function ao(t){return rA(t)?(t.nodeName||"").toLowerCase():"#document"}function va(t){var a;return(t==null||(a=t.ownerDocument)==null?void 0:a.defaultView)||window}function Ni(t){var a;return(a=(rA(t)?t.ownerDocument:t.document)||window.document)==null?void 0:a.documentElement}function rA(t){return Wu()?t instanceof Node||t instanceof va(t).Node:!1}function Qa(t){return Wu()?t instanceof Element||t instanceof va(t).Element:!1}function Qi(t){return Wu()?t instanceof HTMLElement||t instanceof va(t).HTMLElement:!1}function Qw(t){return!Wu()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof va(t).ShadowRoot}function Wl(t){const{overflow:a,overflowX:r,overflowY:s,display:l}=Za(t);return/auto|scroll|overlay|hidden|clip/.test(a+s+r)&&l!=="inline"&&l!=="contents"}function eO(t){return/^(table|td|th)$/.test(ao(t))}function Ku(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const tO=/transform|translate|scale|rotate|perspective|filter/,aO=/paint|layout|strict|content/,lr=t=>!!t&&t!=="none";let Gh;function nx(t){const a=Qa(t)?Za(t):t;return lr(a.transform)||lr(a.translate)||lr(a.scale)||lr(a.rotate)||lr(a.perspective)||!rx()&&(lr(a.backdropFilter)||lr(a.filter))||tO.test(a.willChange||"")||aO.test(a.contain||"")}function iO(t){let a=Rn(t);for(;Qi(a)&&!Xs(a);){if(nx(a))return a;
vendor: 7,854 bytes, line 9
9if(Ku(a))return null;a=Rn(a)}return null}function rx(){return Gh==null&&(Gh=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Gh}function Xs(t){return/^(html|body|#document)$/.test(ao(t))}function Za(t){return va(t).getComputedStyle(t)}function Yu(t){return Qa(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Rn(t){if(ao(t)==="html")return t;const a=t.assignedSlot||t.parentNode||Qw(t)&&t.host||Ni(t);return Qw(a)?a.host:a}function sA(t){const a=Rn(t);return Xs(a)?t.ownerDocument?t.ownerDocument.body:t.body:Qi(a)&&Wl(a)?a:sA(a)}function Vl(t,a,r){var s;a===void 0&&(a=[]),r===void 0&&(r=!0);const l=sA(t),d=l===((s=t.ownerDocument)==null?void 0:s.body),u=va(l);if(d){const p=Zf(u);return a.concat(u,u.visualViewport||[],Wl(l)?l:[],p&&r?Vl(p):[])}else return a.concat(l,Vl(l,[],r))}function Zf(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function oA(t){const a=Za(t);let r=parseFloat(a.width)||0,s=parseFloat(a.height)||0;const l=Qi(t),d=l?t.offsetWidth:r,u=l?t.offsetHeight:s,p=pu(r)!==d||pu(s)!==u;return p&&(r=d,s=u),{width:r,height:s,$:p}}function sx(t){return Qa(t)?t:t.contextElement}function Bs(t){const a=sx(t);if(!Qi(a))return gi(1);const r=a.getBoundingClientRect(),{width:s,height:l,$:d}=oA(a);let u=(d?pu(r.width):r.width)/s,p=(d?pu(r.height):r.height)/l;return(!u||!Number.isFinite(u))&&(u=1),(!p||!Number.isFinite(p))&&(p=1),{x:u,y:p}}const nO=gi(0);function lA(t){const a=va(t);return!rx()||!a.visualViewport?nO:{x:a.visualViewport.offsetLeft,y:a.visualViewport.offsetTop}}function rO(t,a,r){return a===void 0&&(a=!1),!r||a&&r!==va(t)?!1:a}function Ar(t,a,r,s){a===void 0&&(a=!1),r===void 0&&(r=!1);const l=t.getBoundingClientRect(),d=sx(t);let u=gi(1);a&&(s?Qa(s)&&(u=Bs(s)):u=Bs(t));const p=rO(d,r,s)?lA(d):gi(0);let g=(l.left+p.x)/u.x,h=(l.top+p.y)/u.y,x=l.width/u.x,b=l.height/u.y;if(d){const w=va(d),N=s&&Qa(s)?va(s):s;let A=w,k=Zf(A);for(;k&&s&&N!==A;){const I=Bs(k),T=k.getBoundingClientRect(),E=Za(k),R=T.left+(k.clientLeft+parseFloat(E.paddingLeft))*I.x,C=T.top+(k.clientTop+parseFloat(E.paddingTop))*I.y;g*=I.x,h*=I.y,x*=I.x,b*=I.y,g+=R,h+=C,A=va(k),k=Zf(A)}}return fu({width:x,height:b,x:g,y:h})}function Qu(t,a){const r=Yu(t).scrollLeft;return a?a.left+r:Ar(Ni(t)).left+r}function cA(t,a){const r=t.getBoundingClientRect(),s=r.left+a.scrollLeft-Qu(t,r),l=r.top+a.scrollTop;return{x:s,y:l}}function sO(t){let{elements:a,rect:r,offsetParent:s,strategy:l}=t;const d=l==="fixed",u=Ni(s),p=a?Ku(a.floating):!1;if(s===u||p&&d)return r;let g={scrollLeft:0,scrollTop:0},h=gi(1);const x=gi(0),b=Qi(s);if((b||!b&&!d)&&((ao(s)!=="body"||Wl(u))&&(g=Yu(s)),b)){const N=Ar(s);h=Bs(s),x.x=N.x+s.clientLeft,x.y=N.y+s.clientTop}const w=u&&!b&&!d?cA(u,g):gi(0);return{width:r.width*h.x,height:r.height*h.y,x:r.x*h.x-g.scrollLeft*h.x+x.x+w.x,y:r.y*h.y-g.scrollTop*h.y+x.y+w.y}}function oO(t){return Array.from(t.getClientRects())}function lO(t){const a=Ni(t),r=Yu(t),s=t.ownerDocument.body,l=ba(a.scrollWidth,a.clientWidth,s.scrollWidth,s.clientWidth),d=ba(a.scrollHeight,a.clientHeight,s.scrollHeight,s.clientHeight);let u=-r.scrollLeft+Qu(t);const p=-r.scrollTop;return Za(s).direction==="rtl"&&(u+=ba(a.clientWidth,s.clientWidth)-l),{width:l,height:d,x:u,y:p}}const Zw=25;function cO(t,a){const r=va(t),s=Ni(t),l=r.visualViewport;let d=s.clientWidth,u=s.clientHeight,p=0,g=0;if(l){d=l.width,u=l.height;const x=rx();(!x||x&&a==="fixed")&&(p=l.offsetLeft,g=l.offsetTop)}const h=Qu(s);if(h<=0){const x=s.ownerDocument,b=x.body,w=getComputedStyle(b),N=x.compatMode==="CSS1Compat"&&parseFloat(w.marginLeft)+parseFloat(w.marginRight)||0,A=Math.abs(s.clientWidth-b.clientWidth-N);A<=Zw&&(d-=A)}else h<=Zw&&(d+=h);return{width:d,height:u,x:p,y:g}}function dO(t,a){const r=Ar(t,!0,a==="fixed"),s=r.top+t.clientTop,l=r.left+t.clientLeft,d=Qi(t)?Bs(t):gi(1),u=t.clientWidth*d.x,p=t.clientHeight*d.y,g=l*d.x,h=s*d.y;return{width:u,height:p,x:g,y:h}}function Jw(t,a,r){let s;if(a==="viewport")s=cO(t,r);else if(a==="document")s=lO(Ni(t));else if(Qa(a))s=dO(a,r);else{const l=lA(t);s={x:a.x-l.x,y:a.y-l.y,width:a.width,height:a.height}}return fu(s)}function dA(t,a){const r=Rn(t);return r===a||!Qa(r)||Xs(r)?!1:Za(r).position==="fixed"||dA(r,a)}function uO(t,a){const r=a.get(t);if(r)return r;let s=Vl(t,[],!1).filter(p=>Qa(p)&&ao(p)!=="body"),l=null;const d=Za(t).position==="fixed";let u=d?Rn(t):t;for(;Qa(u)&&!Xs(u);){const p=Za(u),g=nx(u);!g&&p.position==="fixed"&&(l=null),(d?!g&&!l:!g&&p.position==="static"&&!!l&&(l.position==="absolute"||l.position==="fixed")||Wl(u)&&!g&&dA(t,u))?s=s.filter(x=>x!==u):l=p,u=Rn(u)}return a.set(t,s),s}function mO(t){let{element:a,boundary:r,rootBoundary:s,strategy:l}=t;const u=[...r==="clippingAncestors"?Ku(a)?[]:uO(a,this._c):[].concat(r),s],p=Jw(a,u[0],l);let g=p.top,h=p.right,x=p.bottom,b=p.left;for(let w=1;w<u.length;w++){const N=Jw(a,u[w],l);g=ba(N.top,g),h=En(N.right,h),x=En(N.bottom,x),b=ba(N.left,b)}return{width:h-b,height:x-g,x:b,y:g}}function pO(t){const{width:a,height:r}=oA(t);return{width:a,height:r}}function hO(t,a,r){const s=Qi(a),l=Ni(a),d=r==="fixed",u=Ar(t,!0,d,a);let p={scrollLeft:0,scrollTop:0};const g=gi(0);function h(){g.x=Qu(l)}if(s||!s&&!d)if((ao(a)!=="body"||Wl(l))&&(p=Yu(a)),s){const N=Ar(a,!0,d,a);g.x=N.x+a.clientLeft,g.y=N.y+a.clientTop}else l&&h();d&&!s&&l&&h();const x=l&&!s&&!d?cA(l,p):gi(0),b=u.left+p.scrollLeft-g.x-x.x,w=u.top+p.scrollTop-g.y-x.y;return{x:b,y:w,width:u.width,height:u.height}}function Uh(t){return Za(t).position==="static"}function e1(t,a){if(!Qi(t)||Za(t).position==="fixed")return null;if(a)return a(t);let r=t.offsetParent;return Ni(t)===r&&(r=r.ownerDocument.body),r}function uA(t,a){const r=va(t);if(Ku(t))return r;if(!Qi(t)){let l=Rn(t);for(;l&&!Xs(l);){if(Qa(l)&&!Uh(l))return l;l=Rn(l)}return r}let s=e1(t,a);for(;s&&eO(s)&&Uh(s);)s=e1(s,a);return s&&Xs(s)&&Uh(s)&&!nx(s)?r:s||iO(t)||r}const fO=async function(t){const a=this.getOffsetParent||uA,r=this.getDimensions,s=await r(t.floating);return{reference:hO(t.reference,await a(t.floating),t.strategy),floating:{x:0,y:0,width:s.width,height:s.height}}};function gO(t){return Za(t).direction==="rtl"}const xO={convertOffsetParentRelativeRectToViewportRelativeRect:sO,getDocumentElement:Ni,getClippingRect:mO,getOffsetParent:uA,getElementRects:fO,getClientRects:oO,getDimensions:pO,getScale:Bs,isElement:Qa,isRTL:gO};function mA(t,a){return t.x===a.x&&t.y===a.y&&t.width===a.width&&t.height===a.height}function yO(t,a){let r=null,s;const l=Ni(t);function d(){var p;clearTimeout(s),(p=r)==null||p.disconnect(),r=null}function u(p,g){p===void 0&&(p=!1),g===void 0&&(g=1),d();const h=t.getBoundingClientRect(),{left:x,top:b,width:w,height:N}=h;if(p||a(),!w||!N)return;const A=Nd(b),k=Nd(l.clientWidth-(x+w)),I=Nd(l.clientHeight-(b+N)),T=Nd(x),R={rootMargin:-A+"px "+-k+"px "+-I+"px "+-T+"px",threshold:ba(0,En(1,g))||1};let C=!0;function P(z){const V=z[0].intersectionRatio;if(V!==g){if(!C)return u();V?u(!1,V):s=setTimeout(()=>{u(!1,1e-7)},1e3)}V===1&&!mA(h,t.getBoundingClientRect())&&u(),C=!1}try{r=new IntersectionObserver(P,{...R,root:l.ownerDocument})}catch{r=new IntersectionObserver(P,R)}r.observe(t)}return u(!0),d}function bO(t,a,r,s){s===void 0&&(s={});const{ancestorScroll:l=!0,ancestorResize:d=!0,elementResize:u=typeof ResizeObserver=="function",layoutShift:p=typeof IntersectionObserver=="function",animationFrame:g=!1}=s,h=sx(t),x=l||d?[...h?Vl(h):[],...a?Vl(a):[]]:[];x.forEach(T=>{l&&T.addEventListener("scroll",r,{passive:!0}),d&&T.addEventListener("resize",r)});const b=h&&p?yO(h,r):null;let w=-1,N=null;u&&(N=new ResizeObserver(T=>{let[E]=T;E&&E.target===h&&N&&a&&(N.unobserve(a),cancelAnimationFrame(w),w=requestAnimationFrame(()=>{var R;(R=N)==null||R.observe(a)})),r()}),h&&!g&&N.observe(h),a&&N.observe(a));let A,k=g?Ar(t):null;g&&I();function I(){const T=Ar(t);
vendor: 7,249 bytes, line 9
9k&&!mA(k,T)&&r(),k=T,A=requestAnimationFrame(I)}return r(),()=>{var T;x.forEach(E=>{l&&E.removeEventListener("scroll",r),d&&E.removeEventListener("resize",r)}),b?.(),(T=N)==null||T.disconnect(),N=null,g&&cancelAnimationFrame(A)}}const vO=Y8,wO=Q8,jO=$8,NO=J8,AO=W8,t1=X8,kO=Z8,SO=(t,a,r)=>{const s=new Map,l={platform:xO,...r},d={...l.platform,_c:s};return U8(t,a,{...l,platform:d})};var IO=typeof document<"u",CO=function(){},Wd=IO?y.useLayoutEffect:CO;function gu(t,a){if(t===a)return!0;if(typeof t!=typeof a)return!1;if(typeof t=="function"&&t.toString()===a.toString())return!0;let r,s,l;if(t&&a&&typeof t=="object"){if(Array.isArray(t)){if(r=t.length,r!==a.length)return!1;for(s=r;s--!==0;)if(!gu(t[s],a[s]))return!1;return!0}if(l=Object.keys(t),r=l.length,r!==Object.keys(a).length)return!1;for(s=r;s--!==0;)if(!{}.hasOwnProperty.call(a,l[s]))return!1;for(s=r;s--!==0;){const d=l[s];if(!(d==="_owner"&&t.$$typeof)&&!gu(t[d],a[d]))return!1}return!0}return t!==t&&a!==a}function pA(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function a1(t,a){const r=pA(t);return Math.round(a*r)/r}function Xh(t){const a=y.useRef(t);return Wd(()=>{a.current=t}),a}function MO(t){t===void 0&&(t={});const{placement:a="bottom",strategy:r="absolute",middleware:s=[],platform:l,elements:{reference:d,floating:u}={},transform:p=!0,whileElementsMounted:g,open:h}=t,[x,b]=y.useState({x:0,y:0,strategy:r,placement:a,middlewareData:{},isPositioned:!1}),[w,N]=y.useState(s);gu(w,s)||N(s);const[A,k]=y.useState(null),[I,T]=y.useState(null),E=y.useCallback(X=>{X!==z.current&&(z.current=X,k(X))},[]),R=y.useCallback(X=>{X!==V.current&&(V.current=X,T(X))},[]),C=d||A,P=u||I,z=y.useRef(null),V=y.useRef(null),D=y.useRef(x),K=g!=null,ne=Xh(g),le=Xh(l),ce=Xh(h),ye=y.useCallback(()=>{if(!z.current||!V.current)return;const X={placement:a,strategy:r,middleware:w};le.current&&(X.platform=le.current),SO(z.current,V.current,X).then(oe=>{const M={...oe,isPositioned:ce.current!==!1};se.current&&!gu(D.current,M)&&(D.current=M,Lu.flushSync(()=>{b(M)}))})},[w,a,r,le,ce]);Wd(()=>{h===!1&&D.current.isPositioned&&(D.current.isPositioned=!1,b(X=>({...X,isPositioned:!1})))},[h]);const se=y.useRef(!1);Wd(()=>(se.current=!0,()=>{se.current=!1}),[]),Wd(()=>{if(C&&(z.current=C),P&&(V.current=P),C&&P){if(ne.current)return ne.current(C,P,ye);ye()}},[C,P,ye,ne,K]);const ue=y.useMemo(()=>({reference:z,floating:V,setReference:E,setFloating:R}),[E,R]),_=y.useMemo(()=>({reference:C,floating:P}),[C,P]),ee=y.useMemo(()=>{const X={position:r,left:0,top:0};if(!_.floating)return X;const oe=a1(_.floating,x.x),M=a1(_.floating,x.y);return p?{...X,transform:"translate("+oe+"px, "+M+"px)",...pA(_.floating)>=1.5&&{willChange:"transform"}}:{position:r,left:oe,top:M}},[r,p,_.floating,x.x,x.y]);return y.useMemo(()=>({...x,update:ye,refs:ue,elements:_,floatingStyles:ee}),[x,ye,ue,_,ee])}const TO=t=>{function a(r){return{}.hasOwnProperty.call(r,"current")}return{name:"arrow",options:t,fn(r){const{element:s,padding:l}=typeof t=="function"?t(r):t;return s&&a(s)?s.current!=null?t1({element:s.current,padding:l}).fn(r):{}:s?t1({element:s,padding:l}).fn(r):{}}}},EO=(t,a)=>{const r=vO(t);return{name:r.name,fn:r.fn,options:[t,a]}},RO=(t,a)=>{const r=wO(t);return{name:r.name,fn:r.fn,options:[t,a]}},PO=(t,a)=>({fn:kO(t).fn,options:[t,a]}),OO=(t,a)=>{const r=jO(t);return{name:r.name,fn:r.fn,options:[t,a]}},DO=(t,a)=>{const r=NO(t);return{name:r.name,fn:r.fn,options:[t,a]}},LO=(t,a)=>{const r=AO(t);return{name:r.name,fn:r.fn,options:[t,a]}},VO=(t,a)=>{const r=TO(t);return{name:r.name,fn:r.fn,options:[t,a]}};var _O="Arrow",hA=y.forwardRef((t,a)=>{const{children:r,width:s=10,height:l=5,...d}=t;return e.jsx(qe.svg,{...d,ref:a,width:s,height:l,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?r:e.jsx("polygon",{points:"0,0 30,0 15,10"})})});hA.displayName=_O;var zO=hA;function qO(t){const[a,r]=y.useState(void 0);return fi(()=>{if(t){r({width:t.offsetWidth,height:t.offsetHeight});const s=new ResizeObserver(l=>{if(!Array.isArray(l)||!l.length)return;const d=l[0];let u,p;if("borderBoxSize"in d){const g=d.borderBoxSize,h=Array.isArray(g)?g[0]:g;u=h.inlineSize,p=h.blockSize}else u=t.offsetWidth,p=t.offsetHeight;r({width:u,height:p})});return s.observe(t,{box:"border-box"}),()=>s.unobserve(t)}else r(void 0)},[t]),a}var fA="Popper",[gA,xA]=Ir(fA),[g$,yA]=gA(fA),bA="PopperAnchor",vA=y.forwardRef((t,a)=>{const{__scopePopper:r,virtualRef:s,...l}=t,d=yA(bA,r),u=y.useRef(null),p=d.onAnchorChange,g=y.useCallback(A=>{u.current=A,A&&p(A)},[p]),h=Bt(a,g),x=y.useRef(null);y.useEffect(()=>{if(!s)return;const A=x.current;x.current=s.current,A!==x.current&&p(x.current)});const b=d.placementState&&lx(d.placementState),w=b?.[0],N=b?.[1];return s?null:e.jsx(qe.div,{"data-radix-popper-side":w,"data-radix-popper-align":N,...l,ref:h})});vA.displayName=bA;var ox="PopperContent",[FO,BO]=gA(ox),wA=y.forwardRef((t,a)=>{const{__scopePopper:r,side:s="bottom",sideOffset:l=0,align:d="center",alignOffset:u=0,arrowPadding:p=0,avoidCollisions:g=!0,collisionBoundary:h=[],collisionPadding:x=0,sticky:b="partial",hideWhenDetached:w=!1,updatePositionStrategy:N="optimized",onPlaced:A,...k}=t,I=yA(ox,r),[T,E]=y.useState(null),R=Bt(a,ke=>E(ke)),[C,P]=y.useState(null),z=qO(C),V=z?.width??0,D=z?.height??0,K=s+(d!=="center"?"-"+d:""),ne=typeof x=="number"?x:{top:0,right:0,bottom:0,left:0,...x},le=Array.isArray(h)?h:[h],ce=le.length>0,ye={padding:ne,boundary:le.filter(GO),altBoundary:ce},{refs:se,floatingStyles:ue,placement:_,isPositioned:ee,middlewareData:X}=MO({strategy:"fixed",placement:K,whileElementsMounted:(...ke)=>bO(...ke,{animationFrame:N==="always"}),elements:{reference:I.anchor},middleware:[EO({mainAxis:l+D,alignmentAxis:u}),g&&RO({mainAxis:!0,crossAxis:!1,limiter:b==="partial"?PO():void 0,...ye}),g&&OO({...ye}),DO({...ye,apply:({elements:ke,rects:Se,availableWidth:la,availableHeight:Da})=>{const{width:ai,height:Ai}=Se.reference,ca=ke.floating.style;ca.setProperty("--radix-popper-available-width",`${la}px`),ca.setProperty("--radix-popper-available-height",`${Da}px`),ca.setProperty("--radix-popper-anchor-width",`${ai}px`),ca.setProperty("--radix-popper-anchor-height",`${Ai}px`)}}),C&&VO({element:C,padding:p}),UO({arrowWidth:V,arrowHeight:D}),w&&LO({strategy:"referenceHidden",...ye,boundary:ce?ye.boundary:void 0})]}),oe=I.setPlacementState;fi(()=>(oe(_),()=>{oe(void 0)}),[_,oe]);const[M,Q]=lx(_),F=Ka(A);fi(()=>{ee&&F?.()},[ee,F]);const Y=X.arrow?.x,re=X.arrow?.y,W=X.arrow?.centerOffset!==0,[te,je]=y.useState();return fi(()=>{T&&je(window.getComputedStyle(T).zIndex)},[T]),e.jsx("div",{ref:se.setFloating,"data-radix-popper-content-wrapper":"",style:{...ue,transform:ee?ue.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:te,"--radix-popper-transform-origin":[X.transformOrigin?.x,X.transformOrigin?.y].join(" "),...X.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:e.jsx(FO,{scope:r,placedSide:M,placedAlign:Q,onArrowChange:P,arrowX:Y,arrowY:re,shouldHideArrow:W,children:e.jsx(qe.div,{"data-side":M,"data-align":Q,...k,ref:R,style:{...k.style,animation:ee?void 0:"none"}})})})});wA.displayName=ox;var jA="PopperArrow",HO={top:"bottom",right:"left",bottom:"top",left:"r
9ight"},NA=y.forwardRef(function(a,r){const{__scopePopper:s,...l}=a,d=BO(jA,s),u=HO[d.placedSide];return e.jsx("span",{ref:d.onArrowChange,style:{position:"absolute",left:d.arrowX,top:d.arrowY,[u]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[d.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[d.placedSide],visibility:d.shouldHideArrow?"hidden":void 0},children:e.jsx(zO,{...l,ref:r,style:{...l.style,display:"block"}})})});NA.displayName=jA;function GO(t){return t!==null}var UO=t=>({name:"transformOrigin",options:t,fn(a){const{placement:r,rects:s,middlewareData:l}=a,u=l.arrow?.centerOffset!==0,p=u?0:t.arrowWidth,g=u?0:t.arrowHeight,[h,x]=lx(r),b={start:"0%",center:"50%",end:"100%"}[x],w=(l.arrow?.x??0)+p/2,N=(l.arrow?.y??0)+g/2;let A="",k="";return h==="bottom"?(A=u?b:`${w}px`,k=`${-g}px`):h==="top"?(A=u?b:`${w}px`,k=`${s.floating.height+g}px`):h==="right"?(A=`${-g}px`,k=u?b:`${N}px`):h==="left"&&(A=`${s.floating.width+g}px`,k=u?b:`${N}px`),{data:{x:A,y:k}}}});function lx(t){const[a,r="center"]=t.split("-");return[a,r]}var XO=vA,$O=wA,WO=NA,[Zu]=Ir("Tooltip",[xA]),cx=xA(),AA="TooltipProvider",KO=700,i1="tooltip.open",[YO,kA]=Zu(AA),SA=t=>{const{__scopeTooltip:a,delayDuration:r=KO,skipDelayDuration:s=300,disableHoverableContent:l=!1,children:d}=t,u=y.useRef(!0),p=y.useRef(!1),g=y.useRef(0);return y.useEffect(()=>{const h=g.current;return()=>window.clearTimeout(h)},[]),e.jsx(YO,{scope:a,isOpenDelayedRef:u,delayDuration:r,onOpen:y.useCallback(()=>{s<=0||(window.clearTimeout(g.current),u.current=!1)},[s]),onClose:y.useCallback(()=>{s<=0||(window.clearTimeout(g.current),g.current=window.setTimeout(()=>u.current=!0,s))},[s]),isPointerInTransitRef:p,onPointerInTransitChange:y.useCallback(h=>{p.current=h},[]),disableHoverableContent:l,children:d})};SA.displayName=AA;var IA="Tooltip",[x$,Kl]=Zu(IA),Jf="TooltipTrigger",QO=y.forwardRef((t,a)=>{const{__scopeTooltip:r,...s}=t,l=Kl(Jf,r),d=kA(Jf,r),u=cx(r),p=y.useRef(null),g=Bt(a,p,l.onTriggerChange),h=y.useRef(!1),x=y.useRef(!1),b=y.useCallback(()=>h.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",b),[b]),e.jsx(XO,{asChild:!0,...u,children:e.jsx(qe.button,{"aria-describedby":l.open?l.contentId:void 0,"data-state":l.stateAttribute,...s,ref:g,onPointerMove:He(t.onPointerMove,w=>{w.pointerType!=="touch"&&!x.current&&!d.isPointerInTransitRef.current&&(l.onTriggerEnter(),x.current=!0)}),onPointerLeave:He(t.onPointerLeave,()=>{l.onTriggerLeave(),x.current=!1}),onPointerDown:He(t.onPointerDown,()=>{l.open&&l.onClose(),h.current=!0,document.addEventListener("pointerup",b,{once:!0})}),onFocus:He(t.onFocus,()=>{h.current||l.onOpen()}),onBlur:He(t.onBlur,l.onClose),onClick:He(t.onClick,l.onClose)})})});QO.displayName=Jf;var dx="TooltipPortal",[ZO,JO]=Zu(dx,{forceMount:void 0}),CA=t=>{const{__scopeTooltip:a,forceMount:r,children:s,container:l}=t,d=Kl(dx,a);return e.jsx(ZO,{scope:a,forceMount:r,children:e.jsx(Vn,{present:r||d.open,children:e.jsx(_u,{asChild:!0,container:l,children:s})})})};CA.displayName=dx;var $s="TooltipContent",MA=y.forwardRef((t,a)=>{const r=JO($s,t.__scopeTooltip),{forceMount:s=r.forceMount,side:l="top",...d}=t,u=Kl($s,t.__scopeTooltip);return e.jsx(Vn,{present:s||u.open,children:u.disableHoverableContent?e.jsx(TA,{side:l,...d,ref:a}):e.jsx(eD,{side:l,...d,ref:a})})}),eD=y.forwardRef((t,a)=>{const r=Kl($s,t.__scopeTooltip),s=kA($s,t.__scopeTooltip),l=y.useRef(null),d=Bt(a,l),[u,p]=y.useState(null),{trigger:g,onClose:h}=r,x=l.current,{onPointerInTransitChange:b}=s,w=y.useCallback(()=>{p(null),b(!1)},[b]),N=y.useCallback((A,k)=>{const I=A.currentTarget,T={x:A.clientX,y:A.clientY},E=rD(T,I.getBoundingClientRect()),R=sD(T,E),C=oD(k.getBoundingClientRect()),P=cD([...R,...C]);p(P),b(!0)},[b]);return y.useEffect(()=>()=>w(),[w]),y.useEffect(()=>{if(g&&x){const A=I=>N(I,x),k=I=>N(I,g);return g.addEventListener("pointerleave",A),x.addEventListener("pointerleave",k),()=>{g.removeEventListener("pointerleave",A),x.removeEventListener("pointerleave",k)}}},[g,x,N,w]),y.useEffect(()=>{if(u){const A=k=>{const I=k.target,T={x:k.clientX,y:k.clientY},E=g?.contains(I)||x?.contains(I),R=!lD(T,u);E?w():R&&(w(),h())};return document.addEventListener("pointermove",A),()=>document.removeEventListener("pointermove",A)}},[g,x,u,h,w]),e.jsx(TA,{...t,ref:d})}),[tD,aD]=Zu(IA,{isInside:!1}),iD=j6("TooltipContent"),TA=y.forwardRef((t,a)=>{const{__scopeTooltip:r,children:s,"aria-label":l,onEscapeKeyDown:d,onPointerDownOutside:u,...p}=t,g=Kl($s,r),h=cx(r),{onClose:x}=g;return y.useEffect(()=>(document.addEventListener(i1,x),()=>document.removeEventListener(i1,x)),[x]),y.useEffect(()=>{if(g.trigger){const b=w=>{w.target instanceof Node&&w.target.contains(g.trigger)&&x()};return window.addEventListener("scroll",b,{capture:!0}),()=>window.removeEventListener("scroll",b,{capture:!0})}},[g.trigger,x]),e.jsx(Vu,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:d,onPointerDownOutside:u,onFocusOutside:b=>b.preventDefault(),onDismiss:x,children:e.jsxs($O,{"data-state":g.
vendor: 1,045 bytes, line 9
9stateAttribute,...h,...p,ref:a,style:{...p.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[e.jsx(iD,{children:s}),e.jsx(tD,{scope:r,isInside:!0,children:e.jsx(Z6,{id:g.contentId,role:"tooltip",children:l||s})})]})})});MA.displayName=$s;var EA="TooltipArrow",nD=y.forwardRef((t,a)=>{const{__scopeTooltip:r,...s}=t,l=cx(r);return aD(EA,r).isInside?null:e.jsx(WO,{...l,...s,ref:a})});nD.displayName=EA;function rD(t,a){const r=Math.abs(a.top-t.y),s=Math.abs(a.bottom-t.y),l=Math.abs(a.right-t.x),d=Math.abs(a.left-t.x);switch(Math.min(r,s,l,d)){case d:return"left";case l:return"right";case r:return"top";case s:return"bottom";default:throw new Error("unreachable")}}function sD(t,a,r=5){const s=[];
9switch(a){case"top":s.push({x:t.x-r,y:t.y+r},{x:t.x+r,y:t.y+r});break;case"bottom":s.push({x:t.x-r,y:t.y-r},{x:t.x+r,y:t.y-r});break;case"left":s.push({x:t.x+r,y:t.y-r},{x:t.x+r,y:t.y+r});break;case"right":s.push({x:t.x-r,y:t.y-r},{x:t.x-r,y:t.y+r});break}return s}function oD(t){const{top:a,right:r,bottom:s,left:l}=t;return[{x:l,y:a},{x:r,y:a},{x:r,y:s},{x:l,y:s}]}function lD(t,a){const{x:r,y:s}=t;let l=!1;for(let d=0,u=a.length-1;d<a.length;u=d++){const p=a[d],g=a[u],h=p.x,x=p.y,b=g.x,w=g.y;x>s!=w>s&&r<(b-h)*(s-x)/(w-x)+h&&(l=!l)}return l}function cD(t){const a=t.slice();return a.sort((r,s)=>r.x<s.x?-1:r.x>s.x?1:r.y<s.y?-1:r.y>s.y?1:0),dD(a)}function dD(t){if(t.length<=1)return t.slice();const a=[];for(let s=0;s<t.length;s++){const l=t[s];for(;a.length>=2;){const d=a[a.length-1],u=a[a.length-2];if((d.x-u.x)*(l.y-u.y)>=(d.y-u.y)*(l.x-u.x))a.pop();else break}a.push(l)}a.pop();const r=[];for(let s=t.length-1;s>=0;s--){const l=t[s];for(;r.length>=2;){const d=r[r.length-1],u=r[r.length-2];if((d.x-u.x)*(l.y-u.y)>=(d.y-u.y)*(l.x-u.x))r.pop();else break}r.push(l)}return r.pop(),a.length===1&&r.length===1&&a[0].x===r[0].x&&a[0].y===r[0].y?a:a.concat(r)}var uD=SA,mD=CA,RA=MA;const pD=uD,hD=y.forwardRef(({className:t,sideOffset:a=4,...r},s)=>e.jsx(mD,{children:e.jsx(RA,{ref:s,sideOffset:a,className:ie("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",t),...r})}));hD.displayName=RA.displayName;const PA=y.createContext({theme:"dark",toggleTheme:()=>{}});function fD({children:t}){const[a,r]=y.useState(()=>{if(typeof localStorage>"u")return"light";const l=localStorage.getItem("xpedioo-theme");return l==="light"||l==="dark"?l:"light"});y.useEffect(()=>{const l=document.documentElement;a==="dark"?l.classList.add("dark"):l.classList.remove("dark"),localStorage.setItem("xpedioo-theme",a)},[a]);const s=()=>r(l=>l==="dark"?"light":"dark");return e.jsx(PA.Provider,{value:{theme:a,toggleTheme:s},children:t})}function OA(){return y.useContext(PA)}const DA=y.createContext(null),cl="/".replace(/\/$/,"");function gD({children:t}){const[a,r]=y.useState(null),[s,l]=y.useState(!0),d=y.useCallback(async()=>{try{const x=await fetch(`${cl}/api/auth/me`,{credentials:"include"});r(x.ok?await x.json():null)}catch{r(null)}},[]);y.useEffect(()=>{d().finally(()=>l(!1))},[d]);const u=y.useCallback(async(x,b)=>{const w=await fetch(`${cl}/api/auth/login`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:x,password:b})});if(!w.ok){const A=await w.json();throw new Error(A.error??"Login failed")}const N=await w.json();return N.requires2fa?{requires2fa:!0}:(r(N),{requires2fa:!1})},[]),p=y.useCallback(async x=>{const b=await fetch(`${cl}/api/auth/2fa/verify`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:x})});if(!b.ok){const N=await b.json();throw new Error(N.error??"Invalid code")}const w=await b.json();r(w)},[]),g=y.useCallback(async(x,b,w)=>{const N=await fetch(`${cl}/api/auth/setup`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:x,email:b,password:w})});if(!N.ok){const k=await N.json();throw new Error(k.error??"Setup failed")}const A=await N.json();r(A)},[]),h=y.useCallback(async()=>{await fetch(`${cl}/api/auth/logout`,{method:"POST",credentials:"include"}),r(null)},[]);return e.jsx(DA.Provider,{value:{user:a,isLoading:s,login:u,verifyTotp:p,setup:g,refreshUser:d,logout:h},children:t})}function ux(){const t=y.useContext(DA);if(!t)throw new Error("useAuth must be used within AuthProvider");return t}const LA=y.createContext(null);function xD({children:t}){const[a,r]=y.useState(!1);return e.jsx(LA.Provider,{value:{isOpen:a,openDemoModal:()=>r(!0),closeDemoModal:()=>r(!1)},children:t})}function ot(){const t=y.useContext(LA);if(!t)throw new Error("useDemoModal must be used inside DemoModalProvider");return t}const mx=y.createContext({});function Pn(t){const a=y.useRef(null);return a.current===null&&(a.current=t()),a.current}const yD=typeof window<"u",Ju=yD?y.useLayoutEffect:y.useEffect,em=y.createContext(null);function px(t,a){t.indexOf(a)===-1&&t.push(a)}function xu(t,a){const r=t.indexOf(a);r>-1&&t.splice(r,1)}const Ja=(t,a,r)=>r>a?a:r<t?t:r;let hx=()=>{};const On={},VA=t=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t),_A=t=>typeof t=="object"&&t!==null,zA=t=>/^0[^.\s]+$/u.test(t);function qA(t){let a;return()=>(a===void 0&&(a=t()),a)}const sa=t=>t,Yl=(...t)=>t.reduce((a,r)=>s=>
vendor: 28,911 bytes, line 9
9r(a(s))),Ws=(t,a,r)=>{const s=a-t;return s?(r-t)/s:1};class fx{constructor(){this.subscriptions=[]}add(a){return px(this.subscriptions,a),()=>xu(this.subscriptions,a)}notify(a,r,s){const l=this.subscriptions.length;if(l)if(l===1)this.subscriptions[0](a,r,s);else for(let d=0;d<l;d++){const u=this.subscriptions[d];u&&u(a,r,s)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const wa=t=>t*1e3,Pa=t=>t/1e3,gx=(t,a)=>a?t*(1e3/a):0,FA=(t,a,r)=>(((1-3*r+3*a)*t+(3*r-6*a))*t+3*a)*t,bD=1e-7,vD=12;function wD(t,a,r,s,l){let d,u,p=0;do u=a+(r-a)/2,d=FA(u,s,l)-t,d>0?r=u:a=u;while(Math.abs(d)>bD&&++p<vD);return u}function Ql(t,a,r,s){if(t===a&&r===s)return sa;const l=d=>wD(d,0,1,t,r);return d=>d===0||d===1?d:FA(l(d),a,s)}const BA=t=>a=>a<=.5?t(2*a)/2:(2-t(2*(1-a)))/2,HA=t=>a=>1-t(1-a),GA=Ql(.33,1.53,.69,.99),xx=HA(GA),UA=BA(xx),XA=t=>t>=1?1:(t*=2)<1?.5*xx(t):.5*(2-Math.pow(2,-10*(t-1))),yx=t=>1-Math.sin(Math.acos(t)),$A=HA(yx),WA=BA(yx),jD=Ql(.42,0,1,1),ND=Ql(0,0,.58,1),KA=Ql(.42,0,.58,1),AD=t=>Array.isArray(t)&&typeof t[0]!="number",YA=t=>Array.isArray(t)&&typeof t[0]=="number",kD={linear:sa,easeIn:jD,easeInOut:KA,easeOut:ND,circIn:yx,circInOut:WA,circOut:$A,backIn:xx,backInOut:UA,backOut:GA,anticipate:XA},SD=t=>typeof t=="string",n1=t=>{if(YA(t)){hx(t.length===4);const[a,r,s,l]=t;return Ql(a,r,s,l)}else if(SD(t))return kD[t];return t},Ad=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function ID(t,a){let r=new Set,s=new Set,l=!1,d=!1;const u=new WeakSet;let p={delta:0,timestamp:0,isProcessing:!1};function g(x){u.has(x)&&(h.schedule(x),t()),x(p)}const h={schedule:(x,b=!1,w=!1)=>{const A=w&&l?r:s;return b&&u.add(x),A.add(x),x},cancel:x=>{s.delete(x),u.delete(x)},process:x=>{if(p=x,l){d=!0;return}l=!0;const b=r;r=s,s=b,r.forEach(g),r.clear(),l=!1,d&&(d=!1,h.process(x))}};return h}const CD=40;function QA(t,a){let r=!1,s=!0;const l={delta:0,timestamp:0,isProcessing:!1},d=()=>r=!0,u=Ad.reduce((R,C)=>(R[C]=ID(d),R),{}),{setup:p,read:g,resolveKeyframes:h,preUpdate:x,update:b,preRender:w,render:N,postRender:A}=u,k=()=>{const R=On.useManualTiming,C=R?l.timestamp:performance.now();r=!1,R||(l.delta=s?1e3/60:Math.max(Math.min(C-l.timestamp,CD),1)),l.timestamp=C,l.isProcessing=!0,p.process(l),g.process(l),h.process(l),x.process(l),b.process(l),w.process(l),N.process(l),A.process(l),l.isProcessing=!1,r&&a&&(s=!1,t(k))},I=()=>{r=!0,s=!0,l.isProcessing||t(k)};return{schedule:Ad.reduce((R,C)=>{const P=u[C];return R[C]=(z,V=!1,D=!1)=>(r||I(),P.schedule(z,V,D)),R},{}),cancel:R=>{for(let C=0;C<Ad.length;C++)u[Ad[C]].cancel(R)},state:l,steps:u}}const{schedule:Ge,cancel:Oa,state:Rt,steps:$h}=QA(typeof requestAnimationFrame<"u"?requestAnimationFrame:sa,!0);let Kd;function MD(){Kd=void 0}const Kt={now:()=>(Kd===void 0&&Kt.set(Rt.isProcessing||On.useManualTiming?Rt.timestamp:performance.now()),Kd),set:t=>{Kd=t,queueMicrotask(MD)}},ZA=t=>a=>typeof a=="string"&&a.startsWith(t),JA=ZA("--"),TD=ZA("var(--"),bx=t=>TD(t)?ED.test(t.split("/*")[0].trim()):!1,ED=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function r1(t){return typeof t!="string"?!1:t.split("/*")[0].includes("var(--")}const io={test:t=>typeof t=="number",parse:parseFloat,transform:t=>t},_l={...io,transform:t=>Ja(0,1,t)},kd={...io,default:1},Sl=t=>Math.round(t*1e5)/1e5,vx=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function RD(t){return t==null}const PD=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,wx=(t,a)=>r=>!!(typeof r=="string"&&PD.test(r)&&r.startsWith(t)||a&&!RD(r)&&Object.prototype.hasOwnProperty.call(r,a)),ek=(t,a,r)=>s=>{if(typeof s!="string")return s;const[l,d,u,p]=s.match(vx);return{[t]:parseFloat(l),[a]:parseFloat(d),[r]:parseFloat(u),alpha:p!==void 0?parseFloat(p):1}},OD=t=>Ja(0,255,t),Wh={...io,transform:t=>Math.round(OD(t))},gr={test:wx("rgb","red"),parse:ek("red","green","blue"),transform:({red:t,green:a,blue:r,alpha:s=1})=>"rgba("+Wh.transform(t)+", "+Wh.transform(a)+", "+Wh.transform(r)+", "+Sl(_l.transform(s))+")"};function DD(t){let a="",r="",s="",l="";return t.length>5?(a=t.substring(1,3),r=t.substring(3,5),s=t.substring(5,7),l=t.substring(7,9)):(a=t.substring(1,2),r=t.substring(2,3),s=t.substring(3,4),l=t.substring(4,5),a+=a,r+=r,s+=s,l+=l),{red:parseInt(a,16),green:parseInt(r,16),blue:parseInt(s,16),alpha:l?parseInt(l,16)/255:1}}const eg={test:wx("#"),parse:DD,transform:gr.transform},Zl=t=>({test:a=>typeof a=="string"&&a.endsWith(t)&&a.split(" ").length===1,parse:parseFloat,transform:a=>`${a}${t}`}),Hi=Zl("deg"),xi=Zl("%"),fe=Zl("px"),LD=Zl("vh"),VD=Zl("vw"),s1={...xi,parse:t=>xi.parse(t)/100,transform:t=>xi.transform(t*100)},Ds={test:wx("hsl","hue"),parse:ek("hue","saturation","lightness"),transform:({hue:t,saturation:a,lightness:r,alpha:s=1})=>"hsla("+Math.round(t)+", "+xi.transform(Sl(a))+", "+xi.transform(Sl(r))+", "+Sl(_l.transform(s))+")"},bt={test:t=>gr.test(t)||eg.test(t)||Ds.test(t),parse:t=>gr.test(t)?gr.parse(t):Ds.test(t)?Ds.parse(t):eg.parse(t),transform:t=>typeof t=="string"?t:t.hasOwnProperty("red")?gr.transform(t):Ds.transform(t),getAnimatableNone:t=>{const a=bt.parse(t);return a.alpha=0,bt.transform(a)}},_D=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function zD(t){return isNaN(t)&&typeof t=="string"&&(t.match(vx)?.length||0)+(t.match(_D)?.length||0)>0}const tk="number",ak="color",qD="var",FD="var(",o1="${}",BD=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Ks(t){const a=t.toString(),r=[],s={color:[],number:[],var:[]},l=[];let d=0;const p=a.replace(BD,g=>(bt.test(g)?(s.color.push(d),l.push(ak),r.push(bt.parse(g))):g.startsWith(FD)?(s.var.push(d),l.push(qD),r.push(g)):(s.number.push(d),l.push(tk),r.push(parseFloat(g))),++d,o1)).split(o1);return{values:r,split:p,indexes:s,types:l}}function HD(t){return Ks(t).values}function ik({split:t,types:a}){const r=t.length;return s=>{let l="";for(let d=0;d<r;d++)if(l+=t[d],s[d]!==void 0){const u=a[d];u===tk?l+=Sl(s[d]):u===ak?l+=bt.transform(s[d]):l+=s[d]}return l}}function GD(t){return ik(Ks(t))}const UD=t=>typeof t=="number"?0:bt.test(t)?bt.getAnimatableNone(t):t,XD=(t,a)=>typeof t=="number"?a?.trim().endsWith("/")?t:0:UD(t);function $D(t){const a=Ks(t);return ik(a)(a.values.map((s,l)=>XD(s,a.split[l])))}const Wa={test:zD,parse:HD,createTransformer:GD,getAnimatableNone:$D};function Kh(t,a,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+(a-t)*6*r:r<1/2?a:r<2/3?t+(a-t)*(2/3-r)*6:t}function WD({hue:t,saturation:a,lightness:r,alpha:s}){t/=360,a/=100,r/=100;let l=0,d=0,u=0;if(!a)l=d=u=r;else{const p=r<.5?r*(1+a):r+a-r*a,g=2*r-p;l=Kh(g,p,t+1/3),d=Kh(g,p,t),u=Kh(g,p,t-1/3)}return{red:Math.round(l*255),green:Math.round(d*255),blue:Math.round(u*255),alpha:s}}function yu(t,a){return r=>r>0?a:t}const at=(t,a,r)=>t+(a-t)*r,Yh=(t,a,r)=>{const s=t*t,l=r*(a*a-s)+s;return l<0?0:Math.sqrt(l)},KD=[eg,gr,Ds],YD=t=>KD.find(a=>a.test(t));function l1(t){const a=YD(t);if(!a)return!1;let r=a.parse(t);return a===Ds&&(r=WD(r)),r}const c1=(t,a)=>{const r=l1(t),s=l1(a);if(!r||!s)return yu(t,a);const l={...r};return d=>(l.red=Yh(r.red,s.red,d),l.green=Yh(r.green,s.green,d),l.blue=Yh(r.blue,s.blue,d),l.alpha=at(r.alpha,s.alpha,d),gr.transform(l))},tg=new Set(["none","hidden"]);function QD(t,a){return tg.has(t)?r=>r<=0?t:a:r=>r>=1?a:t}function ZD(t,a){return r=>at(t,a,r)}function jx(t){return typeof t=="number"?ZD:typeof t=="string"?bx(t)?yu:bt.test(t)?c1:t7:Array.isArray(t)?nk:typeof t=="object"?bt.test(t)?c1:JD:yu}function nk(t,a){const r=[...t],s=r.length,l=t.map((d,u)=>jx(d)(d,a[u]));return d=>{for(let u=0;u<s;u++)r[u]=l[u](d);return r}}function JD(t,a){const r={...t,...a},s={};for(const l in r)t[l]!==void 0&&a[l]!==void 0&&(s[l]=jx(t[l])(t[l],a[l]));return l=>{for(const d in s)r[d]=s[d](l);return r}}function e7(t,a){const r=[],s={color:0,var:0,number:0};for(let l=0;l<a.values.length;l++){const d=a.types[l],u=t.indexes[d][s[d]],p=t.values[u]??0;r[l]=p,s[d]++}return r}const t7=(t,a)=>{const r=Wa.createTransformer(a),s=Ks(t),l=Ks(a);return s.indexes.var.length===l.indexes.var.length&&s.indexes.color.length===l.indexes.color.length&&s.indexes.number.length>=l.indexes.number.length?tg.has(t)&&!l.values.length||tg.has(a)&&!s.values.length?QD(t,a):Yl(nk(e7(s,l),l.values),r):yu(t,a)};function rk(t,a,r){return typeof t=="number"&&typeof a=="number"&&typeof r=="number"?at(t,a,r):jx(t)(t,a)}const a7=t=>{const a=({timestamp:r})=>t(r);return{start:(r=!0)=>Ge.update(a,r),stop:()=>Oa(a),now:()=>Rt.isProcessing?Rt.timestamp:Kt.now()}},sk=(t,a,r=10)=>{let s="";const l=Math.max(Math.round(a/r),2);for(let d=0;d<l;d++)s+=Math.round(t(d/(l-1))*1e4)/1e4+", ";return`linear(${s.substring(0,s.length-2)})`},bu=2e4;function Nx(t){let a=0;const r=50;let s=t.next(a);for(;!s.done&&a<bu;)a+=r,s=t.next(a);return a>=bu?1/0:a}function i7(t,a=100,r){const s=r({...t,keyframes:[0,a]}),l=Math.min(Nx(s),bu);return{type:"keyframes",ease:d=>s.next(l*d).value/a,duration:Pa(l)}}const mt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function ag(t,a){return t*Math.sqrt(1-a*a)}const n7=12;function r7(t,a,r){let s=r;for(let l=1;l<n7;l++)s=s-t(s)/a(s);return s}const Qh=.001;function s7({duration:t=mt.duration,bounce:a=mt.bounce,velocity:r=mt.velocity,mass:s=mt.mass}){let l,d,u=1-a;u=Ja(mt.minDamping,mt.maxDamping,u),t=Ja(mt.minDuration,mt.maxDuration,Pa(t)),u<1?(l=h=>{const x=h*u,b=x*t,w=x-r,N=ag(h,u),A=Math.exp(-b);return Qh-w/N*A},d=h=>{const b=h*u*t,w=b*r+r,N=Math.pow(u,2)*Math.pow(h,2)*t,A=Math.exp(-b),k=ag(Math.pow(h,2),u);return(-l(h)+Qh>0?-1:1)*((w-N)*A)/k}):(l=h=>{const x=Math.exp(-h*t),b=(h-r)*t+1;return-Qh+x*b},d=h=>{const x=Math.exp(-h*t),b=(r-h)*(t*t);return x*b});const p=5/t,g=r7(l,d,p);if(t=wa(t),isNaN(g))return{stiffness:mt.stiffness,damping:mt.damping,duration:t};{const h=Math.pow(g,2)*s;return{stiffness:h,damping:u*2*Math.sqrt(s*h),duration:t}}}const o7=["duration","bounce"],l7=["stiffness","damping","mass"];function d1(t,a){return a.some(r=>t[r]!==void 0)}function c7(t){let a={velocity:mt.velocity,stiffness:mt.stiffness,damping:mt.damping,mass:mt.mass,isResolvedFromDuration:!1,...t};if(!d1(t,l7)&&d1(t,o7))if(a.velocity=0,t.visualDuration){const r=t.visualDuration,s=2*Math.PI/(r*1.2),l=s*s,d=2*Ja(.05,1,1-(t.bounce||0))*Math.sqrt(l);a={...a,mass:mt.mass,stiffness:l,damping:d}}else{const r=s7({...t,velocity:0});a={...a,...r,mass:mt.mass},a.isResolvedFromDuration=!0}return a}function vu(t=mt.visualDuration,a=mt.bounce){const r=typeof t!="object"?{visualDuration:t,keyframes:[0,1],bounce:a}:t;let{restSpeed:s,restDelta:l}=r;const d=r.keyframes[0],u=r.keyframes[r.keyframes.length-1],p={done:!1,value:d},{stiffness:g,damping:h,mass:x,duration:b,velocity:w,isResolvedFromDuration:N}=c7({...r,velocity:-Pa(r.velocity||0)}),A=w||0,k=h/(2*Math.sqrt(g*x)),I=u-d,T=Pa(Math.sqrt(g/x)),E=Math.abs(I)<5;s||(s=E?mt.restSpeed.granular:mt.restSpeed.default),l||(l=E?mt.restDelta.granular:mt.restDelta.default);let R,C,P,z,V,D;if(k<1)P=ag(T,k),z=(A+k*T*I)/P,R=ne=>{const le=Math.exp(-k*T*ne);return u-le*(z*Math.sin(P*ne)+I*Math.cos(P*ne))},V=k*T*z+I*P,D=k*T*I-z*P,C=ne=>Math.exp(-k*T*ne)*(V*Math.sin(P*ne)+D*Math.cos(P*ne));else if(k===1){R=le=>u-Math.exp(-T*le)*(I+(A+T*I)*le);const ne=A+T*I;C=le=>Math.exp(-T*le)*(T*ne*le-A)}else{const ne=T*Math.sqrt(k*k-1);R=se=>{const ue=Math.exp(-k*T*se),_=Math.min(ne*se,300);return u-ue*((A+k*T*I)*Math.sinh(_)+ne*I*Math.cosh(_))/ne};const le=(A+k*T*I)/ne,ce=k*T*le-I*ne,ye=k*T*I-le*ne;C=se=>{const ue=Math.exp(-k*T*se),_=Math.min(ne*se,300);return ue*(ce*Math.sinh(_)+ye*Math.cosh(_))}}const K={calculatedDuration:N&&b||null,velocity:ne=>wa(C(ne)),next:ne=>{if(!N&&k<1){const ce=Math.exp(-k*T*ne),ye=Math.sin(P*ne),se=Math.cos(P*ne),ue=u-ce*(z*ye+I*se),_=wa(ce*(V*ye+D*se));return p.done=Math.abs(_)<=s&&Math.abs(u-ue)<=l,p.value=p.done?u:ue,p}const le=R(ne);if(N)p.done=ne>=b;else{const ce=wa(C(ne));p.done=Math.abs(ce)<=s&&Math.abs(u-le)<=l}return p.value=p.done?u:le,p},toString:()=>{const ne=Math.min(Nx(K),bu),le=sk(ce=>K.next(ne*ce).value,ne,30);return ne+"ms "+le},toTransition:()=>{}};return K}vu.applyToOptions=t=>{const a=i7(t,100,vu);return t.ease=a.ease,t.duration=wa(a.duration),t.type="keyframes",t};const d7=5;function ok(t,a,r){const s=Math.max(a-d7,0);return gx(r-t(s),a-s)}function ig({keyframes:t,velocity:a=0,power:r=.8,timeConstant:s=325,bounceDamping:l=10,bounceStiffness:d=500,modifyTarget:u,min:p,max:g,restDelta:h=.5,restSpeed:x}){const b=t[0],w={done:!1,value:b},N=D=>p!==void 0&&D<p||g!==void 0&&D>g,A=D=>p===void 0?g:g===void 0||Math.abs(p-D)<Math.abs(g-D)?p:g;let k=r*a;const I=b+k,T=u===void 0?I:u(I);T!==I&&(k=T-b);const E=D=>-k*Math.exp(-D/s),R=D=>T+E(D),C=D=>{const K=E(D),ne=R(D);w.done=Math.abs(K)<=h,w.value=w.done?T:ne};let P,z;const V=D=>{N(w.value)&&(P=D,z=vu({keyframes:[w.value,A(w.value)],velocity:ok(R,D,w.value),damping:l,stiffness:d,restDelta:h,restSpeed:x}))};return V(0),{calculatedDuration:null,next:D=>{let K=!1;return!z&&P===void 0&&(K=!0,C(D),V(D)),P!==void 0&&D>=P?z.next(D-P):(!K&&C(D),w)}}}function u7(t,a,r){const s=[],l=r||On.mix||rk,d=t.length-1;for(let u=0;u<d;u++){let p=l(t[u],t[u+1]);if(a){const g=Array.isArray(a)?a[u]||sa:a;p=Yl(g,p)}s.push(p)}return s}function Ax(t,a,{clamp:r=!0,ease:s,mixer:l}={}){const d=t.length;if(hx(d===a.length),d===1)return()=>a[0];if(d===2&&a[0]===a[1])return()=>a[1];const u=t[0]===t[1];t[0]>t[d-1]&&(t=[...t].reverse(),a=[...a].reverse());const p=u7(a,s,l),g=p.length,h=x=>{if(u&&x<t[0])return a[0];let b=0;if(g>1)for(;b<t.length-2&&!(x<t[b+1]);b++);const w=Ws(t[b],t[b+1],x);return p[b](w)};return r?x=>h(Ja(t[0],t[d-1],x)):h}function m7(t,a){const r=t[t.length-1];for(let s=1;s<=a;s++){const l=Ws(0,a,s);t.push(at(r,1,l))}}function lk(t){const a=[0];return m7(a,t.length-1),a}function p7(t,a){return t.map(r=>r*a)}function h7(t,a){return t.map(()=>a||KA).splice(0,t.length-1)}function Il({duration:t=300,keyframes:a,times:r,ease:s="easeInOut"}){const l=AD(s)?s.map(n1):n1(s),d={done:!1,value:a[0]},u=p7(r&&r.length===a.length?r:lk(a),t),p=Ax(u,a,{ease:Array.isArray(l)?l:h7(a,l)});return{calculatedDuration:t,next:g=>(d.value=p(g),d.done=g>=t,d)}}const f7=t=>t!==null;function tm(t,{repeat:a,repeatType:r="loop"},s,l=1){const d=t.filter(f7),p=l<0||a&&r!=="loop"&&a%2===1?0:d.length-1;return!p||s===void 0?d[p]:s}const g7={decay:ig,inertia:ig,tween:Il,keyframes:Il,spring:vu};function ck(t){typeof t.type=="string"&&(t.type=g7[t.type])}class kx{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(a=>{this.resolve=a})}notifyFinished(){this.resolve()}then(a,r){return this.finished.then(a,r)}}const x7=t=>t/100;class wu extends kx{constructor(a){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{const{motionValue:r}=this.options;r&&r.updatedAt!==Kt.now()&&this.tick(Kt.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=a,this.initAnimation(),this.play(),a.autoplay===!1&&this.pause()}initAnimation(){const{options:a}=this;ck(a);const{type:r=Il,repeat:s=0,repeatDelay:l=0,repeatType:d,velocity:u=0}=a;let{keyframes:p}=a;const g=r||Il;g!==Il&&typeof p[0]!="number"&&(this.mixKeyframes=Yl(x7,rk(p[0],p[1])),p=[0,100]);const h=g({...a,keyframes:p});d==="mirror"&&(this.mirroredGenerator=g({...a,keyframes:[...p].reverse(),velocity:-u})),h.calculatedDuration===null&&(h.calculatedDuration=Nx(h));const{calculatedDuration:x}=h;this.calculatedDuration=x,this.resolvedDuration=x+l,this.totalDuration=this.resolvedDuration*(s+1)-l,this.generator=h}updateTime(a){const r=Math.round(a-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=r}tick(a,r=!1){const{generator:s,totalDuration:l,mixKeyframes:d,mirroredGenerator:u,resolvedDuration:p,calculatedDuration:g}=this;if(this.startTime===null)return s.next(0);const{delay:h=0,keyframes:x,repeat:b,repeatType:w,repeatDelay:N,type:A,onUpdate:k,finalKeyframe:I}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,a):this.speed<0&&(this.startTime=Math.min(a-l/this.speed,this.startTime)),r?this.currentTime=a:this.updateTime(a);const T=this.currentTime-h*(this.playbackSpeed>=0?1:-1),E=this.playbackSpeed>=0?T<0:T>l;this.currentTime=Math.max(T,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=l);let R=this.currentTime,C=s;if(b){const D=Math.min(this.currentTime,l)/p;let K=Math.floor(D),ne=D%1;!ne&&D>=1&&(ne=1),ne===1&&K--,K=Math.min(K,b+1),K%2&&(w==="reverse"?(ne=1-ne,N&&(ne-=N/p)):w==="mirror"&&(C=u)),R=Ja(0,1,ne)*p}let P;E?(this.delayState.value=x[0],P=this.delayState):P=C.next(R),d&&!E&&(P.value=d(P.value));let{done:z}=P;!E&&g!==null&&(z=this.playbackSpeed>=0?this.currentTime>=l:this.currentTime<=0);const V=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&z);return V&&A!==ig&&(P.value=tm(x,this.options,I,this.speed)),k&&k(P.value),V&&this.finish(),P}then(a,r){return this.finished.then(a,r)}get duration(){return Pa(this.calculatedDuration)}get iterationDuration(){const{delay:a=0}=this.options||{};return this.duration+Pa(a)}get time(){return Pa(this.currentTime)}set time(a){a=wa(a),this.currentTime=a,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=a:this.driver&&(this.startTime=this.driver.now()-a/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=a,this.tick(a))}getGeneratorVelocity(){const a=this.currentTime;if(a<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(a);const r=this.generator.next(a).value;return ok(s=>this.generator.next(s).value,a,r)}get speed(){return this.playbackSpeed}set speed(a){const r=this.playbackSpeed!==a;r&&this.driver&&this.updateTime(Kt.now()),this.playbackSpeed=a,r&&this.driver&&(this.time=Pa(this.currentTime))}play(){if(this.isStopped)return;const{driver:a=a7,startTime:r}=this.options;this.driver||(this.driver=a(l=>this.tick(l))),this.options.onPlay?.();const s=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=s):this.holdTime!==null?this.startTime=s-this.holdTime:this.startTime||(this.startTime=r??s),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(Kt.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(a){return this.startTime=0,this.tick(a,!0)}attachTimeline(a){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),a.observe(this)}}function y7(t){for(let a=1;a<t.length;a++)t[a]??(t[a]=t[a-1])}const xr=t=>t*180/Math.PI,ng=t=>{const a=xr(Math.atan2(t[1],t[0]));return rg(a)},b7={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:t=>(Math.abs(t[0])+Math.abs(t[3]))/2,rotate:ng,rotateZ:ng,skewX:t=>xr(Math.atan(t[1])),skewY:t=>xr(Math.atan(t[2])),skew:t=>(Math.abs(t[1])+Math.abs(t[2]))/2},rg=t=>(t=t%360,t<0&&(t+=360),t),u1=ng,m1=t=>Math.sqrt(t[0]*t[0]+t[1]*t[1]),p1=t=>Math.sqrt(t[4]*t[4]+t[5]*t[5]),v7={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:m1,scaleY:p1,scale:t=>(m1(t)+p1(t))/2,rotateX:t=>rg(xr(Math.atan2(t[6],t[5]))),rotateY:t=>rg(xr(Math.atan2(-t[2],t[0]))),rotateZ:u1,rotate:u1,skewX:t=>xr(Math.atan(t[4])),skewY:t=>xr(Math.atan(t[1])),skew:t=>(Math.abs(t[1])+Math.abs(t[4]))/2};function sg(t){return t.includes("scale")?1:0}function og(t,a){if(!t||t==="none")return sg(a);const r=t.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let s,l;if(r)s=v7,l=r;else{const p=t.match(/^matrix\(([-\d.e\s,]+)\)$/u);s=b7,l=p}if(!l)return sg(a);const d=s[a],u=l[1].split(",").map(j7);return typeof d=="function"?d(u):u[d]}const w7=(t,a)=>{const{transform:r="none"}=getComputedStyle(t);return og(r,a)};function j7(t){return parseFloat(t.trim())}const no=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],ro=new Set([...no,"pathRotation"]),h1=t=>t===io||t===fe,N7=new Set(["x","y","z"]),A7=no.filter(t=>!N7.has(t));function k7(t){const a=[];return A7.forEach(r=>{const s=t.getValue(r);s!==void 0&&(a.push([r,s.get()]),s.set(r.startsWith("scale")?1:0))}),a}const Cn={width:({x:t},{paddingLeft:a="0",paddingRight:r="0",boxSizing:s})=>{const l=t.max-t.min;return s==="border-box"?l:l-parseFloat(a)-parseFloat(r)},height:({y:t},{paddingTop:a="0",paddingBottom:r="0",boxSizing:s})=>{const l=t.max-t.min;return s==="border-box"?l:l-parseFloat(a)-parseFloat(r)},top:(t,{top:a})=>parseFloat(a),left:(t,{left:a})=>parseFloat(a),bottom:({y:t},{top:a})=>parseFloat(a)+(t.max-t.min),right:({x:t},{left:a})=>parseFloat(a)+(t.max-t.min),x:(t,{transform:a})=>og(a,"x"),y:(t,{transform:a})=>og(a,"y")};Cn.translateX=Cn.x;Cn.translateY=Cn.y;const vr=new Set;let lg=!1,cg=!1,dg=!1;function dk(){if(cg){const t=Array.from(vr).filter(s=>s.needsMeasurement),a=new Set(t.map(s=>s.element)),r=new Map;a.forEach(s=>{const l=k7(s);l.length&&(r.set(s,l),s.render())}),t.forEach(s=>s.measureInitialState()),a.forEach(s=>{s.render();const l=r.get(s);l&&l.forEach(([d,u])=>{s.getValue(d)?.set(u)})}),t.forEach(s=>s.measureEndState()),t.forEach(s=>{s.suspendedScrollY!==void 0&&window.scrollTo(0,s.suspendedScrollY)})}cg=!1,lg=!1,vr.forEach(t=>t.complete(dg)),vr.clear()}function uk(){vr.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(cg=!0)})}function S7(){dg=!0,uk(),dk(),dg=!1}class Sx{constructor(a,r,s,l,d,u=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...a],this.onComplete=r,this.name=s,this.motionValue=l,this.element=d,this.isAsync=u}scheduleResolve(){this.state="scheduled",this.isAsync?(vr.add(this),lg||(lg=!0,Ge.read(uk),Ge.resolveKeyframes(dk))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:a,name:r,element:s,motionValue:l}=this;if(a[0]===null){const d=l?.get(),u=a[a.length-1];if(d!==void 0)a[0]=d;else if(s&&r){const p=s.readValue(r,u);p!=null&&(a[0]=p)}a[0]===void 0&&(a[0]=u),l&&d===void 0&&l.set(a[0])}y7(a)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(a=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,a),vr.delete(this)}cancel(){this.state==="scheduled"&&(vr.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const I7=t=>t.startsWith("--");function mk(t,a,r){I7(a)?t.style.setProperty(a,r):t.style[a]=r}const C7={};function Ix(t,a){const r=qA(t);return()=>C7[a]??r()}const Cx=Ix(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),pk=Ix(()=>window.ViewTimeline!==void 0,"viewTimeline"),hk=Ix(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),bl=([t,a,r,s])=>`cubic-bezier(${t}, ${a}, ${r}, ${s})`,f1={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:bl([0,.65,.55,1]),circOut:bl([.55,0,1,.45]),backIn:bl([.31,.01,.66,-.59]),backOut:bl([.33,1.53,.69,.99])};function fk(t,a){if(t)return typeof t=="function"?hk()?sk(t,a):"ease-out":YA(t)?bl(t):Array.isArray(t)?t.map(r=>fk(r,a)||f1.easeOut):f1[t]}function M7(t,a,r,{delay:s=0,duration:l=300,repeat:d=0,repeatType:u="loop",ease:p="easeOut",times:g}={},h=void 0){const x={[a]:r};g&&(x.offset=g);const b=fk(p,l);Array.isArray(b)&&(x.easing=b);const w={delay:s,duration:l,easing:Array.isArray(b)?"linear":b,fill:"both",iterations:d+1,direction:u==="reverse"?"alternate":"normal"};return h&&(w.pseudoElement=h),t.animate(x,w)}function gk(t){return typeof t=="function"&&"applyToOptions"in t}function T7({type:t,...a}){return gk(t)&&hk()?t.applyToOptions(a):(a.duration??(a.duration=300),a.ease??(a.ease="easeOut"),a)}class xk extends kx{constructor(a){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!a)return;const{element:r,name:s,keyframes:l,pseudoElement:d,allowFlatten:u=!1,finalKeyframe:p,onComplete:g}=a;this.isPseudoElement=!!d,this.allowFlatten=u,this.options=a,hx(typeof a.type!="string");const h=T7(a);this.animation=M7(r,s,l,h,d),h.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!d){const x=tm(l,this.options,p,this.speed);this.updateMotionValue&&this.updateMotionValue(x),mk(r,s,x),this.animation.cancel()}g?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:a}=this;a==="idle"||a==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){const a=this.options?.element;!this.isPseudoElement&&a?.isConnected&&this.animation.commitStyles?.()}get duration(){const a=this.animation.effect?.getComputedTiming?.().duration||0;return Pa(Number(a))}get iterationDuration(){const{delay:a=0}=this.options||{};return this.duration+Pa(a)}get time(){return Pa(Number(this.animation.currentTime)||0)}set time(a){const r=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=wa(a),r&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(a){a<0&&(this.finishedTime=null),this.animation.playbackRate=a}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(a){this.manualStartTime=this.animation.startTime=a}attachTimeline({timeline:a,rangeStart:r,rangeEnd:s,observe:l}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,a&&Cx()?(this.animation.timeline=a,r&&(this.animation.rangeStart=r),s&&(this.animation.rangeEnd=s),sa):l(this)}}const yk={anticipate:XA,backInOut:UA,circInOut:WA};function E7(t){return t in yk}function R7(t){typeof t.ease=="string"&&E7(t.ease)&&(t.ease=yk[t.ease])}const Zh=10;class P7 extends xk{constructor(a){R7(a),ck(a),super(a),a.startTime!==void 0&&a.autoplay!==!1&&(this.startTime=a.startTime),this.options=a}updateMotionValue(a){const{motionValue:r,onUpdate:s,onComplete:l,element:d,...u}=this.options;if(!r)return;if(a!==void 0){r.set(a);return}const p=new wu({...u,autoplay:!1}),g=Math.max(Zh,Kt.now()-this.startTime),h=Ja(0,Zh,g-Zh),x=p.sample(g).value,{name:b}=this.options;d&&b&&mk(d,b,x),r.setWithVelocity(p.sample(Math.max(0,g-h)).value,x,h),p.stop()}}const g1=(t,a)=>a==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(Wa.test(t)||t==="0")&&!t.startsWith("url("));function O7(t){const a=t[0];if(t.length===1)return!0;for(let r=0;r<t.length;r++)if(t[r]!==a)return!0}function D7(t,a,r,s){const l=t[0];if(l===null)return!1;if(a==="display"||a==="visibility")return!0;const d=t[t.length-1],u=g1(l,a),p=g1(d,a);return!u||!p?!1:O7(t)||(r==="spring"||gk(r))&&s}function ug(t){t.duration=0,t.type="keyframes"}const bk=new Set(["opacity","clipPath","filter","transform"]),L7=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function V7(t){for(let a=0;a<t.length;a++)if(typeof t[a]=="string"&&L7.test(t[a]))return!0;return!1}const _7=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),z7=qA(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function q7(t){const{motionValue:a,name:r,repeatDelay:s,repeatType:l,damping:d,type:u,keyframes:p}=t;if(!(a?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:h,transformTemplate:x}=a.owner.getProps();return z7()&&r&&(bk.has(r)||_7.has(r)&&V7(p))&&(r!=="transform"||!x)&&!h&&!s&&l!=="mirror"&&d!==0&&u!=="inertia"}const F7=40;class B7 extends kx{constructor({autoplay:a=!0,delay:r=0,type:s="
9keyframes",repeat:l=0,repeatDelay:d=0,repeatType:u="loop",keyframes:p,name:g,motionValue:h,element:x,...b}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=Kt.now();const w={autoplay:a,delay:r,type:s,repeat:l,repeatDelay:d,repeatType:u,name:g,motionValue:h,element:x,...b},N=x?.KeyframeResolver||Sx;this.keyframeResolver=new N(p,(A,k,I)=>this.onKeyframesResolved(A,k,w,!I),g,h,x),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(a,r,s,l){this.keyframeResolver=void 0;const{name:d,type:u,velocity:p,delay:g,isHandoff:h,onUpdate:x}=s;this.resolvedAt=Kt.now();let b=!0;D7(a,d,u,p)||(b=!1,(On.instantAnimations||!g)&&x?.(tm(a,s,r)),a[0]=a[a.length-1],ug(s),s.repeat=0);const N={startTime:l?this.resolvedAt?this.resolvedAt-this.createdAt>F7?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:r,...s,keyframes:a},A=b&&!h&&q7(N),k=N.motionValue?.owner?.current;let I;if(A)try{I=new P7({...N,element:k})}catch{I=new wu(N)}else I=new wu(N);I.finished.then(()=>{this.notifyFinished()}).catch(sa),this.pendingTimeline&&(this.stopTimeline=I.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=I}get finished(){return this._animation?this.animation.finished:this._finished}then(a,r){return this.finished.finally(a).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),S7()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(a){this.animation.time=a}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(a){this.animation.speed=a}get startTime(){return this.animation.startTime}attachTimeline(a){return this._animation?this.stopTimeline=this.animation.attachTimeline(a):this.pendingTimeline=a,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}function vk(t,a,r,s=0,l=1){const d=Array.from(t).sort((h,x)=>h.sortNodePosition(x)).indexOf(a),u=t.size,p=(u-1)*s;return typeof r=="function"?r(d,u):l===1?d*s:p-d*s}const x1=30,H7=t=>!isNaN(parseFloat(t)),Cl={current:void 0};class G7{constructor(a,r={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=s=>{const l=Kt.now();if(this.updatedAt!==l&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(s),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const d of this.dependents)d.dirty()},this.hasAnimated=!1,this.setCurrent(a),this.owner=r.owner}setCurrent(a){this.current=a,this.updatedAt=Kt.now(),this.canTrackVelocity===null&&a!==void 0&&(this.canTrackVelocity=H7(this.current))}setPrevFrameValue(a=this.current){this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt}onChange(a){return this.on("change",a)}on(a,r){this.events[a]||(this.events[a]=new fx);const s=this.events[a].add(r);return a==="change"?()=>{s(),Ge.read(()=>{this.events.change.getSize()||this.stop()})}:s}clearListeners(){for(const a in this.events)this.events[a].clear()}attach(a,r){this.passiveEffect=a,this.stopPassiveEffect=r}set(a){this.passiveEffect?this.passiveEffect(a,this.updateAndNotify):this.updateAndNotify(a)}setWithVelocity(a,r,s){this.set(r),this.prev=void 0,this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt-s}jump(a,r=!0){this.updateAndNotify(a),this.prev=a,this.prevUpdatedAt=this.prevFrameValue=void 0,r&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(a){this.dependents||(this.dependents=new Set),this.dependents.add(a)}removeDependent(a){this.dependents&&this.dependents.delete(a)}get(){return Cl.current&&Cl.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){const a=Kt.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||a-this.updatedAt>x1)return 0;const r=Math.min(this.updatedAt-this.prevUpdatedAt,x1);return gx(parseFloat(this.current)-parseFloat(this.prevFrameValue),r)}start(a){return this.stop(),new Promise(r=>{this.hasAnimated=!0,this.animation=a(r),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Ua(t,a){return new G7(t,a)}function wk(t,a){if(t?.inherit&&a){const{inherit:r,...s}=t;return{...a,...s}}return t}function Mx(t,a){const r=t?.[a]??t?.default??t;return r!==t?wk(r,t):r}const U7={type:"spring",stiffness:500,damping:25,restSpeed:10},X7=t=>({type:"spring",stiffness:550,damping:t===0?2*Math.sqrt(550):30,restSpeed:10}),$7={type:"keyframes",duration:.8},W7={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},K7=(t,{keyframes:a})=>a.length>2?$7:ro.has(t)?t.startsWith("scale")?X7(a[1]):U7:W7,Y7=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function Q7(t){for(const a in t)if(!Y7.has(a))return!0;return!1}const Tx=(t,a,r,s={},l,d)=>u=>{const p=Mx(s,t)||{},g=p.delay||s.delay||0;
9let{elapsed:h=0}=s;h=h-wa(g);const x={keyframes:Array.isArray(r)?r:[null,r],ease:"easeOut",velocity:a.getVelocity(),...p,delay:-h,onUpdate:w=>{a.set(w),p.onUpdate&&p.onUpdate(w)},onComplete:()=>{u(),p.onComplete&&p.onComplete()},name:t,motionValue:a,element:d?void 0:l};Q7(p)||Object.assign(x,K7(t,x)),x.duration&&(x.duration=wa(x.duration)),x.repeatDelay&&(x.repeatDelay=wa(x.repeatDelay)),x.from!==void 0&&(x.keyframes[0]=x.from);let b=!1;if((x.type===!1||x.duration===0&&!x.repeatDelay)&&(ug(x),x.delay===0&&(b=!0)),(On.instantAnimations||On.skipAnimations||l?.shouldSkipAnimations||p.skipAnimations)&&(b=!0,ug(x),x.delay=0),x.allowFlatten=!p.type&&!p.ease,b&&!d&&a.get()!==void 0){const w=tm(x.keyframes,p);if(w!==void 0){Ge.update(()=>{x.onUpdate(w),x.onComplete()});return}}return p.isSync?new wu(x):new B7(x)},Z7=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function J7(t){const a=Z7.exec(t);if(!a)return[,];const[,r,s,l]=a;return[`--${r??s}`,l]}function jk(t,a,r=1){const[s,l]=J7(t);if(!s)return;const d=window.getComputedStyle(a).getPropertyValue(s);if(d){const u=d.trim();return VA(u)?parseFloat(u):u}return bx(l)?jk(l,a,r+1):l}function y1(t){const a=[{},{}];return t?.values.forEach((r,s)=>{a[0][s]=r.get(),a[1][s]=r.getVelocity()}),a}function Ex(t,a,r,s){if(typeof a=="function"){const[l,d]=y1(s);a=a(r!==void 0?r:t.custom,l,d)}if(typeof a=="string"&&(a=t.variants&&t.variants[a]),typeof a=="function"){const[l,d]=y1(s);a=a(r!==void 0?r:t.custom,l,d)}return a}function wr(t,a,r){const s=t.getProps();return Ex(s,a,r!==void 0?r:s.custom,t)}const Nk=new Set(["width","height","top","left","right","bottom",...no]),mg=t=>Array.isArray(t);function e9(t,a,r){t.hasValue(a)?t.getValue(a).set(r):t.addValue(a,Ua(r))}function t9(t){return mg(t)?t[t.length-1]||0:t}function a9(t,a){const r=wr(t,a);let{transitionEnd:s={},transition:l={},...d}=r||{};d={...d,...s};for(const u in d){const p=t9(d[u]);e9(t,u,p)}}const _t=t=>!!(t&&t.getVelocity);function i9(t){return!!(_t(t)&&t.add)}function pg(t,a){const r=t.getValue("willChange");if(i9(r))return r.add(a);if(!r&&On.WillChange){const s=new On.WillChange("auto");t.addValue("willChange",s),s.add(a)}}function Rx(t){return t.replace(/([A-Z])/g,a=>`-${a.toLowerCase()}`)}const n9="framerAppearId",Ak="data-"+Rx(n9);function kk(t){return t.props[Ak]}function r9({protectedKeys:t,needsAnimating:a},r){const s=t.hasOwnProperty(r)&&a[r]!==!0;return a[r]=!1,s}function Sk(t,a,{delay:r=0,transitionOverride:s,type:l}={}){let{transition:d,transitionEnd:u,...p}=a;const g=t.getDefaultTransition();d=d?wk(d,g):g;const h=d?.reduceMotion,x=d?.skipAnimations;s&&(d=s);const b=[],w=l&&t.animationState&&t.animationState.getState()[l],N=d?.path;N&&N.animateVisualElement(t,p,d,r,b);for(const A in p){const k=t.getValue(A,t.latestValues[A]??null),I=p[A];if(I===void 0||w&&r9(w,A))continue;const T={delay:r,...Mx(d||{},A)};x&&(T.skipAnimations=!0);const E=k.get();if(E!==void 0&&!k.isAnimating()&&!Array.isArray(I)&&I===E&&!T.velocity){Ge.update(()=>k.set(I));continue}let R=!1;if(window.MotionHandoffAnimation){const z=kk(t);if(z){const V=window.MotionHandoffAnimation(z,A,Ge);V!==null&&(T.startTime=V,R=!0)}}pg(t,A);const C=h??t.shouldReduceMotion;k.start(Tx(A,k,I,C&&Nk.has(A)?{type:!1}:T,t,R));const P=k.animation;P&&b.push(P)}if(u){const A=()=>Ge.update(()=>{u&&a9(t,u)});b.length?Promise.all(b).then(A):A()}return b}function hg(t,a,r={}
vendor: 55,598 bytes, line 9
9){const s=wr(t,a,r.type==="exit"?t.presenceContext?.custom:void 0);let{transition:l=t.getDefaultTransition()||{}}=s||{};r.transitionOverride&&(l=r.transitionOverride);const d=s?()=>Promise.all(Sk(t,s,r)):()=>Promise.resolve(),u=t.variantChildren&&t.variantChildren.size?(g=0)=>{const{delayChildren:h=0,staggerChildren:x,staggerDirection:b}=l;return s9(t,a,g,h,x,b,r)}:()=>Promise.resolve(),{when:p}=l;if(p){const[g,h]=p==="beforeChildren"?[d,u]:[u,d];return g().then(()=>h())}else return Promise.all([d(),u(r.delay)])}function s9(t,a,r=0,s=0,l=0,d=1,u){const p=[];for(const g of t.variantChildren)g.notify("AnimationStart",a),p.push(hg(g,a,{...u,delay:r+(typeof s=="function"?0:s)+vk(t.variantChildren,g,s,l,d)}).then(()=>g.notify("AnimationComplete",a)));return Promise.all(p)}function o9(t,a,r={}){t.notify("AnimationStart",a);let s;if(Array.isArray(a)){const l=a.map(d=>hg(t,d,r));s=Promise.all(l)}else if(typeof a=="string")s=hg(t,a,r);else{const l=typeof a=="function"?wr(t,a,r.custom):a;s=Promise.all(Sk(t,l,r))}return s.then(()=>{t.notify("AnimationComplete",a)})}const l9={test:t=>t==="auto",parse:t=>t},Ik=t=>a=>a.test(t),Ck=[io,fe,xi,Hi,VD,LD,l9],b1=t=>Ck.find(Ik(t));function c9(t){return typeof t=="number"?t===0:t!==null?t==="none"||t==="0"||zA(t):!0}const d9=new Set(["brightness","contrast","saturate","opacity"]);function u9(t){const[a,r]=t.slice(0,-1).split("(");if(a==="drop-shadow")return t;const[s]=r.match(vx)||[];if(!s)return t;const l=r.replace(s,"");let d=d9.has(a)?1:0;return s!==r&&(d*=100),a+"("+d+l+")"}const m9=/\b([a-z-]*)\(.*?\)/gu,fg={...Wa,getAnimatableNone:t=>{const a=t.match(m9);return a?a.map(u9).join(" "):t}},gg={...Wa,getAnimatableNone:t=>{const a=Wa.parse(t);return Wa.createTransformer(t)(a.map(s=>typeof s=="number"?0:typeof s=="object"?{...s,alpha:1}:s))}},v1={...io,transform:Math.round},p9={rotate:Hi,pathRotation:Hi,rotateX:Hi,rotateY:Hi,rotateZ:Hi,scale:kd,scaleX:kd,scaleY:kd,scaleZ:kd,skew:Hi,skewX:Hi,skewY:Hi,distance:fe,translateX:fe,translateY:fe,translateZ:fe,x:fe,y:fe,z:fe,perspective:fe,transformPerspective:fe,opacity:_l,originX:s1,originY:s1,originZ:fe},ju={borderWidth:fe,borderTopWidth:fe,borderRightWidth:fe,borderBottomWidth:fe,borderLeftWidth:fe,borderRadius:fe,borderTopLeftRadius:fe,borderTopRightRadius:fe,borderBottomRightRadius:fe,borderBottomLeftRadius:fe,width:fe,maxWidth:fe,height:fe,maxHeight:fe,top:fe,right:fe,bottom:fe,left:fe,inset:fe,insetBlock:fe,insetBlockStart:fe,insetBlockEnd:fe,insetInline:fe,insetInlineStart:fe,insetInlineEnd:fe,padding:fe,paddingTop:fe,paddingRight:fe,paddingBottom:fe,paddingLeft:fe,paddingBlock:fe,paddingBlockStart:fe,paddingBlockEnd:fe,paddingInline:fe,paddingInlineStart:fe,paddingInlineEnd:fe,margin:fe,marginTop:fe,marginRight:fe,marginBottom:fe,marginLeft:fe,marginBlock:fe,marginBlockStart:fe,marginBlockEnd:fe,marginInline:fe,marginInlineStart:fe,marginInlineEnd:fe,fontSize:fe,backgroundPositionX:fe,backgroundPositionY:fe,...p9,zIndex:v1,fillOpacity:_l,strokeOpacity:_l,numOctaves:v1},h9={...ju,color:bt,backgroundColor:bt,outlineColor:bt,fill:bt,stroke:bt,borderColor:bt,borderTopColor:bt,borderRightColor:bt,borderBottomColor:bt,borderLeftColor:bt,filter:fg,WebkitFilter:fg,mask:gg,WebkitMask:gg},Mk=t=>h9[t],f9=new Set([fg,gg]);function Tk(t,a){let r=Mk(t);return f9.has(r)||(r=Wa),r.getAnimatableNone?r.getAnimatableNone(a):void 0}const g9=new Set(["auto","none","0"]);function x9(t,a,r){let s=0,l;for(;s<t.length&&!l;){const d=t[s];typeof d=="string"&&!g9.has(d)&&Ks(d).values.length&&(l=t[s]),s++}if(l&&r)for(const d of a)t[d]=Tk(r,l)}class y9 extends Sx{constructor(a,r,s,l,d){super(a,r,s,l,d,!0)}readKeyframes(){const{unresolvedKeyframes:a,element:r,name:s}=this;if(!r||!r.current)return;super.readKeyframes();for(let x=0;x<a.length;x++){let b=a[x];if(typeof b=="string"&&(b=b.trim(),bx(b))){const w=jk(b,r.current);w!==void 0&&(a[x]=w),x===a.length-1&&(this.finalKeyframe=b)}}if(this.resolveNoneKeyframes(),!Nk.has(s)||a.length!==2)return;const[l,d]=a,u=b1(l),p=b1(d),g=r1(l),h=r1(d);if(g!==h&&Cn[s]){this.needsMeasurement=!0;return}if(u!==p)if(h1(u)&&h1(p))for(let x=0;x<a.length;x++){const b=a[x];typeof b=="string"&&(a[x]=parseFloat(b))}else Cn[s]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){const{unresolvedKeyframes:a,name:r}=this,s=[];for(let l=0;l<a.length;l++)(a[l]===null||c9(a[l]))&&s.push(l);s.length&&x9(a,s,r)}measureInitialState(){const{element:a,unresolvedKeyframes:r,name:s}=this;if(!a||!a.current)return;s==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=Cn[s](a.measureViewportBox(),window.getComputedStyle(a.current)),r[0]=this.measuredOrigin;const l=r[r.length-1];l!==void 0&&a.getValue(s,l).jump(l,!1)}measureEndState(){const{element:a,name:r,unresolvedKeyframes:s}=this;if(!a||!a.current)return;const l=a.getValue(r);l&&l.jump(this.measuredOrigin,!1);const d=s.length-1,u=s[d];s[d]=Cn[r](a.measureViewportBox(),window.getComputedStyle(a.current)),u!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=u),this.removedTransforms?.length&&this.removedTransforms.forEach(([p,g])=>{a.getValue(p).set(g)}),this.resolveNoneKeyframes()}}function Px(t,a,r){if(t==null)return[];if(t instanceof EventTarget)return[t];if(typeof t=="string"){const l=document.querySelectorAll(t);return l?Array.from(l):[]}return Array.from(t).filter(s=>s!=null)}const xg=(t,a)=>a&&typeof t=="number"?a.transform(t):t;function Ml(t){return _A(t)&&"offsetHeight"in t&&!("ownerSVGElement"in t)}const{schedule:Ys,cancel:Ek}=QA(queueMicrotask,!1),Fa={x:!1,y:!1};function Rk(){return Fa.x||Fa.y}function b9(t){return t==="x"||t==="y"?Fa[t]?null:(Fa[t]=!0,()=>{Fa[t]=!1}):Fa.x||Fa.y?null:(Fa.x=Fa.y=!0,()=>{Fa.x=Fa.y=!1})}function Pk(t,a){const r=Px(t),s=new AbortController,l={passive:!0,...a,signal:s.signal};return[r,l,()=>s.abort()]}function v9(t){return!(t.pointerType==="touch"||Rk())}function w9(t,a,r={}){const[s,l,d]=Pk(t,r);return s.forEach(u=>{let p=!1,g=!1,h;const x=()=>{u.removeEventListener("pointerleave",A)},b=I=>{h&&(h(I),h=void 0),x()},w=I=>{p=!1,window.removeEventListener("pointerup",w),window.removeEventListener("pointercancel",w),g&&(g=!1,b(I))},N=()=>{p=!0,window.addEventListener("pointerup",w,l),window.addEventListener("pointercancel",w,l)},A=I=>{if(I.pointerType!=="touch"){if(p){g=!0;return}b(I)}},k=I=>{if(!v9(I))return;g=!1;const T=a(u,I);typeof T=="function"&&(h=T,u.addEventListener("pointerleave",A,l))};u.addEventListener("pointerenter",k,l),u.addEventListener("pointerdown",N,l)}),d}const Ok=(t,a)=>a?t===a?!0:Ok(t,a.parentElement):!1,Ox=t=>t.pointerType==="mouse"?typeof t.button!="number"||t.button<=0:t.isPrimary!==!1,j9=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function N9(t){return j9.has(t.tagName)||t.isContentEditable===!0}const A9=new Set(["INPUT","SELECT","TEXTAREA"]);function k9(t){return A9.has(t.tagName)||t.isContentEditable===!0}const Yd=new WeakSet;function w1(t){return a=>{a.key==="Enter"&&t(a)}}function Jh(t,a){t.dispatchEvent(new PointerEvent("pointer"+a,{isPrimary:!0,bubbles:!0}))}const S9=(t,a)=>{const r=t.currentTarget;if(!r)return;const s=w1(()=>{if(Yd.has(r))return;Jh(r,"down");const l=w1(()=>{Jh(r,"up")}),d=()=>Jh(r,"cancel");r.addEventListener("keyup",l,a),r.addEventListener("blur",d,a)});r.addEventListener("keydown",s,a),r.addEventListener("blur",()=>r.removeEventListener("keydown",s),a)};function j1(t){return Ox(t)&&!Rk()}const N1=new WeakSet;function I9(t,a,r={}){const[s,l,d]=Pk(t,r),u=p=>{const g=p.currentTarget;if(!j1(p)||N1.has(p))return;Yd.add(g),r.stopPropagation&&N1.add(p);const h=a(g,p),x=(N,A)=>{window.removeEventListener("pointerup",b),window.removeEventListener("pointercancel",w),Yd.has(g)&&Yd.delete(g),j1(N)&&typeof h=="function"&&h(N,{success:A})},b=N=>{x(N,g===window||g===document||r.useGlobalTarget||Ok(g,N.target))},w=N=>{x(N,!1)};window.addEventListener("pointerup",b,l),window.addEventListener("pointercancel",w,l)};return s.forEach(p=>{(r.useGlobalTarget?window:p).addEventListener("pointerdown",u,l),Ml(p)&&(p.addEventListener("focus",h=>S9(h,l)),!N9(p)&&!p.hasAttribute("tabindex")&&(p.tabIndex=0))}),d}function Dx(t){return _A(t)&&"ownerSVGElement"in t}const Qd=new WeakMap;let Zd;const Dk=(t,a,r)=>(s,l)=>l&&l[0]?l[0][t+"Size"]:Dx(s)&&"getBBox"in s?s.getBBox()[a]:s[r],C9=Dk("inline","width","offsetWidth"),M9=Dk("block","height","offsetHeight");function T9({target:t,borderBoxSize:a}){Qd.get(t)?.forEach(r=>{r(t,{get width(){return C9(t,a)},get height(){return M9(t,a)}})})}function E9(t){t.forEach(T9)}function R9(){typeof ResizeObserver>"u"||(Zd=new ResizeObserver(E9))}function P9(t,a){Zd||R9();const r=Px(t);return r.forEach(s=>{let l=Qd.get(s);l||(l=new Set,Qd.set(s,l)),l.add(a),Zd?.observe(s)}),()=>{r.forEach(s=>{const l=Qd.get(s);l?.delete(a),l?.size||Zd?.unobserve(s)})}}const Jd=new Set;let Ls;function O9(){Ls=()=>{const t={get width(){return window.innerWidth},get height(){return window.innerHeight}};Jd.forEach(a=>a(t))},window.addEventListener("resize",Ls)}function D9(t){return Jd.add(t),Ls||O9(),()=>{Jd.delete(t),!Jd.size&&typeof Ls=="function"&&(window.removeEventListener("resize",Ls),Ls=void 0)}}function yg(t,a){return typeof t=="function"?D9(t):P9(t,a)}function Lk(t,a){let r;const s=()=>{const{currentTime:l}=a,u=(l===null?0:l.value)/100;r!==u&&t(u),r=u};return Ge.preUpdate(s,!0),()=>Oa(s)}function L9(t){return Dx(t)&&t.tagName==="svg"}function V9(...t){const a=!Array.isArray(t[0]),r=a?0:-1,s=t[0+r],l=t[1+r],d=t[2+r],u=t[3+r],p=Ax(l,d,u);return a?p(s):p}const _9=[...Ck,bt,Wa],z9=t=>_9.find(Ik(t)),A1=()=>({translate:0,scale:1,origin:0,originPoint:0}),Vs=()=>({x:A1(),y:A1()}),k1=()=>({min:0,max:0}),At=()=>({x:k1(),y:k1()}),q9=new WeakMap;function am(t){return t!==null&&typeof t=="object"&&typeof t.start=="function"}function zl(t){return typeof t=="string"||Array.isArray(t)}const Lx=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Vx=["initial",...Lx];function im(t){return am(t.animate)||Vx.some(a=>zl(t[a]))}function Vk(t){return!!(im(t)||t.variants)}function F9(t,a,r){for(const s in a){const l=a[s],d=r[s];if(_t(l))t.addValue(s,l);else if(_t(d))t.addValue(s,Ua(l,{owner:t}));else if(d!==l)if(t.hasValue(s)){const u=t.getValue(s);u.liveStyle===!0?u.jump(l):u.hasAnimated||u.set(l)}else{const u=t.getStaticValue(s);t.addValue(s,Ua(u!==void 0?u:l,{owner:t}))}}for(const s in r)a[s]===void 0&&t.removeValue(s);return a}const bg={current:null},_k={current:!1},B9=typeof window<"u";function H9(){if(_k.current=!0,!!B9)if(window.matchMedia){const t=window.matchMedia("(prefers-reduced-motion)"),a=()=>bg.current=t.matches;t.addEventListener("change",a),a()}else bg.current=!1}const S1=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let Nu={};function zk(t){Nu=t}function G9(){return Nu}class U9{scrapeMotionValuesFromProps(a,r,s){return{}}constructor({parent:a,props:r,presenceContext:s,reducedMotionConfig:l,skipAnimations:d,blockInitialAnimation:u,visualState:p},g={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=Sx,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const N=Kt.now();this.renderScheduledAt<N&&(this.renderScheduledAt=N,Ge.render(this.render,!1,!0))};const{latestValues:h,renderState:x}=p;this.latestValues=h,this.baseTarget={...h},this.initialValues=r.initial?{...h}:{},this.renderState=x,this.parent=a,this.props=r,this.presenceContext=s,this.depth=a?a.depth+1:0,this.reducedMotionConfig=l,this.skipAnimationsConfig=d,this.options=g,this.blockInitialAnimation=!!u,this.isControllingVariants=im(r),this.isVariantNode=Vk(r),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(a&&a.current);const{willChange:b,...w}=this.scrapeMotionValuesFromProps(r,{},this);for(const N in w){const A=w[N];h[N]!==void 0&&_t(A)&&A.set(h[N])}}mount(a){if(this.hasBeenMounted)for(const r in this.initialValues)this.values.get(r)?.jump(this.initialValues[r]),this.latestValues[r]=this.initialValues[r];this.current=a,q9.set(a,this),this.projection&&!this.projection.instance&&this.projection.mount(a),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((r,s)=>this.bindToMotionValue(s,r)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(_k.current||H9(),this.shouldReduceMotion=bg.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),Oa(this.notifyUpdate),Oa(this.render),this.valueSubscriptions.forEach(a=>a()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const a in this.events)this.events[a].clear();for(const a in this.features){const r=this.features[a];r&&(r.unmount(),r.isMounted=!1)}this.current=null}addChild(a){this.children.add(a),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(a)}removeChild(a){this.children.delete(a),this.enteringChildren&&this.enteringChildren.delete(a)}bindToMotionValue(a,r){if(this.valueSubscriptions.has(a)&&this.valueSubscriptions.get(a)(),r.accelerate&&bk.has(a)&&this.current instanceof HTMLElement){const{factory:u,keyframes:p,times:g,ease:h,duration:x}=r.accelerate,b=new xk({element:this.current,name:a,keyframes:p,times:g,ease:h,duration:wa(x)}),w=u(b);this.valueSubscriptions.set(a,()=>{w(),b.cancel()});return}const s=ro.has(a);s&&this.onBindTransform&&this.onBindTransform();const l=r.on("change",u=>{this.latestValues[a]=u,this.props.onUpdate&&Ge.preRender(this.notifyUpdate),s&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let d;typeof window<"u"&&window.MotionCheckAppearSync&&(d=window.MotionCheckAppearSync(this,a,r)),this.valueSubscriptions.set(a,()=>{l(),d&&d()})}sortNodePosition(a){return!this.current||!this.sortInstanceNodePosition||this.type!==a.type?0:this.sortInstanceNodePosition(this.current,a.current)}updateFeatures(){let a="animation";for(a in Nu){const r=Nu[a];if(!r)continue;const{isEnabled:s,Feature:l}=r;if(!this.features[a]&&l&&s(this.props)&&(this.features[a]=new l(this)),this.features[a]){const d=this.features[a];d.isMounted?d.update():(d.mount(),d.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):At()}getStaticValue(a){return this.latestValues[a]}setStaticValue(a,r){this.latestValues[a]=r}update(a,r){(a.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=a,this.prevPresenceContext=this.presenceContext,this.presenceContext=r;for(let s=0;s<S1.length;s++){const l=S1[s];this.propEventSubscriptions[l]&&(this.propEventSubscriptions[l](),delete this.propEventSubscriptions[l]);const d="on"+l,u=a[d];u&&(this.propEventSubscriptions[l]=this.on(l,u))}this.prevMotionValues=F9(this,this.scrapeMotionValuesFromProps(a,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(a){return this.props.variants?this.props.variants[a]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(a){const r=this.getClosestVariantNode();if(r)return r.variantChildren&&r.variantChildren.add(a),()=>r.variantChildren.delete(a)}addValue(a,r){const s=this.values.get(a);r!==s&&(s&&this.removeValue(a),this.bindToMotionValue(a,r),this.values.set(a,r),this.latestValues[a]=r.get())}removeValue(a){this.values.delete(a);const r=this.valueSubscriptions.get(a);r&&(r(),this.valueSubscriptions.delete(a)),delete this.latestValues[a],this.removeValueFromRenderState(a,this.renderState)}hasValue(a){return this.values.has(a)}getValue(a,r){if(this.props.values&&this.props.values[a])return this.props.values[a];let s=this.values.get(a);return s===void 0&&r!==void 0&&(s=Ua(r===null?void 0:r,{owner:this}),this.addValue(a,s)),s}readValue(a,r){let s=this.latestValues[a]!==void 0||!this.current?this.latestValues[a]:this.getBaseTargetFromProps(this.props,a)??this.readValueFromInstance(this.current,a,this.options);return s!=null&&(typeof s=="string"&&(VA(s)||zA(s))?s=parseFloat(s):!z9(s)&&Wa.test(r)&&(s=Tk(a,r)),this.setBaseTarget(a,_t(s)?s.get():s)),_t(s)?s.get():s}setBaseTarget(a,r){this.baseTarget[a]=r}getBaseTarget(a){const{initial:r}=this.props;let s;if(typeof r=="string"||typeof r=="object"){const d=Ex(this.props,r,this.presenceContext?.custom);d&&(s=d[a])}if(r&&s!==void 0)return s;const l=this.getBaseTargetFromProps(this.props,a);return l!==void 0&&!_t(l)?l:this.initialValues[a]!==void 0&&s===void 0?void 0:this.baseTarget[a]}on(a,r){return this.events[a]||(this.events[a]=new fx),this.events[a].add(r)}notify(a,...r){this.events[a]&&this.events[a].notify(...r)}scheduleRenderMicrotask(){Ys.render(this.render)}}class qk extends U9{constructor(){super(...arguments),this.KeyframeResolver=y9}sortInstanceNodePosition(a,r){return a.compareDocumentPosition(r)&2?1:-1}getBaseTargetFromProps(a,r){const s=a.style;return s?s[r]:void 0}removeValueFromRenderState(a,{vars:r,style:s}){delete r[a],delete s[a]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:a}=this.props;_t(a)&&(this.childSubscription=a.on("change",r=>{this.current&&(this.current.textContent=`${r}`)}))}}class Fn{constructor(a){this.isMounted=!1,this.node=a}update(){}}function Fk({top:t,left:a,right:r,bottom:s}){return{x:{min:a,max:r},y:{min:t,max:s}}}function X9({x:t,y:a}){return{top:a.min,right:t.max,bottom:a.max,left:t.min}}function $9(t,a){if(!a)return t;const r=a({x:t.left,y:t.top}),s=a({x:t.right,y:t.bottom});return{top:r.y,left:r.x,bottom:s.y,right:s.x}}function ef(t){return t===void 0||t===1}function vg({scale:t,scaleX:a,scaleY:r}){return!ef(t)||!ef(a)||!ef(r)}function fr(t){return vg(t)||Bk(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function Bk(t){return I1(t.x)||I1(t.y)}function I1(t){return t&&t!=="0%"}function Au(t,a,r){const s=t-r,l=a*s;return r+l}function C1(t,a,r,s,l){return l!==void 0&&(t=Au(t,l,s)),Au(t,r,s)+a}function wg(t,a=0,r=1,s,l){t.min=C1(t.min,a,r,s,l),t.max=C1(t.max,a,r,s,l)}function Hk(t,{x:a,y:r}){wg(t.x,a.translate,a.scale,a.originPoint),wg(t.y,r.translate,r.scale,r.originPoint)}const M1=.999999999999,T1=1.0000000000001;function W9(t,a,r,s=!1){const l=r.length;if(!l)return;a.x=a.y=1;let d,u;for(let p=0;p<l;p++){d=r[p],u=d.projectionDelta;const{visualElement:g}=d.options;g&&g.props.style&&g.props.style.display==="contents"||(s&&d.options.layoutScroll&&d.scroll&&d!==d.root&&(mi(t.x,-d.scroll.offset.x),mi(t.y,-d.scroll.offset.y)),u&&(a.x*=u.x.scale,a.y*=u.y.scale,Hk(t,u)),s&&fr(d.latestValues)&&eu(t,d.latestValues,d.layout?.layoutBox))}a.x<T1&&a.x>M1&&(a.x=1),a.y<T1&&a.y>M1&&(a.y=1)}function mi(t,a){t.min+=a,t.max+=a}function E1(t,a,r,s,l=.5){const d=at(t.min,t.max,l);wg(t,a,r,d,s)}function R1(t,a){return typeof t=="string"?parseFloat(t)/100*(a.max-a.min):t}function eu(t,a,r){const s=r??t;E1(t.x,R1(a.x,s.x),a.scaleX,a.scale,a.originX),E1(t.y,R1(a.y,s.y),a.scaleY,a.scale,a.originY)}function Gk(t,a){return Fk($9(t.getBoundingClientRect(),a))}function K9(t,a,r){const s=Gk(t,r),{scroll:l}=a;return l&&(mi(s.x,l.offset.x),mi(s.y,l.offset.y)),s}const Y9={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},Q9=no.length;function Z9(t,a,r){let s="",l=!0;for(let u=0;u<Q9;u++){const p=no[u],g=t[p];if(g===void 0)continue;let h=!0;if(typeof g=="number")h=g===(p.startsWith("scale")?1:0);else{const x=parseFloat(g);h=p.startsWith("scale")?x===1:x===0}if(!h||r){const x=xg(g,ju[p]);if(!h){l=!1;const b=Y9[p]||p;s+=`${b}(${x}) `}r&&(a[p]=x)}}const d=t.pathRotation;return d&&(l=!1,s+=`rotate(${xg(d,ju.pathRotation)}) `),s=s.trim(),r?s=r(a,l?"":s):l&&(s="none"),s}function _x(t,a,r){const{style:s,vars:l,transformOrigin:d}=t;let u=!1,p=!1;for(const g in a){const h=a[g];if(ro.has(g)){u=!0;continue}else if(JA(g)){l[g]=h;continue}else{const x=xg(h,ju[g]);g.startsWith("origin")?(p=!0,d[g]=x):s[g]=x}}if(a.transform||(u||r?s.transform=Z9(a,t.transform,r):s.transform&&(s.transform="none")),p){const{originX:g="50%",originY:h="50%",originZ:x=0}=d;s.transformOrigin=`${g} ${h} ${x}`}}function Uk(t,{style:a,vars:r},s,l){const d=t.style;let u;for(u in a)d[u]=a[u];l?.applyProjectionStyles(d,s);for(u in r)d.setProperty(u,r[u])}function P1(t,a){return a.max===a.min?0:t/(a.max-a.min)*100}const dl={correct:(t,a)=>{if(!a.target)return t;if(typeof t=="string")if(fe.test(t))t=parseFloat(t);else return t;const r=P1(t,a.target.x),s=P1(t,a.target.y);return`${r}% ${s}%`}},J9={correct:(t,{treeScale:a,projectionDelta:r})=>{const s=t,l=Wa.parse(t);if(l.length>5)return s;const d=Wa.createTransformer(t),u=typeof l[0]!="number"?1:0,p=r.x.scale*a.x,g=r.y.scale*a.y;l[0+u]/=p,l[1+u]/=g;const h=at(p,g,.5);return typeof l[2+u]=="number"&&(l[2+u]/=h),typeof l[3+u]=="number"&&(l[3+u]/=h),d(l)}},jg={borderRadius:{...dl,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:dl,borderTopRightRadius:dl,borderBottomLeftRadius:dl,borderBottomRightRadius:dl,boxShadow:J9};function Xk(t,{layout:a,layoutId:r}){return ro.has(t)||t.startsWith("origin")||(a||r!==void 0)&&(!!jg[t]||t==="opacity")}function zx(t,a,r){const s=t.style,l=a?.style,d={};if(!s)return d;for(const u in s)(_t(s[u])||l&&_t(l[u])||Xk(u,t)||r?.getValue(u)?.liveStyle!==void 0)&&(d[u]=s[u]);return d}function eL(t){return window.getComputedStyle(t)}class tL extends qk{constructor(){super(...arguments),this.type="html",this.renderInstance=Uk}readValueFromInstance(a,r){if(ro.has(r))return this.projection?.isProjecting?sg(r):w7(a,r);{const s=eL(a),l=(JA(r)?s.getPropertyValue(r):s[r])||0;return typeof l=="string"?l.trim():l}}measureInstanceViewportBox(a,{transformPagePoint:r}){return Gk(a,r)}build(a,r,s){_x(a,r,s.transformTemplate)}scrapeMotionValuesFromProps(a,r,s){return zx(a,r,s)}}const aL={offset:"stroke-dashoffset",array:"stroke-dasharray"},iL={offset:"strokeDashoffset",array:"strokeDasharray"};function nL(t,a,r=1,s=0,l=!0){t.pathLength=1;const d=l?aL:iL;t[d.offset]=`${-s}`,t[d.array]=`${a} ${r}`}const rL=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function $k(t,{attrX:a,attrY:r,attrScale:s,pathLength:l,pathSpacing:d=1,pathOffset:u=0,...p},g,h,x){if(_x(t,p,h),g){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};const{attrs:b,style:w}=t;b.transform&&(w.transform=b.transform,delete b.transform),(w.transform||b.transformOrigin)&&(w.transformOrigin=b.transformOrigin??"50% 50%",delete b.transformOrigin),w.transform&&(w.transformBox=x?.transformBox??"fill-box",delete b.transformBox);for(const N of rL)b[N]!==void 0&&(w[N]=b[N],delete b[N]);a!==void 0&&(b.x=a),r!==void 0&&(b.y=r),s!==void 0&&(b.scale=s),l!==void 0&&nL(b,l,d,u,!1)}const Wk=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),Kk=t=>typeof t=="string"&&t.toLowerCase()==="svg";function sL(t,a,r,s){Uk(t,a,void 0,s);for(const l in a.attrs)t.setAttribute(Wk.has(l)?l:Rx(l),a.attrs[l])}function Yk(t,a,r){const s=zx(t,a,r);for(const l in t)if(_t(t[l])||_t(a[l])){const d=no.indexOf(l)!==-1?"attr"+l.charAt(0).toUpperCase()+l.substring(1):l;s[d]=t[l]}return s}class oL extends qk{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=At}getBaseTargetFromProps(a,r){return a[r]}readValueFromInstance(a,r){if(ro.has(r)){const s=Mk(r);return s&&s.default||0}return r=Wk.has(r)?r:Rx(r),a.getAttribute(r)}scrapeMotionValuesFromProps(a,r,s){return Yk(a,r,s)}build(a,r,s){$k(a,r,this.isSVGTag,s.transformTemplate,s.style)}renderInstance(a,r,s,l){sL(a,r,s,l)}mount(a){this.isSVGTag=Kk(a.tagName),super.mount(a)}}const lL=Vx.length;function Qk(t){if(!t)return;if(!t.isControllingVariants){const r=t.parent?Qk(t.parent)||{}:{};return t.props.initial!==void 0&&(r.initial=t.props.initial),r}const a={};for(let r=0;r<lL;r++){const s=Vx[r],l=t.props[s];(zl(l)||l===!1)&&(a[s]=l)}return a}function Zk(t,a){if(!Array.isArray(a))return!1;const r=a.length;if(r!==t.length)return!1;for(let s=0;s<r;s++)if(a[s]!==t[s])return!1;return!0}const cL=[...Lx].reverse(),dL=Lx.length;function uL(t){return a=>Promise.all(a.map(({animation:r,options:s})=>o9(t,r,s)))}function mL(t){let a=uL(t),r=O1(),s=!0,l=!1;const d=h=>(x,b)=>{const w=wr(t,b,h==="exit"?t.presenceContext?.custom:void 0);if(w){const{transition:N,transitionEnd:A,...k}=w;x={...x,...k,...A}}return x};function u(h){a=h(t)}function p(h){const{props:x}=t,b=Qk(t.parent)||{},w=[],N=new Set;let A={},k=1/0;for(let T=0;T<dL;T++){const E=cL[T],R=r[E],C=x[E]!==void 0?x[E]:b[E],P=zl(C),z=E===h?R.isActive:null;z===!1&&(k=T);let V=C===b[E]&&C!==x[E]&&P;if(V&&(s||l)&&t.manuallyAnimateOnMount&&(V=!1),R.protectedKeys={...A},!R.isActive&&z===null||!C&&!R.prevProp||am(C)||typeof C=="boolean")continue;if(E==="exit"&&R.isActive&&z!==!0){R.prevResolvedValues&&(A={...A,...R.prevResolvedValues});continue}const D=pL(R.prevProp,C);let K=D||E===h&&R.isActive&&!V&&P||T>k&&P,ne=!1;const le=Array.isArray(C)?C:[C];let ce=le.reduce(d(E),{});z===!1&&(ce={});const{prevResolvedValues:ye={}}=R,se={...ye,...ce},ue=X=>{K=!0,N.has(X)&&(ne=!0,N.delete(X)),R.needsAnimating[X]=!0;const oe=t.getValue(X);oe&&(oe.liveStyle=!1)};for(const X in se){const oe=ce[X],M=ye[X];if(A.hasOwnProperty(X))continue;let Q=!1;mg(oe)&&mg(M)?Q=!Zk(oe,M)||D:Q=oe!==M,Q?oe!=null?ue(X):N.add(X):oe!==void 0&&N.has(X)?ue(X):R.protectedKeys[X]=!0}R.prevProp=C,R.prevResolvedValues=ce,R.isActive&&(A={...A,...ce}),(s||l)&&t.blockInitialAnimation&&(K=!1);const _=V&&D;K&&(!_||ne)&&w.push(...le.map(X=>{const oe={type:E};if(typeof X=="string"&&(s||l)&&!_&&t.manuallyAnimateOnMount&&t.parent){const{parent:M}=t,Q=wr(M,X);if(M.enteringChildren&&Q){const{delayChildren:F}=Q.transition||{};oe.delay=vk(M.enteringChildren,t,F)}}return{animation:X,options:oe}}))}if(N.size){const T={};if(typeof x.initial!="boolean"){const E=wr(t,Array.isArray(x.initial)?x.initial[0]:x.initial);E&&E.transition&&(T.transition=E.transition)}N.forEach(E=>{const R=t.getBaseTarget(E),C=t.getValue(E);C&&(C.liveStyle=!0),T[E]=R??null}),w.push({animation:T})}let I=!!w.length;return s&&(x.initial===!1||x.initial===x.animate)&&!t.manuallyAnimateOnMount&&(I=!1),s=!1,l=!1,I?a(w):Promise.resolve()}function g(h,x){if(r[h].isActive===x)return Promise.resolve();t.variantChildren?.forEach(w=>w.animationState?.setActive(h,x)),r[h].isActive=x;const b=p(h);for(const w in r)r[w].protectedKeys={};return b}return{animateChanges:p,setActive:g,setAnimateFunction:u,getState:()=>r,reset:()=>{r=O1(),l=!0}}}function pL(t,a){return typeof a=="string"?a!==t:Array.isArray(a)?!Zk(a,t):!1}function cr(t=!1){return{isActive:t,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function O1(){return{animate:cr(!0),whileInView:cr(),whileHover:cr(),whileTap:cr(),whileDrag:cr(),whileFocus:cr(),exit:cr()}}function Ng(t,a){t.min=a.min,t.max=a.max}function za(t,a){Ng(t.x,a.x),Ng(t.y,a.y)}function D1(t,a){t.translate=a.translate,t.scale=a.scale,t.originPoint=a.originPoint,t.origin=a.origin}const Jk=1e-4,hL=1-Jk,fL=1+Jk,e4=.01,gL=0-e4,xL=0+e4;function Yt(t){return t.max-t.min}function yL(t,a,r){return Math.abs(t-a)<=r}function L1(t,a,r,s=.5){t.origin=s,t.originPoint=at(a.min,a.max,t.origin),t.scale=Yt(r)/Yt(a),t.translate=at(r.min,r.max,t.origin)-t.originPoint,(t.scale>=hL&&t.scale<=fL||isNaN(t.scale))&&(t.scale=1),(t.translate>=gL&&t.translate<=xL||isNaN(t.translate))&&(t.translate=0)}function Tl(t,a,r,s){L1(t.x,a.x,r.x,s?s.originX:void 0),L1(t.y,a.y,r.y,s?s.originY:void 0)}function V1(t,a,r,s=0){const l=s?at(r.min,r.max,s):r.min;t.min=l+a.min,t.max=t.min+Yt(a)}function bL(t,a,r,s){V1(t.x,a.x,r.x,s?.x),V1(t.y,a.y,r.y,s?.y)}function _1(t,a,r,s=0){const l=s?at(r.min,r.max,s):r.min;t.min=a.min-l,t.max=t.min+Yt(a)}function ku(t,a,r,s){_1(t.x,a.x,r.x,s?.x),_1(t.y,a.y,r.y,s?.y)}function z1(t,a,r,s,l){return t-=a,t=Au(t,1/r,s),l!==void 0&&(t=Au(t,1/l,s)),t}function vL(t,a=0,r=1,s=.5,l,d=t,u=t){if(xi.test(a)&&(a=parseFloat(a),a=at(u.min,u.max,a/100)-u.min),typeof a!="number")return;let p=at(d.min,d.max,s);t===d&&(p-=a),t.min=z1(t.min,a,r,p,l),t.max=z1(t.max,a,r,p,l)}function q1(t,a,[r,s,l],d,u){vL(t,a[r],a[s],a[l],a.scale,d,u)}const wL=["x","scaleX","originX"],jL=["y","scaleY","originY"];function F1(t,a,r,s){q1(t.x,a,wL,r?r.x:void 0,s?s.x:void 0),q1(t.y,a,jL,r?r.y:void 0,s?s.y:void 0)}function B1(t){return t.translate===0&&t.scale===1}function t4(t){return B1(t.x)&&B1(t.y)}function H1(t,a){return t.min===a.min&&t.max===a.max}function NL(t,a){return H1(t.x,a.x)&&H1(t.y,a.y)}function G1(t,a){return Math.round(t.min)===Math.round(a.min)&&Math.round(t.max)===Math.round(a.max)}function a4(t,a){return G1(t.x,a.x)&&G1(t.y,a.y)}function U1(t){return Yt(t.x)/Yt(t.y)}function X1(t,a){return t.translate===a.translate&&t.scale===a.scale&&t.originPoint===a.originPoint}function ui(t){return[t("x"),t("y")]}function AL(t,a,r){let s="";const l=t.x.translate/a.x,d=t.y.translate/a.y,u=r?.z||0;if((l||d||u)&&(s=`translate3d(${l}px, ${d}px, ${u}px) `),(a.x!==1||a.y!==1)&&(s+=`scale(${1/a.x}, ${1/a.y}) `),r){const{transformPerspective:h,rotate:x,pathRotation:b,rotateX:w,rotateY:N,skewX:A,skewY:k}=r;h&&(s=`perspective(${h}px) ${s}`),x&&(s+=`rotate(${x}deg) `),b&&(s+=`rotate(${b}deg) `),w&&(s+=`rotateX(${w}deg) `),N&&(s+=`rotateY(${N}deg) `),A&&(s+=`skewX(${A}deg) `),k&&(s+=`skewY(${k}deg) `)}const p=t.x.scale*a.x,g=t.y.scale*a.y;return(p!==1||g!==1)&&(s+=`scale(${p}, ${g})`),s||"none"}const i4=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],kL=i4.length,$1=t=>typeof t=="string"?parseFloat(t):t,W1=t=>typeof t=="number"||fe.test(t);function SL(t,a,r,s,l,d){l?(t.opacity=at(0,r.opacity??1,IL(s)),t.opacityExit=at(a.opacity??1,0,CL(s))):d&&(t.opacity=at(a.opacity??1,r.opacity??1,s));for(let u=0;u<kL;u++){const p=i4[u];let g=K1(a,p),h=K1(r,p);if(g===void 0&&h===void 0)continue;g||(g=0),h||(h=0),g===0||h===0||W1(g)===W1(h)?(t[p]=Math.max(at($1(g),$1(h),s),0),(xi.test(h)||xi.test(g))&&(t[p]+="%")):t[p]=h}(a.rotate||r.rotate)&&(t.rotate=at(a.rotate||0,r.rotate||0,s))}function K1(t,a){return t[a]!==void 0?t[a]:t.borderRadius}const IL=n4(0,.5,$A),CL=n4(.5,.95,sa);function n4(t,a,r){return s=>s<t?0:s>a?1:r(Ws(t,a,s))}function ML(t,a,r){const s=_t(t)?t:Ua(t);return s.start(Tx("",s,a,r)),s.animation}function ql(t,a,r,s={passive:!0}){return t.addEventListener(a,r,s),()=>t.removeEventListener(a,r)}const TL=(t,a)=>t.depth-a.depth;class EL{constructor(){this.children=[],this.isDirty=!1}add(a){px(this.children,a),this.isDirty=!0}remove(a){xu(this.children,a),this.isDirty=!0}forEach(a){this.isDirty&&this.children.sort(TL),this.isDirty=!1,this.children.forEach(a)}}function RL(t,a){const r=Kt.now(),s=({timestamp:l})=>{const d=l-r;d>=a&&(Oa(s),t(d-a))};return Ge.setup(s,!0),()=>Oa(s)}function tu(t){return _t(t)?t.get():t}class PL{constructor(){this.members=[]}add(a){px(this.members,a);for(let r=this.members.length-1;r>=0;r--){const s=this.members[r];if(s===a||s===this.lead||s===this.prevLead)continue;const l=s.instance;(!l||l.isConnected===!1)&&!s.snapshot&&(xu(this.members,s),s.unmount())}a.scheduleRender()}remove(a){if(xu(this.members,a),a===this.prevLead&&(this.prevLead=void 0),a===this.lead){const r=this.members[this.members.length-1];r&&this.promote(r)}}relegate(a){for(let r=this.members.indexOf(a)-1;r>=0;r--){const s=this.members[r];if(s.isPresent!==!1&&s.instance?.isConnected!==!1)return this.promote(s),!0}return!1}promote(a,r){const s=this.lead;if(a!==s&&(this.prevLead=s,this.lead=a,a.show(),s)){s.updateSnapshot(),a.scheduleRender();const{layoutDependency:l}=s.options,{layoutDependency:d}=a.options;(l===void 0||l!==d)&&(a.resumeFrom=s,r&&(s.preserveOpacity=!0),s.snapshot&&(a.snapshot=s.snapshot,a.snapshot.latestValues=s.animationValues||s.latestValues),a.root?.isUpdating&&(a.isLayoutDirty=!0)),a.options.crossfade===!1&&s.hide()}}exitAnimationComplete(){this.members.forEach(a=>{a.options.onExitComplete?.(),a.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(a=>a.instance&&a.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}const au={hasAnimatedSinceResize:!0,hasEverUpdated:!1},tf=["","X","Y","Z"],OL=1e3;let DL=0;function af(t,a,r,s){const{latestValues:l}=a;l[t]&&(r[t]=l[t],a.setStaticValue(t,0),s&&(s[t]=0))}function r4(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;const{visualElement:a}=t.options;if(!a)return;const r=kk(a);if(window.MotionHasOptimisedAnimation(r,"transform")){const{layout:l,layoutId:d}=t.options;window.MotionCancelOptimisedAnimation(r,"transform",Ge,!(l||d))}const{parent:s}=t;s&&!s.hasCheckedOptimisedAppear&&r4(s)}function s4({attachResizeListener:t,defaultParent:a,measureScroll:r,checkIsScrollRoot:s,resetTransform:l}){return class{constructor(u={},p=a?.()){this.id=DL++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(_L),this.nodes.forEach(GL),this.nodes.forEach(UL),this.nodes.forEach(zL)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=u,this.root=p?p.root||p:this,this.path=p?[...p.path,p]:[],this.parent=p,this.depth=p?p.depth+1:0;for(let g=0;g<this.path.length;g++)this.path[g].shouldResetTransform=!0;this.root===this&&(this.nodes=new EL)}addEventListener(u,p){return this.eventHandlers.has(u)||this.eventHandlers.set(u,new fx),this.eventHandlers.get(u).add(p)}notifyListeners(u,...p){const g=this.eventHandlers.get(u);g&&g.notify(...p)}hasListeners(u){return this.eventHandlers.has(u)}mount(u){if(this.instance)return;this.isSVG=Dx(u)&&!L9(u),this.instance=u;const{layoutId:p,layout:g,visualElement:h}=this.options;if(h&&!h.current&&h.mount(u),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(g||p)&&(this.isLayoutDirty=!0),t){let x,b=0;const w=()=>this.root.updateBlockedByResize=!1;Ge.read(()=>{b=window.innerWidth}),t(u,()=>{const N=window.innerWidth;N!==b&&(b=N,this.root.updateBlockedByResize=!0,x&&x(),x=RL(w,250),au.hasAnimatedSinceResize&&(au.hasAnimatedSinceResize=!1,this.nodes.forEach(Z1)))})}p&&this.root.registerSharedNode(p,this),this.options.animate!==!1&&h&&(p||g)&&this.addEventListener("didUpdate",({delta:x,hasLayoutChanged:b,hasRelativeLayoutChanged:w,layout:N})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const A=this.options.transition||h.getDefaultTransition()||YL,{onLayoutAnimationStart:k,onLayoutAnimationComplete:I}=h.getProps(),T=!this.targetLayout||!a4(this.targetLayout,N),E=!b&&w;if(this.options.layoutRoot||this.resumeFrom||E||b&&(T||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const R={...Mx(A,"layout"),onPlay:k,onComplete:I};(h.shouldReduceMotion||this.options.layoutRoot)&&(R.delay=0,R.type=!1),this.startAnimation(R),this.setAnimationOrigin(x,E,R.path)}else b||Z1(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=N})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const u=this.getStack();u&&u.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Oa(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(XL),this.animationId++)}getTransformTemplate(){const{visualElement:u}=this.options;return u&&u.getProps().transformTemplate}willUpdate(u=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&r4(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let x=0;x<this.path.length;x++){const b=this.path[x];b.shouldResetTransform=!0,(typeof b.latestValues.x=="string"||typeof b.latestValues.y=="string")&&(b.isLayoutDirty=!0),b.updateScroll("snapshot"),b.options.layoutRoot&&b.willUpdate(!1)}const{layoutId:p,layout:g}=this.options;if(p===void 0&&!g)return;const h=this.getTransformTemplate();this.prevTransformTemplateValue=h?h(this.latestValues,""):void 0,this.updateSnapshot(),u&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){const g=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),g&&this.nodes.forEach(FL),this.nodes.forEach(Y1);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(Q1);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(BL),this.nodes.forEach(HL),this.nodes.forEach(LL),this.nodes.forEach(VL)):this.nodes.forEach(Q1),this.clearAllSnapshots();const p=Kt.now();Rt.delta=Ja(0,1e3/60,p-Rt.timestamp),Rt.timestamp=p,Rt.isProcessing=!0,$h.update.process(Rt),$h.preRender.process(Rt),$h.render.process(Rt),Rt.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Ys.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(qL),this.sharedNodes.forEach($L)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Ge.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Ge.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!Yt(this.snapshot.measuredBox.x)&&!Yt(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let g=0;g<this.path.length;g++)this.path[g].updateScroll();const u=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=At()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:p}=this.options;p&&p.notify("LayoutMeasure",this.layout.layoutBox,u?u.layoutBox:void 0)}updateScroll(u="measure"){let p=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===u&&(p=!1),p&&this.instance){const g=s(this.instance);this.scroll={animationId:this.root.animationId,phase:u,isRoot:g,offset:r(this.instance),wasRoot:this.scroll?this.scroll.isRoot:g}}}resetTransform(){if(!l)return;const u=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,p=this.projectionDelta&&!t4(this.projectionDelta),g=this.getTransformTemplate(),h=g?g(this.latestValues,""):void 0,x=h!==this.prevTransformTemplateValue;u&&this.instance&&(p||fr(this.latestValues)||x)&&(l(this.instance,h),this.shouldResetTransform=!1,this.scheduleRender())}measure(u=!0){const p=this.measurePageBox();let g=this.removeElementScroll(p);return u&&(g=this.removeTransform(g)),QL(g),{animationId:this.root.animationId,measuredBox:p,layoutBox:g,latestValues:{},source:this.id}}measurePageBox(){const{visualElement:u}=this.options;if(!u)return At();const p=u.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(ZL))){const{scroll:h}=this.root;h&&(mi(p.x,h.offset.x),mi(p.y,h.offset.y))}return p}removeElementScroll(u){const p=At();if(za(p,u),this.scroll?.wasRoot)return p;for(let g=0;g<this.path.length;g++){const h=this.path[g],{scroll:x,options:b}=h;h!==this.root&&x&&b.layoutScroll&&(x.wasRoot&&za(p,u),mi(p.x,x.offset.x),mi(p.y,x.offset.y))}return p}applyTransform(u,p=!1,g){const h=g||At();za(h,u);for(let x=0;x<this.path.length;x++){const b=this.path[x];!p&&b.options.layoutScroll&&b.scroll&&b!==b.root&&(mi(h.x,-b.scroll.offset.x),mi(h.y,-b.scroll.offset.y)),fr(b.latestValues)&&eu(h,b.latestValues,b.layout?.layoutBox)}return fr(this.latestValues)&&eu(h,this.latestValues,this.layout?.layoutBox),h}removeTransform(u){const p=At();za(p,u);for(let g=0;g<this.path.length;g++){const h=this.path[g];if(!fr(h.latestValues))continue;let x;h.instance&&(vg(h.latestValues)&&h.updateSnapshot(),x=At(),za(x,h.measurePageBox())),F1(p,h.latestValues,h.snapshot?.layoutBox,x)}return fr(this.latestValues)&&F1(p,this.latestValues),p}setTargetDelta(u){this.targetDelta=u,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(u){this.options={...this.options,...u,crossfade:u.crossfade!==void 0?u.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==Rt.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(u=!1){const p=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=p.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=p.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=p.isSharedProjectionDirty);const g=!!this.resumingFrom||this!==p;if(!(u||g&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:x,layoutId:b}=this.options;if(!this.layout||!(x||b))return;this.resolvedRelativeTargetAt=Rt.timestamp;const w=this.getClosestProjectingParent();w&&this.linkedParentVersion!==w.layoutVersion&&!w.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&w&&w.layout?this.createRelativeTarget(w,this.layout.layoutBox,w.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=At(),this.targetWithTransforms=At()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),bL(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):za(this.target,this.layout.layoutBox),Hk(this.target,this.targetDelta)):za(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&w&&!!w.resumingFrom==!!this.resumingFrom&&!w.options.layoutScroll&&w.target&&this.animationProgress!==1?this.createRelativeTarget(w,this.target,w.target):this.relativeParent=this.relativeTarget=void 0))}getClosestProjectingParent(){if(!(!this.parent||vg(this.parent.latestValues)||Bk(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(u,p,g){this.relativeParent=u,this.linkedParentVersion=u.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=At(),this.relativeTargetOrigin=At(),ku(this.relativeTargetOrigin,p,g,this.options.layoutAnchor||void 0),za(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){const u=this.getLead(),p=!!this.resumingFrom||this!==u;let g=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(g=!1),p&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(g=!1),this.resolvedRelativeTargetAt===Rt.timestamp&&(g=!1),g)return;const{layout:h,layoutId:x}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(h||x))return;za(this.layoutCorrected,this.layout.layoutBox);const b=this.treeScale.x,w=this.treeScale.y;W9(this.layoutCorrected,this.treeScale,this.path,p),u.layout&&!u.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(u.target=u.layout.layoutBox,u.targetWithTransforms=At());const{target:N}=u;if(!N){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(D1(this.prevProjectionDelta.x,this.projectionDelta.x),D1(this.prevProjectionDelta.y,this.projectionDelta.y)),Tl(this.projectionDelta,this.layoutCorrected,N,this.latestValues),(this.treeScale.x!==b||this.treeScale.y!==w||!X1(this.projectionDelta.x,this.prevProjectionDelta.x)||!X1(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",N))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(u=!0){if(this.options.visualElement?.scheduleRender(),u){const p=this.getStack();p&&p.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Vs(),this.projectionDelta=Vs(),this.projectionDeltaWithTransform=Vs()}setAnimationOrigin(u,p=!1,g){const h=this.snapshot,x=h?h.latestValues:{},b={...this.latestValues},w=Vs();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!p;const N=At(),A=h?h.source:void 0,k=this.layout?this.layout.source:void 0,I=A!==k,T=this.getStack(),E=!T||T.members.length<=1,R=!!(I&&!E&&this.options.crossfade===!0&&!this.path.some(KL));this.animationProgress=0;let C;const P=g?.interpolateProjection(u);this.mixTargetDelta=z=>{const V=z/1e3,D=P?.(V);D?(w.x.translate=D.x,w.x.scale=at(u.x.scale,1,V),w.x.origin=u.x.origin,w.x.originPoint=u.x.originPoint,w.y.translate=D.y,w.y.scale=at(u.y.scale,1,V),w.y.origin=u.y.origin,w.y.originPoint=u.y.originPoint):(J1(w.x,u.x,V),J1(w.y,u.y,V)),this.setTargetDelta(w),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(ku(N,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),WL(this.relativeTarget,this.relativeTargetOrigin,N,V),C&&NL(this.relativeTarget,C)&&(this.isProjectionDirty=!1),C||(C=At()),za(C,this.relativeTarget)),I&&(this.animationValues=b,SL(b,x,this.latestValues,V,R,E)),D&&D.rotate!==void 0&&(this.animationValues||(this.animationValues=b),this.animationValues.pathRotation=D.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=V},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(u){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(Oa(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Ge.update(()=>{au.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Ua(0)),this.motionValue.jump(0,!1),this.currentAnimation=ML(this.motionValue,[0,1e3],{...u,velocity:0,isSync:!0,onUpdate:p=>{this.mixTargetDelta(p),u.onUpdate&&u.onUpdate(p)},onStop:()=>{},onComplete:()=>{u.onComplete&&u.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const u=this.getStack();u&&u.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(OL),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const u=this.getLead();let{targetWithTransforms:p,target:g,layout:h,latestValues:x}=u;if(!(!p||!g||!h)){if(this!==u&&this.layout&&h&&o4(this.options.animationType,this.layout.layoutBox,h.layoutBox)){g=this.target||At();const b=Yt(this.layout.layoutBox.x);g.x.min=u.target.x.min,g.x.max=g.x.min+b;const w=Yt(this.layout.layoutBox.y);g.y.min=u.target.y.min,g.y.max=g.y.min+w}za(p,g),eu(p,x),Tl(this.projectionDeltaWithTransform,this.layoutCorrected,p,x)}}registerSharedNode(u,p){this.sharedNodes.has(u)||this.sharedNodes.set(u,new PL),this.sharedNodes.get(u).add(p);const h=p.options.initialPromotionConfig;p.promote({transition:h?h.transition:void 0,preserveFollowOpacity:h&&h.shouldPreserveFollowOpacity?h.shouldPreserveFollowOpacity(p):void 0})}isLead(){const u=this.getStack();return u?u.lead===this:!0}getLead(){const{layoutId:u}=this.options;return u?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:u}=this.options;return u?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:u}=this.options;if(u)return this.root.sharedNodes.get(u)}promote({needsReset:u,transition:p,preserveFollowOpacity:g}={}){const h=this.getStack();h&&h.promote(this,g),u&&(this.projectionDelta=void 0,this.needsReset=!0),p&&this.setOptions({transition:p})}relegate(){const u=this.getStack();return u?u.relegate(this):!1}resetSkewAndRotation(){const{visualElement:u}=this.options;if(!u)return;let p=!1;const{latestValues:g}=u;if((g.z||g.rotate||g.rotateX||g.rotateY||g.rotateZ||g.skewX||g.skewY)&&(p=!0),!p)return;const h={};g.z&&af("z",u,h,this.animationValues);for(let x=0;x<tf.length;x++)af(`rotate${tf[x]}`,u,h,this.animationValues),af(`skew${tf[x]}`,u,h,this.animationValues);u.render();for(const x in h)u.setStaticValue(x,h[x]),this.animationValues&&(this.animationValues[x]=h[x]);u.scheduleRender()}applyProjectionStyles(u,p){if(!this.instance||this.isSVG)return;if(!this.isVisible){u.visibility="hidden";return}const g=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,u.visibility="",u.opacity="",u.pointerEvents=tu(p?.pointerEvents)||"",u.transform=g?g(this.latestValues,""):"none";return}const h=this.getLead();if(!this.projectionDelta||!this.layout||!h.target){this.options.layoutId&&(u.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,u.pointerEvents=tu(p?.pointerEvents)||""),this.hasProjected&&!fr(this.latestValues)&&(u.transform=g?g({},""):"none",this.hasProjected=!1);return}u.visibility="";const x=h.animationValues||h.latestValues;this.applyTransformsToTarget();let b=AL(this.projectionDeltaWithTransform,this.treeScale,x);g&&(b=g(x,b)),u.transform=b;const{x:w,y:N}=this.projectionDelta;u.transformOrigin=`${w.origin*100}% ${N.origin*100}% 0`,h.animationValues?u.opacity=h===this?x.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:x.opacityExit:u.opacity=h===this?x.opacity!==void 0?x.opacity:"":x.opacityExit!==void 0?x.opacityExit:0;for(const A in jg){if(x[A]===void 0)continue;const{correct:k,applyTo:I,isCSSVariable:T}=jg[A],E=b==="none"?x[A]:k(x[A],h);if(I){const R=I.length;for(let C=0;C<R;C++)u[I[C]]=E}else T?this.options.visualElement.renderState.vars[A]=E:u[A]=E}this.options.layoutId&&(u.pointerEvents=h===this?tu(p?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(u=>u.currentAnimation?.stop()),this.root.nodes.forEach(Y1),this.root.sharedNodes.clear()}}}function LL(t){t.updateLayout()}function VL(t){const a=t.resumeFrom?.snapshot||t.snapshot;if(t.isLead()&&t.layout&&a&&t.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:s}=t.layout,{animationType:l}=t.options,d=a.source!==t.layout.source;if(l==="size")ui(x=>{const b=d?a.measuredBox[x]:a.layoutBox[x],w=Yt(b);b.min=r[x].min,b.max=b.min+w});else if(l==="x"||l==="y"){const x=l==="x"?"y":"x";Ng(d?a.measuredBox[x]:a.layoutBox[x],r[x])}else o4(l,a.layoutBox,r)&&ui(x=>{const b=d?a.measuredBox[x]:a.layoutBox[x],w=Yt(r[x]);b.max=b.min+w,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[x].max=t.relativeTarget[x].min+w)});const u=Vs();Tl(u,r,a.layoutBox);const p=Vs();d?Tl(p,t.applyTransform(s,!0),a.measuredBox):Tl(p,r,a.layoutBox);const g=!t4(u);let h=!1;if(!t.resumeFrom){const x=t.getClosestProjectingParent();if(x&&!x.resumeFrom){const{snapshot:b,layout:w}=x;if(b&&w){const N=t.options.layoutAnchor||void 0,A=At();ku(A,a.layoutBox,b.layoutBox,N);const k=At();ku(k,r,w.layoutBox,N),a4(A,k)||(h=!0),x.options.layoutRoot&&(t.relativeTarget=k,t.relativeTargetOrigin=A,t.relativeParent=x)}}}t.notifyListeners("didUpdate",{layout:r,snapshot:a,delta:p,layoutDelta:u,hasLayoutChanged:g,hasRelativeLayoutChanged:h})}else if(t.isLead()){const{onExitComplete:r}=t.options;r&&r()}t.options.transition=void 0}function _L(t){t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function zL(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function qL(t){t.clearSnapshot()}function Y1(t){t.clearMeasurements()}function FL(t){t.isLayoutDirty=!0,t.updateLayout()}function Q1(t){t.isLayoutDirty=!1}function BL(t){t.isAnimationBlocked&&t.layout&&!t.isLayoutDirty&&(t.snapshot=t.layout,t.isLayoutDirty=!0)}function HL(t){const{visualElement:a}=t.options;a&&a.getProps().onBeforeLayoutMeasure&&a.notify("BeforeLayoutMeasure"),t.resetTransform()}function Z1(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function GL(t){t.resolveTargetDelta()}function UL(t){t.calcProjection()}
9function XL(t){t.resetSkewAndRotation()}function $L(t){t.removeLeadSnapshot()}function J1(t,a,r){t.translate=at(a.translate,0,r),t.scale=at(a.scale,1,r),t.origin=a.origin,t.originPoint=a.originPoint}function e2(t,a,r,s){t.min=at(a.min,r.min,s),t.max=at(a.max,r.max,s)}function WL(t,a,r,s){e2(t.x,a.x,r.x,s),e2(t.y,a.y,r.y,s)}function KL(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const YL={duration:.45,ease:[.4,0,.1,1]},t2=t=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),a2=t2("applewebkit/")&&!t2("chrome/")?Math.round:sa;function i2(t){t.min=a2(t.min),t.max=a2(t.max)}function QL(t){i2(t.x),i2(t.y)}function o4(t,a,r){return t==="position"||t==="preserve-aspect"&&!yL(U1(a),U1(r),.2)}function ZL(t){return t!==t.root&&t.scroll?.wasRoot}const JL=s4({attachResizeListener:(t,a)=>ql(t,"resize",a),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),nf={current:void 0},l4=s4({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!nf.current){const t=new JL({});t.mount(window),t.setOptions({layoutScroll:!0}),nf.current=t}return nf.current},resetTransform:(t,a)=>{t.style.transform=a!==void 0?a:"none"},checkIsScrollRoot:t=>window.getComputedStyle(t).position==="fixed"}),nm=y.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"});function n2(t,a){if(typeof t=="function")return t(a);t!=null&&(t.current=a)}function eV(...t){return a=>{let r=!1;const s=t.map(l=>{const d=n2(l,a);return!r&&typeof d=="function"&&(r=!0),d});if(r)return()=>{for(let l=0;l<s.length;l++){const d=s[l];typeof d=="function"?d():n2(t[l],null)}}}}function tV(...t){return y.useCallback(eV(...t),t)}class aV extends y.Component{getSnapshotBeforeUpdate(a){const r=this.props.childRef.current;if(Ml(r)&&a.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const s=r.offsetParent,l=Ml(s)&&s.offsetWidth||0,d=Ml(s)&&s.offsetHeight||0,u=getComputedStyle(r),p=this.props.sizeRef.current;p.height=parseFloat(u.height),p.width=parseFloat(u.width),p.top=r.offsetTop,p.left=r.offsetLeft,p.right=l-p.width-p.left,p.bottom=d-p.height-p.top,p.direction=u.direction}return null}componentDidUpdate(){}render(){return this.props.children}}function iV({children:t,isPresent:a,anchorX:r,anchorY:s,root:l,pop:d}){const u=y.useId(),p=y.useRef(null),g=y.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:h}=y.useContext(nm),x=t.props?.ref??t?.ref,b=tV(p,x);return y.useInsertionEffect(()=>{const{width:w,height:N,top:A,left:k,right:I,bottom:T,direction:E}=g.current;if(a||d===!1||!p.current||!w||!N)return;const R=E==="rtl",C=r==="left"?R?`right: ${I}`:`left: ${k}`:R?`left: ${k}`:`right: ${I}`,P=s==="bottom"?`bottom: ${T}`:`top: ${A}`;p.current.dataset.motionPopId=u;const z=document.createElement("style");h&&(z.nonce=h);const V=l??document.head;return V.appendChild(z),z.sheet&&z.sheet.insertRule(`
10          [data-motion-pop-id="${u}"] {
11            position: absolute !important;
12            width: ${w}px !important;
13            height: ${N}px !important;
14            ${C}px !important;
15            ${P}px !important;
16          }
17        `),()=>{p.current?.removeAttribute("data-motion-pop-id"),V.contains(z)&&V.removeChild(z)}},[a]),e.jsx(aV,{isPresent:a,childRef:p,sizeRef:g,pop:d,children:d===!1?t:y.cloneElement(t,{ref:b})})}const nV=({children:t,initial:a,isPresent:r,onExitComplete:s,custom:l,presenceAffectsLayout:d,mode:u,anchorX:p,anchorY:g,root:h})=>{const x=Pn(rV),b=y.useId();let w=!0,N=y.useMemo(()=>(w=!1,{id:b,initial:a,isPresent:r,custom:l,onExitComplete:A=>{x.set(A,!0);for(const k of x.values())if(!k)return;s&&s()},register:A=>(x.set(A,!1),()=>x.delete(A))}),[r,x,s]);return d&&w&&(N={...N}),y.useMemo(()=>{x.forEach((A,k)=>x.set(k,!1))},[r]),y.useEffect(()=>{!r&&!x.size&&s&&s()},[r]),t=e.jsx(iV,{pop:u==="popLayout",isPresent:r,anchorX:p,anchorY:g,root:h,children:t}),e.jsx(em.Provider,{value:N,children:t})};function rV(){return new Map}function c4(t=!0){const a=y.useContext(em);if(a===null)return[!0,null];const{isPresent:r,onExitComplete:s,register:l}=a,d=y.useId();y.useEffect(()=>{if(t)return l(d)},[t]);const u=y.useCallback(()=>t&&s&&s(d),[d,s,t]);return!r&&s?[!1,u]:[!0]}const Sd=t=>t.key||"";function r2(t){const a=[];
vendor: 7,606 bytes, line 17
17return y.Children.forEach(t,r=>{y.isValidElement(r)&&a.push(r)}),a}const Mn=({children:t,custom:a,initial:r=!0,onExitComplete:s,presenceAffectsLayout:l=!0,mode:d="sync",propagate:u=!1,anchorX:p="left",anchorY:g="top",root:h})=>{const[x,b]=c4(u),w=y.useMemo(()=>r2(t),[t]),N=u&&!x?[]:w.map(Sd),A=y.useRef(!0),k=y.useRef(w),I=Pn(()=>new Map),T=y.useRef(new Set),[E,R]=y.useState(w),[C,P]=y.useState(w);Ju(()=>{A.current=!1,k.current=w;for(let D=0;D<C.length;D++){const K=Sd(C[D]);N.includes(K)?(I.delete(K),T.current.delete(K)):I.get(K)!==!0&&I.set(K,!1)}},[C,N.length,N.join("-")]);const z=[];if(w!==E){let D=[...w];for(let K=0;K<C.length;K++){const ne=C[K],le=Sd(ne);N.includes(le)||(D.splice(K,0,ne),z.push(ne))}return d==="wait"&&z.length&&(D=z),P(r2(D)),R(w),null}const{forceRender:V}=y.useContext(mx);return e.jsx(e.Fragment,{children:C.map(D=>{const K=Sd(D),ne=u&&!x?!1:w===C||N.includes(K),le=()=>{if(T.current.has(K))return;if(I.has(K))T.current.add(K),I.set(K,!0);else return;let ce=!0;I.forEach(ye=>{ye||(ce=!1)}),ce&&(V?.(),P(k.current),u&&b?.(),s&&s())};return e.jsx(nV,{isPresent:ne,initial:!A.current||r?void 0:!1,custom:a,presenceAffectsLayout:l,mode:d,root:h,onExitComplete:ne?void 0:le,anchorX:p,anchorY:g,children:D},K)})})},d4=y.createContext({strict:!1}),s2={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let o2=!1;function sV(){if(o2)return;const t={};for(const a in s2)t[a]={isEnabled:r=>s2[a].some(s=>!!r[s])};zk(t),o2=!0}function u4(){return sV(),G9()}function oV(t){const a=u4();for(const r in t)a[r]={...a[r],...t[r]};zk(a)}const lV=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function Su(t){return t.startsWith("while")||t.startsWith("drag")&&t!=="draggable"||t.startsWith("layout")||t.startsWith("onTap")||t.startsWith("onPan")||t.startsWith("onLayout")||lV.has(t)}let m4=t=>!Su(t);function cV(t){typeof t=="function"&&(m4=a=>a.startsWith("on")?!Su(a):t(a))}try{cV(require("@emotion/is-prop-valid").default)}catch{}function dV(t,a,r){const s={};for(const l in t)l==="values"&&typeof t.values=="object"||_t(t[l])||(m4(l)||r===!0&&Su(l)||!a&&!Su(l)||t.draggable&&l.startsWith("onDrag"))&&(s[l]=t[l]);return s}const rm=y.createContext({});function uV(t,a){if(im(t)){const{initial:r,animate:s}=t;return{initial:r===!1||zl(r)?r:void 0,animate:zl(s)?s:void 0}}return t.inherit!==!1?a:{}}function mV(t){const{initial:a,animate:r}=uV(t,y.useContext(rm));return y.useMemo(()=>({initial:a,animate:r}),[l2(a),l2(r)])}function l2(t){return Array.isArray(t)?t.join(" "):t}const qx=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function p4(t,a,r){for(const s in a)!_t(a[s])&&!Xk(s,r)&&(t[s]=a[s])}function pV({transformTemplate:t},a){return y.useMemo(()=>{const r=qx();return _x(r,a,t),Object.assign({},r.vars,r.style)},[a])}function hV(t,a){const r=t.style||{},s={};return p4(s,r,t),Object.assign(s,pV(t,a)),s}function fV(t,a){const r={},s=hV(t,a);return t.drag&&t.dragListener!==!1&&(r.draggable=!1,s.userSelect=s.WebkitUserSelect=s.WebkitTouchCallout="none",s.touchAction=t.drag===!0?"none":`pan-${t.drag==="x"?"y":"x"}`),t.tabIndex===void 0&&(t.onTap||t.onTapStart||t.whileTap)&&(r.tabIndex=0),r.style=s,r}const h4=()=>({...qx(),attrs:{}});function gV(t,a,r,s){const l=y.useMemo(()=>{const d=h4();return $k(d,a,Kk(s),t.transformTemplate,t.style),{...d.attrs,style:{...d.style}}},[a]);if(t.style){const d={};p4(d,t.style,t),l.style={...d,...l.style}}return l}const xV=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Fx(t){return typeof t!="string"||t.includes("-")?!1:!!(xV.indexOf(t)>-1||/[A-Z]/u.test(t))}function yV(t,a,r,{latestValues:s},l,d=!1,u){const g=(u??Fx(t)?gV:fV)(a,s,l,t),h=dV(a,typeof t=="string",d),x=t!==y.Fragment?{...h,...g,ref:r}:{},{children:b}=a,w=y.useMemo(()=>_t(b)?b.get():b,[b]);return y.createElement(t,{...x,children:w})}function bV({scrapeMotionValuesFromProps:t,createRenderState:a},r,s,l){return{latestValues:vV(r,s,l,t),renderState:a()}}function vV(t,a,r,s){const l={},d=s(t,{});for(const w in d)l[w]=tu(d[w]);let{initial:u,animate:p}=t;const g=im(t),h=Vk(t);a&&h&&!g&&t.inherit!==!1&&(u===void 0&&(u=a.initial),p===void 0&&(p=a.animate));let x=r?r.initial===!1:!1;x=x||u===!1;const b=x?p:u;if(b&&typeof b!="boolean"&&!am(b)){const w=Array.isArray(b)?b:[b];for(let N=0;N<w.length;N++){const A=Ex(t,w[N]);if(A){const{transitionEnd:k,transition:I,...T}=A;for(const E in T){let R=T[E];if(Array.isArray(R)){const C=x?R.length-1:0;R=R[C]}R!==null&&(l[E]=R)}for(const E in k)l[E]=k[E]}}}return l}const f4=t=>(a,r)=>{const s=y.useContext(rm),l=y.useContext(em),d=()=>bV(t,a,s,l);return r?d():Pn(d)},wV=f4({scrapeMotionValuesFromProps:zx,createRenderState:qx}),jV=f4({scrapeMotionValuesFromProps:Yk,createRenderState:h4}),NV=Symbol.for("motionComponentSymbol");function AV(t,a,r){const s=y.useRef(r);y.useInsertionEffect(()=>{s.current=r});const l=y.useRef(null);return y.useCallback(d=>{d&&t.onMount?.(d),a&&(d?a.mount(d):a.unmount());const u=s.current;if(typeof u=="function")if(d){const p=u(d);typeof p=="function"&&(l.current=p)}else l.current?(l.current(),l.current=null):u(d);else u&&(u.current=d)},[a])}const g4=y.createContext({});function Ts(t){return t&&typeof t=="object"&&Object.prototype.hasOwnProperty.call(t,"current")}function kV(t,a,r,s,l,d){const{visualElement:u}=y.useContext(rm),p=y.useContext(d4),g=y.useContext(em),h=y.useContext(nm),x=h.reducedMotion,b=h.skipAnimations,w=y.useRef(null),N=y.useRef(!1);s=s||p.renderer,!w.current&&s&&(w.current=s(t,{visualState:a,parent:u,props:r,presenceContext:g,blockInitialAnimation:g?g.initial===!1:!1,reducedMotionConfig:x,skipAnimations:b,isSVG:d}),N.current&&w.current&&(w.current.manuallyAnimateOnMount=!0));const A=w.current,k=y.useContext(g4);A&&!A.projection&&l&&(A.type==="html"||A.type==="svg")&&SV(w.current,r,l,k);const I=y.useRef(!1);y.useInsertionEffect(()=>{A&&I.current&&A.update(r,g)});const T=r[Ak],E=y.useRef(!!T&&typeof window<"u"&&!window.MotionHandoffIsComplete?.(T)&&window.MotionHasOptimisedAnimation?.(T));return Ju(()=>{N.current=!0,A&&(I.current=!0,window.MotionIsMounted=!0,A.updateFeatures(),A.scheduleRenderMicrotask(),E.current&&A.animationState&&A.animationState.animateChanges())}),y.useEffect(()=>{A&&(!E.current&&A.animationState&&A.animationState.animateChanges(),E.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(T)}),E.current=!1),A.enteringChildren=void 0)}),A}function SV(t,a,r,s){const{layoutId:l,layout:d,drag:u,dragConstraints:p,layoutScroll:g,layoutRoot:h,layoutAnchor:x,layoutCrossfade:b}=a;t.projection=new r(t.latestValues,a["data-framer-portal-id"]?void 0:x4(t.parent)),t.projection.setOptions({layoutId:l,layout:d,alwaysMeasureLayout:!!u||p&&Ts(p),visualElement:t,animationType:typeof d=="str
17ing"?d:"both",initialPromotionConfig:s,crossfade:b,layoutScroll:g,layoutRoot:h,layoutAnchor:x})}function x4(t){if(t)return t.options.allowProjection!==!1?t.projection:x4(t.parent)}function rf(t,{forwardMotionProps:a=!1,type:r}={},s,l){s&&oV(s);const d=r?r==="svg":Fx(t),u=d?jV:wV;function p(h,x){let b;const w={...y.useContext(nm),...h,layoutId:IV(h)},{isStatic:N}=w,A=mV(h),k=u(h,N);if(!N&&typeof window<"u"){CV();const I=MV(w);b=I.MeasureLayout,A.visualElement=kV(t,k,w,l,I.ProjectionNode,d)}return e.jsxs(rm.Provider,{value:A,children:[b&&A.visualElement?e.jsx(b,{visualElement:A.visualElement,...w}):null,yV(t,h,AV(k,A.visualElement,x),k,N,a,d)]})}p.displayName=`motion.${typeof t=="string"?t:`create(${t.displayName??t.name??""})`}`;const g=y.forwardRef(p);return g[NV]=t,g}function IV({layoutId:t}){const a=y.useContext(mx).id;return a&&t!==void 0?a+"-"+t:t}function CV(t,a){y.useContext(d4).strict}function MV(t){const a=u4(),{drag:r,layout:s}=a;if(!r&&!s)return{};const l={...r,...s};return{MeasureLayout:r?.isEnabled(t)||s?.isEnabled(t)?l.MeasureLayout:void 0,ProjectionNode:l.ProjectionNode}}function TV(t,a){if(typeof Proxy>"u")return rf;const r=new Map,s=(d,u)=>rf(d,u,t,a),l=(d,u)=>s(d,u);return new Proxy(l,{get:(d,u)=>u==="create"?s:(r.has(u)||r.set(u,rf(u,void 0,t,a)),r.get(u))})}const EV=(t,a)=>a.isSVG??Fx(t)?new oL(a):new tL(a,{allowProjection:t!==y.Fragment});class RV extends Fn{constructor(a){super(a),a.animationState||(a.animationState=mL(a))}updateAnimationControlsSubscription(){const{animate:a}=this.node.getProps();am(a)&&(this.unmountControls=a.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:a}=this.node.getProps(),{animate:r}=this.node.prevProps||{};a!==r&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let PV=0;class OV extends Fn{constructor(){super(...arguments),this.id=PV++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;const{isPresent:a,onExitComplete:r}=this.node.presenceContext,{isPresent:s}=this.node.prevPresenceContext||{};if(!this.node.animationState||a===s)return;if(a&&s===!1){if(this.isExitComplete){const{initial:d,custom:u}=this.node.getProps();if(typeof d=="string"||typeof d=="object"&&d!==null&&!Array.isArray(d)){const p=wr(this.node,d,u);if(p){const{transition:g,transitionEnd:h,...x}=p;for(const b in x)this.node.getValue(b)?.jump(x[b])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const l=this.node.animationState.setActive("exit",!a);r&&!a&&l.then(()=>{this.isExitComplete=!0,r(this.id)})}mount(){const{register:a,onExitComplete:r}=this.node.presenceContext||{};r&&r(this.id),a&&(this.unmount=a(this.id))}unmount(){}}const DV={animation:{Feature:RV},exit:{Feature:OV}};function Jl(t){return{point:{x:t.pageX,y:t.pageY}}}const LV=t=>a=>Ox(a)&&t(a,Jl(a));function El(t,a,r,s){return ql(t,a,LV(r),s)}const y4=({current:t})=>t?t.ownerDocument.defaultView:null,c2=(t,a)=>Math.abs(t-a);function VV(t,a){const r=c2(t.x,a.x),s=c2(t.y,a.y);return Math.sqrt(r**2+s**2)}const d2=new Set(["auto","scroll"]);class b4{constructor(a,r,{transformPagePoint:s,contextWindow:l=window,dragSnapToOrigin:d=!1,distanceThreshold:u=3,element:p}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=N=>{this.handleScroll(N.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=Id(this.lastRawMoveEventInfo,this.transformPagePoint));const N=sf(this.lastMoveEventInfo,this.history),A=this.startEvent!==null,k=VV(N.offset,{x:0,y:0})>=this.distanceThreshold;if(!A&&!k)return;const{point:I}=N,{timestamp:T}=Rt;this.history.push({...I,timestamp:T});const{onStart:E,onMove:R}=this.handlers;A||(E&&E(this.lastMoveEvent,N),this.startEvent=this.lastMoveEvent),R&&R(this.lastMoveEvent,N)},this.handlePointerMove=(N,A)=>{this.lastMoveEvent=N,this.lastRawMoveEventInfo=A,this.lastMoveEventInfo=Id(A,this.transformPagePoint),Ge.update(this.updatePoint,!0)},this.handlePointerUp=(N,A)=>{this.end();const{onEnd:k,onSessionEnd:I,resumeAnimation:T}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&T&&T(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const E=sf(N.type==="pointercancel"?this.lastMoveEventInfo:Id(A,this.transformPagePoint),this.history);this.startEvent&&k&&k(N,E),I&&I(N,E)},!Ox(a))return;this.dragSnapToOrigin=d,this.handlers=r,this.transformPagePoint=s,this.distanceThreshold=u,this.contextWindow=l||window;const g=Jl(a),h=Id(g,this.transformPagePoint),{point:x}=h,{timestamp:b}=Rt;this.history=[{...x,timestamp:b}];const{onSessionStart:w}=r;w&&w(a,sf(h,this.history)),this.removeListeners=Yl(El(this.contextWindow,"pointermove",this.handlePointerMove),El(this.contextWindow,"pointerup",this.handlePointerUp),El(this.contextWindow,"pointercancel",this.handlePointerUp)),p&&this.startScrollTracking(p)}startScrollTracking(a){let r=a.parentElement;for(;r;){const s=getComputedStyle(r);(d2.has(s.overflowX)||d2.has(s.overflowY))&&this.scrollPositions.set(r,{x:r.scrollLeft,y:r.scrollTop}),r=r.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(a){const r=this.scrollPositions.get(a);if(!r)return;const s=a===window,l=s?{x:window.scrollX,y:window.scrollY}:{x:a.scrollLeft,y:a.scrollTop},d={x:l.x-r.x,y:l.y-r.y};d.x===0&&d.y===0||(s?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=d.x,this.lastMoveEventInfo.point.y+=d.y):this.history.length>0&&(this.history[0].x-=d.x,this.history[0].y-=d.y),this.scrollPositions.set(a,l),Ge.update(this.updatePoint,!0))}updateHandlers(a){this.handlers=a}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),Oa(this.updatePoint)}}function Id(t,a){return a?{point:a(t.point)}:t}function u2(t,a){return{x:t.x-a.x,y:t.y-a.y}}function sf({point:t}
vendor: 13,188 bytes, line 17
17,a){return{point:t,delta:u2(t,v4(a)),offset:u2(t,_V(a)),velocity:zV(a,.1)}}function _V(t){return t[0]}function v4(t){return t[t.length-1]}function zV(t,a){if(t.length<2)return{x:0,y:0};let r=t.length-1,s=null;const l=v4(t);for(;r>=0&&(s=t[r],!(l.timestamp-s.timestamp>wa(a)));)r--;if(!s)return{x:0,y:0};s===t[0]&&t.length>2&&l.timestamp-s.timestamp>wa(a)*2&&(s=t[1]);const d=Pa(l.timestamp-s.timestamp);if(d===0)return{x:0,y:0};const u={x:(l.x-s.x)/d,y:(l.y-s.y)/d};return u.x===1/0&&(u.x=0),u.y===1/0&&(u.y=0),u}function qV(t,{min:a,max:r},s){return a!==void 0&&t<a?t=s?at(a,t,s.min):Math.max(t,a):r!==void 0&&t>r&&(t=s?at(r,t,s.max):Math.min(t,r)),t}function m2(t,a,r){return{min:a!==void 0?t.min+a:void 0,max:r!==void 0?t.max+r-(t.max-t.min):void 0}}function FV(t,{top:a,left:r,bottom:s,right:l}){return{x:m2(t.x,r,l),y:m2(t.y,a,s)}}function p2(t,a){let r=a.min-t.min,s=a.max-t.max;return a.max-a.min<t.max-t.min&&([r,s]=[s,r]),{min:r,max:s}}function BV(t,a){return{x:p2(t.x,a.x),y:p2(t.y,a.y)}}function HV(t,a){let r=.5;const s=Yt(t),l=Yt(a);return l>s?r=Ws(a.min,a.max-s,t.min):s>l&&(r=Ws(t.min,t.max-l,a.min)),Ja(0,1,r)}function GV(t,a){const r={};return a.min!==void 0&&(r.min=a.min-t.min),a.max!==void 0&&(r.max=a.max-t.min),r}const Ag=.35;function UV(t=Ag){return t===!1?t=0:t===!0&&(t=Ag),{x:h2(t,"left","right"),y:h2(t,"top","bottom")}}function h2(t,a,r){return{min:f2(t,a),max:f2(t,r)}}function f2(t,a){return typeof t=="number"?t:t[a]||0}const XV=new WeakMap;class $V{constructor(a){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=At(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=a}start(a,{snapToCursor:r=!1,distanceThreshold:s}={}){const{presenceContext:l}=this.visualElement;if(l&&l.isPresent===!1)return;const d=b=>{r&&this.snapToCursor(Jl(b).point),this.stopAnimation()},u=(b,w)=>{const{drag:N,dragPropagation:A,onDragStart:k}=this.getProps();if(N&&!A&&(this.openDragLock&&this.openDragLock(),this.openDragLock=b9(N),!this.openDragLock))return;this.latestPointerEvent=b,this.latestPanInfo=w,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),ui(T=>{let E=this.getAxisMotionValue(T).get()||0;if(xi.test(E)){const{projection:R}=this.visualElement;if(R&&R.layout){const C=R.layout.layoutBox[T];C&&(E=Yt(C)*(parseFloat(E)/100))}}this.originPoint[T]=E}),k&&Ge.update(()=>k(b,w),!1,!0),pg(this.visualElement,"transform");const{animationState:I}=this.visualElement;I&&I.setActive("whileDrag",!0)},p=(b,w)=>{this.latestPointerEvent=b,this.latestPanInfo=w;const{dragPropagation:N,dragDirectionLock:A,onDirectionLock:k,onDrag:I}=this.getProps();if(!N&&!this.openDragLock)return;const{offset:T}=w;if(A&&this.currentDirection===null){this.currentDirection=KV(T),this.currentDirection!==null&&k&&k(this.currentDirection);return}this.updateAxis("x",w.point,T),this.updateAxis("y",w.point,T),this.visualElement.render(),I&&Ge.update(()=>I(b,w),!1,!0)},g=(b,w)=>{this.latestPointerEvent=b,this.latestPanInfo=w,this.stop(b,w),this.latestPointerEvent=null,this.latestPanInfo=null},h=()=>{const{dragSnapToOrigin:b}=this.getProps();(b||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:x}=this.getProps();this.panSession=new b4(a,{onSessionStart:d,onStart:u,onMove:p,onSessionEnd:g,resumeAnimation:h},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:x,distanceThreshold:s,contextWindow:y4(this.visualElement),element:this.visualElement.current})}stop(a,r){const s=a||this.latestPointerEvent,l=r||this.latestPanInfo,d=this.isDragging;if(this.cancel(),!d||!l||!s)return;const{velocity:u}=l;this.startAnimation(u);const{onDragEnd:p}=this.getProps();p&&Ge.postRender(()=>p(s,l))}cancel(){this.isDragging=!1;const{projection:a,animationState:r}=this.visualElement;a&&(a.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:s}=this.getProps();!s&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),r&&r.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(a,r,s){const{drag:l}=this.getProps();if(!s||!Cd(a,l,this.currentDirection))return;const d=this.getAxisMotionValue(a);let u=this.originPoint[a]+s[a];this.constraints&&this.constraints[a]&&(u=qV(u,this.constraints[a],this.elastic[a])),d.set(u)}resolveConstraints(){const{dragConstraints:a,dragElastic:r}=this.getProps(),s=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,l=this.constraints;a&&Ts(a)?this.constraints||(this.constraints=this.resolveRefConstraints()):a&&s?this.constraints=FV(s.layoutBox,a):this.constraints=!1,this.elastic=UV(r),l!==this.constraints&&!Ts(a)&&s&&this.constraints&&!this.hasMutatedConstraints&&ui(d=>{this.constraints!==!1&&this.getAxisMotionValue(d)&&(this.constraints[d]=GV(s.layoutBox[d],this.constraints[d]))})}resolveRefConstraints(){const{dragConstraints:a,onMeasureDragConstraints:r}=this.getProps();if(!a||!Ts(a))return!1;const s=a.current,{projection:l}=this.visualElement;if(!l||!l.layout)return!1;l.root&&(l.root.scroll=void 0,l.root.updateScroll());const d=K9(s,l.root,this.visualElement.getTransformPagePoint());let u=BV(l.layout.layoutBox,d);if(r){const p=r(X9(u));this.hasMutatedConstraints=!!p,p&&(u=Fk(p))}return u}startAnimation(a){const{drag:r,dragMomentum:s,dragElastic:l,dragTransition:d,dragSnapToOrigin:u,onDragTransitionEnd:p}=this.getProps(),g=this.constraints||{},h=ui(x=>{if(!Cd(x,r,this.currentDirection))return;let b=g&&g[x]||{};(u===!0||u===x)&&(b={min:0,max:0});const w=l?200:1e6,N=l?40:1e7,A={type:"inertia",velocity:s?a[x]:0,bounceStiffness:w,bounceDamping:N,timeConstant:750,restDelta:1,restSpeed:10,...d,...b};return this.startAxisValueAnimation(x,A)});return Promise.all(h).then(p)}startAxisValueAnimation(a,r){const s=this.getAxisMotionValue(a);return pg(this.visualElement,a),s.start(Tx(a,s,0,r,this.visualElement,!1))}stopAnimation(){ui(a=>this.getAxisMotionValue(a).stop())}getAxisMotionValue(a){const r=`_drag${a.toUpperCase()}`,l=this.visualElement.getProps()[r];return l||this.visualElement.getValue(a,this.visualElement.latestValues[a]??0)}snapToCursor(a){ui(r=>{const{drag:s}=this.getProps();if(!Cd(r,s,this.currentDirection))return;const{projection:l}=this.visualElement,d=this.getAxisMotionValue(r);if(l&&l.layout){const{min:u,max:p}=l.layout.layoutBox[r],g=d.get()||0;d.set(a[r]-at(u,p,.5)+g)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:a,dragConstraints:r}=this.getProps(),{projection:s}=this.visualElement;if(!Ts(r)||!s||!this.constraints)return;this.stopAnimation();const l={x:0,y:0};ui(u=>{const p=this.getAxisMotionValue(u);if(p&&this.constraints!==!1){const g=p.get();l[u]=HV({min:g,max:g},this.constraints[u])}});const{transformTemplate:d}=this.visualElement.getProps();this.visualElement.current.style.transform=d?d({},""):"none",s.root&&s.root.updateScroll(),s.updateLayout(),this.constraints=!1,this.resolveConstraints(),ui(u=>{if(!Cd(u,a,null))return;const p=this.getAxisMotionValue(u),{min:g,max:h}=this.constraints[u];p.set(at(g,h,l[u]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;XV.set(this.visualElement,this);const a=this.visualElement.current,r=El(a,"pointerdown",h=>{const{drag:x,dragListener:b=!0}=this.getProps(),w=h.target,N=w!==a&&k9(w);x&&b&&!N&&this.start(h)});let s;const l=()=>{const{dragConstraints:h}=this.getProps();Ts(h)&&h.current&&(this.constraints=this.resolveRefConstraints(),s||(s=WV(a,h.current,()=>this.scalePositionWithinConstraints())))},{projection:d}=this.visualElement,u=d.addEventListener("measure",l);d&&!d.layout&&(d.root&&d.root.updateScroll(),d.updateLayout()),Ge.read(l);const p=ql(window,"resize",()=>this.scalePositionWithinConstraints()),g=d.addEventListener("didUpdate",(({delta:h,hasLayoutChanged:x})=>{this.isDragging&&x&&(ui(b=>{const w=this.getAxisMotionValue(b);w&&(this.originPoint[b]+=h[b].translate,w.set(w.get()+h[b].translate))}),this.visualElement.render())}));return()=>{p(),r(),u(),g&&g(),s&&s()}}getProps(){const a=this.visualElement.getProps(),{drag:r=!1,dragDirectionLock:s=!1,dragPropagation:l=!1,dragConstraints:d=!1,dragElastic:u=Ag,dragMomentum:p=!0}=a;return{...a,drag:r,dragDirectionLock:s,dragPropagation:l,dragConstraints:d,dragElastic:u,dragMomentum:p}}}function g2(t){let a=!0;return()=>{if(a){a=!1;return}t()}}function WV(t,a,r){const s=yg(t,g2(r)),l=yg(a,g2(r));return()=>{s(),l()}}function Cd(t,a,r){return(a===!0||a===t)&&(r===null||r===t)}function KV(t,a=10){let r=null;return Math.abs(t.y)>a?r="y":Math.abs(t.x)>a&&(r="x"),r}class YV extends Fn{constructor(a){super(a),this.removeGroupControls=sa,this.removeListeners=sa,this.controls=new $V(a)}mount(){const{dragControls:a}=this.node.getProps();a&&(this.removeGroupControls=a.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||sa}update(){const{dragControls:a}=this.node.getProps(),{dragControls:r}=this.node.prevProps||{};a!==r&&(this.removeGroupControls(),a&&(this.removeGroupControls=a.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const of=t=>(a,r)=>{t&&Ge.update(()=>t(a,r),!1,!0)};class QV extends Fn{constructor(){super(...arguments),this.removePointerDownListener=sa}onPointerDown(a){this.session=new b4(a,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:y4(this.node)})}createPanHandlers(){const{onPanSessionStart:a,onPanStart:r,onPan:s,onPanEnd:l}=this.node.getProps();return{onSessionStart:of(a),onStart:of(r),onMove:of(s),onEnd:(d,u)=>{delete this.session,l&&Ge.postRender(()=>l(d,u))}}}mount(){this.removePointerDownListener=El(this.node.current,"pointerdown",a=>this.onPointerDown(a))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let lf=!1;class ZV extends y.Component{componentDidMount(){const{visualElement:a,layoutGroup:r,switchLayoutGroup:s,layoutId:l}=this.props,{projection:d}=a;d&&(r.group&&r.group.add(d),s&&s.register&&l&&s.register(d),lf&&d.root.didUpdate(),d.addEventListener("animationComplete",()=>{this.safeToRemove()}),d.setOptions({...d.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),au.hasEverUpdated=!0}getSnapshotBeforeUpdate(a){const{layoutDependency:r,visualElement:s,drag:l,isPresent:d}=this.props,{projection:u}=s;return u&&(u.isPresent=d,a.layoutDependency!==r&&u.setOptions({...u.options,layoutDependency:r}),lf=!0,l||a.layoutDependency!==r||r===void 0||a.isPresent!==d?u.willUpdate():this.safeToRemove(),a.isPresent!==d&&(d?u.promote():u.relegate()||Ge.postRender(()=>{const p=u.getStack();(!p||!p.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:a,layoutAnchor:r}=this.props,{projection:s}=a;s&&(s.options.layoutAnchor=r,s.root.didUpdate(),Ys.postRender(()=>{!s.currentAnimation&&s.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:a,layoutGroup:r,switchLayoutGroup:s}=this.props,{projection:l}=a;lf=!0,l&&(l.scheduleCheckAfterUnmount(),r&&r.group&&r.group.remove(l),s&&s.deregister&&s.deregister(l))}safeToRemove(){const{safeToRemove:a}=this.props;a&&a()}render(){return null}}function w4(t){const[a,r]=c4(),s=y.useContext(mx);return e.jsx(ZV,{...t,layoutGroup:s,switchLayoutGroup:y.useContext(g4),isPresent:a,safeToRemove:r})}const JV={pan:{Feature:QV},drag:{Feature:YV,ProjectionNode:l4,MeasureLayout:w4}};function x2(t,a,r){const{props:s}=t;t.animationState&&s.whileHover&&t.animationState.setActive("whileHover",r==="Start");const l="onHover"+r,d=s[l];d&&Ge.postRender(()=>d(a,Jl(a)))}class e_ extends Fn{mount(){const{current:a}=this.node;a&&(this.unmount=w9(a,(r,s)=>(x2(this.node,s,"Start"),l=>x2(this.node,l,"End"))))}unmount(){}}class t_ extends Fn{constructor(){super(...arguments),this.isActive=!1}onFocus(){let a=!1;try{a=this.node.current.matches(":focus-visible")}catch{a=!0}!a||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Yl(ql(this.node.current,"focus",()=>this.onFocus()),ql(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function y2(t,a,r){const{props:s}=t;if(t.current instanceof HTMLButtonElement&&t.current.disabled)return;t.animationState&&s.whileTap&&t.animationState.setActive("whileTap",r==="Start");const l="onTap"+(r==="End"?"":r),d=s[l];d&&Ge.postRender(()=>d(a,Jl(a)))}class a_ extends Fn{mount(){const{current:a}=this.node;if(!a)return;const{globalTapTarget:r,propagate:s}=this.node.props;this.unmount=I9(a,(l,d)=>(y2(this.node,d,"Start"),(u,{success:p})=>y2(this.node,u,p?"End":"Cancel")),{useGlobalTarget:r,stopPropagation:s?.tap===!1})}unmount(){}}
17const kg=new WeakMap,cf=new WeakMap,i_=t=>{const a=kg.get(t.target);a&&a(t)},n_=t=>{t.forEach(i_)};function r_({root:t,...a}){const r=t||document;cf.has(r)||cf.set(r,{});const s=cf.get(r),l=JSON.stringify(a);return s[l]||(s[l]=new IntersectionObserver(n_,{root:t,...a})),s[l]}function s_(t,a,r){const s=r_(a);return kg.set(t,r),s.observe(t),()=>{kg.delete(t),s.unobserve(t)}}const o_={some:0,all:1};class l_ extends Fn{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();const{viewport:a={}}=this.node.getProps(),{root:r,margin:s,amount:l="some",once:d}=a,u={root:r?r.current:void 0,rootMargin:s,threshold:typeof l=="number"?l:o_[l]},p=g=>{const{isIntersecting:h}=g;if(this.isInView===h||(this.isInView=h,d&&!h&&this.hasEnteredView))return;h&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",h);const{onViewportEnter:x,onViewportLeave:b}=this.node.getProps(),w=h?x:b;w&&w(g)};this.stopObserver=s_(this.node.current,u,p)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:a,prevProps:r}=this.node;["amount","margin","root"].some(c_(a,r))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}}function c_({viewport:t={}},{viewport:a={}}={}){return r=>t[r]!==a[r]}const d_={inView:{Feature:l_},tap:{Feature:a_},focus:{Feature:t_},hover:{Feature:e_}},u_={layout:{ProjectionNode:l4,MeasureLayout:w4}},m_={...DV,...d_,...JV,...u_},v=TV(m_,EV);function Iu(t){return typeof window>"u"?!1:t?pk():Cx()}const p_=50,b2=()=>({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}),h_=()=>({time:0,x:b2(),y:b2()}),f_={x:{length:"Width",position:"Left"},y:{length:"Height",position:"Top"}};function v2(t,a,r,s){const l=r[a],{length:d,position:u}=f_[a],p=l.current,g=r.time;l.current=Math.abs(t[`scroll${u}`]),l.scrollLength=t[`scroll${d}`]-t[`client${d}`],l.offset.length=0,l.offset[0]=0,l.offset[1]=l.scrollLength,l.progress=Ws(0,l.scrollLength,l.current);const h=s-g;l.velocity=h>p_?0:gx(l.current-p,h)}function g_(t,a,r){v2(t,"x",a,r),v2(t,"y",a,r),a.time=r}function x_(t,a){const r={x:0,y:0};let s=t;for(;s&&s!==a;)if(Ml(s))r.x+=s.offsetLeft,r.y+=s.offsetTop,s=s.offsetParent;else if(s.tagName==="svg"){const l=s.getBoundingClientRect();s=s.parentElement;const d=s.getBoundingClientRect();r.x+=l.left-d.left,r.y+=l.top-d.top}else if(s instanceof SVGGraphicsElement){const{x:l,y:d}=s.getBBox();r.x+=l,r.y+=d;let u=null,p=s.parentNode;for(;!u;)p.tagName==="svg"&&(u=p),p=s.parentNode;s=u}else break;return r}const Sg={start:0,center:.5,end:1};function w2(t,a,r=0){let s=0;if(t in Sg&&(t=Sg[t]),typeof t=="string"){const l=parseFloat(t);t.endsWith("px")?s=l:t.endsWith("%")?t=l/100:t.endsWith("vw")?s=l/100*document.documentElement.clientWidth:t.endsWith("vh")?s=l/100*document.documentElement.clientHeight:t=l}return typeof t=="number"&&(s=a*t),r+s}const y_=[0,0];function b_(t,a,r,s){let l=Array.isArray(t)?t:y_,d=0,u=0;return typeof t=="number"?l=[t,t]:typeof t=="string"&&(t=t.trim(),t.includes(" ")?l=t.split(" "):l=[t,Sg[t]?t:"0"]),d=w2(l[0],r,s),u=w2(l[1],a),d-u}const vl={Enter:[[0,1],[1,1]],Exit:[[0,0],[1,0]],Any:[[1,0],[0,1]],All:[[0,0],[1,1]]},v_={x:0,y:0};function w_(t){return"getBBox"in t&&t.tagName!=="svg"?t.getBBox():{width:t.clientWidth,height:t.clientHeight}}function j_(t,a,r){const{offset:s=vl.All}=r,{target:l=t,axis:d="y"}=r,u=d==="y"?"height":"width",p=l!==t?x_(l,t):v_,g=l===t?{width:t.scrollWidth,height:t.scrollHeight}:w_(l),h={width:t.clientWidth,height:t.clientHeight};a[d].offset.length=0;let x=!a[d].interpolate;const b=s.length;for(let w=0;w<b;w++){const N=b_(s[w],h[u],g[u],p[d]);!x&&N!==a[d].interpolatorOffsets[w]&&(x=!0),a[d].offset[w]=N}x&&(a[d].interpolate=Ax(a[d].offset,lk(s),{clamp:!1}),a[d].interpolatorOffsets=[...a[d].offset]),a[d].progress=Ja(0,1,a[d].interpolate(a[d].current))}function N_(t,a=t,r){if(r.x.targetOffset=0,r.y.targetOffset=0,a!==t){let s=a;for(;s&&s!==t;)r.x.targetOffset+=s.offsetLeft,r.y.targetOffset+=s.offsetTop,s=s.offsetParent}r.x.targetLength=a===t?a.scrollWidth:a.clientWidth,r.y.targetLength=a===t?a.scrollHeight:a.clientHeight,r.x.containerLength=t.clientWidth,r.y.containerLength=t.clientHeight}function A_(t,a,r,s={}){return{measure:l=>{N_(t,s.target,r),g_(t,r,l),(s.offset||s.target)&&j_(t,r,s)},notify:()=>a(r)}}const ys=new WeakMap,j2=new WeakMap,df=new WeakMap,N2=new WeakMap,Md=new WeakMap,A2=t=>t===document.scrollingElement?window:t;function j4(t,{container:a=document.scrollingElement,trackContentSize:r=!1,...s}={}){if(!a)return sa;let l=df.get(a);l||(l=new Set,df.set(a,l));const d=h_(),u=A_(a,t,d,s);if(l.add(u),!ys.has(a)){const g=()=>
17{for(const w of l)w.measure(Rt.timestamp);Ge.preUpdate(h)},h=()=>{for(const w of l)w.notify()},x=()=>Ge.read(g);ys.set(a,x);const b=A2(a);window.addEventListener("resize",x),a!==document.documentElement&&j2.set(a,yg(a,x)),b.addEventListener("scroll",x),x()}if(r&&!Md.has(a)){const g=ys.get(a),h={width:a.scrollWidth,height:a.scrollHeight};N2.set(a,h);const x=()=>{const w=a.scrollWidth,N=a.scrollHeight;(h.width!==w||h.height!==N)&&(g(),h.width=w,h.height=N)},b=Ge.read(x,!0);Md.set(a,b)}const p=ys.get(a);return Ge.read(p,!1,!0),()=>{Oa(p);const g=df.get(a);if(!g||(g.delete(u),g.size))return;const h=ys.get(a);ys.delete(a),h&&(A2(a).removeEventListener("scroll",h),j2.get(a)?.(),window.removeEventListener("resize",h));const x=Md.get(a);x&&(Oa(x),Md.delete(a)),N2.delete(a)}}const k_=[[vl.Enter,"entry"],[vl.Exit,"exit"],[vl.Any,"cover"],[vl.All,"contain"]],k2={start:0,end:1};function S_(t){const a=t.trim().split(/\s+/);if(a.length!==2)return;const r=k2[a[0]],s=k2[a[1]];if(!(r===void 0||s===void 0))return[r,s]}function I_(t){if(t.length!==2)return;const a=[];for(const r of t)if(Array.isArray(r))a.push(r);else if(typeof r=="string"){const s=S_(r);if(!s)return;a.push(s)}else return;return a}function C_(t,a){const r=I_(t);if(!r)return!1;for(let s=0;s<2;s++){const l=r[s],d=a[s];if(l[0]!==d[0]||l[1]!==d[1])return!1}return!0}function Bx(t){if(!t)return{rangeStart:"contain 0%",rangeEnd:"contain 100%"};for(const[a,r]of k_)if(C_(t,a))return{rangeStart:`${r} 0%`,rangeEnd:`${r} 100%`}}const S2=new Map;function I2(t){const a={value:0},r=j4(s=>{a.value=s[t.axis].progress*100},t);return{currentTime:a,cancel:r}}function N4({source:t,container:a,...r}){const{axis:s}=r;t&&(a=t);let l=S2.get(a);l||(l=new Map,S2.set(a,l));const d=r.target??"self";let u=l.get(d);u||(u={},l.set(d,u));const p=s+(r.offset??[]).join(",");return u[p]||(r.target&&Iu(r.target)?Bx(r.offset)?u[p]=new ViewTimeline({subject:r.target,axis:s}):u[p]=I2({container:a,...r}):Iu()?u[p]=new ScrollTimeline({source:a,axis:s}):u[p]=I2({container:a,...r})),u[p]}function M_(t,a){const r=N4(a),s=a.target?Bx(a.offset):void 0,l=a.target?Iu(a.target)&&!!s:Iu();return t.attachTimeline({timeline:l?r:void 0,...s&&l&&{rangeStart:s.rangeStart,rangeEnd:s.rangeEnd},observe:d=>(d.pause(),Lk(u=>{d.time=d.iterationDuration*u},r))})}function T_(t){return t&&(t.target||t.offset)}function E_(t){return t.length===2}function R_(t,a){return E_(t)||T_(a)?j4(r=>{t(r[a.axis].progress,r)},a):Lk(t,N4(a))}function A4(t,{axis:a="y",container:r=document.scrollingElement,...s}={}){if(!r)return sa;const l={axis:a,container:r,...s};return typeof t=="function"?R_(t,l):M_(t,l)}const P_=()=>({scrollX:Ua(0),scrollY:Ua(0),scrollXProgress:Ua(0),scrollYProgress:Ua(0)}),_s=t=>t?!t.current:!1;function C2(t,a,r,s){return{factory:l=>{let d;const u=()=>{if(_s(r)||_s(s)){Ys.read(u);return}d=A4(l,{...a,axis:t,container:r?.current||void 0,target:s?.current||void 0})};return Ys.read(u),()=>{Ek(u),d?.()}},times:[0,1],keyframes:[0,1],ease:l=>l,duration:1}}function O_(t,a){return typeof window>"u"?!1:t?pk()&&!!Bx(a):Cx()}function D_({container:t,target:a,...r}={}){const s=Pn(P_);O_(a,r.offset)&&(s.scrollXProgress.accelerate=C2("x",r,t,a),s.scrollYProgress.accelerate=C2("y",r,t,a));const l=y.useRef(null),d=y.useRef(!1),u=y.useCallback(()=>(l.current=A4((p,{x:g,y:h})=>{s.scrollX.set(g.current),s.scrollXProgress.set(g.progress),s.scrollY.set(h.current),s.scrollYProgress.set(h.progress)},{...r,container:t?.current||void 0,target:a?.current||void 0}),()=>{l.current?.()}),[t,a,JSON.stringify(r.offset)]);return Ju(()=>{if(d.current=!1,_s(t)||_s(a)){d.current=!0;return}else return u()},[u]),y.useEffect(()=>{if(!d.current)return;let p;const g=()=>{const h=_s(t),x=_s(a);!h&&!x&&(p=u())};return Ys.read(g),()=>{Ek(g),p?.()}},[u]),s}function L_(t){const a=Pn(()=>Ua(t)),{isStatic:r}=y.useContext(nm);if(r){const[,s]=y.useState(t);y.useEffect(()=>a.on("change",s),[])}return a}function k4(t,a){const r=L_(a()),s=()=>r.set(a());return s(),Ju(()=>{const l=()=>Ge.preRender(s,!1,!0),d=t.map(u=>u.on("change",l));return()=>{d.forEach(u=>u()),Oa(s)}}),r}function V_(t){Cl.current=[],t();const a=k4(Cl.current,t);return Cl.current=void 0,a}function Ig(t,a,r,s){if(typeof t=="function")return V_(t);if(r!==void 0&&!Array.isArray(r)&&typeof a!="function")return __(t,a,r,s);const u=typeof a=="function"?a:V9(a,r,s),p=Array.isArray(t)?M2(t,u):M2([t],([h])=>u(h)),g=Array.isArray(t)?void 0:t.accelerate;return g&&!g.isTransformed&&typeof a!="function"&&Array.isArray(r)&&s?.clamp!==!1&&(p.accelerate={...g,times:a,keyframes:r,isTransformed:!0}),p}function M2(t,a){const r=Pn(()=>[]);return k4(t,()=>{r.length=0;const s=t.length;for(let l=0;l<s;l++)r[l]=t[l].get();return a(r)})}function __(t,a,r,s){const l=Pn(()=>Object.keys(r)),d=Pn(()=>({}));for(const u of l)d[u]=Ig(t,a,r[u],s);return d}const z_={some:0,all:1};function q_(t,a,{root:r,margin:s,amount:l="some"}={}){const d=Px(t),u=new WeakMap,p=h=>{h.forEach(x=>{const b=u.get(x.target);if(x.isIntersecting!==!!b)if(x.isIntersecting){const w=a(x.target,x);typeof w=="function"?u.set(x.target,w):g.unobserve(x.target)}else typeof b=="function"&&(b(x),u.delete(x.target))})},g=new IntersectionObserver(p,{root:r,rootMargin:s,threshold:typeof l=="number"?l:z_[l]});return d.forEach(h=>
17g.observe(h)),()=>g.disconnect()}function F_(t,{root:a,margin:r,amount:s,once:l=!1,initial:d=!1}={}){const[u,p]=y.useState(d);return y.useEffect(()=>{if(!t.current||l&&u)return;const g=()=>(p(!0),l?void 0:()=>p(!1)),h={root:a&&a.current||void 0,margin:r,amount:s};return q_(t.current,g,h)},[a,t,r,l,s]),u}const B_=Bu("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover-elevate active-elevate-2",{variants:{variant:{default:"bg-primary text-primary-foreground border border-primary-border",destructive:"bg-destructive text-destructive-foreground shadow-sm border-destructive-border",outline:" border [border-color:var(--button-outline)] shadow-xs active:shadow-none ",secondary:"border bg-secondary text-secondary-foreground border border-secondary-border ",ghost:"border border-transparent",link:"text-primary underline-offset-4 hover:underline"},size:{default:"min-h-9 px-4 py-2",sm:"min-h-8 rounded-md px-3 text-xs",lg:"min-h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),ve=y.forwardRef(({className:t,variant:a,size:r,asChild:s=!1,...l},d)=>{const u=s?w6:"button";return e.jsx(u,{className:ie(B_({variant:a,size:r,className:t})),ref:d,...l})});ve.displayName="Button";const S4="xpedioo_demo_submitted_at",H_=1800*1e3;function T2(){try{const t=localStorage.getItem(S4);return t?Date.now()-Number(t)<H_:!1}catch{return!1}}function G_(){try{localStorage.setItem(S4,String(Date.now()))}catch{}}const U_=new Set(["gmail.com","googlemail.com","yahoo.com","yahoo.co.uk","yahoo.co.in","yahoo.fr","yahoo.de","yahoo.es","yahoo.it","ymail.com","hotmail.com","hotmail.co.uk","hotmail.fr","hotmail.de","hotmail.es","hotmail.it","outlook.com","outlook.co.uk","outlook.fr","live.com","live.co.uk","msn.com","aol.com","icloud.com","me.com","mac.com","protonmail.com","proton.me","pm.me","tutanota.com","tutamail.com","zoho.com","mail.com","gmx.com","gmx.net","gmx.de","yandex.com","yandex.ru","inbox.com","fastmail.com"]),X_=["AI-ITSM (IT Service Management)","ITAM (IT Asset Management)","EAM (Enterprise Asset Management)","PPM (Project Portfolio Management)","HRMS (Human Capital Management)","Facilities Management","Patch Management","EPVM (Endpoint Vulnerability Management)","GRC (Governance, Risk & Compliance)","Field Service Management","CSM (Customer Service Management)","Vendor Management","ServiceNow AI Studio","ServiceNow Agentic Implementation","AI - Observability","Multiple / Full Platform"],$_=["C-Suite / Executive","VP / Director","IT Manager","IT Operations","Security & Compliance","HR / People Operations","Procurement","Finance","Other"],W_=["1–500 employees","501–2,000 employees","2,001–10,000 employees","10,000+ employees"],E2={firstName:"",lastName:"",workEmail:"",phone:"",company:"",role:"",companySize:"",products:[],message:""};function Fi({label:t,required:a,children:r}){return e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsxs("label",{className:"text-xs font-semibold text-foreground/70 tracking-wider",children:[t,a&&e.jsx("span",{className:"text-primary ml-0.5",children:"*"})]}),r]})}const bs="w-full rounded-lg border border-border bg-background/50 px-3 py-2.5 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/60 transition-all duration-200",uf="w-full rounded-lg border border-border bg-background/50 px-3 py-2.5 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/60 transition-all duration-200 appearance-none cursor-pointer";function K_(){const{isOpen:t,closeDemoModal:a}=ot(),[r,s]=y.useState(E2),[l,d]=y.useState(!1),[u,p]=y.useState(!1),[g,h]=y.useState(!1),[x,b]=y.useState({}),[w,N]=y.useState(null),A=y.useRef(null),[k,I]=y.useState(!1),T=y.useRef(null),E=y.useCallback(V=>{s(D=>({...D,products:D.products.includes(V)?D.products.filter(K=>K!==V):[...D.products,V]}))},[]);y.useEffect(()=>{function V(D){T.current&&!T.current.contains(D.target)&&I(!1)}return k&&document.addEventListener("mousedown",V),()=>document.removeEventListener("mousedown",V)},[k]),y.useEffect(()=>{t&&T2()&&(d(!0),p(!0))},[t]);const R=V=>D=>{s(K=>({...K,[V]:D.target.value})),x[V]&&b(K=>({...K,[V]:""}))};function C(){const V={};if(r.firstName.trim()||(V.firstName="Required"),r.lastName.trim()||(V.lastName="Required"),!r.workEmail.trim()||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r.workEmail))V.workEmail="Valid work email required";else{const D=r.workEmail.split("@")[1]?.toLowerCase();D&&U_.has(D)&&(V.workEmail="Please use a corporate email address (not Gmail, Yahoo, Hotmail, etc.)")}return r.company.trim()||(V.company="Required"),r.role||(V.role="Required"),b(V),Object.keys(V).length===0}async function P(V){if(V.preventDefault(),!!C()){h(!0),N(null);try{const D=await fetch("/api/demo-request",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,_hp:A.current?.value??""})}),K=await D.json();if(!D.ok){N(K.error??"Something went wrong. Please try again.");return}G_(),d(!0)}catch{N("Network error. Please check your connection and try again.")}finally{h(!1)}}}function z(){a(),setTimeout(()=>{T2()||(d(!1),s(E2),b({}),N(null))},300)}return e.jsx(Mn,{children:t&&e.jsxs(e.Fragment,{children:[e.jsx(v.div,{initial:{opacity:0}
17,animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},className:"fixed inset-0 z-[100] bg-black/60 backdrop-blur-sm",onClick:z},"backdrop"),e.jsx(v.div,{initial:{opacity:0,scale:.96,y:16},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.96,y:16},transition:{duration:.25,ease:"easeOut"},className:"fixed inset-0 z-[101] flex items-center justify-center p-4",onClick:V=>V.stopPropagation(),children:e.jsxs("div",{className:"relative w-full max-w-2xl max-h-[90vh] overflow-y-auto rounded-2xl border border-border bg-background shadow-2xl",style:{boxShadow:"0 0 60px rgba(159,24,255,0.15), 0 25px 50px rgba(0,0,0,0.4)"},children:[e.jsx("button",{onClick:z,"aria-label":"Close",className:"absolute top-4 right-4 z-10 p-1.5 rounded-lg text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:e.jsx(eo,{className:"h-5 w-5"})}),e.jsx(Mn,{mode:"wait",children:l?e.jsxs(v.div,{initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0},transition:{duration:.3},className:"flex flex-col items-center justify-center gap-6 px-10 py-16 text-center",children:[e.jsx("div",{className:"h-20 w-20 rounded-full flex items-center justify-center",style:{background:"rgba(159,24,255,0.12)",boxShadow:"0 0 40px rgba(159,24,255,0.25)"},children:e.jsx(Me,{className:"h-10 w-10 text-primary"})}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold mb-2",children:u?"Demo Already Requested":"You're on the list!"}),e.jsx("p",{className:"text-muted-foreground max-w-sm",children:u?"You've already submitted a demo request. Our enterprise team will be in touch with you shortly — no need to submit again.":e.jsxs(e.Fragment,{children:["Our enterprise team will reach out within"," ",e.jsx("span",{className:"text-foreground font-medium",children:"1 business day"})," to schedule your personalized XpediOo demo."]})})]}),e.jsx("div",{className:"grid grid-cols-3 gap-3 w-full max-w-sm text-center",children:["Personalized Walkthrough","ROI Analysis","Migration Plan"].map(V=>e.jsx("div",{className:"rounded-xl border border-primary/20 bg-primary/5 px-3 py-3 text-xs font-medium text-primary",children:V},V))}),e.jsx(ve,{onClick:z,className:"bg-primary text-primary-foreground hover:bg-primary/90",children:"Done"})]},"success"):e.jsxs(v.div,{initial:{opacity:1},exit:{opacity:0},children:[e.jsxs("div",{className:"px-8 pt-8 pb-6 border-b border-border",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx("div",{className:"h-7 w-7 rounded-lg bg-primary/10 flex items-center justify-center",children:e.jsx(de,{className:"h-3.5 w-3.5 text-primary"})}),e.jsx("span",{className:"text-xs font-semibold text-primary uppercase tracking-widest",children:"Enterprise Demo"})]}),e.jsx("h2",{className:"text-2xl font-bold mb-1.5",children:"See XpediOo in Action"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Get a personalized walkthrough of the AI platform built for your industry. No commitment, no pressure."})]}),e.jsxs("form",{onSubmit:P,className:"px-8 py-6 space-y-5",children:[e.jsx("input",{ref:A,type:"text",name:"_hp",tabIndex:-1,autoComplete:"off","aria-hidden":"true",style:{position:"absolute",left:"-9999px",width:"1px",height:"1px",opacity:0}}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs(Fi,{label:"First Name",required:!0,children:[e.jsx("input",{type:"text",placeholder:"Jane",value:r.firstName,onChange:R("firstName"),className:ie(bs,x.firstName&&"border-red-500/60 ring-red-500/20")}),x.firstName&&e.jsx("span",{className:"text-xs text-red-500",children:x.firstName})]}),e.jsxs(Fi,{label:"Last Name",required:!0,children:[e.jsx("input",{type:"text",placeholder:"Smith",value:r.lastName,onChange:R("lastName"),className:ie(bs,x.lastName&&"border-red-500/60 ring-red-500/20")}),x.lastName&&e.jsx("span",{className:"text-xs text-red-500",children:x.lastName})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs(Fi,{label:"Work Email",required:!0,children:[e.jsx("input",{type:"email",placeholder:"[email protected]",value:r.workEmail,onChange:R("workEmail"),className:ie(bs,x.workEmail&&"border-red-500/60 ring-red-500/20")}),x.workEmail&&e.jsx("span",{className:"text-xs text-red-500",children:x.workEmail})]}),e.jsx(Fi,{label:"Phone",children:e.jsx("input",{type:"tel",placeholder:"+1 (555) 000-0000",value:r.phone,onChange:R("phone"),className:bs})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs(Fi,{label:"Company",required:!0,children:[e.jsx("input",{type:"text",placeholder:"Acme Corporation",value:r.company,onChange:R("company"),className:ie(bs,x.company&&"border-red-500/60 ring-red-500/20")}),x.company&&e.jsx("span",{className:"text-xs text-red-500",children:x.company})]}),e.jsx(Fi,{label:"Company Size",children:e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r.companySize,onChange:R("companySize"),className:uf,children:[e.jsx("option",{value:"",children:"Select size"}),W_.map(V=>e.jsx("option",{value:V,children:V},V))]}),e.jsx("span",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground text-xs",children:"▾"})]})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsx(Fi,{label:"Your Role",required:!0,children:e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:r.role,onChange:R("role"),className:ie(uf,x.role&&"border-red-500/60 ring-red-500/20"),children:[e.jsx("option",{value:"",children:"Select role"}),$_.map(V=>e.jsx("option",{value:V,children:V},V))]}),e.jsx("span",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground text-xs",children:"▾"}),x.role&&e.jsx("span",{className:"text-xs text-red-500 mt-1 block",children:x.role})]})}),e.jsx(Fi,{label:"Product Interest",children:e.jsxs("div",{className:"relative",ref:T,children:[e.jsxs("button",{type:"button",onClick:()=>I(V=>!V),className:ie(uf,"text-left flex items-center justify-between",k&&"ring-2 ring-primary/40 border-primary/60"),children:[e.jsx("span",{className:r.products.length===0?"text-muted-foreground":"text-foreground",children:r.products.length===0?"Select products":r.products.length===1?r.products[0]:`${r.products.length} products selected`}),e.jsx("span",{className:"text-muted-foreground text-xs ml-2 shrink-0",children:"▾"})]}),k&&e.jsxs("div",{className:"absolute z-50 left-0 right-0 mt-1 rounded-lg border border-border bg-background shadow-xl overflow-hidden",children:[e.jsx("div",{className:"max-h-52 overflow-y-auto py-1",children:X_.map(V=>{const D=r.products.includes(V);return e.jsxs("label",{className:ie("flex items-center gap-2.5 px-3 py-2 text-sm cursor-pointer transition-colors select-none",D?"bg-primary/8 text-foreground":"hover:bg-muted text-foreground"),children:[e.jsx("span",{className:ie("h-4 w-4 roun
17ded shrink-0 border flex items-center justify-center transition-colors",D?"bg-primary border-primary":"border-border bg-background"),onClick:()=>E(V),children:D&&e.jsx("svg",{className:"h-2.5 w-2.5 text-white",viewBox:"0 0 10 10",fill:"none",children:e.jsx("path",{d:"M1.5 5l2.5 2.5 4.5-4.5",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})})}),e.jsx("span",{onClick:()=>E(V),children:V})]},V)})}),r.products.length>0&&e.jsxs("div",{className:"border-t border-border px-3 py-2 flex items-center justify-between",children:[e.jsxs("span",{className:"text-xs text-muted-foreground",children:[r.products.length," selected"]}),e.jsx("button",{type:"button",onClick:()=>s(V=>({...V,products:[]})),className:"text-xs text-primary hover:underline",children:"Clear all"})]})]})]})})]}),e.jsx(Fi,{label:"Anything else we should know?",children:e.jsx("textarea",{placeholder:"Tell us about your current challenges or what you'd like to see in the demo…",value:r.message,onChange:R("message"),rows:3,className:ie(bs,"resize-none")})}),w&&e.jsx("div",{className:"rounded-lg border border-red-500/30 bg-red-500/10 px-4 py-3 text-sm text-red-500",children:w}),e.jsxs("div",{className:"pt-1 flex flex-col gap-3",children:[e.jsx(ve,{type:"submit",disabled:g,className:"w-full h-11 bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_20px_rgba(159,24,255,0.3)] hover:shadow-[0_0_35px_rgba(159,24,255,0.5)] transition-all duration-300 font-semibold text-base",children:g?e.jsxs(e.Fragment,{children:[e.jsx(Wt,{className:"mr-2 h-4 w-4 animate-spin"}),"Submitting…"]}):e.jsxs(e.Fragment,{children:["Request My Demo",e.jsx(Te,{className:"ml-2 h-4 w-4"})]})}),e.jsxs("p",{className:"text-center text-xs text-muted-foreground",children:["By submitting, you agree to our"," ",e.jsx("span",{className:"underline cursor-pointer hover:text-foreground transition-colors",children:"Privacy Policy"}),"."," ","No spam, ever."]})]})]})]},"form")})]})},"modal")]})})}const I4=y.createContext(null);function Y_({children:t}){const[a,r]=y.useState(!1),s=y.useCallback(()=>r(!0),[]),l=y.useCallback(()=>r(!1),[]),d=y.useCallback(()=>r(u=>!u),[]);return e.jsx(I4.Provider,{value:{open:a,openSearch:s,closeSearch:l,toggleSearch:d},children:t})}function C4(){const t=y.useContext(I4);if(!t)throw new Error("useSearch must be used inside SearchProvider");return t}var R2=1,Q_=.9,Z_=.8,J_=.17,mf=.1,pf=.999,ez=.9999,tz=.99,az=/[\\\/_+.#"@\[\(\{&]/,iz=/[\\\/_+.#"@\[\(\{&]/g,nz=/[\s-]/,M4=/[\s-]/g;function Cg(t,a,r,s,l,d,u){if(d===a.length)return l===t.length?R2:tz;var p=`${l},${d}`;if(u[p]!==void 0)return u[p];for(var g=s.charAt(d),h=r.indexOf(g,l),x=0,b,w,N,A;h>=0;)b=Cg(t,a,r,s,h+1,d+1,u),b>x&&(h===l?b*=R2:az.test(t.charAt(h-1))?(b*=Z_,N=t.slice(l,h-1).match(iz),N&&l>0&&(b*=Math.pow(pf,N.length))):nz.test(t.charAt(h-1))?(b*=Q_,A=t.slice(l,h-1).match(M4),A&&l>0&&(b*=Math.pow(pf,A.length))):(b*=J_,l>0&&(b*=Math.pow(pf,h-l))),t.charAt(h)!==a.charAt(d)&&(b*=ez)),(b<mf&&r.charAt(h-1)===s.charAt(d+1)||s.charAt(d+1)===s.charAt(d)&&r.charAt(h-1)!==s.charAt(d))&&(w=Cg(t,a,r,s,h+1,d+2,u),w*mf>b&&(b=w*mf)),b>x&&(x=b),h=r.indexOf(g,h+1);return u[p]=x,x}function P2(t){return t.toLowerCase().replace(M4," ")}function rz(t,a,r){return t=r&&r.length>0?`${t+" "+r.join(" ")}`:t,Cg(t,a,P2(t),P2(a),0,0,{})}var hf="focusScope.autoFocusOnMount",ff="focusScope.autoFocusOnUnmount",O2={bubbles:!1,cancelable:!0},sz="FocusScope",T4=y.forwardRef((t,a)=>{const{loop:r=!1,trapped:s=!1,onMountAutoFocus:l,onUnmountAutoFocus:d,...u}=t,[p,g]=y.useState(null),h=Ka(l),x=Ka(d),b=y.useRef(null),w=Bt(a,k=>g(k)),N=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(s){let k=function(R){if(N.paused||!p)return;const C=R.target;p.contains(C)?b.current=C:In(b.current,{select:!0})},I=function(R){if(N.paused||!p)return;const C=R.relatedTarget;C!==null&&(p.contains(C)||In(b.current,{select:!0}))},T=function(R){if(document.activeElement===document.body)for(const P of R)P.removedNodes.length>0&&In(p)};document.addEventListener("focusin",k),document.addEventListener("focusout",I);const E=new MutationObserver(T);return p&&E.observe(p,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",k),document.removeEventListener("focusout",I),E.disconnect()}}},[s,p,N.paused]),y.useEffect(()=>{if(p){L2.add(N);const k=document.activeElement;
vendor: 17,536 bytes, lines 17-57
17if(!p.contains(k)){const T=new CustomEvent(hf,O2);p.addEventListener(hf,h),p.dispatchEvent(T),T.defaultPrevented||(oz(mz(E4(p)),{select:!0}),document.activeElement===k&&In(p))}return()=>{p.removeEventListener(hf,h),setTimeout(()=>{const T=new CustomEvent(ff,O2);p.addEventListener(ff,x),p.dispatchEvent(T),T.defaultPrevented||In(k??document.body,{select:!0}),p.removeEventListener(ff,x),L2.remove(N)},0)}}},[p,h,x,N]);const A=y.useCallback(k=>{if(!r&&!s||N.paused)return;const I=k.key==="Tab"&&!k.altKey&&!k.ctrlKey&&!k.metaKey,T=document.activeElement;if(I&&T){const E=k.currentTarget,[R,C]=lz(E);R&&C?!k.shiftKey&&T===C?(k.preventDefault(),r&&In(R,{select:!0})):k.shiftKey&&T===R&&(k.preventDefault(),r&&In(C,{select:!0})):T===E&&k.preventDefault()}},[r,s,N.paused]);return e.jsx(qe.div,{tabIndex:-1,...u,ref:w,onKeyDown:A})});T4.displayName=sz;function oz(t,{select:a=!1}={}){const r=document.activeElement;for(const s of t)if(In(s,{select:a}),document.activeElement!==r)return}function lz(t){const a=E4(t),r=D2(a,t),s=D2(a.reverse(),t);return[r,s]}function E4(t){const a=[],r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:s=>{const l=s.tagName==="INPUT"&&s.type==="hidden";return s.disabled||s.hidden||l?NodeFilter.FILTER_SKIP:s.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)a.push(r.currentNode);return a}function D2(t,a){for(const r of t)if(!cz(r,{upTo:a}))return r}function cz(t,{upTo:a}){if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(a!==void 0&&t===a)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1}function dz(t){return t instanceof HTMLInputElement&&"select"in t}function In(t,{select:a=!1}={}){if(t&&t.focus){const r=document.activeElement;t.focus({preventScroll:!0}),t!==r&&dz(t)&&a&&t.select()}}var L2=uz();function uz(){let t=[];return{add(a){const r=t[0];a!==r&&r?.pause(),t=V2(t,a),t.unshift(a)},remove(a){t=V2(t,a),t[0]?.resume()}}}function V2(t,a){const r=[...t],s=r.indexOf(a);return s!==-1&&r.splice(s,1),r}function mz(t){return t.filter(a=>a.tagName!=="A")}var Td=0,vs=null;function pz(){y.useEffect(()=>{vs||(vs={start:_2(),end:_2()});const{start:t,end:a}=vs;return document.body.firstElementChild!==t&&document.body.insertAdjacentElement("afterbegin",t),document.body.lastElementChild!==a&&document.body.insertAdjacentElement("beforeend",a),Td++,()=>{Td===1&&(vs?.start.remove(),vs?.end.remove(),vs=null),Td=Math.max(0,Td-1)}},[])}function _2(){const t=document.createElement("span");return t.setAttribute("data-radix-focus-guard",""),t.tabIndex=0,t.style.outline="none",t.style.opacity="0",t.style.position="fixed",t.style.pointerEvents="none",t}var pi=function(){return pi=Object.assign||function(a){for(var r,s=1,l=arguments.length;s<l;s++){r=arguments[s];for(var d in r)Object.prototype.hasOwnProperty.call(r,d)&&(a[d]=r[d])}return a},pi.apply(this,arguments)};function R4(t,a){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&a.indexOf(s)<0&&(r[s]=t[s]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var l=0,s=Object.getOwnPropertySymbols(t);l<s.length;l++)a.indexOf(s[l])<0&&Object.prototype.propertyIsEnumerable.call(t,s[l])&&(r[s[l]]=t[s[l]]);return r}function hz(t,a,r){if(r||arguments.length===2)for(var s=0,l=a.length,d;s<l;s++)(d||!(s in a))&&(d||(d=Array.prototype.slice.call(a,0,s)),d[s]=a[s]);return t.concat(d||Array.prototype.slice.call(a))}var iu="right-scroll-bar-position",nu="width-before-scroll-bar",fz="with-scroll-bars-hidden",gz="--removed-body-scroll-bar-size";function gf(t,a){return typeof t=="function"?t(a):t&&(t.current=a),t}function xz(t,a){var r=y.useState(function(){return{value:t,callback:a,facade:{get current(){return r.value},set current(s){var l=r.value;l!==s&&(r.value=s,r.callback(s,l))}}}})[0];return r.callback=a,r.facade}var yz=typeof window<"u"?y.useLayoutEffect:y.useEffect,z2=new WeakMap;function bz(t,a){var r=xz(null,function(s){return t.forEach(function(l){return gf(l,s)})});return yz(function(){var s=z2.get(r);if(s){var l=new Set(s),d=new Set(t),u=r.current;l.forEach(function(p){d.has(p)||gf(p,null)}),d.forEach(function(p){l.has(p)||gf(p,u)})}z2.set(r,t)},[t]),r}function vz(t){return t}function wz(t,a){a===void 0&&(a=vz);var r=[],s=!1,l={read:function(){if(s)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:t},useMedium:function(d){var u=a(d,s);return r.push(u),function(){r=r.filter(function(p){return p!==u})}},assignSyncMedium:function(d){for(s=!0;r.length;){var u=r;r=[],u.forEach(d)}r={push:function(p){return d(p)},filter:function(){return r}}},assignMedium:function(d){s=!0;var u=[];if(r.length){var p=r;r=[],p.forEach(d),u=r}var g=function(){var x=u;u=[],x.forEach(d)},h=function(){return Promise.resolve().then(g)};h(),r={push:function(x){u.push(x),h()},filter:function(x){return u=u.filter(x),r}}}};return l}function jz(t){t===void 0&&(t={});var a=wz(null);return a.options=pi({async:!0,ssr:!1},t),a}var P4=function(t){var a=t.sideCar,r=R4(t,["sideCar"]);if(!a)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var s=a.read();if(!s)throw new Error("Sidecar medium not found");return y.createElement(s,pi({},r))};P4.isSideCarExport=!0;function Nz(t,a){return t.useMedium(a),P4}var O4=jz(),xf=function(){},sm=y.forwardRef(function(t,a){var r=y.useRef(null),s=y.useState({onScrollCapture:xf,onWheelCapture:xf,onTouchMoveCapture:xf}),l=s[0],d=s[1],u=t.forwardProps,p=t.children,g=t.className,h=t.removeScrollBar,x=t.enabled,b=t.shards,w=t.sideCar,N=t.noRelative,A=t.noIsolation,k=t.inert,I=t.allowPinchZoom,T=t.as,E=T===void 0?"div":T,R=t.gapMode,C=R4(t,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),P=w,z=bz([r,a]),V=pi(pi({},C),l);return y.createElement(y.Fragment,null,x&&y.createElement(P,{sideCar:O4,removeScrollBar:h,shards:b,noRelative:N,noIsolation:A,inert:k,setCallbacks:d,allowPinchZoom:!!I,lockRef:r,gapMode:R}),u?y.cloneElement(y.Children.only(p),pi(pi({},V),{ref:z})):y.createElement(E,pi({},V,{className:g,ref:z}),p))});sm.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};sm.classNames={fullWidth:nu,zeroRight:iu};var Az=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function kz(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var a=Az();return a&&t.setAttribute("nonce",a),t}function Sz(t,a){t.styleSheet?t.styleSheet.cssText=a:t.appendChild(document.createTextNode(a))}function Iz(t){var a=document.head||document.getElementsByTagName("head")[0];a.appendChild(t)}var Cz=function(){var t=0,a=null;return{add:function(r){t==0&&(a=kz())&&(Sz(a,r),Iz(a)),t++},remove:function(){t--,!t&&a&&(a.parentNode&&a.parentNode.removeChild(a),a=null)}}},Mz=function(){var t=Cz();return function(a,r){y.useEffect(function(){return t.add(a),function(){t.remove()}},[a&&r])}},D4=function(){var t=Mz(),a=function(r){var s=r.styles,l=r.dynamic;return t(s,l),null};return a},Tz={left:0,top:0,right:0,gap:0},yf=function(t){return parseInt(t||"",10)||0},Ez=function(t){var a=window.getComputedStyle(document.body),r=a[t==="padding"?"paddingLeft":"marginLeft"],s=a[t==="padding"?"paddingTop":"marginTop"],l=a[t==="padding"?"paddingRight":"marginRight"];return[yf(r),yf(s),yf(l)]},Rz=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return Tz;var a=Ez(t),r=document.documentElement.clientWidth,s=window.innerWidth;return{left:a[0],top:a[1],right:a[2],gap:Math.max(0,s-r+a[2]-a[0])}},Pz=D4(),Hs="data-scroll-locked",Oz=function(t,a,r,s){var l=t.left,d=t.top,u=t.right,p=t.gap;return r===void 0&&(r="margin"),`
18  .`.concat(fz,` {
19   overflow: hidden `).concat(s,`;
20   padding-right: `).concat(p,"px ").concat(s,`;
21  }
22  body[`).concat(Hs,`] {
23    overflow: hidden `).concat(s,`;
24    overscroll-behavior: contain;
25    `).concat([a&&"position: relative ".concat(s,";"),r==="margin"&&`
26    padding-left: `.concat(l,`px;
27    padding-top: `).concat(d,`px;
28    padding-right: `).concat(u,`px;
29    margin-left:0;
30    margin-top:0;
31    margin-right: `).concat(p,"px ").concat(s,`;
32    `),r==="padding"&&"padding-right: ".concat(p,"px ").concat(s,";")].filter(Boolean).join(""),`
33  }
34  
35  .`).concat(iu,` {
36    right: `).concat(p,"px ").concat(s,`;
37  }
38  
39  .`).concat(nu,` {
40    margin-right: `).concat(p,"px ").concat(s,`;
41  }
42  
43  .`).concat(iu," .").concat(iu,` {
44    right: 0 `).concat(s,`;
45  }
46  
47  .`).concat(nu," .").concat(nu,` {
48    margin-right: 0 `).concat(s,`;
49  }
50  
51  body[`).concat(Hs,`] {
52    `).concat(gz,": ").concat(p,`px;
53  }
54`)},q2=function(){var t=parseInt(document.body.getAttribute(Hs)||"0",10);return isFinite(t)?t:0},Dz=function(){y.useEffect(function(){return document.body.setAttribute(Hs,(q2()+1).toString()),function(){var t=q2()-1;t<=0?document.body.removeAttribute(Hs):document.body.setAttribute(Hs,t.toString())}},[])},Lz=function(t){var a=t.noRelative,r=t.noImportant,s=t.gapMode,l=s===void 0?"margin":s;Dz();var d=y.useMemo(function(){return Rz(l)},[l]);return y.createElement(Pz,{styles:Oz(d,!a,l,r?"":"!important")})},Mg=!1;if(typeof window<"u")try{var Ed=Object.defineProperty({},"passive",{get:function(){return Mg=!0,!0}});window.addEventListener("test",Ed,Ed),window.removeEventListener("test",Ed,Ed)}catch{Mg=!1}var ws=Mg?{passive:!1}:!1,Vz=function(t){return t.tagName==="TEXTAREA"},L4=function(t,a){if(!(t instanceof Element))return!1;var r=window.getComputedStyle(t);return r[a]!=="hidden"&&!(r.overflowY===r.overflowX&&!Vz(t)&&r[a]==="visible")},_z=function(t){return L4(t,"overflowY")},zz=function(t){return L4(t,"overflowX")},F2=function(t,a){var r=a.ownerDocument,s=a;do{typeof ShadowRoot<"u"&&s instanceof ShadowRoot&&(s=s.host);var l=V4(t,s);if(l){var d=_4(t,s),u=d[1],p=d[2];if(u>p)return!0}s=s.parentNode}while(s&&s!==r.body);return!1},qz=function(t){var a=t.scrollTop,r=t.scrollHeight,s=t.clientHeight;return[a,r,s]},Fz=function(t){var a=t.scrollLeft,r=t.scrollWidth,s=t.clientWidth;return[a,r,s]},V4=function(t,a){return t==="v"?_z(a):zz(a)},_4=function(t,a){return t==="v"?qz(a):Fz(a)},Bz=function(t,a){return t==="h"&&a==="rtl"?-1:1},Hz=function(t,a,r,s,l){var d=Bz(t,window.getComputedStyle(a).direction),u=d*s,p=r.target,g=a.contains(p),h=!1,x=u>0,b=0,w=0;do{if(!p)break;var N=_4(t,p),A=N[0],k=N[1],I=N[2],T=k-I-d*A;(A||T)&&V4(t,p)&&(b+=T,w+=A);var E=p.parentNode;p=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!g&&p!==document.body||g&&(a.contains(p)||a===p));return(x&&Math.abs(b)<1||!x&&Math.abs(w)<1)&&(h=!0),h},Rd=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]},B2=function(t){return[t.deltaX,t.deltaY]},H2=function(t){return t&&"current"in t?t.current:t},Gz=function(t,a){return t[0]===a[0]&&t[1]===a[1]},Uz=function(t){return`
55  .block-interactivity-`.concat(t,` {pointer-events: none;}
56  .allow-interactivity-`).concat(t,` {pointer-events: all;}
57`)},Xz=0,js=[];function $z(t){var a=y.useRef([]),r=y.useRef([0,0]),s=y.useRef(),l=y.useState(Xz++)[0],d=y.useState(D4)[0],u=y.useRef(t);y.useEffect(function(){u.current=t},[t]),y.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(l));var k=hz([t.lockRef.current],(t.shards||[]).map(H2),!0).filter(Boolean);return k.forEach(function(I){return I.classList.add("allow-interactivity-".concat(l))}),function(){document.body.classList.remove("block-interactivity-".concat(l)),k.forEach(function(I){return I.classList.remove("allow-interactivity-".concat(l))})}}},[t.inert,t.lockRef.current,t.shards]);var p=y.useCallback(function(k,I){if("touches"in k&&k.touches.length===2||k.type==="wheel"&&k.ctrlKey)return!u.current.allowPinchZoom;var T=Rd(k),E=r.current,R="deltaX"in k?k.deltaX:E[0]-T[0],C="deltaY"in k?k.deltaY:E[1]-T[1],P,z=k.target,V=Math.abs(R)>Math.abs(C)?"h":"v";if("touches"in k&&V==="h"&&z.type==="range")return!1;var D=window.getSelection(),K=D&&D.anchorNode,ne=K?K===z||K.contains(z):!1;if(ne)return!1;var le=F2(V,z);if(!le)return!0;if(le?P=V:(P=V==="v"?"h":"v",le=F2(V,z)),!le)return!1;if(!s.current&&"changedTouches"in k&&(R||C)&&(s.current=P),!P)return!0;var ce=s.current||P;return Hz(ce,I,k,ce==="h"?R:C)},[]),g=y.useCallback(function(k){var I=k;if(!(!js.length||js[js.length-1]!==d)){var T="deltaY"in I?B2(I):Rd(I),E=a.current.filter(function(P){return P.name===I.type&&(P.target===I.target||I.target===P.shadowParent)&&Gz(P.delta,T)})[0];if(E&&E.should){I.cancelable&&I.preventDefault();return}if(!E){var R=(u.current.shards||[]).map(H2).filter(Boolean).filter(function(P){return P.contains(I.target)}),C=R.length>0?p(I,R[0]):!u.current.noIsolation;C&&I.cancelable&&I.preventDefault()}}},[]),h=y.useCallback(function(k,I,T,E){var R={name:k,delta:I,target:T,should:E,shadowParent:Wz(T)};a.current.push(R),setTimeout(function(){a.current=a.current.filter(function(C){return C!==R})},1)},[]),x=y.useCallback(function(k){r.current=Rd(k),s.current=void 0},[]),b=y.useCallback(function(k){h(k.type,B2(k),k.target,p(k,t.lockRef.current))},[]),w=y.useCallback(function(k){h(k.type,Rd(k),k.target,p(k,t.lockRef.current))},[]);y.useEffect(function(){return js.push(d),t.setCallbacks({onScrollCapture:b,onWheelCapture:b,onTouchMoveCapture:w}),document.addEventListener("wheel",g,ws),document.addEventListener("touchmove",g,ws),document.addEventListener("touchstart",x,ws),function(){js=js.filter(function(k){return k!==d}),document.removeEventListener("wheel",g,ws),document.removeEventListener("touchmove",g,ws),document.removeEventListener("touchstart",x,ws)}},[]);var N=t.removeScrollBar,A=t.inert;return y.createElement(y.Fragment,null,A?y.createElement(d,{styles:Uz(l)}):null,N?y.createElement(Lz,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function Wz(t){for(var a=null;t!==null;)t instanceof ShadowRoot&&(a=t.host,t=t.host),t=t.parentNode;return a}const Kz=Nz(O4,$z);var z4=y.forwardRef(function(t,a){return y.createElement(sm,pi({},t,{ref:a,sideCar:Kz}))});z4.classNames=sm.classNames;var Yz=function(t){if(typeof document>"u")return null;var a=Array.isArray(t)?t[0]:t;return a.ownerDocument.body},Ns=new WeakMap,Pd=new WeakMap,Od={},bf=0,q4=function(t){return t&&(t.host||q4(t.parentNode))},Qz=function(t,a){return a.map(function(r){if(t.contains(r))return r;var s=q4(r);return s&&t.contains(s)?s:(console.error("aria-hidden",r,"in not contained inside",t,". Doing nothing"),null)}).filter(function(r){return!!r})},Zz=function(t,a,r,s){var l=Qz(a,Array.isArray(t)?t:[t]);Od[r]||(Od[r]=new WeakMap);var d=Od[r],u=[],p=new Set,g=new Set(l),h=function(b){!b||p.has(b)||(p.add(b),h(b.parentNode))};l.forEach(h);var x=function(b){!b||g.has(b)||Array.prototype.forEach.call(b.children,function(w){if(p.has(w))x(w);else try{var N=w.getAttribute(s),A=N!==null&&N!=="false",k=(Ns.get(w)||0)+1,I=(d.get(w)||0)+1;Ns.set(w,k),d.set(w,I),u.push(w),k===1&&A&&Pd.set(w,!0),I===1&&w.setAttribute(r,"true"),A||w.setAttribute(s,"true")}catch(T){console.error("aria-hidden: cannot operate on ",w,T)}})};return x(a),p.clear(),bf++,function(){u.forEach(function(b){var w=Ns.get(b)-1,N=d.get(b)-1;Ns.set(b,w),d.set(b,N),w||(Pd.has(b)||b.removeAttribute(s),Pd.delete(b)),N||b.removeAttribute(r)}),bf--,bf||(Ns=new WeakMap,Ns=new WeakMap,Pd=new WeakMap,Od={})}},Jz=function(t,a,r){r===void 0&&(r="data-aria-hidden");var s=Array.from(Array.isArray(t)?t:[t]),l=Yz(t);return l?(s.push.apply(s,Array.from(l.querySelectorAll("[aria-live], script"))),Zz(s,l,r,"aria-hidden")):function(){return null}},om="Dialog",[F4]=Ir(om),[eq,ti]=F4(om),Hx=t=>{const{__scopeDialog:a,children:r,open:s,defaultOpen:l,onOpenChange:d,modal:u=!0}=t,p=y.useRef(null),g=y.useRef(null),[h,x]=zu({prop:s,defaultProp:l??!1,onChange:d,caller:om});return e.jsx(eq,{scope:a,triggerRef:p,contentRef:g,contentId:$a(),titleId:$a(),descriptionId:$a(),open:h,onOpenChange:x,onOpenToggle:y.useCallback(()=>x(b=>!b),[x]),modal:u,children:r})};Hx.displayName=om;var B4="DialogTrigger",tq=y.forwardRef((t,a)=>{const{__scopeDialog:r,...s}=t,l=ti(B4,r),d=Bt(a,l.triggerRef);return e.jsx(qe.button,{type:"button","aria-haspopup":"dialog","aria-expanded":l.open,"aria-controls":l.open?l.contentId:void 0,"data-state":Wx(l.open),...s,ref:d,onClick:He(t.onClick,l.onOpenToggle)})});tq.displayName=B4;var Gx="DialogPortal",[aq,H4]=F4(Gx,{forceMount:void 0}),Ux=t=>{const{__scopeDialog:a,forceMount:r,children:s,container:l}=t,d=ti(Gx,a);return e.jsx(aq,{scope:a,forceMount:r,children:y.Children.map(s,u=>e.jsx(Vn,{present:r||d.open,children:e.jsx(_u,{asChild:!0,container:l,children:u})}))})};Ux.displayName=Gx;var Cu="DialogOverlay",lm=y.forwardRef((t,a)=>{const r=H4(Cu,t.__scopeDialog),{forceMount:s=r.forceMount,...l}=t,d=ti(Cu,t.__scopeDialog);return d.modal?e.jsx(Vn,{present:s||d.open,children:e.jsx(nq,{...l,ref:a})}):null});lm.displayName=Cu;var iq=Ol("DialogOverlay.RemoveScroll"),nq=y.forwardRef((t,a)=>{const{__scopeDialog:r,...s}=t,l=ti(Cu,r),d=V6(),u=Bt(a,d);return e.jsx(z4,{as:iq,allowPinchZoom:!0,shards:[l.contentRef],children:e.jsx(qe.div,{"data-state":Wx(l.open),...s,ref:u,style:{pointerEvents:"auto",...s.style}})})}),Qs="DialogContent",cm=y.forwardRef((t,a)=>{const r=H4(Qs,t.__scopeDialog),{forceMount:s=r.forceMount,...l}=t,d=ti(Qs,t.__scopeDialog);return e.jsx(Vn,{present:s||d.open,children:d.modal?e.jsx(rq,{...l,ref:a}):e.jsx(sq,{...l,ref:a})})});cm.displayName=Qs;var rq=y.forwardRef((t,a)=>{const r=ti(Qs,t.__scopeDialog),s=y.useRef(null),l=Bt(a,r.contentRef,s);return y.useEffect(()=>{const d=s.current;
vendor: 13,865 bytes, line 57
57if(d)return Jz(d)},[]),e.jsx(G4,{...t,ref:l,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:He(t.onCloseAutoFocus,d=>{d.preventDefault(),r.triggerRef.current?.focus()}),onPointerDownOutside:He(t.onPointerDownOutside,d=>{const u=d.detail.originalEvent,p=u.button===0&&u.ctrlKey===!0;(u.button===2||p)&&d.preventDefault()}),onFocusOutside:He(t.onFocusOutside,d=>d.preventDefault())})}),sq=y.forwardRef((t,a)=>{const r=ti(Qs,t.__scopeDialog),s=y.useRef(!1),l=y.useRef(!1);return e.jsx(G4,{...t,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:d=>{t.onCloseAutoFocus?.(d),d.defaultPrevented||(s.current||r.triggerRef.current?.focus(),d.preventDefault()),s.current=!1,l.current=!1},onInteractOutside:d=>{t.onInteractOutside?.(d),d.defaultPrevented||(s.current=!0,d.detail.originalEvent.type==="pointerdown"&&(l.current=!0));const u=d.target;r.triggerRef.current?.contains(u)&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&l.current&&d.preventDefault()}})}),G4=y.forwardRef((t,a)=>{const{__scopeDialog:r,trapFocus:s,onOpenAutoFocus:l,onCloseAutoFocus:d,...u}=t,p=ti(Qs,r);return pz(),e.jsx(e.Fragment,{children:e.jsx(T4,{asChild:!0,loop:!0,trapped:s,onMountAutoFocus:l,onUnmountAutoFocus:d,children:e.jsx(Vu,{role:"dialog",id:p.contentId,"aria-describedby":p.descriptionId,"aria-labelledby":p.titleId,"data-state":Wx(p.open),...u,ref:a,deferPointerDownOutside:!0,onDismiss:()=>p.onOpenChange(!1)})})})}),U4="DialogTitle",Xx=y.forwardRef((t,a)=>{const{__scopeDialog:r,...s}=t,l=ti(U4,r);return e.jsx(qe.h2,{id:l.titleId,...s,ref:a})});Xx.displayName=U4;var X4="DialogDescription",$x=y.forwardRef((t,a)=>{const{__scopeDialog:r,...s}=t,l=ti(X4,r);return e.jsx(qe.p,{id:l.descriptionId,...s,ref:a})});$x.displayName=X4;var $4="DialogClose",W4=y.forwardRef((t,a)=>{const{__scopeDialog:r,...s}=t,l=ti($4,r);return e.jsx(qe.button,{type:"button",...s,ref:a,onClick:He(t.onClick,()=>l.onOpenChange(!1))})});W4.displayName=$4;function Wx(t){return t?"open":"closed"}var ul='[cmdk-group=""]',vf='[cmdk-group-items=""]',oq='[cmdk-group-heading=""]',K4='[cmdk-item=""]',G2=`${K4}:not([aria-disabled="true"])`,Tg="cmdk-item-select",Es="data-value",lq=(t,a,r)=>rz(t,a,r),Y4=y.createContext(void 0),ec=()=>y.useContext(Y4),Q4=y.createContext(void 0),Kx=()=>y.useContext(Q4),Z4=y.createContext(void 0),J4=y.forwardRef((t,a)=>{let r=Rs(()=>{var F,Y;return{search:"",value:(Y=(F=t.value)!=null?F:t.defaultValue)!=null?Y:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),s=Rs(()=>new Set),l=Rs(()=>new Map),d=Rs(()=>new Map),u=Rs(()=>new Set),p=e3(t),{label:g,children:h,value:x,onValueChange:b,filter:w,shouldFilter:N,loop:A,disablePointerSelection:k=!1,vimBindings:I=!0,...T}=t,E=$a(),R=$a(),C=$a(),P=y.useRef(null),z=bq();kr(()=>{if(x!==void 0){let F=x.trim();r.current.value=F,V.emit()}},[x]),kr(()=>{z(6,ye)},[]);let V=y.useMemo(()=>({subscribe:F=>(u.current.add(F),()=>u.current.delete(F)),snapshot:()=>r.current,setState:(F,Y,re)=>{var W,te,je,ke;if(!Object.is(r.current[F],Y)){if(r.current[F]=Y,F==="search")ce(),ne(),z(1,le);else if(F==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Se=document.getElementById(C);Se?Se.focus():(W=document.getElementById(E))==null||W.focus()}if(z(7,()=>{var Se;r.current.selectedItemId=(Se=se())==null?void 0:Se.id,V.emit()}),re||z(5,ye),((te=p.current)==null?void 0:te.value)!==void 0){let Se=Y??"";(ke=(je=p.current).onValueChange)==null||ke.call(je,Se);return}}V.emit()}},emit:()=>{u.current.forEach(F=>F())}}),[]),D=y.useMemo(()=>({value:(F,Y,re)=>{var W;Y!==((W=d.current.get(F))==null?void 0:W.value)&&(d.current.set(F,{value:Y,keywords:re}),r.current.filtered.items.set(F,K(Y,re)),z(2,()=>{ne(),V.emit()}))},item:(F,Y)=>(s.current.add(F),Y&&(l.current.has(Y)?l.current.get(Y).add(F):l.current.set(Y,new Set([F]))),z(3,()=>{ce(),ne(),r.current.value||le(),V.emit()}),()=>{d.current.delete(F),s.current.delete(F),r.current.filtered.items.delete(F);let re=se();z(4,()=>{ce(),re?.getAttribute("id")===F&&le(),V.emit()})}),group:F=>(l.current.has(F)||l.current.set(F,new Set),()=>{d.current.delete(F),l.current.delete(F)}),filter:()=>p.current.shouldFilter,label:g||t["aria-label"],getDisablePointerSelection:()=>p.current.disablePointerSelection,listId:E,inputId:C,labelId:R,listInnerRef:P}),[]);function K(F,Y){var re,W;let te=(W=(re=p.current)==null?void 0:re.filter)!=null?W:lq;return F?te(F,r.current.search,Y):0}function ne(){if(!r.current.search||p.current.shouldFilter===!1)return;let F=r.current.filtered.items,Y=[];r.current.filtered.groups.forEach(W=>{let te=l.current.get(W),je=0;te.forEach(ke=>{let Se=F.get(ke);je=Math.max(Se,je)}),Y.push([W,je])});let re=P.current;ue().sort((W,te)=>{var je,ke;let Se=W.getAttribute("id"),la=te.getAttribute("id");return((je=F.get(la))!=null?je:0)-((ke=F.get(Se))!=null?ke:0)}).forEach(W=>{let te=W.closest(vf);te?te.appendChild(W.parentElement===te?W:W.closest(`${vf} > *`)):re.appendChild(W.parentElement===re?W:W.closest(`${vf} > *`))}),Y.sort((W,te)=>te[1]-W[1]).forEach(W=>{var te;let je=(te=P.current)==null?void 0:te.querySelector(`${ul}[${Es}="${encodeURIComponent(W[0])}"]`);je?.parentElement.appendChild(je)})}function le(){let F=ue().find(re=>re.getAttribute("aria-disabled")!=="true"),Y=F?.getAttribute(Es);V.setState("value",Y||void 0)}function ce(){var F,Y,re,W;if(!r.current.search||p.current.shouldFilter===!1){r.current.filtered.count=s.current.size;return}r.current.filtered.groups=new Set;let te=0;for(let je of s.current){let ke=(Y=(F=d.current.get(je))==null?void 0:F.value)!=null?Y:"",Se=(W=(re=d.current.get(je))==null?void 0:re.keywords)!=null?W:[],la=K(ke,Se);r.current.filtered.items.set(je,la),la>0&&te++}for(let[je,ke]of l.current)for(let Se of ke)if(r.current.filtered.items.get(Se)>0){r.current.filtered.groups.add(je);break}r.current.filtered.count=te}function ye(){var F,Y,re;let W=se();W&&(((F=W.parentElement)==null?void 0:F.firstChild)===W&&((re=(Y=W.closest(ul))==null?void 0:Y.querySelector(oq))==null||re.scrollIntoView({block:"nearest"})),W.scrollIntoView({block:"nearest"}))}function se(){var F;return(F=P.current)==null?void 0:F.querySelector(`${K4}[aria-selected="true"]`)}function ue(){var F;return Array.from(((F=P.current)==null?void 0:F.querySelectorAll(G2))||[])}function _(F){let Y=ue()[F];Y&&V.setState("value",Y.getAttribute(Es))}function ee(F){var Y;let re=se(),W=ue(),te=W.findIndex(ke=>ke===re),je=W[te+F];(Y=p.current)!=null&&Y.loop&&(je=te+F<0?W[W.length-1]:te+F===W.length?W[0]:W[te+F]),je&&V.setState("value",je.getAttribute(Es))}function X(F){let Y=se(),re=Y?.closest(ul),W;for(;re&&!W;)re=F>0?xq(re,ul):yq(re,ul),W=re?.querySelector(G2);W?V.setState("value",W.getAttribute(Es)):ee(F)}let oe=()=>_(ue().length-1),M=F=>{F.preventDefault(),F.metaKey?oe():F.altKey?X(1):ee(1)},Q=F=>{F.preventDefault(),F.metaKey?_(0):F.altKey?X(-1):ee(-1)};return y.createElement(qe.div,{ref:a,tabIndex:-1,...T,"cmdk-root":"",onKeyDown:F=>{var Y;(Y=T.onKeyDown)==null||Y.call(T,F);let re=F.nativeEvent.isComposing||F.keyCode===229;if(!(F.defaultPrevented||re))switch(F.key){case"n":case"j":{I&&F.ctrlKey&&M(F);break}case"ArrowDown":{M(F);break}case"p":case"k":{I&&F.ctrlKey&&Q(F);break}case"ArrowUp":{Q(F);break}case"Home":{F.preventDefault(),_(0);break}case"End":{F.preventDefault(),oe();break}case"Enter":{F.preventDefault();let W=se();if(W){let te=new Event(Tg);W.dispatchEvent(te)}}}}},y.createElement("label",{"cmdk-label":"",htmlFor:D.inputId,id:D.labelId,style:wq},g),dm(t,F=>y.createElement(Q4.Provider,{value:V},y.createElement(Y4.Provider,{value:D},F))))}),cq=y.forwardRef((t,a)=>{var r,s;let l=$a(),d=y.useRef(null),u=y.useContext(Z4),p=ec(),g=e3(t),h=(s=(r=g.current)==null?void 0:r.forceMount)!=null?s:u?.forceMount;kr(()=>{if(!h)return p.item(l,u?.id)},[h]);let x=t3(l,d,[t.value,t.children,d],t.keywords),b=Kx(),w=Dn(z=>z.value&&z.value===x.current),N=Dn(z=>h||p.filter()===!1?!0:z.search?z.filtered.items.get(l)>0:!0);y.useEffect(()=>{let z=d.current;if(!(!z||t.disabled))return z.addEventListener(Tg,A),()=>z.removeEventListener(Tg,A)},[N,t.onSelect,t.disabled]);function A(){var z,V;k(),(V=(z=g.current).onSelect)==null||V.call(z,x.current)}function k(){b.setState("value",x.current,!0)}if(!N)return null;let{disabled:I,value:T,onSelect:E,forceMount:R,keywords:C,...P}=t;return y.createElement(qe.div,{ref:Gs(d,a),...P,id:l,"cmdk-item":"",role:"option","aria-disabled":!!I,"aria-selected":!!w,"data-disabled":!!I,"data-selected":!!w,onPointerMove:I||p.getDisablePointerSelection()?void 0:k,onClick:I?void 0:A},t.children)}),dq=y.forwardRef((t,a)=>{let{heading:r,children:s,forceMount:l,...d}=t,u=$a(),p=y.useRef(null),g=y.useRef(null),h=$a(),x=ec(),b=Dn(N=>l||x.filter()===!1?!0:N.search?N.filtered.groups.has(u):!0);kr(()=>x.group(u),[]),t3(u,p,[t.value,t.heading,g]);let w=y.useMemo(()=>({id:u,forceMount:l}),[l]);return y.createElement(qe.div,{ref:Gs(p,a),...d,"cmdk-group":"",role:"presentation",hidden:b?void 0:!0},r&&y.createElement("div",{ref:g,"cmdk-group-heading":"","aria-hidden":!0,id:h},r),dm(t,N=>y.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?h:void 0},y.createElement(Z4.Provider,{value:w},N))))}),uq=y.forwardRef((t,a)=>{let{alwaysRender:r,...s}=t,l=y.useRef(null),d=Dn(u=>!u.search);return!r&&!d?null:y.createElement(qe.div,{ref:Gs(l,a),...s,"cmdk-separator":"",role:"separator"})}),mq=y.forwardRef((t,a)=>{let{onValueChange:r,...s}=t,l=t.value!=null,d=Kx(),u=Dn(h=>h.search),p=Dn(h=>h.selectedItemId),g=ec();return y.useEffect(()=>{t.value!=null&&d.setState("search",t.value)},[t.value]),y.createElement(qe.input,{ref:a,...s,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":g.listId,"aria-labelledby":g.labelId,"aria-activedescendant":p,id:g.inputId,type:"text",value:l?t.value:u,onChange:h=>{l||d.setState("search",h.target.value),r?.(h.target.value)}})}),pq=y.forwardRef((t,a)=>{let{children:r,label:s="Suggestions",...l}=t,d=y.useRef(null),u=y.useRef(null),p=Dn(h=>h.selectedItemId),g=ec();return y.useEffect(()=>{if(u.current&&d.current){let h=u.current,x=d.current,b,w=new ResizeObserver(()=>{b=requestAnimationFrame(()=>{let N=h.offsetHeight;x.style.setProperty("--cmdk-list-height",N.toFixed(1)+"px")})});return w.observe(h),()=>{cancelAnimationFrame(b),w.unobserve(h)}}},[]),y.createElement(qe.div,{ref:Gs(d,a),...l,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":p,"aria-label":s,id:g.listId},dm(t,h=>y.createElement("div",{ref:Gs(u,g.listInnerRef),"cmdk-list-sizer":""},h)))}),hq=y.forwardRef((t,a)=>{let{open:r,onOpenChange:s,overlayClassName:l,contentClassName:d,container:u,...p}=t;return y.createElement(Hx,{open:r,onOpenChange:s},y.createElement(Ux,{container:u},y.createElement(lm,{"cmdk-overlay":"",className:l}),y.createElement(cm,{"aria-label":t.label,"cmdk-dialog":"",className:d},y.createElement(J4,{ref:a,...p}))))}),fq=y.forwardRef((t,a)=>Dn(r=>r.filtered.count===0)?y.createElement(qe.div,{ref:a,...t,"cmdk-empty":"",role:"presentation"}):null),gq=y.forwardRef((t,a)=>{let{progress:r,children:s,label:l="Loading...",...d}=t;return y.createElement(qe.div,{ref:a,...d,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":l},dm(t,u=>y.createElement("div",{"aria-hidden":!0},u)))}),Zt=Object.assign(J4,{List:pq,Item:cq,Input:mq,Group:dq,Separator:uq,Dialog:hq,Empty:fq,Loading:gq});function xq(t,a){let r=t.nextElementSibling;for(;r;){if(r.matches(a))return r;r=r.nextElementSibling}}function yq(t,a){let r=t.previousElementSibling;for(;r;){if(r.matches(a))return r;r=r.previousElementSibling}}function e3(t){let a=y.useRef(t);return kr(()=>{a.current=t}),a}var kr=typeof window>"u"?y.useEffect:y.useLayoutEffect;function Rs(t){let a=y.useRef();return a.current===void 0&&(a.current=t()),a}function Dn(t){let a=Kx(),r=()=>t(a.snapshot());return y.useSyncExternalStore(a.subscribe,r,r)}function t3(t,a,r,s=[]){let l=y.useRef(),d=ec();return kr(()=>{var u;let p=(()=>{var h;for(let x of r){if(typeof x=="string")return x.trim();if(typeof x=="object"&&"current"in x)return x.current?(h=x.current.textContent)==null?void 0:h.trim():l.current}})(),g=s.map(h=>h.trim());d.value(t,p,g),(u=a.current)==null||u.setAttribute(Es,p),l.current=p}),l}var bq=()=>{let[t,a]=y.useState(),r=Rs(()=>new Map);return kr(()=>{r.current.forEach(s=>s()),r.current=new Map},[t]),(s,l)=>{r.current.set(s,l),a({})}};function vq(t){let a=t.type;return typeof a=="function"?a(t.props):"render"in a?a.render(t.props):t}function dm({asChild:t,children:a},r){return t&&y.isValidElement(a)?y.cloneElement(vq(a),{ref:a.ref},r(a.props.children)):r(a)}var wq={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const jq=Hx,Nq=Ux,a3=y.forwardRef(({className:t,...a},r)=>e.jsx(lm,{ref:r,className:ie("fixed inset-0 z-50 bg-black/80  data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",t),...a}));a3.displayName=lm.displayName;const i3=y.forwardRef(({className:t,children:a,...r},s)=>e.jsxs(Nq,{children:[e.jsx(a3,{}),e.jsxs(cm,{ref:s,className:ie("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",t),...r,children:[a,e.jsxs(W4,{className:"absolute right-4 top-4 roun
57ded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[e.jsx(eo,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));i3.displayName=cm.displayName;const Aq=y.forwardRef(({className:t,...a},r)=>e.jsx(Xx,{ref:r,className:ie("text-lg font-semibold leading-none tracking-tight",t),...a}));Aq.displayName=Xx.displayName;const kq=y.forwardRef(({className:t,...a},r)=>e.jsx($x,{ref:r,className:ie("text-sm text-muted-foreground",t),...a}));kq.displayName=$x.displayName;const Sq=y.forwardRef(({className:t,...a},r)=>e.jsx(Zt,{ref:r,className:ie("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",t),...a}));Sq.displayName=Zt.displayName;const n3=y.forwardRef(({className:t,...a},r)=>e.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[e.jsx(Gt,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),e.jsx(Zt.Input,{ref:r,className:ie("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",t),...a})]}));n3.displayName=Zt.Input.displayName;const r3=y.forwardRef(({className:t,...a},r)=>e.jsx(Zt.List,{ref:r,className:ie("max-h-[300px] overflow-y-auto overflow-x-hidden",t),...a}));r3.displayName=Zt.List.displayName;const s3=y.forwardRef((t,a)=>e.jsx(Zt.Empty,{ref:a,className:"py-6 text-center text-sm",...t}));s3.displayName=Zt.Empty.displayName;const ru=y.forwardRef(({className:t,...a},r)=>e.jsx(Zt.Group,{ref:r,className:ie("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",t),...a}));ru.displayName=Zt.Group.displayName;const Eg=y.forwardRef(({className:t,...a},r)=>e.jsx(Zt.Separator,{ref:r,className:ie("-mx-1 h-px bg-border",t),...a}));Eg.displayName=Zt.Separator.displayName;const su=y.forwardRef(({className:t,...a},r)=>e.jsx(Zt.Item,{ref:r,className:ie("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",t),...a}));su.displayName=Zt.Item.displayName;const Iq=["Continuous, hybrid agent and agentless vulnerability discovery","Seven-signal AI Priority Engine (KEV, CVSS, EPSS, exposure, criticality, age, patch availability)","Explainable score breakdowns for every ranked vulnerability","CISA KEV two-person integrity governance for exception requests","AI Remediation Engine with mandatory human-approval gates","Configuration drift detection and governed self-healing","AI-powered compliance gap analysis against CIS Benchmarks, NIST CSF, and ISO 27001","Natural language queries over live vulnerability data","Executive AI briefings generated from live fleet telemetry","Rank-change badges that surface shifts in the threat landscape","Device criticality scoring weighted by business impact","Structured exception management with owners, controls, and expiry","Closed-loop, post-remediation verification","Native SIEM, ITSM, CMDB, and identity integration","Evidence-based reporting for analysts, operations, auditors, and executives"],o3=["Hybrid agent and agentless discovery that eliminates unknown-unknown asset exposure","Seven-signal AI Priority Engine that ranks real risk instead of raw severity","AI Remediation Engine with mandatory human approval before any production change","CISA KEV two-person integrity governance for every exception request",'Closed-loop, post-remediation verification that eliminates "zombie" vulnerabilities',"Native SIEM, ITSM, CMDB, and identity integration across the security stack"],l3=["Explainable score breakdowns showing the weighted contribution of all seven signals","Rank-change badges (New, Rank-Up, Rank-Down, Dropped) that flag threat landscape shifts","AI-generated remediation proposals with confidence scores and risk notes","Configuration drift detection with governed, AI-proposed self-healing","AI-powered compliance gap analysis with prioritized remediation playbooks","Natural language queries and executive AI briefings grounded in live telemetry"],Cq=[{title:"CVSS severity inflation",body:"When most vulnerabilities are labeled Critical or High based on intrinsic characteristics alone, the labels lose their ability to guide operational urgency and the queue saturates with noise."},{title:"The EPSS gap",body:"Most vulnerabilities are never exploited in practice, yet many programs treat every high-severity issue as if it were under active attack — burning c
57apacity on the wrong targets."},{title:"KEV neglect",body:"Real-world exploitation is concentrated in a small, curated subset of CVEs. Programs that fail to prioritize CISA KEV entries are optimizing for the wrong threat vector."},{title:"Patch-rate misdirection",body:"A 95% patch rate can mask a 100% vulnerability rate on the most critical production systems. Tool fragmentation hides the link between a patchable flaw and the business it threatens."}],Mq=["Continuous coverage confidence through hybrid agent and agentless discovery, eliminating unknown-unknown asset exposure","Threat-informed prioritization that ranks by KEV status, EPSS probability, and environmental context instead of severity alone","Explainable AI where every rank shows the weighted signal contributions behind it","KEV governance with mandatory two-person integrity for any exception request","Closed-loop verification tracking every vulnerability from identification through confirmed patch verification","Governance-first exception management requiring owners, compensating controls, and expiration dates","Honest reporting that ignores vanity metrics and focuses on dwell time, trajectory, and residual risk"],Tq=[{title:"Discover",body:"Identify assets through multi-source telemetry so new or ephemeral devices are accounted for within minutes of joining the network."},{title:"Enrich",body:"Augment raw CVE data with EPSS probability, CISA KEV status, and internal business-criticality tags to build a context-aware risk profile."},{title:"Prioritize",body:"Synthesize enriched data into a ranked action list, focusing effort on flaws that are both severe and likely to be exploited in this specific fleet."},{title:"Remediate",body:"Generate specific remediation proposals with confidence scores, dispatched to IT operations via coordinated, ring-based deployment cycles."},{title:"Verify",body:'Confirm the post-remediation asset state — vulnerability gone, patch applied, no pending reboot — closing the loop and preventing "zombie" vulnerabilities.'}],Eq=[{title:"Hybrid discovery model",body:"Combine native agent deployment, which provides the deepest telemetry for persistent endpoints, with agentless network reconnaissance that captures transient or unmanaged devices.",bullets:['Categorize every asset as current, stale, unknown, or unmanaged — not a single "managed endpoints" count',"Track time-to-discover for new assets as a core indicator of program health"]},{title:"Ephemeral and transient assets",body:"Cloud workloads and VPN-connected laptops are continuously reassessed against the core asset inventory so they never quietly fall outside scan scope.",bullets:["Treat coverage as a continuous operational metric, not a periodic audit checkpoint","Prevent transient infrastru
57cture from becoming a persistent blind spot"]},{title:"Servers and workstations",body:"Server and workstation fleets carry distinct infrastructure roles and require different coverage metrics rather than one generic scanning cadence.",bullets:["Deep configuration scanning for servers hosting multi-user services and persistent data","Frequent, lightweight status checks confirm workstation agents remain active"]}],Rq=[{label:"KEV",title:"Confirmed exploitation",body:"A CISA KEV listing overrides all other signals and immediately promotes a vulnerability to the top of the remediation queue."},{label:"CVSS",title:"Technical severity",body:"Measures intrinsic worst-case impact in isolation — a starting descriptor, not a triage decision on its own."},{label:"EPSS",title:"Exploitation probability",body:"A machine-learned, daily-updated probability that a CVE will be exploited in the wild within the next 30 days."},{label:"Exposure breadth",title:"Fleet-wide reach",body:"The percentage of the fleet affected by a given vulnerability, used to scope the size of the real attack surface."},{label:"Device criticality",title:"Business impact",body:"Weighted by service role, data classification, and identity privilege so a domain controller outranks an isolated guest workstation."},{label:"Vulnerability age",title:"Unresolved technical debt",body:"How long a flaw has remained open despite an available fix, preventing forgotten exposure from accumulating quietly."},{label:"Patch availability",title:"Actionable remediation",body:"Whether a verified remediation path currently exists, distinguishing actionable findings from those still awaiting a fix."}],Pq=[{title:"Two-person KEV integrity",body:"Any exception request for a KEV-flagged vulnerability requires independent, second-party review and approval before it can be granted — never a siloed decision."},{title:"Structured exception metadata",body:"Every exception records a designated owner, business justification, compensating controls, and a strict expiry date so deferrals are never indefinite."},{title:"Continuous exception visibility",body:"Deferred vulnerabilities remain visible in the AI Priority list and compliance views; overdue or undocumented exceptions trigger automated escalation."},{title:"Compliance framework mapping",body:"Live endpoint telemetry maps continuously to CIS Benchmarks, NIST CSF, ISO 27001, and custom enterprise policies — not a point-in-time snapshot."},{title:"Immutable audit evidence",body:"Every discovery, score, override, exception, and remediation event is captured in a tamper-evident trail that satisfies regulators and auditors."},{title:"Bidirectional integration",body:"Native SIEM, ITSM, CMDB, and identity integration keeps vulnerability data synchronized with the rest of the security and IT stack."}],Oq=[{title:"Explainable score breakdown",body:"Every rank shows the weighted contribution of all seven signals so analysts can agree with, challenge, or override the recommendation."},{title:"Rank-change situational awareness",body:"New, Rank-Up, Rank-Down, and Dropped badges surface shifts in the threat landscape without manual list comparisons."},{title:"AI Remediation Engine",body:"Generates governed remediation proposals with confidence scores and a required human-approval gate before any production change is dispatched."},{title:"Self-healing configuration drift",body:"Detects endpoint state that has drifted from a known-good baseline and proposes governed, auditable restoration."},{title:"AI compliance gap analysis",body:"Continuously evaluates live telemetry against CIS Benchmarks, NIST CSF, and ISO 27001, generating prioritized remediation playbooks."},{title:"Natural language & executive briefings",body:"Analysts query live vulnerability data in plain language, while leadership receives narrative-quality risk briefings grounded in current fleet telemetry."}],Dq=["Explainability is the foundational control — every score decomposes into its seven contributing signals.","Mandatory human approval gates ensure AI recommends but humans authorize every production change.","All AI recommendations and analyst overrides are captured in an immutable audit trail.","AI operates only over governed, read-only data views, never bypassing existing access controls.","Incomplete or stale inputs are explicitly flagged rather than silently used to justify a ranking."],Lq=[{phase:"01",title:"Coverage baseline",body:"Deploy lightweight agents and agentless discovery across the fleet to measure coverage confidence and establish the starting point for every metric."},{phase:"02",title:"Data quality",body:"Validate CVSS, EPSS, and KEV feeds, and confirm that asset criticality classifications align with actual organizational infrastru
57cture."},{phase:"03",title:"AI Priority pilot",body:"Activate the scoring engine for a representative sample so analysts can calibrate expectations and review score-breakdown logic before broader rollout."},{phase:"04",title:"Governance activation",body:"Configure KEV two-person integrity and finalize exception management workflows to ensure audit compliance before scaling to the full fleet."},{phase:"05",title:"Remediation integration",body:"Introduce ring-based deployment where patches roll out in controlled phases and post-change verification validates stability before expanding scope."},{phase:"06",title:"Continuous improvement",body:"Run regular trend analysis and AI model feedback loops, expand to the full fleet, and finalize executive reporting packages."}],Vq=["KEV prioritization accuracy: verify confirmed-exploitation vulnerabilities surface first, every time.","AI score breakdown verification: confirm every rank is explainable through its seven weighted signals.","Independent exception approval workflow: test two-person integrity on a real KEV-flagged exception.","Campaign remediation deployment: run a ring-based rollout with evidence gates on representative endpoints.","Post-deployment validation: prove which endpoints are verified remediated and which remain exposed."],_q=[{title:"Security",body:"Reduce critical exposure dwell time, increase KEV patch currency, and accelerate patch rate on assets deemed critical to business operations."},{title:"Operations",body:"Improve first-time deployment success, reduce time spent preparing remediation campaigns, and lower MTTR for failed deployments."},{title:"Governance",body:"Increase exception completeness, backed by independent approval coverage and retrievable, audit-ready documentation."},{title:"Leadership",body:"Gain clarity on the trajectory of open critical exposures and risk concentration by service, with far less time spent preparing executive briefings."}],zq=[{title:"Tenable One",body:"Broad scan coverage, mature agent and agentless options, and strong asset inventory. Lumin AI exposure scoring is a recognized standard in regulated industries.",bullets:["AI prioritization transparency varies by edition","Deep remediation orchestration often needs complex manual configuration beyond the platform"]},{title:"Qualys VMDR",body:"Cloud-native architecture with robust multi-cloud visibility and an integrated TruRisk score combining asset criticality with vulnerability severity.",bullets:["Evaluate the depth of AI explainability and per-finding score breakdowns","Confirm native support for KEV-specific two-person integrity workflows"]},{title:"Xpedioo",body:"A unified asset-to-remediation loop with seven-signal explainable AI scoring, built-in KEV two-person integrity, and verified endpoint state monitoring post-remediation.",bullets:["Best fit for enterprises requiring integrated remediation governance","Governance-first design rather than bolt-on compliance reporting"]}],c3=["Complete lifecycle tracking from procurement and deployment through maintenance to decommission and disposal","Automated depreciation and valuation calculations synced with financial systems for audit-ready reporting","Predictive maintenance scheduling that reduces unplanned downtime and unnecessary preventive visits","Real-time location and condition tracking across IT hardware, facilities equipment, and field assets","Native integration with IoT sensors, CMDB, and ITSM for a single source of asset truth","Contract, warranty, and vendor lifecycle management with automatic renewal and expiry alerts"],d3=["AI failure-risk scoring that ranks assets by likelihood and cost impact of failure","Predictive maintenance recommendations generated from usage, sensor telemetry, and historical failure patterns","AI-optimized repair-versus-replace analysis based on total cost of ownership and depreciation curves","Anomaly detection on IoT sensor streams that flags abnormal vibration, temperature, or usage before failure","Natural-language asset reporting for finance, operations, and compliance stakeholders","AI-generated audit and compliance evidence packages mapped to asset class and regulatory framework"],qq=[{heading:"Complete lifecycle visibility",body:"AI Powered Enterprise Asset Management tracks every physical asset from requisition through disposal in one continuous record, instead of separate spreadsheets for procurement, operations, and finance.",bullets:["Capture procurement requests, approvals, purchase orders, and vendor terms at intake","Register every deployed asset with owner, location, cost center, and warranty data","Preserve a single audit trail from acquisition to final disposal or resale"]},{heading:"Predictive maintenance and condition monitoring",body:"IoT sensor telemetry and usage history feed an AI model that flags at-risk assets before they fail, rather than waiting for a fixed calendar interval or a breakdown call.",bullets:["Ingest vibration, temperature, runtime, and usage signals from connected equipment","Rank assets by failure risk and business impact instead of treating every asset equally","Dispatch work orders automatically to the right technician 
57with the right parts context"]},{heading:"Financial accuracy and depreciation",body:"Every asset's book value, depreciation schedule, and disposal value stay synchronized with its real-world condition and location, closing the gap between the physical estate and the finance ledger.",bullets:["Apply configurable depreciation methods by asset class and useful life","Reconcile physical asset counts against financial records automatically","Model repair-versus-replace decisions against total cost of ownership"]},{heading:"Governance, compliance, and audit readiness",body:"Asset transfers, disposals, and financial adjustments move through a governed workflow with owners, evidence, and approvals attached, so audits are a query rather than a fire drill.",bullets:["Track chain-of-custody for every transfer, loan, and location change","Certify data wipe and environmentally compliant disposal for every retired asset","Generate framework-mapped compliance and audit evidence on demand"]}],Fq=[{title:"Spreadsheet-based tracking",body:"Manual registers decay the moment an asset moves. Ownership, location, and condition drift out of sync within weeks, leaving finance and operations working from different realities."},{title:"Reactive maintenance",body:"Without condition or usage signals, teams fix equipment only after it fails — driving up repair costs, unplanned downtime, and safety risk compared to catching the failure early."},{title:"Disconnected financial and physical records",body:"Finance's depreciation ledger and operations' physical inventory are reconciled manually, if at all, producing failed audits and assets that are paid for but no longer exist."},{title:"Blind decommissioning",body:'Assets get retired without a documented data wipe, certified disposal, or ledger closure — creating compliance exposure and "ghost assets" that quietly continue to consume budget.'}],Bq=["Continuous asset discovery combining IoT telemetry, manual audits, and procurement records","Financial and physical asset records unified in one system instead of reconciled after the fact","Explainable AI maintenance and replacement recommendations grounded in visible cost and risk factors","Governance-first change tracking for every asset transfer, disposal, and financial adjustment","Closed-loop verification that proves an asset's recorded state matches its physical and operational reality","Honest reporting that surfaces idle, ghost, and unaccounted-for assets instead of hiding them in aggregate totals"],Hq=[{title:"Acquire",body:"Capture requisitions, approvals, purchase orders, vendor terms, and warranty coverage the moment an asset enters the pipeline."},{title:"Deploy",body:"Assign an owner, location, and cost center, register the asset in the CMDB, and configure IoT tagging or telemetry where applicable."},{title:"Monitor",body:"Track location, condition, and utilization continuously through sensor telemetry, scheduled audits, and self-reported checks."},{title:"Maintain",body:"Schedule preventive and predictive maintenance, dispatch work orders with parts and technician context, and record completion evidence."},{title:"Optimize",body:"Track depreciation and utilization, and weigh repair-versus-replace decisions against total cost of ownership and remaining useful life."},{title:"Retire",body:"Run a governed decommission workflow with certified data wipe, compliant disposal or resale, and final closure of the financial and physical record."}],Gq=[{title:"IT and technology assets",body:"Track laptops, servers, network gear, and peripherals alongside software license and warranty terms, tying every device to its CMDB and ITSM record.",bullets:["Automatic reconciliation with CMDB configuration items and ITAM software records","Refresh-cycle planning based on age, performance, and warranty expiry"]},{title:"Facilities and physical infrastructure",body:"Manage HVAC systems, generators, elevators, and building equipment with IoT-connected condition monitoring and preventive maintenance scheduling.",bullets:["Space and occupancy-aware maintenance planning across sites","Energy and sustainability tracking tied to equipment condition"]},{title:"Mobile and field assets",body:"Track vehicles, field equipment, and tools that move between sites, technicians, and job locations without losing custody or maintenance history.",bullets:["GPS and geofencing-aware location tracking for mobile equipment","Technician-level custody and check-in/check-out history"]}],Uq=[{label:"Failure risk",title:"Predicted likelihood of failure",body:"AI-modeled probability of failure based on sensor telemetry, usage intensity, and historical patterns for similar assets."},{label:"Utilization",title:"Actual usage versus capacity",body:"Identifies overused assets approaching wear limits and underused assets that may be candidates for redeployment."},{label:"Warranty",title:"Coverage and vendor SLA status",body:"Flags assets nearing warranty expiry s
57o repairs and claims happen while still covered, avoiding unnecessary out-of-pocket cost."},{label:"Compliance",title:"Regulatory and safety requirements",body:"Elevates assets subject to safety inspections, certifications, or regulatory deadlines into an accelerated maintenance tier."},{label:"Depreciation",title:"Position on the useful-life curve",body:"Connects book value and remaining useful life to the repair-versus-replace decision instead of treating maintenance as a standalone cost."}],Xq=[{title:"Explainable maintenance scoring",body:"Every maintenance recommendation exposes the contribution of failure risk, utilization, warranty status, compliance urgency, and depreciation position."},{title:"Two-person disposal integrity",body:"High-value or regulated asset disposals require independent second-party approval, a documented reason, and a permanent audit record."},{title:"Depreciation policy as configuration",body:"Map asset classes to depreciation methods and useful-life assumptions that finance can review and adjust as accounting policy evolves."},{title:"Chain-of-custody tracking",body:"Every transfer, loan, and location change is timestamped with the requesting and receiving owner, preventing silent custody gaps."},{title:"Warranty and vendor SLA enforcement",body:"Track vendor response-time commitments and coverage terms, and flag violations automatically instead of relying on manual escalation."},{title:"Evidence and record integrity",body:"Attach photos, invoices, inspection certificates, and maintenance logs directly to each asset record for tamper-evident history."},{title:"Traceable work order objects",body:"Give every maintenance and inspection task a unique identity, assigned technician, parts list, and completion evidence."},{title:"Closed-loop decommission verification",body:"Confirm certified data wipe, compliant disposal or resale, and final ledger closure before an asset record is archived."},{title:"Bounded exceptions and reporting",body:"Require owners, justification, compensating controls, and expiry dates for every deferred maintenance or policy exception."}],$q=[{title:"Multi-factor failure-risk modeling",body:"Synthesize sensor telemetry, maintenance history, and usage intensity into a transparent, ranked failure-risk view per asset."},{title:"Compliance gap remediation",body:"Map asset condition and inspection history against safety and regulatory requirements to generate prioritized remediation plans."},{title:"Condition drift detection",body:"Compare live sensor readings against known-good baselines, classify deviations, and recommend action while keeping human approval in the loop."},{title:"Predictive maintenance windows",body:"Use historical usage and downtime-cost data to recommend maintenance windows that minimize operational disruption."},{title:"Repair-versus-replace proposals",body:"Generate total-cost-of-ownership comparisons with confidence scores to support capital planning decisions."},{title:"Operational copilots",body:"Give technicians asset and parts context in the field while producing finance-ready valuation and depreciation briefings."}],Wq=["Human approval gates remain mandatory for high-value disposals and capital replacement decisions.","Immutable logs capture every AI recommendation, supporting data point, override, and final decision.","Tenant data boundaries and prompt hygiene protect sensitive financial and vendor metadata.","Low-confidence flags surface stale sensor data or incomplete asset records instead of hiding uncertainty.","Natural-language answers link back to governed asset evidence; unsupported answers return no result."],Kq=[{phase:"01",title:"Establish the baseline",body:"Reconcile the physical asset register against financial records to quantify unknown, ghost, and misclassified assets before changing anything."},{phase:"02",title:"Align financial policy",body:"Import depreciation methods and useful-life assumptions by asset class, and validate them against current accounting practice."},{phase:"03",title:"Pilot a connected asset class",body:"Instrument one IoT-eligible asset class with telemetry and validate predictive maintenance recommendations against technician judgment."},{phase:"04",title:"Scale coverage",body:"Extend tracking and predictive maintenance across IT, facilities, and field asset classes, and integrate with CMDB and ITSM."},{phase:"05",title:"Formalize governance",body:"Define repeatable disposal, transfer, and exception workflows with independent approval and automatic expiry."},{phase:"06",title:"Continuously improve",body:"Use trend data and AI refinement cycles to extend useful life, reduce unplanned downtime, and lower total cost of ownership."}],Yq=["Coverage quality: distinguish tracked, stale, and unaccounted-for assets across every class.","Financial accuracy: reconcile physical counts against the depreciation ledger and quantify the gap.","Prioritization: compare AI failure-risk recommendations with technician judgment on real equipment.","Governance: test independent disposal approval and chain-of-custody traceability in reporting.","Maintenance: test work order dispatch, technician context, and completion evidence capture.","Commercial fit: evaluate sensor and integration depth, services, and total operating cost."],Qq=[{title:"Financial",body:"Reduce unaccounted-for and ghost assets, tighten book-value accuracy, and recover budget spent maintaining assets that no longer exist."},{title:"Operations",body:"Reduce unplanned downtime, extend useful asset life, and lower emergency repair costs through predictive maintenance."},{title:"Compliance",body:"Increase inspection and disposal evidence completeness while reducing audit evidence retrieval time."},{title:"Leadership",body:"Track total cost of ownership by asset class, capital replacement forecasts, and time to produce executive-ready briefings."}],u3=["Target population preview showing resolved hostnames, operating systems, Satellite Client availability, and matched-versus-capped counts before every job","Blast-radius percentage control that caps execution to a deliberate share of the resolved population","Dry-run mode that simulates the full job lifecycle — targeting, approval, and completion — with zero endpoint contact","Mandatory pending-approval state with full context (script, parameters, targets, risk) before any job can execute","Role-based approval authority that keeps job creators from approving their own work","Per-endpoint execution results with exit code, stdout, stderr, and completion timestamp for every targeted device","Immutable, chronological audit trail covering every workflow event from creation through completion","Skill library with typed runtime parameters, version history, and built-in versus custom classification"],m3=["AI script generation that turns a plain-language purpose and requirements into a complete PowerShell or Bash draft","Context-aware generation inside the skill editor that automatically inherits the skill's parameters, platform, and tags","AI script explanation that translates any script into a plain-language, step-by-step description for non-coding reviewers","AI security analysis that flags privilege requirements, sensitive operations, and destructive risks before approval","AI script validation that checks syntax, structure, output conventions, and safety flags before a version is saved","Ten built-in AI script templates — System Discovery, Disk Monitoring, Security Audit, Compliance Checks, Backup Status, and more","Compliance-aware generation that adds SOC 2, HIPAA, PCI-DSS, GDPR, or ISO 27001 context directly into the generated script","A tw
57o-step apply-then-save workflow that keeps every AI draft under explicit operator control before it enters the skill library"],Zq=[{heading:"The skill library: from personal scripts to organizational memory",body:"A skill is not just a script — it's a complete, self-describing automation unit with structured metadata that a team can discover, understand, and safely reuse without contacting the original author.",bullets:["Structured metadata for every skill: name, category, platform, risk level, elevation requirement, timeout, and typed parameters","Full-text search, category navigation, and platform filtering across built-in and custom skills","A natural lifecycle — created, reviewed, activated, paused, and revised — with active/paused status always visible"]},{heading:"Writing prompts that produce enterprise-grade scripts",body:"The AI generation model is only as precise as the requirements given to it. A vague purpose statement produces generic output; specific operational constraints produce production-oriented code.",bullets:["State the target condition, the action to take, and the expected end state in the purpose statement","Specify exit code conventions, output format, error handling, and safety constraints as explicit requirements","Reference skill parameters directly (e.g. {{ServiceName}}, {{WaitSeconds}}) so generated code uses correct substitution syntax"]},{heading:"AI-generated PowerShell with enterprise conventions",body:"PowerShell scripts leaving the platform are structured to look like they were written by a senior Windows engineer, not a text model.",bullets:["param() block with typed parameters and defaults, wrapped in try/catch/finally for reliable error handling","Explicit exit codes and Write-Output/Write-Error conventions that the platform's per-endpoint capture can interpret","Standard elevation checks using WindowsIdentity and WindowsPrincipal, plus ConvertTo-Json structured output"]},{heading:"Safe, portable Bash for Linux estates",body:"Linux automation must handle diverse distributions, privilege models, and service frameworks without hard-coded assumptions.",bullets:["set -euo pipefail with a cleanup trap on EXIT, so failed commands never continue silently","Distribution-portable patterns — systemctl for services, command -v for binary checks, no backticks","EUID checks at startup for root-required scripts, with clear stderr messages instead of buried permission errors"]},{heading:"Safety constraints the generation pipeline will not cross",body:"Safety constraints define the boundary between a useful automation assistant and an uncontrolled code generator.",bullets:["Idempotent by default — check current state before making a change, so retries are always safe","No hard-coded credentials, user-specific paths, hostnames, or IP addresses; these become skill parameters instead","Destructive actions require an explicit confirmation or dry-run branch, target specificity, and a documented irreversibility note"]},{heading:"From reactive tickets to proactive employee experience automation",body:"The best support interaction is the one the user never has to initiate because the endpoint already recovered.",bullets:["DEX flows triggered by anomaly detection, a schedule, an external alert, or a service-desk webhook","Automation skills become action nodes in the flow de
57signer, connecting to ServiceNow, Jira, PagerDuty, and Slack","Measured by mean time to automated recovery, ticket deflection rate, and first-contact resolution"]},{heading:"Connecting governed automation to the operational ecosystem",body:"Automation that connects to existing systems becomes part of the operational fabric instead of a separate workflow.",bullets:["Skill-scoped, expiring external API keys with one-time-visible secrets and immediate revocation","Integration patterns for service-desk auto-remediation, monitoring-triggered response, and CI/CD post-deployment verification","Externally triggered jobs still enter the same pending-approval workflow as operator-created jobs"]},{heading:"Automation as a measured operational service",body:"An automation program that cannot report its own effectiveness cannot improve, cannot be funded, and cannot be trusted.",bullets:["Dashboard visibility into total skills, job volume, running jobs, pending approvals, and success versus failure","Skill-level metrics: first-pass success rate, partial-failure rate, approval latency, and execution duration","Business outcome alignment through ticket deflection, technician time saved, and MTTR reduction"]}],Jq=[{title:"Automation fragmentation",body:"A typical enterprise spreads automation across ten or more sources — admin workstations, ticket attachments, GPOs, SCCM, RMM tools, and unclear Git repos — making a basic audit question nearly impossible to answer."},{title:"Scale multiplies blast radius",body:"At 1,000 endpoints, a careless script has 1,000 opportunities to create an incident. Without a target preview, scope and impact are guesses, not decisions."},{title:"The AI risk amplifier",body:"Generative AI makes it faster to produce plausible-looking scripts — which also makes it easier to deploy code that was never reviewed, tested, or authorized."},{title:"The evidence deficit",body:"Remote sessions, ad hoc PowerShell, and untracked scripts produce no usable evidence. When auditors ask what changed last quarter, the absence of records is itself a finding."}],eF=["AI-generated scripts are always visible and editable before they become part of the skill library","Target populations are resolved and previewed before a single command leaves the platform","Dry-run mode lets a job be fully simulated with zero endpoint contact","Approval gates create a separation of duties between the person who creates a job and the person who authorizes it","Per-endpoint results make outcomes explicit — the platform cannot hide the work it does"],tF=[{title:"Create",body:"Define a skill with metadata and a script — name, description, category, platform, risk level, and elevation requirement."},{title:"Parameterize",body:"Define typed runtime parameters and risk attributes so the same governed skill can serve many operational contexts."},{title:"Preview",body:"Resolve and preview the exact target population — hostnames, operating systems, and Satellite Client availability."},{title:"Validate",body:"Optionally run a dry-run simulation that produces a complete job record without touching any endpoint."},{title:"Approve",body:"Submit the job for human approval by a qualified administrator or manager — never the job's own creator."},{title:"Execute & evidence",body:"Dispatch through Satellite Clients, capture per-device results, and preserve the complete audit trail."}],aF=[{title:"Infrastructure & platform operations",body:"The highest-value skills address the conditions generating the most recurring tickets across the endpoint estate.",bullets:["Service recovery, disk capacity management, and DNS/network configuration repair","Windows Update compliance checking, system inventory, and connectivity diagnostics"]},{title:"Application support & recovery",body:"Convert individual administrator expertise into a governed, repeatable capability for the applications that generate the most support volume.",bullets:["IIS app-pool recovery, O365/Teams repair, and SCCM agent recovery","SAP/Java runtime repair, Citrix session cleanup, and backup client verification"]},{title:"Security enforcement",body:"Close the gap between written policy and verified endpoint state with paired detection and remediation skills.",bullets:["Execution-policy enforcement, SMBv1 disablement, and BitLocker verification","Windows Defender repair, local administrator audit, and firewall profile verification"]},{title:"Evidence & compliance collection",body:"Read-only, structured-output skills that produce audit-ready evidence as a byproduct of normal operations.",bullets:["Software inventory, event log extraction, and user/group membership snapshots","Security configuration snapshots, certificate expiry analysis, and scheduled task inventory"]}],iF=[{label:"01",title:"First use of a new skill",body:"Confirm targeting, parameters, and behavior before any real endpoint execution."},{label:"02",title:"Unfamiliar endpoint population",body:"Verify that the resolved target set matches the operator's mental model."},{label:"03",title:"High-risk changes",body:"Give approvers a concrete, simulated record to review before authorizing production impact."},{label:"04",title:"Change management records",body:"Create an RFC-supporting artifact that documents exactly what is planned."},{label:"05",title:"Training new operators",body:"Work through the full job creation and approval workflow without touching production endpoints."}],nF=[{title:"Pending-approval by default",body:"Every job created through the UI or the external API begins in pending_approval and cannot execute without an explicit approval action."},{title:"Role-based approval authority",body:"Approval, rejection, and cancellation are restricted to administrator or manager roles — job creators cannot approve their own work."},{title:"Full-context approval review",body:"Approvers see the script, parameters, resolved targets, blast radius, risk level, elevation requirement, and creator identity before deciding."},{title:"Recorded rejection reasoning",body:"Rejected jobs carry a reason visible to the creator and preserved as institutional guidance for future submissions."},{title:"Immutable audit trail",body:"Every workflow event — created, approved, rejected, execution_started, endpoint_completed, cancelled — is appended and never edited."},{title:"AI explainability as evidence",body:"The AI-generated explanation and security analysis are captured alongside the script for approvers to review."},{title:"Compliance framework alignment",body:"Audit evidence maps to SOC 2 (CC6.8/CC7.2), PCI-DSS (Requirements 6 and 12), ISO 27001 (Annex A.12.1.2), and HIPAA (§164.312(b))."},{title:"Skill-scoped external API keys",body:"Third-party systems receive keys authorized for specific skills only, with expiry dates and one-time-visible secrets."},{title:"Externally initiated jobs stay governed",body:"API-triggered jobs enter the same pending-approval workflow as operator-created jobs — external access cannot bypass governance."}],rF=[{title:"Six-input script generation",body:"Purpose, requirements, script type, target OS, complexity, and security level combine into a complete PowerShell or Bash draft."},{title:"Context-aware generation",body:"Opened from inside the skill editor, the prompt automatically inherits the skill's name, parameters, platform, and tags."},{title:"Plain-language script explanation",body:"Translate any script — AI-written or manually authored — into a step-by-step description for reviewers who don't read code."},{title:"Security analysis on every draft",body:"Surfaces privilege requirements, sensitive operations, destructive risks, and stated assumptions before approval."},{title:"Structured validation before save",body:"Checks syntax errors, structural issues, output conventions, and safety flags, returning explicit errors and warnings."},{title:"Iterative refinement",body:"Switch script types, raise complexity, or add a security-level constraint and regenerate — the platform preserves prior requirements for editing."}],sF=["AI has no access to the execution control plane — it cannot create, approve, or dispatch a job, change a target list, adjust blast radius, or write to the audit trail","Transparency: every generated script and its explanation is always visible to the operator before use","Controllability: every AI output can be edited, rejected, or replaced with manually authored content","Accountability: skill metadata, approval records, and the audit trail document the human decisions made around AI-generated content","A tw
57o-step apply-then-save workflow means generated code only enters the skill library through deliberate operator action"],oF=["Choose a first skill with high volume, clear success criteria, low blast-radius risk, and a documented runbook precedent","Define who can create skills, who approves by risk tier, and the mandatory dry-run policy before the first production job","Run the AI workflow end to end: describe the purpose and requirements, review the script and security analysis, then validate before applying","Pilot the first production job at a 10% blast radius and review every per-endpoint result before expanding to the next ring","Confirm the audit trail captures creator, approver, script, targets, and per-endpoint results without gaps","Track first-pass success rate, approval latency, and rejected-job rate from the first month of production use"],lF=[{title:"Operational efficiency",body:"Teams that automate their top-10 recurring incident categories typically report a 30–50% reduction in technician time on repetitive remediation within six months."},{title:"Risk reduction",body:"Blast-radius controls, dry-run mode, approval gates, and per-endpoint results make automation safer than the manual processes it replaces."},{title:"Compliance readiness",body:"Structured per-endpoint results, approval records, and immutable audit trails turn evidence production into a continuous operational output."},{title:"AI leverage",body:"Senior engineers spend their expertise on requirements and review while AI compresses the scripting phase from hours to minutes."}],cF=["Real-time event deduplication and grouping across connected monitoring and ITSM tools","Topology-aware correlation that merges related service alerts into one prioritized incident","Alert-storm and flap suppression during known incidents and scheduled maintenance windows","Predictive failure scoring from leading log-pattern and event-frequency indicators","Approval-gated auto-remediation playbooks with execution history and rollback visibility","Configurable hot, warm, and cold retention policies with lifecycle automation"],dF=["AI log clustering and template extraction that turns millions of log lines into recurring patterns","ML anomaly detection for log volume, rate, and pattern mix, including rare and first-occurrence events","Natural-language log search so operators can investigate without writing regex or query DSL","Confidence-scored root cause candidates ranked by evidence across logs, events, traces, and changes","AI-generated incident summaries and remediation playbooks mapped to recurring failure signatures","Closed-loop learning that uses past remediation outcomes to refine future recommendations"],uF=["Complete asset lifecycle tracking from procurement and deployment through maintenance, refresh, and decommission","Continuous license-position calculation that reconciles entitlements against installations and flags at-risk estates before an audit","Automated reclamation workflow that identifies unused licenses, notifies the user, and uninstalls after the configured confirmation window","Governed software delivery with package approval, dependency resolution, targeted deployment, ring staging, and rollback thresholds","Shadow IT and prohibited-software detection with allowlist policies, notification, and script-based remediation","Warranty, contract, subscription-expiry, vendor, and renewal tracking with configurable lead-time alerts"],mF=["Multi-factor asset risk scoring across age, compliance gaps, security posture, usage anomalies, and hardware health","AI compliance gap analysis mapped to CIS Benchmarks, NIST CSF, ISO 27001, and custom policies with prioritized remediation playbooks","Predictive maintenance recommendations and optimal maintenance windows generated from usage patterns and historical failure signals","AI remediation engine that creates executable scripts, policies, or deployment proposals with confidence scores for human approval","Cost anomaly detection that surfaces duplicate purchases, unexpected cloud spend, orphaned resources, and over-grown subscriptions","Natural-language asset reporting and executive briefings for finance, operations, compliance, CIO, CISO, and CFO stakeholders"],p3=["250+ governed automation rules across 8 trigger categories and 40+ specific trigger types","Every rule is built through a three-step wizard — Configuration, Script Builder, Review — and enters pending_approval until an administrator or manager signs off","Blast-radius percentage c
57aps and cooldown windows bound every execution to a safe, reversible share of the affected population","Dry-run simulation shows exactly which endpoints a rule would touch before it ever runs live","A rollback endpoint reverses a completed execution's effects on the endpoints where it succeeded","Composite rules chain multiple actions — restart a service, then ticket, then alert — into a single governed playbook","Visual Flow Designer extends automation into multi-step, multi-system orchestration with native Jira and ServiceNow nodes","Scoped external API keys let ITSM, monitoring, and CI/CD systems trigger specific rules without console access"],h3=["Per-endpoint AI analysis with an overall experience summary, four pillar-level insights, and recommended actions ranked by impact","AI gap analysis scans the rule library against fleet conditions to surface automation coverage gaps and recommend new rules","Help Desk AI Copilot converts plain-English questions into safe, read-only SQL queries against live fleet data","AI-generated executive briefings translate DEX telemetry into board-ready business language, saved and compared across periods","AI Tool Adoption Intelligence tracks Microsoft Copilot, ChatGPT Enterprise, and Claude Enterprise usage against industry benchmarks","AI-assisted script builder drafts PowerShell, Bash, or Python remediation scripts inside the rule wizard","Graceful fallback guides operators to the right pillar telemetry for manual review whenever the AI service is unavailable"],pF=[{heading:"Platform architecture and telemetry",body:"Every score, AI insight, and automation rule fires on real endpoint telemetry collected through Satellite Clients and the browser extension — not samples, estimates, or self-reported data.",bullets:["Satellite Clients capture CPU, memory, disk I/O, application events, Wi-Fi, VPN, DNS, and agent heartbeat data from every managed endpoint","The DexScoreBackgroundService continuously recomputes composite scores and maintains per-endpoint score history for trend analysis","The browser extension adds page load time, interaction latency, and session telemetry for SaaS applications endpoint agents can't see alone"]},{heading:"DEX peer benchmarking",body:"A DEX score means more with context — the Benchmarking module compares composite and pillar scores against peer organizations by sector and company size.",bullets:["Benchmarks are expressed as peer median scores with 25th and 75th percentile boundaries for the composite score and all four pillars","Pillar-level comparison reveals where investment is misaligned — for example, strong device and connectivity scores but below-median app health and sentiment","Export and report functionality packages benchmark data for board technology committees, procurement, and compliance reviewers"]},{heading:"VDI and external network intelligence",body:"As work moves through virtual desktops and SaaS, experience monitoring follows the full path — not just the physical endpoint.",bullets:["The VDI Experience module tracks composite scores, infrastructure-versus-endpoint fault splitting, and session reliability for Citrix and Azure Virtual Desktop","The External Network module scores LAN, ISP, and cloud/SaaS path segments independently, pinpointing whether a broken call is the Wi-Fi, the home ISP, or the cloud service","Network fault attribution compares all three path segments simultaneously to identify the most likely root cause of a degraded remote experience"]},{heading:"Visual Flow Designer",body:"Rules handle single-event response. Flows extend automation into multi-step, multi-system orchestration built on a visual canvas.",bullets:["A flow is a directed graph of trigger and action nodes connected by edges, built with drag-and-drop and saved, versioned, validated, and dry-run simulated","Native integration nodes for Jira and ServiceNow create issues, incidents, or requests with dynamic template variables like {{hostname}} and {{agent_id}}","A curated gallery of seven pre-built flow templates gives teams a complete starting point instead of building every flow from scratch"]},{heading:"Digital adoption journeys",body:"Deploying software is not the same as adopting it — in-app journeys close the gap between installation and confident daily use.",bullets:["Journeys combine tooltips, spotlights, and multi-step walkthroughs targeted at specific UI elements, published without changing the target application's code","Step-level completion analytics identify exactly where employees disengage, so authors can simplify the steps with the highest drop-off","Journey completion feeds the Employee Sentiment pillar, correlating adoption with lower crash and hang rates on the applications covered"]},{heading:"Employee self-service (Employee Assist)",body:"The fastest support experience is one where the employee resolves their own issue, guided by AI, in less t
57ime than it takes to type a ticket.",bullets:["A conversational assistant selects the most relevant playbook for the employee's described problem and device context","Every recommended action requires explicit employee confirmation before it executes, with the full session transcript recorded","Failed self-service escalates to the help desk with the complete diagnostic history already attached, cutting resolution time"]},{heading:"Work-from-home intelligence",body:"WFH is a permanent operating model that needs the same management discipline as the office — without resorting to invasive monitoring.",bullets:["The WFH dashboard reports remote device compliance rate, productivity threshold compliance, and per-employee productive/non-productive hours","Application usage is classified into productive, non-productive, communication, development, creative, or custom categories for fleet-level visibility","Employees whose productive hours fall below threshold submit a reason directly, visible to administrators alongside schedule and policy management"]},{heading:"External integration and scoped API access",body:"The DEX External API connects automation to the broader operational ecosystem without creating a separate automation silo.",bullets:["External systems can list enabled rules, execute a rule against a target endpoint set, and poll execution status through a REST interface","Scoped API keys restrict each integration to a specific list of rules it is authorized to trigger, with full rotation and revocation support","Webhook action nodes extend flows to PagerDuty, Opsgenie, Microsoft Teams, Slack, and custom internal systems beyond the native Jira/ServiceNow nodes"]}],hF=[{title:"The measurement gap",body:"Server uptime, patch compliance, and ticket SLAs measure IT's view of the system. They don't answer whether a device is fast enough, applications are reliable, or employees feel supported."},{title:"The delay problem",body:"A service desk ticket is a lagging indicator — by the time an employee submits one, they've already lost time and formed a negative judgment. Many never submit a ticket at all."},{title:"The scale problem",body:"A network issue affecting 40 devices in one subnet, or a crash-rate spike after an update, is invisible to a help desk watching for tickets across thousands of endpoints."},{title:"The proof-of-value problem",body:"Without a measurement framework, IT can't credibly show a CHRO or CFO that a refresh, upgrade, or consolidation actually improved employee productivity."}],fF=["Every score, AI insight, and automation rule fires on real endpoint telemetry — not samples, estimates, or self-reported figures","A composite four-pillar score pinpoints exactly which dimension — device, app, connectivity, or sentiment — is responsible for a poor experience","AI is an operating layer woven throughout the platform, not a single bolt-on feature","250+ governed automation rules resolve conditions before they generate a service desk ticket","Every automated action is governed — approval workflows, blast-radius caps, cooldown windows, dry-run simulation, and an immutable audit trail","Peer benchmarking and AI-generated executive briefings connect daily telemetry to boardroom investment decisions"],gF=[{title:"Measure the baseline",body:"Deploy telemetry across the fleet and run an initial score rebuild to establish the composite and pillar-level starting point."},{title:"Activate the highest-value rule",body:"Use AI gap analysis to identify the automation opportunity with the highest fleet coverage, then build and approve the rule."},{title:"Review results and expand coverage",body:"Monitor execution history and tickets prevented, adjust blast-radius and cooldown settings, and add the next rule."},{title:"Report outcomes to leadership",body:"Generate an executive briefing that connects score improvement and ticket deflection to the investment decision."}],xF=[{title:"Device Performance",body:"Hardware health, resource utilisation, and failure prediction — the foundation every application experience runs on.",bullets:["CPU utilisation, memory pressure, disk I/O saturation, and disk capacity across every managed endpoint","Hardware failure forecasting, battery health tracking, and boot-time/uptime anomaly triggers"]}
57,{title:"Application Health",body:"Crash rates, launch latency, and real application reliability — where digital experience becomes a productivity fact.",bullets:["Crash events, hang detection, launch latency, and version compliance from endpoint agents and the browser extension","Automated response to crash-rate spikes, version-floor violations, and shadow IT detection"]},{title:"Connectivity",body:"Wi-Fi stability, VPN reliability, DNS quality, and network path intelligence for office, remote, and hybrid employees.",bullets:["Wi-Fi signal and stability, VPN authentication, DNS resolution, and gateway reachability","Three-segment LAN / ISP / cloud path attribution for remote and hybrid workforces"]},{title:"Employee Sentiment",body:"Quantifying how employees feel about their digital experience — the dimension objective telemetry can't measure alone.",bullets:["Targeted DEX campaign surveys scored into the Sentiment pillar of every endpoint's composite score","Correlate subjective sentiment against objective device, app, and connectivity telemetry"]}],yF=[{label:"Top factors",title:"Ranked contributing factors",body:"Each score's top contributing factors combine a pillar, a factor name (e.g. memory pressure, Wi-Fi signal strength), a detail explanation, and an impact weight."},{label:"Score history",title:"Trend and regression detection",body:"Per-endpoint score history enables before-and-after measurement for every automation intervention and detects cyclical or sudden degradation."},{label:"Data confidence",title:"Confidence-weighted scoring",body:"Scores from full four-pillar telemetry carry high confidence; partial telemetry — a missing browser extension or intermittent Satellite Client — is flagged as lower confidence."},{label:"Band filtering",title:"Excellent / Good / Fair / Poor",body:"Operators filter the fleet by score band to focus remediation effort on the endpoints with the most severe experience conditions first."}],bF=[{title:"Three-step rule wizard",body:"Every rule is created through Configuration, Script Builder, and Review steps before it can be submitted."},{title:"Pending-approval by default",body:"New and edited rules enter pending_approval state automatically and cannot execute until approved."},{title:"Role-separated approval",body:"Only administrator or manager roles can approve, reject, or submit rules for approval."},{title:"Re-approval on change",body:"A rule whose configuration is modified while active is reset to pending_approval until re-approved."},{title:"Blast-radius percentage caps",body:"Every rule limits the proportion of matched endpoints it can act on in a single execution."},{title:"Cooldown windows",body:"A minimum interval between firings prevents a condition from triggering a rule repeatedly on the same endpoint."},{title:"Dry-run simulation",body:"Rules can log a planned execution and report the affected agent count without touching any endpoint."},{title:"Rollback endpoint",body:"A successful execution's effects can be reversed on the endpoints where the action succeeded."},{title:"Recorded rejection reasons",body:"Rejected rules carry a documented rejection reason that becomes part of their operational record."}],vF=[{title:"Per-endpoint AI analysis",body:"On-demand experience summary plus Device, App, Connectivity, and Sentiment insights with ranked recommended actions."},{title:"AI gap analysis",body:"Scans the rule library and fleet conditions to find automation coverage gaps and recommend new rules with remediation steps."},{title:"Help Desk AI Copilot",body:"Turns natural-language questions into read-only SQL against live fleet data, with schema visibility and saved queries."},{title:"Executive AI briefings",body:"Generates board-ready summaries connecting telemetry to business language, saved and compared period over period."},{title:"AI Tool Adoption Intelligence",body:"Tracks Microsoft Copilot, ChatGPT Enterprise, and Claude Enterprise adoption, engagement, and friction against industry benchmarks."},{title:"AI-assisted script builder",body:"Drafts PowerShell, Bash, or Python remediation scripts inside the rule wizard for validation and review."}],wF=["The Help Desk AI Copilot is architecturally constrained to read-only queries — it can never modify fleet data","AI-recommended automation rules and script drafts still enter pending_approval and require administrator or manager sign-off before they can run","When the AI analysis service is unavailable, the platform returns a structured fallback that directs operators to the relevant pillar telemetry for manual review","Every copilot query and its generated SQL is recorded in an immutable query history for governance and audit","AI gap analysis identifies coverage gaps and recommends remediation steps — it does not create or activate rules automatically"],jF=[{phase:"01",title:"Establish the measurement baseline (Weeks 1–4)",body:"Deploy Satellite Clients, verify telemetry across all four pillars, run the initial score rebuild, deploy the browser extension, and run the first AI gap analysis."},{phase:"02",title:"Activate the highest-value automation rules (Weeks 5–10)",body:"Prioritize System Health and Security rules from the gap analysis, build each through the three-step wizard, simulate and dry-run before activating, then track t
57ickets prevented weekly."},{phase:"03",title:"Expand to experience and adoption (Weeks 11–18)",body:"Launch sentiment campaigns for Poor-band endpoints, stand up AI tool adoption tracking, configure the WFH dashboard, publish adoption journeys, and connect the automation API to the service desk."},{phase:"04",title:"Program maturity and continuous improvement (Week 19+)",body:"Review the fleet score distribution quarterly, run gap analysis monthly, and expand the rule library toward full coverage across all eight trigger categories."}],NF=["Define a scoped starting population — a business unit, location, or device category — to establish a clean measurement baseline","Run the first AI gap analysis and identify the three most prevalent Poor-band conditions with the clearest automated response","Create, validate, simulate, and activate those first three rules, then track tickets prevented in week one as evidence","Generate the first executive briefing within the first month to build organizational alignment, then repeat it on a monthly cadence"],AF=[{title:"Productivity recovery",body:"Mature DEX programs resolve endpoint experience problems 3–5x faster than ticket-driven support, recovering hours of productive time across the fleet every week."},{title:"Ticket deflection",body:"Organizations typically report 20–40% reductions in service desk ticket volume in the categories where automation rules are active."},{title:"Security posture",body:"Security and compliance rules detect and remediate posture conditions in near real time, lowering mean-time-to-detection and mean-time-to-response."},{title:"Talent and retention",body:"Four-pillar DEX scores, sentiment trends, and executive briefings give HR and IT leadership evidence that technology quality — a top-three driver of job satisfaction — is improving."}
57],kF=["Unified health visibility across cloud, infrastructure, databases, storage, application servers, and microservices","Topology-aware dependency mapping that connects resource health to business-service impact","Intelligent alert grouping, deduplication, quiet hours, and maintenance-window suppression","Approval-gated auto-remediation workflows with notify, escalate, script, ticket, and rollback steps","Cost and capacity intelligence that turns telemetry into actionable optimization plans","Reusable monitoring templates, audit trails, and tenant-branded status communication"],SF=["Evidence-backed root cause analysis across metrics, logs, traces, events, dependencies, and recent changes","AI Cloud Architects that generate cost-estimated, compliance-aware architectures with infrastructure-as-code","Cloud Auditors that map findings to CIS, SOC 2, PCI-DSS, HIPAA, GDPR, and NIST frameworks","AI Database Assistant with query optimization, anomaly detection, tuning, workload analysis, and execution-plan tools","Predictive capacity forecasting, baseline-relative drift detection, and impact analysis","Natural-language AI search, generated runbooks, daily operations summaries, and remediation recommendations"],IF=["Continuous control monitoring and automated evidence collection across 28 regulatory and standards frameworks","Configurable risk-appetite statements and tolerance thresholds with automatic breach monitoring and scenario stress tests","One-click compliance reports that turn uploaded evidence into scores, findings, root cause, and remediation plans","AI-generated vendor questionnaires and due-diligence workflows tailored to third-party risk and compliance needs","Risk-based, IIA-aligned audit planning with structured fieldwork, testing, evidence, and remediation tracking","Cross-framework policy mapping that exposes direct, partial, and no-coverage gaps for accountable follow-up"],CF=["AI vendor assessment that reads questionnaire responses and produces risk levels with Security, Compliance, Financial, and Operational breakdowns","AI risk-based audit scoring that combines inherent risk, control environment, audit history, complexity, and regulatory exposure","AI-generated findings, root-cause analysis, regulatory references, management responses, and corrective action plans","AI policy generation, document extraction, and evidence-backed crosswalks across ISO 27001, NIST CSF, SOC 2, PCI-DSS, GDPR, and DORA","AI emerging-risk scans, scenario analysis, dependency mapping, predictive risk trajectories, and early-warning alerts","AI board reports, regulatory filing drafts, evidence adequacy scores, and executive narratives from live GRC data"],MF=["Autonomous incident classification, routing, and escalation based on priority, service, skills, load, and SLA risk","End-to-end fulfilment automation for software installs, access provisioning, hardware orders, and other standard requests","Continuous CMDB discovery and reconciliation that keeps configuration items and their relationships accurate","Known-error workflows that connect recurring incidents to permanent problem fixes and published workarounds","Risk-scored change governance with dynamic approval routing, conflict detection, and CI/CD integration","Coordinated release planning with environment gates, rollback orchestration, and DORA performance tracking"],TF=["AI-powered root cause analysis correlating incidents with CMDB data, recent changes, monitoring telemetry, and similar history","Predictive change risk scoring based on CI impact, change frequency, implementation window, and historical outcomes","Real-time SLA breach prediction with automated escalation, reassignment, and stakeholder notification","Conversational request intake and semantic knowledge search that map plain-language needs to services and solutions","AI-generated knowledge articles from resolved incidents and problems, with confidence scoring and lifecycle review","AI service portfolio rationalisation that identifies redundant, underused, and high-cost services for review"],EF=["No-code and low-code agent builder with a visual drag-and-drop canvas, reusable templates, and rapid deployment","Deterministic business rules and visual decision graphs with priority ordering, explainable execution, testing, and version history","Multi-agent orchestration with stateful graph execution, A2A discovery, shared context, and specialized-agent delegation","Governed human escalation with approval rules, confidence gating, sentiment signals, and AI-generated handoff summaries","50+ enterprise connectors that let agents read and act across ITSM, ITAM, HRIS, CRM, ERP, and ITOM systems","Enterprise workspaces with RBAC, tenant isolation, audit logs, encrypted agent API keys, and usage tracking"],RF=["Multi-LLM provider support across Anthropic, OpenAI, Google Gemini, Meta Llama, and DeepSeek without vendor lock-in","RAG-powered knowledge base with PDF, Word, Excel, image OCR, logs, CSV, and Markdown ingestion plus hybrid semantic search","Semantic intent routing and automatic AI-to-AI handover that preserves conversation context when a better-fit agent is detected","AI-assisted business-rule generation that turns plain-language policy into structured, validated logic","AI-generated responses, code, runbooks, summaries, and next-best actions grounded in live enterprise context","AI conversation analytics with topic clustering, anomaly detection, knowledge-gap detection, and weekly leadership briefings"],PF=["Sub-second voice pipeline with streaming speech-to-text, parallel reasoning, low-latency text-to-speech, and full-duplex barge-in handling","Autonomous mid-call execution across CRM, ITSM, ERP, and 50+ enterprise connectors while the caller is still speaking","Enterprise telep
57hony coverage across SIP trunks, Twilio Programmable Voice, Cisco Unified Communications Manager, Avaya, and Genesys Cloud","Context-preserving human handoff with confidence gating, escalation triggers, warm transfer, and AI-generated call briefings","Call analytics with containment rate, first-call resolution, average handle time, CSAT, and intent-level performance tracking","Compliance controls for PCI-DSS and HIPAA including PAN and PHI redaction, consent management, and immutable call audit trails"],OF=["Context-aware multi-turn reasoning with persistent call-graph memory, entity tracking, intent history, and clarifying questions","Real-time multi-dimensional sentiment and intent scoring for frustration, urgency, satisfaction, churn risk, and escalation readiness","AI-generated call transcripts, summaries, extracted action items, outcome classification, and searchable conversation intelligence","RAG knowledge grounding for product manuals, compliance documents, FAQs, and enterprise content","Multi-language and accent-adaptive voice understanding with 40+ languages, code-switching, and locale-aware parsing","Multi-LLM provider flexibility across Anthropic Claude, OpenAI GPT, Google Gemini, and on-premises models"],f3=["Continuous discovery across Windows, macOS, Linux, servers, and cloud workloads","Risk-based prioritization using asset criticality, business service impact, and maintenance windows","Phased rollout rings with canary, pilot, broad deployment, and automatic hold points","One-click rollback, failure recovery, and post-deployment verification","Audit-ready compliance dashboards with ownership, evidence, and exception tracking","Native CMDB and ITAM synchronization for complete asset-to-patch traceability"],g3=["AI patch risk scoring that ranks what to deploy first and explains why","Change impact prediction across dependent devices, applications, and business services","Exploitability and exposure analysis that highlights urgent remediation candidates","Smart maintenance-window recommendations based on usage, geography, and device health","Failure prediction with AI-generated remediation steps before a rollout exp
57ands","Natural-language patch reporting for executives, auditors, and operations teams"],DF=[{heading:"Continuous patch visibility",body:"AI Powered Patch Management builds a live inventory of missing, superseded, failed, and successfully deployed patches across the enterprise. It normalizes vendor advisories and package metadata into a single operational view.",bullets:["Discover patch state from managed endpoints, servers, and cloud workloads","Classify updates by operating system, application, severity, and release type","Identify stale agents, unreachable devices, and assets outside standard maintenance coverage"]},{heading:"Risk-based prioritization",body:"Instead of treating every available update equally, the platform combines technical severity with real business context. Teams get a ranked action list that reflects exposure, service criticality, device importance, and deployment readiness.",bullets:["Prioritize by asset criticality, business service dependencies, and exposure","Explain the factors behind every recommended deployment order","Separate urgent remediation from routine maintenance without losing audit history"]},{heading:"Safe rollout and recovery",body:"Every deployment can move through controlled rings so teams can validate results before expanding across the fleet. Automated gates pause campaigns when failure rates, performance signals, or user-impact thresholds are exceeded.",bullets:["Use canary and pilot groups before broad production rollout","Capture pre- and post-deployment health checks with device-level outcomes","Rollback failed changes and route exceptions to the right owner with full context"]},{heading:"Governance and compliance",body:"Patch campaigns remain fully traceable from approval through completion. Compliance leaders can see coverage, overdue assets, approved exceptions, and evidence for every reporting period.",bullets:["Track policy targets, exceptions, approvals, and expiry dates","Generate fleet, business-unit, site, and executive compliance views","Export an audit trail showing who approved, deployed, deferred, or remediated each change"]}],LF=[{title:"CVSS-only prioritization",body:"Severity scores lack endpoint exposure, weaponization, and business context. Teams spend scarce maintenance windows on vulnerabilities that may not represent the highest real-world risk."},{title:"Fragmented tooling",body:"Disconnected scanners, endpoint tools, and deployment systems create stale data and a dangerous gap between identifying a CVE and verifying its remediation."},{title:"Reactive coverage",body:"Without automated discovery, shadow IT, transient remote devices, and unmanaged endpoints remain outside the patch scope even when deployment tooling is effective."},{title:"Deployment without verification",body:"A successful command is not proof of remediation. Pending reboots, configuration conflicts, and failed installs can leave an endpoint vulnerable after the job reports success."}],VF=["Continuous discovery through native agent telemetry and agentless scanning","Threat-informed priority using CISA KEV, CVSS, EPSS, patch age, and business context","Explainable AI with visible score components, rank changes, and analyst overrides","Governance-first automation with independent approval for high-risk exceptions","Closed-loop verification that proves the vulnerable state was actually mitigated","Honest reporting that exposes unknown, stale, managed, and non-compliant segments"],_F=[{title:"Discovery",body:"Identify managed, remote, transient, and unmanaged infrastructure so every subsequent stage works from a complete data set."},{title:"Enrichment",body:"Connect patch and CVE intelligence to software identity, endpoint metadata, asset criticality, exposure, and known exploitation activity."},{title:"Prioritization",body:"Generate an explainable, rank-ordered remediation list that shifts as threat intelligence, asset importance, and patch age change."},{title:"Staging",body:"Validate applicability, content integrity, dependencies, disk space, service state, and representative pilot targets before release."},{title:"Deployment",body:"Deliver through policy-driven maintenance windows and deployment rings with evidence gates, throttling, retries, and automatic failure holds."},{title:"Verification",body:"Run post-change telemetry and active vulnerability checks, reconcile before-and-after state, and return unresolved devices to the action queue."}],zF=[{title:"Windows",body:"Integrate Windows Update Agent intelligence, KB-level telemetry, pending reboot state, vulnerability context, ring-based deployment, and post-change verification.",bullets:["Precise identification of required updates from current system configuration","Pilot, production, and critical deployment rings with automated gates"]},{title:"Third-party applications",body:"Treat browsers, runtimes, productivity tools, and collaboration software as part of the same risk-based program instead of leaving the practical exploitation surface unmanaged.",bullets:["Normalize installer formats, silent switches, versions, and vendor catalogs","Map application updates to CVEs and validate packages before broad release"]},{title:"Windows, macOS, and Linux",body:"Apply one accountability model across native update frameworks, MDM profiles, package repositories, server cluster
57s, and workstation workflows.",bullets:["Normalize evidence across operating systems and package managers","Preserve service availability and cluster health during server patching"]}],qF=[{label:"CVSS",title:"Technical severity",body:"Measures potential impact, but does not describe the full environmental risk on its own."},{label:"EPSS",title:"Exploitation probability",body:"Adds a probability signal for how likely a vulnerability is to be exploited in the wild."},{label:"CISA KEV",title:"Confirmed active exploitation",body:"Elevates vulnerabilities known to be used by threat actors into an accelerated remediation tier."},{label:"Exposure",title:"Fleet and business context",body:"Connects the vulnerability to affected endpoints, owners, sites, services, and asset criticality."},{label:"Patch age",title:"Unresolved technical debt",body:"Amplifies vulnerabilities that remain unpatched despite an available fix, preventing forgotten exposure from accumulating."}],FF=[{title:"Explainable scoring",body:"Every rank exposes the contribution of CVSS, EPSS, KEV, exposure, asset criticality, and data freshness. Rank-change indicators show what moved the recommendation."},{title:"KEV exception integrity",body:"Known exploited vulnerabilities require accelerated timelines, independent second-party approval, management visibility, hard expiry dates, and tamper-evident audit history."},{title:"Risk policy as configuration",body:"Map asset classes, service criticality, severity, and KEV status to reproducible SLA tiers that are reviewed as the business and threat landscape change."},{title:"Ring-based deployment",body:"Representative pilots, evidence gates, staggered sites or business units, and automatic failure holds limit blast radius without sacrificing security velocity."},{title:"Maintenance and continuity",body:"Classify maintenance windows by asset class, manage reboot impact, accelerate KEV windows, and record technical blockers instead of allowing silent deferrals."},{title:"Content and delivery integrity",body:"Validate package provenance, signatures, hashes, applicability, dependencies, bandwidth, regional distribution points, and preflight readiness before release."},{title:"Traceable deployment objects",body:"Give every campaign a unique job identity, policy binding, execution state, idempotent retry behavior, and per-device outcome evidence."},{title:"Closed-loop verification",body:"Distinguish installed, pending reboot, blocked, unknown, and remediated states through active post-change scans and immutable evidence retention."},{title:"Bounded exceptions and reporting",body:"Require owners, justification, compensating controls, expiry, closure conditions, escalation, and audience-specific evidence views for every deferred risk."}],BF=[{title:"Multi-factor asset risk",body:"Synthesize patch posture, compliance gaps, hardware health, and user-behavior anomalies into a transparent risk view."},{title:"Compliance gap remediation",body:"Map endpoint configuration against CIS Benchmarks, NIST CSF, and ISO 27001 to generate prioritized remediation playbooks."},{title:"Drift detection",body:"Compare endpoints with known-good baselines, classify deviations, and suggest changes while keeping human approval in the loop."},{title:"Predictive maintenance",body:"Use historical usage telemetry to recommend reboot and maintenance windows that improve success rates and reduce user disruption."},{title:"Remediation proposals",body:"Generate executable recommendations with confidence scores as a bridge from vulnerability identification to controlled deployment."},{title:"Operational copilots",body:"Give help-desk teams device and policy context while producing executive-ready briefings from governed operational data."}],HF=["Human approval gates remain mandatory for production changes.","Immutable logs capture every recommendation, supporting data point, override, and final decision.","Tenant data boundaries and prompt hygiene protect sensitive corporate metadata.","Low-confidence flags surface stale or incomplete data instead of hiding uncertainty.","Natural-language answers link back to governed endpoint evidence; unsupported answers return no result."],GF=[{phase:"01",title:"Establish the baseline",body:"Deploy telemetry across the primary workstation population to validate coverage, data quality, and inventory visibility without changing endpoint configurations."},{phase:"02",title:"Align policy",body:"Import standards such as CIS Benchmarks and run the compliance engine in Audit Only mode to measure the gap between current state and policy targets."},{phase:"03",title:"Pilot with evidence gates",body:"Select a non-critical cohort and require human approval for each automated patch cycle while the organization validates the recommendation engine."},{phase:"04",title:"Scale coverage",body:"Add third-party catalogs and server populations, then automate risk-based prioritization across the global estate."},{phase:"05",title:"Formalize governance",body:"Define repeatable, time-bound exception workflows with automatic expiry and clear ownership."},{phase:"06",title:"Continuously improve",body:"Use trend data and AI refinement cycles to optimize patch intervals, reduce downtime, and lower the attack surface."}],UF=["Coverage quality: distinguish current, stale, unknown, and unmanaged assets.","Prioritization: compare AI recommendations with analyst judgment and verify KEV identification.","Governance: test independent KEV exception approval and traceability in reporting.","Deployment: test pilot rings, maintenance windows, failure handling, retries, and content delivery.","Verification: prove which endpoints are remediated and which remain vulnerable.","Commercial fit: evaluate catalog depth, integrations, services, and total operating cost."],XF=[{title:"Security",body:"Reduce time from intelligence ingestion to prioritized action, critical and KEV exposure age, and risk on critical assets."},{title:"Operations",body:"Improve first-time deployment success, reduce failed-deployment diagnosis time, and lower campaign preparation effort."},{title:"Governance",body:"Increase exception completeness and independent approvals while reducing audit evidence retrieval time."}
57,{title:"Leadership",body:"Track open critical exposures, risk concentration across business services, and time to produce executive-ready briefings."}],$F=["12 specialist AI agents spanning requirements, architecture, specifications, planning, coding, QA, deployment, and release","Structured handoffs from business requirements to technical specifications, acceptance criteria, dependency maps, and risk registers","Production delivery support with code generation, database design, automated testing, CI/CD pipelines, infrastructure-as-code, and release orchestration","AI-powered peer review and validation that catches security issues, anti-patterns, maintainability risks, and documentation gaps before release","Feature-flagged production rollouts to controlled release buckets with automated release-note generation","Versioned outputs and recoverable workflow iterations so teams can experiment without losing stable work"],WF=["Bring-your-own AI model support across OpenAI, Anthropic Claude, Google Gemini, Meta Llama, DeepSeek, and custom or self-hosted models","Multi-model comparison that runs one request across 2–5 models and lets teams compare and select the strongest output","Multi-agent Swarm Mode that runs specialized agents in parallel, synthesizes their outputs, and surfaces conflicts with rationale","Semantic code search that learns repository conventions, reuses existing utilities, and keeps generated code aligned with the codebase","Vibe Code conversational refinement that updates existing output in plain language while preserving numbered versions and rollback paths","AI-generated requirements, architecture, API contracts, data models, code, tests, documentation, and deployment runbooks"],KF=["No-code agent builder for ServiceNow with reusable tools, workflows, guardrails, and human approval checkpoints","Open AI architecture supporting public LLMs, Now Assist models, custom LLMs, and SLMs without vendor lock-in","Multi-step agent orchestration that connects ServiceNow workflows with enterprise systems and specialized agents","21 specialist compliance auditors with continuous, scored evidence analysis across major regulatory frameworks","Native ServiceNow execution across incidents, changes, knowledge, SLA operations, and cross-functional workflows","Production deployment paths for public, private, hybrid, and on-premises AI architectures"],YF=["AI model training and tuning with domain-specific prompts, feedback loops, and performance evaluation","RAG-grounded agent responses using enterprise knowledge, ServiceNow records, compliance evidence, and historical data","AI-driven incident classification, root-cause diagnosis, resolution recommendations, and major-incident prediction","Intelligent change-risk scoring with CMDB depen
57dency analysis, conflict detection, and adaptive execution","Self-evolving knowledge gap detection with automatically generated and refreshed knowledge articles","Cross-auditor correlation that connects findings across compliance, incident, change, SLA, and operational domains"],QF=[{value:"5",label:"Delivery frameworks"},{value:"1",label:"Governed portfolio view"},{value:"AI",label:"Forecasting and risk signals"},{value:"Traceable",label:"Decision history"}],x3=["Portfolio, program, project, workstream, milestone, dependency, risk, issue, and decision records connected in one operating model","Native Agile, Waterfall, Hybrid, Scrum, and Kanban planning with governance controls that adapt to the delivery context","Professional Services Automation for engagements, statements of work, utilization, time, deliverables, and margin visibility","Resource capacity planning with role, skill, availability, location, and allocation context for confident staffing decisions","Financial controls that connect approved funding, forecast, actuals, change requests, and variance commentary","Scenario planning that lets PMOs test sequencing, staffing, scope, and funding choices before committing to a plan","Executive reporting built from governed delivery data instead of manually reconciled slide decks","Audit-ready history for approvals, baselines, changes, AI recommendations, overrides, and evidence attachments"],Rg=["Schedule and completion forecasting that learns from delivery history, current throughput, dependencies, and remaining work","Early risk prediction that surfaces the leading indicators behind likely schedule, budget, capacity, or quality variance","AI-generated executive narratives that explain what changed, why it matters, and where leadership attention is needed","Resource-to-work matching that considers skills, seniority, availability, workload, location, and assignment constraints","Dependency impact analysis that traces downstream milestones and proposes sequencing options when a commitment moves","Scenario recommendations that compare delivery outcomes across scope, staffing, funding, and timing assumptions","Natural-language portfolio questions with source-linked answers grounded in governed plans and current records","Explainable confidence, source context, human approval, and override history for every AI-assisted recommendation"],ZF=[{title:"Strategy gets lost in translation",body:"Executive priorities are documented in one place, delivery plans in another, and the connection between an investment and its outcomes is rebuilt by hand.",icon:"strategy"},{title:"Capacity is managed after the fact",body:"Resource managers discover conflicts when work is already committed, leaving teams to negotiate skills, availability, and competing demand under pressure.",icon:"capacity"},{title:"Variance arrives before visibility",body:"Budget, schedule, and margin conversations begin with stale status reports because actuals, forecasts, changes, and delivery evidence are not connected.",icon:"variance"},{title:"AI advice lacks accountability",body:"A recommendation without source context, confidence, or an approval trail is difficult to operationalize in a governed enterprise environment.",icon:"trust"}],JF=[{name:"Agile",descriptor:"Outcome-led adaptability",body:"Keep strategy visible while teams refine scope through iterative planning, evidence-based prioritization, and regular value reviews.",practices:["Roadmaps and themes","Backlog hierarchy","Increment planning","Value and outcome tracking"]},{name:"Waterfall",descriptor:"Controlled stage delivery",body:"Govern sequential work with baselines, stage gates, critical path awareness, formal approvals, and traceable change control.",practices:["Phase gates","Baseline schedules","Acceptance criteria","Formal change requests"]},{name:"Hybrid",descriptor:"Governance with flexibility",body:"Combine portfolio-level controls with iterative team execution so regulated or complex programs can move without losing oversight.",practices:["Governed milestones","Iterative work packages","Cross-team dependencies","Integrated status"]},{name:"Scrum",descriptor:"Cadence and accountability",body:"Coordinate product owners, delivery teams, and stakeholders around sprint goals, increments, impediments, and inspect-and-adapt rituals.",practices:["Sprint planning","Product backlogs","Reviews and retrospectives","Impediment tracking"]}
57,{name:"Kanban",descriptor:"Flow and throughput",body:"Make work-in-progress, bottlenecks, service classes, and flow performance visible across operational and project teams.",practices:["Visual work queues","WIP limits","Flow metrics","Explicit service policies"]}],eB=[{id:"governance",eyebrow:"Portfolio and program governance",title:"Make every investment accountable to a governed plan",body:"XpediOo gives PMOs one connected hierarchy from strategic objective to portfolio, program, project, workstream, and deliverable. Decision rights, stage gates, health signals, and outcome measures stay attached to the work they govern.",bullets:["Model portfolios by business objective, funding envelope, strategic theme, business unit, or service line","Standardize intake, prioritization, approval, baseline, review, and closure workflows without forcing every team into one methodology","Roll up status, risk, dependencies, financials, benefits, and decisions from delivery teams to program and executive views","Keep ownership, accountable executives, steering groups, and escalation paths explicit at each level"]},{id:"psa",eyebrow:"Professional Services Automation",title:"Run client delivery and internal change from the same control center",body:"Professional services teams can connect the commercial promise to the delivery reality. Scope, statements of work, phases, deliverables, time, expenses, staffing, utilization, and margin context are managed as one engagement record.",bullets:["Translate contracted scope and milestones into deliverable plans with accountable owners and acceptance evidence","Track planned, scheduled, submitted, and approved time against engagement, work package, and billing context","View utilization, bench exposure, skill demand, and assignment risk across client and internal work","Give delivery leaders a current view of forecast effort, change impact, margin pressure, and client commitments"]},{id:"capacity",eyebrow:"Resource capacity and skills",title:"Put the right capability on the work that matters next",body:"Resource managers can plan at the level of people, roles, teams, or skills. XpediOo brings supply, demand, allocation, availability, and constraints into a single view so staffing decisions are made before commitments become conflicts.",bullets:["Match upcoming demand to skills, proficiency, certifications, location, time zone, and seniority","Compare committed, planned, tentative, and available capacity by team, role, practice, or period","Expose over-allocation, under-utilization, single points of failure, and knowledge concentration","Let managers test internal moves, contractors, hiring, sequencing, and scope changes in a governed scenario"]},{id:"delivery",eyebrow:"Milestones and dependencies",title:"See the delivery system, not just a list of tasks",body:"A milestone is only useful when its dependencies, assumptions, owners, and downstream commitments are visible. XpediOo maps the delivery network so teams can act on the consequences of movement before a date turns red.",bullets:["Link cross-project dependencies to milestones, decisions, risks, releases, vendors, and external commitments","Trace upstream blockers and downstream impact across programs and portfolios","Baseline target dates and capture the reason, approver, and evidence behind each change","Use critical path, slack, milestone confidence, and dependency aging to focus review conversations"]},{id:"financials",eyebrow:"Financial controls",title:"Connect delivery decisions to funding and forecast reality",body:"Financial governance belongs inside delivery planning. XpediOo ties approved budgets and funding decisions to forecasts, actuals, committed spend, change requests, and benefit assumptions without turning the project plan into a finance afterthought.",bullets:["Track approved funding, planned cost, actual cost, committed cost, estimate to complete, and estimate at completion","Manage funding gates, budget transfers, contingency, purchase commitments, and financial approvals","Explain variance with owner commentary, source records, trend history, and corrective action","Bring revenue, cost, margin, and billing milestones into professional-services engagement views"]},{id:"scenarios",eyebrow:"Scenario planning",title:"Explore the trade-offs before the portfolio moves",body:"Planning decisions rarely have a single variable. Build a safe working copy of the portfolio, change the assumptions, and compare delivery timing, capacity pressure, funding exposure, and strategic coverage before selecting a path.",bullets:["Test sequencing, scope reduction, staffing changes, funding shifts, and target-date alternatives","Compare baseline and scenario views with transparent assumptions and decision notes","Identify which milestones, commitments, teams, and financial controls change under each option","Promote an approved scenario into the governed plan with a complete decision record"]},{id:"reporting",eyebrow:"Executive reporting",title:"Give leaders the signal, context, and decision path",body:"Executive views should answer what changed, what is at risk, what is consuming capacity, and what decision is needed. XpediOo turns governed delivery records into concise portfolio narratives with drill-through context.",bullets:["Create role-aware views for executives, portfolio councils, PMOs, program leads, delivery managers, and resource leaders","Show investment health, strategic alignment, milestone confidence, dependency exposure, capacity, and financial trend together","Generate narrative status updates from current evidence, with owners and source records available for review","Export consistent reports for steering meetings without losing the underlying audit context"]},{id:"audit",eyebrow:"Auditability and controls",title:"Move quickly without losing the record of why",body:"Governed delivery depen
57ds on more than permissions. XpediOo preserves the operational context behind a plan: who changed it, what was approved, what the AI recommended, which evidence informed the decision, and how the outcome evolved.",bullets:["Capture immutable activity history for plan, status, scope, budget, resource, milestone, and approval changes","Retain baseline versions, decision logs, evidence attachments, and exception commentary","Separate AI suggestions from human-approved actions with confidence, source context, and override history","Support role-based access, accountable ownership, review cadences, and controlled report distribution"]}],tB=[{title:"Strategy becomes executable",body:"Priorities, investments, delivery plans, and outcomes stay connected so portfolio conversations begin with intent and end with accountable action.",signal:"Strategic alignment"},{title:"Capacity becomes a planning input",body:"Resource choices are made with demand, availability, skills, and competing commitments in view rather than after the plan is already sold.",signal:"Workforce readiness"},{title:"Variance becomes an early conversation",body:"Forecast movement, emerging risks, dependency pressure, and cost signals are visible early enough for leaders to choose a response.",signal:"Predictable delivery"},{title:"Governance becomes evidence",body:"Approvals, decisions, changes, recommendations, and outcomes are recorded in the flow of work instead of reconstructed for the next review.",signal:"Operational trust"}],aB=[{title:"Human-owned decisions",body:"AI can prioritize signals and propose a next action, while accountable leaders retain approval, override, and escalation authority."},{title:"Evidence-linked recommendations",body:"Forecasts and risk signals show the source records, contributing factors, confidence, and assumptions that shaped the recommendation."},{title:"Policy-aware workflows",body:"Stage gates, financial thresholds, change controls, and review cadences can be tailored to the portfolio and delivery framework."},{title:"One system of record",body:"Plans, people, money, dependencies, decisions, and status narratives reference the same governed objects across every level."},{title:"Reviewable history",body:"Every material change carries its author, timestamp, previous value, reason, approver, and supporting evidence."},{title:"Methodology freedom",body:"Teams can work in Agile, Waterfall, Hybrid, Scrum, or Kanban while the portfolio still receives consistent governance signals."}],iB=[{title:"Shape demand",body:"Capture ideas, requests, strategic themes, client demand, and investment cases with the context needed for a fair prioritization conversation."},{title:"Commit the plan",body:"Approve scope, funding, outcomes, milestones, dependencies, and capacity assumptions with accountable owners and explicit gates."},{title:"Deliver with context",body:"Let teams work in the framework that fits while portfolio leaders see progress, blockers, changes, and decisions as they happen."},{title:"Sense the future",body:"Use AI forecasting, risk prediction, capacity analysis, and scenario comparison to identify variance before it becomes a surprise."},{title:"Decide and learn",body:"Record the decision, apply the approved change, communicate the narrative, and carry lessons into the next planning cycle."}],Pg=["Major incident predictor with 87% accuracy and a 2–6 hour early warning horizon before P1/P2 escalation","Change risk scoring (0–100) with explainable factor breakdown, CAB recommendation engine, and freeze-window conflict detection","21 specialist AI Auditors covering SOX, HIPAA, GDPR, SOC 2, FedRAMP, ISO 27001, PCI-DSS v4.0, HITRUST, DORA, and ISO 22301 continuously","Cross-Auditor Correlation Engine that surfaces causal chains and compound risks across all 21 compliance domains simultaneously","Knowledge gap detection engine that auto-generates structured KB articles directly from incident pattern data","AI resolution enrichment with approval workflow — validated recommendations fed back into a continuous training loop"],Og=["ML-powered incident classification trained on historical patterns with 92%+ accuracy and instant queue routing","Compound anomaly scoring that correlates signals across infrastru
57cture, application, and process layers simultaneously","Predictive capacity forecasting — 90-day horizon, ±8% accuracy, and breach prediction weeks before SLA thresholds are hit","Workforce intelligence — agent fatigue scoring, bottleneck analysis, and attrition risk modelling across service teams","AI-generated change documentation — implementation plan, rollback procedure, test cases, and compliance checklist produced from a change description alone","Continuous compliance evidence collection with confidence-graded, dimension-scored, regulator-ready audit artefacts across 10+ frameworks"],nB=[{heading:"AI Insights & Incident Intelligence",body:"AI works at every step of the incident lifecycle — from first alert to closed ticket — to accelerate resolution and prevent recurrence across the enterprise.",bullets:["Automated classification routes every incident to the right team with 92%+ accuracy and zero manual triage","Similarity detection surfaces related open incidents and known problems in real time for immediate fix reuse","Root cause analysis pinpoints the most likely cause from incident timelines, change history, and CMDB relationships","Impact radius maps affected services, users, teams, and dependencies — providing a full blast-radius view instantly"]},{heading:"Major Incident Predictor",body:"Identifies emerging P1/P2 events hours before they escalate — enabling proactive intervention before business impact occurs.",bullets:["Signal aggregation monitors metric deviations, error rate spikes, change activity, and CMDB dependency graphs simultaneously","Pattern matching compares current signal clusters against historical major incident fingerprints using ML similarity models","Probability scoring outputs a 0–100 score with severity prediction, confidence level, and time-to-impact estimate","Automated alerting pre-populates incident bridge details and suggests immediate mitigation steps","45% reduction in P1 events and 87% prediction accuracy in production deployments"]},{heading:"Change Risk & Lifecycle Governance",body:"Every change request is scored for risk before it reaches the CAB — with a full AI breakdown of factors, confidence, and recommendation. Change lifecycle audits run pre-submission, pre-approval, pre-deployment, and post-deployment.",bullets:["AI risk score (0–100) with explainable factor breakdown across complexity, timing, dependencies, and history","CAB recommendation engine states whether CAB review is required with urgency level and human-readable rationale","Conflict detection identifies scheduling conflicts, dependency collisions, and freeze-window violations across all pending changes","AI-generated implementation plan, rollback procedure, test cases, release notes, and compliance checklist from the change description","80% reduction in change-related incidents across production deployments"]},{heading:"Knowledge & Problem Management AI",body:"AI identifies unresolved incident themes with no knowledge coverage, generates the missing articles automatically, and accelerates problem management from candidate detection through board-ready RCA reports.",bullets:["Gap detection scans incidents for recurring themes lacking a KB article — ranked by frequency, severity, and user impact","AI article generation drafts fully structured knowledge articles with symptoms, steps, resolution procedure, and verification","Problem candidate detection identifies chronic patterns by incident frequency, total downtime, and resolution cost","Batch RCA analyses multiple related incidents simultaneously and produces a board-ready report in minutes","3× faster knowledge creation and 68% self-service deflection lift"]},{heading:"Proactive Monitoring & Capacity Forecasting",body:"AI continuously monitors, scores, and alerts before thresholds are breached — and forecasts infrastructure demand and workforce capacity with a 90-day horizon.",bullets:["Anomaly scoring measures deviations from historical baselines (0–100) with compound-risk alert grouping","Capacity forecasting analyses CPU, memory, storage, network, and application utilisation trends with breach prediction","What-if scenario modelling calculates capacity impact of planned changes before they happen","Workforce intelligence tracks agent fatigue, bottleneck distribution, and attrition risk across service teams","35% fewer capacity incidents and ±8% forecast accuracy across production deployments"]},{heading:"21 Specialist AI Auditors",body:"Purpose-built compliance auditors continuously score, evidence, and benchmark each ITSM domain against regulatory requirements — producing regulator-ready artefacts with dimension breakdowns and trend history.",bullets:["SOX, HIPAA, GDPR/CCPA, SOC 2 Type II, FedRAMP/NIST 800-53, ISO 27001, PCI-DSS v4.0, HITRUST CSF, DORA, ISO 22301 — all native","CMDB Accuracy, Incident Management, Change Management, Problem Management, Knowledge Management — process domain auditors","SLA Performance, Capacity, Workforce, Vendor Risk, and Service Catalogue — operational domain auditors","Each auditor produces 0–100 composite scores per domain with dimension breakdowns and audit run history","70% reduction in audit preparation time and 3.2× faster regulatory compliance readiness"]},{heading:"Cross-Auditor Correlation Engine",body:"The intelligence layer that c
57onnects all 21 auditors — surfaces causal chains and compound risks that no single auditor can detect independently.",bullets:["Causal chain discovery hypothesises and scores relationships between findings across all 21 auditors","Compound risk detection surfaces scenarios where medium-severity findings in different domains combine into a critical organisational risk","Cross-domain quick wins identify single remediation actions that simultaneously improve three or more auditor domain scores","System health narrative produces a board-ready summary of overall ITSM and compliance posture from all 21 data points","Each correlation is graded by confidence (High / Medium / Low) and severity with supporting evidence cited"]}],rB=[{title:"Incident Management",body:"40% MTTR reduction, SLA performance +18 points, incident reopen rate -55%."},{title:"Change Management",body:"Failed changes -38%, emergency changes -60%, PIR completion +45%."},{title:"Compliance & Audit",body:"Audit prep time -70%, external audit fees -35%, breach risk -82%."},{title:"Knowledge & Self-Service",body:"Deflection rate +28%, agent onboarding -30% time, KEDB accuracy +60%."},{title:"Vendor Management",body:"Vendor SLA disputes -65%, contract negotiation effort -50%, concentration risk -40%."},{title:"Financial Impact",body:"£1.8M average annual saving from breach prevention. 3.2× faster regulatory compliance readiness."}],sB=["SOX — Financial statement accuracy, segregation of duties, ITGC, and audit trail completeness","HIPAA — PHI access logging, breach risk assessment, Security Rule controls, and Business Associate oversight","GDPR / CCPA — Data subject rights fulfilment, consent management, retention compliance, and breach notification","SOC 2 Type II — Trust service criteria (Security, Availability, Confidentiality, Processing Integrity, Privacy)","FedRAMP / NIST 800-53 — Control family coverage, POA&M tracking, ConMon evidence, and ATO readiness","ISO 27001 — Annex A control assessment, risk register currency, ISMS audit programme compliance","PCI-DSS v4.0 — CDE scoping, 12 requirement area scoring, network segmentation, pen-test schedule","HITRUST CSF — 19-domain control scoring, healthcare-specific inheritance mapping, certification readiness","DORA — ICT risk management, operational resilience testing, third-party ICT provider oversight","ISO 22301 BCMS — BIA completeness, RTO/RPO achievement, BCP test results, crisis communications","CMDB Accuracy & Hygiene — CI completeness, relationship integrity, staleness detection, CMDB coverage","Incident Management Maturity — SLA adherence, escalation patterns, reopen rates, resolver effectiveness","Change Management Maturity — Risk scoring accuracy, CAB quality, conflict rate, PIR completion","Problem Management Maturity — Backlog health, RCA quality, KEDB accuracy, incident recurrence","Knowledge Management — Article quality, deflection rates, gap coverage, contribution compliance","SLA Performance — SLA breach trending, breach cause attribution, escalation pattern analysis","Capacity & Availability — Utilisation trajectories, breach risk prediction, architectural risk identification","Workforce & Capacity — Agent fatigue, bottleneck distribution, attrition risk, workload balance","Vendor Risk Intelligence — SLA adherence, concentration risk, contract currency, dependency mapping","Service Catalogue — Catalogue accuracy, request fulfilment rates, catalogue hygiene and currency","Cross-Auditor Correlation Engine — Causal chains, compound risks, and system health narrative across all 21 domains"],y3=["Unified employee record from hire to retire — integrating payroll, benefits, performance, and compliance data in a single profile","AI-driven recruitment pipeline with intelligent job-matching, automated CV screening, and offer letter generation","Corporate HR policy engine that auto-generates jurisdiction-compliant policies by country with versioning and approval workflows","Automated onboarding and offboarding orchestration with task assignment, provisioning, and day-one readiness tracking","Absence and leave management with real-time entitlement tracking, calendar integration, and compliance rules by region","Workforce analytics and HR reporting across headcount, attrition, diversity, cost, and capability dimensions"],b3=["Employee self-service conversational chatbot for leave, expenses, payslips, policies, and HR case queries — available 24/7","Predictive attrition modelling that identifies flight-risk employees and surfaces personalised retention actions","AI skill-gap anal
57ysis with individual development recommendations, learning path generation, and career trajectory mapping","Automated absence anomaly detection with pattern analysis across teams, sites, and roles","Natural-language HR analytics — ask workforce questions in plain English and receive governed, sourced answers","AI-generated performance review summaries, goal alignment scores, and 360-feedback synthesis"],oB=[{heading:"Core People Management",body:"XpediOo HRMS maintains a single, authoritative employee record that spans personal data, employment history, contract terms, benefits, payroll linkage, and compliance attributes across every country of operation.",bullets:["Centralise employee master data with role-based access and data privacy controls","Track employment types, contract status, probation periods, and employment milestones","Manage multi-entity, multi-currency, and multi-jurisdiction structures without duplication"]},{heading:"Absence Management",body:"The absence engine enforces country-specific leave entitlements, public holiday calendars, and carry-over rules automatically, so HR teams spend time managing exceptions rather than recalculating balances.",bullets:["Configure leave types, accrual rules, and entitlement caps by country, entity, and employee class","Synchronise approved absences with workforce capacity planning and project resource schedules","Detect absence patterns and anomalies with AI-driven alerts before they become business-risk events"]},{heading:"Performance and Development",body:"Continuous performance management replaces the annual review cycle with real-time goal tracking, regular check-ins, and AI-assisted feedback that keeps employees and managers aligned throughout the year.",bullets:["Set, cascade, and track OKRs and objectives at company, team, and individual level","Generate AI-assisted review summaries and 360-feedback synthesis to reduce manager effort","Link performance outcomes to compensation, progression, and succession planning workflows"]},{heading:"Recruitment",body:"End-to-end talent acquisition from job requisition through offer acceptance, with AI matching and automated screening that shortens time-to-hire without sacrificing candidate quality.",bullets:["Publish roles to multiple job boards and internal career portals from a single requisition","Rank and screen candidates with AI matching against the job profile, skills, and company values","Generate offer letters, employment contracts, and pre-boarding packs automatically on approval"]},{heading:"Case Management",body:"HR case management gives employees a governed channel for raising HR enquiries, grievances, and requests, while giving HR teams a full audit trail, SLA visibility, and workload management across every case type.",bullets:["Categorise cases by type — employee relations, payroll, benefits, policy — with SLA targets per category","Assign, escalate, and collaborate on cases with full thread history and document attachments","Surface case trends and recurring themes to HR leadership for proactive policy intervention"]},{heading:"Expense Management",body:"AI-powered expense management captures, validates, and routes employee expense claims against policy rules automatically, reducing reimbursement cycle time and out-of-policy spend.",bullets:["Submit expenses via mobile OCR receipt capture with automatic merchant and amount extraction","Apply configurable policy rules by country, category, and employee grade at point of submission","Route claims for approval, integrate with finance systems, and generate audit-ready reports"]},{heading:"Skill Management",body:"A live skills inventory maps what the organisation knows today, identifies what it needs tomorrow, and surfaces targeted learning to close the gap — making workforce planning a data-driven activity.",bullets:["Build a skills taxonomy aligned to roles, grades, and business capabilities","Capture verified skills from certifications, assessments, project history, and manager endorsements","Identify critical skill gaps across teams and recommend targeted learning, mentoring, or hiring actions"]},{heading:"Corporate HR Policy Generator by Country",body:"The AI policy generator drafts compliant HR policies for any jurisdiction by combining local employment law, regulatory requirements, and the organisation's own standards into a reviewed, versioned document.",bullets:["Generate country-specific policies covering leave, pay, data privacy, conduct, and termination","Version-control policy documents with approval workflows, effective dates, and employee acknowledgement tracking","Alert HR team
57s to regulatory changes that affect existing policies and produce update drafts automatically"]},{heading:"Onboarding & Offboarding People",body:"AI-orchestrated onboarding and offboarding sequences ensure every task — from IT provisioning to compliance sign-off — is assigned, tracked, and completed on time, giving new hires a day-one ready experience.",bullets:["Trigger onboarding workflows on offer acceptance with task plans, welcome content, and buddy assignment","Coordinate across IT, facilities, payroll, and compliance with automated provisioning and checklist tracking","Run structured offboarding with knowledge transfer tasks, access revocation, and exit survey analysis"]},{heading:"HR Analytics",body:"Real-time workforce analytics give HR leaders, finance partners, and line managers accurate headcount, cost, diversity, and attrition data without manual report runs or spreadsheet consolidation.",bullets:["Track headcount, attrition, time-to-hire, absence rates, and cost-per-hire across any dimension","Model workforce scenarios — hiring plans, restructures, and capability investment — with financial impact projections","Deliver role-specific dashboards for HR business partners, COEs, and executive leadership"]},{heading:"Employee Self-Service Conversational Chatbot",body:"The AI HR chatbot gives every employee instant, accurate, and governed answers to HR questions — reducing tier-1 case volume and freeing HR team
57s to focus on complex employee needs.",bullets:["Answer questions on leave balances, payslips, policies, benefits, and expenses in natural language","Raise HR cases, submit expense claims, request approvals, and update personal details through conversation","Hand off to a human HR agent seamlessly when the query exceeds the chatbot's governed scope"]}],lB=[{title:"Fragmented HR systems",body:"When recruitment, performance, payroll, and absence live in separate tools, employee data is inconsistent, HR teams reconcile manually, and employees receive contradictory information."},{title:"Manual compliance management",body:"Managing country-specific leave entitlements, policy requirements, and employment law changes manually is error-prone and leaves organisations exposed to regulatory risk as they scale across borders."},{title:"Poor employee experience",body:"Employees waiting days for simple HR answers lose confidence in the HR function. Self-service portals that require navigation rather than conversation fail to reduce HR case volume."},{title:"Invisible skill gaps",body:"Without a live skills inventory, organisations plan headcount based on role counts rather than capability, and discover critical skill shortages only when a project or product initiative stalls."}],cB=["One authoritative employee record across all HR domains — no reconciliation between modules","AI-first design — every workflow has an AI layer that learns, predicts, or generates rather than just automating rules","Country compliance built in — not a configuration afterthought — across leave, policy, and data privacy","Employee experience at the centre — conversational self-service that works on any device, any time","Governed data with role-based access, audit trails, and consent management for every sensitive attribute","Open integration — connects to payroll, finance, directory, and identity systems without proprietary lock-in"],dB=[{title:"Attract",body:"AI-matched job discovery, intelligent screening, and candidate ranking reduce time-to-shortlist without sacrificing quality or diversity."},{title:"Hire",body:"Digital offer management, background check orchestration, and automated contract generation get candidates to signed status faster."},{title:"Onboard",body:"Structured task plans, IT provisioning, compliance sign-off, and buddy pairing give every new hire a confident first day."},{title:"Develop",body:"Continuous goal alignment, AI skill-gap analysis, and personalised learning paths keep employees growing in roles that matter to the business."},{title:"Retain",body:"Predictive attrition signals, recognition workflows, and performance-linked compensation help managers act before they lose key people."},{title:"Transition",body:"Structured offboarding protects institutional knowledge, closes access, and gathers insight that improves future retention."}],U2=[{group:"AI Video Recruiter",icon:"Video",tagline:"From job description to agentic video interview — without a single recruiter scheduling call.",features:[{title:"Profile-to-JD semantic matching",body:"AI reads every candidate CV and scores it against the full job description — skills, experience depth, seniority, culture signals, and role-specific requirements — producing a ranked shortlist with explainable match reasoning before a recruiter reviews a single document."},{title:"Agentic video interview dispatch",body:"Once a candidate is shortlisted, the platform automatically generates a personalised video interview link and sends it to the candidate with a branded invitation, role context, and a deadline — no scheduling required, no back-and-forth email."},{title:"AI interview question generation",body:"Questions are generated dynamically from the job description, mapped to competency frameworks, and tailored to the candidate's specific profile gaps — ensuring every interview covers the areas that matter most for that role."},{title:"Real-time interview analysis",body:"As the candidate records their responses, AI analyses verbal fluency, response structure, competency signal strength, and tone — producing a scored interview report with supporting evidence clips and a recommendation summary."},{title:"Bias detection and fairness scoring",body:"Every shortlisting decision and interview score is audited for demographic bias. The system flags inconsistencies across candidate groups and provides corrective prompts before decisions are finalised, keeping hiring legally defensible."},{title:"Offer acceptance probability scoring",body:"Predict the likelihood that a candidate will accept an offer based on market data, role level, interview engagement, and response latency — allowing recruiters to prioritise follow-up effort on high-risk acceptances."}]}
57,{group:"AI Employee Self-Service Chatbot",icon:"MessageSquare",tagline:"Every HR answer. Every employee. Every moment. No ticket, no wait, no frustration.",features:[{title:"Multi-intent HR query handling",body:"The AI chatbot understands complex, multi-part HR questions in natural language — 'How many days leave do I have left and can I carry them over?' — and returns governed, personalised answers drawn from live HR system data."},{title:"Proactive employee nudges",body:"Automatically remind employees of upcoming actions — expiring leave balances, overdue training, open goal-setting windows, and review deadlines — via conversational prompts rather than generic email notifications."},{title:"Sentiment detection and escalation",body:"AI monitors conversation sentiment in real time. When frustration, distress, or sensitive topics are detected, the chatbot seamlessly escalates to a named HR advisor with full conversation context — no repetition required."},{title:"Transactional HR self-service",body:"Employees can submit leave requests, raise expense claims, update personal details, request letters, and initiate HR cases directly through conversation — with approvals routed automatically and confirmations returned in the same thread."},{title:"Voice-enabled HR self-service",body:"The chatbot is available via voice on mobile — employees can ask HR questions hands-free, submit requests by speaking, and receive spoken responses — extending self-service to field workers and deskless employees."}]},{group:"AI Recruitment Intelligence",icon:"Briefcase",tagline:"End pipeline guesswork with AI that surfaces the right talent at every hiring stage.",features:[{title:"AI CV parser and skills extractor",body:"Automatically parse unstructured CVs from any format, extract skills, qualifications, tenure, and achievements, and map them to a normalised taxonomy — so the data model is clean before any human reviews a candidate."},{title:"Job description quality analyser",body:"Before a role is posted, AI scores the job description for clarity, specificity, bias language, and completeness — and suggests improvements that will attract a broader, more relevant talent pool."},{title:"Talent pool warm-up",body:"AI continuously monitors passive candidates in the internal talent pool and CRM, ranks them against open roles as they are created, and surfaces warm matches before external sourcing is needed."},{title:"Candidate drop-off risk predictor",body:"Flag candidates who are likely to withdraw before offer stage based on engagement signals — response delays, incomplete assessments, and interview rescheduling patterns — so recruiters can intervene early."},{title:"Interview summary and recommendation pack",body:"After every interview stage, AI generates a structured summary covering competency scores, key quotes, red flags, and a hire / hold / reject recommendation — ready for the hiring manager to review in under two minutes."}]},{group:"AI Performance Management",icon:"TrendingUp",tagline:"Replace generic annual reviews with AI that makes performance a continuous, data-driven conversation.",features:[{title:"AI Performance Goal Generator",body:"Generates SMART goals for any employee by combining their role profile, team OKRs, prior performance data, and competency gaps — producing a draft goal set the manager and employee can refine rather than write from scratch."},{title:"People SWOT Generator",body:"After each performance review cycle, AI produces a personalised SWOT analysis for every employee — Strengths to leverage, Weaknesses to address, Opportunities from skill adjacency, and Threats from attrition risk or market demand for their profile."},{title:"360 feedback synthesis",body:"Collects structured feedback from peers, direct reports, and stakeholders, then synthesises it into themed patterns — separating consistent signals from outlier opinions and presenting a balanced narrative the employee can act on."},{title:"Performance trajectory prediction",body:"Using historical goal completion rates, feedback trends, and engagement data, AI predicts which employees are on a rising trajectory and which are at risk of decline — giving managers a leading indicator rather than a lagging one."},{title:"AI coaching conversation prompts",body:"Before every one-to-one or performance discussion, AI surfaces suggested coaching questions tailored to the employee's current goals, recent feedback, and development plan — helping managers have more effective conversations."},{title:"Under-performer early warning system",body:"AI identifies performance degradation signals — missed check-ins, declining goal progress, increasing case submissions, and peer feedback shifts — before they reach formal performance management, allowing early supportive intervention."},{title:"High-potential identification",body:"Combine performance scores, learning agility signals, peer feedback, and stretch project delivery to automatically identify high-potential employees and surface them to succession planning workflows."}]},{group:"AI Skill & Career Intelligence",icon:"Brain",tagline:"Build an organisation that can see its own capability and close gaps before they become crises.",features:[{title:"Skills taxonomy auto-builder",body:"AI analyses job descriptions, performance reviews, and project records across the organisation to generate and continuously refine a skills taxonomy — no manual taxonomy maintenance required."},{title:"Individual and team skill gap analysis",body:"Map every employee's verified skills against their current role requirements and planned career path, then aggregate gaps at team, department, and organisation level to drive targeted development and hiring decisions."},{title:"AI career pathway generator",body:"For any employee, AI generates two or three plausible career paths based on their current skills, interests, and the roles most similar employees have moved into — making internal mobility a structured conversation rather than a guessing game."},{title:"Internal mobility matching",body:"When a new role opens, AI scans the internal talent pool for employees whose skills, performance, and career trajectory align with the requirements — presenting internal 
57candidates alongside external ones before sourcing begins."},{title:"Learning content recommendation engine",body:"Based on the identified skill gap, AI recommends specific courses, certifications, mentors, and stretch assignments from the integrated learning catalogue — personalised to the employee's learning history and preferred format."},{title:"Certification and licence expiry predictor",body:"Track professional certifications, compliance training completions, and licence renewals across the workforce — and surface at-risk employees before expiry creates a regulatory or operational gap."}]},{group:"AI People Analytics & Workforce Intelligence",icon:"BarChart3",tagline:"Move from reporting on the past to predicting and shaping the future of your workforce.",features:[{title:"Predictive attrition modelling",body:"AI analyses engagement signals, performance trends, absence patterns, compensation positioning, and manager effectiveness to score every employee's attrition risk on a rolling basis — and recommends specific retention actions for high-risk individuals."},{title:"Workforce demand forecasting",body:"Model headcount requirements 90 days ahead by combining business growth plans, project pipelines, attrition forecasts, and planned retirements — giving HR business partners data to drive proactive hiring plans rather than reactive backfills."},{title:"Organisational network analysis",body:"Map informal influence and collaboration patterns across the organisation to identify key connectors, knowledge brokers, and isolated individuals — informing team restructures, succession decisions, and change management strategy."},{title:"DEI analytics and gap identification",body:"Measure representation, pay equity, promotion rates, and interview-to-hire ratios across demographic groups — and surface statistically significant disparities with root-cause analysis to guide targeted DE&I interventions."},{title:"Headcount scenario modeller",body:"Run what-if scenarios for restructures, acquisitions, hiring freezes, and location expansions — modelling the cost, capability, and timeline impact of each option before any decision is communicated."},{title:"Manager effectiveness scoring",body:"Aggregate team attrition rates, engagement scores, performance distributions, and 360 feedback signals to produce a manager effectiveness index — identifying where leadership development investment will have the greatest impact."},{title:"Natural-language workforce querying",body:"Ask workforce questions in plain English — 'Which teams have the highest attrition risk this quarter?' or 'Show me skill gaps in the engineering function' — and receive governed, sourced answers with supporting data."}]},{group:"AI Absence & Wellbeing Intelligence",icon:"ClipboardCheck",tagline:"Detect wellbeing risk before it becomes absence, and manage absence before it becomes a pattern.",features:[{title:"Absence pattern anomaly detection",body:"AI flags statistically unusual absence patterns — Monday/Friday clustering, rolling short-term absences, and post-review spikes — at individual and team level, surfacing them to HR for supportive follow-up rather than disciplinary action."},{title:"Burnout risk prediction",body:"Combine absence frequency, overtime data, performance decline signals, and pulse survey sentiment to produce a burnout risk score for every employee — enabling proactive wellbeing interventions before extended leave occurs."},{title:"Return-to-work risk assessment",body:"When an employee returns from extended absence, AI generates a return-to-work risk score based on absence duration, nature, and historical recurrence — and suggests a phased return plan for high-risk cases."},{title:"Team capacity impact modelling",body:"When absence exceeds threshold levels in a team, AI models the capacity shortfall, identifies the highest-impact coverage gaps, and suggests redistribution or temporary resource options to maintain service delivery."}]},{group:"AI Onboarding & Offboarding Orchestration",icon:"Users",tagline:"Make every first day and every last day as smooth and risk-free as every day in between.",features:[{title:"Personalised onboarding journey generator",body:"AI generates a day-by-day onboarding plan tailored to the new hire's role, location, seniority, and team structure — including introductory meetings, compliance completions, system access milestones, and culture touchpoints."},{title:"Day-one readiness scoring",body:"Track onboarding task completion across IT, facilities, payroll, compliance, and line management in real time — and surface a day-one readiness score so HR can intervene if provisioning is at risk before the employee's first day."},{title:"Knowledge transfer risk assessment",body:"When an employee resigns, AI asse
57sses their knowledge transfer risk based on role criticality, tenure, documentation coverage, and team dependency — and generates a structured knowledge capture plan automatically."},{title:"Exit interview sentiment analysis",body:"AI analyses exit interview responses to extract themes, sentiment patterns, and root causes of departure — aggregating signals across leavers to identify systemic retention risks that individual exit interviews mask."},{title:"Offboarding compliance tracker",body:"Automatically track access revocation, equipment return, final pay processing, reference readiness, and post-employment obligation compliance — with escalation alerts for any item that risks a regulatory or security gap."}]},{group:"AI Case Management Intelligence",icon:"BookOpen",tagline:"Resolve HR cases faster with AI that categorises, routes, and recommends before a human opens the ticket.",features:[{title:"Intelligent case categorisation and routing",body:"AI classifies every inbound HR case by type, urgency, and sensitivity, then routes it to the right HR specialist or business partner — with SLA assignment, priority scoring, and required documentation pre-populated."},{title:"Resolution recommendation engine",body:"For every new case, AI surfaces the three most similar resolved cases with their resolution steps and outcomes — giving the assigned HR advisor a starting point rather than a blank page."},{title:"SLA breach predictor",body:"Monitor active case workload and resolution pace in real time, flag cases that are trending toward an SLA breach, and recommend reassignment or escalation before the deadline is missed."},{title:"Sensitive case risk flagging",body:"Automatically identify cases that carry legal, regulatory, or reputational risk — grievances, whistleblowing, disciplinary matters — and route them to senior HR with a risk summary and recommended handling protocol."}]},{group:"AI Expense Intelligence",icon:"Receipt",tagline:"Approve the right claims instantly and catch policy violations before they cost the business.",features:[{title:"Receipt OCR and automatic expense coding",body:"Employees photograph a receipt and AI extracts the merchant, amount, currency, category, and VAT automatically — populating the claim form without manual entry and mapping the spend to the correct cost centre."},{title:"Policy violation detection at submission",body:"AI checks every expense claim against configurable policy rules at the point of submission — per-diem limits, category restrictions, receipt age, and duplicate detection — rejecting or flagging non-compliant items before they reach an approver."},{title:"Duplicate claim detection",body:"Cross-reference every new claim against the historical expense ledger to identify duplicate submissions — same merchant, amount, and date — and surface them to the approver with evidence before payment is processed."},{title:"Spend anomaly flagging",body:"AI monitors expense patterns at individual and team level, flagging statistically unusual spend — unexpected category shifts, rapid volume increases, and out-of-pattern merchants — for finance review without manual analysis."}]},{group:"AI Corporate HR Policy Generator",icon:"Globe2",tagline:"Stay compliant in every country without a legal review cycle for every regulatory change.",features:[{title:"Country-specific policy generation",body:"AI drafts compliant HR policies for any country by combining local employment law, regulatory requirements, and the organisation's own standards — producing a first draft that is legally grounded and ready for HR and legal review."},{title:"Regulatory change monitoring",body:"Continuously monitor employment law changes across all operating jurisdictions and automatically identify which existing policies are affected — surfacing a change impact assessment and a draft update before the effective date."},{title:"Policy gap analyser",body:"Compare the organisation's current policy library against a comprehensive regulatory checklist for each country and identify gaps — policies that are missing, outdated, or silent on a required topic — with remediation recommendations."},{title:"Employee acknowledgement compliance tracker",body:"Track which employees have read and acknowledged each policy version — by country, entity, and department — and automatically chase outstanding acknowledgements before audit periods or compliance deadlines."}]}],uB=[{title:"HR Efficiency",body:"Reduce HR case volume through conversational self-service, automate policy generation, and eliminate manual data reconciliation across systems."},{title:"Employee Experience",body:"Deliver a consumer-grade HR experience with instant answers, mobile expense capture, and a smooth first-day onboarding journey."},{title:"Compliance & Governance",body:"Stay ahead of local employment law changes with AI-generated policy updates, jurisdiction-aware leave rules, and complete audit trails."},{title:"Workforce Intelligence",body:"Move from reactive headcount reporting to predictive workforce planning with live skill maps, attrition forecasting, and scenario modelling."}],mB=["Visual Workflow Designer — drag-and-drop canvas with 100+ pre-built node types and live preview","LangGraph State Machine Engine — stateful, cyclical multi-agent orchestration with checkpoint persistence","AI Agent Nodes — embed and orchestrate AI agents as first-class workflow steps with model selection","Conditional Branching & AI Routing — LLM-evaluated rules for dynamic path selection based on content and context","Human-in-the-Loop (HITL) Gates — approval checkpoints with SLA enforcement, delegation, and escalation","Parallel Branch Execution — concurrent workflow branches with fan-out, fan-in, and merge synchronisation","Event-driven Triggers — webhook, cron schedule, AI-signal, and enterprise event source triggers","Sub-workflow Composition — nest and reuse workflows as building blocks across the enterprise","Error Handling & Retry Logic — configurable retry policies, circuit-breaker patterns, and fallback branches","Workflow Version Control & Rollback — immutable execution history with one-click rollback to any prior version","Real-time Execution Monitor — live step-by-step visualisation with latency telemetry and variable inspection","Integration Connectors Library — 500+ pre-built connectors to REST APIs, databases, and enterprise apps","Role-based Workflow Governance — designer, publisher, and executor roles with approval-gate ownership","Immutable Audit Trail — cryptographic log of every workflow execution for compliance and forensics","SLA Tracking & Breach Alerts — per
57-workflow SLA targets with predictive alerting and escalation chains","Multi-tenant Workflow Isolation — namespace-separated workflows with cross-tenant governance and quotas","AI-powered Workflow Optimiser — analyses execution patterns and auto-suggests latency and cost improvements","Natural Language Workflow Generation — describe a business process in plain English; AI builds the graph"],v3=["LangGraph stateful graph backend — supports cyclic, self-correcting agent loops that traditional tools cannot model","Human-in-the-Loop approval gates with full SLA enforcement — pause, redirect, or escalate any step","Parallel branch execution with dynamic merge — fan out to concurrent agents and reconvene at a collector node","500+ pre-built enterprise integration connectors — zero custom code to connect any system","Visual Workflow Designer with live debug console — step through executions with full variable inspection","Immutable cryptographic audit trail — every execution logged for regulatory compliance and forensic review"],w3=["Natural language workflow generation — describe a process; AI builds the LangGraph workflow graph","AI-evaluated conditional routing — LLM decides which branch to follow based on document content or data","Intelligent error recovery — AI analyses failures and proposes retry strategies or alternative execution paths","Predictive SLA alerting — ML model forecasts breach risk before it occurs from execution telemetry","Continuous optimisation recommendations — AI reviews historical runs and suggests graph refactoring","Agent-to-agent communication — shared-state message passing across multi-agent workflow nodes"],pB=[{title:"State Graph",description:"Every workflow is modelled as a 
57LangGraph StateGraph — nodes represent computation steps, edges represent transitions. State is typed, validated, and checkpointed at every node boundary."},{title:"Stateful Persistence",description:"Unlike stateless pipeline tools, LangGraph checkpoints workflow state after every node. Long-running workflows survive restarts, and humans can inspect or modify state at any point."},{title:"Cyclic Graphs",description:"LangGraph natively supports loops and cycles — enabling self-correcting agent patterns, retry logic with state memory, and iterative refinement workflows that DAG-only tools cannot express."},{title:"Human Interrupts",description:"Execution pauses at designated HITL nodes, persisting state until a human approves, rejects, or redirects. SLA timers and escalation chains activate automatically on breach."},{title:"Multi-agent Coordination",description:"Agents communicate through a shared, typed state object. Orchestrator nodes route work to specialist agents; reducer functions merge their outputs back into the main workflow state."},{title:"Streaming & Observability",description:"LangGraph streams token-level and event-level updates in real time. Every agent call, tool invocation, and state mutation is surfaced in the live execution monitor."}],hB=["AI-generated form layouts from plain-language descriptions — build a 20-field form in seconds with zero design effort","Conditional logic and branching workflows — show, hide, or route users to different sections based on their answers","Enterprise survey and NPS management with automated distribution and response analytics","Multi-step approval workflows embedded directly in forms — no external BPM tool required","Deep integration with ITSM, HRMS, GRC, and 200+ third-party systems via pre-built connectors"],fB=["Natural language form generation — describe the form you need; AI builds the fields, labels, and logic","AI-powered field validation and data enrichment — auto-complete, address lookup, and anomaly detection on submission","Intelligent response analysis — AI extracts themes, sentiment, and key insights from open-text submissions","Smart duplicate detection — AI identifies and merges repeat submissions or near-identical responses","Predictive form abandonment alerts — ML flags users likely to drop off and triggers contextual assistance"],j3=["Real-time space utilization heat maps built from badge, sensor, and booking data that expose underused floors, rooms, and desks across every site","Predictive maintenance scheduling that prevents unplanned downtime by acting on AI failure-risk scores before HVAC, electrical, or building systems break","Auto-prioritized work orders generated from requests, inspections, and sensor thresholds — ranked by criticality, SLA, and technician availability","Vendor and contractor governance with performance scoring, onboarding workflows, insurance tracking, and spend controls in one place","Automated compliance and inspection checklists with regulatory audit trails for every site, asset class, and statutory obligation","Facilities charge-back automation with cost centre allocation and budget-to-actual reporting for finance alignment","Energy optimisation workflows that turn consumption anomalies into assigned actions, measurable savings, and continuous sustainability improvement","Offline-capable mobile inspections with photo evidence, QR/barcode scanning, and automatic sync when teams reconnect"],N3=["AI demand forecasting for room and desk booking that right-sizes hybrid-work space and flags consolidation opportunities by floor, day, and team","Energy anomaly detection with AI alerts that distinguish equipment faults from occupancy changes and recommend the highest-impact corrective action","AI failure-risk scoring across HVAC, electrical, elevators, and building systems using IoT telemetry, age, maintenance history, and operating conditions","AI-generated executive briefings on utilization trends, maintenance backlog, energy anomalies, compliance exposure, and cost-saving opportunities","AI-assisted visitor pre-registration with identity capture, watchlist screening, arrival prediction, and automated entry logging","Intelligent work order routing that matches technicians by skill, location, certification, workload, and asset familiarity","Natural-language facilities assistant allowing employees to raise requests, find available rooms, report issues, and track work orders by conversation","Automated inspection checklist generation tailored to asset type, regulatory regime, site risk profile, and historical fault patterns","AI vendor performance scoring that detects declining service quality, predicts renewal risk, and recommends corrective actions before contract review","Space scenario modelling that compares consolidation, hybrid-work, and expansion options using predicted occupancy, cost, and employee demand"],gB=[{stage:"Request & Intake",heading:"AI turns every signal into the right action",description:"Requests arrive from employees, sensors, inspections, access systems, and scheduled maintenance. AI classifies the intent, identifies the affected asset or location, checks urgency, and creates a governed work item without manual triage.",points:["Natural-language intake through employee portal, assistant, email, or mobile","IoT threshold alerts automatically converted into actionable work orders","Duplicate request detection across buildings, rooms, and asset records","Priority scoring using criticality, occupancy impact, safety risk, and SLA"]},{stage:"Space & Scheduling",heading:"AI makes every square metre work harder",description:"Occupancy, booking, badge, and sensor data combine into a live picture of how the estate is used. AI forecasts demand and models consolidation, room conversion, and hybrid-work scenarios before decisions are made.",points:["Live occupancy heat maps by site, floor, room, desk, and time of day","Demand forecasting for rooms, desks, amenities, and visitor capacity","AI scenario comparison for consolidation, expansion, and hybrid working","Automated booking recommendations that reduce unused space and friction"]},{stage:"Work Order Execution",heading:"The right work reaches the right team first time",description:"AI prioritizes work by safety, business impact, asset risk, and SLA. It routes jobs to the best available technician or contractor and surfaces the asset context needed to resolve the issue efficiently.",points:["
57Skill, certification, location, workload, and asset familiarity in routing","AI-generated work orders from requests, inspection results, and sensors","Recommended resolution steps based on similar historical failures","Mobile execution with offline checklists, photos, QR scans, and sync"]},{stage:"Compliance & Inspection",heading:"AI prevents missed checks before they become exposure",description:"The platform knows which inspections, certificates, and controls each asset and site requires. AI generates the checklist, monitors completion risk, and escalates missing evidence before an audit or incident.",points:["Regime-aware inspection checklists generated for each asset class","Risk-based inspection frequency adjusted from historical faults","Evidence capture with photo, signature, timestamp, and location trail","Early warnings for overdue statutory checks and expiring certificates"]},{stage:"Closure & Insight",heading:"Every facility event improves the next decision",description:"On closure, AI updates asset history, summarizes the work, measures cost and SLA outcome, and feeds failure patterns into predictive maintenance. Leaders get a clear view of utilization, risk, and savings across the estate.",points:["Auto-generated closure summaries with root cause and next recommendation","Asset, location, vendor, and cost records updated from one completion event","Energy and maintenance trends converted into executive-ready briefings","Continuous learning loop from work orders, inspections, bookings, and outcomes"]}],xB=[{value:"30%+",label:"Reduction in reactive maintenance"},{value:"25%",label:"Improvement in space utilisation"},{value:"40%",label:"Faster facilities request resolution"},{value:"95%+",label:"Inspection and compliance completion"}],yB=[{problem:"Space decisions rely on occasional surveys and spreadsheets",solution:"AI combines live badge, sensor, booking, and demand data into utilization intelligence and scenario models for confident right-sizing."},{problem:"Maintenance is reactive and work queues are manually prioritised",solution:"Failure-risk scoring and automatic priority ranking turn building signals into preventive work before an outage occurs."},{problem:"Compliance evidence is scattered across sites and contractors",solution:"AI-generated checklists, risk-based scheduling, and a complete audit trail keep every obligation and piece of evidence visible."},{problem:"Energy anomalies are found after the bill arrives",solution:"AI distinguishes occupancy changes from equipment faults in near real time and recommends actions tied to measurable savings."}],A3=["AI-optimized scheduling and dispatch weighing technician skill, proximity, parts availability, and SLA risk to assign every job in seconds — no manual board management","Real-time technician tracking with dynamic ETA prediction and automated customer push notifications from dispatch through job completion","Predictive field service planning that recommends preventive visits based on AI failure-risk scores before assets generate reactive calls and emergency costs","Intelligent parts and inventory management with AI demand forecasting and automatic replenishment eliminating first-visit parts shortages across all depots","Contractor and third-party workforce management covering credentialing, job assignment, and live performance scoring against SLA commitments","Billing and time-capture integration automating work order costing, parts reconciliation, and invoice generation on job closure — zero manual reconciliation","Offline-capable mobile technician app — fully functional in basements, rural sites, and signal-dead zones with seamless sync on reconnect","Field workforce capacity forecasting — AI predicts volume spikes 30+ days ahead so staffing matches demand without overtime or idle time"],k3=["AI-generated job summaries and resolution notes capturing work performed, parts used, and recommended next steps — reducing admin time per job by up to 70%","SLA breach prediction engine that triggers proactive re-dispatch or escalation hours before a violation occurs — not minutes after it passes","Route and schedule optimisation that re-runs continuously throughout the day as jobs complete, cancel, or change priority — no manual re-planning","AI-powered first-time fix rate analysis identifying recurring failure patterns and recommending technician training or stock adjustments to close the gap","Customer sentiment scoring after every job with automatic follow-up triggers and service recovery workflows for low-satisfaction outcomes","Natural-language field analytics — ask plain-English questions about utilisation, travel time, and resolution trends across the entire service operation","AI failure-risk scoring per asset — integrates IoT telemetry, maintenance history, and age data to rank assets by breakdown probability","Intelligent parts recommendation engine — AI suggests parts needed before dispatch based on asset type, symptom, and historical resolution patterns","Technician skill-gap detection — AI identifies capability shortfalls from repeat-visit patterns and auto-generates training recommendations","Conversational job briefing — technicians ask the mobile app questions in natural language and get answers from asset history, KB, and prior resolutions"],bB=[{stage:"Job Request & Triage",heading:"AI classifies, prioritises, and queues every job instantly",description:"The moment a work request arrives — from a customer, a sensor alert, or a scheduled PM — AI reads the job type, asset history, urgency, and SLA window, and classifies it in milliseconds. No dispatcher touches it until it's already prioritised.",points:["Multi-source intake: portal, phone, IoT sensor, EAM trigger, and scheduled PM","Instant classification by job type, asset criticality, and SLA tier","Automatic priority scoring based on SLA deadline, customer tier, and asset risk","Duplicate and repeat-visit detection to flag systemic failures early"]},{stage:"Intelligent Dispatch",heading:"The right technician, right skills, right parts — every time",description:"AI matches each job to the optimal technician by evaluating skill certification, current location, travel time, van stock, and SLA risk simultaneously. The dispatch board becomes a confirmation screen, not a decision screen.",points:["Multi-factor optimisation: skill, proximity, parts availability, and SLA weighting","Continuous re-optimisation as jobs complete, cancel, or escalate during the day","Contractor and third-party workforce included in the same dispatch pool","AI-recommended parts list generated before dispatch based on asset and symptom"]},{stage:"In-Field Execution",heading:"AI guides technicians through every job",description:"On-site, the mobile app surfaces full asset history, AI-recommended resolution steps, parts lookup, and knowledge base articles. Technicians work faster and smarter — even offline in signal-dead environments.",points:["Offline-capable app with full asset history, job details, and parts lookup","AI-suggested resolution steps ranked by success rate on similar assets","Live knowledge base search with semantic retrieval — right answer without exact keywords","Conversational job briefing — technicians ask questions in natural language"]},{stage:"SLA & Escalation",heading:"Breaches predicted and prevented, not reported",description:"AI monitors every open job against its SLA window, calculates breach probability in real time, and triggers re-dispatch or escalation automatically. Customers receive proactive notifications throughout — no chasing required.",points:["Real-time SLA countdown with breach probability scoring per job","Automated re-dispatch to a closer technician 
57when breach risk crosses threshold","Multi-tier escalation chains with configurable owners and notification rules","Customer push notifications at dispatch, en-route, on-site, and completion"]},{stage:"Closure & Learning",heading:"Every job makes the operation smarter",description:"On job closure, AI writes the resolution summary, triggers CSAT collection, updates asset history, and feeds failure patterns back into the predictive maintenance model. The operation improves with every completed work order.",points:["Auto-generated closure summaries: work done, parts used, and next recommendations","Automated CSAT dispatch with sentiment scoring and low-score follow-up workflows","Asset history and CMDB updated automatically from job outcomes","First-time fix rate and failure pattern analysis feeding technician training recommendations"]}],vB=[{value:"35%+",label:"Increase in first-time fix rate"},{value:"40%",label:"Reduction in travel waste"},{value:"90%+",label:"SLA compliance with AI breach prediction"},{value:"70%",label:"Less admin time per job with AI summaries"}],wB=[{problem:"Dispatch is manual, skill-blind, and map-only",solution:"AI optimises every assignment across skill, proximity, parts, and SLA risk simultaneously — in seconds, not minutes of board-management."},{problem:"Parts shortages cause costly repeat visits",solution:"AI pre-calculates required parts per job from asset type, symptom, and resolution history — and auto-replenishes depot stock before shortages occur."},{problem:"SLA breaches are reported after they happen",solution:"Breach probability scoring runs continuously; re-dispatch and escalation trigger automatically while there is still time to act."},{problem:"Field data stays trapped in paper and verbal handoffs",solution:"AI generates structured resolution summaries on closure — feeding asset history, CMDB, and the predictive model automatically from every job."}],S3=["Omnichannel case management unifying email, chat, voice, social, and portal into a single queue with unified SLA enforcement across every channel","AI-suggested resolutions grounded in the knowledge base that reduce average handle time by up to 60% without agent retraining or configuration","Customer 360 view combining full interaction history, sentiment trend, account health, and product usage across every touchpoint in one panel","Proactive outreach automation that triggers remediation offers and notifications before customers report issues — turning reactive support into proactive service","Knowledge gap detection that clusters unresolved cases and automatically generates KB article drafts to close recurring deflection failures at scale","SLA enforcement with automated multi-tier escalation chains, manager notifications, and breach risk prediction hours ahead of deadlines","AI-powered agent onboarding assistant — new agents reach full productivity in days, not weeks, guided by AI context cards and suggested actions","Case deflection analytics — AI identifies which contact reasons are deflectable and generates self-service content to eliminate them systematically"],I3=["Real-time customer sentiment and intent analysis scoring tone throughout every interaction and surfacing early distress signals to agents and supervisors","Predictive escalation management that flags at-risk cases before SLA breach occurs and recommends the optimal escalation path and agent reassignment","Automated case classification and routing that assigns category, priority, and team in milliseconds with 92%+ accuracy — no manual triage queues","AI-generated case summaries and closure notes g
57iving agents picking up transferred cases instant full context with zero manual review or memory required","Conversational self-service AI on the customer portal handling 24/7 Tier-1 resolution without agent involvement for the majority of common request types","AI-powered CSAT and NPS analysis extracting themes, sentiment clusters, and trending failure patterns across 100% of survey responses — not a sample","Intelligent knowledge base search with semantic retrieval — agents and customers find the right answer even when they don't know the exact keyword","Generative AI response drafts — AI writes the first-draft reply grounded in KB, policy, and case history; agents review, personalise, and send","Agent next-best-action engine — AI recommends the next step (escalate, offer refund, send article, schedule callback) based on real-time case context","Continuous learning loop — every resolved case, approved draft, and CSAT score feeds back into the AI models to improve accuracy over time"],jB=[{stage:"First Contact",heading:"AI classifies and routes in milliseconds",description:"The moment a case arrives — via email, chat, voice, social, or portal — AI reads the intent, sets the priority, and routes to the right team or conversational bot. No manual triage. No queue-watching.",points:["Multi-channel intake with unified queue normalisation","Intent and urgency classification at 92%+ accuracy","Instant routing to specialist team, bot, or human agent","Priority override rules for VIP, breach-risk, and regulatory cases"]},{stage:"Triage & Context",heading:"Every agent starts with the full picture",description:"As an agent opens a case, AI assembles the Customer 360 — full history, open issues, sentiment baseline, product usage, and similar resolved cases — before the agent types a single character.",points:["Customer 360 auto-assembled from CRM, portal, and billing data","Sentiment baseline and trend from prior interactions surfaced immediately","Similar resolved cases and successful resolutions ranked by relevance","AI-generated case brief replacing the need to read a thread from scratch"]},{stage:"Resolution",heading:"AI drafts the answer before agents ask",description:"KB-grounded resolution suggestions, generative reply drafts, and a conversational AI bot handle the majority of Tier-1 contacts end to end. Complex cases get AI-assisted agent support throughout.",points:["Conversational self-service AI resolves common issues 24/7","AI reply drafts grounded in KB, policy, and case context","Semantic KB search surfaces the right article even without exact keywords","Next-best-action engine guides agents to the optimal resolution path"]},{stage:"Escalation & SLA",heading:"Breach predicted and prevented, not reported",description:"AI monitors every open case against its SLA, predicts breach risk hours ahead, and triggers escalation chains automatically. Supervisors intervene while there is still time to act.",points:["Real-time SLA countdown with breach probability scoring","Automated escalation chains with configurable tiers and owners","Supervisor dashboards showing at-risk cases ranked by urgency","AI re-routing to available agents when primary owner is unavailable"]},{stage:"Closure & Learning",heading:"Every case makes the system smarter",description:"AI writes closure notes, dispatches CSAT surveys, and analyses every response at scale. Unresolved case clusters automatically generate KB article drafts — so the same issue never requires an agent twice.",points:["Auto-generated closure summaries with root cause and resolution steps","CSAT and NPS dispatch with AI-extracted theme and sentiment analysis","Knowledge gap detection generating KB draft articles from case clusters","Continuous model improvement from resolved cases, approvals, and scores"]}],NB=[{value:"60%",label:"Reduction in average handle time"},{value:"40%",label:"Cases resolved by AI without agents"},{value:"92%+",label:"Case classification accuracy"},{value:"100%",label:"CSAT responses analysed — not sampled"}],AB=[{problem:"Agents switch between 5+ tools per case",solution:"One unified workspace combines case, customer 360, KB, sentiment, and AI suggestions — agents never leave the pane."},{problem:"Knowledge bases are static and keyword-only",solution:"Semantic retrieval surfaces the right answer even without exact keywords, and gap detection keeps the KB current automatically."},{problem:"Escalations happen after breaches, not before",solution:"Predictive SLA breach scoring triggers escalation chains hours ahead of deadlines — not minutes after they pass."},{problem:"CSAT surveys cover 5% of interactions",solution:"AI analyses 100% of resolved cases for sentiment, themes, and failure patterns — no s
57ampling bias, no blind spots."}],C3=["Continuous third-party risk scoring across financial, cyber, compliance, and operational dimensions — updated automatically as signals change, not refreshed once a year","Contract lifecycle management with AI-extracted obligations, renewal milestone alerts, and clause deviation flagging against approved templates before signature","AI-powered vendor risk reports generated in one click from uploaded evidence and questionnaire responses — eliminating weeks of manual preparation for audit cycles","Spend analytics and consolidation engine that identifies vendor overlap, redundancy, and negotiation leverage across the entire portfolio without manual data wrangling","Preferred vendor catalogue with AI-assisted selection scoring candidates against risk profile, capability match, and commercial pricing before procurement commits","Regulatory compliance monitoring with automated checks against GDPR, SOC 2, ISO 27001, and DORA — updated as frameworks evolve so teams never chase a moving target","Incident and breach notification tracking that maps vendor SLA obligations and regulatory reporting timelines to automated workflow triggers the moment an event is detected","Centralized audit trail and evidence repository linked to GRC — giving auditors complete third-party coverage without evidence-gathering fire drills at year end"],M3=["AI-guided onboarding questionnaires that adapt to vendor category and risk tier, with automated document verification and gap flagging — no manual chasing of missing evidence","Continuous risk signal ingestion from external data sources — financial filings, breach databases, and news feeds — scored and surfaced in real time as posture shifts","Natural-language vendor risk summarisation that translates complex scoring models into plain-English executive briefings on demand — readable in seconds, not hours","Clause deviation detection that compares uploaded contracts against approved templates and highlights non-standard terms for legal review before execution","Renewal and expiry management with AI-predicted risk trajectory alerts ensuring renegotiations begin before leverage is lost and deadlines are missed","AI performance scorecard generation that turns raw KPI data into trend narratives and ranked improvement recommendations ahead of vendor review meetings","Spend consolidation AI identifying duplicate vendor relationships, shadow procurement, and pricing anomalies across business units for immediate cost recovery","Regulatory gap analysis that maps each vendor's evidence against current framework requirements and generates a remediation plan with owner assignments","AI-powered vendor segmentation that assigns the right diligence depth, review cadence, and controls to every vendor category automatically","Predictive vendor failure alerts using financial distress, service degradation, security events, and missed commitments as leading signals before failure occurs","Conversational vendor intelligence allowing procurement, security, and business owners to ask plain-English questions about exposure, spend, or renewals"],kB=[{stage:"Onboarding & Due Diligence",heading:"AI compresses weeks of diligence into days",description:"When a new vendor relationship begins, AI-guided questionnaires adapt to vendor category and risk tier, verify uploaded documents automatically, and flag evidence gaps before onboarding progresses — no manual chasing, no spreadsheet tracking.",points:["Adaptive questionnaire generation by vendor category and risk tier","Automated document verification with completeness gap detection","Preliminary risk profile scored before the first human review","Integration with preferred vendor catalogue for fast-lane pre-vetted suppliers"]},{stage:"Risk Scoring",heading:"Continuous scoring, not annual snapshots",description:"AI ingests financial filings, breach databases, regulatory updates, and news feeds in real time — updating each vendor's risk posture the moment signals change, surfacing alerts before exposure becomes incident.",points:["Multi-dimensional scoring across financial, cyber, compliance, and operational risk","Real-time external signal ingestion from breach and financial databases","Natural-language executive briefings generated on demand from score changes","Threshold-based alerts triggering review workflows automatically"]},{stage:"Contract Lifecycle",heading:"AI reads every clause — so your team doesn't have to",de
57scription:"From upload to expiry, AI extracts obligations, flags clause deviations against approved templates, and tracks every milestone. No contract renews by surprise and no non-standard term slips through unreviewed.",points:["AI-extracted obligations, payment terms, and SLA commitments at upload","Clause deviation flagging against approved legal templates before execution","Renewal and expiry alerts timed to ensure renegotiation leverage is preserved","Full contract version history linked to vendor record and audit trail"]},{stage:"Performance Tracking",heading:"KPI evidence becomes intelligence, automatically",description:"Vendor scorecards are generated from raw KPI data — trend narratives, risk trajectory forecasts, and ranked improvement recommendations arrive before review meetings, not during them.",points:["AI-generated performance scorecard with trend analysis and benchmarks","Spend analytics identifying overlap, consolidation opportunities, and savings","Anomaly detection flagging KPI deterioration before it becomes a breach","Review meeting packs auto-generated with prior period comparisons"]},{stage:"Audit & Compliance",heading:"Audit-ready evidence — always on, never scrambled",description:"Regulatory compliance checks run continuously against GDPR, SOC 2, ISO 27001, and DORA. When an audit window opens, evidence is already compiled, gap analysis is already done, and the remediation plan is already assigned.",points:["Continuous framework checks against GDPR, SOC 2, ISO 27001, and DORA","AI-generated gap analysis mapped to each vendor's evidence on file","Remediation plan with owner assignments generated automatically","Centralized evidence repository with full chain-of-custody audit trail"]}],SB=[{value:"65%",label:"Reduction in third-party risk exposure"},{value:"70%",label:"Faster vendor onboarding"},{value:"30%",label:"Decrease in contract renewal misses"},{value:"3×",label:"Faster compliance evidence gathering"}],IB=[{problem:"Risk assessments are annual, not continuous",solution:"AI ingests breach databases, financial filings, and regulatory feeds in real time — so risk posture is current to the hour, not the calendar quarter."},{problem:"Contracts live in inboxes, not a governed system",solution:"Every contract is extracted, obligation-mapped, and milestone-tracked the moment it's uploaded — renewals and deviations surface automatically."},{problem:"Vendor performance reviews rely on anecdotes",solution:"AI-generated scorecards with trend analysis and improvement recommendations turn vendor meetings from opinion sessions into evidence reviews."},{problem:"Audit prep is a month-long fire drill",solution:"Continuous compliance monitoring and a centralised evidence repository mean the audit pack is ready before the window opens — no scrambling required."}],CB=["Consulting Agent maps current-state processes, gathers requirements, and translates business outcomes into a practical ServiceNow implementation roadmap","Architecture Agent designs the target ServiceNow architecture, data model, integrations, roles, workflows, and module dependencies before configuration begins","Implementation Agent configures, tests, documents, and prepares the ServiceNow solution for controlled deployment with implementation evidence at every stage","Five core ITSM modules delivered as one connected programme: Incident, Problem, Change, Service Request, and Service Catalog","Cross-module process design connects incidents to problems, changes, requests, catalog items, approvals, SLAs, and knowledge from the start","Human-led governance with AI acceleration — every recommendation, configuration decision, test result, and approval remains reviewable by the implementation team","Implementation playbooks, reusable configuration patterns, and delivery documentation reduce rework and create a repeatable ServiceNow rollout method","Go-live readiness support covering UAT, migration validation, training handover, cutover planning, and post-launch stabilization"],MB=["Consulting Agent uses discovery notes, stakeholder inputs, process documentation, and ITIL patterns to recommend the right implementation scope","Architecture Agent analyses module dependencies, data flows, integration boundaries, security roles, and scale requirements before design sign-off","Implementation Agent generates configuration guidance, workflow logic, test scenarios, migration checklists, and technical documentation for the delivery team","AI-assisted Incident Management design for categorisation, assignment, prioritisation, impact/urgency, SLAs, major incidents, and knowledge linkage","AI-assisted Problem Management design for recurring-incident analysis, root-cause workflows, known errors, workarounds, and problem-to-change linkage","AI-assisted Change Management design for standard, normal, and emergency changes, risk assessment, approvals, CAB workflows, testing, and rollback","AI-assisted Service Request design for request fulfilment, approvals, assignment groups, SLAs, notifications, and fulfilment task orchestration","AI-assisted Service Catalog design for catalog structure, item definitions, variables, policies, approvals, workflows, and user experience","RAG-grounded implementation guidance retrieves approved ServiceNow documentation, project decisions, process maps, and enterprise standards","Human-in-the-loop checkpoints keep architects, process owners, and ServiceNow administrators in control of every generated recommendation and configuration change"],T3=["Instant PR analysis with AI quality score, inline comments, and executive summary in under 30 seconds","837-rule architecture analysis engine with per-rule AI remediation guidance and before/after code examples","Multi-layer security scanning: SAST, secret detection, dependency audit, container scan, and taint analysis","One-click AI-generated code fixes with context-aware diff patches — no hallucinated or generic templates","DORA metrics benchmarked against Elite/High/Medium/Low tiers with AI bottleneck identification","Real-time quality gates that block, warn, or pass every PR against configurable thresholds automatically","AST-powered taint analysis tracking untrusted data from source to sink with 94% true-positive rate","Executive AI reports: security posture, license compliance, container findings, compliance framework mapping"],E3=["Multi-LLM routing engine: OpenAI for c
57ode review, Claude Sonnet for security, Gemini Pro for complexity","AI Security Advisor explains every vulnerability in plain English with OWASP mapping and exploit scenarios","AI-generated cyclomatic and cognitive complexity refactoring guidance with tailored before/after examples","Anchor-pair clone detection with AI extract-function and module-consolidation suggestions","AI DORA insights correlating code quality scores with deployment failure rates and recommending tier advancement","Vision AI analysis of architecture diagrams, UI screenshots, database ER schemas, and infrastructure diagrams","AI technical debt priority scoring by business impact, effort to fix, and production risk","Natural language PR summaries: what changed, what risk was introduced, and what must be addressed before merge","AI developer skill-gap detection with constructive mentoring recommendations framed as growth opportunities","Agentic code repair roadmap — autonomous AI agent opening fix PRs and self-reviewing before submission (2026)"],TB=[{stage:"01",heading:"Connect",description:"Link any repository in seconds — GitHub, GitLab, Azure DevOps, or Bitbucket — or upload files directly. GitHub token authentication unlocks 5,000 API requests per hour versus 60 unauthenticated.",points:["Paste a repository URL or drag-and-drop files and zip archives","GitHub OAuth token for private repos and higher API rate limits","Continuous monitoring mode: auto-trigger on every push or PR open","Real-time progress bar with pause, resume, and stop controls"]},{stage:"02",heading:"Analyze",description:"AI-powered multi-layer analysis runs automatically across every file: AST parsing for structural understanding, security scanning across SAST, secrets, dependencies, and containers, plus architecture rule enforcement.",points:["Tree-sitter AST parsing across 35+ languages for code-structure-level understanding","Parallel AI code review (OpenAI), security analysis (Claude), and complexity scoring (Gemini)","837 architecture rules applied across scalability, security, performance, and design patterns","Taint analysis tracks user-controlled data end-to-end from HTTP sources to dangerous sinks"]},{stage:"03",heading:"Prioritize",description:"Quality gates evaluate every PR against configured thresholds instantly. AI risk scoring ranks issues by severity, exploitability, and business impact so teams focus remediation effort where it counts most.",points:["Quality gates return PASS, FAIL, WARN, or INCONCLUSIVE — never a false pass on missing data","CVSS-aligned severity classification: CRITICAL blocks PR, HIGH requires fix before merge","AI technical debt priority matrix: impact vs. effort scoring pre-populated by the AI engine","DORA metrics benchmarked against Elite/High/Medium/Low industry tiers in real time"]},{stage:"04",heading:"Fix",description:"One click generates a context-aware AI fix patch for any detected issue. The AI uses full file context — not a generic template — and presents a side-by-side diff with a plain-English explanation before you apply.",points:["AI Fix Service uses full file content, surrounding functions, and imports as context","Fixes cover security (parameterized queries, sanitization), performance, architecture, and style issues","Honest 'fix unavailable' signal when the LLM cannot generate a reliable patch — no hallucinated code","Analysis re-runs automatically after each fix to confirm the issue is resolved"]},{stage:"05",heading:"Monitor",description:"Track engineering performance over time with DORA metrics, per-developer quality trends, and AI-generated executive reports. AI identifies inflection points, correlates quality scores with failure rates, and recommends process improvements.",points:["Deployment frequency, lead time, MTTR, and change failure rate across all repositories","Per-developer and per-team quality scores, PR review times, and technical debt trends","AI narrative reports exportable to PDF, JSON, and CSV for auditor and executive audiences","Scheduled report delivery and comparison reports (this period vs. last period)"]}
57],EB=[{value:"80%",label:"Faster code reviews"},{value:"95%",label:"Vulnerability detection rate"},{value:"60%",label:"Technical debt reduction"},{value:"4×",label:"Increase in deploy frequency"},{value:"2700+",label:"Language rules enforced"},{value:"35+",label:"Languages supported"},{value:"AI Rule Builder",label:"Chat-driven rule generation"}],RB=[{problem:"Manual code review bottlenecks slow release cycles. Senior engineers spend hours reviewing PRs that could be resolved in seconds — delaying deployment and draining engineering capacity.",solution:"AI reviews every PR in under 30 seconds with the expertise of a senior engineer — inline comments, quality scores, security flags, and an executive summary delivered before the first human reviewer opens the diff."},{problem:"Pattern-matching security scanners miss complex multi-hop injection chains. Regex-based tools cannot track tainted data flowing through function calls, variable assignments, and module boundaries.",solution:"AST-powered taint analysis models the full data flow graph from every HTTP input, file read, and external API response down to SQL executors, shell calls, and HTML renderers — catching vulnerabilities no regex can see."},{problem:"Technical debt accumulates invisibly until it causes production incidents. Without continuous measurement, teams have no objective signal for when debt has become a release risk.",solution:"AI continuously quantifies debt across five categories — code smells, architecture violations, security debt, test debt, and dependency debt — and ranks each item by business impact and remediation effort."},{problem:"Architecture drift goes undetected until refactoring costs are prohibitive. Coding standards encoded in documents are never enforced at the point of commit.",solution:"837 database-driven architecture rules covering scalability, security, performance, layering, design patterns, dependency management, and naming are enforced on every commit and PR automatically."}],R3=[{id:"grc",name:"AI Powered Governance, Risk & Compliance",shortName:"AI Powered GRC",icon:We,desc:"Unify governance, risk management, and compliance across 28 global regulatory frameworks in a single, audit-ready module.",capabilities:["28 global framework support (SOX, SOC2, HIPAA, etc.)","Continuous control monitoring and testing","Risk register and treatment workflows","Policy lifecycle management","Automated evidence collection for audits","AI-powered vendor risk and third-party due diligence","Risk-based, IIA-aligned audit planning and management","One-click AI compliance reports from uploaded evidence","Bow-tie mapping of risks, controls, and consequences","AI-generated findings, root cause, and remediation plans","Incident management with regulatory breach notification","Configurable risk appetite and tolerance breach alerts","MCP server exposing live risk and compliance data to AI clients","Centralized evidence storage with object-storage linkage","Executive dashboards for risk posture and audit performance"],highImpactFeatures:IF,aiFeatures:CF,cta:"Explore AI Powered GRC",href:"/grc",keywords:"governance risk compliance audit sox hipaa gdpr iso 27001 pci dss nist regulatory framework policy management vendor risk third party risk control testing evidence collection audit management risk assessment risk register enterprise risk management erm internal audit external audit compliance monitoring regulatory reporting data privacy"},{id:"itsm",name:"AI Powered ITSM",shortName:"AI Powered ITSM",badge:"100+ AI Features",icon:Xa,desc:"AI-driven ITIL 4 & ITIL 5 compliant service management that streamlines the entire service lifecycle.",capabilities:["Incident Management","Service Request","Service Catalogue","CMDB","Problem Management","Change Management","SLA Management","Knowledge Management","Service Portfolio","Release Management","Autonomous incident triage and routing","AI-powered root cause analysis","Predictive change risk scoring","SLA automation and escalation","Self-service knowledge base with AI search","AI Powered Form Builder, Workflow, Reporting Microservices"],highImpactFeatures:MF,aiFeatures:TF,cta:"Explore AI Powered ITSM",href:"/itsm",keywords:"itsm service management itil incident management problem management change management service desk help desk service catalog service catalogue knowledge management request management sla management cmdb configuration management asset service request fulfilment event management release management service level agreement it operations supp
57ort ticket ticketing system"},{id:"ai-auditor-suite",name:"AI Auditor Suite & Service Management AI Studio",shortName:"AI Auditor Suite",badge:"100+ AI Capabilities",icon:be,desc:"End-to-end AI coverage across every ITSM and ESM domain — 21 specialist AI Auditors, a Cross-Auditor Correlation Engine, major incident prediction, change risk scoring, and knowledge gap intelligence in one platform.",capabilities:["21 specialist AI Auditors — SOX, HIPAA, GDPR, SOC 2, FedRAMP, ISO 27001, PCI-DSS v4.0, HITRUST, DORA, ISO 22301","Cross-Auditor Correlation Engine — causal chains and compound risks across all 21 domains","Major incident predictor — 87% accuracy, 2–6 hour early warning, 45% P1 event reduction","Automated incident classification — 92%+ accuracy, 75% triage time reduction, instant routing","Change risk scoring (0–100) with CAB recommendation engine and conflict detection","AI-generated change plans — implementation, rollback, test, release, and compliance documentation","Knowledge gap detection and automatic KB article generation — 3× faster, 68% deflection lift","Problem management AI — candidate detection, duplicate matching, and batch root cause analysis","Capacity & workforce forecasting — 90-day horizon, bottleneck analysis, attrition risk modelling","Proactive anomaly monitoring with compound-risk scoring across infrastructure and process layers","AI resolution enrichment with approval workflow and continuous training feedback loop","70% audit prep time reduction · 40% MTTR reduction · 3.2× faster compliance readiness"],highImpactFeatures:Pg,aiFeatures:Og,cta:"Explore AI Auditor Suite & Service Management AI Studio",href:"/ai-auditor-suite",keywords:"ai auditor audit suite compliance auditor incident auditor change auditor problem auditor major incident mttr correlation engine service management studio sox auditor hipaa auditor iso auditor vendor auditor change risk auditor patch auditor vulnerability auditor knowledge auditor sla auditor"},{id:"itam",name:"AI Powered IT Asset Management",shortName:"AI Powered ITAM",badge:"50+ AI Features",icon:Nr,desc:"Complete visibility across software licenses, hardware assets, and their lifecycle — with built-in compliance enforcement.",capabilities:["Asset Life Cycle Management — Procurement to Decommission","Discovery","Hardware Asset Management","Software Asset Management","Governed Software Delivery & Deployment","S
57oftware License Compliance with Normalization and Auto Software Cataloging","Asset Forecasting","Preventive and Predictive Maintenance","Contract Management","Vendor Management","Shadow IT & Prohibited Software Detection","Warranty, Subscription & Renewal Tracking","Risk Analysis","Cloud & SaaS Asset Spend Optimisation with Licence Right-Sizing","AI-Powered Asset Refresh Forecasting and Budget Planning","End-of-Life and End-of-Support Tracking with Automated Remediation Alerts"],highImpactFeatures:uF,aiFeatures:mF,cta:"Explore AI Powered IT Asset Management",href:"/itam",keywords:"itam it asset management software asset management sam hardware asset management ham asset discovery software license licence management shadow it saas management cloud asset spend optimisation asset lifecycle procurement decommission cmdb inventory asset tracking depreciation contract management warranty renewal end of life end of support eosl eol"},{id:"agentic-studio",name:"Agentic Studio",shortName:"Agentic Studio",icon:vt,desc:"Design, deploy, and orchestrate enterprise AI agents — from simple automations to multi-agent workflows — with no engineering required.",capabilities:["No-Code / Low-Code AI Agent Builder","Multi-LLM Provider Support","Visual Decision Graphs","Intelligent Human Escalation","RAG-Powered Knowledge Base","Cloud Connector Crawling","MCP (Model Context Protocol) Integration","Live Chat with AI Routing","Orchestrator Agents","Voice & Video Capabilities","External Platform Integrations","Enterprise RBAC","Multi-Tenant Workspace Isolation","Agent Performance Analytics with Conversation Quality Scoring","Scheduled & Event-Triggered Agent Execution with Retry and Audit Logging"],highImpactFeatures:EF,aiFeatures:RF,cta:"Explore Agentic Studio",href:"/agentic-studio",keywords:"ai agents agentic studio agent builder chatbot conversational ai no code low code llm rag mcp model context protocol multi agent orchestration workflow automation enterprise chatbot virtual assistant knowledge base agent deployment agent scheduling voice video capabilities rbac multi tenant"},{id:"voice-ai-agentic",name:"Voice AI Agentic Application",shortName:"Voice AI Agent",badge:"Agentic Voice AI",icon:Us,desc:"Deploy autonomous voice agents that listen, reason, and act — handling enterprise calls end to end across support, sales, and operations without scripts or IVR trees.",capabilities:["Real-time speech-to-text with sub-second latency","Context-aware, multi-turn conversational reasoning","Autonomous task execution across CRM, ITSM, and ERP systems","Natural, low-latency text-to-speech with emotion and tone control","Multi-language and accent-adaptive voice understanding","Barge-in and interruption handling for natural conversations","Live sentiment and intent detection during calls","Human-in-the-loop escalation with full context handoff","Call transcription, summarization, and analytics dashboards","Telephony integration — SIP, Twilio, and enterprise PBX systems","RAG-grounded responses from product manuals, FAQs, compliance documents, and enterprise knowledge","Skill-based escalation routing with warm transfer and callback protection","PCI-DSS pause-resume recording controls with automatic PAN and PHI redaction","DTMF capture and locale-aware parsing for secure verification, dates, numbers, and currency"],highImpactFeatures:PF,aiFeatures:OF,cta:"Explore Voice AI Agentic Application",href:"/voice-ai-agentic",keywords:"voice ai voice agent voice chatbot conversational voice ivr replacement interactive voice response telephony call centre call center contact centre speech recognition natural language sip twilio voice automation phone support inbound outbound voice self service escalation voice bot"},{id:"ai-observability",name:"AI Powered Observability",shortName:"AI Powered Observability",badge:"150+ AI Features",icon:Xi,desc:"Full-stack visibility across multi-cloud estates, databases, storage, app servers, and microservices — with AI-generated architectures, compliance audits, and intelligent correlation.",capabilities:["Multi-Cloud Monitoring — AWS, Azure, GCP, Oracle Cloud & OpenStack","Database Monitoring — PostgreSQL, MySQL, MS SQL, Oracle & MongoDB","Storage Monitoring — Dell EMC, HPE, IBM, NetApp, Pure Storage & Hitachi","App Server Monitoring — Tomcat, WebLogic, WebSphere, JBoss, IIS, Node.js & PHP-FPM","Service Performance — Live Microservice Golden Signals & SLO Management","Discovery & Dependency Mapping","AI Cloud Architects generating cost-estimated architectures with IaC","Cloud Auditors with framework-mapped compliance (CIS, SOC 2, PCI-DSS, HIPAA, GDPR, NIST)","Cost Anomaly Detection with AI-generated optimization recommendations","AI Database Assistant with an 11-tool diagnostics suite","Network, IPAM & Synthetic Monitoring","Intelligent Alerting & Incident Response","AI-Assisted Operations Intelligence"],highImpactFeatures:kF,aiFeatures:SF,cta:"Explore AI Powered Observability",href:"/ai-observability",keywords:"observability monitoring cloud monitoring infrastru
57cture monitoring application performance monitoring apm full stack visibility multi cloud kubernetes microservices topology service dependency map anomaly detection infrastructure compliance cloud architecture distributed tracing metrics dashboards real-time monitoring"},{id:"aiops-log-management",name:"AIOps and AI Log Management",shortName:"AIOps & AI Log Mgmt",badge:"120+ AI Features",icon:uu,desc:"Ingest every log your enterprise produces, cluster it with AI into the patterns that matter, correlate anomalies into a single root cause, and resolve recurring failures automatically.",capabilities:["Universal Log Ingestion — Syslog, Cloud, Kubernetes & Application Logs","Multi-Source Event Ingestion — APM, Network, Synthetic & ITSM Tools","AI-Powered Log Analysis & Pattern Detection","AIOps Event Correlation & Noise Reduction","Root Cause Correlation Engine","Temporal Correlation of Deployments, Changes & Event Bursts","Confidence-Scored Root Cause Candidates","Predictive AIOps & Auto-Remediation","Governance, Retention & Compliance","Distributed Trace and Span-Aware Correlation","Multi-Channel Alert Routing and Escalation","Field-Level PII Redaction and Masking at Ingestion"],highImpactFeatures:cF,aiFeatures:dF,cta:"Explore AIOps and AI Log Management",href:"/aiops-log-management",keywords:"aiops log management event correlation log analytics alert management noise reduction root cause analysis incident detection event suppression noc network operations centre operational intelligence log aggregation siem integration anomaly detection alert fatigue ml ops automated remediation"},{id:"ai-automation",name:"AI Powered Application and Infrastructure Automation",shortName:"AI Powered Automation",badge:"Approval-Gated Execution",icon:nt,desc:"AI-assisted script generation, governed endpoint execution, and measurable operational outcomes across Windows PowerShell and Linux Bash environments.",capabilities:["AI-generated PowerShell and Bash scripts from a plain-language purpose and requirements","Governed skill library with typed parameters, risk levels, elevation flags, and version history","Target population preview with hostname, OS, and Satellite Client availability before every job","Blast-radius percentage control that caps execution to a deliberate share of the population","Dry-run mode that simulates a full job with zero endpoint contact","Mandatory human approval gate with full script, target, and risk context","Per-endpoint execution results with exit codes, stdout, and stderr","Immutable audit trail mapped to SOC 2, PCI-DSS, ISO 27001, and HIPAA","AI security analysis and validation before any script is saved","Scoped external API keys for ServiceNow, Jira, monitoring, and CI/CD integrations","Scheduled automation jobs with cron-based triggers and dependency chaining","Role-based skill access control with team-level execution permission policies","Real-time execution dashboards with success rate trending and failure root-cause tagging"],highImpactFeatures:u3,aiFeatures:m3,cta:"Explore AI Powered Application and Infrastructure Automation",href:"/application-infrastructure-automation",keywords:"automation infrastructure automation application automation runbook automation powershell bash script generation ai script cicd pipeline provisioning configuration management dry run blast radius approval gate audit trail scheduled jobs role based access control remediation automation endpoint automation servicenow jira integration"},{id:"dex",name:"AI Powered Digital Employee Experience",shortName:"AI Powered DEX",badge:"250+ Automation Rules",icon:Xu,desc:"Continuously compute a composite DEX score from real endpoint telemetry, then apply 250+ governed automation rules to resolve conditions before they generate a service desk ticket.",capabilities:["Composite 0–100 DEX score built from Device Performance, Application Health, Connectivity, and Sentiment pillars","250+ governed automation rules across 8 trigger categories and 40+ specific trigger types","Per-endpoint AI analysis with experience summaries and ranked recommended actions","Help Desk AI Copilot that turns plain-English questions into safe, read-only fleet queries","AI-generated executive briefings that translate telemetry into board-ready language","AI Tool Adoption Intelligence tracking Copilot, ChatGPT Enterprise, and Claude usage against industry benchmarks","Hardware failure forecasting, crash-spike detection, and Wi-Fi/VPN/DNS anomaly triggers","Every rule governed by a three-step wizard, blast-radius caps, cooldown windows, dry-run, and rollback","Visual Flow Designer for multi-step orchestration with native Jira and ServiceNow integration","DEX peer benchmarking, VDI/external network path attribution, and scoped external API access","Digital Adoption Journeys with In-App Walkthrough Analytics"],highImpactFeatures:p3,aiFeatures:h3,cta:"Explore AI Powered Digital Employee Experience",href:"/digital-employee-experience",keywords:"digital employee experience dex endpoint management endpoint intelligence device performance employee sentiment score user experience monitoring desktop anal
57ytics laptop performance remote work hybrid work device health crash analytics application performance employee productivity endpoint analytics device management"},{id:"pdlc-sdlc",name:"AI Powered PDLC & SDLC",shortName:"AI Powered PDLC & SDLC",icon:Ue,desc:"Develop Enterprise Products and Software using B2B Vibe Coding using any of your chosen LLM Models like Anthropic, OpenAI, Gemini and Custom Models. Every Product Manager, Designer, Engineer, Tester, and Release Manager are partnered with dedicated AI agents — revolutionising traditional workflows into AI-empowered collaborations.",capabilities:["AI Agent for Product Manager — PRD Generation","AI Agent for Designer — Design Pattern Generation","Requirement Analysis Agent","Architecture Agent","Frontend, API & DB Code Generation Agents","Unit Test Code Generation Agent","Code Documentation & Validation Agents","Code Repository Agent","QA Agent — Test Case Generation & Execution","Bug Detection with Auto-Reroute to Engineering","Deployment Agent — Automated Deployment Pipeline","Production Release to Feature Buckets"],highImpactFeatures:$F,aiFeatures:WF,cta:"Explore AI Powered PDLC & SDLC",href:"/pdlc-sdlc",keywords:"sdlc pdlc software development lifecycle product development lifecycle vibe coding ai coding code generation prd product requirements document design sprint agile software testing qa deployment release management devops ci cd product management software engineering b2b development ai developer agent"},{id:"eam",name:"AI Powered Enterprise Asset Management",shortName:"AI Powered EAM",badge:"35+ AI Features",icon:yi,desc:"Manage physical enterprise assets at scale — from procurement to decommission — with AI-optimized maintenance scheduling.",capabilities:["Asset lifecycle management — procurement to decommission","Predictive maintenance scheduling from IoT sensor telemetry","Automated asset depreciation and valuation","Maintenance work order management and technician dispatch","Asset location and condition tracking across sites","AI failure-risk scoring across the asset estate","Repair-versus-replace analysis based on total cost of ownership","Contract, warranty, and vendor lifecycle management","Compliance and audit-ready asset registers","Native integration with CMDB and ITSM","Energy consumption monitoring and sustainability reporting","Spare parts and inventory management with AI demand forecasting","Mobile field technician app with offline asset inspection and barcode scanning","AI-Powered Asset Criticality Scoring with Business Impact and Downtime Cost Modelling"],highImpactFeatures:c3,aiFeatures:d3,cta:"Explore AI Powered Enterprise Asset Management",href:"/enterprise-asset-management",keywords:"enterprise asset management eam physical assets cmms computerised maintenance management predictive maintenance preventive maintenance iot sensor telemetry asset lifecycle procurement decommission depreciation valuation asset tracking barcode qr code field technician mobile maintenance work order spare parts inventory facilities maintenance energy consumption sustainability"},{id:"patch",name:"AI Powered Patch Management",shortName:"AI Powered Patch Mgmt",badge:"50+ AI Features",icon:Cr,desc:"Continuously scan, prioritize, and deploy patches across the entire enterprise infrastructure with zero manual orchestration.",capabilities:["Automated patch discovery and classification","Risk-based patch prioritization with AI","Phased rollout and rollback capabilities","Compliance reporting for audit readiness","Integration with CMDB and ITAM","Continuous discovery across Windows, macOS, Linux, servers, and cloud workloads","Change impact prediction across dependent devices, applications, and business services","Smart maintenance-window recommendations based on usage and device health","AI-generated remediation guidance and natural-language patch reporting","Closed-loop post-remediation verification with pending-reboot awareness","Third-party and open-source library patching across application stacks","Zero-day and critical CVE emergency fast-track deployment workflow","Patch SLA enforcement with automated escalation and breach alerting","Executive and board-level compliance patch posture dashboards","Multi-tenant and MSP patch orchestration with per-client policy segmentation"],highImpactFeatures:f3,aiFeatures:g3,cta:"Explore AI Powered Patch Management",href:"/patch-management",keywords:"patch management patch deployment software patching windows patching linux patching macos patching server patching vulnerability remediation cve cvss epss patch prioritisation risk-based patching phased rollout canary deployment rollback maintenance window third party patching open source patching zero day emergency patch msp multi tenant patch compliance"},{id:"epvm",name:"AI Powered Endpoint Vulnerability Management",shortName:"AI Powered EPVM",badge:"40+ AI Features",icon:bi,desc:"Discover, assess, and remediate endpoint vulnerabilities continuously with AI-driven prioritization based on real risk — not just CVSS scores.",capabilities:Iq,highImpactFeatures:o3,aiFeatures:l3,cta:"Explore AI Powered Endpoint Vulnerability Management",href:"/vulnerability-management",keywords:"vulnerability management endpoint vulnerability cve cvss epss vulnerability scanning risk-based prioritisation exposure management vulnerability assessment threat intelligence exploit likelihood vulnerability remediation attack surface management asset risk scoring security posture endpoint security"},{id:"ppm",name:"AI Powered Program & Project Management",shortName:"AI Powered PPM",badge:"150+ AI Features",icon:$e,de
57sc:"Align programs, projects, and resources with strategic goals. AI-driven forecasting flags risks before they derail timelines.",capabilities:["Portfolio-level resource optimization","AI project risk prediction","Budget forecasting and tracking","Milestone and dependency management","Executive dashboards and reporting","Agile, Waterfall, Hybrid, Scrum, and Kanban delivery frameworks","Professional Services Automation with billable utilization and project costing","Resource capacity planning, skills matching, and utilization forecasting","Program-level governance with RAID logs, stage gates, and health scoring","Portfolio prioritization aligned to strategic goals and OKRs","Time tracking, timesheets, rate cards, and budget-to-actual controls","Risk, issue, assumption, and dependency management with escalation workflows","Scenario planning for what-if staffing, schedule, and budget changes","AI-generated status reports, forecasts, and stakeholder communications"],highImpactFeatures:x3,aiFeatures:Rg,cta:"Explore AI Powered Program & Project Management",href:"/program-project-management",keywords:"project management program management portfolio management ppm pmo project planning resource management gantt chart milestone tracking risk management project governance agile scrum kanban project portfolio capacity planning budget management project reporting stakeholder management dependencies"},{id:"hrsm",name:"AI Powered Human Capital Management (HRMS)",shortName:"AI Powered HRMS",icon:ze,desc:"One AI-native platform across every HR domain — from intelligent recruitment and AI Video Interviewing to People SWOT generation, predictive attrition, and a 24/7 conversational HR chatbot.",capabilities:["Core People Management — unified employee record from hire to retire","Absence Management — country-specific entitlements, AI anomaly detection","Performance and Development — AI Goal Generator, People SWOT, 360 synthesis","Recruitment — AI Video Recruiter with agentic interview dispatch","Case Management — intelligent categorisation, routing, and SLA prediction","Expense Management — OCR receipt capture, policy violation detection","Skill Management — live skills inventory, gap analysis, career pathway AI","Corporate HR Policy Generator by Country — jurisdiction-aware, auto-updated","Onboarding & Offboarding People — AI-orchestrated task plans, day-one scoring","HR Analytics — predictive attrition, workforce demand forecasting, DEI insights","Employee Self-Service Conversational Chatbot — 24/7, voice-enabled, multi-intent","AI Video Recruiter — profile-to-JD matching and agentic video interview links","Payroll & Benefits Integration — multi-currency, multi-entity payroll linkage","Workforce Planning & Headcount Modelling — 90-day forecasting, scenario builder"],highImpactFeatures:y3,aiFeatures:b3,cta:"Explore AI Powered Human Capital Management",href:"/hrms",keywords:"hrms hris hr human resources human capital management hcm recruitment hiring video interview ai recruiter onboarding offboarding performance management performance review goal setting absence management leave management skills management career development payroll benefits employee self service hr chatbot hr analytics workforce planning headcount attrition retention people swot 360 feedback expense management hr policy corporate policy"},{id:"fsm-facilities",name:"AI Powered Facilities Service Management",shortName:"AI Powered Facilities",icon:kl,desc:"Digitize and automate facilities operations — from space management to maintenance requests — across all enterprise locations.",capabilities:["Space planning and occupancy analytics — real-time utilization heat maps from badge and sensor data","Predictive maintenance scheduling — AI failure-risk scoring prevents unplanned downtime","AI-generated work orders — auto-prioritized by criticality, SLA, and technician availability","Vendor and contractor management — performance scoring, onboarding workflows, and spend controls","Energy and sustainability tracking — AI anomaly alerts and carbon footprint dashboards","Room and desk booking with AI demand forecasting for hybrid-work space right-sizing","Compliance and inspection management — automated checklists with regulatory audit trails","Asset condition monitoring — IoT-integrated sensor feeds with threshold-triggered work orders","Visitor and access management — AI-assisted pre-registration, ID capture, and entry logs","Cost centre allocation — automated facilities charge-back and budget-to-actual reporting","AI-generated facilities insights — executive briefings on utilization trends and cost opportunities","Mobile app for facilities teams — offline-capable inspection, photo evidence, and QR/barcode scanning"],highImpactFeatures:j3,aiFeatures:N3,href:"/facilities",keywords:"facilities management facilities service management fsm cafm workplace management space management building management maintenance management energy management occupancy tracking hot desking room booking work order management facility maintenance vendor management facilities helpdesk",cta:"Explore AI Powered Facilities Service Management"},{id:"field",name:"AI Powered Field Service Management",shortName:"AI Powered Field Service",icon:Qt,desc:"Dispatch the right technician 
57with the right skills to the right location — optimized in real time by AI routing algorithms.",capabilities:["AI-optimized scheduling and dispatch — skill, proximity, parts availability, and SLA weighting","Real-time technician tracking with ETA prediction and customer push notifications","Mobile technician app — offline-capable with job details, asset history, and parts lookup","Intelligent parts and inventory management — AI demand forecasting and automatic replenishment","SLA tracking and automated escalation — breach prediction triggers re-dispatch before violations occur","AI-generated job summaries and resolution notes — capturing work performed, parts used, and next steps","Customer communication automation — appointment confirmations, arrival alerts, and post-visit satisfaction surveys","Asset and equipment service history — linked to CMDB and EAM for full lifecycle context","Predictive field service planning — AI recommends preventive visits based on asset failure-risk scores","Contractor and third-party workforce management — credentialing, job assignment, and performance scoring","Billing and time-capture integration — automated work order costing and invoice generation","Field analytics dashboards — first-time fix rate, utilization, travel time, and customer satisfaction trends"],highImpactFeatures:A3,aiFeatures:k3,href:"/field-service",keywords:"field service management fsm field technician dispatch scheduling work order management mobile workforce route optimisation parts inventory sla management customer service on-site service repair field operations technician scheduling real-time dispatch",cta:"Explore AI Powered Field Service Management"},{id:"csm",name:"AI Powered Customer Support Management",shortName:"AI Powered CSM",icon:yr,desc:"Deliver proactive, AI-augmented customer support across every channel — from first contact to resolution — at enterprise scale.",capabilities:["Omnichannel case management — email, chat, voice, social, and portal unified in one queue","AI-suggested resolutions — KB-grounded recommendations reduce handle time by up to 60%","Real-time customer sentiment analysis — tone and intent scoring throughout every interaction","Predictive escalation management — AI flags at-risk cases before SLA breach occurs","Customer self-service portal with conversational AI — 24/7 resolution without agent involvement","Automated case classification and routing — AI assigns category, priority, and team in milliseconds","AI-generated case summaries and closure notes — instant context for agents picking up transferred cases","Customer 360 view — full interaction history, sentiment trend, and account health across all touchpoints","Proactive outreach automation — AI triggers notifications and remediation offers before customers report issues","SLA enforcement with automated escalation chains and manager notifications","AI-powered CSAT and NPS analysis — theme extraction and trend identification across survey responses","Knowledge gap detection — unresolved case clusters automatically generate KB article drafts"],highImpactFeatures:S3,aiFeatures:I3,href:"/csm",keywords:"customer service management csm customer support customer experience cx help desk omnichannel support case management triage ticket routing sla customer satisfaction csat nps knowledge base self service chatbot email support live chat phone support customer portal",cta:"Explore AI Powered Customer Support Management"},{id:"vendor",name:"AI Powered Vendor Management",shortName:"AI Powered Vendor Mgmt",icon:br,desc:"Centralize and govern every vendor relationship — from onboarding and risk assessment to contract management and performance tracking.",capabilities:["Vendor onboarding and due diligence — AI-guided questionnaires with automated document verification","Third-party risk scoring — continuous AI scoring across financial, cyber, compliance, and operational dimensions","Contract lifecycle management — AI-extracted obligations, renewal alerts, and clause deviation flagging","Vendor performance scorecards — KPI tracking with AI-generated trend anal
57ysis and improvement recommendations","Spend analytics and consolidation — AI identifies overlap, redundancy, and negotiation leverage across the portfolio","Regulatory compliance monitoring — automated checks against GDPR, SOC 2, ISO 27001, and DORA requirements","AI-powered vendor risk reports — one-click executive summaries from uploaded evidence and questionnaire responses","Incident and breach notification tracking — vendor SLA obligations and regulatory reporting timelines","Preferred vendor catalogue with AI-assisted selection based on risk profile, capability, and pricing","Renewal and expiry management — automated workflows triggered by contract milestones and risk threshold changes","Audit trail and evidence repository — centralised storage linked to GRC for third-party audit coverage"],highImpactFeatures:C3,aiFeatures:M3,href:"/vendor-management",keywords:"vendor management supplier management third party risk management tprm contract management vendor risk vendor performance vendor onboarding due diligence contract lifecycle vendor compliance procurement vendor assessment supplier risk",cta:"Explore AI Powered Vendor Management"},{id:"snow-studio",name:"ServiceNow Management AI Studio",shortName:"SN AI Studio",icon:de,desc:"Build, deploy, and manage enterprise AI agents on ServiceNow without writing code. The fastest path from AI concept to production.",capabilities:["No-code AI agent builder for ServiceNow","Pre-built AI models for ITSM/ITAM/GRC","AI model training and tuning interface","Performance monitoring and governance","Integration with 200+ enterprise systems","150+ AI Features and agentic use cases across ServiceNow operations","21 specialist AI Auditors with continuous compliance monitoring","Multi-LLM and custom LLM/SLM support with model-by-use-case configuration","RAG-powered enterprise knowledge grounding across ServiceNow records and business content","Human approval checkpoints, audit trails, and explainable agent decisions"],highImpactFeatures:KF,aiFeatures:YF,cta:"Explore ServiceNow Management AI Studio",href:"/servicenow-ai-studio",keywords:"servicenow service now now platform servicenow management servicenow ai studio servicenow automation servicenow configuration servicenow operations servicenow upgrade servicenow instance now intelligence itsm servicenow"},{id:"snow-agentic",name:"ServiceNow Agentic Implementation",shortName:"SN Agentic",icon:vt,desc:"Implement ServiceNow's five core ITSM modules — Incident, Problem, Change, Service Request, and Service Catalog — with specialized Consulting, Architecture, and Implementation Agents.",capabilities:["Consulting Agent — discovers current-state processes, requirements, pain points, and implementation priorities","Architecture Agent — designs the ServiceNow data model, integrations, roles, workflows, and module dependencies","Implementation Agent — configures, tests, documents, and prepares the solution for controlled deployment","Incident Management — categorisation, assignment, prioritisation, impact, urgency, SLAs, and major incident workflows","Problem Management — recurring-incident analysis, root cause analysis, known errors, workarounds, and change linkage","Change Management — standard, normal, and emergency changes with risk, approvals, CAB, testing, and rollback","Service Request Management — fulfilment workflows, approvals, assignment groups, SLAs, notifications, and tasks","Service Catalog — catalog structure, item definitions, variables, policies, approvals, and user experience","Cross-module ITIL design connecting incidents, problems, changes, requests, catalog items, SLAs, and knowledge","AI-generated implementation playbooks, configuration guidance, test scenarios, migration checklists, and documentation","Human review checkpoints for process owners, architects, administrators, and implementation leads","Go-live readiness support covering UAT, cutover planning, training handover, and post-launch stabilization"],highImpactFeatures:CB,aiFeatures:MB,keywords:"servicenow agentic implementation servicenow implementation consulting agent ar
57chitecture agent implementation agent incident management problem management change management service request service catalog itsm itil service catalog implementation servicenow configuration servicenow architecture servicenow consulting servicenow rollout uat go live cutover"},{id:"form-builder",name:"AI Powered Form Builder",shortName:"AI Form Builder",icon:Ht,desc:"Build enterprise forms, surveys, and automated workflows with AI assistance — no coding required.",capabilities:["AI-generated form layouts from plain-language descriptions","Conditional logic and branching workflows","Enterprise survey and feedback management","Dynamic field validation and data enrichment","Integration with ITSM, HRMS, and third-party systems","Multi-step approval workflows embedded directly in forms — no external BPM tool required","Role-based form access control — restrict fields, sections, or submissions by user role or team","Real-time response analytics dashboard with AI-extracted themes and sentiment scoring","White-label form portal with custom branding, domain, and email notification templates","Offline-capable mobile form capture with background sync on reconnect","Drag-and-drop field library with 40+ field types — grids, matrices, signatures, file uploads, and ratings","Multi-language form support with AI-assisted translation across 50+ languages","E-signature capture with tamper-evident audit trail and legally binding certification","Form versioning and rollback — publish new versions without losing historical response data","Scheduled and triggered form dispatch — auto-send forms based on events, dates, or workflow outcomes","SLA-aware escalation on form submissions — auto-escalate overdue approvals or incomplete responses","Prefill and auto-populate fields from CMDB, HRMS, or CRM records to eliminate duplicate data entry","Embedded form analytics with funnel drop-off analysis, completion rate trends, and time-per-field heatmaps","GDPR-compliant data retention policies — auto-purge responses after configurable retention windows","Webhook and API integration — push form submissions to any downstream system in real time"],highImpactFeatures:hB,aiFeatures:fB,href:"/form-builder",keywords:"form builder survey builder workflow builder digital forms enterprise forms dynamic forms conditional logic form templates data collection approval workflow"},{id:"ai-code-analysis",name:"AI Powered Code Analysis",shortName:"AI Code Analysis",icon:Hu,badge:"35+ Languages",desc:"Enterprise AI platform that reviews every PR in <30 seconds, enforces 837 architecture rules, scans for security vulnerabilities, measures technical debt, and generates one-click AI fixes — powered by OpenAI, Anthropic, Gemini, and Grok.",capabilities:["Multi-LLM Engine — OpenAI for code review, Anthropic for security, Gemini for complexity, Grok for summarization","AI Code Review — inline comments, quality score, and executive PR summary in under 30 seconds","Multi-layer Security Scanning — SAST, secret detection, dependency CVE audit, container scan, and taint analysis","Taint Analysis — AST-powered data-flow tracking from HTTP inputs to SQL executors and shell calls (94% true positive rate)","837-Rule Architecture Analysis — scalability, security, performance, layering, design patterns, and naming conventions","AI Fix Suggestions — context-aware diff patches with plain-English explanation and one-click apply","Code Complexity Analysis — cyclomatic and cognitive complexity with AI refactoring guidance","Code Duplication Detection — anchor-pair clone detection with AI extract-function suggestions","Technical Debt Management — continuous AI quantification across 5 debt categories with priority scoring","Quality Gates — PASS / FAIL / WARN / INCONCLUSIVE evaluated on every PR against configurable thresholds","DORA Metrics — deployment frequency, lead time, MTTR, and change failure rate benchmarked against Elite/High tiers","AI Vision Analysis — GPT-4 Vision and Claude Vision analyze architecture diagrams, UI screenshots, and ER schemas"],highImpactFeatures:T3,aiFeatures:E3,cta:"Explore AI Powered Code Analysis",href:"/ai-code-analysis",keywords:"ai code analysis code review security scanning architecture analysis taint analysis dora metrics technical debt quality gates code duplication code complexity multi-llm gpt-4o claude gemini llama static analysis sast ast code intelligence pr analysis pull request review fix suggestions enterprise code quality"},{id:"ai-workflow-engine",name:"AI Workflow Engine",shortName:"AI Workflow Engine",icon:nt,desc:"Design, deploy, and orchestrate stateful AI workflows across your enterprise — powered by LangGraph with cyclic graph execution, human-in-the-loop gates, and 500+ integration connectors.",capabilities:["Visual Workflow Designer — drag-and-drop canvas with 100+ pre-built node types and live preview","LangGraph State Machine Engine — stateful, cyclical multi-agent orchestration with checkpoint persistence","AI Agent Nodes — embed and orchestrate AI agents as first-class workflow steps with model selection","Conditional Branching & AI Routing — LLM-evaluated rules for dynamic path selection","Human-in-the-Loop (HITL) Gates — approval checkpoints with SLA enforcement and escalation","Parallel Branch Execution — concurrent workflow branches with fan-out, fan-in, and merge synchronisation","Event-driven Triggers — webhook, cron, AI-signal, and enterprise event source triggers","Sub-workflow Composition — nest and reuse workflows as building blocks across the enterprise","Error Handling & Retry Logic — configurable retry policies and circuit-breaker patterns","Workflow Version Control & Rollback — immutable history with one-click rollback","Real-time Execution Monitor — live step-by-step visualisation with latency telemetry","Integration Connectors Library — 500+ pre-built connectors to REST APIs and enterprise apps","Role-based Workflow Governance — designer, publisher, and executor roles with ownership","Immutable Audit Trail — cryptographic log of every workflow execution for compliance","SLA Tracking & Breach Alerts — per
57-workflow SLA targets with predictive alerting","Multi-tenant Workflow Isolation — namespace-separated workflows with cross-tenant governance","AI-powered Workflow Optimiser — analyses patterns and suggests latency and cost improvements","Natural Language Workflow Generation — describe a process in plain English; AI builds the graph"],highImpactFeatures:v3,aiFeatures:w3,href:"/ai-workflow-engine",keywords:"ai workflow engine workflow orchestration langgraph state machine workflow automation bpm rpa human in the loop hitl approval gates parallel execution event driven workflow multi agent orchestration workflow builder workflow designer enterprise workflow no code low code workflow integration connectors audit trail sla workflow"}],PB={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.07}}},OB={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}};function DB(){return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"Product Suite | XpediOo — 25 Enterprise AI Products"}),e.jsx("meta",{name:"description",content:"Explore XpediOo's suite of 25 AI-powered enterprise products: ITSM, Asset Management, GRC, AI Auditor Suite, AI Code Analysis, Field Service Management, and more."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/products"}),e.jsx("meta",{property:"og:title",content:"Product Suite | XpediOo — 20+ Enterprise AI Products"}),e.jsx("meta",{property:"og:description",content:"Explore XpediOo's suite of 20+ AI-powered enterprise products: ITSM, GRC, HR, Endpoint Vulnerability Management, and more."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/products"})]}),e.jsxs("section",{className:"relative pt-24 pb-12 border-b border-border/40 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 right-1/3 w-72 h-72 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"container mx-auto px-4 md:px-6 relative",children:[e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-3xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(Ki,{className:"h-3 w-3"}),"Product Suite"]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["25 Enterprise Products.",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"One Unified AI Platform."})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-2xl",children:"Every product is AI-native, deeply integrated with the others, and built for enterprise scale. No stitching. No silos. No compromise."})]}),e.jsx(v.div,{initial:{opacity:0}
57,animate:{opacity:1},transition:{delay:.3},className:"mt-10 flex flex-wrap gap-4",children:[{label:"1000+ AI Features",icon:de},{label:"1500+ Automation Use Cases",icon:ge},{label:"Low Code / No Code",icon:Hu}].map(t=>e.jsxs("div",{className:"flex items-center gap-2 border border-border/60 bg-card px-4 py-2 rounded-full text-sm text-muted-foreground",children:[e.jsx(t.icon,{className:"h-3.5 w-3.5 text-primary"}),t.label]},t.label))})]})]}),e.jsx("section",{className:"pt-10 pb-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsx(v.div,{variants:PB,initial:"hidden",animate:"visible",className:"grid md:grid-cols-2 gap-6",children:R3.map(t=>{const a="href"in t&&!!t.href,r=e.jsxs(v.div,{variants:OB,whileHover:{y:-4,transition:{duration:.2}},className:`group relative border border-border/60 bg-card rounded-xl overflow-hidden hover:border-primary/30 transition-all duration-300 ${a?"h-full cursor-pointer":""}`,"data-testid":`product-card-${t.id}`,children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-primary/15 to-primary/5 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),e.jsxs("div",{className:"relative p-6 md:p-8",children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsx("div",{className:"p-3 rounded-xl bg-card border border-border/60 text-primary group-hover:border-primary/20 transition-colors",children:e.jsx(t.icon,{className:"h-6 w-6"})}),e.jsxs("div",{className:"flex items-center gap-2 flex-wrap justify-end",children:["badge"in t&&t.badge&&e.jsx("span",{className:"text-xs font-semibold px-2.5 py-1 rounded-full bg-primary/20 text-primary border border-primary/30",children:t.badge}),e.jsx("span",{className:"text-xs font-bold tracking-widest uppercase px-3 py-1 rounded-full bg-primary/10 text-primary",children:t.shortName})]})]}),e.jsx("h3",{className:"text-xl font-bold text-foreground mb-3",children:t.name}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-6",children:t.desc}),e.jsx("div",{className:"space-y-2",children:t.capabilities.map(s=>e.jsxs("div",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"h-3.5 w-3.5 mt-0.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:s})]},s))}),t.highImpactFeatures&&t.aiFeatures&&e.jsxs("div",{className:"mt-6 grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{className:"rounded-lg border border-primary/20 bg-primary/5 p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3 text-xs font-bold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3.5 w-3.5"}),"High-Impact Features"]}),e.jsx("div",{className:"space-y-2",children:t.highImpactFeatures.slice(0,3).map(s=>e.jsxs("div",{className:"flex items-start gap-2 text-xs text-muted-foreground leading-relaxed",children:[e.jsx(Ve,{className:"h-3 w-3 mt-0.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:s})]},s))})]}),e.jsxs("div",{className:"rounded-lg border border-violet-400/25 bg-violet-500/5 p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3 text-xs font-bold uppercase tracking-widest text-violet-500",children:[e.jsx(de,{className:"h-3.5 w-3.5"}),"AI Features"]}),e.jsx("div",{className:"space-y-2",children:t.aiFeatures.slice(0,3).map(s=>e.jsxs("div",{className:"flex items-start gap-2 text-xs text-muted-foreground leading-relaxed",children:[e.jsx(Ve,{className:"h-3 w-3 mt-0.5 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:s})]},s))})]})]}),"cta"in t&&t.cta&&e.jsx("div",{className:"mt-6 pt-4 border-t border-border/40",children:a?e.jsxs("span",{className:"flex items-center gap-1.5 text-sm font-semibold text-primary group-hover:gap-2.5 transition-all duration-200",children:[t.cta,e.jsx(Te,{className:"h-3.5 w-3.5"})]}):e.jsxs("button",{type:"button",className:"flex items-center gap-1.5 text-sm font-semibold text-primary hover:gap-2.5 transition-all duration-200",children:[t.cta,e.jsx(Te,{className:"h-3.5 w-3.5"})]})})]})]});return a?e.jsx(Ie,{href:t.href,className:"contents",children:r},t.id):e.jsx("div",{className:"contents",children:r},t.id)})})})})]})}const X2=R3.map(t=>({id:t.id,label:t.name,description:t.desc,href:t.href??"/products",icon:t.icon,badge:t.badge,keywords:t.keywords})),LB=[{id:"hrms-chatbot",label:"AI Employee Self-Service Chatbot",description:"Multi-intent HR queries, proactive nudges, sentiment escalation, voice self-service",href:"/hrms#ai-employee-self-service-chatbot",icon:ze,badge:"HRMS"},{id:"hrms-video-recruiter",label:"AI Video Recruiter",description:"Profile-to-JD matching, agentic video interview dispatch, bias detection, offer scoring",href:"/hrms#ai-video-recruiter",icon:ze,badge:"HRMS"},{id:"hrms-recruitment-intel",label:"AI Recruitment Intelligence",description:"CV parsing, JD quality analyser, talent pool warm-up, drop-off risk predictor",href:"/hrms#ai-recruitment-intelligence",icon:ze,badge:"HRMS"},{id:"hrms-performance",label:"AI Performance Management",description:"People SWOT generator, AI goal cascade, 360 feedback synthesis, performance risk early warning",href:"/hrms#ai-performance-management",icon:ze,badge:"HRMS"},{id:"hrms-skill",label:"AI Skill & Career Intelligence",description:"Live skills inventory, gap analysis, career pathway AI, mentoring match",href:"/hrms#ai-skill-career-intelligence",icon:ze,badge:"HRMS"},{id:"hrms-analytics",label:"AI People Analytics & Workforce Intelligence",description:"Predictive attrition, headcount demand forecasting, DEI pay gap analysis",href:"/hrms#ai-people-analytics-wor
57kforce-intelligence",icon:ze,badge:"HRMS"},{id:"hrms-absence",label:"AI Absence & Wellbeing Intelligence",description:"Absence pattern detection, burnout risk scoring, return-to-work planning",href:"/hrms#ai-absence-wellbeing-intelligence",icon:ze,badge:"HRMS"},{id:"hrms-onboarding",label:"AI Onboarding & Offboarding Orchestration",description:"Day-one experience scoring, personalised task plans, exit interview sentiment analysis",href:"/hrms#ai-onboarding-offboarding-orchestration",icon:ze,badge:"HRMS"},{id:"hrms-case",label:"AI Case Management Intelligence",description:"Intelligent case categorisation, SLA prediction, resolution recommendation engine",href:"/hrms#ai-case-management-intelligence",icon:ze,badge:"HRMS"},{id:"hrms-expense",label:"AI Expense Intelligence",description:"OCR receipt capture, policy violation detection, anomaly flagging, expense forecasting",href:"/hrms#ai-expense-intelligence",icon:ze,badge:"HRMS"},{id:"hrms-policy",label:"AI Corporate HR Policy Generator",description:"Country-specific policy generation, regulatory change monitoring, policy gap analyser",href:"/hrms#ai-corporate-hr-policy-generator",icon:ze,badge:"HRMS"}],$2=[{id:"home",label:"Home",description:"XpediOo — Enterprise AI Platform overview",href:"/",icon:IN},{id:"products",label:"All Products",description:"Browse all 25 enterprise AI products",href:"/products",icon:Ki},{id:"platform",label:"Platform",description:"How XpediOo's unified AI platform works",href:"/platform",icon:de},{id:"ai-studio",label:"AI Studio",description:"The AI Studio at the heart of XpediOo",href:"/ai-studio",icon:be},{id:"agentic-page",label:"Agentic Studio",description:"Build and deploy enterprise AI agents",href:"/agentic-studio",icon:vt},{id:"about",label:"About",description:"Our mission, team, and story",href:"/about",icon:_n},{id:"contact",label:"Contact",description:"Get in touch with the XpediOo team",href:"/contact",icon:Wg},{id:"partner",label:"Become a Partner",description:"Join the XpediOo partner ecosystem",href:"/partner-registration",icon:ge}];function VB(t,a){if(!a.trim())return 1;const r=t.toLowerCase();return a.toLowerCase().trim().split(/\s+/).every(l=>r.includes(l))?r.includes(a.toLowerCase().trim())?1:.5:0}function _B(){const{open:t,closeSearch:a,openSearch:r}=C4(),[,s]=Sr();y.useEffect(()=>{const d=u=>{(u.metaKey||u.ctrlKey)&&u.key==="k"&&(u.preventDefault(),r())};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[r]);const l=y.useCallback(d=>{const[u,p]=d.split("#");a(),s(u),p&&setTimeout(()=>{document.getElementById(p)?.scrollIntoView({behavior:"smooth",block:"start"})},120)},[a,s]);return e.jsx(jq,{open:t,onOpenChange:d=>!d&&a(),children:e.jsx(i3,{className:"overflow-hidden p-0 max-w-[680px]",children:e.jsxs(Zt,{filter:VB,className:"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:[e.jsx("div",{className:"border-b border-border/60 px-4 pt-4 pb-2",children:e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(de,{className:"h-4 w-4 text-primary"}),e.jsx("span",{className:"text-xs font-semibold uppercase tracking-widest text-primary",children:"Enterprise Search"})]}),e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[e.jsx("kbd",{className:"pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border border-border bg-muted px-1.5 font-mono text-[10px] font-medium",children:"⌘K"}),e.jsx("span",{children:"to toggle"}),e.jsx("span",{className:"mx-1",children:"·"}),e.jsx("kbd",{className:"pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border border-border bg-muted px-1.5 font-mono text-[10px] font-medium",children:"↵"}),e.jsx("span",{children:"to navigate"}),e.jsx("span",{className:"mx-1",children:"·"}),e.jsx("kbd",{className:"pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border border-border bg-muted px-1.5 font-mono text-[10px] font-medium",children:"esc"}),e.jsx("span",{children:"to close"})]})]})}),e.jsx(n3,{placeholder:"Search products, features, pages…",className:"h-13 text-base"}),e.jsxs(r3,{className:"max-h-[480px]",children:[e.jsx(s3,{children:e.jsxs("div",{className:"py-10 text-center",children:[e.jsx(de,{className:"mx-auto h-8 w-8 text-muted-foreground
57/40 mb-3"}),e.jsx("p",{className:"text-sm text-muted-foreground font-medium",children:"No results found."}),e.jsx("p",{className:"text-xs text-muted-foreground/60 mt-1",children:"Try searching for a product name, feature, or topic."})]})}),e.jsx(ru,{heading:"Products",children:X2.map(d=>e.jsxs(su,{value:`${d.label} ${d.description} ${d.keywords??""}`,onSelect:()=>l(d.href),className:"group flex items-center gap-3 py-2.5 cursor-pointer",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg bg-primary/10 group-data-[selected=true]:bg-primary/20",children:e.jsx(d.icon,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium truncate",children:d.label}),d.badge&&e.jsx("span",{className:"hidden sm:inline-flex flex-shrink-0 items-center rounded-full border border-primary/20 bg-primary/5 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-primary",children:d.badge})]}),e.jsx("p",{className:"text-xs text-muted-foreground truncate mt-0.5",children:d.description})]}),e.jsx(Ve,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground/40 group-data-[selected=true]:text-primary transition-colors"})]},d.id))}),e.jsx(Eg,{}),e.jsx(ru,{heading:"HRMS AI Capabilities",children:LB.map(d=>e.jsxs(su,{value:`${d.label} ${d.description} ${d.keywords??""}`,onSelect:()=>l(d.href),className:"group flex items-center gap-3 py-2 cursor-pointer",children:[e.jsx("div",{className:"flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-md bg-primary/10 group-data-[selected=true]:bg-primary/20",children:e.jsx(d.icon,{className:"h-3.5 w-3.5 text-primary"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium truncate",children:d.label}),e.jsx("span",{className:"hidden sm:inline-flex flex-shrink-0 items-center rounded-full border border-primary/20 bg-primary/5 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-primary",children:"HRMS"})]}),e.jsx("p",{className:"text-xs text-muted-foreground truncate mt-0.5",children:d.description})]}),e.jsx(Ve,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground/40 group-data-[selected=true]:text-primary transition-colors"})]},d.id))}),e.jsx(Eg,{}),e.jsx(ru,{heading:"Pages",children:$2.map(d=>e.jsxs(su,{value:`${d.label} ${d.description}`,onSelect:()=>l(d.href),className:"group flex items-center gap-3 py-2 cursor-pointer",children:[e.jsx("div",{className:"flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-md bg-muted group-data-[selected=true]:bg-primary/10",children:e.jsx(d.icon,{className:"h-3.5 w-3.5 text-muted-foreground group-data-[selected=true]:text-primary"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("span",{className:"text-sm font-medium",children:d.label}),e.jsx("p",{className:"text-xs text-muted-foreground truncate",children:d.description})]}),e.jsx(Ve,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground/40 group-data-[selected=true]:text-primary transition-colors"})]},d.id))})]}),e.jsxs("div",{className:"border-t border-border/60 px-4 py-2.5 flex items-center justify-between",children:[e.jsxs("span",{className:"text-xs text-muted-foreground",children:[X2.length," products · ",$2.length," pages"]}),e.jsxs("span",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(de,{className:"h-3 w-3 text-primary"}),"XpediOo Enterprise Search"]})]})]})})})}function P3({className:t,dark:a=!1}){const r=a?"rgb(255,255,255)":"rgb(10,9,9)",s=a?"rgb(180,195,210)":"rgb(94,113,129)",l=a?"rgb(255,255,255)":"rgb(28,42,69)",d=a?"rgb(255,255,255)":"rgb(32,42,67)";return e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"-4 0 1080 307.52",className:t,"aria-label":"XpediOo",children:[e.jsxs("defs",{children:[e.jsxs("linearGradient",{id:"lg-logo-1",x1:"129.14",y1:"256.9",x2:"162.48",y2:"256.9",gradientUnits:"userSpaceOnUse",children:[e.jsx("stop",{offset:".25",stopColor:"#258ee3"}),e.jsx("stop",{offset:"1",stopColor:"#2b96d3"})]}),e.jsxs("linearGradient",{id:"lg-logo-2",x1:"57.77",y1:"224.47",x2:"308.64",y2:"224.47",gradientUnits:"userSpaceOnUse",children:[e.jsx("stop",{offset:"0",stopColor:"#5666e4"}),e.jsx("stop",{offset:".4",stopColor:"#1996e4"}),e.jsx("stop",{offset:".97",stopColor:"#84d241"})]}),e.jsxs("linearGradient",{id:"lg-logo-3",x1:"0",y1:"105.64",x2:"208.03",y2:"105.64",gradientUnits:"userSpaceOnUse",children:[e.jsx("stop",{offset:"0",stopColor:"#9f18ff"}),e.jsx("stop",{offset:".12",stopColor:"#9f19fd"}),e.jsx("stop",{offset:".17",stopColor:"#9f20f7"}),e.jsx("stop",{offset:".2",stopColor:"#a12ced"}),e.jsx("stop",{offset:".23",stopColor:"#a23ddf"}),e.jsx("stop",{offset:".24",stopColor:"#a448d6"}),e.jsx("stop",{offset:".45",stopColor:"#ec6495"}),e.jsx("stop",{offset:".63",stopColor:"#f68f41"}),e.jsx("stop",{offset:".67",stopColor:"#f89e31"}),e.jsx("stop",{offset:".72",stopColor:"#fbaa25"}),e.jsx("stop",{offset:".8",stopColor:"#fcb11e"}),e.jsx("stop",{offset:"1",stopColor:"#fdb31d"})]}),e.jsxs("linearGradient",{id:"lg-logo-4",x1:"204.9",y1:"205.27",x2:"262.82",y2:"205.27",gradientUnits:"userSpaceOnUse",children:[e.jsx("stop",{offset:"0",stopColor:"#5e7181"}),e.jsx("stop",{offset:"0",stopColor:"#607180"}),e.jsx("stop",{offset:"0",stopColor:"#61bd73"}),e.jsx("stop",{offset:"1",stopColor:"#35bec0"})]}),e.jsxs("linearGradient",{id:"lg-logo-5",x1:"46.04",y1:"116.63",x2:"96.81",y2:"116.63",gradientUnits:"userSpaceOnUse",children:[e.jsx("stop",{offset:"0",stopColor:"#a95ae0"}),e.jsx("stop",{offset:"1",stopColor:"#9643e2"})]})]}),e.jsx("path",{d:"M432.46,163.63l-24.99-38.9-22.68,38.9h-26.15l36.41-58.26-36.91-57.27h26.65l24.99,38.73,22.51-38.73h26.15l-36.25,58.1,36.91,57.43h-26.65Z",fill:r}),e.jsx("path",{d:"M512.32,74.67c5.24-2.81,11.23-4.22,17.96-4.22,7.83,0,14.92,1.93,21.27,5.79,6.34,3.86,11.36,9.35,15.06,16.47,3.7,7.12,5.54,15.37,5.54,24.74s-1.85,17.68-5.54,24.91c-3.7,7.23-8.72,12.83-15.06,16.8-6.35,3.97-13.43,5.96-21.27,5.96-6.73,0-12.66-1.38-17.79-4.14s-9.3-6.23-12.5-10.43v56.77h-23.17V71.94h23.17v13.24c2.98-4.19,7.09-7.7,12.33-10.51ZM545.09,103.14c-2.26-4.03-5.24-7.09-8.94-9.19-3.7-2.09-7.7-3.15-12-3.15s-8.14,1.08-11.83,3.23c-3.7,2.15-6.68,5.27-8.94,9.35-2.26,4.08-3.39,8.88-3.39,14.4s1.13,10.32,3.39,14.4c2.26,4.08,5.24,7.2,8.94,9.35,3.7,2.15,7.64,3.23,11.83,3.23s8.3-1.1,12-3.31c3.7-2.21,6.67-5.35,8.94-9.43,2.26-4.08,3.39-8.94,3.39-14.57s-1.13-10.29-3.39-14.32Z",fill:r}),e.jsx("path",{d:"M673.61,124.74h-67.03c.55,6.62,2.87,11.81,6.95,15.56,4.08,3.75,9.1,5.63,15.06,5.63,8.61,0,14.73-3.7,
5718.37-11.09h24.99c-2.65,8.83-7.73,16.08-15.23,21.77-7.5,5.68-16.72,8.52-27.64,8.52-8.83,0-16.75-1.96-23.75-5.88-7.01-3.92-12.47-9.46-16.39-16.63-3.92-7.17-5.88-15.45-5.88-24.83s1.93-17.82,5.79-24.99c3.86-7.17,9.27-12.69,16.22-16.55,6.95-3.86,14.95-5.79,24-5.79s16.52,1.88,23.42,5.63c6.89,3.75,12.25,9.08,16.06,15.97,3.81,6.9,5.71,14.81,5.71,23.75,0,3.31-.22,6.29-.66,8.94ZM650.27,109.18c-.11-5.96-2.26-10.73-6.46-14.32-4.19-3.58-9.33-5.38-15.39-5.38-5.74,0-10.57,1.74-14.48,5.21-3.92,3.48-6.32,8.3-7.2,14.48h43.53Z",fill:r}),e.jsx("path",{d:"M690.74,92.79c3.7-7.17,8.74-12.69,15.14-16.55,6.4-3.86,13.52-5.79,21.35-5.79,5.96,0,11.64,1.3,17.05,3.89,5.41,2.59,9.71,6.04,12.91,10.34v-43.53h23.5v122.48h-23.5v-13.57c-2.87,4.53-6.9,8.17-12.08,10.92-5.19,2.76-11.2,4.14-18.04,4.14-7.73,0-14.79-1.99-21.19-5.96-6.4-3.97-11.45-9.57-15.14-16.8-3.7-7.23-5.55-15.53-5.55-24.91s1.85-17.49,5.55-24.66ZM754.05,103.3c-2.21-4.03-5.19-7.12-8.94-9.27-3.75-2.15-7.78-3.23-12.08-3.23s-8.28,1.05-11.92,3.15c-3.64,2.1-6.59,5.16-8.86,9.19-2.26,4.03-3.39,8.8-3.39,14.32s1.13,10.34,3.39,14.48c2.26,4.14,5.24,7.31,8.94,9.52,3.7,2.21,7.64,3.31,11.83,3.31s8.33-1.08,12.08-3.23c3.75-2.15,6.73-5.24,8.94-9.27,2.21-4.03,3.31-8.85,3.31-14.48s-1.1-10.45-3.31-14.48Z",fill:r}),e.jsx("path",{d:"M804.94,57.13c-2.7-2.59-4.06-5.82-4.06-9.68s1.35-7.09,4.06-9.68c2.7-2.59,6.1-3.89,10.18-3.89s7.47,1.3,10.18,3.89c2.7,2.59,4.06,5.82,4.06,9.68s-1.35,7.09-4.06,9.68c-2.7,2.59-6.1,3.89-10.18,3.89s-7.48-1.3-10.18-3.89ZM826.54,71.94v91.69h-23.17v-91.69h23.17Z",fill:r}),e.jsx("path",{d:"M873.22,157.18c-9.05-5.07-16.22-12.11-21.52-21.1-5.3-8.99-7.94-19.17-7.94-30.54s2.65-21.38,7.94-30.37c5.3-8.99,12.47-16.03,21.52-21.1,9.05-5.07,18.98-7.61,29.79-7.61s20.88,2.54,29.88,7.61c8.99,5.08,16.11,12.11,21.35,21.1,5.24,9,7.86,19.12,7.86,30.37s-2.62,21.55-7.86,30.54c-5.24,8.99-12.39,16.03-21.43,21.1-9.05,5.08-18.98,7.61-29.79,7.61s-20.75-2.54-29.79-7.61ZM921.38,139.39c5.3-3.15,9.43-7.64,12.41-13.49,2.98-5.85,4.47-12.63,4.47-20.36s-1.49-14.48-4.47-20.28c-2.98-5.79-7.12-10.23-12.41-13.32-5.3-3.09-11.42-4.63-18.37-4.63s-13.1,1.55-18.46,4.63c-5.35,3.09-9.52,7.53-12.5,13.32-2.98,5.79-4.47,12.55-4.47,20.28s1.49,14.51,4.47,20.36c2.98,5.85,7.14,10.34,12.5,13.49,5.35,3.14,11.5,4.72,18.46,4.72s13.08-1.57,18.37-4.72Z",fill:r}),e.jsx("path",{d:"M996.19,159.25c-7.06-3.92-12.61-9.46-16.63-16.63-4.03-7.17-6.04-15.45-6.04-24.83s2.07-17.65,6.21-24.83c4.14-7.17,9.79-12.72,16.97-16.63,7.17-3.92,15.17-5.88,24-5.88s16.83,1.96,24,5.88c7.17,3.92,12.83,9.46,16.97,16.63,4.14,7.17,6.21,15.45,6.21,24.83s-2.13,17.66-6.37,24.83c-4.25,7.17-9.99,12.72-17.21,16.63-7.23,3.92-15.31,5.88-24.25,5.88s-16.77-1.96-23.83-5.88ZM1031.86,141.87c3.7-2.04,6.65-5.1,8.86-9.19,2.21-4.08,3.31-9.05,3.31-14.9,0-8.72-2.29-15.42-6.87-20.11-4.58-4.69-10.18-7.03-16.8-7.03s-12.17,2.34-16.63,7.03c-4.47,4.69-6.7,11.39-6.7,20.11s2.18,15.42,6.54,20.11c4.36,4.69,9.85,7.03,16.47,7.03,4.19,0,8.14-1.02,11.83-3.06Z",fill:r}),e.jsx("path",{d:"M383.98,228.23l-15.41,44.71h-9.32l19.41-51.58h5.95l-.64,6.87ZM396.13,253.81v7.05h-28.06v-7.05h28.06ZM396.88,272.94l-15.45-44.71-.67-6.87h5.99l19.48,51.58h-9.35Z",fill:s}),e.jsx("path",{d:"M433.78,266.85c1.39,0,2.65-.28,3.77-.83,1.12-.55,2.03-1.33,2.73-2.32.7-.99,1.08-2.14,1.15-3.44h8.04c-.05,2.48-.78,4.74-2.2,6.77-1.42,2.03-3.29,3.64-5.63,4.84s-4.92,1.79-7.76,1.79-5.48-.5-7.65-1.51c-2.17-1-3.98-2.39-5.42-4.16-1.44-1.77-2.52-3.81-3.24-6.13-.72-2.31-1.08-4.79-1.08-7.44v-1.24c0-2.64.36-5.13,1.08-7.46.72-2.33,1.8-4.38,3.24-6.15,1.44-1.77,3.25-3.16,5.42-4.16,2.17-1,4.71-1.51,7.62-1.51,3.07,0,5.76.61,8.08,1.82,2.31,1.22,4.14,2.91,5.47,5.07,1.33,2.16,2.02,4.67,2.07,7.53h-8.04c-.07-1.42-.42-2.7-1.05-3.84-.63-1.14-1.5-2.06-2.62-2.75-1.12-.68-2.46-1.03-4.02-1.03-1.72,0-3.15.35-4.29,1.05-1.13.7-2.02,1.64-2.66,2.83-.64,1.19-1.09,2.53-1.36,4-.27,1.48-.41,3.01-.41,4.59v1.24c0,1.58.13,3.12.39,4.61.26,1.49.71,2.82,1.36,3.99.65,1.17,1.54,2.1,2.67,2.8,1.13.7,2.57,1.05,4.32,1.05Z",fill:s}),e.jsx("path",{d:"M478.62,266.85c1.39,0,2.65-.28,3.77-.83,1.12-.55,2.03-1.33,2.73-2.32.7-.99,1.08-2.14,1.15-3.44h8.04c-.05,2.48-.78,4.74-2.2,6.77-1.42,2.03-3.29,3.64-5.63,4.84s-4.92,1.79-7.76,1.79-5.48-.5-7.65-1.51c-2.17-1-3.98-2.39-5.42-4.16-1.44-1.77-2.52-3.81-3.24-6.13-.72-2.31-1.08-4.79-1.08-7.44v-1.24c0-2.64.3
576-5.13,1.08-7.46.72-2.33,1.8-4.38,3.24-6.15,1.44-1.77,3.25-3.16,5.42-4.16,2.17-1,4.71-1.51,7.62-1.51,3.07,0,5.76.61,8.08,1.82,2.31,1.22,4.14,2.91,5.47,5.07,1.33,2.16,2.02,4.67,2.07,7.53h-8.04c-.07-1.42-.42-2.7-1.05-3.84-.63-1.14-1.5-2.06-2.62-2.75-1.12-.68-2.46-1.03-4.02-1.03-1.72,0-3.15.35-4.29,1.05-1.13.7-2.02,1.64-2.66,2.83-.64,1.19-1.09,2.53-1.36,4-.27,1.48-.41,3.01-.41,4.59v1.24c0,1.58.13,3.12.39,4.61.26,1.49.71,2.82,1.36,3.99.65,1.17,1.54,2.1,2.67,2.8,1.13.7,2.57,1.05,4.32,1.05Z",fill:s}),e.jsx("path",{d:"M524.69,273.65c-2.83,0-5.39-.47-7.67-1.4-2.28-.93-4.22-2.24-5.81-3.91-1.59-1.68-2.82-3.65-3.67-5.92s-1.28-4.71-1.28-7.33v-1.42c0-3,.44-5.71,1.31-8.15.87-2.43,2.09-4.52,3.65-6.25s3.4-3.06,5.53-3.99,4.43-1.38,6.91-1.38c2.74,0,5.14.46,7.19,1.38s3.76,2.21,5.12,3.88,2.37,3.64,3.05,5.93c.67,2.29,1.01,4.82,1.01,7.58v3.65h-29.62v-6.13h21.19v-.67c-.05-1.53-.35-2.98-.9-4.32-.56-1.35-1.4-2.43-2.53-3.26-1.13-.83-2.65-1.24-4.53-1.24-1.42,0-2.67.3-3.77.9s-2.01,1.47-2.75,2.6c-.73,1.13-1.29,2.5-1.68,4.09s-.58,3.38-.58,5.37v1.42c0,1.68.23,3.23.69,4.66.46,1.43,1.14,2.67,2.04,3.74.9,1.06,1.98,1.9,3.26,2.5s2.73.9,4.36.9c2.05,0,3.88-.41,5.49-1.24,1.61-.83,3-1.99,4.18-3.51l4.5,4.36c-.83,1.2-1.9,2.36-3.22,3.45s-2.93,1.99-4.84,2.67c-1.9.68-4.1,1.03-6.61,1.03Z",fill:s}),e.jsx("path",{d:"M562.76,218.53v54.42h-8.57v-54.42h8.57Z",fill:s}),e.jsx("path",{d:"M595.98,273.65c-2.83,0-5.39-.47-7.67-1.4s-4.22-2.24-5.81-3.91c-1.59-1.68-2.82-3.65-3.67-5.92s-1.28-4.71-1.28-7.33v-1.42c0-3,.44-5.71,1.31-8.15.87-2.43,2.09-4.52,3.65-6.25s3.4-3.06,5.53-3.99,4.43-1.38,6.91-1.38c2.74,0,5.14.46,7.19,1.38s3.76,2.21,5.12,3.88,2.37,3.64,3.05,5.93c.67,2.29,1.01,4.82,1.01,7.58v3.65h-29.62v-6.13h21.19v-.67c-.05-1.53-.35-2.98-.9-4.32s-1.4-2.43-2.53-3.26c-1.13-.83-2.64-1.24-4.53-1.24-1.42,0-2.67.3-3.77.9s-2.01,1.47-2.75,2.6-1.29,2.5-1.68,4.09-.58,3.38-.58,5.37v1.42c0,1.68.23,3.23.69,4.66.46,1.43,1.14,2.67,2.04,3.74s1.98,1.9,3.26,2.5,2.73.9,4.36.9c2.05,0,3.88-.41,5.49-1.24,1.61-.83,3-1.99,4.18-3.51l4.5,4.36c-.83,1.2-1.9,2.36-3.22,3.45s-2.93,1.99-4.84,2.67-4.1,1.03-6.61,1.03Z",fill:s}),e.jsx("path",{d:"M633.48,241.91v31.03h-8.54v-38.33h8.15l.39,7.3ZM645.21,234.36l-.07,7.94c-.52-.09-1.08-.16-1.68-.21-.6-.05-1.2-.07-1.79-.07-1.46,0-2.75.21-3.86.62-1.11.41-2.04,1-2.78,1.77-.74.77-1.32,1.69-1.72,2.78-.4,1.09-.64,2.3-.71,3.65l-1.95.14c0-2.41.24-4.64.71-6.7.47-2.05,1.19-3.86,2.14-5.42s2.16-2.77,3.61-3.65c1.45-.87,3.14-1.31,5.05-1.31.52,0,1.08.05,1.68.14.6.1,1.06.2,1.36.32Z",fill:s}),e.jsx("path",{d:"M679.1,249.63l.07,5.28h-6.13c-1.58,0-2.98.15-4.18.44-1.2.3-2.21.73-3.01,1.29-.8.57-1.41,1.25-1.81,2.05-.4.8-.6,1.71-.6,2.73s.24,1.94.71,2.78c.47.84,1.16,1.49,2.07,1.97.91.47,2.01.71,3.31.71,1.75,0,3.28-.36,4.59-1.08,1.31-.72,2.34-1.61,3.1-2.66.76-1.05,1.16-2.05,1.2-2.99l2.76,3.79c-.28.97-.77,2.01-1.45,3.12-.69,1.11-1.58,2.17-2.67,3.17-1.1,1-2.41,1.82-3.93,2.46s-3.28.96-5.26.96c-2.5,0-4.74-.5-6.7-1.51-1.96-1-3.5-2.36-4.61-4.07-1.11-1.71-1.67-3.65-1.67-5.83,0-2.03.38-3.83,1.15-5.4.77-1.57,1.9-2.89,3.4-3.95,1.5-1.06,3.34-1.87,5.51-2.43,2.17-.55,4.65-.83,7.44-.83h6.7ZM677.86,265.26v-18.28c0-1.37-.25-2.55-.74-3.54s-1.25-1.76-2.25-2.3c-1-.54-2.26-.81-3.77-.81-1.39,0-2.6.24-3.61.71-1.02.47-1.81,1.11-2.37,1.91-.57.8-.85,1.71-.85,2.73h-8.5c0-1.51.37-2.98,1.1-4.39.73-1.42,1.79-2.68,3.19-3.79,1.39-1.11,3.06-1.98,5-2.62,1.94-.64,4.11-.96,6.52-.96,2.88,0,5.44.48,7.67,1.45,2.23.97,3.99,2.43,5.28,4.38,1.29,1.95,1.93,4.39,1.93,7.32v17.04c0,1.75.12,3.31.37,4.69s.61,2.58,1.08,3.6v.57h-8.75c-.4-.92-.72-2.1-.94-3.52-.22-1.43-.34-2.82-.34-4.16Z",fill:s}),e.jsx("path",{d:"M719.9,234.61v6.24h-21.61v-6.24h21.61ZM704.52,225.22h8.54v37.13c0,1.18.17,2.08.51,2.71.34.63.82,1.05,1.43,1.26.61.21,1.33.32,2.16.32.59,0,1.16-.04,1.7-.11.54-.07.98-.14,1.31-.21l.04,6.52c-.71.21-1.53.4-2.46.57-.93.16-2,.25-3.21.25-1.96,0-3.7-.35-5.21-1.05-1.51-.7-2.69-1.84-3.54-3.42-.85-1.58-1.28-3.68-1.28-6.31v-37.66Z",fill:s}),e.jsx("path",{d:"M750.35,273.65c-2.83,0-5.39-.47-7.67-1.4-2.28-.93-4.22-2.24-5.81-3.91-1.59-1.68-2.82-3.65-3.67-5.92s-1.28-4.71-1.28-7.33v-1.42c0-3,.44-5.71,1.31-8.15.87-2.43,2.09-4.52,3.65-6.25s3.4-3.06,5.53-3.99,4.43-1.38,6.91-1.38c2.74,0,5.14.46,7.19,1.38s3.76,2.21,5.12,3.88c1.36,1.67,2.37,3.64,3.05,5.93.67,2.29,1.01,4.82,1.01,7.58v3.65h-29.62v-6.13h21.19v-.67c-.05-1.53-.35-2.98-.9-4.32-.56-1.35-1.4-2.43-2.53-3.26-1.13-.83-2.65-1.24-4.53-1.24-1.42,0-2.67.3-3.77.9s-2.01,1.47-2.75,2.6c-.73,1.13-1.29,2.5-1.68,4.09s-.58,3.38-.58,5.37v1.42c0,1.68.23,3.23.69,4.66.46,1.43,1.14,2.67,2.04,3.74.9,1.06,1.98,1.9,3.26,2.5s2.73.9,4.36.9c2.05,0,3.88-.41,5.49-1.24,1.61-.83,3-1.99,4.18-3.51l4.5,4.36c-.83,1.2-1.9,2.36-3.22,3.45-1.32,1.1-2.93,1.99-4.84,2.67-1.9.68-4.1,1.03-6.61,1.03Z",fill:s}),e.jsx("path",{d:"M809.48,234.61l6.91,29.97.57,8.36h-5.46l-10.38-38.33h8.36ZM814.69,264.44l8.86-29.83h5.46l-1.49,8.93-8.93,29.4h-4.89l.99-8.5ZM829.93,234.61l8.75,29.48,1.1,8.86h-4.89l-9.03-29.44-1.49-8.89h5.56ZM837.29,264.23l6.7-29.62h8.33l-10.34,38.33h-5.46l.78-8.72Z",fill:s}),e.jsx("path",{d:"M865.09,224.55c0-1.3.43-2.38,1.29-3.24s2.06-1.29,3.6-1.29,2.7.43,3.58,1.29c.87.86,1.31,1.94,1.31,3.24s-.44,2.34-1.31,3.19c-.87.85-2.07,1.28-3.58,1.28s-2.73-.43-3.6-1.28c-.86-.85-1.29-1.91-1.29-3.19ZM874.23,234.61v38.33h-8.57v-38.33h8.57Z",fill:s}
57),e.jsx("path",{d:"M908.12,234.61v6.24h-21.61v-6.24h21.61ZM892.75,225.22h8.54v37.13c0,1.18.17,2.08.51,2.71.34.63.82,1.05,1.43,1.26.61.21,1.33.32,2.16.32.59,0,1.16-.04,1.7-.11.54-.07.98-.14,1.31-.21l.04,6.52c-.71.21-1.53.4-2.46.57-.93.16-2,.25-3.21.25-1.96,0-3.7-.35-5.21-1.05-1.51-.7-2.69-1.84-3.54-3.42-.85-1.58-1.28-3.68-1.28-6.31v-37.66Z",fill:s}),e.jsx("path",{d:"M930.11,218.53v54.42h-8.5v-54.42h8.5ZM928.62,252.36l-2.76-.04c.02-2.64.4-5.09,1.12-7.33.72-2.24,1.74-4.2,3.05-5.86s2.89-2.95,4.73-3.86c1.84-.91,3.88-1.36,6.13-1.36,1.89,0,3.6.26,5.12.78,1.52.52,2.84,1.35,3.95,2.5,1.11,1.15,1.95,2.63,2.53,4.46.58,1.83.87,4.06.87,6.68v24.62h-8.57v-24.69c0-1.84-.27-3.31-.8-4.39-.53-1.09-1.31-1.87-2.32-2.36-1.02-.48-2.26-.73-3.72-.73-1.54,0-2.89.31-4.06.92-1.17.61-2.14,1.45-2.92,2.52s-1.36,2.29-1.75,3.68c-.39,1.39-.58,2.88-.58,4.46Z",fill:s}),e.jsx("path",{d:"M1014.89,228.23l-15.41,44.71h-9.32l19.41-51.58h5.95l-.64,6.87ZM1027.04,253.81v7.05h-28.06v-7.05h28.06ZM1027.79,272.94l-15.45-44.71-.67-6.87h5.99l19.48,51.58h-9.35Z",fill:s}),e.jsx("path",{d:"M1059.37,221.36v51.58h-8.89v-51.58h8.89Z",fill:s}),e.jsx("path",{d:"M154.8,216.4s4.88,33.51-2.01,42.9c-3.33,4.53-13.76,5.13-17.19,19.8-2.09,8.94,3.51,18.3,2.87,18.3",fill:"none",strokeWidth:"12px",strokeLinecap:"round",strokeLinejoin:"round",stroke:"url(#lg-logo-1)"}),e.jsx("path",{d:"M302.45,147.42s8.01,99.22-82.14,139.85c-87.77,39.55-149.52-15.8-149.52-15.8,0,0-18.72-19.13,4.99-36.19,15.03-10.81,39.46-30.33,39.46-30.33",stroke:"url(#lg-logo-2)",fill:"none",strokeWidth:"12px",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M155.84,90.23v-25.99s4.68-16.12,21.84-20.8,19.28-4.5,23.4-15.08c5.41-13.9-11.94-21.53-58.4-22.36-46.67-.83-95.37,42.88-109.89,64.35,0,0-44.08,52.4-19.13,124.48,0,0,8.56,10.43,14.26,10.43",fill:"none",strokeWidth:"12px",strokeLinecap:"round",strokeLinejoin:"round",stroke:"url(#lg-logo-3)"}),e.jsx("path",{d:"M210.9,177.2s23.62-3.43,31.94.38,16.64,15.25,13.17,25.65c-3.47,10.4-23.92,31.54-23.92,31.54",fill:"none",strokeWidth:"12px",strokeLinecap:"round",strokeLinejoin:"round",stroke:"url(#lg-logo-4)"}),e.jsx("path",{d:"M220.66,147.42s18.72-1.04,20.45-1.39,32.23-28.77,32.23-28.77",fill:"none",strokeWidth:"12px",strokeLinecap:"round",strokeLinejoin:"round",stroke:"rgb(132,210,65)"}),e.jsx("line",{x1:"192.93",y1:"105.13",x2:"231.75",y2:"65.97",fill:"none",strokeWidth:"12px",strokeMiterlimit:"10",stroke:"rgb(253,179,29)"}),e.jsx("path",{d:"M90.81,148.03s-49.47,9.58-36.64-23.34c12.82-32.93,29.23-40.75,29.23-40.75",fill:"none",strokeWidth:"12px",strokeLinecap:"round",strokeLinejoin:"round",stroke:"url(#lg-logo-5)"}),e.jsx("circle",{cx:"42.81",cy:"211.78",r:"14.9",fill:"none",strokeWidth:"12px",stroke:"rgb(159,24,255)",strokeMiterlimit:"10"}),e.jsx("circle",{cx:"218.75",cy:"246.65",r:"14.9",fill:"none",strokeWidth:"12px",strokeMiterlimit:"10",stroke:"rgb(50,190,192)"}),e.jsx("circle",{cx:"282.6",cy:"105.13",r:"14.9",fill:"none",strokeWidth:"12px",stroke:"rgb(132,210,65)",strokeMiterlimit:"10"}),e.jsx("circle",{cx:"243.46",cy:"52.47",r:"14.9",fill:"none",strokeWidth:"12px",strokeMiterlimit:"10",stroke:"rgb(253,179,29)"}),e.jsx("circle",{cx:"92.76",cy:"72.36",r:"14.9",fill:"none",strokeWidth:"12px",stroke:"rgb(159,24,255)",strokeMiterlimit:"10"}),e.jsx("circle",{cx:"152.8",cy:"154.56",r:"60.17",fill:"none",strokeWidth:"12px",strokeMiterlimit:"10",stroke:d}),e.jsx("path",{d:"M145.02,135.82l-12.86,38.28h-9.02l16.86-45.13h5.77l-.74,6.85ZM155.19,157.33v6.73h-24.21v-6.73h24.21ZM155.78,174.1l-12.93-38.28-.77-6.85h5.8l16.96,45.13h-9.05Z",fill:l}),e.jsx("path",{d:"M178.53,128.97v45.13h-8.52v-45.13h8.52Z",fill:l})]})}const O3=[{heading:"Enterprise Service Management",items:[{label:"AI Powered GRC",href:"/grc",hasPage:!0},{label:"AI Powered ITSM",href:"/itsm",hasPage:!0},{label:"AI Auditor Suite",href:"/ai-auditor-suite",hasPage:!0},{label:"AI Powered ITAM",href:"/itam",hasPage:!0},{label:"AI Form Builder",href:"/form-builder",hasPage:!0},{label:"AI Workflow Engine",href:"/ai-workflow-engine",hasPage:!0}]},{heading:"AI & Automation",items:[{label:"Agentic Studio",href:"/agentic-studio",hasPage:!0},{label:"Voice AI Agentic",href:"/voice-ai-agentic",hasPage:!0},{label:"AI Observability",href:"/ai-observability",hasPage:!0},{label:"AIOps & Log Management",href:"/aiops-log-management",hasPage:!0}
57,{label:"App & Infra Automation",href:"/application-infrastructure-automation",hasPage:!0},{label:"Digital Employee Experience",href:"/digital-employee-experience",hasPage:!0}]},{heading:"People & Assets",items:[{label:"AI Powered HRMS",href:"/hrms",hasPage:!0},{label:"Enterprise Asset Management",href:"/enterprise-asset-management",hasPage:!0},{label:"Patch Management",href:"/patch-management",hasPage:!0},{label:"Endpoint Vulnerability Mgmt",href:"/vulnerability-management",hasPage:!0}]},{heading:"Business Services",items:[{label:"Program & Project Management",href:"/program-project-management",hasPage:!0},{label:"PDLC & SDLC",href:"/pdlc-sdlc",hasPage:!0},{label:"AI Powered Code Analysis",href:"/ai-code-analysis",hasPage:!0},{label:"Customer Service Mgmt",href:"/csm",hasPage:!0},{label:"Facilities Service Mgmt",href:"/facilities",hasPage:!0},{label:"Field Service Management",href:"/field-service",hasPage:!0},{label:"Vendor Management",href:"/vendor-management",hasPage:!0}]},{heading:"Others",items:[{label:"ServiceNow AI Studio",href:"/servicenow-ai-studio",hasPage:!0},{label:"ServiceNow Agentic Implementation",href:"/products",hasPage:!0}]}],W2=["/products",...Array.from(new Set(O3.flatMap(t=>t.items.map(a=>a.href)).filter(t=>t!=="/products")))];function zB({isActive:t}){const[a,r]=y.useState(!1),[,s]=Sr(),l=y.useRef(null),d=y.useCallback(()=>{l.current&&clearTimeout(l.current),r(!0)},[]),u=y.useCallback(()=>{l.current=setTimeout(()=>r(!1),120)},[]),p=y.useCallback(g=>{r(!1),s(g)},[s]);return e.jsxs("div",{className:"relative",onMouseEnter:d,onMouseLeave:u,children:[e.jsxs("div",{className:"flex items-center gap-0.5",children:[e.jsx("button",{className:ie("text-sm font-medium transition-colors hover:text-primary",t||a?"text-primary":"text-muted-foreground"),onClick:()=>p("/products"),children:"Products"}),e.jsx("button",{className:ie("flex items-center transition-colors hover:text-primary p-0.5",t||a?"text-primary":"text-muted-foreground"),onClick:()=>r(g=>!g),"aria-expanded":a,"aria-haspopup":"true","aria-label":"Show products menu",children:e.jsx(na,{className:ie("h-3.5 w-3.5 transition-transform duration-200",a&&"rotate-180")})})]}),a&&e.jsxs("div",{className:"absolute left-1/2 top-full z-50 mt-3 -translate-x-1/2",onMouseEnter:d,onMouseLeave:u,children:[e.jsx("div",{className:"absolute -top-1.5 left-1/2 h-3 w-3 -translate-x-1/2 rotate-45 border-l border-t border-border bg-popover"}),e.jsxs("div",{className:"relative rounded-xl border border-border bg-popover shadow-xl ring-1 ring-black/5 dark:ring-white/10 overflow-hidden",children:[e.jsxs("div",{className:"border-b border-border/60 bg-primary/5 px-5 py-3 flex items-center justify-between",children:[e.jsx("span",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"25 Enterprise AI Products"}),e.jsxs("button",{onClick:()=>p("/products"),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-primary transition-colors",children:["View all ",e.jsx(vN,{className:"h-3 w-3"})]})]}),e.jsx("div",{className:"grid grid-cols-5 gap-0 p-4 w-[1080px]",children:O3.map(g=>e.jsxs("div",{className:"px-3",children:[e.jsx("p",{className:"mb-2.5 text-[10px] font-bold uppercase tracking-widest text-muted-foreground/60",children:g.heading}),e.jsx("ul",{className:"space-y-0.5",children:g.items.map(h=>e.jsx("li",{children:e.jsxs("button",{onClick:()=>p(h.href),className:ie("group w-full rounded-md px-2.5 py-1.5 text-left text-sm transition-colors",(h.label==="Field Service Management"||h.label==="AI Powered Code Analysis")&&"whitespace-nowrap text-[13px]",h.hasPage?"text-foreground hover:bg-primary/8 hover:text-primary":"text-muted-foreground/60 cursor-default"),disabled:!h.hasPage,title:h.hasPage?void 0:"Coming soon",children:[h.label,!h.hasPage&&e.jsx("span",{className:"ml-1.5 inline-block rounded-full bg-muted px-1.5 py-0.5 text-[9px] font-medium uppercase tracking-wide text-muted-foreground/50",children:"soon"})]})},h.label))})]},g.heading))})]})]})]})}const Dd=[{href:"/ai-studio",label:"AI Studio"},{href:"/platform",label:"Platform"}
57,{href:"/grc",label:"GRC & Compliance"},{href:"/ai-auditor-suite",label:"AI Auditor Suite"}];function qB(){const[t]=Sr(),[a,r]=y.useState(!1),[s,l]=y.useState(!1),{theme:d,toggleTheme:u}=OA(),{openDemoModal:p}=ot(),{openSearch:g}=C4();return y.useEffect(()=>{const h=()=>{r(window.scrollY>20)};return window.addEventListener("scroll",h),()=>window.removeEventListener("scroll",h)},[]),e.jsxs("header",{className:ie("sticky top-0 z-50 w-full border-b transition-colors duration-300",a?"bg-background/80 backdrop-blur-md border-border":"bg-background border-transparent"),"data-testid":"navbar",children:[e.jsxs("div",{className:"container mx-auto flex h-16 items-center justify-between px-4 md:px-6",children:[e.jsx(Ie,{href:"/",className:"flex items-center","data-testid":"link-home",children:e.jsx(P3,{dark:d==="dark",className:"h-12 w-auto transition-all duration-300"})}),e.jsxs("nav",{className:"hidden md:flex items-center gap-8",children:[Dd.slice(0,2).map(h=>e.jsx(Ie,{href:h.href,className:ie("text-sm font-medium transition-colors hover:text-primary",t===h.href?"text-primary":"text-muted-foreground"),"data-testid":`link-${h.label.toLowerCase().replace(/[^a-z0-9]/g,"-")}`,children:h.label},h.href)),e.jsx(zB,{isActive:W2.includes(t)}),Dd.slice(2).map(h=>e.jsx(Ie,{href:h.href,className:ie("text-sm font-medium transition-colors hover:text-primary",t===h.href?"text-primary":"text-muted-foreground"),"data-testid":`link-${h.label.toLowerCase().replace(/[^a-z0-9]/g,"-")}`,children:h.label},h.href))]}),e.jsxs("div",{className:"hidden md:flex items-center gap-3",children:[e.jsxs("button",{onClick:g,"aria-label":"Search","data-testid":"btn-search",className:"group flex items-center gap-2 rounded-full border border-border/60 bg-muted/40 px-3 py-1.5 text-xs text-muted-foreground transition-all hover:border-primary/40 hover:bg-primary/5 hover:text-foreground",children:[e.jsx(Gt,{className:"h-3.5 w-3.5 flex-shrink-0"}),e.jsx("span",{className:"hidden lg:inline",children:"Search"}),e.jsx("kbd",{className:"pointer-events-none hidden lg:inline-flex h-4 select-none items-center gap-0.5 rounded border border-border bg-background px-1 font-mono text-[10px] font-medium text-muted-foreground",children:"⌘K"})]}),e.jsxs("button",{onClick:u,"aria-label":"Toggle theme","data-testid":"btn-theme-toggle",className:ie("relative inline-flex h-7 w-14 items-center rounded-full border transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary",d==="dark"?"bg-primary/20 border-primary/40":"bg-muted border-border"),children:[e.jsx(_w,{className:"absolute left-1.5 h-3.5 w-3.5 text-primary transition-opacity duration-200",style:{opacity:d==="light"?1:.3}}),e.jsx(Vw,{className:"absolute right-1.5 h-3.5 w-3.5 text-primary transition-opacity duration-200",style:{opacity:d==="dark"?1:.3}}),e.jsx("span",{className:ie("absolute h-5 w-5 rounded-full shadow-md transition-all duration-300",d==="dark"?"translate-x-[34px] bg-primary":"translate-x-1 bg-white border border-border")})]}),e.jsx(ve,{variant:"ghost",className:"text-muted-foreground hover:text-foreground",asChild:!0,children:e.jsx(Ie,{href:"/sign-in",children:"Sign In"})}),e.jsx(ve,{variant:"outline",className:"border-primary/40 text-primary hover:bg-primary/10 hover:border-primary/60",asChild:!0,children:e.jsx(Ie,{href:"/partner-registration",children:"Become a Partner"})}),e.jsx(ve,{onClick:p,className:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_10px_rgba(159,24,255,0.2)] hover:shadow-[0_0_20px_rgba(159,24,255,0.4)] transition-all duration-300","data-testid":"btn-request-demo",children:"Request Demo"})]}),e.jsxs("div",{className:"md:hidden flex items-center gap-2",children:[e.jsx("button",{onClick:g,"aria-label":"Search",className:"flex h-8 w-8 items-center justify-center rounded-full border border-border/60 bg-muted/40 text-muted-foreground transition hover:border-primary/40 hover:text-primary",children:e.jsx(Gt,{className:"h-4 w-4"})}),e.jsxs("button",{onClick:u,"aria-label":"Toggle theme",className:ie("relative inline-flex h-7 w-14 items-center rounded-full border transition-all duration-300",d==="dark"?"bg-primary/20 border-primary/40":"bg-muted border-border"),children:[e.jsx(_w,{className:"absolute left-1.5 h-3.5 w-3.5 text-primary transition-opacity duration-200",style:{opacity:d==="light"?1:.3}}),e.jsx(Vw,{className:"absolute right-1.5 h-3.5 w-3.5 text-primary transition-opacity duration-200",style:{opacity:d==="dark"?1:.3}}),e.jsx("span",{className:ie("absolute h-5 w-5 rounded-full shadow-md transition-all duration-300",d==="dark"?"translate-x-[34px] bg-primary":"translate-x-1 bg-white border border-border")})]}),e.jsx(ve,{variant:"ghost",size:"icon",onClick:()=>l(!s),children:e.jsx(eR,{className:"h-6 w-6"})})]})]}),s&&e.jsxs("div",{className:"md:hidden border-t border-border bg-background p-4 flex flex-col gap-4",children:[Dd.slice(0,2).map(h=>e.jsx(Ie,{href:h.href,onClick:()=>l(!1),className:ie("text-sm font-medium transition-colors hover:text-primary p-2",t===h.href?"text-primary":"text-muted-foreground"),children:h.label},h.href)),e.jsx(Ie,{href:"/products",onClick:()=>l(!1),className:ie("text-sm font-medium transition-colors hover:text-primary p-2",W2.includes(t)?"text-primary":"text-muted-foreground"),children:"Products"}),Dd.slice(2).map(h=>e.jsx(Ie,{href:h.href,onClick:()=>l(!1),className:ie("text-sm font-medium transition-colors hover:text-primary p-2",t===h.href?"text-primary":"text-muted-foreground"),children:h.label},h.href)),e.jsxs("div",{className:"flex flex-col gap-2 pt-4 border-t border-border",children:[e.jsx(ve,{variant:"ghost",className:"w-full justify-start",asChild:!0,children:e.jsx(Ie,{href:"/sign-in",onClick:()=>l(!1),children:"Sign In"})}),e.jsx(ve,{onClick:()=>{l(!1),p()},className:"w-full bg-primary text-primary-foreground",children:"Request Demo"})]})]})]})}function FB(){const{theme:t}=OA();return e.jsx("footer",{className:"border-t border-border bg-card py-12 md:py-16",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs("div",{className:"grid gap-8 md:grid-cols-2 lg:grid-cols-4",children:[e.jsxs("div",{children:[e.jsx(Ie,{href:"/",className:"inline-flex mb-4","data-testid":"footer-logo",children:e.jsx(P3,{dark:t==="dark",className:"h-16 w-auto transition-all duration-300"})}),e.jsx("p",{className:"text-sm text-muted-foreground mb-6 max-w-xs",children:"The decisive, authoritative command center for enterprise operations. 1000+ AI features, 1500+ automation use cases, zero code."}),e.jsxs("div",{className:"flex gap-4",children:[e.jsx("a",{href:"https://twitter.com/xpedioo","aria-label":"XpediOo on X / Twitter",className:"text-muted-foreground hover:text-primary transition-colors",children:e.jsx(bP,{className:"h-5 w-5"})}),e.jsx("a",{href:"https://www.linkedin.com/company/xpedioo","aria-label":"XpediOo on LinkedIn",className:"text-muted-foreground hover:text-primary transition-colors",children:e.jsx(FE,{className:"h-5 w-5"})}),e.jsx("a",{href:"https://github.com/xpedioo","aria-label":"XpediOo on GitHub",className:"text-muted-foreground hover:text-primary transition-colors",children:e.jsx(gE,{className:"h-5 w-5"})})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-4 text-foreground",children:"Platform"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsx("li",{children:e.jsx(Ie,{href:"/products",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Product Suite"})}),e.jsx("li",{children:e.jsx(Ie,{href:"/ai-studio",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"AI Studio"})}),e.jsx("li",{children:e.jsx(Ie,{href:"/grc",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"GRC Frameworks"})}),e.jsx("li",{children:e.jsx(Ie,{href:"/platform",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Architecture"})})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-4 text-foreground",children:"Solutions"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsx("li",{children:e.jsx(Ie,{href:"/itsm",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"For IT Operations"})}),e.jsx("li",{children:e.jsx(Ie,{href:"/grc",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"For Security & Risk"})}),e.jsx("li",{children:e.jsx(Ie,{href:"/products",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"For Human Resources"})}),e.jsx("li",{children:e.jsx(Ie,{href:"/agentic-studio",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Agentic Automation"})}),e.jsx("li",{children:e.jsx(Ie,{href:"/servicenow-ai-studio",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"ServiceNow AI Studio"})}),e.jsx("li",{children:e.jsx(Ie,{href:"/ai-observability",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"AI Powered Observability"})})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold mb-4 text-foreground",children:"Company"}),e.jsxs("ul",{className:"space-y-2",children:[e.jsx("li",{children:e.jsx(Ie,{href:"/about",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"About"})}),e.jsx("li",{children:e.jsx(Ie,{href:"/contact",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Contact"})}),e.jsx("li",{children:e.jsx(Ie,{href:"/partner-registration",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Become a Partner"})})]})]})]}),e.jsxs("div",{className:"mt-12 pt-8 border-t border-border flex flex-col md:flex-row items-center justify-between gap-4",children:[e.jsxs("p",{className:"text-xs text-muted-foreground",children:["© ",new Date().getFullYear()," XpediOo. All rights reserved."]}),e.jsxs("div",{className:"flex gap-4",children:[e.jsx(Ie,{href:"/privacy",className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Privacy Policy"}),e.jsx(Ie,{href:"/terms",className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Terms of Service"})]})]})]})})}
57const BB="/assets/xpedioo-human-arm-transparent-DwexYUEs.png",HB="/assets/xpedioo-digital-arm-transparent-Ds3cRi_z.png",K2=18,GB=Array.from({length:K2},(t,a)=>a*2*Math.PI/K2);function UB(){return e.jsxs(e.Fragment,{children:[e.jsx(v.div,{className:"absolute rounded-full border-2 border-violet-400",style:{width:6,height:6,left:"50%",top:"50%",marginLeft:-3,marginTop:-3},animate:{width:160,height:160,marginLeft:-80,marginTop:-80,opacity:0},transition:{duration:.65,ease:"easeOut"}}),e.jsx(v.div,{className:"absolute rounded-full border border-indigo-400/60",style:{width:6,height:6,left:"50%",top:"50%",marginLeft:-3,marginTop:-3},animate:{width:240,height:240,marginLeft:-120,marginTop:-120,opacity:0},transition:{duration:.9,ease:"easeOut",delay:.08}}),e.jsx(v.div,{className:"absolute rounded-full bg-white",style:{width:24,height:24,left:"50%",top:"50%",marginLeft:-12,marginTop:-12},initial:{opacity:1,scale:1},animate:{opacity:0,scale:4},transition:{duration:.35,ease:"easeOut"}}),GB.map((t,a)=>{const r=55+a%4*18,s=a%3===0,l=a%2===0?"#a855f7":"#818cf8";return e.jsx(v.div,{className:"absolute rounded-full",style:{width:s?9:5,height:s?9:5,left:"50%",top:"50%",marginLeft:s?-4.5:-2.5,marginTop:s?-4.5:-2.5,backgroundColor:l},initial:{x:0,y:0,opacity:1},animate:{x:Math.cos(t)*r,y:Math.sin(t)*r,opacity:0,scale:.2},transition:{duration:.65,ease:"easeOut",delay:a*.012}},a)})]})}function XB(){const[t,a]=y.useState(!1),[r,s]=y.useState(!1),[l,d]=y.useState(!1);return y.useEffect(()=>{if(sessionStorage.getItem("xpedioo_intro_shown"))return;sessionStorage.setItem("xpedioo_intro_shown","1"),a(!0);const u=setTimeout(()=>s(!0),1e3),p=setTimeout(()=>d(!0),1320),g=setTimeout(()=>a(!1),3400);return()=>{clearTimeout(u),clearTimeout(p),clearTimeout(g)}},[]),e.jsx(Mn,{children:t&&e.jsxs(v.div,{initial:{opacity:0}
57,animate:{opacity:1},exit:{opacity:0},transition:{duration:.35,exit:{duration:.5}},className:"fixed inset-0 z-[9999] flex flex-col items-center justify-center cursor-pointer select-none",style:{background:"radial-gradient(ellipse at center, #0d0720 0%, #000000 100%)"},onClick:()=>a(!1),children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.04]",style:{backgroundImage:"linear-gradient(#a78bfa 1px, transparent 1px), linear-gradient(90deg, #a78bfa 1px, transparent 1px)",backgroundSize:"40px 40px"}}),e.jsx("div",{className:"absolute rounded-full pointer-events-none",style:{width:"min(72vw, 620px)",height:"min(42vw, 360px)",background:"radial-gradient(ellipse, rgba(124,58,237,0.22) 0%, transparent 70%)"}}),e.jsxs("div",{className:"relative",style:{width:"min(92vw, 820px)",aspectRatio:"1284 / 898"},children:[e.jsx(v.div,{className:"absolute inset-0 z-10",style:{willChange:"transform",maskImage:"linear-gradient(to right, transparent 0%, black 14%, black 100%)",WebkitMaskImage:"linear-gradient(to right, transparent 0%, black 14%, black 100%)"},initial:{x:"-46%",opacity:.9},animate:{x:"3%",opacity:1},transition:{duration:.95,ease:[.22,1,.36,1]},children:e.jsx("img",{src:BB,alt:"A human finger touching a robotic finger in a violet glow",className:"h-full w-full object-contain",draggable:!1})}),e.jsx(v.div,{className:"absolute inset-0 z-10",style:{willChange:"transform",maskImage:"linear-gradient(to left, transparent 0%, black 14%, black 100%)",WebkitMaskImage:"linear-gradient(to left, transparent 0%, black 14%, black 100%)"},initial:{x:"46%",opacity:.9},animate:{x:"-3%",opacity:1},transition:{duration:.95,ease:[.22,1,.36,1]},"aria-hidden":"true",children:e.jsx("img",{src:HB,alt:"",className:"h-full w-full object-contain",style:{filter:"brightness(1.55) saturate(0.58) contrast(1.08)"},draggable:!1})}),e.jsx(Mn,{children:r&&e.jsx(v.div,{className:"absolute pointer-events-none",style:{left:"50%",top:"30%",transform:"translate(-50%, -50%)"},initial:{opacity:1},exit:{opacity:0},children:e.jsx(UB,{})},"burst")})]}),e.jsx("div",{className:"mt-8 text-center",style:{height:64},children:e.jsx(Mn,{children:l&&e.jsxs(v.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.5,ease:"easeOut"},children:[e.jsxs("p",{className:"text-white text-2xl font-bold tracking-wide",children:["AI meets"," ",e.jsx("span",{className:"text-violet-400",style:{textShadow:"0 0 24px rgba(167,139,250,0.7)"},children:"Enterprise"})]}),e.jsx("p",{className:"text-white/35 text-xs mt-2 tracking-widest uppercase font-light",children:"Click anywhere to continue"})]})})}),e.jsx(v.div,{className:"absolute top-10",initial:{opacity:0}
57,animate:{opacity:.45},transition:{delay:1.6,duration:.6},children:e.jsx("span",{className:"text-white text-xs tracking-[0.4em] uppercase font-medium",children:"XpediOo"})})]})})}function $B({target:t,suffix:a="",duration:r=2e3}){const[s,l]=y.useState(t),d=y.useRef(null),u=F_(d,{once:!0});return y.useEffect(()=>{if(!u)return;let p=0;l(0);const g=t/(r/16),h=setInterval(()=>{p+=g,p>=t?(l(t),clearInterval(h)):l(Math.floor(p))},16);return()=>clearInterval(h)},[u,t,r]),e.jsxs("span",{ref:d,children:[s.toLocaleString(),a]})}const WB=[{label:"AI Features",value:1e3,suffix:"+",icon:de},{label:"Automation Use Cases",value:1500,suffix:"+",icon:ge},{label:"Global GRC Frameworks",value:28,suffix:"",icon:We},{label:"AI Products",value:25,suffix:"",icon:yi}],KB=[{name:"AI Powered GRC",desc:"Govern risk and compliance across 28 global regulatory frameworks.",icon:We},{name:"AI Powered ITSM",desc:"AI-powered IT Service Management that resolves incidents before they escalate.",icon:Xa},{name:"AI Powered IT Asset Management",desc:"End-to-end IT Asset Management with software compliance and hardware tracking.",icon:Ki},{name:"AI Powered Observability",desc:"Full-stack visibility across multi-cloud estates, databases, storage, and microservices.",icon:Xi},{name:"AIOps and AI Log Management",desc:"Ingest every log and event, correlate anomalies, and resolve recurring failures automatically.",icon:uu},{name:"AI Powered Application and Infrastructure Automation",desc:"AI-assisted script generation and governed, approval-gated automation across Windows and Linux endpoints.",icon:nt}],YB=[{title:"Zero Code Required",desc:"Build and deploy enterprise automations without writing a single line of code. The entire platform is Low Code / No Code.",icon:de},{title:"AI-Native Architecture",desc:"Every product ships with AI natively — not bolted on. 1000+ AI features built directly into workflows across the platform.",icon:vt},{title:"Unified Platform",desc:"One platform, 25 products. No integration tax, no data silos, no vendor sprawl. Everything operates from a single pane.",icon:Ki},{title:"Enterprise-Grade Compliance",desc:"Built-in support for SOX, HIPAA, SOC2, ISO 27001, EU AI Act, PCI DSS, and 8 more critical global frameworks.",icon:Me},{title:"ServiceNow Agentic Layer",desc:"The only platform with a dedicated ServiceNow AI Studio and Agentic Implementation layer built in.",icon:ct},{title:"Instant Time-to-Value",desc:"Pre-built automations for every product. Go live in weeks, not quarters.",icon:ge}],Ld={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.1}}},Vd={hidden:{opacity:0,y:24},visible:{opacity:1,y:0,transition:{duration:.5,ease:"easeOut"}}};function QB(){const t=y.useRef(null),{scrollYProgress:a}=D_({target:t,offset:["start start","end start"]}),r=Ig(a,[0,1],["0%","20%"]),s=Ig(a,[0,.8],[1,0]),{openDemoModal:l}=ot();return e.jsxs("div",{className:"overflow-hidden",children:[e.jsxs(st,{children:[e.jsx("title",{children:"XpediOo — Enterprise AI Platform | 1,000+ AI Features, Zero Code"}),e.jsx("meta",{name:"description",content:"XpediOo is the enterprise AI command centre for IT, GRC, HR, and operations teams. 1,000+ AI features, 1,500+ automation use cases, 28 global compliance frameworks — no code required."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/"}),e.jsx("meta",{property:"og:title",content:"XpediOo — Enterprise AI Platform | 1,000+ AI Features, Zero Code"}),e.jsx("meta",{property:"og:description",content:"XpediOo is the enterprise AI command centre for IT, GRC, HR, and operations teams. 1,000+ AI features, 1,500+ automation use cases, 28 global compliance frameworks — no code required."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/"}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"SoftwareApplication","@id":"https://xpedioo.ai/#software",name:"XpediOo",description:"Enterprise AI platform for IT service management, GRC, HR operations, and agentic automation. 1,000+ AI features, zero code required.",applicationCategory:"BusinessApplication",operatingSystem:"Web",offers:{"@type":"Offer",price:"0",priceCurrency:"USD",description:"Enterprise pricing — contact sales"},publisher:{"@id":"https://xpedioo.ai/#organization"},url:"https://xpedioo.ai"})})]}),e.jsx(XB,{}),e.jsxs("section",{ref:t,className:"relative min-h-[80vh] flex items-center justify-center overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.04]",style:{backgroundImage:"linear-gradient(hsl(184 100% 50%) 1px, transparent 1px), linear-gradient(90deg, hsl(184 100% 50%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-1/4 left-1/4 w-96 h-96 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-1/4 right-1/4 w-80 h-80 bg-primary/8 rounded-full blur-3xl"}),e.jsxs(v.div,{style:{y:r,opacity:s},className:"relative z-10 text-center max-w-5xl mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:-16}
57,animate:{opacity:1,y:0},transition:{duration:.6},className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-8",children:[e.jsx(de,{className:"h-3 w-3"}),"Enterprise AI Platform — 1000+ AI Features"]}),e.jsxs(v.h1,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.7,delay:.1},className:"text-5xl md:text-6xl font-bold tracking-tight leading-[1.1] mb-6",children:["The AI Platform",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Built for Enterprise Operations"})]}),e.jsx(v.p,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.7,delay:.2},className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto mb-10 leading-relaxed",children:"XpediOo unifies ITSM, ITAM, GRC, HR, and 10+ enterprise domains on a single AI-native, Low Code / No Code platform. 1500+ automation use cases. 28 GRC frameworks. Zero code required."}),e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.7,delay:.3},className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[e.jsxs(ve,{size:"lg",onClick:l,className:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_30px_rgba(159,24,255,0.3)] hover:shadow-[0_0_50px_rgba(159,24,255,0.5)] transition-all duration-300 text-base px-8 h-12","data-testid":"btn-hero-demo",children:["Request a Demo",e.jsx(Te,{className:"ml-2 h-4 w-4"})]}),e.jsx(ve,{size:"lg",variant:"outline",className:"border-border/60 text-foreground hover:border-primary/50 hover:text-primary text-base px-8 h-12","data-testid":"btn-hero-products",asChild:!0,children:e.jsxs(Ie,{href:"/products",children:["Explore Products ",e.jsx(Ve,{className:"ml-1 h-4 w-4"})]})})]}),e.jsxs(v.div,{initial:{opacity:0}
57,animate:{opacity:1},transition:{delay:1.2},className:"mt-20 flex flex-col items-center gap-2 text-muted-foreground",children:[e.jsx("span",{className:"text-xs tracking-widest uppercase",children:"Scroll to explore"}),e.jsx(v.div,{animate:{y:[0,8,0]},transition:{repeat:1/0,duration:2},className:"w-px h-8 bg-gradient-to-b from-primary to-transparent"})]})]})]}),e.jsx("section",{className:"py-20 border-y border-border/40 bg-card/50",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsx(v.div,{variants:Ld,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid grid-cols-2 lg:grid-cols-4 gap-8",children:WB.map(d=>e.jsxs(v.div,{variants:Vd,className:"text-center","data-testid":`stat-${d.label.toLowerCase().replace(/\s+/g,"-")}`,children:[e.jsx("div",{className:"flex justify-center mb-3",children:e.jsx("div",{className:"p-2 rounded-lg bg-primary/10 text-primary",children:e.jsx(d.icon,{className:"h-5 w-5"})})}),e.jsx("div",{className:"text-4xl md:text-5xl font-bold text-foreground mb-1",children:e.jsx($B,{target:d.value,suffix:d.suffix})}),e.jsx("div",{className:"text-sm text-muted-foreground font-medium",children:d.label})]},d.label))})})}),e.jsxs("section",{className:"py-24 relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-transparent via-primary/3 to-transparent"}),e.jsxs("div",{className:"container mx-auto px-4 md:px-6 relative",children:[e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center mb-16",children:[e.jsxs("h2",{className:"text-3xl md:text-5xl font-bold mb-5 leading-tight",children:["The only AI platform where"," ",e.jsx("span",{className:"text-primary",children:"AI is the product,"}),e.jsx("br",{}),"not a premium add-on"]}),e.jsxs("p",{className:"text-muted-foreground text-lg max-w-3xl mx-auto font-medium",children:["1000+ production-ready AI cases across IT, HR, Finance, Facilities and Legal —"," ",e.jsx("span",{className:"text-foreground font-semibold",children:"Live on day 1, not year 2"})]})]}),e.jsx(v.div,{variants:Ld,initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-80px"},className:"grid md:grid-cols-3 gap-8",children:[{label:"Width",highlight:"1000+ AI cases out of the box",icon:Xa,desc:"Competitors bolt AI on top of legacy workflow engines. XpediOo built the workflow engine on top of AI. Every one of 1000+ cases is production-ready — not a demo feature hidden behind a toggle."},{label:"Speed",highlight:"Value in 90 days, not 18 months",icon:ge,desc:"Legacy deployments run 12–18 months before first AI value. Our pre-built cases mean IT teams see MTTR reduction, defiance rates drop, and cost savings land within the first quarter.",featured:!0},{label:"Depth",highlight:"Agentic, not just generative",icon:ct,desc:"Competitors offer GenAI wrappers — summarisation, suggestions, chatbots. Our AI agents execute end-to-end workflows autonomously, diagnose, decide, act, and close with or without human touchpoints."}].map(d=>e.jsxs(v.div,{variants:Vd,className:ie("relative rounded-2xl border p-8 flex flex-col gap-5 transition-all duration-300",d.featured?"border-primary/40 bg-primary/5 shadow-[0_0_40px_rgba(159,24,255,0.12)]":"border-border/60 bg-card hover:border-primary/30"),children:[d.featured&&e.jsx("div",{className:"absolute -top-3 left-1/2 -translate-x-1/2 px-4 py-1 rounded-full bg-primary text-primary-foreground text-xs font-bold tracking-widest uppercase",children:"Key Differentiator"}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2.5 rounded-xl bg-primary/10 text-primary",children:e.jsx(d.icon,{className:"h-5 w-5"})}),e.jsx("span",{className:"text-xs font-bold tracking-widest uppercase text-primary",children:d.label})]}),e.jsx("h3",{className:"text-xl font-bold text-foreground leading-snug",children:d.highlight}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:d.desc})]},d.label))})]})]}),e.jsx("section",{className:"py-24",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center mb-16",children:[e.jsx("span",{className:"text-primary text-sm font-semibold tracking-widest",children:"Product Suite"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mt-3 mb-4",children:"Everything Enterprise IT Needs"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"From service desks to GRC — 25 products, one AI-native platform. Each module is complete. Together, they're transformative."})]}
57),e.jsx(v.div,{variants:Ld,initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-100px"},className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:KB.map(d=>e.jsxs(v.div,{variants:Vd,whileHover:{y:-4,transition:{duration:.2}},className:"group relative border border-border/60 bg-card rounded-xl p-6 hover:border-primary/40 transition-colors duration-300","data-testid":`card-product-${d.name.toLowerCase().replace(/\s+/g,"-")}`,children:[e.jsx("div",{className:"absolute inset-0 rounded-xl bg-gradient-to-br from-primary/5 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300"}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"p-2.5 rounded-lg bg-primary/10 text-primary w-fit mb-4",children:e.jsx(d.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-semibold text-lg text-foreground mb-2",children:d.name}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:d.desc})]})]},d.name))}),e.jsx(v.div,{initial:{opacity:0},whileInView:{opacity:1},viewport:{once:!0},transition:{delay:.4},className:"text-center mt-12",children:e.jsx(ve,{variant:"outline",size:"lg",className:"border-primary/40 text-primary hover:bg-primary/10",asChild:!0,"data-testid":"btn-view-all-products",children:e.jsxs(Ie,{href:"/products",children:["View All 25 Products ",e.jsx(Te,{className:"ml-2 h-4 w-4"})]})})})]})}),e.jsx("section",{className:"py-24 bg-card/30 border-y border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-16",children:[e.jsx("span",{className:"text-primary text-sm font-semibold tracking-widest",children:"Why XpediOo"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mt-3 mb-4",children:"Built Different. By Design."}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"ServiceNow, Ivanti, and Freshservice served the last decade well. XpediOo is built for the next one."})]}),e.jsx(v.div,{variants:Ld,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 lg:grid-cols-3 gap-8",children:YB.map(d=>e.jsxs(v.div,{variants:Vd,className:"flex gap-4","data-testid":`diff-${d.title.toLowerCase().replace(/\s+/g,"-")}`,children:[e.jsx("div",{className:"flex-shrink-0 p-2 h-fit rounded-lg bg-primary/10 text-primary",children:e.jsx(d.icon,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-foreground mb-2",children:d.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:d.desc})]})]},d.title))})]})}),e.jsx("section",{className:"py-20 border-y border-border/40",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"relative overflow-hidden rounded-2xl border border-primary/20 bg-gradient-to-r from-primary/10 via-card to-primary/10 p-10 md:p-16",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative flex flex-col md:flex-row items-center justify-between gap-8",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-primary text-sm font-semibold tracking-widest mb-3",children:[e.jsx(We,{className:"h-4 w-4"}),"GRC & Compliance"]}),e.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-foreground mb-3",children:["28 Global Frameworks.",e.jsx("br",{}),"One Platform."]}),e.jsx("p",{className:"text-muted-foreground max-w-lg",children:"SOX, SOC2, ISO 27001, EU AI Act, HIPAA, PCI DSS, RBI Guidelines, and 7 more. XpediOo's GRC module is the compliance backbone for regulated enterprises."})]}),e.jsx("div",{className:"flex-shrink-0",children:e.jsx(ve,{size:"lg",className:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_20px_rgba(159,24,255,0.3)] text-base px-8 h-12","data-testid":"btn-grc-explore",asChild:!0,children:e.jsxs(Ie,{href:"/grc",children:["Explore GRC ",e.jsx(Te,{className:"ml-2 h-4 w-4"})]})})})]})]})})}),e.jsx("section",{className:"py-32",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6 text-center",children:e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-3xl mx-auto",children:[e.jsxs("h2",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["Your Enterprise.",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Fully Intelligent."})]}),e.jsx("p",{className:"text-muted-foreground text-lg mb-10",children:"Join the enterprises that have unified their operations, eliminated manual work, and put AI at the center of every workflow."}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[e.jsxs(ve,{size:"lg",onClick:l,className:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_30px_rgba(159,24,255,0.3)] hover:shadow-[0_0_50px_rgba(159,24,255,0.5)] transition-all duration-300 text-base px-10 h-12","data-testid":"btn-cta-demo",children:["Request a Demo",e.jsx(Te,{className:"ml-2 h-4 w-4"})]}),e.jsx(ve,{size:"lg",variant:"ghost",className:"text-muted-foreground hover:text-foreground text-base","data-testid":"btn-cta-contact",children:"Contact Sales"})]})]})})})]})}const Y2="/assets/image_1786693486805-BHMMHQEA.png",Q2="/assets/image_1786693712715-yEZwc1Vp.png",Z2="/assets/image_1786693841803-CgUyO0Am.png",J2="/assets/image_1786694023668-DkST9iRu.png",ZB=[{value:"50+",label:"AI Features"},{value:"6",label:"High-Impact Capabilities"},{value:"4",label:"Governed Operations Stages"},{value:"100%",label:"Audit Traceability"}],dr={hidden:{opacity:0}
57,visible:{opacity:1,transition:{staggerChildren:.08}}},As={hidden:{opacity:0,y:18},visible:{opacity:1,y:0,transition:{duration:.45,ease:"easeOut"}}},JB=[ht,Ot,nt,oa],eH=[Gt,Ot,It,Ue,nt,Ya];function tH(){return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Patch Management | XpediOo — Intelligent Patch Operations"}),e.jsx("meta",{name:"description",content:"AI Powered Patch Management continuously discovers, prioritizes, deploys, and governs patches across enterprise infrastructure with explainable AI and safe rollout controls."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/patch-management"}),e.jsx("meta",{property:"og:title",content:"AI Powered Patch Management | XpediOo"}),e.jsx("meta",{property:"og:description",content:"Discover, prioritize, deploy, and govern enterprise patches with explainable AI, phased rollouts, rollback controls, and audit-ready reporting."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/patch-management"})]}),e.jsxs("section",{className:"relative overflow-hidden border-b border-border/40 py-24 text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.035]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute left-1/2 top-0 h-96 w-[760px] -translate-x-1/2 rounded-full bg-primary/10 blur-3xl"}),e.jsx("div",{className:"container relative mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"mx-auto max-w-4xl",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-center gap-3",children:[e.jsx("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:"50+ AI Features"}),e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Cr,{className:"h-3 w-3"}),"AI Powered Patch Management"]})]}),e.jsx("h1",{className:"mb-6 text-4xl font-bold leading-tight md:text-6xl",children:"AI Powered Patch Management"}),e.jsx("p",{className:"mx-auto mb-4 max-w-3xl text-lg leading-relaxed text-muted-foreground",children:"Continuously discover, prioritize, and deploy patches across your entire enterprise infrastructure with zero manual orchestration."}),e.jsx("p",{className:"mx-auto max-w-3xl text-base leading-relaxed text-muted-foreground",children:"XpediOo combines live patch visibility, business-aware risk scoring, safe rollout rings, and complete governance in one operational workflow."}),e.jsx("div",{className:"mt-10 grid grid-cols-2 gap-4 sm:grid-cols-4",children:ZB.map(t=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card px-4 py-5",children:[e.jsx("div",{className:"mb-1 text-2xl font-bold text-primary md:text-3xl",children:t.value}),e.jsx("div",{className:"text-xs leading-tight text-muted-foreground",children:t.label})]},t.label))})]})})]}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-destructive/25 bg-destructive/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-destructive",children:[e.jsx(ht,{className:"h-3 w-3"}),"The case for change"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Why enterprise patch programs fail at scale"}),e.jsx("p",{className:"text-muted-foreground",children:"Severity queues, fragmented tooling, and reactive workflows leave organizations behind the threat curve."})]}
57),e.jsx(v.div,{variants:dr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:LF.map((t,a)=>{const r=JB[a];return e.jsxs(v.article,{variants:As,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"mb-4 inline-flex rounded-lg bg-destructive/10 p-3 text-destructive",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsx("h3",{className:"mb-2 font-semibold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Be,{className:"h-3 w-3"}),"Platform philosophy"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Principles behind XpediOo Patch Management"}),e.jsx("p",{className:"text-muted-foreground",children:"Six design commitments separate a risk-reduction platform from a compliance checkbox tool."})]}),e.jsx(v.div,{variants:dr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:VF.map((t,a)=>e.jsxs(v.div,{variants:As,className:"flex items-start gap-4 roun
57ded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t})]},t))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(nt,{className:"h-3 w-3"}),"Operating model"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"The six-stage patch management loop"}),e.jsx("p",{className:"text-muted-foreground",children:"From endpoint discovery to verified remediation — a closed operational cycle where each stage informs the next."})]}),e.jsx(v.div,{variants:dr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:_F.map((t,a)=>{const r=eH[a];return e.jsxs(v.article,{variants:As,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold tracking-widest text-primary",children:["STAGE ",a+1]})]}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{variants:dr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3 w-3"}),"Built for high-impact operations"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Move from patch noise to confident action"}),e.jsx("p",{className:"text-muted-foreground",children:"Every capability is designed to reduce exposure while keeping infrastructure teams in control of timing, scope, and operational risk."})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.section,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-primary/20 bg-card p-3 text-primary",children:e.jsx(ge,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Operational control at enterprise scale"})]})]}),e.jsx("div",{className:"space-y-4",children:f3.map(t=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:t})]},t))})]}),e.jsxs(v.section,{initial:{opacity:0,x:18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-violet-400/25 bg-violet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(be,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Intelligence behind every decision"})]})]}),e.jsx("div",{className:"space-y-4",children:g3.map(t=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(de,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:t})]},t))})]})]}),e.jsxs("figure",{className:"mt-10 overflow-hidden rounded-2xl border border-primary/20 bg-card shadow-sm",children:[e.jsx("a",{href:Z2,target:"_blank",rel:"noreferrer","aria-label":"Open the Patch Dashboard screenshot at full resolution",className:"group block bg-white p-2 md:p-3",children:e.jsx("img",{src:Z2,alt:"XpediOo Patch Dashboard showing missing patches, affected endpoints, active jobs, compliance scope, compliance trend, and KEV exposure",loading:"lazy",decoding:"async",className:"block h-auto w-full rounded-lg border border-slate-200 object-contain transition-opacity group-hover:opacity-90"})}),e.jsxs("figcaption",{className:"border-t border-border/60 px-4 py-3 text-xs leading-relaxed text-muted-foreground md:px-5",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"Patch Dashboard in action."})," Monitor missing patches, affected endpoints, active jobs, compliance trend, effective compliance, and CISA KEV exposure from one operational view. Select the image to open the original HD screenshot."]})]}),e.jsxs("figure",{className:"mt-6 overflow-hidden rounded-2xl border border-primary/20 bg-card shadow-sm",children:[e.jsx("a",{href:J2,target:"_blank",rel:"noreferrer","aria-label":"Open the third-party application patching screenshot at full resolution",className:"group block bg-white p-2 md:p-3",children:e.jsx("img",{src:J2,alt:"XpediOo third-party application patching dashboard showing outdated installs, critical updates, affected endpoints, tracked apps, and deploy update actions",loading:"lazy",decoding:"async",className:"block h-auto w-full rounded-lg border border-slate-200 object-contain transition-opacity group-hover:opacity-90"})}),e.jsxs("figcaption",{className:"border-t border-border/60 px-4 py-3 text-xs leading-relaxed text-muted-foreground md:px-5",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"Third-party application patching in action."})," Inventory and update software across Windows, macOS, and Linux using catalog, platform, severity, package, and affected-endpoint context with direct deploy-update actions. Select the image to open the original HD screenshot."]})]})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Ui,{className:"h-3 w-3"}),"Coverage and intelligence"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Coverage is a security control, not a reporting number"}),e.jsx("p",{className:"text-muted-foreground",children:"Build a complete exposure picture across endpoints, applications, operating systems, and business services before deciding what to deploy."})]}),e.jsx("div",{className:"grid gap-6 lg:grid-cols-3",children:zF.map((t,a)=>e.jsxs(v.article,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:a*.08},className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:a===0?e.jsx(Ot,{className:"h-5 w-5"}):a===1?e.jsx(Ue,{className:"h-5 w-5"}):e.jsx(Ui,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:["Coverage ",a+1]})]}),e.jsx("h3",{className:"mb-2 text-xl font-bold",children:t.title}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:t.body}),e.jsx("ul",{className:"space-y-3",children:t.bullets.map(r=>e.jsxs("li",{className:"flex items-start gap-2 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-1 h-3.5 w-3.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:r})]},r))})]},t.title))}),e.jsxs("div",{className:"mt-10 rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2 text-xs font-bold uppercase tracking-widest text-primary",children:[e.jsx(It,{className:"h-3.5 w-3.5"}),"Threat-informed prioritization"]}),e.jsx("h3",{className:"text-2xl font-bold",children:"Combine signals instead of collapsing risk into one score"})]}),e.jsx("p",{className:"max-w-md text-sm leading-relaxed text-muted-foreground",children:"XpediOo weighs technical severity, exploitation probability, confirmed activity, exposure, criticality, and patch age to produce actionable order."})]}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-5",children:qF.map(t=>e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:t.label}),e.jsx("h4",{className:"mb-2 text-sm font-semibold",children:t.title}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.body})]},t.label))}),e.jsxs("figure",{className:"mt-8 overflow-hidden rounded-2xl border border-primary/20 bg-card shadow-sm",children:[e.jsx("a",{href:Y2,target:"_blank",rel:"noreferrer","aria-label":"Open the CVE Intelligence dashboard screenshot at full resolution",className:"group block bg-white p-2 md:p-3",children:e.jsx("img",{src:Y2,alt:"XpediOo CVE Intelligence dashboard showing CVE lookup, CISA KEV exposure, CVSS, EPSS, and exploited vulnerabilities by vend
57or",loading:"lazy",decoding:"async",className:"block h-auto w-full rounded-lg border border-slate-200 object-contain transition-opacity group-hover:opacity-90"})}),e.jsxs("figcaption",{className:"border-t border-border/60 px-4 py-3 text-xs leading-relaxed text-muted-foreground md:px-5",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"CVE Intelligence in action."})," Cross-reference CVEs against the fleet, surface CISA KEV and EPSS signals, and rank exposed publishers before deployment decisions are made. Select the image to open the original HD screenshot."]})]}),e.jsxs("figure",{className:"mt-6 overflow-hidden rounded-2xl border border-primary/20 bg-card shadow-sm",children:[e.jsx("a",{href:Q2,target:"_blank",rel:"noreferrer","aria-label":"Open the AI Priority dashboard screenshot at full resolution",className:"group block bg-white p-2 md:p-3",children:e.jsx("img",{src:Q2,alt:"XpediOo AI Priority dashboard showing ranked patch recommendations, urgency windows, affected devices, and deploy-now actions",loading:"lazy",decoding:"async",className:"block h-auto w-full rounded-lg border border-slate-200 object-contain transition-opacity group-hover:opacity-90"})}),e.jsxs("figcaption",{className:"border-t border-border/60 px-4 py-3 text-xs leading-relaxed text-muted-foreground md:px-5",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"AI Priority in action."})," Turn vulnerability intelligence and fleet exposure into ranked patch recommendations, urgency windows, affected-device context, and controlled deploy-now actions. Select the image to open the original HD screenshot."]})]})]})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Pt,{className:"h-3 w-3"}),"Governance and safe delivery"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Automate velocity without weakening control"}),e.jsx("p",{className:"text-muted-foreground",children:"Every production change is a governed deployment object with policy, evidence, approval, and recovery context attached."})]}),e.jsx(v.div,{variants:dr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:FF.map((t,a)=>e.jsxs(v.article,{variants:As,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsx("h3",{className:"font-bold",children:t.title})]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-[1.25fr_0.75fr]",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-violet-400/25 bg-violet-500/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-violet-500",children:[e.jsx(be,{className:"h-3 w-3"}),"AI platform intelligence"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"AI across the endpoint operations lifecycle"}),e.jsx("p",{className:"mb-8 max-w-3xl text-muted-foreground",children:"Patch prioritization is the most visible AI capability, but enterprise value accumulates across every stage of endpoint operations."}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:BF.map(t=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card p-5",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2 text-sm font-semibold text-violet-500",children:[e.jsx(de,{className:"h-4 w-4"}),t.title]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]}),e.jsxs("aside",{className:"rounded-2xl border border-violet-400/25 bg-vi
57olet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(oa,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI governance"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Explainability, accountability, and trust"})]})]}),e.jsx("ul",{className:"space-y-4",children:HF.map(t=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:t})]},t))})]})]})})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Be,{className:"h-3 w-3"}),"How it works"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Patch operations built for speed, safety, and accountability"}),e.jsx("p",{className:"text-muted-foreground",children:"From discovery through audit evidence, every stage is connected so teams can act quickly without losing control or context."})]}),e.jsx(v.div,{variants:dr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-6 md:grid-cols-2",children:DF.map((t,a)=>e.jsxs(v.article,{variants:As,className:"rounded-2xl border border-border/60 bg-card p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-start gap-4",children:[e.jsx("div",{className:"flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-bold",children:t.heading}),e.jsx("div",{className:"mt-2 h-1 w-12 rounded-full bg-primary/40"})]})]}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:t.body}),e.jsx("ul",{className:"space-y-3",children:t.bullets.map(r=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(ei,{className:"mt-1 h-3.5 w-3.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:r})]},r))})]},t.heading))})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ja,{className:"h-3 w-3"}),"Implementation"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"A phased roadmap for enterprise adoption"}),e.jsx("p",{className:"text-muted-foreground",children:"Earn organizational trust by proving each capability against a baseline before expanding scope."})]}),e.jsx(v.div,{variants:dr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:GF.map(t=>e.jsxs(v.article,{variants:As,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("span",{className:"text-2xl font-bold text-primary",children:t.phase}),e.jsx("div",{className:"h-px flex-1 bg-border/60 mx-4"}),e.jsx(nt,{className:"h-4 w-4 text-primary"})]}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.phase))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-2",children:[e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl bg-primary/10 p-3 text-primary",children:e.jsx(Ya,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"Evaluation framework"}),e.jsx("h2",{className:"mt-1 text-2xl font-bold",children:"Test the complete operating loop"})]})]}),e.jsx("p",{className:"mb-6 text-sm leading-relaxed text-muted-foreground",children:"A feature comparison is not an evaluation. A rigorous proof-of-concept uses real endpoints, real vulnerabilities, and real governance requirements."}),e.jsx("ul",{className:"space-y-4",children:UF.map(t=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:t})]},t))})]}),e.jsxs("div",{className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl bg-card p-3 text-primary",children:e.jsx($e,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"Customer outcomes"}),e.jsx("h2",{className:"mt-1 text-2xl font-bold",children:"Measure the return against your baseline"})]})]}),e.jsx("p",{className:"mb-6 text-sm leading-relaxed text-muted-foreground",children:"Establish a comprehensive baseline before deployment, then quantify the change in risk reduction and operational efficiency."}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:XF.map(t=>e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("h3",{className:"mb-2 text-sm font-bold text-primary",children:t.title}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]})]})})}),e.jsx("section",{className:"border-t border-border/40 bg-muted/20 py-16",children:e.jsx("div",{className:"container mx-auto px-4 text-center md:px-6",children:e.jsxs("div",{className:"mx-auto max-w-3xl rounded-2xl border border-primary/20 bg-primary/5 p-8 md:p-10",children:[e.jsx(zn,{className:"mx-auto mb-4 h-8 w-8 text-primary"}),e.jsx("div",{className:"mb-3 text-xs font-bold uppercase tracking-widest text-primary",children:"Next steps"}),e.jsx("h2",{className:"mb-3 text-2xl font-bold md:text-3xl",children:"Build your patch management modernization plan"}),e.jsx("p",{className:"mb-7 text-muted-foreground",children:"A focused discovery workshop and structured proof-of-concept deliver more value than a demo. Start with the current estate, then prove the complete operating loop."}),e.jsxs("div",{className:"mb-8 grid gap-4 text-left sm:grid-cols-3",children:[e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Discovery workshop"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Review endpoint diversity, patch cadence, service dependencies, KEV exposure, exceptions, and reporting pain points."})]}),e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Proof-of-concept"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Test an urgent KEV response, a routine patch campaign, and a contested policy exception on representative endpoints."})]}),e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Align the ecosystem"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Map SIEM, ITSM, CMDB, and identity integrations while aligning security, operations, risk, finance, and procurement stakeholders."})]})]}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[e.jsxs(Ie,{href:"/products",className:"inline-flex items-center gap-2 rounded-lg border border-primary/30 px-5 py-2.5 text-sm font-semibold text-primary transition-colors hover:bg-primary/10",children:[e.jsx(jr,{className:"h-4 w-4"}),"Back to Product Suite"]}),e.jsxs(Ie,{href:"/contact",className:"inline-flex items-center gap-2 rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-primary-foreground transition-colors hover:bg-primary/90",children:["Talk to our team",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const aH=[{value:"40+",label:"AI Features"},{value:"7",label:"Priority Signals"},{value:"5",label:"Operating Phases"},{value:"100%",label:"Closed-Loop Verification"}],ur={hidden:{opacity:0}
57,visible:{opacity:1,transition:{staggerChildren:.08}}},mr={hidden:{opacity:0,y:18},visible:{opacity:1,y:0,transition:{duration:.45,ease:"easeOut"}}},iH=[ht,Ot,nt,oa],nH=[Gt,Ot,It,nt,Be],rH=[Ue,Ui,de],sH=[{heading:"Building the enriched vulnerability record",body:"A CVE number and a CVSS score are the starting point, not the endpoint. Operational prioritization requires enriched records combining identity, severity, exploitation intelligence, and fleet context.",bullets:["Map every CVE to the specific patch, KB, or package version that resolves it","Combine EPSS probability and CISA KEV status into a fleet-aware exploitation profile","Overlay device criticality and business context onto raw threat intelligence"]},{heading:"CVSS and EPSS, used correctly",body:"CVSS measures intrinsic severity in isolation; EPSS predicts real-world exploitation probability. Treating either as the sole priority signal saturates the Critical queue with noise.",bullets:["Use CVSS as a technical descriptor, not a triage decision on its own","Track EPSS as a daily-updated, machine-learned probability score","Recognize that CVSS and EPSS are orthogonal signals that must be combined"]},{heading:"From CVE row to fleet exposure picture",body:"An exposure record connects a CVE to specific devices, owners, and business services, weighted by device criticality so remediation effort follows real business impact.",bullets:["Distinguish current-missing, stale-unknown, and compliant states per asset","Weight vulnerability rank by service impact, data classification, and privilege level","Use exposure breadth and depth to scope safe deployment rings"]},{heading:"Evidence-based reporting for every audience",body:"The same governed evidence serves analysts, operations, risk reviewers, auditors, and executives — without separate data pulls or manual reconciliation.",bullets:["Analyst view surfaces raw telemetry for forensic investigation","Operations view groups findings by remediation task, not individual CVE","Executive trend reporting tracks risk velocity and absolute KEV exposure, not just percentages"]}];function oH(){return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Endpoint Vulnerability Management | XpediOo — Intelligent Vulnerability Operations"}),e.jsx("meta",{name:"description",content:"AI Powered Endpoint Vulnerability Management continuously discovers, scores, and remediates vulnerabilities across endpoints, servers, and cloud workloads with a seven-signal explainable AI Priority Engine and closed-loop verification."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/vulnerability-management"}),e.jsx("meta",{property:"og:title",content:"AI Powered Endpoint Vulnerability Management | XpediOo"}),e.jsx("meta",{property:"og:description",content:"Discover, score, and remediate vulnerabilities with explainable AI, KEV two-person integrity, and closed-loop verification across the entire enterprise estate."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/vulnerability-management"})]}),e.jsxs("section",{className:"relative overflow-hidden border-b border-border/40 py-24 text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.035]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute left-1/2 top-0 h-96 w-[760px] -translate-x-1/2 rounded-full bg-primary/10 blur-3xl"}),e.jsx("div",{className:"container relative mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"mx-auto max-w-4xl",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-center gap-3",children:[e.jsx("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:"40+ AI Features"}),e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(bi,{className:"h-3 w-3"}),"AI Powered EPVM"]})]}),e.jsx("h1",{className:"mb-6 text-4xl font-bold leading-tight md:text-6xl",children:"AI Powered Endpoint Vulnerability Management"}),e.jsx("p",{className:"mx-auto mb-4 max-w-3xl text-lg leading-relaxed text-muted-foreground",children:"Discover, assess, and remediate endpoint vulnerabilities continuously with AI-driven prioritization based on real risk — not just CVSS scores."}),e.jsx("p",{className:"mx-auto max-w-3xl text-base leading-relaxed text-muted-foreground",children:"XpediOo unifies exp
57osure-aware risk scoring, governed AI remediation, and closed-loop verification across endpoints, servers, and cloud workloads in one operational workflow."}),e.jsx("div",{className:"mt-10 grid grid-cols-2 gap-4 sm:grid-cols-4",children:aH.map(t=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card px-4 py-5",children:[e.jsx("div",{className:"mb-1 text-2xl font-bold text-primary md:text-3xl",children:t.value}),e.jsx("div",{className:"text-xs leading-tight text-muted-foreground",children:t.label})]},t.label))})]})})]}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-destructive/25 bg-destructive/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-destructive",children:[e.jsx(ht,{className:"h-3 w-3"}),"The case for change"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Why enterprise vulnerability management fails at scale"}),e.jsx("p",{className:"text-muted-foreground",children:"Static severity scores, fragmented scanners, and unowned findings leave organizations exposed long after a vulnerability is discovered."})]}),e.jsx(v.div,{variants:ur,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:Cq.map((t,a)=>{const r=iH[a];return e.jsxs(v.article,{variants:mr,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"mb-4 inline-flex rounded-lg bg-destructive/10 p-3 text-destructive",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsx("h3",{className:"mb-2 font-semibold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Be,{className:"h-3 w-3"}),"Platform philosophy"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Principles behind XpediOo Endpoint Vulnerability Management"}),e.jsx("p",{className:"text-muted-foreground",children:"Seven design commitments separate a risk-reduction platform from a scan-and-report checkbox tool."})]}),e.jsx(v.div,{variants:ur,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:Mq.map((t,a)=>e.jsxs(v.div,{variants:mr,className:"flex items-start gap-4 roun
57ded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t})]},t))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(nt,{className:"h-3 w-3"}),"Operating model"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"The five-phase vulnerability management loop"}),e.jsx("p",{className:"text-muted-foreground",children:"Discover, Enrich, Prioritize, Remediate, Verify — each phase feeds the next in a continuously closing loop."})]}),e.jsx(v.div,{variants:ur,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-5",children:Tq.map((t,a)=>{const r=nH[a];return e.jsxs(v.article,{variants:mr,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold tracking-widest text-primary",children:["STAGE ",a+1]})]}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3 w-3"}),"Built for high-impact operations"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Move from vulnerability noise to confident action"}),e.jsx("p",{className:"text-muted-foreground",children:"Every capability is designed to reduce real-world exposure while keeping security and IT teams in control of ownership and timing."})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.section,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-primary/20 bg-card p-3 text-primary",children:e.jsx(ge,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Operational control at enterprise scale"})]})]}),e.jsx("div",{className:"space-y-4",children:o3.map(t=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:t})]},t))})]}),e.jsxs(v.section,{initial:{opacity:0,x:18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-violet-400/25 bg-violet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(be,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Intelligence behind every decision"})]})]}),e.jsx("div",{className:"space-y-4",children:l3.map(t=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(de,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:t})]},t))})]})]})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Ui,{className:"h-3 w-3"}),"Coverage and intelligence"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Coverage confidence is the foundation of every vulnerability claim"}),e.jsx("p",{className:"text-muted-foreground",children:"An organization cannot measure or reduce exposure it has not enumerated. Coverage quality is the first security control in a vulnerability program."})]}),e.jsx("div",{className:"grid gap-6 lg:grid-cols-3",children:Eq.map((t,a)=>e.jsxs(v.article,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:a*.08},className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:a===0?e.jsx(Ot,{className:"h-5 w-5"}):a===1?e.jsx(Ue,{className:"h-5 w-5"}):e.jsx(Yg,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:["Coverage ",a+1]})]}),e.jsx("h3",{className:"mb-2 text-xl font-bold",children:t.title}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:t.body}),e.jsx("ul",{className:"space-y-3",children:t.bullets.map(r=>e.jsxs("li",{className:"flex items-start gap-2 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-1 h-3.5 w-3.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:r})]},r))})]},t.title))}),e.jsxs("div",{className:"mt-10 rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2 text-xs font-bold uppercase tracking-widest text-primary",children:[e.jsx(It,{className:"h-3.5 w-3.5"}),"Threat-informed prioritization"]}),e.jsx("h3",{className:"text-2xl font-bold",children:"Combine signals instead of collapsing risk into one score"})]}),e.jsx("p",{className:"max-w-md text-sm leading-relaxed text-muted-foreground",children:"XpediOo weighs technical severity, exploitation probability, confirmed activity, exposure, and business criticality to produce actionable order."})]}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:Rq.map(t=>e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:t.label}),e.jsx("h4",{className:"mb-2 text-sm font-semibold",children:t.title}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.body})]},t.label))})]})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Pt,{className:"h-3 w-3"}),"Governance and safe remediation"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Automate velocity without weakening control"}),e.jsx("p",{className:"text-muted-foreground",children:"Every finding is a governed record with score explanation, ownership, evidence, and closure proof attached."})]}
57),e.jsx(v.div,{variants:ur,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:Pq.map((t,a)=>e.jsxs(v.article,{variants:mr,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsx("h3",{className:"font-bold",children:t.title})]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-[1.25fr_0.75fr]",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-violet-400/25 bg-violet-500/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-violet-500",children:[e.jsx(be,{className:"h-3 w-3"}),"AI platform intelligence"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"AI across the vulnerability management lifecycle"}),e.jsx("p",{className:"mb-8 max-w-3xl text-muted-foreground",children:"Exploit likelihood scoring is the most visible AI capability, but enterprise value accumulates across every stage of the vulnerability lifecycle."}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:Oq.map(t=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card p-5",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2 text-sm font-semibold text-violet-500",children:[e.jsx(de,{className:"h-4 w-4"}),t.title]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]}),e.jsxs("aside",{className:"rounded-2xl border border-violet-400/25 bg-violet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(oa,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI governance"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Explainability, accountability, and trust"})]})]}),e.jsx("ul",{className:"space-y-4",children:Dq.map(t=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:t})]},t))})]})]})})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Be,{className:"h-3 w-3"}),"How it works"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Vulnerability operations built for speed, safety, and accountability"}),e.jsx("p",{className:"text-muted-foreground",children:"From discovery through audit evidence, every stage is connected so teams can act quickly without losing control or context."})]}),e.jsx(v.div,{variants:ur,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-6 md:grid-cols-2",children:sH.map((t,a)=>e.jsxs(v.article,{variants:mr,className:"rounded-2xl border border-border/60 bg-card p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-start gap-4",children:[e.jsx("div",{className:"flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-bold",children:t.heading}),e.jsx("div",{className:"mt-2 h-1 w-12 rounded-full bg-primary/40"})]})]}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:t.body}),e.jsx("ul",{className:"space-y-3",children:t.bullets.map(r=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(ei,{className:"mt-1 h-3.5 w-3.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:r})]},r))})]},t.heading))})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ja,{className:"h-3 w-3"}),"Implementation"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"A phased roadmap for enterprise adoption"}),e.jsx("p",{className:"text-muted-foreground",children:"Earn organizational trust by proving each capability against a baseline before expanding scope."})]}
57),e.jsx(v.div,{variants:ur,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:Lq.map(t=>e.jsxs(v.article,{variants:mr,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("span",{className:"text-2xl font-bold text-primary",children:t.phase}),e.jsx("div",{className:"h-px flex-1 bg-border/60 mx-4"}),e.jsx(nt,{className:"h-4 w-4 text-primary"})]}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.phase))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx($e,{className:"h-3 w-3"}),"Competitive analysis"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Xpedioo compared with Tenable and Qualys"}),e.jsx("p",{className:"text-muted-foreground",children:"Tenable and Qualys are mature, widely-deployed platforms. Selection should be driven by operating model fit, AI capability depth, and governance requirements — not feature label counts."})]}),e.jsx(v.div,{variants:ur,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-3",children:zq.map((t,a)=>{const r=rH[a],s=t.title==="Xpedioo";return e.jsxs(v.article,{variants:mr,className:`rounded-xl border p-6 ${s?"border-primary/30 bg-primary/5":"border-border/60 bg-card"}`,children:[e.jsx("div",{className:`mb-4 inline-flex rounded-lg p-3 ${s?"bg-primary/15 text-primary":"bg-muted text-muted-foreground"}`,children:e.jsx(r,{className:"h-5 w-5"})}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:t.title}),e.jsx("p",{className:"mb-4 text-sm leading-relaxed text-muted-foreground",children:t.body}),e.jsx("ul",{className:"space-y-2",children:t.bullets.map(l=>e.jsxs("li",{className:"flex items-start gap-2 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:`mt-1 h-3.5 w-3.5 flex-shrink-0 ${s?"text-primary":"text-muted-foreground"}`}),e.jsx("span",{children:l})]},l))})]},t.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-2",children:[e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl bg-primary/10 p-3 text-primary",children:e.jsx(Ya,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"Evaluation framework"}),e.jsx("h2",{className:"mt-1 text-2xl font-bold",children:"Test the complete operating loop"})]})]}),e.jsx("p",{className:"mb-6 text-sm leading-relaxed text-muted-foreground",children:"A feature comparison is not an evaluation. A rigorous proof-of-concept uses real assets, real vulnerabilities, and real governance requirements."}),e.jsx("ul",{className:"space-y-4",children:Vq.map(t=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:t})]},t))})]}),e.jsxs("div",{className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl bg-card p-3 text-primary",children:e.jsx($e,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"Customer outcomes"}),e.jsx("h2",{className:"mt-1 text-2xl font-bold",children:"Measure the return against your baseline"})]})]}),e.jsx("p",{className:"mb-6 text-sm leading-relaxed text-muted-foreground",children:"Establish a comprehensive baseline before deployment, then quantify the change in exposure reduction and operational efficiency."}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:_q.map(t=>e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("h3",{className:"mb-2 text-sm font-bold text-primary",children:t.title}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]})]})})}),e.jsx("section",{className:"border-t border-border/40 bg-muted/20 py-16",children:e.jsx("div",{className:"container mx-auto px-4 text-center md:px-6",children:e.jsxs("div",{className:"mx-auto max-w-3xl rounded-2xl border border-primary/20 bg-primary/5 p-8 md:p-10",children:[e.jsx(zn,{className:"mx-auto mb-4 h-8 w-8 text-primary"}),e.jsx("div",{className:"mb-3 text-xs font-bold uppercase tracking-widest text-primary",children:"Next steps"}),e.jsx("h2",{className:"mb-3 text-2xl font-bold md:text-3xl",children:"Build your vulnerability management modernization plan"}),e.jsx("p",{className:"mb-7 text-muted-foreground",children:"A focused discovery workshop and structured proof-of-concept deliver more value than a demo. Start with the current estate, then prove the complete operating loop."}),e.jsxs("div",{className:"mb-8 grid gap-4 text-left sm:grid-cols-3",children:[e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Discovery workshop"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Review asset diversity, scan coverage, KEV exposure, exceptions, and reporting pain points."})]}),e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Proof-of-concept"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Test an urgent KEV response, a routine remediation cycle, and a contested exception on representative assets."})]}),e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Align the ecosystem"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Map SIEM, ITSM, CMDB, and GRC integrations while aligning security, operations, risk, and compliance stakeholders."})]})]}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[e.jsxs(Ie,{href:"/products",className:"inline-flex items-center gap-2 rounded-lg border border-primary/30 px-5 py-2.5 text-sm font-semibold text-primary transition-colors hover:bg-primary/10",children:[e.jsx(jr,{className:"h-4 w-4"}),"Back to Product Suite"]}),e.jsxs(Ie,{href:"/contact",className:"inline-flex items-center gap-2 rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-primary-foreground transition-colors hover:bg-primary/90",children:["Talk to our team",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const lH=[{value:"35+",label:"AI Features"},{value:"5",label:"Priority Signals"},{value:"6",label:"Lifecycle Stages"},{value:"100%",label:"Audit Traceability"}],pr={hidden:{opacity:0}
57,visible:{opacity:1,transition:{staggerChildren:.08}}},ks={hidden:{opacity:0,y:18},visible:{opacity:1,y:0,transition:{duration:.45,ease:"easeOut"}}},cH=[ht,Yi,Ot,oa],dH=[Pt,Ue,Gt,Yi,It,zn];function uH(){return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Enterprise Asset Management | XpediOo — Intelligent Asset Operations"}),e.jsx("meta",{name:"description",content:"AI Powered Enterprise Asset Management tracks physical assets from procurement to decommission with predictive maintenance, automated depreciation, and closed-loop governance."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/enterprise-asset-management"}),e.jsx("meta",{property:"og:title",content:"AI Powered Enterprise Asset Management | XpediOo"}),e.jsx("meta",{property:"og:description",content:"Manage physical enterprise assets at scale with predictive maintenance, automated depreciation and valuation, and complete lifecycle governance."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/enterprise-asset-management"})]}),e.jsxs("section",{className:"relative overflow-hidden border-b border-border/40 py-24 text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.035]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute left-1/2 top-0 h-96 w-[760px] -translate-x-1/2 rounded-full bg-primary/10 blur-3xl"}),e.jsx("div",{className:"container relative mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"mx-auto max-w-4xl",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-center gap-3",children:[e.jsx("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:"35+ AI Features"}),e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(yi,{className:"h-3 w-3"}),"AI Powered EAM"]})]}),e.jsx("h1",{className:"mb-6 text-4xl font-bold leading-tight md:text-6xl",children:"AI Powered Enterprise Asset Management"}),e.jsx("p",{className:"mx-auto mb-4 max-w-3xl text-lg leading-relaxed text-muted-foreground",children:"Manage physical enterprise assets at scale — from procurement to decommission — with AI-optimized maintenance scheduling."}),e.jsx("p",{className:"mx-auto max-w-3xl text-base leading-relaxed text-muted-foreground",children:"XpediOo unifies asset discovery, predictive maintenance, financial accuracy, and closed-loop governance in one operational workflow."}),e.jsx("div",{className:"mt-10 grid grid-cols-2 gap-4 sm:grid-cols-4",children:lH.map(t=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card px-4 py-5",children:[e.jsx("div",{className:"mb-1 text-2xl font-bold text-primary md:text-3xl",children:t.value}),e.jsx("div",{className:"text-xs leading-tight text-muted-foreground",children:t.label})]},t.label))})]})})]}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-destructive/25 bg-destructive/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-destructive",children:[e.jsx(ht,{className:"h-3 w-3"}),"The case for change"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Why enterprise asset programs fail at scale"}),e.jsx("p",{className:"text-muted-foreground",children:"Manual registers, reactive maintenance, and disconnected ledgers leave organizations paying for assets they can no longer account for."})]}
57),e.jsx(v.div,{variants:pr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:Fq.map((t,a)=>{const r=cH[a];return e.jsxs(v.article,{variants:ks,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"mb-4 inline-flex rounded-lg bg-destructive/10 p-3 text-destructive",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsx("h3",{className:"mb-2 font-semibold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Be,{className:"h-3 w-3"}),"Platform philosophy"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Principles behind XpediOo Enterprise Asset Management"}),e.jsx("p",{className:"text-muted-foreground",children:"Six design commitments separate a risk-reduction platform from a static asset register."})]}),e.jsx(v.div,{variants:pr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:Bq.map((t,a)=>e.jsxs(v.div,{variants:ks,className:"flex items-start gap-4 roun
57ded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t})]},t))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(nt,{className:"h-3 w-3"}),"Operating model"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"The six-stage asset lifecycle loop"}),e.jsx("p",{className:"text-muted-foreground",children:"From acquisition to retirement — a closed operational cycle where each stage informs the next."})]}),e.jsx(v.div,{variants:pr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:Hq.map((t,a)=>{const r=dH[a];return e.jsxs(v.article,{variants:ks,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold tracking-widest text-primary",children:["STAGE ",a+1]})]}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{variants:pr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3 w-3"}),"Built for high-impact operations"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Move from asset guesswork to confident action"}),e.jsx("p",{className:"text-muted-foreground",children:"Every capability is designed to reduce cost and risk while keeping operations and finance teams aligned on one asset record."})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.section,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-primary/20 bg-card p-3 text-primary",children:e.jsx(ge,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Operational control across the asset estate"})]})]}),e.jsx("div",{className:"space-y-4",children:c3.map(t=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:t})]},t))})]}),e.jsxs(v.section,{initial:{opacity:0,x:18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-violet-400/25 bg-violet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(be,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Intelligence behind every decision"})]})]}),e.jsx("div",{className:"space-y-4",children:d3.map(t=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(de,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:t})]},t))})]})]})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Ui,{className:"h-3 w-3"}),"Coverage and intelligence"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Coverage is a financial control, not a reporting number"}),e.jsx("p",{className:"text-muted-foreground",children:"Build a complete asset picture across technology, facilities, and field equipment before deciding what to maintain, replace, or retire."})]}),e.jsx("div",{className:"grid gap-6 lg:grid-cols-3",children:Gq.map((t,a)=>e.jsxs(v.article,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:a*.08},className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:a===0?e.jsx(Ot,{className:"h-5 w-5"}):a===1?e.jsx(yi,{className:"h-5 w-5"}):e.jsx(Ue,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:["Coverage ",a+1]})]}),e.jsx("h3",{className:"mb-2 text-xl font-bold",children:t.title}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:t.body}),e.jsx("ul",{className:"space-y-3",children:t.bullets.map(r=>e.jsxs("li",{className:"flex items-start gap-2 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-1 h-3.5 w-3.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:r})]},r))})]},t.title))}),e.jsxs("div",{className:"mt-10 rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2 text-xs font-bold uppercase tracking-widest text-primary",children:[e.jsx(It,{className:"h-3.5 w-3.5"}),"Risk-informed prioritization"]}),e.jsx("h3",{className:"text-2xl font-bold",children:"Combine signals instead of collapsing risk into one score"})]}),e.jsx("p",{className:"max-w-md text-sm leading-relaxed text-muted-foreground",children:"XpediOo weighs failure risk, utilization, warranty status, compliance urgency, and depreciation position to produce actionable order."})]}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-5",children:Uq.map(t=>e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:t.label}),e.jsx("h4",{className:"mb-2 text-sm font-semibold",children:t.title}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.body})]},t.label))})]})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Pt,{className:"h-3 w-3"}),"Governance and safe disposal"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Automate efficiency without weakening control"}),e.jsx("p",{className:"text-muted-foreground",children:"Every transfer, maintenance action, and disposal is a governed record with policy, evidence, approval, and financial context attached."})]}
57),e.jsx(v.div,{variants:pr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:Xq.map((t,a)=>e.jsxs(v.article,{variants:ks,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsx("h3",{className:"font-bold",children:t.title})]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-[1.25fr_0.75fr]",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-violet-400/25 bg-violet-500/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-violet-500",children:[e.jsx(be,{className:"h-3 w-3"}),"AI platform intelligence"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"AI across the asset management lifecycle"}),e.jsx("p",{className:"mb-8 max-w-3xl text-muted-foreground",children:"Predictive maintenance is the most visible AI capability, but enterprise value accumulates across every stage of asset operations."}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:$q.map(t=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card p-5",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2 text-sm font-semibold text-violet-500",children:[e.jsx(de,{className:"h-4 w-4"}),t.title]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]}),e.jsxs("aside",{className:"rounded-2xl border border-violet-400/25 bg-violet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(oa,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI governance"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Explainability, accountability, and trust"})]})]}),e.jsx("ul",{className:"space-y-4",children:Wq.map(t=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:t})]},t))})]})]})})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Be,{className:"h-3 w-3"}),"How it works"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Asset operations built for accuracy, uptime, and accountability"}),e.jsx("p",{className:"text-muted-foreground",children:"From procurement to disposal, every stage is connected so teams can act quickly without losing control or context."})]}),e.jsx(v.div,{variants:pr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-6 md:grid-cols-2",children:qq.map((t,a)=>e.jsxs(v.article,{variants:ks,className:"rounded-2xl border border-border/60 bg-card p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-start gap-4",children:[e.jsx("div",{className:"flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-bold",children:t.heading}),e.jsx("div",{className:"mt-2 h-1 w-12 rounded-full bg-primary/40"})]})]}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:t.body}),e.jsx("ul",{className:"space-y-3",children:t.bullets.map(r=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(ei,{className:"mt-1 h-3.5 w-3.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:r})]},r))})]},t.heading))})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ja,{className:"h-3 w-3"}),"Implementation"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"A phased roadmap for enterprise adoption"}),e.jsx("p",{className:"text-muted-foreground",children:"Earn organizational trust by proving each capability against a baseline before expanding scope."})]}
57),e.jsx(v.div,{variants:pr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:Kq.map(t=>e.jsxs(v.article,{variants:ks,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("span",{className:"text-2xl font-bold text-primary",children:t.phase}),e.jsx("div",{className:"h-px flex-1 bg-border/60 mx-4"}),e.jsx(nt,{className:"h-4 w-4 text-primary"})]}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.phase))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-2",children:[e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl bg-primary/10 p-3 text-primary",children:e.jsx(Ya,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"Evaluation framework"}),e.jsx("h2",{className:"mt-1 text-2xl font-bold",children:"Test the complete operating loop"})]})]}),e.jsx("p",{className:"mb-6 text-sm leading-relaxed text-muted-foreground",children:"A feature comparison is not an evaluation. A rigorous proof-of-concept uses real assets, real maintenance history, and real governance requirements."}),e.jsx("ul",{className:"space-y-4",children:Yq.map(t=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:t})]},t))})]}),e.jsxs("div",{className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl bg-card p-3 text-primary",children:e.jsx($e,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"Customer outcomes"}),e.jsx("h2",{className:"mt-1 text-2xl font-bold",children:"Measure the return against your baseline"})]})]}),e.jsx("p",{className:"mb-6 text-sm leading-relaxed text-muted-foreground",children:"Establish a comprehensive baseline before deployment, then quantify the change in cost reduction and operational efficiency."}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:Qq.map(t=>e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("h3",{className:"mb-2 text-sm font-bold text-primary",children:t.title}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]})]})})}),e.jsx("section",{className:"border-t border-border/40 bg-muted/20 py-16",children:e.jsx("div",{className:"container mx-auto px-4 text-center md:px-6",children:e.jsxs("div",{className:"mx-auto max-w-3xl rounded-2xl border border-primary/20 bg-primary/5 p-8 md:p-10",children:[e.jsx(zn,{className:"mx-auto mb-4 h-8 w-8 text-primary"}),e.jsx("div",{className:"mb-3 text-xs font-bold uppercase tracking-widest text-primary",children:"Next steps"}),e.jsx("h2",{className:"mb-3 text-2xl font-bold md:text-3xl",children:"Build your asset management modernization plan"}),e.jsx("p",{className:"mb-7 text-muted-foreground",children:"A focused discovery workshop and structured proof-of-concept deliver more value than a demo. Start with the current estate, then prove the complete operating loop."}),e.jsxs("div",{className:"mb-8 grid gap-4 text-left sm:grid-cols-3",children:[e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Discovery workshop"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Review asset diversity, maintenance ca
57dence, financial reconciliation gaps, and reporting pain points."})]}),e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Proof-of-concept"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Test predictive maintenance, a repair-versus-replace decision, and a governed disposal on representative assets."})]}),e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Align the ecosystem"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Map CMDB, ITSM, and finance integrations while aligning operations, finance, risk, and procurement stakeholders."})]})]}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[e.jsxs(Ie,{href:"/products",className:"inline-flex items-center gap-2 rounded-lg border border-primary/30 px-5 py-2.5 text-sm font-semibold text-primary transition-colors hover:bg-primary/10",children:[e.jsx(jr,{className:"h-4 w-4"}),"Back to Product Suite"]}),e.jsxs(Ie,{href:"/contact",className:"inline-flex items-center gap-2 rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-primary-foreground transition-colors hover:bg-primary/90",children:["Talk to our team",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const mH=[{value:"5",label:"AI Script Touchpoints"},{value:"2",label:"Native Platforms — PowerShell & Bash"},{value:"10",label:"Built-in AI Templates"},{value:"100%",label:"Approval-Gated Execution"}],Ss={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.08}}},ml={hidden:{opacity:0,y:18},visible:{opacity:1,y:0,transition:{duration:.45,ease:"easeOut"}}},pH=[NN,Pt,oa,ht],hH=[NN,gR,ei,Pt,Be,zn];function fH(){return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Application and Infrastructure Automation | XpediOo — Intelligent Automation Operations"}),e.jsx("meta",{name:"description",content:"AI-assisted script generation, governed endpoint execution, and measurable operational outcomes across Windows PowerShell and Linux Bash environments."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/application-infrastructure-automation"}),e.jsx("meta",{property:"og:title",content:"AI Powered Application and Infrastructure Automation | XpediOo"}),e.jsx("meta",{property:"og:description",content:"AI-assisted script generation, approval-gated execution, and a complete audit trail across Windows PowerShell and Linux Bash endpoints."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/application-infrastructure-automation"})]}),e.jsxs("section",{className:"relative overflow-hidden border-b border-border/40 py-24 text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.035]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute left-1/2 top-0 h-96 w-[760px] -translate-x-1/2 rounded-full bg-primary/10 blur-3xl"}),e.jsx("div",{className:"container relative mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"mx-auto max-w-4xl",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-center gap-3",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(uP,{className:"h-3 w-3"}),"AI-Assisted Script Generation"]}),e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Be,{className:"h-3 w-3"}),"Approval-Gated Execution"]})]}),e.jsx("h1",{className:"mb-6 text-4xl font-bold leading-tight md:text-6xl",children:"AI Powered Application and Infrastru
57cture Automation"}),e.jsx("p",{className:"mx-auto mb-4 max-w-3xl text-lg leading-relaxed text-muted-foreground",children:"AI-assisted script generation, governed endpoint execution, and measurable operational outcomes across Windows PowerShell and Linux Bash environments."}),e.jsx("p",{className:"mx-auto max-w-3xl text-base leading-relaxed text-muted-foreground",children:"Replace fragile, person-dependent, undocumented automation with a governed operating model where every action is understood, controlled, repeatable, and evidenced."}),e.jsx("div",{className:"mt-10 grid grid-cols-2 gap-4 sm:grid-cols-4",children:mH.map(t=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card px-4 py-5",children:[e.jsx("div",{className:"mb-1 text-2xl font-bold text-primary md:text-3xl",children:t.value}),e.jsx("div",{className:"text-xs leading-tight text-muted-foreground",children:t.label})]},t.label))})]})})]}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-destructive/25 bg-destructive/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-destructive",children:[e.jsx(ht,{className:"h-3 w-3"}),"The operational challenge"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Why enterprise endpoint automation fails without a control plane"}),e.jsx("p",{className:"text-muted-foreground",children:"A correct script applied to the wrong population at the wrong time by an unauthorized user is not an automation success — it is a change incident."})]}),e.jsx(v.div,{variants:Ss,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:Jq.map((t,a)=>{const r=pH[a];return e.jsxs(v.article,{variants:ml,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"mb-4 inline-flex rounded-lg bg-destructive/10 p-3 text-destructive",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsx("h3",{className:"mb-2 font-semibold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Be,{className:"h-3 w-3"}),"The governance model"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"A governed path from operational intent to endpoint outcome"}),e.jsx("p",{className:"text-muted-foreground",children:"Automation should eliminate toil without eliminating accountability. Every feature is built around one obligation: the operator must always understand what is about to happen."})]}),e.jsx(v.div,{variants:Ss,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:eF.map((t,a)=>e.jsxs(v.div,{variants:ml,className:"flex items-start gap-4 roun
57ded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t})]},t))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(nt,{className:"h-3 w-3"}),"Operating model"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"The governed automation workflow"}),e.jsx("p",{className:"text-muted-foreground",children:"From skill definition to endpoint evidence — a closed cycle where AI accelerates creation without ever bypassing control."})]}),e.jsx(v.div,{variants:Ss,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:tF.map((t,a)=>{const r=hH[a];return e.jsxs(v.article,{variants:ml,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold tracking-widest text-primary",children:["STEP ",a+1]})]}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{variants:Ss,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3 w-3"}),"Built for governed operations"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"AI accelerates creation. Humans stay in control of execution."}),e.jsx("p",{className:"text-muted-foreground",children:"Every AI output is a suggestion an operator can accept, edit, or discard — execution itself always runs through the governed control plane."})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.section,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-primary/20 bg-card p-3 text-primary",children:e.jsx(ge,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Governed execution controls"})]})]}),e.jsx("div",{className:"space-y-4",children:u3.map(t=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:t})]},t))})]}),e.jsxs(v.section,{initial:{opacity:0,x:18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-violet-400/25 bg-violet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(be,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"AI scripting & copilot features"})]})]}),e.jsx("div",{className:"space-y-4",children:m3.map(t=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(de,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:t})]},t))})]})]})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Ue,{className:"h-3 w-3"}),"Skill library"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"An enterprise catalog of governed automation skills"}),e.jsx("p",{className:"text-muted-foreground",children:"An organization's automation maturity is measured not by the number of scripts it has, but by the number it can use safely, repeatedly, and with evidence."})]}),e.jsx("div",{className:"grid gap-6 lg:grid-cols-2 xl:grid-cols-4",children:aF.map((t,a)=>e.jsxs(v.article,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:a*.08},className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:a===0?e.jsx(Ue,{className:"h-5 w-5"}):a===1?e.jsx(nt,{className:"h-5 w-5"}):a===2?e.jsx(oa,{className:"h-5 w-5"}):e.jsx(Ya,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:["Category ",a+1]})]}),e.jsx("h3",{className:"mb-2 text-xl font-bold",children:t.title}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:t.body}),e.jsx("ul",{className:"space-y-3",children:t.bullets.map(r=>e.jsxs("li",{className:"flex items-start gap-2 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-1 h-3.5 w-3.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:r})]},r))})]},t.title))}),e.jsxs("div",{className:"mt-10 rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2 text-xs font-bold uppercase tracking-widest text-primary",children:[e.jsx(It,{className:"h-3.5 w-3.5"}),"Validate before you execute"]}),e.jsx("h3",{className:"text-2xl font-bold",children:"When to run a dry run first"})]}),e.jsx("p",{className:"max-w-md text-sm leading-relaxed text-muted-foreground",children:"A dry-run job is logged like a production run — skill, parameters, resolved population, blast radius — but dispatch to endpoints is suppressed entirely."})]}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-5",children:iF.map(t=>e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:t.label}),e.jsx("h4",{className:"mb-2 text-sm font-semibold",children:t.title}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.body})]},t.label))})]})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Pt,{className:"h-3 w-3"}),"Auditability & compliance"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Automate at scale without weakening control"}),e.jsx("p",{className:"text-muted-foreground",children:"Every action documented in advance is easier to defend, repeat, and improve. Every action documented after the fact is a reconstruction, not a record."})]}
57),e.jsx(v.div,{variants:Ss,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:nF.map((t,a)=>e.jsxs(v.article,{variants:ml,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsx("h3",{className:"font-bold",children:t.title})]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-[1.25fr_0.75fr]",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-violet-400/25 bg-violet-500/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-violet-500",children:[e.jsx(be,{className:"h-3 w-3"}),"AI strategy"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"A copilot that accelerates creation without bypassing control"}),e.jsx("p",{className:"mb-8 max-w-3xl text-muted-foreground",children:"The right role for AI in enterprise automation is the same role it plays in surgery: a highly capable assistant working under the direction of a qualified, accountable professional."}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:rF.map(t=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card p-5",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2 text-sm font-semibold text-violet-500",children:[e.jsx(de,{className:"h-4 w-4"}),t.title]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]}),e.jsxs("aside",{className:"rounded-2xl border border-violet-400/25 bg-violet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(oa,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI governance"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"What AI does not control"})]})]}),e.jsx("ul",{className:"space-y-4",children:sF.map(t=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:t})]},t))})]})]})})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Be,{className:"h-3 w-3"}),"Platform depth"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"From script generation to safe, portable execution"}),e.jsx("p",{className:"text-muted-foreground",children:"The mechanics behind every governed job — from the skill library to cross-platform scripting conventions to the broader operational ecosystem."})]}),e.jsx(v.div,{variants:Ss,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-6 md:grid-cols-2",children:Zq.map((t,a)=>e.jsxs(v.article,{variants:ml,className:"rounded-2xl border border-border/60 bg-card p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-start gap-4",children:[e.jsx("div",{className:"flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-bold",children:t.heading}),e.jsx("div",{className:"mt-2 h-1 w-12 rounded-full bg-primary/40"})]})]}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:t.body}),e.jsx("ul",{className:"space-y-3",children:t.bullets.map(r=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(ei,{className:"mt-1 h-3.5 w-3.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:r})]},r))})]},t.heading))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-2",children:[e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl bg-primary/10 p-3 text-primary",children:e.jsx(Ya,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"Evaluation framework"}),e.jsx("h2",{className:"mt-1 text-2xl font-bold",children:"Start with one well-defined workflow"})]})]}),e.jsx("p",{className:"mb-6 text-sm leading-relaxed text-muted-foreground",children:"The organizations that get the most value from automation start with discipline, not ambition. One proven skill in production is worth more than twenty in development."}),e.jsx("ul",{className:"space-y-4",children:oF.map(t=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:t})]},t))})]}),e.jsxs("div",{className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl bg-card p-3 text-primary",children:e.jsx($e,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"Customer outcomes"}),e.jsx("h2",{className:"mt-1 text-2xl font-bold",children:"What organizations gain"})]})]}),e.jsx("p",{className:"mb-6 text-sm leading-relaxed text-muted-foreground",children:"The value of automation is not measured in scripts created — it is measured in incidents avoided, time recovered, risk reduced, and evidence produced."}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:lF.map(t=>e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("h3",{className:"mb-2 text-sm font-bold text-primary",children:t.title}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]})]})})}),e.jsx("section",{className:"border-t border-border/40 bg-muted/20 py-16",children:e.jsx("div",{className:"container mx-auto px-4 text-center md:px-6",children:e.jsxs("div",{className:"mx-auto max-w-3xl rounded-2xl border border-primary/20 bg-primary/5 p-8 md:p-10",children:[e.jsx(zn,{className:"mx-auto mb-4 h-8 w-8 text-primary"}),e.jsx("div",{className:"mb-3 text-xs font-bold uppercase tracking-widest text-primary",children:"Next steps"}),e.jsx("h2",{className:"mb-3 text-2xl font-bold md:text-3xl",children:"Start with one well-defined workflow and build from evidence"}),e.jsx("p",{className:"mb-7 text-muted-foreground",children:"The organizations that get the most value from automation start with discipline, not ambition — one proven skill in production, built into a program from evidence."}),e.jsxs("div",{className:"mb-8 grid gap-4 text-left sm:grid-cols-3",children:[e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Choose the first use case"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"High volume, clear success criteria, and low blast-radius risk — service recovery and disk capacity alerting are common starting points."})]}),e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Define governance up front"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Decide who creates skills, who approves by risk tier, and the mandatory dry-run policy before the first production job."})]}),e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Make AI the default"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Describe intent, review the generated script and security analysis, validate, pilot at 10% blast radius, then save with notes."})]})]}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[e.jsxs(Ie,{href:"/products",className:"inline-flex items-center gap-2 rounded-lg border border-primary/30 px-5 py-2.5 text-sm font-semibold text-primary transition-colors hover:bg-primary/10",children:[e.jsx(jr,{className:"h-4 w-4"}),"Back to Product Suite"]}),e.jsxs(Ie,{href:"/contact",className:"inline-flex items-center gap-2 rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-primary-foreground transition-colors hover:bg-primary/90",children:["Talk to our team",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const gH=[{value:"250+",label:"Automation Rules"},{value:"4",label:"DEX Scoring Pillars"},{value:"8",label:"Trigger Categories"},{value:"40+",label:"Trigger Types"}],hr={hidden:{opacity:0}
57,visible:{opacity:1,transition:{staggerChildren:.08}}},Is={hidden:{opacity:0,y:18},visible:{opacity:1,y:0,transition:{duration:.45,ease:"easeOut"}}},xH=[ht,EN,nR,It],yH=[Xi,ge,$e,ei],bH=[RE,EN,RP,Xu];function vH(){return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Digital Employee Experience (DEX) | XpediOo — Proactive Endpoint Experience"}),e.jsx("meta",{name:"description",content:"AI Powered Digital Employee Experience (DEX) continuously measures device, application, network, and sentiment signals, then applies 250+ governed automation rules to fix issues before employees notice."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/digital-employee-experience"}),e.jsx("meta",{property:"og:title",content:"AI Powered Digital Employee Experience (DEX) | XpediOo"}),e.jsx("meta",{property:"og:description",content:"Measure and improve employee digital experience with real-time scoring, 250+ automation rules, and silent, no-ticket remediation."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/digital-employee-experience"})]}),e.jsxs("section",{className:"relative overflow-hidden border-b border-border/40 py-24 text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.035]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute left-1/2 top-0 h-96 w-[760px] -translate-x-1/2 rounded-full bg-primary/10 blur-3xl"}),e.jsx("div",{className:"container relative mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"mx-auto max-w-4xl",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-center gap-3",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3 w-3"}),"250+ Automation Rules"]}),e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Xu,{className:"h-3 w-3"}),"AI Powered DEX"]})]}),e.jsx("h1",{className:"mb-6 text-4xl font-bold leading-tight md:text-6xl",children:"AI Powered Digital Employee Experience"}),e.jsx("p",{className:"mx-auto mb-4 max-w-3xl text-lg leading-relaxed text-muted-foreground",children:"AI-powered DEX scoring, 250+ automation rules, and measurable workforce outcomes across every managed endpoint — the organizations that win on employee experience are those that fix problems before employees notice them."}),e.jsx("p",{className:"mx-auto max-w-3xl text-base leading-relaxed text-muted-foreground",children:"XpediOo continuously computes a composite experience score from real telemetry across Device Performance, Application Health, Connectivity, and Employee Sentiment, then a rule engine with 250+ configurable scenarios acts — automatically, with blast-radius, cooldown, and approval controls — to resolve conditions before they generate service desk tickets."}),e.jsx("div",{className:"mt-10 grid grid-cols-2 gap-4 sm:grid-cols-4",children:gH.map(t=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card px-4 py-5",children:[e.jsx("div",{className:"mb-1 text-2xl font-bold text-primary md:text-3xl",children:t.value}),e.jsx("div",{className:"text-xs leading-tight text-muted-foreground",children:t.label})]},t.label))})]})})]}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-destructive/25 bg-destructive/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-destructive",children:[e.jsx(ht,{className:"h-3 w-3"}),"The case for change"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Why traditional IT metrics can't 
57capture employee experience"}),e.jsx("p",{className:"text-muted-foreground",children:"Uptime is not experience. Availability is not satisfaction. The gap between IT's view and the employee's reality is where productivity is lost."})]}),e.jsx(v.div,{variants:hr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:hF.map((t,a)=>{const r=xH[a];return e.jsxs(v.article,{variants:Is,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"mb-4 inline-flex rounded-lg bg-destructive/10 p-3 text-destructive",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsx("h3",{className:"mb-2 font-semibold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Be,{className:"h-3 w-3"}),"Platform philosophy"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"From reactive IT support to proactive experience intelligence"}),e.jsx("p",{className:"text-muted-foreground",children:"The organizations that win on employee experience are those that fix problems before employees notice them."})]}),e.jsx(v.div,{variants:hr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:fF.map((t,a)=>e.jsxs(v.div,{variants:Is,className:"flex items-start gap-4 roun
57ded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t})]},t))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(nt,{className:"h-3 w-3"}),"Operating model"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"How XpediOo DEX operates in practice"}),e.jsx("p",{className:"text-muted-foreground",children:"The same four-step cycle repeats across the platform: measure the baseline, activate the highest-value rule, review results, and report outcomes to leadership."})]}),e.jsx(v.div,{variants:hr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:gF.map((t,a)=>{const r=yH[a];return e.jsxs(v.article,{variants:Is,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold tracking-widest text-primary",children:["STAGE ",a+1]})]}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{variants:hr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3 w-3"}),"Built for high-impact operations"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"250+ automation rules and AI woven through every stage"}),e.jsx("p",{className:"text-muted-foreground",children:"AI is not a single feature in Xpedioo DEX — it is an operating layer woven throughout, backed by a governed automation engine that resolves conditions before they become tickets."})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.section,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-primary/20 bg-card p-3 text-primary",children:e.jsx(ge,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Automation control across the endpoint estate"})]})]}),e.jsx("div",{className:"space-y-4",children:p3.map(t=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:t})]},t))})]}),e.jsxs(v.section,{initial:{opacity:0,x:18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-violet-400/25 bg-violet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(be,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"AI as an operating layer, not a bolt-on feature"})]})]}),e.jsx("div",{className:"space-y-4",children:h3.map(t=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(de,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:t})]},t))})]})]}),e.jsxs(v.figure,{id:"dex-overview-dashboard",initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mt-10 overflow-hidden rounded-2xl border border-primary/20 bg-card shadow-[0_20px_70px_-35px_rgba(124,58,237,0.45)]",children:[e.jsxs("div",{className:"border-b border-border/60 bg-primary/5 px-5 py-4 md:px-7",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"mb-1 text-xs font-bold uppercase tracking-widest text-primary",children:"Automation command center"}),e.jsx("h3",{className:"text-xl font-bold md:text-2xl",children:"Govern every rule before it reaches an endpoint"})]}),e.jsx("div",{className:"rounded-full border border-primary/20 bg-card px-3 py-1.5 text-xs font-semibold text-primary",children:"DEX Automation"})]}),e.jsx("p",{className:"mt-2 max-w-3xl text-sm leading-relaxed text-muted-foreground",children:"A live view of rule inventory, approval status, execution volume, and tickets prevented — with simulation, scan impact, API key, and approval controls on every rule."})]}),e.jsx("div",{className:"bg-slate-950/5 p-2 md:p-4",children:e.jsx("img",{src:"/dex-automation-dashboard.png",alt:"XpediOo DEX Automation dashboard showing automation rules, approval status, simulations, executions, and tickets prevented",width:1821,height:894,loading:"lazy",className:"block h-auto w-full rounded-xl border border-border/60"})}),e.jsx("figcaption",{className:"px-5 py-3 text-xs text-muted-foreground md:px-7",children:"Screenshot: the DEX Automation workspace with governed rule execution and approval controls."})]}),e.jsxs(v.figure,{id:"dex-endpoint-health-maintenance",initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mt-8 overflow-hidden rounded-2xl border border-primary/20 bg-card shadow-[0_20px_70px_-35px_rgba(124,58,237,0.45)]",children:[e.jsxs("div",{className:"border-b border-border/60 bg-primary/5 px-5 py-4 md:px-7",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"mb-1 text-xs font-bold uppercase tracking-widest text-primary",children:"System Health automation"}),e.jsx("h3",{className:"text-xl font-bold md:text-2xl",children:"Keep endpoints healthy without disrupting users"})]}),e.jsx("div",{className:"rounded-full border border-primary/20 bg-card px-3 py-1.5 text-xs font-semibold text-primary",children:"Endpoint Health Maintenance"})]}),e.jsx("p",{className:"mt-2 max-w-3xl text-sm leading-relaxed text-muted-foreground",children:"Schedule governed tune-up tasks across Windows and Linux endpoints — from browser, package, cache, log, registry, and DNS cleanup to disk-space reporting and system maintenance."})]}),e.jsx("div",{className:"bg-slate-950/5 p-2 md:p-4",children:e.jsx("img",{src:"/dex-endpoint-health-maintenance.png",alt:"XpediOo Endpoint Health Maintenance dashboard showing scheduled system health tasks, task categories, run history, and run-now controls",width:1364,height:851,loading:"lazy",className:"block h-auto w-full rounded-xl border border-border/60"})}),e.jsx("figcaption",{className:"px-5 py-3 text-xs text-muted-foreground md:px-7",children:"Screenshot: the Endpoint Health Maintenance task library for governed System Health remediation."})]})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Ui,{className:"h-3 w-3"}),"Four-pillar scoring"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"A composite DEX score that pinpoints where experience breaks down"}),e.jsx("p",{className:"text-muted-foreground",children:'A single score that says "experience is poor" is not enough. The four-pillar model tells you exactly which dimension is responsible.'})]}),e.jsx("div",{className:"grid gap-6 sm:grid-cols-2 xl:grid-cols-4",children:xF.map((t,a)=>{const r=bH[a];return e.jsxs(v.article,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:a*.08},className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:["Coverage ",a+1]})]}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:t.title}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:t.body}),e.jsx("ul",{className:"space-y-3",children:t.bullets.map(s=>e.jsxs("li",{className:"flex items-start gap-2 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-1 h-3.5 w-3.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:s})]},s))})]},t.title)})}),e.jsxs(v.figure,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mt-10 overflow-hidden rounded-2xl border border-primary/20 bg-card shadow-[0_20px_70px_-35px_rgba(124,58,237,0.45)]",children:[e.jsxs("div",{className:"border-b border-border/60 bg-primary/5 px-5 py-4 md:px-7",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"mb-1 text-xs font-bold uppercase tracking-widest text-primary",children:"DEX score overview"}),e.jsx("h3",{className:"text-xl font-bold md:text-2xl",children:"See the employee experience picture at a glance"})]}),e.jsx("div",{className:"rounded-full border border-primary/20 bg-card px-3 py-1.5 text-xs font-semibold text-primary",children:"Four-pillar visibility"})]}),e.jsx("p",{className:"mt-2 max-w-3xl text-sm leading-relaxed text-muted-foreground",children:"The DEX Overview brings composite scores, fleet bands, pillar averages, endpoint-level scores, and data confidence into one operational view."})]}),e.jsx("div",{className:"bg-slate-950/5 p-2 md:p-4",children:e.jsx("img",{src:"/dex-overview-dashboard.png",alt:"XpediOo DEX Overview dashboard showing composite scores, four pillar averages, endpoint DEX scores, and confidence levels",width:1413,height:854,loading:"lazy",className:"block h-auto w-full rounded-xl border border-border/60"})}),e.jsx("figcaption",{className:"px-5 py-3 text-xs text-muted-foreground md:px-7",children:"Screenshot: the DEX Overview dashboard with fleet-level and endpoint-level four-pillar scoring."})]}),e.jsxs("div",{className:"mt-10 rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2 text-xs font-bold uppercase tracking-widest text-primary",children:[e.jsx(It,{className:"h-3.5 w-3.5"}),"DEX score intelligence"]}),e.jsx("h3",{className:"text-2xl font-bold",children:"Score history, per-endpoint factors, and the data confidence model"})]}),e.jsx("p",{className:"max-w-md text-sm leading-relaxed text-muted-foreground",children:"A score is only useful if you understand what is driving it, how 
57it has changed, and how confident you should be in the data behind it."})]}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:yF.map(t=>e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:t.label}),e.jsx("h4",{className:"mb-2 text-sm font-semibold",children:t.title}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.body})]},t.label))})]}),e.jsxs(v.figure,{id:"dex-industry-benchmarking",initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mt-10 overflow-hidden rounded-2xl border border-primary/20 bg-card shadow-[0_20px_70px_-35px_rgba(124,58,237,0.45)]",children:[e.jsxs("div",{className:"border-b border-border/60 bg-primary/5 px-5 py-4 md:px-7",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"mb-1 text-xs font-bold uppercase tracking-widest text-primary",children:"DEX peer benchmarking"}),e.jsx("h3",{className:"text-xl font-bold md:text-2xl",children:"Put your experience score in context"})]}),e.jsx("div",{className:"rounded-full border border-primary/20 bg-card px-3 py-1.5 text-xs font-semibold text-primary",children:"Industry comparison"})]}),e.jsx("p",{className:"mt-2 max-w-3xl text-sm leading-relaxed text-muted-foreground",children:"Compare composite and four-pillar scores with anonymized peer data by industry sector and company size, then see exactly where your experience stands against the median and top quartile."})]}),e.jsx("div",{className:"bg-slate-950/5 p-2 md:p-4",children:e.jsx("img",{src:"/dex-industry-benchmarking.png",alt:"XpediOo Industry Benchmarking dashboard comparing DEX score and four pillar scores against anonymized technology enterprise peers",width:1429,height:884,loading:"lazy",className:"block h-auto w-full rounded-xl border border-border/60"})}),e.jsx("figcaption",{className:"px-5 py-3 text-xs text-muted-foreground md:px-7",children:"Screenshot: the Industry Benchmarking workspace comparing composite DEX performance and pillar scores against peer organizations."})]})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Pt,{className:"h-3 w-3"}),"Automation governance"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Every rule governed: approval, blast radius, cooldown, dry run, and rollback"}),e.jsx("p",{className:"text-muted-foreground",children:"The power of 250+ automation scenarios is only enterprise-safe when every rule is approved, every execution is bounded, and every action can be reversed."})]}),e.jsx(v.div,{variants:hr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:bF.map((t,a)=>e.jsxs(v.article,{variants:Is,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsx("h3",{className:"font-bold",children:t.title})]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-[1.25fr_0.75fr]",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-violet-400/25 bg-violet-500/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-violet-500",children:[e.jsx(be,{className:"h-3 w-3"}),"AI platform intelligence"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"AI is not a single feature — it's an operating layer"}),e.jsx("p",{className:"mb-8 max-w-3xl text-muted-foreground",children:"AI generates per-endpoint insights, identifies automation gaps, powers the help desk copilot, writes executive briefings, and tracks AI tool adoption itself."}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:vF.map(t=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card p-5",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2 text-sm font-semibold text-violet-500",children:[e.jsx(de,{className:"h-4 w-4"}),t.title]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]}),e.jsxs("aside",{className:"rounded-2xl border border-violet-400/25 bg-vi
57olet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(oa,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI governance"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Explainability, accountability, and trust"})]})]}),e.jsx("ul",{className:"space-y-4",children:wF.map(t=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:t})]},t))})]})]})})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(NP,{className:"h-3 w-3"}),"The rest of the platform"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Eight more capabilities across measurement and automation"}),e.jsx("p",{className:"text-muted-foreground",children:"From peer benchmarking and virtual desktops to orchestration, adoption, self-service, and integration — the platform extends well beyond scoring and rules."})]}),e.jsx(v.div,{variants:hr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-6 md:grid-cols-2",children:pF.map((t,a)=>e.jsxs(v.article,{variants:Is,className:"rounded-2xl border border-border/60 bg-card p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-start gap-4",children:[e.jsx("div",{className:"flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-bold text-primary",children:a+1}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xl font-bold",children:t.heading}),e.jsx("div",{className:"mt-2 h-1 w-12 rounded-full bg-primary/40"})]})]}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:t.body}),e.jsx("ul",{className:"space-y-3",children:t.bullets.map(r=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(ei,{className:"mt-1 h-3.5 w-3.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:r})]},r))})]},t.heading))})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ja,{className:"h-3 w-3"}),"Implementation"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"A phased adoption path from first score to enterprise automation program"}),e.jsx("p",{className:"text-muted-foreground",children:"DEX programs that succeed start with a clear measurement baseline, identify the highest-value automation opportunities, and expand coverage from evidence."})]}),e.jsx(v.div,{variants:hr,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:jF.map(t=>e.jsxs(v.article,{variants:Is,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("span",{className:"text-2xl font-bold text-primary",children:t.phase}),e.jsx("div",{className:"h-px flex-1 bg-border/60 mx-4"}),e.jsx(nt,{className:"h-4 w-4 text-primary"})]}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.body})]},t.phase))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-2",children:[e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl bg-primary/10 p-3 text-primary",children:e.jsx(Ya,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"Next steps"}),e.jsx("h2",{className:"mt-1 text-2xl font-bold",children:"Start with measurement, automate with evidence"})]})]}),e.jsx("p",{className:"mb-6 text-sm leading-relaxed text-muted-foreground",children:"The most successful DEX programs begin with a clear scope, a measurable baseline, and one automation rule that proves value in the first week."}),e.jsx("ul",{className:"space-y-4",children:NF.map(t=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:t})]},t))})]}),e.jsxs("div",{className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl bg-card p-3 text-primary",children:e.jsx($e,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"Customer outcomes"}),e.jsx("h2",{className:"mt-1 text-2xl font-bold",children:"What organizations gain from a mature DEX program"})]})]}),e.jsx("p",{className:"mb-6 text-sm leading-relaxed text-muted-foreground",children:"The value of DEX is measured in time recovered, tickets deflected, risks resolved, talent retained, and investments justified."}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:AF.map(t=>e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("h3",{className:"mb-2 text-sm font-bold text-primary",children:t.title}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:t.body})]},t.title))})]})]})})}),e.jsx("section",{className:"border-t border-border/40 bg-muted/20 py-16",children:e.jsx("div",{className:"container mx-auto px-4 text-center md:px-6",children:e.jsxs("div",{className:"mx-auto max-w-3xl rounded-2xl border border-primary/20 bg-primary/5 p-8 md:p-10",children:[e.jsx(EM,{className:"mx-auto mb-4 h-8 w-8 text-primary"}),e.jsx("div",{className:"mb-3 text-xs font-bold uppercase tracking-widest text-primary",children:"Next steps"}),e.jsx("h2",{className:"mb-3 text-2xl font-bold md:text-3xl",children:"Start with a scoped measurement baseline"}),e.jsx("p",{className:"mb-7 text-muted-foreground",children:"A phased rollout that proves value with the first three automation rules in week one builds more trust than a demo — and creates the evidence to expand toward full automation coverage."}),e.jsxs("div",{className:"mb-8 grid gap-4 text-left sm:grid-cols-3",children:[e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Define your scope"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Choose a business unit, location, or device category for your initial measurement baseline."})]}),e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Activate the first three rules"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Target the most prevalent Poor-band conditions with the clearest automated response."})]}),e.jsxs("div",{className:"rounded-xl border border-primary/15 bg-card p-4",children:[e.jsx("div",{className:"mb-2 text-sm font-bold text-primary",children:"Schedule the first briefing"}),e.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Present the initial DEX baseline and tickets prevented within the first month."})]})]}),e.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[e.jsxs(Ie,{href:"/products",className:"inline-flex items-center gap-2 rounded-lg border border-primary/30 px-5 py-2.5 text-sm font-semibold text-primary transition-colors hover:bg-primary/10",children:[e.jsx(jr,{className:"h-4 w-4"}),"Back to Product Suite"]}),e.jsxs(Ie,{href:"/contact",className:"inline-flex items-center gap-2 rounded-lg bg-primary px-5 py-2.5 text-sm font-semibold text-primary-foreground transition-colors hover:bg-primary/90",children:["Talk to our team",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const wH="/assets/GRC1_1786852247574-3qLtKN5F.jpg",jH="/assets/GRC2_1786852247574-TJXu2m0B.jpg",NH="/assets/GRC3_1786852247573-BuH7n6E-.jpg",AH="/assets/GRC4_1786852247573-Rn1Tuzu-.jpg",kH="/assets/GRC5_1786852247572-C128dELt.jpg",SH="/assets/GRC6_1786852247571-uKCUBbpP.jpg",IH=[{id:"sox",name:"SOX",full:"Sarbanes-Oxley Act",region:"USA",domain:"Financial Controls",coverage:98,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Full coverage of financial reporting controls, IT general controls, and audit trail requirements for public companies."},{id:"soc2",name:"SOC2",full:"SOC 2 Type I & II",region:"USA",domain:"Trust Services",coverage:100,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Automated evidence collection across all five Trust Service Criteria: Security, Availability, Confidentiality, Processing Integrity, and Privacy."},{id:"iso27001",name:"ISO 27001",full:"ISO/IEC 27001:2022",region:"Global",domain:"Information Security",coverage:100,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Complete ISMS implementation support with control mapping, risk assessment, and Statement of Applicability management."}
57,{id:"iso42001",name:"ISO 42001",full:"ISO/IEC 42001:2023",region:"Global",domain:"AI Management",coverage:95,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"First-in-class AI Management System compliance. Governance, risk, and impact assessment for AI systems under the new international standard."},{id:"euaiact",name:"EU AI Act",full:"EU Artificial Intelligence Act",region:"EU",domain:"AI Regulation",coverage:93,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Risk-based AI classification, conformity assessments, and transparency obligations mapped to your AI system portfolio."},{id:"hipaa",name:"HIPAA",full:"Health Insurance Portability and Accountability Act",region:"USA",domain:"Healthcare",coverage:100,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Privacy Rule, Security Rule, and Breach Notification Rule compliance with automated PHI controls and risk analysis workflows."},{id:"pcidss",name:"PCI DSS",full:"Payment Card Industry DSS v4.0",region:"Global",domain:"Payment Security",coverage:100,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"All 12 PCI DSS requirements covered with continuous control monitoring, quarterly scans, and penetration test management."},{id:"rbi",name:"RBI Guidelines",full:"Reserve Bank of India IT Framework",region:"India",domain:"Banking Regulation",coverage:96,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Full support for RBI's IT governance, cybersecurity, and outsourcing guidelines applicable to regulated Indian financial institutions."},{id:"nist",name:"NIST CSF",full:"NIST Cybersecurity Framework 2.0",region:"USA / Global",domain:"Cybersecurity",coverage:100,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Complete GOVERN, IDENTIFY, PROTECT, DETECT, RESPOND, and RECOVER function mapping with maturity assessments."},{id:"gdpr",name:"GDPR",full:"General Data Protection Regulation",region:"EU",domain:"Data Privacy",coverage:97,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Data subject rights management, DPA tracking, DPIA workflows, breach notification automation, and cross-border transfer controls."},{id:"cmmc",name:"CMMC 2.0",full:"Cybersecurity Maturity Model Certification",region:"USA",domain:"Defense",coverage:92,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Level 1, 2, and 3 practice implementation tracking with System Security Plan management for DoD contractors."},{id:"fedramp",name:"FedRAMP",full:"Federal Risk and Authorization Management Program",region:"USA",domain:"Government Cloud",coverage:90,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Authorization boundary documentation, control inheritance management, and continuous monitoring for federal cloud offerings."},{id:"dora",name:"DORA",full:"Digital Operational Resilience Act",region:"EU",domain:"Financial Resilience",coverage:94,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"ICT risk management, incident reporting, resilience testing, and third-party oversight for EU financial entities."},{id:"soc1",name:"SOC 1",full:"SOC 1 Type I & II (SSAE 18)",region:"USA",domain:"Financial Reporting",coverage:99,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"ICFR control design and operating effectiveness testing with automated control evidence and auditor collaboration workflows."},{id:"nist80053",name:"NIST 800-53",full:"NIST SP 800-53 Rev 5",region:"USA",domain:"Federal Security",coverage:94,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"1,000+ security and privacy controls mapped to federal information systems with continuous monitoring support."},{id:"cobit",name:"COBIT",full:"COBIT 2019",region:"Global",domain:"IT Governance",coverage:91,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"IT governance and management objectives aligned to enterprise goals with maturity assessment across all 40 practices."},{id:"iso22301",name:"ISO 22301",full:"ISO 22301:2019",region:"Global",domain:"Business Continuity",coverage:92,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Business Continuity Management System with BIA, RTO/RPO tracking, exercise management, and plan maintenance."},{id:"iso31000",name:"ISO 31000",full:"ISO 31000:2018",region:"Global",domain:"Risk Management",coverage:98,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Enterprise risk management framework with risk appetite, heat maps, and treatment plan lifecycle management."},{id:"cosoerm",name:"COSO ERM",full:"COSO Enterprise Risk Management 2017",regi
57on:"Global",domain:"Enterprise Risk",coverage:90,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Five-component framework covering governance, strategy, performance, review, and information communication for enterprise risk."},{id:"baseliii",name:"BASEL III",full:"Basel III / CRR III",region:"Global",domain:"Banking Capital",coverage:85,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Capital adequacy, liquidity coverage ratio, NSFR, and operational risk capital charge reporting for financial institutions."},{id:"mastrm",name:"MAS TRM",full:"MAS Technology Risk Management Guidelines",region:"SGP",domain:"Technology Risk",coverage:93,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Technology risk governance, IT resilience, cyber hygiene, and incident reporting obligations for MAS-regulated entities."},{id:"apracps234",name:"APRA CPS 234",full:"APRA CPS 234 Information Security",region:"AUS",domain:"Information Security",coverage:91,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Information security capability, policy frameworks, and incident notification requirements for APRA-regulated entities."},{id:"nis2",name:"NIS2",full:"EU Network and Information Security Directive 2",region:"EU",domain:"Cybersecurity",coverage:88,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Cybersecurity risk measures, supply chain security, incident reporting within 24/72 hours, and board accountability for essential entities."},{id:"fisma",name:"FISMA",full:"Federal Information Security Modernization Act",region:"USA",domain:"Federal IT Security",coverage:87,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"FISMA reporting, ATO package management, POA&M tracking, and continuous monitoring for federal agencies and contractors."},{id:"fca",name:"FCA",full:"FCA Consumer Duty",region:"UK",domain:"Financial Conduct",coverage:90,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Consumer outcome testing across four outcomes: Products, Price & Value, Consumer Understanding, and Consumer Support."},{id:"ccpacpra",name:"CCPA / CPRA",full:"California Consumer Privacy Act / CPRA",region:"USA",domain:"Data Privacy",coverage:94,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Consumer rights fulfilment, data inventory, opt-out workflows, and annual cybersecurity audit requirements for California residents."},{id:"iso27701",name:"ISO 27701",full:"ISO/IEC 27701:2019 Privacy Extension",region:"Global",domain:"Privacy Management",coverage:92,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Privacy Information Management System extending ISO 27001 with PII processor and controller controls aligned to GDPR."},{id:"swiftcsp",name:"SWIFT CSP",full:"SWIFT Customer Security Programme",region:"Global",domain:"Financial Messaging",coverage:86,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"32 mandatory and 11 advisory controls covering secure environment, know and limit access, detect and respond for SWIFT users."}],CH=["Unified data model — risks, controls, vendors, findings, policies, obligations, incidents and evidence are related records, not disconnected spreadsheets","Bring-your-own AI provider — OpenAI, Anthropic, Google AI, NVIDIA, DeepSeek, Amazon Bedrock, Meta Llama and custom endpoints, with connection testing before go-live","Model Context Protocol (MCP) server exposes live risk, compliance, audit, vendor and policy data — plus full risk CRUD — to approved AI clients like Claude Desktop, Cursor and Windsurf","Evidence-first design — uploaded contracts, questionnaires, SOC 2 reports and audit workpapers are read by AI, not just stored","Role-based, framework-aware — 28+ regulatory and standards frameworks modelled natively across audit, compliance, policy and cyber modules"],MH=["Authenticated by default — every API sits behind session-based authentication; exceptions like a vendor's one-time questionnaire link are narrowly scoped, tokenised and expire on submission","Centralized evidence storage — contracts, SOC 2 reports, audit workpapers and questionnaire attachments live in a dedicated object-storage layer with per-record linkage","Administrator-controlled AI — LLM Settings gives full control over which provider and model power every AI feature, with masked credentials and connection testing before go-live","Governed AI-to-data access — the MCP server is protected by its own API key and exposes a documented, filterable tool catalog rather than open database access","Role-aware by module — Identity Governance provides permission-matrix role modelling, business-unit segmentation and MFA-enrolment tracking","Deploys as one application — a single, centrally-hosted web app with one system of record; no per-module install or data-sync job to maintain"],TH=[{icon:kN,title:"Third-Party Risk Suite",tagline:"AI-accelerated vendor risk, contracts and due diligence.",modules:[{name:"Vendor Register & Assessments",desc:"Central vendor register with onboarding, tiering, due diligence and questionnaire management for every third party.",highImpact:["AI-generated, unlimited vendor questionnaire questions layered on predefined controls, including targeted AI/ML governance and cloud supply-chain prompts","AI Vendor Assessment reads actual questionnaire responses to produce risk level, score, and a Security/Compliance/Financial/Operational breakdown","AI-generated due-diligence reports covering Executive Summary, Risk Analysis, Compliance Status, Findings and Recommendations","Nine prebuilt compliance questionnaire templates (TPRM, InfoSec, Financial Due Diligence, ISO 27001, SOC 2, SOX, PCI-DSS, HIPAA, NIST CSF) with AI expansion"],standard:["Vendor CRUD with tier, risk level, status, data-access level, country, frameworks, owner and n
57otes","Search and multi-filter by category, risk, status and tier; dashboard charts for vendor distribution and risk posture","Assessment and questionnaire-response records with completion tracking"]},{name:"Concentration Risk Analyzer",desc:"Identifies single-source, spend, geographic and revenue-at-risk vendor dependencies before they become crises.",highImpact:["Per-exposure and portfolio-level AI analysis producing executive summary, key findings, regulatory exposure and mitigation plans","Automated warnings for single-source vendors with no alternatives and high-criticality vendors with no supporting evidence"],standard:["Exposure register with criticality tier, dependency level, substitute readiness, spend % and revenue-at-risk %","Spend-vs-revenue-impact bubble chart and risk-rating distribution with configurable thresholds"]},{name:"Contracts, SLAs & Supplier Scoring",desc:"Contract lifecycle, live SLA monitoring and a seven-domain weighted supplier scorecard.",highImpact:["AI-powered contract obligation analysis and compliance scoring with renewal/expiry alerts and breach tracking","AI root-cause analysis for SLA breaches with remediation guidance before penalty thresholds trigger","AI-weighted supplier ratings across Financial, Cybersecurity, Operational, Reputational, Geopolitical, ESG and Compliance domains"],standard:["Contract register (MSA/SLA/NDA/DPA/SOW/licence) with renew
57al terms and breach detail","SLA metric register with target vs. actual tracking","Supplier scorecard with per-domain scores, trend and review cadence"]},{name:"Third-Party Risk Register & Assessment Templates",desc:"Formal inherent/residual risk register and repeatable vendor assessment methodology.",highImpact:["AI-powered risk assessment and mitigation planning across ten risk categories, with inherent-vs-residual scoring","Structured control scoring across Information Security, Data Privacy, Business Continuity, Compliance, Financial Viability and Subcontractor Management"],standard:["Risk register with likelihood/impact, treatment, owner and control effectiveness","Six assessment templates (Standard, Enhanced Due Diligence, Critical Vendor, IT/Cyber, Financial Stability, ESG)"]},{name:"Vendor Document Repository & Self-Service Portal",desc:"A shared evidence store and a no-login vendor portal that turns due diligence into self-service.",highImpact:["AI reads uploaded evidence and flags whether it meets due-diligence expectations, with a one-click compliance check","AI generates a fully custom questionnaire from vendor context and emails a unique, no-login portal link","Automatic response scoring, AI risk review and AI evidence-compliance scanning"],standard:["Central document repository with category, expiry date and status","Questionnaire register with due dates, auto-score and submitted/reviewed state","Notification centre for due/expiring items, breaches and missing evidence"]}]},{icon:Pt,title:"Internal Audit Suite",tagline:"Risk-based, IIA-aligned audit management, end to end.",modules:[{name:"Audit Planning & Universe",desc:"Plan, prioritise and track the organisation's full population of auditable entities.",highImpact:["AI Risk-Based Audit Scoring evaluates inherent risk, control environment, last-audit rating, complexity and regulatory exposure into a composite score and priority","AI-designed sampling methodology recommends sample size, stratification and rationale"],standard:["Audit Universe Builder with entity type, department, owner, data classification and scope flag","Audit register spanning 17 frameworks with KPI cards for planned/in-progress/completed audits"]},{name:"Fieldwork, Testing & Evidence",desc:"Execute fieldwork with structured, evidence-backed workpapers instead of unstructured notes.",highImpact:["One-click AI Compliance Report reads uploaded evidence and produces a compliance score, executive summary, findings, root cause and remediation","AI-recommended framework controls with AI-generated per-control checklists"],standard:["Control Testing Sheet, Fieldwork Tracker and Evidence Collection Log with due/received dates and status","Evidence upload with automatic RAG ingestion; compliance progress bar and risk-level badges"]},{name:"Findings, KPIs & Remediation",desc:"Turn findings into accountable, board-visible actions and track audit-function performance.",highImpact:["AI Draft Findings generates root cause, recommendation, regulatory reference and management response","AI Add-KPIs suggests IIA-aligned KPIs aware of what's already tracked, for bulk addition","AI Management Action Plan drafting turns a finding into structured actions and success criteria"],standard:["Findings register with severity, status, repeat-finding and board-reported flags","KPI Dashboard across Efficiency, Quality, Timeliness, Coverage, Risk Management and Stakeholder categories","Issue Aging Dashboard and Management Action Plan register"]}]},{icon:ct,title:"Enterprise Risk Management Suite",tagline:"From risk register to predictive risk intelligence.",modules:[{name:"Enterprise Risk Management & ERM Suite",desc:"Executive risk-universe view plus emerging, scenario, strategic and dependency risk registers.",highImpact:["Configurable risk-appetite statements and tolerance thresholds with automatic breach monitoring; scenario stress tests apply likelihood/impact shocks","Bow-tie mapping of causes → preventive controls → top event → mitigating controls → consequences","AI scan for emerging risks, AI scenario anal
57ysis with early-warning indicators, AI dependency auto-mapping and velocity alerts"],standard:["Risk-universe rollup with residual-risk distribution and category averages","Emerging, strategic and dependency risk registers with signal source, velocity and KRI linkage"]},{name:"Operational, Model & ESG Risk",desc:"Day-to-day operational risk capture through to AI/ML model governance and ESG risk.",highImpact:["AI risk-template generation tailored by industry/category with AI-recommended controls and bulk import","AI model-risk suggestion generation with performance/drift monitoring for AI/ML model inventories","AI ESG template generator and one-click checklist generation across Environmental, Social and Governance risk"],standard:["Operational risk register with automatic risk-level classification from numeric scoring","Model inventory dashboard with drift and validation tracking","ESG register filterable by E/S/G with checklist workflow"]},{name:"Risk Analytics, Metrics & KPI/KRI Suite",desc:"Predictive analytics and a Kaplan & Norton-aligned performance and key-risk-indicator hub.",highImpact:["Predictive risk trajectory with confidence values, model recommendations and forward-looking alerts","AI scorecard insight generation across Balanced Scorecard perspectives with automatic BSC achievement and KRI breach calculations"],standard:["Risk Trends, Predictions, Correlations and Model-comparison tabs with risk-velocity analysis","Balanced Scorecard across Financial, Customer, Internal Process and Learning & Growth"]}]},{icon:Ya,title:"Compliance Management Suite",tagline:"Framework compliance, obligations and remediation on autopilot.",modules:[{name:"Enterprise Compliance & Obligations",desc:"Framework-based compliance requirements, evidence and accountable obligation tracking.",highImpact:["AI-generated compliance requirements/templates by framework and industry vertical with bulk import","Obligation-centric tracking surfaces due-date and evidence gaps for recurring compliance work"],standard:["Framework/vertical/status filters across a full compliance requirement register","Obligation register with jurisdiction, framework, frequency, priority and applicability"]},{name:"Non-Compliance Incidents & Remediation",desc:"Investigate incidents and drive remediation to verified closure.",highImpact:["AI incident analysis suggests severity, root cause, regulatory impact, containment and corrective actions in one click","AI-assisted remediation turns findings into structured actions, milestones and verification content"],standard:["Incident register with regulator-reporting and escalation KPIs","Remediation register with implementation/verification evidence and effectiveness result"]},{name:"Compliance Status, Calendar & Change Log",desc:"Executive compliance health, deadline management and regulatory-change tracking.",highImpact:["Automatic urgency calculation for deadlines within 30 days and automated overdue/critical KPI identification","AI-assisted regulatory-change analysis converts a change notice into accountable follow-up actions"],standard:["Framework score cards (SOX, ISO 27001, GDPR, HIPAA, PCI DSS, NIST) with Excellent/Good/Needs Attention/Critical thresholds","Compliance calendar and regulatory change register with impact assessment"]}]},{icon:ON,title:"Governance & Policy Suite",tagline:"Governance, policy lifecycle and cross-framework mapping.",modules:[{name:"Governance Suite",desc:"Delegation of authority, governance scorecards and board-level benchmarking.",highImpact:["AI analysis of delegations and governance scorecards persisted back to the record","Benchmarking against ASX CGC, King IV, UK Corporate Governance Code and OECD Principles"],standard:["Delegation-of-authority register with financial limit, approval level and review frequency","Governance performance scorecard across Board Composition, Risk Governance and Compliance Oversight"]},{name:"Corporate Policy & Regulatory Crosswalk",desc:"Generate, upgrade and cross-map enterprise policy against regulatory frameworks.",highImpact:["AI policy generation and upgrade, plus AI text extraction from uploaded documents","AI crosswalk generator compares s
57ource/target frameworks and produces evidence-backed mappings for bulk import","AI-generated cross-framework mappings exposing direct/partial/no-coverage gaps automatically"],standard:["Categorized policy library with governance/ownership, scope, controls and evidence/testing tabs; PDF/Word export","Regulatory Crosswalk register and Policy Management lifecycle register with version and review dates"]},{name:"Corrective Action Register (CAR)",desc:"Manage corrective, preventive and systemic actions from finding to effectiveness verification.",highImpact:["AI Portfolio Insights analyzes the entire CAR portfolio","Per-record AI analyzer generates root-cause analysis, action plan, milestones and containment applied directly to the form"],standard:["CAR register with source, severity, root-cause category, milestones and overdue detection"]}]},{icon:oa,title:"Resilience, Privacy & Cyber Suite",tagline:"Incidents, privacy, continuity, financial controls and cyber GRC.",modules:[{name:"Incident Management & Identity Governance",desc:"Incident-response governance, CAPA and IAM controls in one hub.",highImpact:["AI CAPA generation from an incident description produces title, root-cause method, actions, assignee, priority and regulatory linkage","Permission-matrix role modelling with built-in identity-provider connection testing"],standard:["CAPA register with open/closed status and due-date ageing; role, business-unit and identity-provider registers with MFA-enrolment tracking"]},{name:"Privacy Suite (GDPR/CCPA)",desc:"Four-module privacy operations: breaches, ROPA, retention and privacy risk.",highImpact:["AI breach analysis determines risk score and notification-required decision from severity, subjects and breach type","AI processing assessment evaluates legal basis and international transfers to flag DPIA requirements","AI retention recommendations and AI privacy-risk assessment with GDPR article mapping"],standard:["Data Breach Log (GDPR Art. 33/34), Processing Inventory/ROPA, Retention Schedule and Privacy Risk Register with heatmap"]},{name:"Business Continuity & Financial Controls",desc:"Continuity planning and financial control-effectiveness registries.",highImpact:["AI continuity-plan generator, AI control/procedure recommendations with maturity output and one-click PDF/Word export","Financial-controls KPI dashboard surfaces effective controls, deficiencies and high-risk controls"],standard:["Continuity-plan register with objectives, procedures and status; financial-controls register with effectiveness tracking"]},{name:"Cybersecurity GRC & RBI Model Risk Management",desc:"Enterprise cyber-GRC and AI/ML model risk governance aligned to RBI's 2026 guidance.",highImpact:["AI asset-criticality scoring (ISO 27005/NIST SP 800-60), AI risk narratives, AI ISO 27001 assessments with Annex A mapping and Treat/Transfer/Tolerate/Terminate recommendations","AI Shadow-IT detection, AI vendor scoring and AI vulnerability triage/clustering/executive summaries","AI model-inventory generator under RBI MRM Guidance 2026, batch-generating up to 100 models with tiering and per-model compliance assessment"],standard:["CMDB asset register with CSV import/validation; vulnerability dashboard (Total, P1 Critical, Actively Exploited, Remediated)","Model registry with methodology, tier and regulatory metadata"]}]},{icon:be,title:"AI Platform Layer",tagline:"The shared intelligence layer every suite above draws on.",modules:[{name:"Document & Content Intelligence",desc:"Turns uploaded regulatory, contract, evidence and policy documents into structured GRC intelligence.",highImpact:["Regulatory Text Ingestion identifies obligations, themes and affected areas with an implementation action list","Contract AI Review produces a contract risk score /100, clause analysis, red flags and key dates","Evidence Adequacy Scoring rates uploaded evidence /100 against a control objective with audit-readiness assessment","Policy Gap Comparison benchmarks a policy against ISO 27001, NIST CSF, SOC 2, PCI-DSS, GDPR, ISO 31000, COBIT, CIS or DORA with a phased remediation roadmap","Obligation Extraction pulls binding duties, deadlines and evidence requirements, flagging high-risk obligations and quick wins"],standard:["Five-tab workflow (Regulatory, Contract, Evidence, Policy Gap, Obligations) with drag-and-drop upload and severity/status badges"]},{name:"AI Knowledge Generation & Narrative Reporting",desc:"Converts live GRC data and meeting documents into training content, board narratives and regulatory filings.",highImpact:["Generates expert Q&A training content by industry vertical and compliance topic with one-click Markdown export","Board Report generator snapshots live risk, compliance, audit, vendor and policy data into an executive narrative","Automated regulatory filing drafting for MAS, FCA, DORA, PRA, GDPR/ICO, SEC, FINMA and APRA","Meeting Minutes AI Summariser extracts decisions, action items and regulatory commitments and maps them to GRC records"],standard:["Collapsible, copyable generated sections with live data preview cards; upload support for PDF/DOCX/TXT"]},{name:"Executive Dashboards & Program Management",desc:"Board-ready analytics and structured GRC transformation planning.",highImpact:["Board Reporting dashboard computes enterprise risk score, compliance rate, control effectiveness, audit-issue resolution and vendor risk score against targets","Enterprise Risk dashboard automatically bands risk Critical/High/Medium/Low and compares inherent vs. residual exposure","AI capability, initiative, maturity-assessment and roadmap analysis with automatic flagging of maturity gaps of two levels or more"],standard:["GRC Overview aggregates module health scores across Operational Risk, Compliance, Audit, IT Controls, TPR and Policy Management","Roadmap Planner with timeline/table views and completion-rate KPIs"]},{name:"LLM Administration & MCP Server",desc:"Centralized AI provider control and a governed AI-client gateway to live GRC data.",highImpact:["Centralized configuration for OpenAI, Anthropic, Google AI, NVIDIA, DeepSeek, Amazon Bedrock, Meta Llama and custom endpoints with connection testing","MCP server exposes filtered risk, compliance, audit, policy and vendor data — plus full risk CRUD — to approved AI clients via an API-key-secured tool catalog"],standard:["Full provider CRUD with masked API keys, activate/default selection and per-provider model defaults"]}]}],EH=[{capability:"Vendor questionnaires",legacy:"Static template library, manual review",xpedioo:"AI-generated per vendor, auto-scored, AI-reviewed evidence"},{capability:"Audit findings & KPIs",legacy:"Manual drafting; fixed KPI templates",xpedioo:"AI-drafted findings; AI-suggested, IIA-aligned KPIs on demand"},{capability:"Policy vs. framework mapping",legacy:"Manual crosswalk spreadsheets",xpedioo:"AI-generated crosswalks 
57with evidence & bulk import"},{capability:"Board & regulator reporting",legacy:"Manual compilation from multiple systems",xpedioo:"One-click AI narrative from live risk/compliance/audit data"},{capability:"AI/ML model governance",legacy:"Not natively supported",xpedioo:"RBI MRM Guidance 2026-aligned registry with AI assessment"},{capability:"AI provider choice",legacy:"Locked to a single vendor AI",xpedioo:"8 supported providers, bring-your-own-key, swappable anytime"}],RH=[{role:"Chief Risk Officer",icon:It,desc:"Sees enterprise risk exposure, appetite breaches and stress-test outcomes in one view, with AI-drafted board reports replacing manual data compilation before every risk committee."},{role:"Chief Compliance Officer",icon:Ya,desc:"Tracks framework compliance rates, obligations and regulatory change in real time, with AI-generated requirement templates and one-click regulatory filing drafts for MAS, FCA, DORA, GDPR and more."},{role:"Head of Internal Audit",icon:Pt,desc:"Runs a fully risk-based audit plan with AI-scored prioritisation, AI-drafted findings and an AI-suggested KPI scorecard — cutting the manual drafting time behind every audit report."},{role:"Chief Information Security Officer",icon:oa,desc:"Uses AI asset-criticality scoring, ISO 27001 gap assessment and vulnerability triage to turn a sprawling CMDB into a prioritised, board-ready cyber-risk narrative."},{role:"Head of Procurement / TPRM",icon:kN,desc:"Sends AI-generated, vendor-specific due-diligence questionnaires through a no-login portal and gets an AI risk assessment the moment a vendor responds — no manual scoring spreadsheet required."},{role:"Model Risk / AI Governance Lead",icon:be,desc:"Maintains an RBI MRM Guidance 2026-aligned model inventory with AI-assisted tiering, explainability and bias-testing coverage tracking for every AI/ML model in production."}],PH=[{name:"AI Scoring",icon:It,desc:"Converts qualitative inputs — a vendor profile, a control description, an incident — into a defensible, weighted numeric score. Used for vendor risk, supplier scorecards, audit prioritisation and cyber asset criticality."},{name:"AI Drafting",icon:Ht,desc:"Generates a first-draft narrative — an audit finding, a management action plan, a board report, a regulatory filing — from structured record data, for a human reviewer to refine and approve."},{name:"AI Generation / Templating",icon:de,desc:"Produces a complete starting record set — a questionnaire, a compliance requirement template, an ESG risk register, a model inventory — tailored to industry, framework or context, ready for bulk import."},{name:"AI Gap / Compliance Analysis",icon:Gt,desc:"Compares an artefact — a policy, an evidence file, a control set — against a named framework or objective and reports coverage, gaps and remediation steps."},{name:"AI Extraction",icon:JT,desc:"Reads unstructured documents — contracts, regulations, meeting minutes — and pulls out structured obligations, dates, owners and risks."},{name:"AI Portfolio Intelligence",icon:nT,desc:"Analyzes an entire register at once, rather than one record at a time — producing an executive summary, priority actions and portfolio-level risk level."}],OH=[{phase:"Phase 1 — Foundation",weeks:"Weeks 1–4",icon:yi,desc:"Stand up the core register(s) for the highest-priority pain point — commonly Third-Party Risk or Internal Audit — migrate existing spreadsheets, configure the LLM provider, and connect the object-storage evidence layer."},{phase:"Phase 2 — Automate",weeks:"Weeks 4–10",icon:ge,desc:"Turn on AI assessment, scoring and drafting for the live register; enable the self-service vendor portal or AI questionnaire generation; connect Compliance, Audit and Risk registers so cross-module warnings start firing."},{phase:"Phase 3 — Scale",weeks:"Ongoing",icon:ct,desc:"Extend to remaining suites — Governance, Privacy, Business Continuity, Cybersecurity GRC, Model Risk — activate Board Reporting and Narrative AI, and open the MCP server to approved internal AI copilots."}],DH=[{name:"Banking & Financial Services",icon:MM,desc:"RBI Model Risk Management Guidance 2026, MAS TRM, FCA, PRA, DORA, FINMA, APRA and SEC coverage fit banks, NBFCs, insurers and asset managers managing model risk, third-party risk and regulator reporting simultaneously."},{name:"Technology & SaaS",icon:Tn,desc:"SOC 2, ISO 27001, GDPR and PCI-DSS coverage, plus the AI/ML model registry and shadow-IT detection, fit vendor-heavy, cloud-native organisations that must prove security and privacy posture to enterprise customers."},{name:"Healthcare & Life Sciences",icon:yr,desc:"HIPAA-aligned compliance tracking and the Privacy Suite's breach, ROPA and retention workflows support covered entities and business associates managing protected health information."},{name:"Government & Public Sector",icon:TE,desc:"ISO 31000/9001/14001/22301 and jurisdiction-specific privacy frameworks (UAE PDPL, PIPEDA) supp
57ort agencies running formal enterprise risk and business-continuity programmes."},{name:"Manufacturing & Critical Infrastructure",icon:HT,desc:"Business Continuity, Financial Controls and Cybersecurity GRC modules — including CMDB-based asset criticality scoring — support operationally complex, supply-chain-dependent organisations."}],LH=[{q:"Do we have to use a specific AI provider?",a:"No. LLM Settings lets an administrator connect OpenAI, Anthropic, Google AI, NVIDIA, DeepSeek, Amazon Bedrock, Meta Llama or a custom endpoint, test the connection, and switch providers at any time without losing configuration."},{q:"Can we start with one module and expand later?",a:"Yes. Every suite — TPR, Audit, ERM, Compliance, Governance, Privacy, Business Continuity, Cybersecurity, Model Risk — runs on the shared data model, so records created in one module are immediately visible and reusable when a new module is switched on."},{q:"How does AI avoid duplicating what we already track?",a:"AI generation features are context-aware: AI KPI suggestions in Internal Audit and AI questionnaire generation in TPR are passed the organisation's existing records so suggestions do not repeat what is already tracked."},{q:"Can external AI assistants access our GRC data directly?",a:"Only through the governed MCP server, which requires its own API key and exposes a documented, filterable tool catalog — there is no open database access for AI clients."},{q:"What happens to AI-generated content before it's saved?",a:"AI output is consistently presented for human review — a draft finding, a suggested KPI, a generated questionnaire, a proposed policy mapping — with explicit accept/select/apply actions rather than being written directly to the system of record."},{q:"Can vendors or third parties use the platform without an account?",a:"Yes, for the self-service workflows designed for it: the Vendor Questionnaire Portal uses a unique, expiring, tokenised link so a vendor can respond and attach evidence without any login or account provisioning."}],An={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.05}}},kn={hidden:{opacity:0,y:16},visible:{opacity:1,y:0,transition:{duration:.4}}},VH=[{src:jH,alt:"XpediOo Enterprise Risk Register showing inherent, residual, and appetite risk scores",title:"Enterprise Risk Register",description:"Generate and manage risk registers with AI-assisted scoring across inherent, residual, and target risk."},{src:NH,alt:"XpediOo Residual Risk Calculator showing likelihood, impact, and control risk reduction",title:"Residual Risk Calculator",description:"Make risk exposure visible by modelling likelihood, impact, controls, and real-world residual risk."},{src:AH,alt:"XpediOo Enterprise Regulatory Compliance workspace showing compliance items and framework filters",title:"Enterprise Compliance",description:"Track compliance items, owners, due dates, frameworks, status, and evidence from one workspace."},{src:kH,alt:"XpediOo Import Compliance Template dialog with AI-generated GDPR, SEBI, UAE PDPL, ISO 9001, and DPDPA templates",title:"AI Compliance Templates",description:"Import AI-generated templates for the frameworks and industry requirements your organisation needs."},{src:SH,alt:"XpediOo Cybersecurity GRC asset criticality register with asset scores, tiers, and status",title:"Cybersecurity GRC",description:"Connect cybersecurity assets to criticality, risk tiers, ownership, and remediation workflows."}];function _H(){const{openDemoModal:t}=ot();return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"GRC & ERM Suite | XpediOo — 20+ Modules, 60+ AI Capabilities"}),e.jsx("meta",{name:"description",content:"XpediOo GRC & ERM Suite unifies Third-Party Risk, Internal Audit, Enterprise Risk, Compliance, Governance, Privacy, Business Continuity and Cyber GRC into one AI-native system of record, with 28+ frameworks and 8 supported LLM providers."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/grc"}),e.jsx("meta",{property:"og:title",content:"GRC & ERM Suite | XpediOo — 20+ Modules, 60+ AI Capabilities"}),e.jsx("meta",{property:"og:description",content:"An AI-native GRC & ERM platform unifying Third-Party Risk, Internal Audit, Enterprise Risk, Compliance, Governance, Privacy and Cyber GRC — with 28+ regulatory frameworks natively supported."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/grc"})]}),e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(184 100% 50%) 1px, transparent 1px), linear-gradient(90deg, hsl(184 100% 50%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 left-1/3 w-72 h-72 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"container mx-auto px-4 md:px-6 relative",children:[e.jsxs(v.div,{initial:{opacity:0,y:24}
57,animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-3xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(We,{className:"h-3 w-3"}),"AI Powered GRC"]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["One Platform.",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Every Line of Defence."})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-2xl",children:"XpediOo GRC & ERM Suite unifies Third-Party Risk, Internal Audit, Enterprise Risk, Compliance, Governance, Privacy, Business Continuity, Cybersecurity and Model Risk into a single AI-native system of record — replacing spreadsheets, email chains and disconnected point tools."})]}),e.jsx(v.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.3},className:"mt-12 grid grid-cols-2 md:grid-cols-4 gap-6",children:[{label:"Regulatory Frameworks",value:"28+"},{label:"Purpose-Built Modules",value:"20+"},{label:"Dedicated AI Endpoints",value:"60+"},{label:"Supported LLM Providers",value:"8"}].map(a=>e.jsxs("div",{className:"border border-border/60 bg-card rounded-xl p-5","data-testid":`grc-metric-${a.label.toLowerCase().replace(/\s+/g,"-")}`,children:[e.jsx("div",{className:"text-3xl font-bold text-primary mb-1",children:a.value}),e.jsx("div",{className:"text-xs text-muted-foreground font-medium",children:a.label})]},a.label))})]})]}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-2xl mb-12",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"An AI-Native Architecture, Built for Sensitive Data"}),e.jsx("p",{className:"text-muted-foreground",children:"Every module shares one data model, one AI engine and one evidence store — so risk, compliance, audit and vendor data reinforce each other instead of living in silos."})]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-8",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 border border-primary/20 text-primary mb-4",children:e.jsx(Ue,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-lg text-foreground mb-4",children:"Platform Architecture"}),e.jsx("ul",{className:"space-y-3",children:CH.map(a=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground leading-relaxed",children:[e.jsx("span",{className:"h-1 w-1 rounded-full bg-primary mt-2 flex-shrink-0"}),e.jsx("span",{children:a})]},a))})]}),e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 border border-primary/20 text-primary mb-4",children:e.jsx(bi,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-lg text-foreground mb-4",children:"Security, Data & Deployment"}),e.jsx("ul",{className:"space-y-3",children:MH.map(a=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground leading-relaxed",children:[e.jsx("span",{className:"h-1 w-1 rounded-full bg-primary mt-2 flex-shrink-0"}),e.jsx("span",{children:a})]},a))})]})]})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-card/30",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-2xl mb-10",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," GRC in Action"]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"One workspace for every risk decision"}),e.jsx("p",{className:"text-muted-foreground",children:"Replace disconnected registers and point tools with a live, AI-powered view of enterprise risk, compliance, cybersecurity, and board-level performance."})]}),e.jsxs(v.figure,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"group overflow-hidden rounded-2xl border border-border/60 bg-card shadow-sm mb-8",children:[e.jsx("div",{className:"overflow-hidden bg-muted/20",children:e.jsx("img",{src:wH,alt:"XpediOo GRC Dashboards and Analytics executive overview with risk, compliance, audit, and vendor metrics",className:"block w-full h-auto transition-transform duration-700 group-hover:scale-[1.01]",loading:"lazy"})}),e.jsxs("figcaption",{className:"border-t border-border/50 px-5 py-4 md:px-6 md:py-5",children:[e.jsx("h3",{className:"font-semibold text-foreground mb-1",children:"Executive GRC Dashboards & Analytics"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"See total enterprise risk, compliance rate, open audit issues, vendor exposure, risk distribution, and board KPI scorecards at a glance."})]})]}
57),e.jsx(v.div,{variants:An,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 gap-6",children:VH.map(a=>e.jsxs(v.figure,{variants:kn,className:"group overflow-hidden rounded-2xl border border-border/60 bg-card shadow-sm",children:[e.jsx("div",{className:"overflow-hidden bg-muted/20",children:e.jsx("img",{src:a.src,alt:a.alt,className:"block w-full h-auto transition-transform duration-700 group-hover:scale-[1.02]",loading:"lazy"})}),e.jsxs("figcaption",{className:"border-t border-border/50 px-5 py-4",children:[e.jsx("h3",{className:"font-semibold text-foreground mb-1",children:a.title}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:a.description})]})]},a.title))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-card/30",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-2xl mb-6",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"20+ Modules Across Six Suites"}),e.jsx("p",{className:"text-muted-foreground",children:"Every module below lists capabilities in two tiers. Select a suite to expand its modules."})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 mb-10",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 text-xs font-semibold px-3 py-1.5 rounded-full bg-primary/10 text-primary border border-primary/20",children:[e.jsx(de,{className:"h-3 w-3"})," High Impact — AI-driven or automation-first, differentiating vs. legacy GRC tools"]}),e.jsxs("div",{className:"inline-flex items-center gap-2 text-xs font-semibold px-3 py-1.5 rounded-full bg-muted text-muted-foreground border border-border/60",children:[e.jsx(Me,{className:"h-3 w-3"})," Standard — comprehensive, audit-grade system-of-record functionality"]})]}),e.jsx(v.div,{variants:An,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"space-y-4",children:TH.map(a=>e.jsxs(v.details,{variants:kn,className:"group border border-border/60 bg-card rounded-xl overflow-hidden [&_summary::-webkit-details-marker]:hidden",children:[e.jsxs("summary",{className:"cursor-pointer list-none flex items-center justify-between gap-4 p-6 hover:bg-muted/20 transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 border border-primary/20 text-primary flex-shrink-0",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-foreground text-lg",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mt-1",children:a.tagline})]})]}),e.jsx(na,{className:"h-5 w-5 text-muted-foreground flex-shrink-0 transition-transform duration-300 group-open:rotate-180"})]}),e.jsx("div",{className:"px-6 pb-6 pt-2 border-t border-border/40 space-y-6",children:a.modules.map(r=>e.jsxs("div",{className:"pt-4 first:pt-0",children:[e.jsx("h4",{className:"font-semibold text-foreground mb-1",children:r.name}),e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:r.desc}),e.jsxs("div",{className:"grid sm:grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-semibold text-primary uppercase tracking-wide mb-2",children:"High Impact"}),e.jsx("ul",{className:"space-y-1.5",children:r.highImpact.map(s=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-foreground leading-relaxed",children:[e.jsx(de,{className:"h-3.5 w-3.5 text-primary mt-0.5 flex-shrink-0"}),e.jsx("span",{children:s})]},s))})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"Standard"}),e.jsx("ul",{className:"space-y-1.5",children:r.standard.map(s=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground leading-relaxed",children:[e.jsx("span",{className:"h-1 w-1 rounded-full bg-muted-foreground mt-2 flex-shrink-0"}),e.jsx("span",{children:s})]},s))})]})]})]},r.name))})]},a.title))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-2xl mb-10",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Built AI-First, Not AI-Bolted-On"}),e.jsx("p",{className:"text-muted-foreground text-lg",children:"Legacy GRC suites added a chatbot on top of static registers. XpediOo starts from the AI layer and builds every workflow — vendor onboarding, audit scoring, policy drafting, board reporting — around it."})]}),e.jsx("div",{className:"border border-border/60 bg-card rounded-xl overflow-hidden mb-8",children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"bg-muted/30",children:[e.jsx("th",{className:"text-left font-semibold text-foreground px-6 py-3 align-bottom w-1/4",children:"Capability"}),e.jsx("th",{className:"text-left font-semibold text-muted-foreground px-6 py-3 align-bottom w-3/8",children:"Legacy GRC Platforms"}),e.jsx("th",{className:"text-left font-semibold text-primary px-6 py-3 align-bottom w-3/8",children:"XpediOo GRC & ERM Suite"})]})}),e.jsx("tbody",{children:EH.map((a,r)=>
57e.jsxs("tr",{className:"border-t border-border/40",children:[e.jsx("td",{className:"px-6 py-4 font-semibold text-foreground align-top",children:a.capability}),e.jsx("td",{className:"px-6 py-4 text-muted-foreground align-top leading-relaxed",children:a.legacy}),e.jsx("td",{className:"px-6 py-4 text-foreground align-top leading-relaxed",children:a.xpedioo})]},r))})]})})}),e.jsx(v.blockquote,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"border-l-2 border-primary pl-6 text-lg text-foreground italic max-w-3xl",children:`"The difference isn't that XpediOo has AI features — it's that AI removes the busywork from every register a GRC team already keeps, so analysts spend their time on judgement, not data entry."`})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-card/30",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-2xl mb-12",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"Built for Every Seat at the Risk Table"}),e.jsx("p",{className:"text-muted-foreground",children:"One platform, six very different daily workflows — each accelerated by the same shared AI layer."})]}),e.jsx(v.div,{variants:An,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:RH.map(a=>e.jsxs(v.div,{variants:kn,className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-semibold text-foreground mb-2",children:a.role}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:a.desc})]},a.role))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-2xl mb-12",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"AI Capability Glossary"}),e.jsx("p",{className:"text-muted-foreground",children:"The same handful of AI capability patterns repeat across every module — understanding them once makes the whole platform predictable."})]}),e.jsx(v.div,{variants:An,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:PH.map(a=>e.jsxs(v.div,{variants:kn,className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-semibold text-foreground mb-2",children:a.name}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:a.desc})]},a.name))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-card/30",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"28 Supported Frameworks"}),e.jsx("p",{className:"text-muted-foreground",children:"Every framework includes pre-built control libraries, automated monitoring, and audit-ready documentation."})]}),e.jsx(v.div,{variants:An,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 lg:grid-cols-3 gap-5",children:IH.map(a=>e.jsxs(v.div,{variants:kn,whileHover:{y:-3,transition:{duration:.2}},className:ie("group relative border bg-card rounded-xl p-6 hover:shadow-lg transition-all duration-300",a.border),"data-testid":`framework-card-${a.id}`,children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsx("div",{className:ie("px-3 py-1.5 rounded-lg text-sm font-bold tracking-wider",a.bg,a.color),children:a.name}),e.jsxs("div",{className:"flex items-center gap-1 text-xs text-muted-foreground border border-border/40 px-2 py-1 rounded-full",children:[e.jsx(Qt,{className:"h-3 w-3"}),a.region]})]}),e.jsx("h3",{className:"font-semibold text-foreground mb-1 text-sm",children:a.full}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4 leading-relaxed",children:a.desc}),e.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground mb-3",children:[e.jsx(bi,{className:"h-3 w-3"}),e.jsx("span",{children:a.domain})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between text-xs mb-1.5",children:[e.jsx("span",{className:"text-muted-foreground",children:"XpediOo Coverage"}),e.jsxs("span",{className:ie("font-bold",a.color),children:[a.coverage,"%"]})]}),e.jsx("div",{className:"h-1.5 bg-muted rounded-full overflow-hidden",children:e.jsx(v.div,{initial:{width:0},whileInView:{width:`${a.coverage}%`},viewport:{once:!0},transition:{duration:1,delay:.2,ease:"easeOut"},className:ie("h-full rounded-full",a.bg.replace("bg-","bg-").replace("/10","/60")),style:{backgroundColor:"var(--color-chart-1)"}})})]})]},a.id))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-2xl mb-12",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"A Phased Path to Value"}),e.jsx("p",{className:"text-muted-foreground",children:"Organisations typically light up XpediOo in three phases, expanding from a single high-pain module to full GRC/ERM coverage."})]}
57),e.jsx(v.div,{variants:An,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-3 gap-6",children:OH.map(a=>e.jsxs(v.div,{variants:kn,className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("span",{className:"text-xs font-semibold text-muted-foreground border border-border/40 px-2 py-1 rounded-full",children:a.weeks})]}),e.jsx("h3",{className:"font-semibold text-foreground mb-2",children:a.phase}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:a.desc})]},a.phase))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-card/30",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-2xl mb-12",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"Industries We Serve"}),e.jsx("p",{className:"text-muted-foreground",children:"The framework coverage and module design reflect these sectors in particular — though configurable frameworks and AI-generated templates extend to any regulated industry."})]}),e.jsx(v.div,{variants:An,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:DH.map(a=>e.jsxs(v.div,{variants:kn,className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-semibold text-foreground mb-2",children:a.name}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:a.desc})]},a.name))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-2xl mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(gT,{className:"h-3 w-3"})," FAQ"]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"Frequently Asked Questions"}),e.jsx("p",{className:"text-muted-foreground",children:"Common questions from evaluation teams."})]}),e.jsx(v.div,{variants:An,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"max-w-3xl space-y-3",children:LH.map(a=>e.jsxs(v.details,{variants:kn,className:"group border border-border/60 bg-card rounded-xl overflow-hidden [&_summary::-webkit-details-marker]:hidden",children:[e.jsxs("summary",{className:"cursor-pointer list-none flex items-center justify-between gap-4 p-5 hover:bg-muted/20 transition-colors",children:[e.jsx("span",{className:"font-semibold text-foreground text-sm",children:a.q}),e.jsx(na,{className:"h-4 w-4 text-muted-foreground flex-shrink-0 transition-transform duration-300 group-open:rotate-180"})]}),e.jsx("div",{className:"px-5 pb-5 pt-0 text-sm text-muted-foreground leading-relaxed border-t border-border/40 pt-3",children:a.a})]},a.q))})]})}),e.jsx("section",{className:"py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center max-w-2xl mx-auto",children:[e.jsx("h2",{className:"text-3xl font-bold mb-4",children:"Let's Put This to Work"}),e.jsx("p",{className:"text-muted-foreground mb-8",children:"XpediOo GRC & ERM Suite is ready to evaluate against your current registers, spreadsheets and point tools — through a live walkthrough, a proof of concept, or a full module-by-module RFP response."}),e.jsxs(ve,{size:"lg",onClick:t,className:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_20px_rgba(159,24,255,0.3)] text-base px-10 h-12","data-testid":"btn-grc-cta",children:["Request a GRC Demo ",e.jsx(Te,{className:"ml-2 h-4 w-4"})]})]})})})]})}const zH=[{id:"no-code-builder",title:"No-Code AI Agent Builder",desc:"Drag-and-drop agent design canvas. Connect enterprise data, define reasoning steps, and deploy AI agents to ServiceNow workflows without writing a line of code.",icon:wi,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",features:["Visual workflow canvas with step-by-step logic","Pre-built agent templates for 50+ enterprise processes","Real-time testing and simulation environment","One-click deployment to ServiceNow instances"]},{id:"agentic-orchestration",title:"Agentic Workflow Orchestration",desc:"Deploy multi-step AI agents that autonomously reason, plan, and execute complex enterprise workflows — with enterprise-grade guardrails at every decision point.",icon:ji,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",features:["Multi-agent coordination and handoff","Autonomous decision-making with configurable guardrails","Human-in-the-loop escalation at any step","Parallel and sequential task execution"]},{id:"model-management",title:"AI Model Management",desc:"Train, fine-tune, and govern custom AI models on your enterprise data. Maintain full control over model behavior, versioning, and performance.",icon:be,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",features:["Model versioning and rollback capabilities","Fine-tuning on proprietary enterprise data","A/B testing between model versions","Bias and drift monitoring dashboards"]},{id:"enterprise-integrations",title:"200+ Enterprise Integrations",desc:"Connect XpediOo AI Studio to every system in y
57our enterprise stack — from ServiceNow to SAP, Salesforce, Azure, AWS, and beyond.",icon:Qt,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",features:["Native ServiceNow bidirectional integration","REST, GraphQL, and SOAP connectors","Pre-built adapters for major ERP and ITSM platforms","Real-time data streaming and event triggers"]},{id:"governance",title:"AI Governance & Auditability",desc:"Every AI decision is logged, explainable, and auditable. Meet ISO 42001, EU AI Act, and enterprise AI policy requirements without any extra work.",icon:We,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",features:["Full decision audit trail with explanations","Role-based AI access controls","Compliance mapping to ISO 42001 and EU AI Act","Model performance and fairness reporting"]},{id:"performance",title:"Production-Scale Performance",desc:"Built to handle enterprise-scale AI workloads. Auto-scaling infrastructure, sub-second response SLAs, and 99.99% uptime SLAs for mission-critical AI workflows.",icon:ge,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",features:["Auto-scaling for peak demand events","Sub-200ms agent response time at scale","99.99% uptime SLA on AI infrastructure","Multi-region deployment support"]}],qH=[{name:"Incident Resolution Agent",domain:"ITSM",desc:"Triages, diagnoses, and resolves P1/P2 incidents autonomously. Escalates to humans only when genuinely needed.",steps:["Detect & classify","Correlate with CMDB","Run runbooks","Verify resolution"],color:"text-primary",bg:"bg-primary/10"},{name:"Compliance Evidence Agent",domain:"GRC",desc:"Continuously collects and maps evidence to 28 regulatory frameworks. Flags gaps before auditors do.",steps:["Scan systems","Map to controls","Flag exceptions","File evidence"],color:"text-primary",bg:"bg-primary/10"},{name:"Vendor Risk Agent",domain:"Vendor Mgmt",desc:"Scores vendor risk in real time using security ratings, contract data, and AI risk signals.",steps:["Monitor signals","Score risk","Alert stakeholders","Initiate review"],color:"text-primary",bg:"bg-primary/10"},{name:"HR Onboarding Agent",domain:"HRMS",desc:"Orchestrates the full onboarding lifecycle — provisioning, training, and check-ins — from a single trigger.",steps:["Receive hire signal","Provision access","Assign training","Send check-ins"],color:"text-primary",bg:"bg-primary/10"}],wf={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.08}}},jf={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.45}}};function FH(){return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Studio | XpediOo — No-Code Enterprise AI Agent Builder"}),e.jsx("meta",{name:"description",content:"XpediOo AI Studio: build, deploy, and orchestrate enterprise AI agents without code. Native ServiceNow integration, multi-model AI, real-time analytics, and SOC 2 compliance."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/ai-studio"}),e.jsx("meta",{property:"og:title",content:"AI Studio | XpediOo — No-Code Enterprise AI Agent Builder"}),e.jsx("meta",{property:"og:description",content:"Build and deploy enterprise AI agents without code. Native ServiceNow integration, multi-model AI, real-time analytics, and SOC 2 compliance."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/ai-studio"})]}),e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(280 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(280 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-1/4 right-1/4 w-80 h-80 bg-primary/8 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-1/3 w-64 h-64 bg-primary/8 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(de,{className:"h-3 w-3"}),"AI Studio & Agentic Implementation"]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["Build Enterprise AI Agents.",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Without Writing Code."})]}),e.jsx("p",{className:"text-muted-foreground text-xl leading-relaxed max-w-3xl",children:"XpediOo AI Studio is the fastest path from AI concept to enterprise production. Build, deploy, and govern autonomous AI agents on ServiceNow — all from a visual canvas. No PhD required."})]})})]}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-card/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-5",children:[e.jsx(Ue,{className:"h-3 w-3"}),"Platform Architecture"]}),e.jsxs("h2",{className:"text-3xl md:text-5xl font-bold mb-5",children:["The Solution: A Convergent,",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"AI Native Architecture"})]}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-3xl mx-auto",children:"XpediOo is built from the ground up as an AI-native stack — not a legacy platform with AI bolted on. Every layer, from engagement to foun
57dation, is purpose-built to accelerate enterprise AI deployment."})]}),e.jsx(v.div,{initial:{opacity:0,scale:.98},whileInView:{opacity:1,scale:1},viewport:{once:!0},transition:{duration:.7,delay:.2},className:"flex justify-center mb-14",children:e.jsx("div",{className:"w-3/4 rounded-2xl overflow-hidden border border-primary/20 shadow-[0_0_60px_rgba(159,24,255,0.1)]",children:e.jsx("img",{src:"/ai-architecture.png",alt:"XpediOo Convergent AI Native Architecture",className:"w-full h-auto object-contain bg-white"})})}),e.jsx(v.div,{variants:wf,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 lg:grid-cols-4 gap-5",children:[{label:"Engagement Layer",desc:"Multi-channel AI interfaces for every enterprise persona — Consumer, Analyst, Executive, Teams, Slack, Chrome, and Email.",icon:Qt,tags:["Consumer","Executive","Slack","Email"]},{label:"AI OS Platform Engine",desc:"The central intelligence core: AI Designers, AI Studios (Agentic + Mobile), Governance controls, and Pro-Code extensibility.",icon:Xa,tags:["AI Designers","AI Studios","Governance","Pro-Code"]},{label:"AI Applications",desc:"15 enterprise-grade AI applications spanning Service Management, GRC, ITAM, HRSD, Observability, CSM/FSM, and PDLC/SDLC.",icon:vt,tags:["AI-ITSM","GRC","ITAM","HRSD","CSM/FSM"]},{label:"Foundation",desc:"Enterprise-hardened data foundation: PostgreSQL, Pgvector for semantic search, Cloud-native, and On-Premise deployment.",icon:We,tags:["PostgreSQL","Pgvector","Cloud","On-Premise"]}].map(t=>e.jsxs(v.div,{variants:jf,className:"border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-[0_0_20px_rgba(159,24,255,0.08)] transition-all duration-300",children:[e.jsx("div",{className:"p-3 w-fit rounded-xl bg-primary/10 mb-4",children:e.jsx(t.icon,{className:"h-5 w-5 text-primary"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:t.label}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-4",children:t.desc}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.tags.map(a=>e.jsx("span",{className:"text-xs font-medium px-2 py-0.5 rounded-full border border-primary/20 bg-primary/5 text-primary",children:a},a))})]},t.label))})]})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[e.jsx("h2",{className:"text-2xl md:text-4xl font-bold mb-3",children:"Everything You Need to Build Enterprise AI"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"From a single no-code canvas to production-scale agentic orchestration — XpediOo AI Studio covers the full lifecycle."})]}),e.jsx(v.div,{variants:wf,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:zH.map(t=>e.jsxs(v.div,{variants:jf,whileHover:{y:-4,transition:{duration:.2}},className:ie("group border bg-card rounded-xl p-6 hover:shadow-lg transition-all duration-300",t.border),"data-testid":`capability-card-${t.id}`,children:[e.jsx("div",{className:ie("p-3 w-fit rounded-xl mb-4 transition-colors",t.bg,t.color),children:e.jsx(t.icon,{className:"h-6 w-6"})}),e.jsx("h3",{className:"font-bold text-lg text-foreground mb-2",children:t.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-5",children:t.desc}),e.jsx("ul",{className:"space-y-2",children:t.features.map(a=>e.jsxs("li",{className:"flex items-start gap-2 text-xs text-muted-foreground",children:[e.jsx("span",{className:ie("mt-0.5 flex-shrink-0",t.color),children:e.jsx(Xa,{className:"h-3 w-3"})}),a]},a))})]},t.id))})]})}),e.jsx("section",{className:"py-20 border-t border-border/40 bg-card/30",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Agents That Actually Work"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"Out-of-the-box agents for enterprise's most critical workflows. Deploy in hours, not months."})]}
57),e.jsx(v.div,{variants:wf,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 gap-6",children:qH.map(t=>e.jsxs(v.div,{variants:jf,className:"border border-border/60 bg-card rounded-xl p-6","data-testid":`agent-card-${t.name.toLowerCase().replace(/\s+/g,"-")}`,children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-foreground text-lg",children:t.name}),e.jsx("span",{className:ie("text-xs font-semibold tracking-wider",t.color),children:t.domain})]}),e.jsx("div",{className:ie("p-2 rounded-lg",t.bg),children:e.jsx(vt,{className:ie("h-5 w-5",t.color)})})]}),e.jsx("p",{className:"text-muted-foreground text-sm mb-5",children:t.desc}),e.jsx("div",{className:"flex items-center gap-1",children:t.steps.map((a,r)=>e.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[e.jsx("div",{className:ie("text-xs font-medium px-2 py-1 rounded-md truncate",t.bg,t.color),children:a}),r<t.steps.length-1&&e.jsx(Ve,{className:"h-3 w-3 text-muted-foreground/40 flex-shrink-0"})]},a))})]},t.name))})]})}),e.jsx("section",{className:"py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"relative overflow-hidden rounded-2xl border border-primary/20 bg-gradient-to-br from-primary/10 via-card to-primary/5 p-10 md:p-16",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative grid md:grid-cols-2 gap-10 items-center",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-primary text-sm font-semibold tracking-widest mb-4",children:[e.jsx(Qg,{className:"h-4 w-4"}),"ServiceNow Integration"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"The AI Layer ServiceNow Has Been Waiting For"}),e.jsx("p",{className:"text-muted-foreground leading-relaxed mb-6",children:"XpediOo doesn't replace ServiceNow — it makes it dramatically more powerful. Our Agentic Implementation layer runs natively on your existing ServiceNow instance, extending every workflow with autonomous AI without a rip-and-replace project."}),e.jsxs(ve,{className:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_20px_rgba(159,24,255,0.3)] h-12 px-8","data-testid":"btn-snow-learn-more",children:["Learn More ",e.jsx(Te,{className:"ml-2 h-4 w-4"})]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-4",children:[{label:"Time to First Agent",value:"< 1 Day",icon:ge},{label:"Native SNOW Integration",value:"100%",icon:Ue},{label:"Pre-built Agents",value:"50+",icon:vt},{label:"Compliance Frameworks",value:"28",icon:bi}].map(t=>e.jsxs("div",{className:"border border-border/60 bg-card/60 rounded-xl p-5 text-center",children:[e.jsx(t.icon,{className:"h-5 w-5 text-primary mx-auto mb-2"}),e.jsx("div",{className:"text-2xl font-bold text-foreground mb-1",children:t.value}),e.jsx("div",{className:"text-xs text-muted-foreground",children:t.label})]},t.label))})]})]})})}),e.jsx("section",{className:"py-24 border-t border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"text-center mb-16",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(ct,{className:"h-3 w-3"})," Business Impact"]}),e.jsxs("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:["Why a Custom LLM-Based AI OS",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Is a Game-Changer"})]}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"XpediOo's AI Studio isn't built on shared, third-party inference. It runs on your terms — your data, your hardware, your models — delivering measurable enterprise advantages from day one."})]}),e.jsx("div",{className:"grid md:grid-cols-3 gap-6 mb-8",children:[{icon:Ot,stat:"100%",label:"Data Control",color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",desc:"Complete sovereignty over your enterprise data. Deploy on-premise or in a private cloud — your choice. No data ever leaves your environment, ensuring regulatory compliance, eliminating third-party exposure, and giving your security team full audit visibility.",points:["On-premise or private cloud deployment","Zero data egress to external LLM providers","Full audit trail and access logging","Compliant with GDPR, HIPAA, SOC 2, and more"]},{icon:Gl,stat:"$0",label:"Per-Query Cost",color:"text-emerald-500",bg:"bg-emerald-500/10",border:"border-emerald-500/20",desc:"After initial deployment, every additional AI query costs nothing. Unlike pay-per-token SaaS models, XpediOo's custom LLM infrastru
57cture scales enterprise-wide without runaway API costs — making AI adoption a budget decision, not a budget risk.",points:["Zero marginal cost per query post-deployment","Unlimited enterprise-wide AI usage","No per-seat or per-token billing surprises","Predictable TCO from day one"]},{icon:Xa,stat:"85%",label:"Hardware Efficiency",color:"text-amber-500",bg:"bg-amber-500/10",border:"border-amber-500/20",desc:"XpediOo's models are optimised for CPU-based inference, running efficiently on standard enterprise server hardware. No specialised GPU clusters required — dramatically reducing capital expenditure and making enterprise-wide AI deployment financially viable at any scale.",points:["CPU-optimised inference — no GPU clusters needed","Runs on existing enterprise server hardware","85% lower infrastructure cost vs. GPU-based stacks","Scales horizontally on commodity hardware"]}].map(t=>e.jsx(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.45},className:ie("group relative border rounded-2xl overflow-hidden hover:shadow-lg transition-all duration-300",t.border,t.bg),children:e.jsxs("div",{className:"p-8",children:[e.jsx("div",{className:ie("inline-flex items-center justify-center w-12 h-12 rounded-xl border mb-5",t.bg,t.border),children:e.jsx(t.icon,{className:ie("h-5 w-5",t.color)})}),e.jsx("div",{className:ie("text-6xl font-black mb-1",t.color),children:t.stat}),e.jsx("div",{className:"text-xl font-bold text-foreground mb-4",children:t.label}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-5",children:t.desc}),e.jsx("div",{className:"space-y-2",children:t.points.map(a=>e.jsxs("div",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:ie("h-3.5 w-3.5 mt-0.5 flex-shrink-0",t.color)}),a]},a))})]})},t.label))}),e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"relative border border-primary/20 bg-gradient-to-br from-primary/8 via-primary/4 to-transparent rounded-2xl overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-80 h-80 bg-primary/10 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative p-8 md:p-12 grid md:grid-cols-2 gap-10 items-center",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(ei,{className:"h-3 w-3"})," Contextual Accuracy"]}),e.jsxs("h3",{className:"text-2xl md:text-3xl font-bold mb-4",children:["AI That Speaks",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Your Business Language"})]}),e.jsx("p",{className:"text-muted-foreground leading-relaxed mb-6",children:"Generic LLMs are trained on the public internet — not your enterprise. XpediOo fine-tunes custom models on your internal documentation, workflows, policies, and domain terminology. The result is an AI that delivers responses aligned to your specific business context, not generic approximations."}),e.jsx("div",{className:"space-y-2",children:["Fine-tuned on your internal data, docs, and policies","Domain-specific terminology and workflow awareness","Higher accuracy on enterprise-specific queries","Continuously improves as your knowledge base grows","No hallucinations from out-of-domain training data"].map(t=>e.jsxs("div",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"h-3.5 w-3.5 mt-0.5 flex-shrink-0 text-primary"}),t]},t))})]}),e.jsx("div",{className:"grid grid-cols-2 gap-4",children:[{icon:Tn,label:"Private Deployment",value:"On-Premise or VPC"},{icon:We,label:"Compliance Ready",value:"28+ Frameworks"},{icon:be,label:"Fine-tuned Models",value:"Your Data Only"},{icon:ge,label:"Query Latency",value:"< 200ms avg"}].map(t=>e.jsxs("div",{className:"border border-primary/20 bg-card/60 rounded-xl p-5 text-center",children:[e.jsx(t.icon,{className:"h-5 w-5 text-primary mx-auto mb-2"}),e.jsx("div",{className:"text-sm font-bold text-foreground mb-1",children:t.value}),e.jsx("div",{className:"text-xs text-muted-foreground",children:t.label})]},t.label))})]})]})]})})]})}const BH=[{label:"AI & Intelligence Layer",desc:"1000+ AI models, NLP engines, predictive analytics, and agentic orchestration runtime",icon:de,tags:["1000+ AI Functionality","NLP Engines","Predictive Analytics","Agentic Runtime"],indent:"mx-0"},{label:"Automation Engine",desc:"1500+ pre-built automations, BPMN workflow designer, event-driven triggers",
57icon:ge,tags:["1500+ Automations","BPMN Designer","Event Triggers"],indent:"mx-4 md:mx-8"},{label:"Product Modules",desc:"ITSM · ITAM · GRC · HRMS · EAM · PPM · FSM · EPVM · CSM · Vendor · Field Service",icon:Ue,tags:["ITSM","ITAM","GRC","HRMS","EAM","PPM","FSM","EPVM","CSM"],indent:"mx-8 md:mx-16"},{label:"Integration Layer",desc:"500+ connectors, REST/GraphQL/SOAP APIs, ServiceNow native integration, event buses",icon:Ul,tags:["500+ Connectors","REST / GraphQL","ServiceNow Native","Event Buses"],indent:"mx-4 md:mx-8"},{label:"Enterprise Data Platform",desc:"Multi-tenant secure data store · CMDB · Asset repository · Compliance evidence vault",icon:Ot,tags:["Multi-tenant","CMDB","Asset Repository","Compliance Vault"],indent:"mx-0"}],HH=[{icon:bi,title:"Zero-Trust Architecture",desc:"Every API call, user action, and data access is authenticated and authorized at every layer. No implicit trust anywhere in the stack."},{icon:Gu,title:"Enterprise SSO & MFA",desc:"SAML 2.0, OIDC, and LDAP integration with every major identity provider. Mandatory MFA with hardware key support."},{icon:We,title:"Data Encryption at Rest & in Transit",desc:"AES-256 encryption for all stored data. TLS 1.3 for all transit. Customer-managed keys available for regulated industries."},{icon:Xi,title:"Full Audit Trail",desc:"Every action, every change, every access — logged and immutable. SIEM integration for real-time threat detection and correlation."},{icon:Ot,title:"Data Residency Controls",desc:"Choose where your data lives. Region-specific deployments available across North America, EU, APAC, and India."},{icon:Me,title:"SOC2 Type II Certified",desc:"XpediOo's infrastructure is SOC2 Type II certified. Independent auditor reports available on request under NDA."}],GH=[{name:"Multi-Tenant SaaS",desc:"Fastest time to value. Shared infrastructure with strong tenant isolation. Automatic updates and zero infrastructure management.",icon:Gi,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",badge:"Most Popular"},{name:"Dedicated Cloud",desc:"Your own isolated cloud environment — fully managed by XpediOo. Single-tenant isolation with dedicated compute and storage.",icon:Tn,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",badge:"Enterprise"},{name:"Private Cloud / On-Prem",desc:"Deploy entirely within your own data center or private cloud. Full data sovereignty. Ideal for regulated industries with strict data residency requirements.",icon:Ot,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",badge:"Regulated Industries"}],UH=["ServiceNow","Salesforce","SAP","Microsoft 365","Azure AD","AWS","Google Cloud","Jira","Confluence","Slack","PagerDuty","Splunk","CrowdStrike","Qualys","Okta","Ping Identity","Rapid7","Tenable","BMC Helix","Ivanti"],XH=[{num:"01",icon:Ht,title:"AI Powered Form Builder",badge:"Low Code / No Code",desc:"Build enterprise-grade data capture forms in minutes with a drag-and-drop AI-assisted designer. Define field types, conditional logic, validation rules, and multi-step layouts without writing a line of code. The AI suggests fields based on your form's purpose, auto-generates accessible labels, and can translate forms into 50+ languages instantly. Every form is version-controlled and connected to downstream workflows automatically.",href:"/form-builder"},{num:"02",icon:nt,title:"AI Powered Workflow Designer",badge:"BPMN 2.0 Native",desc:"A visual, BPMN 2.0-compliant workflow canvas that lets business analysts and engineers build sophisticated automation flows side by side. AI auto-suggests the next step based on context, detects bottlenecks in existing flows, and generates entire workflow blueprints from a plain-language description. Workflows are deployed instantly, monitored in real time, and self-healing — the platform reroutes work automatically when a step fails."},{num:"03",icon:Ot,title:"AI Powered Table Designer",badge:"Schema-Free Data Modelling",desc:"Design and deploy custom data tables without a DBA. The AI Table Designer generates a normalised schema from a description of what you need to store, handles relationships, indexes, and migrations automatically, and exposes the resulting data through a REST API with zero additional configuration. Tables integrate natively with Forms, Workflows, and Reports — changes propagate across all connected components in real time."},{num:"04",icon:Qg,title:"AI Powered Business Rules",badge:"Decision Intelligence",desc:"Encode your organisation's policies, thresholds, and decision logic in a centralised rules engine — and let AI keep them current. Business users define rules in plain language; the platform compiles them into executable logic. The AI monitors rule outcomes, flags rules that produce unexpected results, and recommends updates when business conditions change. Every rule version is auditable and can be rolled back instantly."},{num:"05",icon:pN,title:"AI Powered Notifications",badge:"Multi-Channel, Context-Aware",desc:"Deliver the right message to the right person on the right channel at exactly the right moment. The notification engine supports email, SMS, push, in-app, Slack, Teams, and webhook delivery. AI determines optimal send time based on recipient activity patterns, suppresses notification floods by grouping related alerts intelligently, and personalises message content dynamically based on the recipient's role and context."},{num:"06",icon:gN,title:"AI Powered Scheduler",badge:"Intelligent Job Orchestration",desc:"Schedule and orchestrate recurring jobs, maintenance windows, and time-sensitive processes with AI-assisted conflict detection. The scheduler understands dependencies between jobs, avoids overlapping execution windows on shared resources, and adjusts automatically for time zones, business calendars, and public holidays. AI predicts job duration based on historical data and proactively alerts when a job is trending toward SLA breach."},{num:"07",icon:Ul,title:"AI Powered Integration Hub",badge:"500+ Connectors",desc:"A unified integration layer that c
57onnects XpediOo to your entire enterprise stack — ServiceNow, SAP, Salesforce, Microsoft 365, AWS, Azure, and 495+ other systems — without custom code. The AI Integration Hub maps fields between systems automatically, detects schema changes in connected APIs, and repairs broken integrations proactively. Event-driven triggers, polling, and webhooks are all supported with full retry and dead-letter handling."},{num:"08",icon:$e,title:"AI Powered Reporting & Analytics",badge:"Natural Language Queries",desc:"Turn raw operational data into board-ready insights without a BI team. Ask questions in plain language — 'Show me mean time to resolve by team last quarter' — and the AI generates the chart, table, or trend analysis instantly. Dashboards auto-refresh, anomalies are flagged proactively, and scheduled reports are delivered to stakeholders in their preferred format (PDF, Excel, or embedded link) on a configurable cadence."},{num:"09",icon:de,title:"AI Powered Agentic Studio",badge:"Multi-Agent Orchestration",desc:"Design, deploy, and monitor autonomous AI agents that work across your enterprise without human intervention. The Agentic Studio provides a visual canvas for defining agent goals, memory structures, tool access, and escalation policies. Agents collaborate in multi-agent swarms, share a common memory pool, and can be tested in a sandboxed environment before promotion to production. Every agent action is logged, explainable, and auditable."},{num:"10",icon:Js,title:"AI Powered Mobile App Studio",badge:"Native iOS & Android",desc:"Generate fully native mobile applications for iOS and Android directly from your XpediOo workflows and data models — no mobile development expertise required. The AI Mobile App Studio scaffolds screens, navigation flows, and offline sync logic automatically. The resulting apps are published to enterprise MDM platforms and update in sync with server-side changes, so mobile users are never out of step with the latest process."},{num:"11",icon:nE,title:"AI Powered Program & Project Management",badge:"Agile & Waterfall",desc:"Manage enterprise programmes, projects, and portfolios on a single AI-augmented planning surface. The platform supports Agile sprints, Waterfall Gantt charts, and hybrid delivery models. AI generates project plans from a brief, forecasts completion dates based on velocity, identifies at-risk milestones before they slip, and produces executive status reports automatically. Resource allocation is optimised continuously to prevent overloading and underutilisation."},{num:"12",icon:Yg,title:"AI Powered Observability",badge:"AIOps & Monitoring",desc:"Full-stack observability across your infrastructure, applications, and business services — with AI-powered anomaly detection that cuts through noise to surface what actually matters. Metrics, logs, and traces are correlated automatically, providing a single pane of glass from infrastructure health to business KPIs. The platform predicts capacity constraints, detects performance degradation before users notice, and auto-raises incidents when thresholds are crossed."},{num:"13",icon:Gt,title:"AI Powered Asset Discovery",badge:"Continuous & Agentless",desc:"Continuously discover every asset across your on-premises, cloud, and hybrid environment — without requiring agents on every endpoint. The AI Asset Discovery engine reconciles discovered assets against your CMDB automatically, flags unauthorised devices, identifies shadow IT, and maintains an accurate, real-time inventory that feeds change management, vulnerability management, and compliance reporting with trustworthy data."},{num:"14",icon:Nr,title:"AI Powered End Point Management",badge:"Unified Endpoint Control",desc:"Manage, patch, and secure every endpoint — laptops, servers, virtual machines, and cloud workloads — from a single console. AI prioritises patch deployment based on vulnerability severity, business criticality of the affected asset, and active exploit status. Automated remediation workflows push patches, enforce configuration baselines, and quarantine non-compliant devices without manual tickets, reducing mean time to patch by up to 80%."},{num:"15",icon:wi,title:"AI Powered PDLC & SDLC",badge:"End-to-End Dev Lifecycle",desc:"From first business requirement to production release — orchestrated by a team of 12 specialised AI agents. Every role in your product and engineering team is partnered with a dedicated AI agent: a Business Requirement Agent, Architecture Agent, Code Generation Agent, Database Agent, QA Agent, Documentation Agent, and more. Add Bring-Your-Own-Model flexibility, Multi-Agent Swarm Mode, Semantic Code Search, and Vibe Code iteration and you have a complete AI-powered software factory embedded directly in your enterprise platform."}],Nf={hidden:{opacity:0}
57,visible:{opacity:1,transition:{staggerChildren:.07}}},_d={hidden:{opacity:0,y:16},visible:{opacity:1,y:0,transition:{duration:.4}}};function $H(){const{openDemoModal:t}=ot();return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"Platform Architecture | XpediOo — Enterprise AI Infrastructure"}),e.jsx("meta",{name:"description",content:"Explore XpediOo's enterprise AI platform architecture: multi-tenant cloud, AI reasoning layer, integration fabric, security controls, and Low Code / No Code development environment."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/platform"}),e.jsx("meta",{property:"og:title",content:"Platform Architecture | XpediOo — Enterprise AI Infrastructure"}),e.jsx("meta",{property:"og:description",content:"XpediOo's enterprise AI platform: multi-tenant cloud, AI reasoning layer, integration fabric, and Low Code / No Code development environment."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/platform"})]}),e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(215 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(215 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 left-1/2 w-96 h-96 bg-primary/8 rounded-full blur-3xl -translate-x-1/2"}),e.jsxs("div",{className:"container mx-auto px-4 md:px-6 relative",children:[e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(Xa,{className:"h-3 w-3"}),"Platform Architecture"]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["Enterprise Grade.",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"From the Ground Up."})]}),e.jsx("p",{className:"text-muted-foreground text-xl leading-relaxed max-w-3xl",children:"XpediOo's platform is built for the demands of Global 2000 enterprises — multi-tenant at scale, deeply secure, endlessly extensible, and designed to handle the complexity of real enterprise operations without flinching."})]}),e.jsx(v.div,{initial:{opacity:0}
57,animate:{opacity:1},transition:{delay:.3},className:"mt-12 flex flex-wrap gap-6",children:[{label:"Uptime SLA",value:"99.99%"},{label:"Requests / Day",value:"2B+"},{label:"Global Regions",value:"12"},{label:"Concurrent Enterprise Users",value:"500K+"}].map(a=>e.jsxs("div",{className:"border border-border/60 bg-card px-6 py-4 rounded-xl","data-testid":`platform-stat-${a.label.toLowerCase().replace(/\s+/g,"-")}`,children:[e.jsx("div",{className:"text-2xl font-bold text-primary",children:a.value}),e.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:a.label})]},a.label))})]})]}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[e.jsx("h2",{className:"text-2xl md:text-4xl font-bold mb-3",children:"Platform Architecture"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"Five integrated layers, each purpose-built for enterprise scale and resilience."})]}),e.jsx("div",{className:"space-y-3",children:BH.map((a,r)=>e.jsx(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:r*.1,duration:.5},className:ie("group",a.indent),"data-testid":`arch-layer-${r}`,children:e.jsxs("div",{className:"relative border border-primary/25 bg-primary/8 hover:bg-primary/12 hover:border-primary/45 rounded-2xl px-6 py-5 flex flex-col md:flex-row md:items-center gap-4 transition-all duration-300 hover:shadow-[0_0_24px_rgba(159,24,255,0.12)]",children:[e.jsx("div",{className:"absolute -left-3 top-1/2 -translate-y-1/2 hidden md:flex h-6 w-6 items-center justify-center rounded-full bg-primary text-primary-foreground text-xs font-bold shadow-[0_0_8px_rgba(159,24,255,0.4)]",children:r+1}),e.jsxs("div",{className:"flex items-center gap-3 min-w-[220px]",children:[e.jsx("div",{className:"h-9 w-9 rounded-xl bg-primary/15 border border-primary/30 flex items-center justify-center flex-shrink-0 group-hover:bg-primary/25 transition-colors",children:e.jsx(a.icon,{className:"h-4.5 w-4.5 text-primary h-[18px] w-[18px]"})}),e.jsx("span",{className:"font-bold text-sm text-foreground whitespace-nowrap",children:a.label})]}),e.jsx("div",{className:"hidden md:block w-px self-stretch bg-primary/20"}),e.jsx("div",{className:"flex flex-wrap gap-2 flex-1",children:a.tags.map(s=>e.jsx("span",{className:"text-xs font-medium px-2.5 py-1 rounded-full border border-primary/20 bg-primary/5 text-primary",children:s},s))})]})},a.label))})]})}),e.jsx("section",{className:"py-20 border-t border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(Ue,{className:"h-3 w-3"})," Platform Microservices"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"15 AI-Native Microservices. One Unified Platform."}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"Every capability of the XpediOo platform is delivered as a purpose-built microservice — independently scalable, deeply integrated, and AI-augmented from the ground up."})]}),e.jsx("div",{className:"grid md:grid-cols-2 xl:grid-cols-3 gap-5",children:XH.map((a,r)=>{const s=e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-primary/6 to-transparent opacity-0 group-hover:opacity-100 rounded-xl transition-opacity duration-500 pointer-events-none"}),e.jsxs("div",{className:"relative",children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("span",{className:"text-xs font-black text-primary/35 font-mono",children:a.num})]}),e.jsxs("div",{className:"mb-3",children:[e.jsx("h3",{className:"font-bold text-foreground text-base mb-1 group-hover:text-primary transition-colors",children:a.title}),e.jsx("span",{className:"text-xs font-semibold px-2.5 py-1 rounded-full bg-primary/10 border border-primary/20 text-primary",children:a.badge})]}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc}),"href"in a&&e.jsxs("p",{className:"text-primary text-xs font-semibold mt-4 flex items-center gap-1",children:["Learn more ",e.jsx(Te,{className:"h-3 w-3"})]})]})]});return e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.04},className:"group relative border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:"href"in a&&a.href?e.jsx(Ie,{href:a.href,className:"block",children:s}):s},a.num)})})]})}),e.jsx("section",{className:"py-20 border-t border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center mb-14",children:e.jsxs("h2",{className:"text-3xl md:text-4xl font-bold mb-0",children:["The AI Platform is defined by"," ",e.jsx("span",{className:"text-primary",children:"proactive, context-aware automation"})]})}
57),e.jsx(v.div,{variants:Nf,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 gap-0 border border-border/60 rounded-2xl overflow-hidden max-w-5xl mx-auto",children:[{icon:be,title:"Shared memories for AI agents",desc:"Enables multiple AI agents to access a common memory pool for seamless collaboration, avoiding redundant efforts and enabling dynamic multi-tasking."},{icon:Xi,title:"Contextual Awareness",desc:"Interprets user intentions based on past interactions, real-time input, and environmental data for more relevant and personalised responses."},{icon:ge,title:"Proactive Automation",desc:"Proactively identifies potential issues, automates routine tasks, and applies system updates without explicit user intervention, reducing manual overhead."},{icon:We,title:"Enhance Privacy And Compliance",desc:"AI mechanisms actively enforce compliance with regulatory frameworks (GDPR, HIPAA, FedRAMP), automatically identifying and flagging potential violations."}].map((a,r)=>e.jsxs(v.div,{variants:_d,className:ie("p-8 flex gap-5 hover:bg-primary/5 transition-colors duration-300",r%2===0&&r<2&&"md:border-r border-border/60",r<2&&"border-b border-border/60",r%2!==0&&r>=2&&""),"data-testid":`platform-pillar-${r}`,children:[e.jsx("div",{className:"flex-shrink-0 mt-0.5",children:e.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary/10 flex items-center justify-center shadow-[0_0_12px_rgba(159,24,255,0.12)]",children:e.jsx(a.icon,{className:"h-5 w-5 text-primary"})})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-foreground text-lg mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]})]},a.title))})]})}),e.jsx("section",{className:"py-20 border-t border-border/40 bg-card/30",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-16",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 text-primary text-sm font-semibold tracking-widest uppercase mb-4",children:[e.jsx(We,{className:"h-4 w-4"}),"Security & Trust"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Security Is Not a Feature. It's the Foundation."}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"Built to pass the scrutiny of the world's most security-conscious enterprises, regulators, and auditors."})]}),e.jsx(v.div,{variants:Nf,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:HH.map(a=>e.jsxs(v.div,{variants:_d,className:"border border-border/60 bg-card rounded-xl p-6","data-testid":`security-feature-${a.title.toLowerCase().replace(/\s+/g,"-")}`,children:[e.jsx("div",{className:"p-2.5 w-fit rounded-lg bg-primary/10 text-primary mb-4",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-semibold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-16",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Deploy Your Way"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"Every deployment model is fully supported. Your choice — not ours."})]}),e.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:GH.map(a=>e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:ie("border bg-card rounded-xl p-6",a.border),"data-testid":`deployment-${a.name.toLowerCase().replace(/\s+/g,"-")}`,children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsx("div",{className:ie("p-3 rounded-xl",a.bg),children:e.jsx(a.icon,{className:ie("h-6 w-6",a.color)})}),e.jsx("span",{className:ie("text-xs font-bold tracking-wide px-2.5 py-1 rounded-full",a.bg,a.color),children:a.badge})]}),e.jsx("h3",{className:"font-bold text-lg text-foreground mb-2",children:a.name}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.name))})]})}),e.jsx("section",{className:"py-20 border-t border-border/40 bg-card/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-12",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"500+ Enterprise Integrations"}),e.jsx("p",{className:"text-muted-foreground",children:"XpediOo connects to your entire enterprise stack — out of the box."})]}
57),e.jsxs(v.div,{variants:Nf,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"flex flex-wrap justify-center gap-3",children:[UH.map(a=>e.jsx(v.div,{variants:_d,className:"border border-border/50 bg-card px-4 py-2.5 rounded-lg text-sm text-muted-foreground font-medium hover:border-primary/30 hover:text-foreground transition-colors","data-testid":`integration-${a.toLowerCase().replace(/\s+/g,"-")}`,children:a},a)),e.jsx(v.div,{variants:_d,className:"border border-border/50 bg-card px-4 py-2.5 rounded-lg text-sm text-primary font-medium",children:"+ 180 more"})]})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6 text-center",children:e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-2xl mx-auto",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Ready to See the Platform?"}),e.jsx("p",{className:"text-muted-foreground mb-8 text-lg",children:"Schedule a technical deep-dive with our enterprise team. We'll show you exactly how XpediOo fits your stack."}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[e.jsxs(ve,{size:"lg",onClick:t,className:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_20px_rgba(159,24,255,0.3)] text-base px-10 h-12","data-testid":"btn-platform-cta",children:["Request Technical Demo ",e.jsx(Te,{className:"ml-2 h-4 w-4"})]}),e.jsx(ve,{size:"lg",variant:"ghost",className:"text-muted-foreground hover:text-foreground text-base","data-testid":"btn-platform-docs",children:"Read Architecture Docs"})]})]})})})]})}const WH=[{id:"no-code-builder",icon:wi,title:"No-Code / Low-Code AI Agent Builder",desc:"Build and deploy AI agents in 15 minutes — no engineering required. Visual rules editor, drag-and-drop logic, and point-and-click configuration.",highlights:["Visual drag-and-drop agent canvas","Point-and-click logic configuration","Deploy in 15 minutes","Pre-built enterprise templates"]},{id:"multi-llm",icon:be,title:"Multi-LLM Provider Support",desc:"Choose your AI backbone: Anthropic Claude, OpenAI GPT, Google Gemini, Meta Llama, or DeepSeek. Mix providers per agent without lock-in.",highlights:["Anthropic Claude","OpenAI GPT","Google Gemini","Meta Llama & DeepSeek"]},{id:"business-rules-engine",icon:Ll,title:"Business Rules Engine",desc:"Turn policy into agent behavior in plain language — no code required. Four rule types execute in a deterministic, priority-ordered sequence with live success tracking.",highlights:["Action, Approval, Security & Validation rule types","Priority-ordered, explainable execution","Visual AND/OR condition builder","Live execution & success-rate tracking"]},{id:"visual-graphs",icon:ji,title:"Visual Decision Graphs",desc:"Model complex business logic visually with an interactive node canvas. Drag, connect, and test decision trees that execute at runtime via a proven rules engine (GoRules/JDM).",highlights:["Interactive node canvas","Drag-and-connect decision trees","GoRules/JDM rules engine","Real-time runtime execution"]},{id:"human-escalation",icon:ze,title:"Intelligent Human Escalation",desc:"Real-time sentiment scoring, failure-loop detection, and multi-layer escalation triggers automatically hand frustrated customers to a human agent — with an AI-generated conversation summary already waiting for them.",highlights:["Real-time sentiment scoring","Failure-loop detection","Multi-layer escalation triggers","AI-generated handoff summaries"]},{id:"rag-kb",icon:Ot,title:"RAG-Powered Knowledge Base",desc:"Upload PDFs, Word docs, Excel sheets, images (OCR), logs, CSVs, and Markdown. The platform chunks, embeds, and semantically searches documents to inject live context into every agent response.",highlights:["PDF, Word, Excel, CSV, Markdown","Image OCR ingestion","Semantic search & chunking","Live context injection"]}],KH=[{id:"cloud-crawling",icon:Qt,title:"Cloud Connector Crawling",desc:"Connect Google Drive, OneDrive, Dropbox, SharePoint, and Confluence. Crawls and indexes your existing documents into the RAG pipeline automatically — permission-aware."},{id:"mcp",icon:vi,title:"MCP Integration",desc:"Connect agents to external tools like GitHub, Atlassian Jira/Confluence, and ServiceNow using the open MCP standard. Agents can read tickets, create issues, and take real actions."},{id:"live-chat",icon:ra,title:"Live Chat with AI Routing",desc:"An AI-powered intent engine automatically selects the right agent for every incoming chat session — no manual routing rules to maintain."},{id:"orchestrator",icon:nt,title:"Orchestrator Agents",desc:"Coordinate fleets of specialized sub-agents in complex workflows. One orchestrator breaks down tasks, delegates to experts, and assembles results."},{id:"voice-video",icon:Us,title:"Voice & Video Capabilities",desc:"Multimodal agents that listen (speech-to-text), speak (text-to-speech), and see (image/video analysis via Claude Vision and GPT-4 Vision)."},{id:"integrations",icon:ge,title:"External Platform Integrations",desc:"Deploy agents everywhere: Amazon Alexa, Google Assistant, Twilio Voice/SMS, Microsoft Teams, Slack, Cisco Webex, Google Chat, PagerDuty, and xMatters."}],YH=[{id:"rbac",icon:We,title:"Enterprise RBAC",desc:"35+ granular permissions across 8 categories. System roles (Owner, Admin, Member) plus fully custom roles. Object-level access control and a complete audit log."}
57,{id:"multi-tenant",icon:yi,title:"Multi-Tenant Workspace Isolation",desc:"Every organization's data is fully isolated across 22+ tables. Personal and team workspaces with real-time context switching."},{id:"active-directory",icon:bi,title:"Active Directory Integration",desc:"Automate AD operations (account unlock, password reset) directly from AI agents — triggered from Live Chat, Playground, or scheduled tasks. Full audit trail included."},{id:"api-keys",icon:Gu,title:"Agent API Keys",desc:"Expose any agent as a secure REST API. Keys are encrypted, usage-tracked, and revocable — suitable for embedding into third-party products."},{id:"task-automation",icon:bN,title:"Task Automation & Scheduling",desc:"Event-driven triggers, cron-scheduled tasks, and batch processing. Execution history and a background scheduler service included out of the box."},{id:"multi-agent",icon:vt,title:"Multi-Agent Collaboration",desc:"Shared workspaces, agent-to-agent messaging, delegation hierarchies, and consensus voting for decisions that benefit from multiple AI perspectives."},{id:"monaco",icon:wi,title:"Advanced Scripting with Monaco Editor",desc:"Full JavaScript editor with AI-powered code generation for power users who need logic beyond what visual rules can express."}],QH=[{value:"60+",label:"Feature Modules"},{value:"5",label:"LLM Providers"},{value:"4",label:"Support Channels"},{value:"50+",label:"Enterprise App Integrations"}],ZH=[{icon:wi,title:"AI Agent Studio & Knowledge (RAG)",tagline:"Design an agent's decision logic the way your team thinks — visually, declaratively, or in code — grounded in your own documents.",modules:[{name:"Visual & Low-Code Logic",de
57sc:"Multiple logic modes so teams can start no-code and add precision as needed.",highImpact:["Drag-and-drop Visual Decision Graphs (JSON Decision Model / JDM) let non-developers map branching logic exactly as they'd whiteboard it, executed by an industry-standard rules engine","Low-Code Business Rules with AI-assisted generation — describe a rule in plain English and the platform drafts structured, validated logic","Four Rule Types — Action rules execute automatically, Approval rules pause for human sign-off, Security rules add monitoring, and Validation rules enforce data integrity, so policy isn't forced into a one-size-fits-all shape","Priority-Ordered, Explainable Execution — every rule carries an explicit priority, so when several rules could apply the outcome is deterministic and never a black box, with live execution counts and success rates visible in the list view","15-Minute Agent Creation — from blank canvas to a deployed, testable agent in about fifteen minutes"],standard:["Enterprise Condition Builder — a visual AND/OR builder combines criteria like department, role, employee status and login pattern without writing a query","One-Click Enable/Disable lets teams pilot a new rule on a small scope before turning it on organization-wide, with no redeploy required","Built-In Test Dialog and Version History — every rule can be tested against sample data before activation, and rule versions are tracked so a team can review what changed and roll back if needed","Advanced Scripts via a full Monaco code editor (the engine behind VS Code) with AI code generation for complete programmatic control","Enterprise Actions — a reorderable, multi-step action system triggers notifications, API calls, and escalations in a defined sequence, with auto-execute-on-trigger for unattended runs","AI Agent Playground — a dedicated sandbox to converse with an agent under construction and inspect its reasoning before go-live","Execution priority: decision graphs evaluate first, then advanced scripts, then business rules, falling back to default AI reasoning"]},{name:"Case Study: Automating Active Directory Operations",desc:"A real customer configuration: one agent manages the full AD user lifecycle end-to-end through eight coordinated business rules.",highImpact:["Get AD User and Create AD User run as Action rules, while Manager Change and Account Reactivation trigger Approval and Security review before anything executes","Privileged Role Assignment gets Enhanced Monitoring, Employee ID gets a Validation data-integrity check, and Concurrent Login Detection raises a real-time Security alert"],standard:["Every critical operation is audited automatically — giving IT and HR a self-service front door for account requests that used to need a ticket, while giving security and compliance more oversight than a manual process, not less"]},{name:"Multi-LLM Intelligence & Knowledge (RAG)",desc:"Agents reason with the right model for the job and ground answers in the organization's own documents.",highImpact:["Multi-LLM Provider Support — Anthropic, OpenAI, Google Gemini, Meta Llama and DeepSeek through one centralized configuration, avoiding vendor lock-in","Unstructured Data Ingestion — PDF, Word, Excel, images (with OCR), text, logs, JSON, CSV and Markdown all attach to an agent as a live knowledge source","Hybrid Search RAG Pipeline — sentence-aware chunking, synonym-aware embeddings, and a hybrid of keyword and semantic (cosine similarity) search"],standard:["Per-Agent Tuning — each agent has its own result count and similarity threshold, so a compliance agent can be stricter than a general FAQ agent","Knowledge Chat & Search — a standalone experience to query the knowledge base directly, independent of a live conversation","Structured Output Validation — machine-readable model responses are schema-validated with automatic self-correction retries"]}]},{icon:vi,title:"Multi-Agent Orchestration, A2A & MCP",tagline:"Agents aren't isolated chatbots — they run on a real graph-based execution engine and can call each other and external systems.",modules:[{name:"LangGraph Runtime & Agent-to-Agent Protocol",desc:"A stateful execution backbone with standards-based agent discovery.",highImpact:["LangGraph Execution Backbone — every agent runs on a stateful graph runtime with per-conversation memory checkpointing for reliable, inspectable multi-turn reasoning",'Agent-to-Agent (A2A) Protocol implements the Google A2A open standard — each agent publishes a machine-readable "Agent Card" describing its skills so peers can find and delegate automatically',"Multi-Agent Collaboration — a framework for coordinating several specialized agents on one task with shared context, plus a dedicated Orchestrator agent type for complex workflows"],standard:["Model Context Protocol (MCP) — real, dynamic tool discovery connects agents to GitHub, Atlassian, ServiceNow and custom MCP servers so an agent can take real action","Test Intelligent Orchestrator — a dedicated testing surface for validating multi-agent handoffs and orchestration logic before go-live","Agent API Keys — secure, encrypted key issuance with usage tracking for external systems to call an agent programmatically"]},{name:"Intelligent Routing & Live Handover",desc:"Getting a conversation to the right agent the first time is the single biggest driver of resolution speed.",highImpact:["Semantic Intent Routing uses real semantic embeddings of each agent's capability profile — not brittle keyword rules — so the closest match wins even with unpredictable phrasing","Automatic AI-to-AI Handover transfers mid-conversation when a better-fit agent is detected, carrying prior context so the customer never repeats themselves","Routing Rules Engine — managers configure explicit rules by language, channel, keywords, business hours and skills"],standard:["Routing Simulation tests a rule set against sample conversations and shows the full ordered evaluation trail before publishing","Knowledge-Base Fallback answers from grounded content rather than guessing when no agent confidently matches","Loop Protection detects and stops recursive transfer loops with a graceful fallback response"]}]}
57,{icon:ra,title:"Human Agent Workspace & Omnichannel",tagline:"When a conversation needs a person, agents get a purpose-built workspace spanning every channel customers already use.",modules:[{name:"Live Chat & the Unified Agent Dashboard",highImpact:["Live Chat Console with real-time two-way messaging and live token streaming — agents watch a suggested AI reply compose before sending or editing it","Agent & Human Agent Dashboards give purpose-built views of assigned queue, conversation status and workload at a glance","Escalation & Human Handoff — AI agents escalate to a human queue with one action; the customer-facing conversation continues seamlessly"],standard:["Canned Responses with AI Suggestions — a ranked, contextual library plus an AI-drafted custom reply when nothing fits","Contact & Conversation History gives agents complete history before they type a word","Thread-Aware Reopening retains full prior context when a customer replies days later"]},{name:"Omnichannel Coverage",highImpact:["Embeddable Chat Widget — a single script tag adds a fully branded AI chat bubble to any website, configured visually with a live preview","Email Channel — inbound email via webhook (Mailgun/SendGrid) or IMAP polling, threaded into the same conversation model as chat"],standard:["Facebook & Instagram Messaging connects Meta platforms via webhook, resolving the correct organization automatically per page","Saved-Credential Protection prevents managers from accidentally clearing a working channel integration",'Deep Reply-Chain Threading keeps long-running, deeply nested "Re: Re: Re:" email conversations correctly grouped']},{name:"Enterprise Application Integrations",highImpact:["50+ out-of-box, enterprise-grade application connectors let agents read and act on live data mid-conversation — including XpediOo, ServiceNow, Workday, SuccessFactors, BMC Helix, Zoho HR, Zoho CRM, SAP, and Oracle","Pre-built connectors cover ITSM/ITAM, HRIS, CRM, ERP, and ITOM systems, so a conversation can look up, create, or update a record without leaving the chat"],standard:["Credential vaulting and connection health checks per integration, with masked secrets and one-click reconnect","New connectors are added continuously; the Platform Integrations Hub exposes the full, current catalog"]},{name:"Workforce Management",highImpact:["Queue Settings configure how conversations queue and how auto-assignment behaves, switchable mid-shift","SLA Management defines response and resolution targets per queue or priority, with visibility into breaches before they happen"],standard:["Agent Teams & Skills Management groups and tags agents so routing matches the right expertise, not just the next available body","Business Hours drive after-hours routing, auto-replies and escalation automatically","Capacity-Aware Reassignment guards against overloading an already-full agent","Conversation Tags support flexible categorization for reporting, routing and follow-up campaigns"]}]},{icon:ze,title:"Quality, Coaching & Customer Experience",tagline:"Automation only scales when you can measure whether it's working — and supervisors can help agents in the moment.",modules:[{name:"Quality Assurance & Confidence Gating",highImpact:["Confidence Gating scores every AI response in real time with a blended heuristic + LLM model; low-confidence responses route to a human instead of sending as-is","QA Scoring computes and stores structured quality scores per conversation across the whole AI and human workforce"],standard:["Failure Visibility & Retry surfaces a persistent failure indicator and a clear retry path when a channel or AI call fails","Language Detection Resilience keeps European-language conversations from being silently mislabeled as English, and retries automatically once an outage clears"]},{name:"Supervisor Tools: Coaching & Live Monitoring",highImpact:["Whisper Mode lets supervisors send private, real-time coaching notes into a live conversation that only the agent sees","Supervisor Live-Queue Overview gives a real-time dashboard of every in-progress conversation and which team it routed to"],standard:["Supervisor Monitoring drops into any live conversation to observe quality without disrupting the agent's flow","Reassignment Controls offer one-click reassignment respecting skills, capacity and business hours","Agent Notifications alert agents to new assignments via sound and browser notices, even when the tab isn't focused"]},{name:"Customer Experience: CSAT, Sentiment & Memory",highImpact:["CSAT & Satisfaction Surveys capture a post-conversation score with zero login friction, feeding a dedicated analytics view","Churn Risk Alerts flag conversations showing churn-risk signals in real time, broadcast directly to agent and supervisor views","Next Best Action (NBA) recommends the agent's next move — offer a discount, escalate, follow up — based on conversation context"],standard:["Real-Time Emotion Detection analyzes tone in the background and surfaces frustration before it escalates","Customer Memory builds durable, per-customer context across conversations so returning customers aren't starting cold"]}]},{icon:Ki,title:"Analytics, BI & AI-Driven Pattern Detection",tagline:"Dashboards for the questions supp
57ort leaders actually ask, plus AI that mines conversations for patterns a human analyst would take weeks to find.",modules:[{name:"Analytics & Business Intelligence",highImpact:["Chat Analytics covers volume, resolution time, channel mix and outcome trends, filterable by team, agent and time range","Agent Scorecards compute per-agent performance summaries with daily trend detail directly from conversation history","LLM Cost Tracking logs estimated token usage and cost by model, giving finance-grade visibility per conversation, agent and organization"],standard:["CSAT Analytics segments satisfaction trends by agent, team or channel to catch quality drift early","Staffing Forecast computes on-demand staffing recommendations from historical volume and external calendar events"]},{name:"AI Analytics: Clustering, Anomalies & Predictive Signals",standard:["Topic Clustering automatically groups conversations into emerging topics, surfacing what customers are contacting support about this week vs. last","Anomaly Detection flags unusual spikes or patterns in volume or outcomes","Conversation Intelligence extracts deeper structured insight across the corpus, feeding dashboards and proactive alerts","Weekly Briefing automates a Monday summary of volume, quality and notable trends for leadership","Competitor Intelligence detects and logs competitor mentions inside conversations for product and sales visibility","Knowledge-Gap Detection identifies questions the knowledge base couldn't answer well and auto-drafts a KB article to close the gap"]}]},{icon:We,title:"Governance, Security & Compliance",tagline:"Enterprise buyers need proof, not promises — and the platform is designed to serve more than one tenant safely.",modules:[{name:"Compliance, GDPR & Audit Trail",highImpact:["Compliance Export generates auditor-ready PDF exports of conversation records and quality data on demand, without exposing the underlying database","GDPR Data Management provides dedicated tooling for data subject requests — locating, exporting and deleting a customer's data across the platform","Enterprise RBAC — granular, resource-level role-based access control with custom roles and full audit logging of who accessed or changed what","AI Safety Guardrails — a defense-in-depth content moderation stack (safety middleware, LLM-layer validation, a dedicated safety engine) detects prohibited content, jailbreaks and prompt injection before a response reaches a customer"],standard:["Outbound Trigger Governance runs automated outbound messages on a governed scheduler with delivery tracking, avoiding uncontrolled or duplicate outreach"]},{name:"Security & Multi-Tenancy",highImpact:["Full Workspace Isolation — every organization's agents, conversations, rules and files are isolated at the data layer; no cross-tenant visibility is possible by design"],standard:["Active Directory Integration automates AD operations (account unlock, password reset) driven by action-based business rules, with a full audit trail","Voice & Video Multimodal Support extends agents beyond text with speech-to-text, text-to-speech and computer-vision-based analysis","Secure Agent API Keys provide encrypted key issuance with per-key usage tracking for safe programmatic access"]},{name:"Observability & Enterprise Reliability",standard:["OpenTelemetry Instrumentation captures every agent execution, peer-to-peer call and message-processing step as a structured trace span","Live Observability Dashboard shows conversation volume, latency, token usage and cost, plus a color-coded per-agent performance table with a live span feed","First-Response-Time Tracking captures time-to-first-response per conversation automatically as a core SLA metric","External Tracing Integration offers one-flag integration with third-party tracing platforms such as LangSmith"]}]},{icon:nt,title:"Automation, Reporting & Extensibility",tagline:"Agents don't just chat — they drive multi-step business processes, close the knowledge loop, and connect to the rest of the stack.",modules:[{name:"Workflow Automation & Task Scheduling",standard:["Visual Workflow Canvas — an n8n-style, drag-and-drop builder with natural-language-driven execution for multi-step processes","Task Automation & Schedules handle recurring or batch work via event-driven triggers and a cron-based scheduler","Workflow Playground offers a safe environment to test workflow logic against sample data before publishing","Execution History gives a complete, searchable log of every agent and workflow execution for debugging and review"]},{name:"Proactive Intelligence & Knowledge Management",highImpact:["Knowledge Base — centralized, agent-attachable knowledge sources spanning documents, spreadsheets, images and structured data"],standard:["Automated Weekly Briefing delivers a fixed-schedule Monday summary so leadership always starts the week informed","Proactive Messaging reaches customers based on defined conditions rather than waiting for them to contact support","Staffing Recommendations forecast needs on demand using historical patterns plus external event data","Knowledge Gaps surface the questions the knowledge base is failing to answer, ranked by frequency and impact","Auto-Drafted KB Articles draft a knowledge-base article automatically once a gap is resolved through a real conversation"]},{name:"Simulation, Reporting & Integration Ecosystem",highImpact:["MCP Server Management connects any Model Context Protocol server — GitHub, Atlassian, ServiceNow or custom — with tools instantly callable by agents",'LLM Cost Tracking & Attribution turns "AI is a black-box cost" into a per-model, per-agent, per-conversation line-item budget'],standard:["Conversation Replay steps through any historical conversation to understand exactly why an agent responded the way it did","Routing Rule Simulation runs a candidate rule set against test conversations with the full ordered evaluation trail","Scheduled Reports and Shareable Report Links deliver PDF/CSV reports on a recurring schedule and let stakeholders view them without a platform login","Platform Integrations Hub, API Key Management and a standards-compl
57iant Agent Card Discovery Endpoint round out the integration ecosystem"]},{name:"Integrations & Tools Hub",desc:"Business Rules and Decision Graphs define when and why something should happen. The Integrations & Tools hub is how an agent actually reaches into other systems mid-conversation.",highImpact:["Pre-Built Enterprise Connectors — dozens of ready-made integrations (ServiceNow, Workday, Salesforce, Microsoft Teams, Active Directory, and more) connect existing systems in minutes instead of custom API code",'Deep Tool Catalogs Per System — each integration exposes dozens of specific callable actions, from "Get Worker Compensation" to "Approve Absence," not just a generic API passthrough'],standard:["Guided Setup, OAuth or Manual — sensitive connections use a guided OAuth 2.0 flow while simpler ones accept scoped credentials directly; secrets are stored securely and never displayed after entry","Health Monitoring & Testing — a dedicated health view shows the live status of every connected integration, with one-click connection tests so issues surface before they affect a customer"]},{name:"Integration Categories at a Glance",desc:"12 integration categories span every major system an enterprise support or operations team touches, with 40+ callable tools available from a single HR-class connector alone.",highImpact:["ITSM (ServiceNow and similar platforms) — create, update and track incidents and change requests","Identity (Active Directory and identity providers) — create/manage user accounts, audit access, monitor logins","HR (Workday-class HRIS platforms) — worker lookups, pay and benefits data, absence & leave requests, performance goals","CRM (Salesforce-class platforms) — look up accounts/opportunities, update records, log activity"],standard:["Collaboration (Microsoft Teams and similar tools) — send messages, create meetings and channels, manage members","DevOps (source control & CI/CD platforms) — manage issues, pipelines and deployments","Cloud (cloud infrastructure providers) — query and manage cloud resources","Security (security & monitoring platforms) — pull alerts, trigger reviews, escalate incidents","Helpdesk / ERP / Data / Platform (ticketing, ERP, data and internal platform tools) — end-to-end coverage across finance, ops and internal systems"]}]}],JH=[{icon:Cr,title:"Monitoring Agents",desc:"Detect anomalies in your data and receive real-time alerts when thresholds are breached."},{icon:Ht,title:"Summarization Agents",desc:"Get automated daily summaries of key metrics and changes in your business data."},{icon:ge,title:"Action Agents",desc:"Automatically trigger updates and actions based on detected events in your systems."},{icon:ra,title:"Q&A Agents",desc:"Answer natural language questions about your data using advanced AI models."}],pl={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.08}}},hl={hidden:{opacity:0,y:24},visible:{opacity:1,y:0,transition:{duration:.45,ease:"easeOut"}}};function eG(){const{openDemoModal:t}=ot();return y.useEffect(()=>{window.scrollTo(0,0)},[]),e.jsxs("div",{className:"min-h-screen",children:[e.jsxs("section",{className:"relative pt-20 pb-4 border-b border-border/40 overflow-hidden text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[600px] h-[300px] bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-5xl mx-auto",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(vt,{className:"h-3 w-3"}),"Agentic Studio"]}),e.jsxs("h1",{className:"text-4xl md:text-5xl font-bold mb-6 leading-tight whitespace-nowrap",children:["Enterprise AI Agents ",e.jsx("span",{className:"text-primary",children:"Without the Code"})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-4xl mx-auto mb-10",children:"Create, deploy, and manage custom AI agents in minutes. Monitor data, automate workflows, and gain insights across your entire enterprise — powered by the LLM of your choice."}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-4 max-w-2xl mx-auto",children:QH.map(a=>e.jsxs("div",{className:"border border-border/60 bg-card rounded-xl p-4",children:[e.jsx("div",{className:"text-2xl md:text-3xl font-bold text-primary",children:a.value}),e.jsx("div",{className:"text-xs text-muted-foreground mt-1",children:a.label})]},a.label))})]})})]}),e.jsx("section",{className:"pt-10 pb-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"text-center mb-12",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Pre-Built Agent Templates"}),e.jsx("p",{className:"text-muted-foreground max-w-xl mx-auto",children:"Choose from enterprise-ready templates and customize them for your specific needs"})]}
57),e.jsx(v.div,{variants:pl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-5",children:JH.map(a=>e.jsxs(v.div,{variants:hl,className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-lg transition-all duration-300 text-center",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-12 h-12 rounded-xl bg-primary/10 border border-primary/20 text-primary mb-4 group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," Tier 1 — Hero Features"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"Lead-with-These Capabilities"})]}),e.jsx(v.div,{variants:pl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:WH.map(a=>e.jsxs(v.div,{variants:hl,className:"group relative border border-border/60 bg-card rounded-xl overflow-hidden hover:border-primary/30 transition-all duration-300",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-primary/10 to-primary/5 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),e.jsxs("div",{className:"relative p-6",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 border border-primary/20 text-primary mb-4 group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"text-lg font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-4",children:a.desc}),e.jsx("div",{className:"space-y-1.5",children:a.highlights.map(r=>e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"h-3.5 w-3.5 text-primary flex-shrink-0"}),r]},r))})]})]},a.id))})]})}),e.jsx("section",{className:"py-20 bg-muted/20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(ge,{className:"h-3 w-3"})," Tier 2 — Key Differentiators"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"What Sets Us Apart"})]}),e.jsx(v.div,{variants:pl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:KH.map(a=>e.jsxs(v.div,{variants:hl,className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4 group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-4.5 w-4.5"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.id))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(We,{className:"h-3 w-3"})," Tier 3 — Enterprise Depth"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold",children:"Built for Enterprise"}),e.jsx("p",{className:"text-muted-foreground mt-3 max-w-xl",children:"Secure multi-tenant architecture with role-based access control. Your agents can only access the data you have permissions for."})]}
57),e.jsx(v.div,{variants:pl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-5",children:YH.map(a=>e.jsxs(v.div,{variants:hl,className:"group border border-border/60 bg-card rounded-xl p-5 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-9 h-9 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-3 group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-4 w-4"})}),e.jsx("h3",{className:"font-bold text-foreground text-sm mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-xs leading-relaxed",children:a.desc})]},a.id))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-card/30",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-2xl mb-6",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-3",children:"60+ Modules, One Connected Platform"}),e.jsx("p",{className:"text-muted-foreground",children:"From the first message on a website widget to a quarterly cost report on an executive's desk — every capability below lives inside one data model. Select a suite to see the full breakdown."})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 mb-10",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 text-xs font-semibold px-3 py-1.5 rounded-full bg-primary/10 text-primary border border-primary/20",children:[e.jsx(de,{className:"h-3 w-3"})," High Impact — features that most directly change resolution speed, safety, and ROI"]}),e.jsxs("div",{className:"inline-flex items-center gap-2 text-xs font-semibold px-3 py-1.5 rounded-full bg-muted text-muted-foreground border border-border/60",children:[e.jsx(Me,{className:"h-3 w-3"})," Standard — operational depth for managers, agents, and analysts"]})]}),e.jsx(v.div,{variants:pl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"space-y-4",children:ZH.map(a=>e.jsxs(v.details,{variants:hl,open:!0,className:"group border border-border/60 bg-card rounded-xl overflow-hidden [&_summary::-webkit-details-marker]:hidden",children:[e.jsxs("summary",{className:"cursor-pointer list-none flex items-center justify-between gap-4 p-6 hover:bg-muted/20 transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 border border-primary/20 text-primary flex-shrink-0",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-foreground text-lg",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mt-1",children:a.tagline})]})]}),e.jsx(na,{className:"h-5 w-5 text-muted-foreground flex-shrink-0 transition-transform duration-300 group-open:rotate-180"})]}),e.jsx("div",{className:"px-6 pb-6 pt-2 border-t border-border/40 space-y-6",children:a.modules.map(r=>e.jsxs("div",{className:"pt-4 first:pt-0",children:[e.jsx("h4",{className:"font-semibold text-foreground mb-1",children:r.name}),"desc"in r&&r.desc&&e.jsx("p",{className:"text-sm text-muted-foreground mb-3",children:r.desc}),e.jsxs("div",{className:r.highImpact?.length?"grid sm:grid-cols-2 gap-6":"",children:[r.highImpact?.length?e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-semibold text-primary uppercase tracking-wide mb-2",children:"High Impact"}),e.jsx("ul",{className:"space-y-1.5",children:r.highImpact.map(s=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-foreground leading-relaxed",children:[e.jsx(de,{className:"h-3.5 w-3.5 text-primary mt-0.5 flex-shrink-0"}),e.jsx("span",{children:s})]},s))})]}):null,e.jsxs("div",{children:[r.highImpact?.length?e.jsx("div",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wide mb-2",children:"Standard"}):null,e.jsx("ul",{className:"space-y-1.5",children:r.standard.map(s=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground leading-relaxed",children:[e.jsx("span",{className:"h-1 w-1 rounded-full bg-muted-foreground mt-2 flex-shrink-0"}),e.jsx("span",{children:s})]},s))})]})]})]},r.name))})]},a.title))})]})}),e.jsx("section",{className:"py-16",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsx(v.blockquote,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-3xl mx-auto text-center text-xl md:text-2xl font-medium text-foreground leading-relaxed border-l-4 border-primary/40 pl-6 md:border-l-0 md:pl-0",children:'"Most vendors force a choice between an AI agent builder and a help desk. XpediOo treats both as one conversation lifecycle — a chat can start with an AI agent, escalate to a human, get scored for quality, feed analytics, and trigger proactive follow-ups, without leaving the platform or re-authenticating context."'})})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(vt,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"Ready to Build Your First Agent?"}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"Get a personalised walkthrough of Agentic Studio and see how quickly your team can deploy enterprise AI agents."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const tG=[{id:"auditors",icon:We,title:"21 Compliance Auditors, Out of the Box",desc:"Continuous AI audits across ISO 27001, GDPR, PCI DSS, HIPAA, plus dedicated Incident, Change, and SLA auditors — no separate module purchase."},{id:"major-incident-predictor",icon:ht,title:"Major Incident Predictor",desc:"Flags conditions likely to escalate into a major incident before they do, correlating historical patterns with live signals."},{id:"autonomous-incident-resolution",icon:ge,title:"Autonomous Incident Resolution",desc:"Facilitates root-cause diagnosis and delivers resolution steps automatically the moment an incident is logged."},{id:"proactive-problem-mgmt",icon:Tr,title:"Proactive Problem Management",desc:"Identifies recurring incident patterns, opens a Problem Record, and supports root-cause analysis without waiting for a human to spot the trend."}
57,{id:"self-evolving-knowledge",icon:_n,title:"Self-Evolving Knowledge Management",desc:"Detects knowledge gaps from real ticket activity and generates or refreshes articles automatically."},{id:"change-risk-execution",icon:ji,title:"Intelligent Change Risk & Execution",desc:"Assesses change risk using CMDB dependencies and incident history, then orchestrates execution as operational conditions shift."},{id:"employee-onboarding",icon:ze,title:"Cross-Functional Employee Onboarding",desc:"Coordinates IT, HR, and facilities tasks into a single automated onboarding journey spanning every system of record."},{id:"pir-generation",icon:Ht,title:"Post-Major-Incident Review Generation",desc:"Assembles the timeline, root cause, and action items into a structured review draft as soon as an incident closes."},{id:"sla-violation-prediction",icon:ja,title:"SLA Violation Prediction",desc:"Forecasts which tickets are at risk of breaching SLA early enough for a team to actually intervene."},{id:"resolution-recommendations",icon:de,title:"AI-Powered Resolution Recommendations",desc:"Surfaces the most likely fix for an active ticket based on how similar issues were resolved in the past."}],aG=[{now:"Primarily AI assistance embedded within ServiceNow workflows",xpedioo:"Specialized AI agents designed to execute multi-step workflows"},{now:"Strong focus on summarization, generation, search, recommendations and assistance",xpedioo:"Focus on reasoning, orchestration, decision support, and autonomous or semi-autonomous execution"},{now:"Primarily operates within ServiceNow experiences",xpedioo:"Can orchestrate ServiceNow workflows together with enterprise systems and specialized agents"},{now:"Out-of-the-box, general-purpose capabilities",xpedioo:"Customer-specific agents, auditors, and accelerators tailored to business processes"},{now:"ServiceNow-provided AI capabilities",xpedioo:"Custom LLMs, OpenAI, Anthropic, Gemini, and OpenRouter models can all be incorporated"},{now:"Platform-centric",xpedioo:"Business-process and outcome-centric"}],iG=[{capability:"Audit Scope",xpedioo:"21 specialist AI auditors — each purpose-built for one domain",now:"General AI assistant with agent workflows, not domain-specific auditors"},{capability:"Compliance Frameworks",xpedioo:"SOX, HIPAA, GDPR, SOC 2, FedRAMP, ISO 27001, PCI-DSS, HITRUST, DORA, ISO 22301 — all native",now:"Compliance scoring typically requires a separate GRC module, with limited native framework coverage"},{capability:"AI Analysis Depth",xpedioo:"Domain-expert prompting with evidence scoring and confidence grading per finding",now:"LLM-assisted summarization and case-note drafting, not structured evidence scoring"},{capability:"Cross-Domain Correlation",xpedioo:"Dedicated Cross-Auditor Correlation Engine — causal chains across all 21 auditors",now:"Cross-domain correlation is not a standard capability; modules generally operate independently"},{capability:"Scoring Model",xpedioo:"0–100 composite scores per domain, with dimension breakdowns and trend history",now:"Qualitative summaries and sentiment; no standardized audit scoring model"},{capability:"Continuous Monitoring",xpedioo:"On-demand and scheduled — every run produces comparable, scored output",now:"Real-time AI assistance during agent sessions, rather than periodic audit scoring"},{capability:"Cost Model",xpedioo:"Flat platform fee per auditor, unlimited runs",now:"Typically consumption-billed per AI interaction, which can add up at high audit volumes"}],nG=[{capability:"Incident AI",now:"Summary & resolution-notes generation",xpedioo:"Classification + Similarity + RCA + Impact Radius + Resolution Enrichment + Predictor"},{capability:"Change Risk",now:"Basic risk score for standard changes",xpedioo:"0–100 AI score with risk factors, confidence, CAB recommendation, conflict detection, bulk assessment"},{capability:"Change Plans",now:"Not a native capability",xpedioo:"8 plan types auto-generated: implementation, rollback, release, test, requirements, checklist, post-release, compliance"},{capability:"Compliance Automation",now:"Not available natively",xpedioo:"10+ frameworks (SOX, HIPAA, GDPR, SOC2, FedRAMP, PCI, ISO, HITRUST, DORA, BCMS) — all continuously AI-audited"},{capability:"Workforce Intelligence",now:"Not a native capability",xpedioo:"Burnout scoring, attrition risk, workload balance, SLA risk from staffing levels"},{capability:"Vendor Risk",now:"Not a native capability",xpedioo:"Full vendor risk: SLA performance, incident attribution, concentration, blast radius, contract expiry"},{capability:"ML Governance",now:"Prompt engineering studio",xpedioo:"Drift monitoring, training-data generation, performance alerts, cache dashboard, feedback loops"},{capability:"Knowledge Gap AI",now:"Generative search enhancement",xpedioo:"Gap detection with priority scoring, automatic article generation, self-service improvement loop"},{capability:"Cross-Framework Correlation",now:"Not a native capability",xpedioo:"Correlates findings across all active frameworks for unified remediation and shared-root-cause detection"},{capability:"LLM Flexibility",now:"Now LLM, Anthropic",xpedioo:"Open configuration — switch providers, use custom LLMs/SLMs, tune domain-specific prompts"}],ej=[{icon:ze,label:"Users / IT Operations Teams"},{icon:vt,label:"ServiceNow Experience / Workspaces / Virtual Agent"},{icon:nt,label:"XpediOo Agentic AI Orchestration Layer"},{icon:de,label:"Specialized AI Agents — Incident, Problem, Change, Knowledge, SLA, Major Incident, Analytics, Operations & more"},{icon:Tn,label:"ServiceNow Platform + Enterprise Systems"},{icon:Xa,label:"AI / LLM Layer — Custom LLM/SLM, Approved Public LLM, RAG & Enterprise Knowledge"}
57,{icon:yi,label:"Enterprise Data & Infrastructure"}],rG=["Trigger / Event","Agent Reasoning","Data Retrieval","Knowledge / RAG","Decisioning","Tool / API Invocation","ServiceNow Workflow Execution","Human Approval Checkpoint","Action Execution","Audit / Logging","Feedback Loop"],sG=[{icon:Gi,title:"ServiceNow Cloud + Public LLM",desc:"The fastest path to value — approved public LLMs orchestrated against your existing ServiceNow instance."},{icon:bi,title:"ServiceNow + Private / Custom LLM",desc:"Bring your own fine-tuned model while keeping ServiceNow as the system of record."},{icon:Cr,title:"ServiceNow + Enterprise RAG",desc:"Ground every agent response in your own knowledge base and historical records."},{icon:ji,title:"Hybrid AI Architecture",desc:"Mix public and private models by use case, sensitivity, and cost profile."},{icon:We,title:"Private / On-Premise AI Deployment",desc:"Full data sovereignty for organizations that require it — highlighted in XpediOo's architecture as a first-class option, not an afterthought."}],tj={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.06}}},aj={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}};function Af({title:t,badge:a,columns:r,rows:s}){const l=r.length===3;return e.jsxs("div",{className:"border border-border/60 bg-card rounded-xl overflow-hidden",children:[e.jsxs("div",{className:"p-6 md:p-8 pb-0",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," ",a]}),e.jsx("h3",{className:"text-xl md:text-2xl font-bold mb-6",children:t})]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-t border-border/60 bg-muted/30",children:[l&&e.jsx("th",{className:"text-left font-semibold text-foreground px-6 py-3 align-bottom w-1/5",children:r[0]}),e.jsx("th",{className:"text-left font-semibold text-muted-foreground px-6 py-3 align-bottom w-2/5",children:l?r[1]:r[0]}),e.jsx("th",{className:"text-left font-semibold text-primary px-6 py-3 align-bottom w-2/5",children:l?r[2]:r[1]})]})}),e.jsx("tbody",{children:s.map((d,u)=>e.jsxs("tr",{className:"border-t border-border/40",children:[l&&e.jsx("td",{className:"px-6 py-4 font-semibold text-foreground align-top",children:d.capability}),e.jsx("td",{className:"px-6 py-4 text-muted-foreground align-top leading-relaxed",children:d.now}),e.jsx("td",{className:"px-6 py-4 text-foreground align-top leading-relaxed",children:d.xpedioo})]},u))})]})})]})}function oG(){const{openDemoModal:t}=ot();return y.useEffect(()=>{window.scrollTo(0,0)},[]),e.jsxs("div",{className:"min-h-screen",children:[e.jsxs("section",{className:"relative pt-20 pb-16 border-b border-border/40 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 right-1/3 w-72 h-72 bg-primary/8 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(de,{className:"h-3 w-3"}),"ServiceNow Management AI Studio"]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["An Agentic AI Layer,",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Built Around ServiceNow."})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl",children:"XpediOo ServiceNow Management AI Studio is a more advanced, intelligent agentic AI alternative to Now Assist — built to run on the top 10 public LLMs, Now Assist's own LLMs, custom LLMs, and SLMs. It can fully replace Now Assist or coexist alongside it, extending ServiceNow beyond AI-assisted activities into AI-driven, multi-step execution."}),e.jsx("div",{className:"mt-8 flex flex-wrap gap-4",children:[{label:"150+ AI Use Cases",
57icon:de},{label:"21 Compliance Auditors",icon:We},{label:"Native ServiceNow Integration",icon:Tn}].map(a=>e.jsxs("div",{className:"flex items-center gap-2 border border-border/60 bg-card px-4 py-2 rounded-full text-sm text-muted-foreground",children:[e.jsx(a.icon,{className:"h-3.5 w-3.5 text-primary"}),a.label]},a.label))})]})})]}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid lg:grid-cols-5 gap-10",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"lg:col-span-3 space-y-5 text-muted-foreground leading-relaxed",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-foreground mb-2",children:"Now Assist vs. XpediOo Isn't the Right Question"}),e.jsx("p",{children:"ServiceNow Now Assist provides Good Generative AI capabilities — summarization, content generation, contextual recommendations, knowledge assistance, search, and conversational experiences within ServiceNow. XpediOo has built its own AI use cases across the same surface: a Major Incident Predictor, a Problem Management Enabler, 21 AI Auditors (including an Incident Auditor, Change Auditor, Change Risk Auditor, ISO 27001 Auditor, and GDPR Auditor, among others), resolution-note generation, service Q&A, AI-powered search, and sentiment analysis, to name a few. XpediOo also includes a powerful Voice AI agent that integrates with telephony systems, alongside a Chat Agent for conversational interactions."}),e.jsxs("p",{children:["The real differentiation is moving from AI-",e.jsx("em",{children:"assisted"})," activities to AI-",e.jsx("em",{children:"driven"}),", agentic execution of multi-step processes. An Autonomous Incident Resolution agent can facilitate root-cause diagnosis and provide resolution steps the moment an incident is logged. A Proactive Problem Management agent can identify recurring incident patterns, initiate a Problem Record, and support RCA activities on its own. An Intelligent Change agent can assess change risk using CMDB dependencies and historical incident data, then orchestrate execution as conditions change."]}),e.jsx("p",{children:"The broader XpediOo ServiceNow Agentic AI portfolio spans 150+ AI use cases across service management, operations, development, and other enterprise processes — leveraging the ServiceNow platform, custom or public LLM capabilities, and existing ServiceNow workflows, while adding specialized agent capabilities, orchestration, and customer-specific automation where it's needed."})]}),e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:.1},className:"lg:col-span-2",children:e.jsxs("div",{className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-8 h-full flex flex-col justify-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-40 h-40 bg-primary/10 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative space-y-4 text-center",children:[e.jsx("p",{className:"text-sm font-semibold uppercase tracking-widest text-muted-foreground",children:"The equation"}),e.jsxs("p",{className:"text-xl font-bold text-foreground leading-snug",children:["ServiceNow ",e.jsx("span",{className:"text-primary",children:"+"})," XpediOo Agentic AI"]}),e.jsx("p",{className:"text-3xl font-bold text-primary",children:"="}),e.jsxs("p",{className:"text-xl font-bold text-foreground leading-snug",children:["An extended intelligent",e.jsx("br",{}),"automation ecosystem"]}),e.jsx("p",{className:"text-sm text-muted-foreground pt-2 border-t border-border/40 mt-4",children:"Now Assist is a generative AI layer on top of existing workflows. XpediOo is a purpose-built AI intelligence platform that goes deeper in every domain."})]})]})})]})})}),e.jsx("section",{className:"py-20 bg-muted/20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12 max-w-2xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(vt,{className:"h-3 w-3"})," Agentic Use Cases"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"From Assistance to Autonomous Execution"}),e.jsx("p",{className:"text-muted-foreground",children:"A sample of the 150+ agentic use cases in the ServiceNow Agentic AI portfolio."})]}
57),e.jsx(v.div,{variants:tj,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:tG.map(a=>e.jsxs(v.div,{variants:aj,className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4 group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-4.5 w-4.5"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.id))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6 space-y-16",children:[e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},children:e.jsx(Af,{title:"Key Differentiation, by Approach",badge:"Now Assist vs. XpediOo Agentic AI",columns:["ServiceNow Now Assist","XpediOo Agentic AI"],rows:aG.map(a=>({now:a.now,xpedioo:a.xpedioo}))})}),e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},children:e.jsx(Af,{title:"How XpediOo AI Auditors Compare",badge:"Compliance & Audit",columns:["Capability","ServiceNow Now Assist AI","XpediOo AI Auditors"],rows:iG})}),e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},children:e.jsx(Af,{title:"Feature-by-Feature: Service Management AI",badge:"ServiceNow Management AI Studio",columns:["Capability","ServiceNow Now Assist","XpediOo Service Management AI Studio"],rows:nG})}),e.jsx("p",{className:"text-sm text-muted-foreground max-w-3xl",children:"Now Assist excels at generative assistance within the ServiceNow ecosystem. XpediOo Service Management AI Studio is built to go further in each of these domains, with an open architecture that isn't limited to a single model provider."})]})}),e.jsx("section",{className:"py-20 bg-muted/20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12 max-w-2xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(Ue,{className:"h-3 w-3"})," Solution Architecture"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Designed Around Specialized Agents"}),e.jsx("p",{className:"text-muted-foreground",children:"A representative deployment layers the orchestration and agent tier between your existing ServiceNow experience and the AI/LLM layer underneath it."})]}),e.jsxs("div",{className:"grid lg:grid-cols-5 gap-10",children:[e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"lg:col-span-3",children:e.jsx("div",{className:"space-y-0",children:ej.map((a,r)=>e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-4 border border-border/60 bg-card rounded-xl p-4",children:[e.jsx("div",{className:"flex-shrink-0 inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary",children:e.jsx(a.icon,{className:"h-4.5 w-4.5"})}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:a.label})]}),r<ej.length-1&&e.jsx("div",{className:"flex justify-center py-1",children:e.jsx("div",{className:"w-px h-4 bg-border"})})]},a.label))})}),e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:.1},className:"lg:col-span-2",children:[e.jsx("h3",{className:"font-bold text-foreground mb-4",children:"Agent-Level Execution Pipeline"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:rG.map((a,r)=>
57e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("span",{className:"inline-flex items-center gap-1.5 border border-border/60 bg-card rounded-full px-3 py-1.5 text-xs font-medium text-muted-foreground",children:[e.jsxs("span",{className:"text-primary font-bold",children:[r+1,"."]})," ",a]})},a))}),e.jsx("p",{className:"text-xs text-muted-foreground mt-4 leading-relaxed",children:"Human approval checkpoints and audit/logging are built into every agent's execution path — not optional add-ons."})]})]})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12 max-w-2xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(Gi,{className:"h-3 w-3"})," Deployment Flexibility"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Five Ways to Deploy the AI Layer"}),e.jsx("p",{className:"text-muted-foreground",children:"The right architecture depends on your security, compliance, and cost requirements — XpediOo supports custom LLM/SLM and public LLM approaches, and can tailor the deployment accordingly."})]}),e.jsx(v.div,{variants:tj,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-5 gap-5",children:sG.map(a=>e.jsxs(v.div,{variants:aj,className:"border border-border/60 bg-card rounded-xl p-5 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-9 h-9 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-3",children:e.jsx(a.icon,{className:"h-4 w-4"})}),e.jsx("h3",{className:"font-bold text-foreground text-sm mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-xs leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(de,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"See the Agentic Layer on Your Own Instance"}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"Walk through how XpediOo layers onto your existing ServiceNow environment — no rip-and-replace required."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const lG=[{icon:We,title:"Detect",bullets:["Proactive anomaly detection before incidents occur","Major incident prediction with probability scoring","Duplicate problem & change conflict detection"]},{icon:ge,title:"Respond",bullets:["AI-enriched resolutions with approval workflow","Root cause analysis in minutes, not hours","Knowledge gap auto-detection and article generation"]},{icon:Me,title:"Govern",bullets:["AI-automated audits across 10+ compliance frameworks","Change risk scoring with CAB recommendations","Vendor, workforce, and capacity risk intelligence"]},{icon:ct,title:"Improve",bullets:["Continual improvement with waste & flow detection","ML training data generation and drift monitoring","ROI calculator and downtime cost modelling"]}],cG={"AI Insights & Incident Intelligence":ht,"Major Incident Predictor":ge,"Change Risk & Lifecycle Governance":ji,"Knowledge & Problem Management AI":_n,"Proactive Monitoring & Capacity Forecasting":$e,"21 Specialist AI Auditors":We,"Cross-Auditor Correlation Engine":Ue},dG=[{value:"100+",label:"AI Capabilities"},{value:"21",label:"Compliance Auditors"},{value:"70%",label:"Audit Prep Reduction"},{value:"40%",label:"MTTR Reduction"}],zd={hidden:{opacity:0}
57,visible:{opacity:1,transition:{staggerChildren:.07}}},qd={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}};function uG(){const{openDemoModal:t}=ot();return y.useEffect(()=>{window.scrollTo(0,0)},[]),e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Auditor Suite & Service Management AI Studio | XpediOo"}),e.jsx("meta",{name:"description",content:"End-to-end AI coverage across every ITSM and ESM domain — 21 specialist AI Auditors, Cross-Auditor Correlation Engine, major incident prediction, change risk scoring, and knowledge gap intelligence."})]}),e.jsxs("section",{className:"relative pt-20 pb-16 border-b border-border/40 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 right-1/4 w-96 h-96 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"container mx-auto px-4 md:px-6 relative",children:[e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(be,{className:"h-3 w-3"}),"AI Auditor Suite & Service Management AI Studio"]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["Every ITSM Domain.",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Continuously AI-Audited."})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl",children:"One platform. 100+ AI capabilities. 21 purpose-built compliance auditors. A Cross-Auditor Correlation Engine that connects causal chains across every domain — from incident intelligence and change risk scoring to knowledge gap detection and regulator-ready audit artefacts."}),e.jsx("div",{className:"mt-8 flex flex-wrap gap-4",children:[{label:"100+ AI Capabilities",icon:be},{label:"21 Compliance Auditors",icon:We},{label:"10+ Frameworks — All Native",icon:Me},{label:"Production-Ready Today",icon:ge}].map(a=>e.jsxs("div",{className:"flex items-center gap-2 border border-border/60 bg-card px-4 py-2 rounded-full text-sm text-muted-foreground",children:[e.jsx(a.icon,{className:"h-3.5 w-3.5 text-primary"}),a.label]},a.label))})]}),e.jsx(v.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6,delay:.2},className:"mt-12 grid grid-cols-2 md:grid-cols-4 gap-4 max-w-2xl",children:dG.map(a=>e.jsxs("div",{className:"border border-border/60 bg-card rounded-xl p-4 text-center",children:[e.jsx("p",{className:"text-2xl font-bold text-primary",children:a.value}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:a.label})]},a.label))})]})]}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12 max-w-2xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," Executive Summary"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"From Incident to Compliance — AI at Every Stage"}),e.jsx("p",{className:"text-muted-foreground",children:"One platform. Thirty-plus AI capabilities. Every stage of the ITSM lifecycle — automated, scored, and explained."})]}),e.jsx(v.div,{variants:zd,initial:"hidden",whileInView:"visible",viewport:{once:!0}
57,className:"grid sm:grid-cols-2 lg:grid-cols-4 gap-5",children:lG.map(a=>e.jsxs(v.div,{variants:qd,className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-foreground text-lg mb-3",children:a.title}),e.jsx("ul",{className:"space-y-2",children:a.bullets.map(r=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"h-3.5 w-3.5 text-primary flex-shrink-0 mt-0.5"}),r]},r))})]},a.title))})]})}),e.jsx("section",{className:"py-20 bg-muted/20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12 max-w-2xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(ge,{className:"h-3 w-3"})," Core Capabilities"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"What Moves the Needle"}),e.jsx("p",{className:"text-muted-foreground",children:"The six capabilities that deliver the most measurable business impact — and the six AI engines powering them."})]}),e.jsxs("div",{className:"grid lg:grid-cols-2 gap-8",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"border border-border/60 bg-card rounded-xl p-7",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-5",children:[e.jsx(ge,{className:"h-4 w-4 text-primary"}),e.jsxs("span",{className:"text-xs font-semibold uppercase tracking-widest text-primary",children:["High-Impact Features — exactly ",Pg.length]})]}),e.jsx("ul",{className:"space-y-4",children:Pg.map(a=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Ve,{className:"h-4 w-4 text-primary flex-shrink-0 mt-0.5"}),e.jsx("span",{className:"text-sm text-foreground leading-relaxed",children:a})]},a))})]}),e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:.1},className:"border border-border/60 bg-card rounded-xl p-7",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-5",children:[e.jsx(be,{className:"h-4 w-4 text-primary"}),e.jsxs("span",{className:"text-xs font-semibold uppercase tracking-widest text-primary",children:["AI Features — exactly ",Og.length]})]}),e.jsx("ul",{className:"space-y-4",children:Og.map(a=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Ve,{className:"h-4 w-4 text-primary flex-shrink-0 mt-0.5"}),e.jsx("span",{className:"text-sm text-foreground leading-relaxed",children:a})]},a))})]})]})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12 max-w-2xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(Ue,{className:"h-3 w-3"})," Platform Depth"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"AI Across Every ESM Domain"}),e.jsx("p",{className:"text-muted-foreground",children:"From the first alert to a board-ready compliance artefact — every capability, explained."})]}),e.jsx("div",{className:"grid lg:grid-cols-2 gap-6",children:nB.map((a,r)=>{const s=cG[a.heading]??be;return e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r%2*.1},className:"border border-border/60 bg-card rounded-xl p-7 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-4",children:[e.jsx("div",{className:"flex-shrink-0 inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary",children:e.jsx(s,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-foreground text-lg leading-snug",children:a.heading}),e.jsx("p",{className:"text-muted-foreground text-sm mt-1 leading-relaxed",children:a.body})]})]}),e.jsx("ul",{className:"space-y-2 ml-14",children:a.bullets.map(l=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"h-3.5 w-3.5 text-primary flex-shrink-0 mt-0.5"}),l]},l))})]},a.heading)})})]})}),e.jsx("section",{className:"py-20 bg-muted/20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12 max-w-2xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(We,{className:"h-3 w-3"})," Compliance Coverage"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"21 Specialist AI Auditors"}),e.jsx("p",{className:"text-muted-foreground",children:"Each auditor is purpose-built for one domain — producing 0–100 composite scores with dimension breakdowns, evidence citations, and trend history. Not general AI summaries. Regulator-ready artefacts."})]}
57),e.jsx(v.div,{variants:zd,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-3",children:sB.map((a,r)=>{const[s,...l]=a.split(" — ");return e.jsxs(v.div,{variants:qd,className:"flex items-start gap-3 border border-border/60 bg-card rounded-xl p-4 hover:border-primary/30 transition-colors",children:[e.jsx("div",{className:"flex-shrink-0 w-7 h-7 rounded-lg bg-primary/10 border border-primary/20 text-primary text-xs font-bold flex items-center justify-center",children:r+1}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-foreground",children:s}),l.length>0&&e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:l.join(" — ")})]})]},a)})})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12 max-w-2xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(ct,{className:"h-3 w-3"})," Business Impact"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Quantified ROI — What Customers Achieve"}),e.jsx("p",{className:"text-muted-foreground",children:"Measured outcomes from organisations operating continuous AI audit intelligence."})]}),e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-10",children:[{value:"70%",label:"Reduction in audit preparation time"},{value:"40%",label:"Reduction in MTTR across all incidents"},{value:"3.2×",label:"Faster regulatory compliance readiness"}].map(a=>e.jsxs("div",{className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-6 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-20 h-20 bg-primary/10 rounded-full blur-2xl"}),e.jsx("p",{className:"relative text-3xl font-bold text-primary",children:a.value}),e.jsx("p",{className:"relative text-xs text-muted-foreground mt-2 leading-snug",children:a.label})]},a.label))}),e.jsx(v.div,{variants:zd,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:rB.map(a=>e.jsxs(v.div,{variants:qd,className:"border border-border/60 bg-card rounded-xl p-5",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(ze,{className:"h-4 w-4 text-primary"}),e.jsx("h3",{className:"font-semibold text-foreground text-sm",children:a.title})]}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:a.body})]},a.title))})]})}),e.jsx("section",{className:"py-20 bg-muted/20 border-b border-border/40",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid lg:grid-cols-2 gap-12 items-center",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(Ue,{className:"h-3 w-3"})," Auditor 21 / 21 — AI Flagship"]}),e.jsxs("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:["Cross-Auditor",e.jsx("br",{}),"Correlation Engine"]}),e.jsx("p",{className:"text-muted-foreground leading-relaxed mb-6",children:"The intelligence layer that connects all 21 auditors — surfacing causal chains and compound risks that no single-domain auditor can detect independently."}),e.jsx("blockquote",{className:"border-l-2 border-primary/40 pl-4 italic text-muted-foreground text-sm",children:'"Why did our SOC 2 score drop the same week CMDB hygiene fell? Because three change-freeze violations corrupted configuration data, triggering alert fatigue in SecOps, which delayed patch deployment — correlation score: 94%"'})]}
57),e.jsx(v.div,{variants:zd,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"space-y-4",children:[{title:"Causal Chain Discovery",desc:"Hypothesises and scores relationships between findings across all 21 auditors — e.g. CMDB inaccuracy → Change collisions → Incident spikes."},{title:"Compounding Risk Detection",desc:"Surfaces scenarios where two medium-severity findings in different domains combine to create a critical organisational risk."},{title:"Cross-Domain Quick Wins",desc:"Identifies single remediation actions that simultaneously improve scores across three or more auditor domains."},{title:"System Health Narrative",desc:"Produces a board-ready paragraph synthesising the organisation's overall ITSM and compliance posture from all 21 data points."},{title:"Evidence & Confidence Scoring",desc:"Each correlation is graded by confidence (High / Medium / Low) and severity (Critical → Low) with supporting evidence cited."}].map(a=>e.jsxs(v.div,{variants:qd,className:"flex items-start gap-3 border border-border/60 bg-card rounded-xl p-4 hover:border-primary/30 transition-colors",children:[e.jsx(Tr,{className:"h-4 w-4 text-primary flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-foreground",children:a.title}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1 leading-relaxed",children:a.desc})]})]},a.title))})]})})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(be,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"See All 21 Auditors in Action"}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"Walk through how XpediOo's AI Auditor Suite and Service Management AI Studio operate on your environment — with scored findings, causal chains, and regulator-ready evidence on day one."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const mG=[{icon:Gi,title:"Cloud Monitoring",tagline:"Unified multi-cloud inventory, cost visibility, and resource-level telemetry across AWS, Azure, GCP, Oracle Cloud, and OpenStack.",groups:[{heading:"Multi-Cloud Overview",items:["Top-level KPI cards: Cloud Accounts, Total Resources, Active Alerts, and Monthly Spend","Resources by Provider, Cost by Provider, Average CPU, Average Memory, and Resources by Type charts","Cloud Accounts Status table — Account, Provider, Region, Resources, Monthly Spend, and Sync Status","Active alert feed with inline acknowledge action"]},{heading:"Provider Drill-Down",items:["Provider-scoped Accounts, Resources, Active Alerts, and Monthly Cost tiles","Resource table — Name, Type, Region, Status, CPU, Memory, and Cost per Month","Provider-scoped alert feed with a dedicated View action per alert"]},{heading:"Resource Detail",items:["Location & Infrastructure and Specifications panels","Kubernetes / Container metrics for containerized workloads","Performance Metrics, Network Information, and Cost Information panels"]},{heading:"Cost Visibility & Anomaly Detection",items:["Total Monthly Cost, Top Spending Provider, and Cost Records summary tiles","Cost by Provider chart and a Top Services by Cost table","Cost anomalies tracked through Active, Acknowledged, and Closed states","AI-generated performance and resource-optimization recommendations"]},{heading:"Enterprise Account Onboarding",items:["Supported providers: AWS, Azure, GCP, Oracle Cloud, and OpenStack","Credential, region, and technical-contact c
57apture per account","Provider-specific IAM setup instructions shown inline during onboarding"]}]},{icon:Hl,title:"AI Cloud Architects",tagline:"Turns a written workload description into a reviewable, cost-estimated cloud architecture for AWS, Azure, GCP, and Oracle Cloud.",groups:[{heading:"Guided Architecture Design Wizard",items:["Step 1 — Workload Profile: provider, account/region, workload type, and environment","Step 2 — Scale & Availability: expected scale and availability/SLA requirements","Step 3 — Compliance & Data: compliance requirements and data-handling constraints","Step 4 — Budget & Region: budget ceiling, target region, and networking/security/DR preferences","Step 5 — Review & Generate: full input review before the AI generation call","Six quick-start templates — 3-Tier Web App, Event-Driven Microservices, ML/AI Training Pipeline, E-Commerce, Real-Time Data Pipeline, and HIPAA Healthcare App"]},{heading:"Generated Architecture Output",items:["Visual architecture diagram of the proposed environment","Cost breakdown chart showing estimated monthly spend by component","A Well-Architected-style scoring summary evaluating the design","Collapsible sections for Compute, Network, Security, Storage, Database, Monitoring, and Cost","Infrastructure-as-Code output and an implementation roadmap"]},{heading:"Save, Export & Compare",items:["Download the full generated architecture as JSON","Save multiple designs locally and compare them side by side","Re-run generation against a different provider without losing prior designs"]}]},{icon:Be,title:"Cloud Auditors",tagline:"Structured, framework-mapped compliance audits that use AI to turn raw findings into prioritized, explainable remediation guidance.",groups:[{heading:"Audit Categories & Framework Mapping",items:["Core categories: IAM/Identity & Access, Compliance Frameworks, Network Security, Data Protection & Storage, Logging & Monitoring, and Cost & Governance","Framework references: CIS Benchmarks, SOC 2, PCI-DSS, HIPAA, GDPR, and NIST 800-53","GCP-specific coverage: VPC Service Controls, firewall rules, Cloud Armor, and Private Google Access","Oracle-specific coverage: CIS Oracle Cloud Benchmarks"]},{heading:"Configurable Audit Runs",items:["Audit Category scope selector (a specific category or All Categories)","Resource Scope selector — Top 10, 25, 50, 100, or All Resources","Explicit LLM Provider and Model selection for the AI-assisted remediation pass","Live progress through initialization, evidence collection, analysis, and report generation"]},{heading:"Cross-Cloud Comparison & Findings",items:["All-Providers overview with per-provider compliance-score cards and finding counts","Compliance-score trend chart across successive audit runs, per provider","Framework-compliance-by-provider matrix and a Top Critical Findings feed","Per-audit result: score, severity breakdown, framework detail, and AI-generated remediation guidance"]}]},{icon:Ot,title:"Database Monitoring",tagline:"A single health, performance, and AI-assistance surface for PostgreSQL, MySQL, Microsoft SQL Server, Oracle, and MongoDB fleets.",groups:[{heading:"Fleet Overview & Per-Engine Detail",items:["Fleet KPIs: Total Databases, Healthy, Warning, and Critical/Offline counts","Provider, deployment, and environment filtering across heterogeneous fleets","Dedicated tabs per engine (PostgreSQL, MySQL, MS SQL, Oracle, MongoDB)","Engine-specific detail: health score, sessions, wait-events, buffer/cache stats, WAL/replication"]},{heading:"Query & Index Diagnostics",items:["Query Performance and Expensive Queries tables","Index Health with missing-index recommendations and an Index Growth trend chart","Lock Contention detection for blocking/blocked-session scenarios","Trending Analysis across historical performance data"]},{heading:"Maintenance & Auto-Remediation",items:["Maintenance task queue with status, scheduling, and per-task actions","Auto-Remediation recommendations backed by real mutation/API calls","Alert acknowledge/resolve workflow tied directly to remediation actions"]},{heading:"AI Database Assistant & AI Tools Suite",items:["AI Assistant — natural-language chat scoped to the selected database connection","11 AI Tools: Query Optimizer, Anomaly Detection, Configuration Tuner, Performance Prediction, Automated Tuning, Root 
57Cause Analysis, NL Query Builder, Schema Analysis, Relationship Mapping, Execution Plan Analysis, and Workload Analyzer","Configuration recommendations with workload type, impact badge, current vs. recommended values, and rationale"]}]},{icon:Nr,title:"Storage Monitoring",tagline:"Unified enterprise storage-array monitoring across Dell EMC, HPE, IBM, NetApp, Pure Storage, and Hitachi platforms.",groups:[{heading:"Fleet Overview",items:["Top-level KPIs: Storage Arrays, Healthy array count, Total Capacity, Utilization %, and Active Alerts","Capacity by Vendor chart comparing allocated and used capacity","Array Status Distribution chart summarizing fleet-wide health","Filter by Array control for scoping every downstream tab"]},{heading:"Depth Across Eight Tabs",items:["Overview, Performance, Capacity, and Health","Disks, Replication, and Controllers","AI Intelligence — AI-generated capacity and health recommendations"]},{heading:"Array Onboarding & Alerting",items:["Add Storage Array configuration workflow for connecting new arrays","Active alert tracking surfaced directly on the fleet overview","Refresh control for on-demand re-polling of connected arrays"]}]},{icon:Tn,title:"App Server Monitoring",tagline:"JVM and web-tier runtime monitoring across seven application-server engines that most infrastructure tools treat as a black box.",groups:[{heading:"Engine Coverage",items:["Apache Tomcat, Oracle WebLogic, IBM WebSphere, JBoss/WildFly, Microsoft IIS, Node.js, and PHP-FPM","Real, engine-aware collectors with scheduled polling of registered instances","Instance inventory with add/edit workflows and per-instance status"]},{heading:"Runtime & Application Metrics",items:["CPU, memory, heap, garbage-collection, JVM, and process/thread metrics per instance","Request throughput, error rate, and latency tracking","Deployed-applications table — App, Context Path, Version, and Status","Endpoint-level table — Endpoint, Method, Requests/sec, Error Rate, Avg Response, and p95 latency"]},{heading:"Topology, Remediation & Alerting",items:["Topology and dependency view for each application-server instance","Remediation execution history with an explicit approval step before actions run","Per-instance “Poll Now” for on-demand metric refresh, alongside scheduled polling"]}]},{icon:Cr,title:"Service Performance",tagline:"Live golden-signal tracking for business-facing microservices, correlated to the underlying Kubernetes workloads.",groups:[{heading:"Live Service Map",items:["Every tracked microservice rendered as a node in a live, auto-updating call graph","Color-coded node status — healthy, degraded, and SLO breach","Directed edges labeled by call type (HTTP, queue, cache, and similar)","Click-to-inspect: selecting a node opens its trend and SLO history"]},{heading:"Golden Signals & SLO Management",items:["Fleet KPIs: Services Tracked, Services Breaching SLO, Average p95 Latency, and Total Throughput","Per-service golden signals — latency, throughput, errors, and saturation","Error budget and burn-rate tracking per service","SLO breach history over a rolling 24-hour window"]},{heading:"Service Detail & Management",items:["Per-service detail: callers, p95 latency, requests/sec, error rate, and current status","Add, edit, and remove tracked services and their dependency edges","Add and edit SLO definitions per service directly from the management dialog"]}]}],pG=[{icon:Fs,chapter:"01",title:"Unified Dashboards & Operational Visibility",desc:"A single screen that answers “is everything okay?” in under five seconds — global health, custom dashboards, and exportable reporting.",bullets:["Global Overview Dashboard for ingestion, indexing, and satellite health","Unlimited Custom Dashboards with persisted, shareable layouts","Distributed Traces and deterministic Log Search & Exploration","Explainable per-resource Health Scores plus Export & Reporting"]},{icon:Gi,chapter:"02",title:"Infrastructure & Cloud Monitoring",desc:"A live resource and satellite inventory spanning bare-metal servers, Kubernetes clusters, and AWS, Azure, and GCP.",bullets:["Native Kubernetes cluster, workload, and pod telemetry","Consolidated multi-cloud accounts, resources, cost, and alerts","Cloud Auditors surfacing provider-specific security findings","Cloud Architects for architecture-level review and recommendations"]},{icon:Ot,chapter:"03",title:"Polyglot Data-Layer Monitoring",desc:"Purpose-built monitoring for six data-layer engine families, because data systems fail differently than application servers do.",bullets:["Relational databases, Redis, ElastiCache, and Memorystore","ClickHouse parts, merges, mutations, and replication lag","Elasticsearch / OpenSearch watermark-aware alerting at 85 / 90 / 95%","Snowflake, BigQuery, and Redshift workload and cost snapshots"]},{icon:vi,chapter:"04",title:"Network, Application & Synthetic Assurance",desc:"Assurance for everything that serves traffic — network fabric, IP space, application runtimes, and outside-in synthetic checks.",bullets:["Network device, interface, and traffic monitoring","Full IP address, subnet, and DNS management (IPAM)","Tomcat, WebLogic, WebSphere, JBoss, IIS, Node.js, and PHP-FPM","Service SLO / error-budget tracking and scheduled synthetic monitoring"]},{icon:Uu,chapter:"05",title:"Discovery, Dependency Mapping & Topology Intelligence",desc:"Automatic discovery feeding a deterministic dependency graph, with AI-inferred signal clearly separated from direct measurement.",bullets:["SNMP, ICMP, Cloud API, and Kubernetes discovery rules","AI Auto-Discovery for both infrastru
57cture and applications","Deterministic infrastructure and application dependency graphs","Business Service Maps and interactive topology exploration"]},{icon:pN,chapter:"06",title:"Intelligent Alerting & Incident Response",desc:"Reduce noise before it reaches a human, route what remains to the right channel, and resolve it automatically where policy allows.",bullets:["Grouping, deduplication, quiet hours, and maintenance windows","Automated workflows with notify, escalate, script, and ticket steps","Intelligent Routing Engine with full delivery history","Approval-gated Auto-Remediation Engine with rollback"]},{icon:be,chapter:"07",title:"AI-Assisted Operations Intelligence",desc:"An AI layer over the deterministic monitoring foundation — reviewable, editable output that augments operator judgment rather than replacing it.",bullets:["Root Cause Analysis and Capacity Forecasting","Impact Analysis and baseline-relative Drift Detection","Cost Optimization with tracked, realized savings","AI-generated Runbooks, Daily Operations, and AI Search"]},{icon:Be,chapter:"08",title:"Governance, Multi-Tenancy & Extensibility",desc:"Multi-team isolation, an audit trail that survives scrutiny, reusable configuration standards, and public status communication.",bullets:["Native multi-tenant organizations with team management","Audit & Compliance timeline with filterable governance records","Reusable Monitoring Configuration Templates across OS, DB, cloud & more","Tenant-branded Public Status Pages with uptime history"]}],hG=[["Container Orchestration","Kubernetes — clusters, namespaces, workloads, pods, and container-level metrics"],["Public Cloud","AWS, Microsoft Azure, and Google Cloud Platform — accounts, resources, cost, and audit findings"],["Relational & General-Purpose Databases","PostgreSQL, MySQL, Microsoft SQL Server, Oracle, MongoDB, and other configured engines"],["In-Memory Data Stores","Redis (standalone, sentinel, cluster), Amazon ElastiCache, Google Cloud Memorystore"],["Analytical Databases","ClickHouse — parts/merges, mutations, ZooKeeper/Keeper coordination, replication"],["Search & Indexing","Elasticsearch and OpenSearch — nodes, clusters, indices, and watermark-based alerting"],["Cloud Data Warehouses","Snowflake, Google BigQuery, Amazon Redshift — compute, query activity, and cost snapshots"],["Application Servers","Apache Tomcat, Oracle WebLogic, IBM WebSphere, JBoss/WildFly, Microsoft IIS, Node.js, PHP-FPM"],["Network & Address Management","Device/interface/traffic monitoring; VLANs, subnets, DHCP scopes, and DNS records"],["Storage","Capacity, performance, and lifecycle monitoring with dedicated maintenance planning"]],fG=[["Root Cause Analysis","Why did this incident happen, and what evidence supports that conclusion?"],["Capacity Forecasting","How long until this resource runs out of headroom?"],["Impact Analysis","What breaks downstream if this resource fails or changes?"],["Drift Detection & Baselines","Has this metric meaningfully deviated from its own historical normal?"],["Cost Optimization","Where can cloud spend be reduced without sacrificing capacity?"],["Alert Recommendations","Which alert rules are noisy, redundant, or mistuned?"],["Runbooks","What is the documented procedure for handling this scenario?"],["Auto-Remediation","Can this class of incident be resolved automatically, within approved guardrails?"],["AI Analytics & Search","What does the aggregate picture look like, and how do I find a specific entity fast?"]],gG=[{icon:Ue,title:"Breadth Without Fragmentation",desc:"From bare-metal servers and Kubernetes clusters to Snowflake warehouses and WebSphere clusters, every resource type lives in the same inventory, dependency graph, and alert pipeline — no separate tool per domain."},{icon:be,title:"AI That Assists, Not Replaces, Judgment",desc:"Root cause analysis, capacity forecasting, cost optimization, and runbook generation all surface reviewable, editable output with explicit AI configuration — augmenting operator decision-making, not acting as a black box."},{icon:Be,title:"Governed Automation",desc:"Auto-remediation, escalation workflows, and reconciliation rules are built around approval and rollback, not silent execution — automation operators can trust because it stays inside explicit guardrails."},{icon:de,title:"Built for Real Organizations",desc:"Native multi-tenancy, audit trails, reusable configuration templates, and public status communication fit how enterprise teams and their customers actually work."}],kf={hidden:{opacity:0}
57,visible:{opacity:1,transition:{staggerChildren:.06}}},Sf={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}};function ij({badge:t,title:a,columns:r,rows:s}){return e.jsxs("div",{className:"border border-border/60 bg-card rounded-xl overflow-hidden",children:[e.jsxs("div",{className:"p-6 md:p-8 pb-0",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," ",t]}),e.jsx("h3",{className:"text-xl md:text-2xl font-bold mb-6",children:a})]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-t border-border/60 bg-muted/30",children:[e.jsx("th",{className:"text-left font-semibold text-foreground px-6 py-3 align-bottom w-1/3",children:r[0]}),e.jsx("th",{className:"text-left font-semibold text-muted-foreground px-6 py-3 align-bottom w-2/3",children:r[1]})]})}),e.jsx("tbody",{children:s.map(([l,d])=>e.jsxs("tr",{className:"border-t border-border/40",children:[e.jsx("td",{className:"px-6 py-4 font-semibold text-foreground align-top",children:l}),e.jsx("td",{className:"px-6 py-4 text-muted-foreground align-top leading-relaxed",children:d})]},l))})]})})]})}function xG(){const{openDemoModal:t}=ot();return y.useEffect(()=>{window.scrollTo(0,0)},[]),e.jsxs("div",{className:"min-h-screen",children:[e.jsxs("section",{className:"relative pt-20 pb-16 border-b border-border/40 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 right-1/3 w-72 h-72 bg-primary/8 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(Xi,{className:"h-3 w-3"}),"AI Powered Observability"]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["One Platform for",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Every Layer of the Stack."})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl",children:"XpediOo AI Observability consolidates infrastructure monitoring, application performance visibility, dependency intelligence, and incident response into a single operational surface — built for teams tired of stitching together a dozen disconnected tools to answer one question: what is happening, why, and what do we do about it?"}),e.jsx("div",{className:"mt-8 flex flex-wrap gap-4",children:[{label:"150+ AI Features",icon:de},{label:"25+ Monitored Technologies",icon:Ue},{label:"8 Capability Domains",icon:Fs}].map(a=>e.jsxs("div",{className:"flex items-center gap-2 border border-border/60 bg-card px-4 py-2 rounded-full text-sm text-muted-foreground",children:[e.jsx(a.icon,{className:"h-3.5 w-3.5 text-primary"}),a.label]},a.label))})]})})]}),e.jsx("section",{className:"py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid lg:grid-cols-5 gap-10 items-start",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"lg:col-span-3 space-y-5 text-muted-foreground leading-relaxed",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-foreground mb-2",children:"Every Resource, One Inventory"}),e.jsx("p",{children:"Modern environments span physical data centers, multi-cloud accounts, Kubernetes clusters, polyglot databases, message brokers, application servers, and business services that depend on all of the above. XpediOo AI Observability was built around a simple premise: operators should not need to context-switch between a cloud console, a database dashboard, a t
57icketing system, and a spreadsheet of dependencies to triage an incident."}),e.jsx("p",{children:"Every resource type — from a bare-metal server to a Snowflake warehouse to a WebSphere cluster — is represented in the same inventory, monitored through the same alerting engine, and connected through the same dependency graph. Sitting on top of that deterministic foundation is an AI-assisted intelligence layer that applies large language models to the operational questions that traditionally required a senior engineer's judgment: what is the root cause, when will this resource run out of headroom, what happens if this dependency fails, and where is money being wasted."})]}),e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:.1},className:"lg:col-span-2 border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl p-8",children:[e.jsx("div",{className:"text-xs font-semibold tracking-widest uppercase text-primary/70 mb-4 text-center",children:"Scope Note"}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed text-center",children:"This platform covers core observability, monitoring, and AI-assisted operations capabilities. AI-driven log analysis and log-based AIOps are a dedicated subsystem, documented separately."})]})]})})}),e.jsx("section",{className:"py-20 bg-muted/20 border-y border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"max-w-2xl mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(Fs,{className:"h-3 w-3"})," Eight Capability Areas"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"From Everyday Visibility to AI-Assisted Intelligence"}),e.jsx("p",{className:"text-muted-foreground",children:"Moving from the day-to-day visibility surfaces operators use first, through specialized monitoring domains, into alerting and incident response, and finally into the AI-assisted intelligence layer."})]}),e.jsx(v.div,{variants:kf,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 gap-5",children:pG.map(a=>e.jsxs(v.div,{variants:Sf,className:"border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 border border-primary/20 text-primary",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold tracking-widest uppercase text-muted-foreground/60",children:["Ch. ",a.
57chapter]})]}),e.jsx("h3",{className:"font-bold text-foreground text-lg mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-4",children:a.desc}),e.jsx("div",{className:"space-y-2 pt-3 border-t border-border/40",children:a.bullets.map(r=>e.jsxs("div",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx("span",{className:"h-1 w-1 rounded-full bg-primary mt-2 flex-shrink-0"}),e.jsx("span",{children:r})]},r))})]},a.chapter))})]})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"max-w-2xl mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(Hl,{className:"h-3 w-3"})," Technical Deep-Dive"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Cloud, Data & Application Monitoring — In Depth"}),e.jsx("p",{className:"text-muted-foreground",children:"The seven areas below expand into full technical detail — every tab, metric, table, and workflow visible in the product, with AI-assisted features called out explicitly from deterministic monitoring. Select a section to expand it."})]}),e.jsx(v.div,{variants:kf,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"space-y-4",children:mG.map(a=>e.jsxs(v.details,{variants:Sf,className:"group border border-border/60 bg-card rounded-xl overflow-hidden [&_summary::-webkit-details-marker]:hidden",children:[e.jsxs("summary",{className:"cursor-pointer list-none flex items-center justify-between gap-4 p-6 hover:bg-muted/20 transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 border border-primary/20 text-primary flex-shrink-0",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-foreground text-lg",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mt-1",children:a.tagline})]})]}),e.jsx(na,{className:"h-5 w-5 text-muted-foreground flex-shrink-0 transition-transform duration-300 group-open:rotate-180"})]}),e.jsx("div",{className:"px-6 pb-6 pt-2 border-t border-border/40 grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:a.groups.map(r=>e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-foreground mb-2",children:r.heading}),e.jsx("ul",{className:"space-y-1.5",children:r.items.map(s=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground leading-relaxed",children:[e.jsx("span",{className:"h-1 w-1 rounded-full bg-primary mt-2 flex-shrink-0"}),e.jsx("span",{children:s})]},s))})]},r.heading))})]},a.title))})]})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6 space-y-10",children:[e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},children:e.jsx(ij,{badge:"Appendix",title:"Supported Technology Families",columns:["Domain","Coverage"],rows:hG})}),e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:.1},children:e.jsx(ij,{badge:"At a Glance",title:"AI-Assisted Workflows",columns:["Capability","Primary Question It Answers"],rows:fG})})]})}),e.jsx("section",{className:"py-20 bg-muted/20 border-y border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"max-w-2xl mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," Why XpediOo AI Observability"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Depth and Breadth, Without the Trade-Off"}),e.jsx("p",{className:"text-muted-foreground",children:"Most observability platforms force a choice: broad but shallow coverage across every resource type, or deep, specialized monitoring for a handful of engines. XpediOo AI Observability pairs engine-specific depth across a dozen data and infrastru
57cture domains with a single alerting, dependency, and AI-assistance layer that spans all of them."})]}),e.jsx(v.div,{variants:kf,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 gap-5",children:gG.map(a=>e.jsxs(v.div,{variants:Sf,className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(Xi,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"See Every Layer of Your Stack, in One Place"}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"Walk through how XpediOo AI Observability unifies your infrastructure, cloud, data, and application monitoring — with AI-assisted operations on top."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const yG=[{icon:Ue,chapter:"01",title:"Universal Log Ingestion & Normalization",desc:"A single ingestion layer that speaks every log format your estate produces, normalized into one query-able schema before it reaches search or AI analysis.",bullets:["Native collectors for Syslog, Windows Event Log, journald, and container stdout/stderr","Cloud-native log sources — AWS CloudWatch Logs, Azure Monitor Logs, GCP Cloud Logging","Kubernetes pod, node, and control-plane log aggregation via DaemonSet collectors","Schema-on-write normalization across JSON, key-value, CSV, and unstructured free text"]},{icon:RN,chapter:"02",title:"Multi-Source Event Ingestion",desc:"Every alert your monitoring and ITSM stack produces — metrics, APM, network, synthetic checks, and tickets — lands in the same event stream as your logs, ready for AI correlation.",bullets:["Native connectors for APM & metrics tools — Prometheus/Alertmanager, Datadog, New Relic, Dynatrace","Cloud-native alerting — AWS CloudWatch Alarms, Azure Monitor Alerts, GCP Alerting","Network fault ingestion — SNMP traps, NetFlow anomalies, and firewall/IDS alerts","Bi-directional ITSM sync — ServiceNow, Jira Service Management, PagerDuty, and Opsgenie"]},{icon:be,chapter:"03",title:"AI-Powered Log Analysis & Pattern Detection",desc:"Machine learning clusters millions of log lines into a handful of recurring patterns, then flags the ones that deviate from the historical baseline.",bullets:["Automatic log clustering and template extraction (log signature mining)","Statistical and ML-based anomaly detection on log volume, rate, and pattern mix","Rare-event and first-occurrence surfacing for never-seen-before error signatures","Natural-language log search — ask questions instead of writing regex"]},{icon:Dl,chapter:"04",title:"AIOps Event Correlation & Noise Reduction",desc:"The core of AIOps: collapsing a flood of alerts from a dozen disconnected monitoring tools into a small number of deduplicated, topology-aware, prioritized incidents.",bullets:["Real-time event deduplication and grouping across every connected monitoring tool","Topology- and dependency-aware correlation — alerts on related services merge into one incident","Alert-storm and flap detection with dynamic suppression during known incidents","Severity re-scoring that blends event confidence with business-service impact"]},{icon:Uu,chapter:"05",title:"Root Cause Correlation Engine",desc:"Correlates anomalous log patterns and deduplicated events across services, hosts, and time windows into a single causal narrative — not a wall of unrelated alerts.",bullets:["Cross-service correlation of logs, events, and alerts aligned to distributed trace and span IDs","Temporal correlation linking deploys, config changes, log spikes, and event bursts","Causal chain visualization from symptom back to originating event","Confidence-scored root cause candidates ranked by evidence strength across both signal types"]},{icon:Zg,chapter:"06",title:"Predictive AIOps & Auto-Remediation",desc:"Moves from explaining what already happened to forecasting what is about to happen, and — within approved guardrails — fixing it automatically.",bullets:["Predictive failure scoring from leading log-pattern and event-frequency indicators","AI-generated remediation playbooks mapped to recurring event and log signatures","Approval-gated auto-remediation with full execution and rollback history","Closed-loop learning — outcomes of past remediations refine future recommendations"]},{icon:Be,chapter:"07",title:"Governance, Retention & Compliance",desc:"Enterprise-grade controls for how long logs and events live, who can see them, and how the platform holds up under audit.",bullets:["Configurable hot / warm / cold retention tiers with automated lifecycle policies","Field-level PII redaction and masking at ingestion time","Framework-mapped audit trails — SOC 2, HIPAA, PCI-DSS, GDPR, and ISO 27001","Role-based access control and per-tenant log-and-event-source isolation"]}],bG=[{icon:Ue,title:"Universal Log Ingestion & Normalization",tagline:"One ingestion pipeline for every log-producing system in the enterprise, normalized into a consistent schema before it ever reaches search or AI analysis.",groups:[{heading:"Source Coverage",items:["Infrastru
57cture — Syslog, journald, Windows Event Log, and SNMP traps","Cloud-native — AWS CloudWatch Logs, Azure Monitor Logs, GCP Cloud Logging","Containers & orchestration — Kubernetes pod, node, and control-plane logs via DaemonSet collectors","Application — structured JSON, Log4j/Logback, Python logging, .NET diagnostics, and custom agents"]},{heading:"Ingestion Pipeline",items:["Schema-on-write parsing across JSON, key-value, CSV, and free-text formats","Configurable pattern library for legacy and proprietary log formats","Buffered, back-pressure-aware collectors that survive downstream outages","Real-time and batch ingestion modes, selectable per source"]},{heading:"Enrichment at Ingest",items:["Automatic host, service, and environment tagging from CMDB and cloud metadata","Trace and span ID extraction for cross-referencing with distributed tracing","GeoIP, user-agent, and severity-level enrichment for common log families"]}]},{icon:RN,title:"Multi-Source Event Ingestion",tagline:"One event bus for every alert-producing tool in the enterprise — metrics, APM, network, synthetic checks, and ITSM tickets — normalized before correlation ever runs.",groups:[{heading:"Monitoring & APM Sources",items:["Prometheus/Alertmanager, Datadog, New Relic, and Dynatrace alert webhooks","Cloud-provider native alerts — AWS CloudWatch Alarms, Azure Monitor Alerts, GCP Alerting","XpediOo AI Observability alerts ingested natively, with full topology context attached"]},{heading:"Network & Synthetic Sources",items:["SNMP traps and NetFlow-based anomaly alerts","Firewall, IDS/IPS, and VPN security event feeds","Synthetic transaction and uptime-check failures from external probes"]},{heading:"ITSM & Ticketing Sync",items:["Bi-directional integration with ServiceNow and Jira Service Management","PagerDuty and Opsgenie incident and on-call event ingestion","Generic webhook connector for any tool that can post a JSON payload"]}]},{icon:be,title:"AI-Powered Log Analysis & Pattern Detection",tagline:"Machine learning turns an unmanageable volume of raw lines into a small, ranked set of patterns worth a human's attention.",groups:[{heading:"Pattern Mining & Clustering",items:["Automatic log signature extraction — millions of lines reduced to hundreds of templates","Dynamic re-clustering as new log patterns emerge in production","Template drift tracking to flag when a known pattern starts behaving differently"]},{heading:"Anomaly Detection",items:["Volume and rate anomaly detection per service, host, and log level","Pattern-mix anomaly detection — same volume, different composition","Seasonality-aware baselines (hourly, daily, weekly) to avoid false positives","First-occurrence alerts for signatures never seen in the training window"]},{heading:"Search & Exploration",items:["Natural-language query interface — ask questions instead of writing regex or a query DSL","Saved searches and shareable investigation links","Field-level faceted filtering across normalized log attributes"]}]},{icon:Dl,title:"AIOps Event Correlation & Noise Reduction",tagline:"Machine learning turns a flood of alerts from a dozen disconnected tools into a small number of deduplicated, prioritized, and correctly-routed incidents.",groups:[{heading:"Deduplication & Grouping",items:["Real-time event deduplication across every connected monitoring and ITSM tool","Topology- and dependency-aware grouping — alerts on related services merge into one incident","Fingerprint-based matching for near-duplicate alerts with differing wording or IDs"]},{heading:"Storm & Flap Control",items:["Alert-storm detection with automatic suppression once a root incident is identified","Flap detection to prevent unstable signals from re-triggering the same alert repeatedly","Dynamic suppression during acknowledged incidents and scheduled maintenance windows"]},{heading:"Prioritization & Routing",items:["Severity re-scoring blending event confidence with business-service impact","Multi-channel delivery — Slack, Microsoft Teams, PagerDuty, ServiceNow, email, and SMS","On-call schedule and escalation-policy integration"]},{heading:"Noise Analytics",items:["Noise-reduction dashboard tracking raw-alert-to-incident compression ratio over time","Mean-time-to-acknowledge and mean-time-to-resolve trending by service","Alert-rule tuning recommendations for chronically noisy sources"]}]},{icon:Uu,title:"Root Cause Correlation Engine",tagline:"Links anomalous log signals and deduplicated events across services, hosts, deploys, and time into a single explainable narrative.",groups:[{heading:"Correlation Signals",items:["Distributed trace and span ID alignment across service boundaries","Deploy and configuration-change timeline overlay on log anomaly and event spikes","Topology-aware correlation using the live dependency graph from AI Observability, spanning both logs and events"]},{heading:"Causal Analysis",items:["Causal chain visualization from downstream symptom back to originating event","Confidence-scored root cause candidates ranked by supporting evidence","Multi-incident clustering when a single root cause produces several symptoms"]},{heading:"Investigation Workspace",items:["One-click drill-down from a correlated incident to raw underlying log lines and source events","AI-generated incident summary with a plain-language explanation of the chain","Exportable incident timelines for postmortems and audits"]}]},{icon:Zg,title:"Predictive AIOps & Auto-Remediation",tagline:"Moves from explaining incidents after the fact to forecasting them ahead of time, and resolving known patterns automatically under approval-gated guardrails.",groups:[{heading:"Predictive Signals",items:["Failure-likelihood scoring from leading log-pattern and event-frequency indicators","Capacity and saturation forecasting derived from log-volume and event-rate trends","Early-warning alerts before a known failure signature fully manifests"]},{heading:"Remediation Playbooks",items:["AI-generated remediation runbooks mapped to recurring incident signatures","Library of pre-built playbooks for c
57ommon failure classes — disk, memory, connection-pool exhaustion","Custom playbook authoring with parameterized remediation steps"]},{heading:"Governed Automation",items:["Approval-gated execution with a mandatory human sign-off step by default","Full execution and rollback history for every automated action","Closed-loop learning — remediation outcomes feed back into future recommendations"]}]},{icon:Be,title:"Governance, Retention & Compliance",tagline:"Enterprise controls for how long logs and events live, who can see them, and how the platform holds up under a regulatory audit.",groups:[{heading:"Retention & Lifecycle",items:["Configurable hot / warm / cold retention tiers with automated tiering policies","Per-source retention overrides for regulatory or contractual requirements","Immutable archive export to long-term object storage"]},{heading:"Privacy & Access Control",items:["Field-level PII detection and redaction at ingestion time","Role-based access control scoped to log source, event source, service, and environment","Per-tenant log-and-event isolation for managed-service-provider and multi-business-unit deployments"]},{heading:"Audit & Compliance",items:["Framework-mapped audit trails — SOC 2, HIPAA, PCI-DSS, GDPR, and ISO 27001","Immutable access and query logs for every user action on sensitive log and event data","Scheduled compliance reports exportable for auditor review"]}]}],vG=[["Infrastructure & OS","Syslog, journald, Windows Event Log, and SNMP traps"],["Cloud-Native Logs","AWS CloudWatch Logs, Azure Monitor Logs, and GCP Cloud Logging"],["Containers & Orchestration","Kubernetes pod, node, and control-plane logs via DaemonSet collectors"],["Application Frameworks","Log4j/Logback, Python logging, .NET diagnostics, Node.js, and Go structured logging"],["Web & Network","NGINX, Apache, HAProxy, load balancer, and firewall logs"],["Databases","PostgreSQL, MySQL, MS SQL, Oracle, and MongoDB slow-query and error logs"],["Security","IDS/IPS, endpoint detection, VPN, and identity-provider audit logs"],["Message Queues & Streaming","Kafka, RabbitMQ, and other broker operational logs"]],wG=[["Monitoring & APM","Prometheus/Alertmanager, Datadog, New Relic, and Dynatrace alert webhooks"],["Cloud-Native Alerting","AWS CloudWatch Alarms, Azure Monitor Alerts, and GCP Alerting"],["Network & Security Events","SNMP traps, NetFlow anomalies, firewall/IDS/IPS, and VPN events"],["Synthetic & Uptime Checks","External probe and synthetic-transaction check failures"],["ITSM & Incident Tools","ServiceNow, Jira Service Management, PagerDuty, and Opsgenie"],["Internal Observability","Native ingestion of XpediOo AI Observability alerts, with full topology context"]],jG=[["Log Pattern Mining","What are the handful of recurring patterns hiding inside millions of log lines?"],["Anomaly Detection","Which log pattern just deviated from its historical baseline?"],["Event Correlation & Deduplication","Which of these alerts from five different monitoring tools describe the same underlying incident?"],["Alert-Storm Suppression","How do we stop ten thousand alerts from one root cause from flooding every on-call channel?"],["Root Cause Correlation","Which upstream event actually caused this cascade of symptoms?"],["Predictive Failure Scoring","How likely is this signature to escalate into an outage?"],["Auto-Remediation","Can this recurring failure be resolved automatically, within approved guardrails?"],["Natural-Language Search","What happened, described in plain English instead of a query language?"]],NG=[{icon:Ue,title:"Every Log And Event, One Pipeline",desc:"Infrastructure, cloud, container, application, network, and security logs — plus every alert fired by APM, network, synthetic, and ITSM tools — are ingested, normalized, and correlated in a single schema. No per-tool silos, no per-source noise-reduction logic."},{icon:Dl,title:"Noise Reduction Is the Core, Not a Feature",desc:"AIOps event correlation runs continuously in the background, collapsing alert storms from a dozen disconnected tools into a handful of deduplicated, topology-aware incidents before a human ever sees them."},{icon:Zg,title:"Automation With Guardrails",desc:"Auto-remediation runs inside approval gates with full rollback history, so automated response earns operator trust instead of demanding it upfront."},{icon:Uu,title:"Built to Work With AI Observability",desc:"Topology and dependency data — and native alert ingestion — from XpediOo AI Observability feed directly into event correlation, so root-cause analysis reasons over the same map your infrastru
57cture team already trusts."}],Ce="/aiops-screenshots",AG=[{title:"Anomaly Patterns",page:"AI Log Analysis",image:`${Ce}/foundational-log-anomaly-patterns.jpg`,desc:"The default, foundational view of AI Log Analysis: AI-detected anomaly patterns across every ingested log source, with severity, trend, and confidence for each one. Every high- and medium-impact Log Analysis capability in this document builds on the anomaly stream produced here."},{title:"Correlations",page:"AI Event Correlation (AIOps)",image:`${Ce}/foundational-event-correlations.jpg`,desc:"The default, foundational view of Event Correlation: multi-signal grouping across anomalies, Kubernetes events, remediations, deployments, and external alerts into a single correlated incident view. Every high- and medium-impact AIOps capability in this document builds on the correlation groups produced here."}],kG=[{title:"Cross-Service Causality Analysis",image:`${Ce}/log-high-cross-service-causality.jpg`,desc:"Uses AI to trace how a failure in one service propagates into failures in dependent services, reconstructing the full chain from root cause to symptoms.",impact:"Collapses hours of manual cross-team log correlation into an automatically generated causal chain, dramatically shortening root-cause analysis during multi-service incidents."},{title:"AI Query (Conversational Log Search)",image:`${Ce}/log-high-ai-query.jpg`,desc:"A conversational interface for querying log data in plain English, with the AI translating questions into the underlying filters and returning direct answers grounded in the matching log entries.",impact:"Makes log data accessible to engineers who aren't fluent in query syntax and speeds up ad-hoc investigation for everyone else."},{title:"False-Positive Learning",image:`${Ce}/log-high-false-positive-learning.jpg`,desc:"Learns from dismissal feedback which alert patterns are consistently false positives and automatically suppresses future recurrences of them.",impact:"Directly reduces alert fatigue — the single biggest driver of ignored or delayed responses to real incidents — by keeping the noise-to-signal ratio in check over time."},{title:"Semantic Anomaly Deduplication (Smart Dedup)",image:`${Ce}/log-high-semantic-dedup.jpg`,desc:"Uses semantic similarity — not just exact string matching — to cluster anomalies that are really the same underlying root cause reported multiple times, surfacing one canonical entry per cluster.",impact:"Cuts through duplicate noise in incident lists and reporting, so headline metrics reflect the true number of distinct problems rather than an inflated raw event count."},{title:"AI Shift Handoff & Digest Report",image:`${Ce}/log-high-shift-handoff.jpg`,desc:"Generates an automatic AI-written summary of anomalies, resolutions, and outstanding risks over a chosen period — 8-hour shift, day, or week.",impact:"Standardizes shift handoffs and management reporting, ensuring nothing falls through the cracks when responsibility changes hands, and gives leadership a digestible operational pulse."},{title:"Predictive Anomaly Forecasting",image:`${Ce}/log-high-predictive-forecasting.jpg`,desc:"AI analyzes the historical cadence of recurring issues and predicts when the same pattern is statistically likely to reoccur, with a confidence score and a 24-hour forecast window.",impact:"Shifts operations from purely reactive firefighting to proactive prevention, letting teams schedule fixes or capacity changes ahead of a predicted recurrence."},{title:"Log Baseline & Drift Detection",image:`${Ce}/log-high-baseline-drift.jpg`,desc:"Establishes a statistical baseline of normal log behavior per source and continuously checks for gradual deviation in error rate, warning rate, or volume.",impact:"Catches slow-building degradations — a memory leak, a creeping error rate — that single-anomaly detection would miss because no individual event looks alarming on its own."},{title:"Intelligent Alert Noise Correlation",image:`${Ce}/log-high-alert-noise-correlation.jpg`,desc:"Groups alert firings that stem from the same underlying incident into a single correlated notification instead of firing one alert per rule per event.",impact:"Prevents an on-call engineer's phone from lighting up with twenty pages for one incident, reducing response fatigue and making the true blast radius obvious immediately."},{title:"SLA Tracking",image:`${Ce}/log-high-sla-tracking.jpg`,desc:"Tracks the time from anomaly detection to resolution against configured response-time targets per severity, flagging breaches as they approach or occur.",impact:"Gives engineering leadership objective, real-time visibility into whether operational commitments — internal or contractual — are being met, before a customer has to ask."},{title:"PII Masking & Data Redaction",image:`${Ce}/log-high-pii-masking.jpg`,desc:"Automatically detects and masks sensitive personal data — emails, card numbers, SSNs, tokens — in log content before it is stored, displayed, or sent to an LLM.",impact:"Reduces regulatory exposure (GDPR, PCI-DSS, HIPAA) by ensuring sensitive data never lands unmasked in a system engineers routinely have broad access to."}],SG=[{title:"AI Insights (Pattern Intelligence)",image:`${Ce}/log-med-ai-insights.jpg`,desc:"Every detected anomaly gets an AI write-up explaining what happened, why it's risky, and what's likely to break next — no need to parse raw stack traces or correlate logs by hand.",impact:"On-call engineers and less-technical stakeholders (support, leadership) reach a shared understanding of incident severity in seconds, speeding up triage and cross-team communication."},{title:"Live Stream",image:`${Ce}/log-med-live-stream.jpg`,desc:"A live, continuously updating feed of log entries as they are emitted by your infrastru
57cture, filterable by source and severity level in real time.",impact:"Teams can watch a deployment or incident fix take effect live instead of waiting on periodic refreshes, shortening validation time after a change."},{title:"Log Search",image:`${Ce}/log-med-log-search.jpg`,desc:"Full-text and structured search across the entire retained log history, with filters for time range, source, severity, and tags, plus an AI-assisted search mode.",impact:"Root-cause investigations that used to mean grepping through server files now take seconds, materially reducing incident resolution time and audit turnaround."},{title:"Log Sources",image:`${Ce}/log-med-log-sources.jpg`,desc:"A managed inventory of every system, service, and environment feeding logs into the platform, with health status for each connection.",impact:"Gaps in log coverage — a silent agent, a misconfigured shipper — are visible immediately, preventing blind spots that would otherwise hide real incidents."},{title:"Schedules",image:`${Ce}/log-med-schedules.jpg`,desc:"Configures anomaly scans to run automatically on a recurring cadence — hourly, daily, or custom — instead of requiring someone to trigger them manually.",impact:"Detection coverage no longer depends on an engineer remembering to run a scan, which is critical for 24/7 operations and off-hours incident coverage."},{title:"Alert Rules",image:`${Ce}/log-med-alert-rules.jpg`,desc:"Defines precise trigger conditions — thresholds, patterns, or combinations — that fire an alert the moment matching log activity occurs.",impact:"Turns passive log storage into an active early-warning system, so responders are notified proactively instead of discovering problems reactively."},{title:"Volume & Trends",image:`${Ce}/log-med-volume-trends.jpg`,desc:"Time-series visualization of log throughput and severity mix across sources, surfacing volume spikes, drop-offs, and long-term trend shifts.",impact:"Capacity planning and anomaly detection both benefit — sudden volume changes are often the first visible sign of an outage, security event, or silent failure."},{title:"Run History",image:`${Ce}/log-med-run-history.jpg`,desc:"A full audit trail of every anomaly-detection run — when it executed, what configuration was used, and what it found, with run-to-run comparison.",impact:"Gives compliance and engineering leadership a verifiable record that monitoring is actually happening consistently, and lets teams compare results run-over-run."},{title:"Field Analytics",image:`${Ce}/log-med-field-analytics.jpg`,desc:"Extracts structured fields — IP addresses, endpoints, response times, user IDs — out of unstructured log text using built-in or AI-suggested patterns, then aggregates them like a spreadsheet.",impact:'Turns free-text logs into queryable business and operational metrics — e.g. "top IPs causing 500 errors" — without needing a data engineering project.'},{title:"Retention",image:`${Ce}/log-med-retention.jpg`,desc:"Defines automated policies for how long log data of each type or source is retained before deletion, enforced without manual cleanup.",impact:"Balances storage cost against compliance requirements (e.g. HIPAA, SOC 2 retention windows) automatically, removing a common source of audit findings and storage overruns."},{title:"Export & Audit",image:`${Ce}/log-med-export-audit.jpg`,desc:"Exports raw or filtered logs for external analysis, and reviews a compliance audit log of every retention and export action taken on the data.",impact:"Satisfies auditor and regulator requests for evidence of data handling controls, and supports e-discovery or forensic investigations without engineering involvement."}],IG=[{title:"Cross-Service Causality Analysis",image:`${Ce}/event-high-cross-service-causality.jpg`,desc:"Signals from anomalies, Kubernetes events, remediations, deployments, and external alerts within a 30-minute window across two or more resources are sent to the LLM for causal analysis, which identifies the root cause, how it propagated, and the downstream symptoms.",impact:"Collapses hours of manual, cross-team correlation work into an automatically generated causal chain — chains below 60% confidence are discarded, and repeat triggers are suppressed for an hour to avoid noise."},{title:"AI Query (Conversational Event Search)",image:`${Ce}/event-high-ai-query.jpg`,desc:"A conversational interface for asking plain-English questions about correlated events, grounded in the full real-time signal feed plus every AI-correlated group.",impact:'Gives on-call engineers immediate answers to the questions that come up in almost every incident review — "why did payment-service start alerting?" — with no query to write.'},{title:"False-Positive Learning",image:`${Ce}/event-high-false-positive-learning.jpg`,desc:'Every dismissal of a correlated group is a signal. Root-cause patterns dismissed five or more times with a high fal
57se-positive rate are automatically suppressed, so future groups are created as "Suppressed" instead of noisy "Active" alerts.',impact:"Keeps the correlation engine self-tuning — the patterns that page on-call for nothing get quieter over time without anyone editing a rule."},{title:"Semantic Correlation Deduplication (Smart Dedup)",image:`${Ce}/event-high-semantic-dedup.jpg`,desc:'Clusters alert-correlation groups by semantic similarity of their root cause — turning "DB latency spike on db-server-01" and "db-server-01 experiencing high query latency" from different analysis runs into one canonical recurring root cause with a merged signal count.',impact:"Headline noise-reduction metrics reflect the true number of distinct operational problems, not an inflated count of re-detected duplicates across runs."},{title:"AI Shift Handoff & Digest Report",image:`${Ce}/event-high-shift-handoff.jpg`,desc:"Generates a plain-English operational briefing covering stability, correlated-group trends, resource health, and recommended actions — ready for shift handoffs, executive reviews, or SOC 2 operational audits.",impact:"Gives incoming shifts and leadership a consistent, digestible operational summary without anyone having to manually assemble one from raw alert history."},{title:"Correlation Settings (Weighted Scoring)",image:`${Ce}/event-high-correlation-settings.jpg`,desc:"Tunable composite scoring across three strategies — Topology (service dependency graph), Timing (co-incidence window), and Wording (message similarity) — that determines how aggressively signals are grouped together.",impact:"Lets operators tune correlation behavior to their environment: raise Topology weight where the dependency map is well-maintained, or raise Wording weight in noisy, repetitive-alert environments."},{title:"Event Correlation Baseline & Drift Detection",image:`${Ce}/event-high-baseline-drift.jpg`,desc:"Continuously learns normal signal behavior per source type per hour-of-day and alerts when volume or critical-signal rate deviates significantly from that learned baseline.",impact:"Surfaces slow-building shifts in alert behavior — a source quietly getting noisier or a critical-rate creep — that a single correlation run would never flag on its own."},{title:"PII Masking on Event Correlation",image:`${Ce}/event-high-pii-masking.jpg`,desc:"Applies the same shared masking rule set used by Log Analysis to every signal message before it reaches the correlation AI, with a live tester for event-style content.",impact:"Guarantees consistent data-handling policy across both AIOps surfaces — one set of redaction rules, enforced everywhere signals reach an LLM, with no separate configuration to maintain."},{title:"SLA Tracking",image:`${Ce}/event-high-sla-tracking.jpg`,desc:"Tracks acknowledgement and resolution windows for correlated event groups by severity, with an automatic breach checker and escalation tracking.",impact:"Gives leadership the same objective, real-time SLA visibility for cross-system incidents that Log Analysis provides for individual anomalies."},{title:"Event Sources",image:`${Ce}/event-high-event-sources.jpg`,desc:"A live registry of every signal type feeding the correlation engine — anomalies, Kubernetes events, remediation actions, change/deployment events, and external webhook or polled integrations — each with a 7-day event count and health indicator.",impact:"Gives operators one place to confirm every upstream signal pipeline is actually delivering before they trust the correlation results built on top of it."}],CG=[{title:"Anomaly Patterns (Recurring Signal Shapes)",image:`${Ce}/event-med-anomaly-patterns.jpg`,desc:"Surfaces recurring signal shapes across the last 7 days — the same Kubernetes warning, anomaly type, or change repeatedly hitting the same resource — not just a single run's grouping.",impact:"Highlights the chronic, slow-burning issues that a one-off correlation run would miss because no individual occurrence looks urgent."},{title:"AI Insights",image:`${Ce}/event-med-ai-insights.jpg`,desc:"An AI-generated pattern intelligence summary drawn from recurring signal patterns across every correlation source, each with a severity tag and a plain-English explanation.",impact:"Gives responders a fast, prioritized reading list of what actually matters across the noise, without opening every individual correlation group."},{title:"Live Stream",image:`${Ce}/event-med-live-stream.jpg`,desc:"A live, continuously updating feed of every signal type — anomalies, Kubernetes events, remediations, changes, external alerts, app-server alerts — filterable by source as they occur.",impact:"Lets an operator watch a live incident or a change rollout unfold 
57signal-by-signal in real time, across every source type at once."},{title:"Event Search",image:`${Ce}/event-med-event-search.jpg`,desc:"Full-text and structured search across every correlated signal, with filters for source type and severity and a breakdown of matches by category.",impact:'Turns ad-hoc "what happened with this resource last week" questions into a few-second search instead of a manual sweep across multiple source pages.'},{title:"Alert Rules",image:`${Ce}/event-med-alert-rules.jpg`,desc:"Rules evaluated against correlated event groups every time analysis runs, matching on correlation type, severity, resource, or signal source rather than raw log text.",impact:"Lets teams route notifications for specific correlation shapes — e.g. any critical-severity group touching payment-api — without waiting on a human to notice it."},{title:"Volume & Trends",image:`${Ce}/event-med-volume-trends.jpg`,desc:"Real event throughput over time across all signal sources, with hourly bucketing and breakdowns by severity.",impact:"Gives capacity and on-call planning teams the same trend visibility over correlated events that Log Analysis provides over raw log volume."},{title:"Run History",image:`${Ce}/event-med-run-history.jpg`,desc:'Every "Correlate Alerts" analysis run over the last 30 days, with signal counts, new groups, flapping, suppression, and noise-reduction percentage — plus the ability to diff two runs.',impact:"Gives engineering leadership a verifiable, comparable record that correlation is running consistently and actually reducing noise run over run."},{title:"Field Analytics",image:`${Ce}/event-med-field-analytics.jpg`,desc:"Ready-made, one-click analyses over real correlated signals — noisiest resources, critical-only hotspots, top signal source types, most frequent event types, Kubernetes warning hotspots, and external alert hotspots.",impact:"Gives on-call engineers immediate answers to the questions that come up in almost every incident review, with no query to write."},{title:"Maintenance Windows",image:`${Ce}/event-med-maintenance-windows.jpg`,desc:"Signals whose resource and severity fall inside an active, scheduled maintenance window are suppressed before correlation runs.",impact:"Known-safe changes — a scheduled database maintenance, a planned patch window — don't spam the team with new alert groups."},{title:"Noise Trends",image:`${Ce}/event-med-noise-trends.jpg`,desc:'Tracks noise-reduction percentage and mean time to acknowledge/resolve (MTTA/MTTR) for correlated groups over time, across every historical "Correlate Alerts" run rather than just the latest snapshot.',impact:"Lets leadership see whether the correlation engine's effectiveness is actually improving over time, not just what it looks like today."},{title:"Retention",image:`${Ce}/event-med-retention.jpg`,desc:"Automated purge policies for correlated event groups past a configured compliance retention window, with a full retention audit trail.",impact:"Extends the same storage-cost and compliance balancing that Log Analysis retention provides to the correlation domain's own data."},{title:"Export & Audit",image:`${Ce}/event-med-export-audit.jpg`,desc:"Exports filtered correlated event groups as CSV, JSON, or a formatted PDF report, and maintains a compliance audit trail of every correlation run and export with PII-masking counts.",impact:"Gives auditors and compliance teams the same SOC2/GDPR-ready evidence trail for cross-system incident correlation that exists for raw log handling."},{title:"Topology Aliases",image:`${Ce}/event-med-topology-aliases.jpg`,desc:"Maps a signal's resource identifier to its dependency-map application name when automatic name normalization isn't enough — for example, a Kubernetes pod name versus a dependency-map service name that differ structurally.",impact:"Keeps topology-weighted correlation accurate even when naming conventions differ across the systems feeding signals into the engine, instead of silently under-correlating them."}],MG=[{icon:ra,title:"Faster Resolution",desc:"Causality chains, conversational AI query, and semantic deduplication collapse hours of manual cross-team correlation into seconds, directly cutting mean-time-to-resolution on multi-service incidents."},{icon:PM,title:"Less Noise, Less Fatigue",desc:"False-positive learning, alert-noise correlation, and drift detection mean the system gets quieter and more accurate over time instead of paging the same person for the same non-issue every week."},{icon:Be,title:"Audit-Ready by Default",desc:"PII masking, retention policies, SLA tracking, and compliance export are built into both engines natively — not bolted on — so security and compliance reviews are a formality rather than a project."}],TG=[{icon:wE,title:"For Operators",desc:"Fewer pages for the same incident, faster root-cause attribution, and a conversational way to ask questions instead of writing queries."},{icon:Ug,title:"For Engineering Leadership",desc:"Objective SLA visibility, run history you can audit, and a system that gets measurably quieter over time instead of noisier."},{icon:Be,title:"For Compliance & Security",desc:"PII masking and retention are enforced by default across both engines, with an audit trail ready for SOC 2, GDPR, or HIPAA review on request."}],Bi={hidden:{opacity:0}
57,visible:{opacity:1,transition:{staggerChildren:.06}}},Ps={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}};function If({badge:t,title:a,columns:r,rows:s}){return e.jsxs("div",{className:"border border-border/60 bg-card rounded-xl overflow-hidden",children:[e.jsxs("div",{className:"p-6 md:p-8 pb-0",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," ",t]}),e.jsx("h3",{className:"text-xl md:text-2xl font-bold mb-6",children:a})]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-sm border-collapse",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-t border-border/60 bg-muted/30",children:[e.jsx("th",{className:"text-left font-semibold text-foreground px-6 py-3 align-bottom w-1/3",children:r[0]}),e.jsx("th",{className:"text-left font-semibold text-muted-foreground px-6 py-3 align-bottom w-2/3",children:r[1]})]})}),e.jsx("tbody",{children:s.map(([l,d])=>e.jsxs("tr",{className:"border-t border-border/40",children:[e.jsx("td",{className:"px-6 py-4 font-semibold text-foreground align-top",children:l}),e.jsx("td",{className:"px-6 py-4 text-muted-foreground align-top leading-relaxed",children:d})]},l))})]})})]})}function Fd({item:t,tier:a}){return e.jsxs(v.div,{variants:Ps,className:"border border-border/60 bg-card rounded-xl overflow-hidden flex flex-col hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"aspect-video w-full overflow-hidden border-b border-border/40 bg-muted/30",children:e.jsx("img",{src:t.image,alt:`${t.title} screenshot`,loading:"lazy",className:"w-full h-full object-cover object-top"})}),e.jsxs("div",{className:"p-5 flex flex-col flex-1",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2 mb-2",children:[e.jsx("h4",{className:"font-bold text-foreground text-base leading-snug",children:t.title}),e.jsx("span",{className:`text-[10px] font-bold tracking-wider uppercase px-2 py-1 rounded-full flex-shrink-0 ${a==="High"?"bg-primary/15 text-primary":"bg-muted text-muted-foreground"}`,children:a})]}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed mb-4",children:t.desc}),e.jsxs("div",{className:"mt-auto pt-3 border-t border-border/40 text-sm leading-relaxed",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"Business impact: "}),e.jsx("span",{className:"text-muted-foreground",children:t.impact})]})]})]})}function EG(){const{openDemoModal:t}=ot();return y.useEffect(()=>{window.scrollTo(0,0)},[]),e.jsxs("div",{className:"min-h-screen",children:[e.jsxs("section",{className:"relative pt-20 pb-16 border-b border-border/40 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 right-1/3 w-72 h-72 bg-primary/8 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(uu,{className:"h-3 w-3"}),"AIOps & AI Log Management"]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["Every Log. Every Event.",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"One Root Cause, Automatically."})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl",children:"XpediOo AIOps & AI Log Management ingests every log line and every monitoring event your enterprise produces — alerts fired by APM, network, synthetic, and ITSM tools included — uses machine learning to deduplicate and correlate them, collapses alert storms into a handful of actionable incidents, and — within approval-gated guardrails — resolves recurring failures before a human ever gets paged."}),e.jsx("div",{className:"mt-8 flex flex-wrap gap-4",children:[{label:"120+ AI Features",icon:de},{label:"40+ Log & Event Sources",icon:Ue},{label:"7 Capability Domains",icon:Fs}].map(a=>e.jsxs("div",{className:"flex items-center gap-2 border border-border/60 bg-card px-4 py-2 rounded-full text-sm text-muted-foreground",children:[e.jsx(a.icon,{className:"h-3.5 w-3.5 text-primary"}),a.label]},a.label))})]})})]}),e.jsx("section",{className:"py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid lg:grid-cols-5 ga
57p-10 items-start",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"lg:col-span-3 space-y-5 text-muted-foreground leading-relaxed",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-foreground mb-2",children:"From Alert Storms and Log Noise to One Root Cause"}),e.jsx("p",{children:"Enterprise environments don't just bury teams in log lines — they bury them in alerts. A single upstream failure can trigger hundreds of near-simultaneous notifications across APM tools, network monitors, synthetic checks, and ticketing systems, each one looking like its own incident. On-call engineers routinely spend the most critical minutes of an outage untangling which alerts are symptoms and which one is the cause, before log analysis has even started."}),e.jsx("p",{children:"XpediOo AIOps & AI Log Management solves both problems in one platform. Every log is ingested and normalized, and machine learning mines it for the handful of patterns that matter. In parallel, every event fired by connected monitoring, network, and ITSM tools is deduplicated, grouped by topology, and correlated in real time — this is the AIOps core, purpose-built to turn a flood of alerts into a small number of actionable incidents. Both streams feed the same root-cause engine, so the platform explains a single incident with the full picture: the alerts that fired, how they relate, and the log lines that explain why — with predictive models and approval-gated automation ready to resolve the recurring ones on their own."})]}),e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:.1},className:"lg:col-span-2 border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl p-8",children:[e.jsx("div",{className:"text-xs font-semibold tracking-widest uppercase text-primary/70 mb-4 text-center",children:"Scope Note"}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed text-center",children:"This platform is the dedicated AIOps and log-intelligence layer that complements XpediOo AI Observability — natively ingesting its alerts (plus events from any other connected monitoring or ITSM tool), correlating them against log data and live topology, and focusing purely on noise reduction, root cause, and automated remediation."})]})]})})}),e.jsx("section",{className:"py-20 bg-muted/20 border-y border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"max-w-2xl mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(Fs,{className:"h-3 w-3"})," Seven Capability Areas"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"From Raw Logs and Alert Storms to Automated Resolution"}),e.jsx("p",{className:"text-muted-foreground",children:"Moving from universal log and event ingestion, through AI-driven pattern detection and AIOps noise reduction, into root cause correlation, predictive automation, and the governance controls that keep it all audit-ready."})]}),e.jsx(v.div,{variants:Bi,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 gap-5",children:yG.map(a=>e.jsxs(v.div,{variants:Ps,className:"border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsxs("div",{className:"flex items-start justify-between mb-4",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 border border-primary/20 text-primary",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold tracking-widest uppercase text-muted-foreground/60",children:["Ch. ",a.
57chapter]})]}),e.jsx("h3",{className:"font-bold text-foreground text-lg mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-4",children:a.desc}),e.jsx("div",{className:"space-y-2 pt-3 border-t border-border/40",children:a.bullets.map(r=>e.jsxs("div",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx("span",{className:"h-1 w-1 rounded-full bg-primary mt-2 flex-shrink-0"}),e.jsx("span",{children:r})]},r))})]},a.chapter))})]})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"max-w-2xl mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(Hl,{className:"h-3 w-3"})," Technical Deep-Dive"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Ingestion, Noise Reduction & Remediation — In Depth"}),e.jsx("p",{className:"text-muted-foreground",children:"The seven areas below expand into full technical detail — every source, model, and workflow behind the platform, covering both AI-driven log analysis and the AIOps event-correlation core. Select a section to expand it."})]}),e.jsx(v.div,{variants:Bi,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"space-y-4",children:bG.map(a=>e.jsxs(v.details,{variants:Ps,className:"group border border-border/60 bg-card rounded-xl overflow-hidden [&_summary::-webkit-details-marker]:hidden",children:[e.jsxs("summary",{className:"cursor-pointer list-none flex items-center justify-between gap-4 p-6 hover:bg-muted/20 transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-11 h-11 rounded-xl bg-primary/10 border border-primary/20 text-primary flex-shrink-0",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-foreground text-lg",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mt-1",children:a.tagline})]})]}),e.jsx(na,{className:"h-5 w-5 text-muted-foreground flex-shrink-0 transition-transform duration-300 group-open:rotate-180"})]}),e.jsx("div",{className:"px-6 pb-6 pt-2 border-t border-border/40 grid sm:grid-cols-2 lg:grid-cols-3 gap-6",children:a.groups.map(r=>e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-foreground mb-2",children:r.heading}),e.jsx("ul",{className:"space-y-1.5",children:r.items.map(s=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground leading-relaxed",children:[e.jsx("span",{className:"h-1 w-1 rounded-full bg-primary mt-2 flex-shrink-0"}),e.jsx("span",{children:s})]},s))})]},r.heading))})]},a.title))})]})}),e.jsx("section",{className:"py-20 bg-muted/20 border-y border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"max-w-3xl mb-14",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," Complete Capability Reference"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Two Engines, One AIOps Story"}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"AI Log Analysis and AI Event Correlation are XpediOo's two AI-native surfaces — one reasoning over raw log text, the other reasoning over the signals every other part of the platform produces. Together they form this platform's AIOps layer: the part of the system that doesn't just show data, but explains it, groups it, predicts it, and tells operators what to do next. Below is every high- and medium-impact capability on both surfaces — 44 in total — each with a live product screenshot, what it does, and the business outcome it drives."}),e.jsx("div",{className:"flex flex-wrap gap-4 mt-6",children:[{label:"44 Capabilities Documented",icon:Fs},{label:"20 High-Impact",icon:de},{label:"24 Medium-Impact",icon:Dl}].map(a=>e.jsxs("div",{className:"flex items-center gap-2 border border-border/60 bg-card px-4 py-2 rounded-full text-sm text-muted-foreground",children:[e.jsx(a.icon,{className:"h-3.5 w-3.5 text-primary"}),a.label]},a.label))})]}
57),e.jsx(v.div,{variants:Bi,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-3 gap-5 mb-16",children:MG.map(a=>e.jsxs(v.div,{variants:Ps,className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))}),e.jsxs("div",{className:"mb-16",children:[e.jsx("h3",{className:"text-xl font-bold text-foreground mb-1",children:"The Foundation: Detection & Correlation"}),e.jsx("p",{className:"text-muted-foreground text-sm mb-6 max-w-3xl",children:"Every capability below is an extension of two foundational, always-on engines — treated here as Critical / Foundational rather than scored High or Medium, since without them nothing downstream has data to work with."}),e.jsx(v.div,{variants:Bi,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 gap-6",children:AG.map(a=>e.jsxs(v.div,{variants:Ps,className:"border border-primary/30 bg-card rounded-xl overflow-hidden flex flex-col",children:[e.jsx("div",{className:"aspect-video w-full overflow-hidden border-b border-primary/20 bg-muted/30",children:e.jsx("img",{src:a.image,alt:`${a.title} screenshot`,loading:"lazy",className:"w-full h-full object-cover object-top"})}),e.jsxs("div",{className:"p-5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-2",children:[e.jsx("h4",{className:"font-bold text-foreground text-base",children:a.title}),e.jsx("span",{className:"text-[10px] font-bold tracking-wider uppercase px-2 py-1 rounded-full bg-primary/15 text-primary flex-shrink-0",children:"Foundational"})]}),e.jsx("div",{className:"text-xs font-semibold text-primary/80 mb-2",children:a.page}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:a.desc})]})]},a.title))})]}),e.jsxs("div",{className:"mb-16",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-9 h-9 rounded-lg bg-primary/10 border border-primary/20 text-primary",children:e.jsx(be,{className:"h-5 w-5"})}),e.jsx("h3",{className:"text-2xl font-bold text-foreground",children:"AI Log Analysis"})]}),e.jsx("p",{className:"text-muted-foreground text-sm mb-8 ml-12",children:"10 High-Impact capabilities, 11 Medium-Impact capabilities"}),e.jsx("h4",{className:"text-sm font-bold tracking-widest uppercase text-muted-foreground/70 mb-4",children:"High-Impact Capabilities"}),e.jsx(v.div,{variants:Bi,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 gap-5 mb-10",children:kG.map(a=>e.jsx(Fd,{item:a,tier:"High"},a.title))}),e.jsx("h4",{className:"text-sm font-bold tracking-widest uppercase text-muted-foreground/70 mb-4",children:"Medium-Impact Capabilities"}),e.jsx(v.div,{variants:Bi,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 gap-5",children:SG.map(a=>e.jsx(Fd,{item:a,tier:"Medium"},a.title))})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-9 h-9 rounded-lg bg-primary/10 border border-primary/20 text-primary",children:e.jsx(Dl,{className:"h-5 w-5"})}),e.jsx("h3",{className:"text-2xl font-bold text-foreground",children:"AI Event Correlation (AIOps)"})]}),e.jsx("p",{className:"text-muted-foreground text-sm mb-8 ml-12",children:"10 High-Impact capabilities, 13 Medium-Impact capabilities"}),e.jsx("h4",{className:"text-sm font-bold tracking-widest uppercase text-muted-foreground/70 mb-4",children:"High-Impact Capabilities"}),e.jsx(v.div,{variants:Bi,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 gap-5 mb-10",children:IG.map(a=>e.jsx(Fd,{item:a,tier:"High"},a.title))}),e.jsx("h4",{className:"text-sm font-bold tracking-widest uppercase text-muted-foreground
57/70 mb-4",children:"Medium-Impact Capabilities"}),e.jsx(v.div,{variants:Bi,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 gap-5",children:CG.map(a=>e.jsx(Fd,{item:a,tier:"Medium"},a.title))})]}),e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mt-16 border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent rounded-2xl p-8 md:p-10",children:[e.jsx("h3",{className:"text-2xl md:text-3xl font-bold mb-4",children:"An AIOps Layer That Actually Reasons"}),e.jsx("p",{className:"text-muted-foreground leading-relaxed mb-8 max-w-3xl",children:`Most "AIOps" claims amount to a single anomaly-detection model bolted onto a dashboard. XpediOo's AI Log Analysis and AI Event Correlation go considerably further: causal reasoning across services, conversational access to both raw logs and correlated incidents, self-tuning false-positive suppression, semantic deduplication, drift detection against learned baselines, and compliance-grade retention, export, and PII handling — all built natively into two pages that already share a detection and correlation core.`}),e.jsx("div",{className:"grid sm:grid-cols-3 gap-5",children:TG.map(a=>e.jsxs("div",{className:"border border-border/60 bg-card rounded-xl p-5",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-9 h-9 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-3",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h4",{className:"font-bold text-foreground text-sm mb-1.5",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})]})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6 space-y-10",children:[e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},children:e.jsx(If,{badge:"Appendix",title:"Supported Log Sources",columns:["Domain","Coverage"],rows:vG})}),e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:.05},children:e.jsx(If,{badge:"Appendix — AIOps",title:"Supported Event & Alert Sources",columns:["Domain","Coverage"],rows:wG})}),e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:.1},children:e.jsx(If,{badge:"At a Glance",title:"AI-Assisted Workflows",columns:["Capability","Primary Question It Answers"],rows:jG})})]})}),e.jsx("section",{className:"py-20 bg-muted/20 border-y border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"max-w-2xl mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(bi,{className:"h-3 w-3"})," Why XpediOo AIOps & AI Log Management"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Explainable AI, Automation With Guardrails"}),e.jsx("p",{className:"text-muted-foreground",children:"Most tools stop at either log search or alert routing. XpediOo AIOps & AI Log Management does both: it collapses alert storms into a handful of correlated incidents, mines log lines for the patterns that matter, and produces a ranked, evidence-backed root cause — with an automated fix that runs inside approval gates your team controls, for recurring failure classes."})]}),e.jsx(v.div,{variants:Bi,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 gap-5",children:NG.map(a=>e.jsxs(v.div,{variants:Ps,className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(uu,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"Stop Chasing Alerts. Start Resolving Incidents."}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"Walk through how XpediOo AIOps & AI Log Management ingests, correlates, and automatically remediates incidents hiding inside your logs and event storms."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const RG=[{num:"01",title:"Business Requirement Agent",desc:"Turns your goals and target users into comprehensive, structured requirements documentation — eliminating ambiguity before a single line of code is written.",icon:Ht},{num:"02",title:"Architecture Agent",desc:"Designs system architecture and technical patterns suited to your scale, stack, and non-functional requirements — from microservices to monoliths.",icon:Ue},{num:"03",title:"Technical Specification Agent",desc:"Creates detailed, developer-ready technical specs with API contracts, data models, and interface definitions that engineering can act on immediately.",icon:Qg},{num:"04",title:"Feature Breakdown Agent",desc:"Splits complex features into granular, estimable tasks with clear acceptance criteria — ready for sprint planning or backlog grooming.",icon:ji},{num:"05",title:"Project Planning Agent",desc:"Generates realistic project plans, timelines, dependency maps, and risk registers — so you start every sprint with clarity, not guesswork.",icon:Me},{num:"06",title:"Code Generation Agent",desc:"Writes production-ready, idiomatic code that follows your team's conventions — not generic boilerplate that needs to be thrown away.",icon:wi},{num:"07",title:"Database Agent",desc:"Designs schemas, generates optimised queries, handles migrations, and suggests indexing strategies for maximum performance at scale.",icon:Ot},{num:"08",title:"QA Automation Agent",desc:"Generates comprehensive test suites — unit, integration, and end-to-e
57nd — ensuring coverage from the moment code is written.",icon:We},{num:"09",title:"Peer Review Agent",desc:"Performs automated code reviews against your standards, flagging security issues, anti-patterns, and maintainability concerns before human review.",icon:Gt},{num:"10",title:"Documentation Agent",desc:"Auto-generates inline docs, API references, README files, and onboarding guides — keeping documentation in sync with the code at all times.",icon:Ht},{num:"11",title:"Deployment Agent",desc:"Prepares CI/CD pipelines, Dockerfiles, infrastructure-as-code templates, and deployment runbooks — so shipping to production is repeatable and safe.",icon:du},{num:"12",title:"Production Release Agent",desc:"Monitors the deployment process, manages feature flags, coordinates rollouts to production buckets, and auto-generates release notes.",icon:AR}],PG=[{id:"byom",icon:be,title:"Bring Your Own AI Model",badge:"No Vendor Lock-In",desc:"Connect your preferred AI provider and model through a central configuration panel — switching takes seconds, not sprints. XpediOo supports all leading providers out of the box.",providers:["OpenAI GPT-4o","Anthropic Claude","Google Gemini","Meta Llama","DeepSeek","Custom / Self-Hosted"],extra:"Every agent in the pipeline can be configured to use a different model — run your heavyweight architecture decisions on Claude while keeping code generation on GPT-4o for cost efficiency."},{id:"comparison",icon:Ul,title:"Multi-Model Comparison",badge:"Side-by-Side Intelligence",desc:"Unsure which model will give the best result for a specific task? Turn on Multi-Model Comparison to run the same request across multiple AI models simultaneously and review their outputs side by side.",points:["Run one prompt across 2–5 models in parallel","Compare code quality, style, and completeness at a glance","Select the winning output and continue the workflow","Save model preference per agent type for future runs","Ideal for high-stakes decisions like architecture or security review"],extra:"Multi-Model Comparison removes the guesswork from model selection and lets your team make evidence-based decisions — not just default to whichever model is trendiest."},{id:"swarm",icon:ze,title:"Multi-Agent Swarm Mode",badge:"Collective Intelligence",desc:"For complex problems, one AI perspective isn't enough. Swarm Mode deploys multiple specialised agents to work on the same task simultaneously — each contributing its unique strengths — and then synthesises their outputs into a single, superior result.",points:["Parallel agent execution on the same request","Each agent specialises in a different dimension (security, performance, UX, scalability)","Outputs are merged and scored by a coordinator agent","Conflicts are surfaced with rationale — you decide the final direction","Dramatically reduces blind spots in complex architectural decisions"],extra:"Swarm Mode is particularly powerful for greenfield architecture, security-critical components, and any problem where a single point of view could miss something important. Think of it as your AI design review — at machine speed."},{id:"semantic",icon:Gt,title:"Semantic Code Search — Intent-Aware",badge:"Codebase-Aware Generation",desc:"Generated code that feels foreign to your codebase creates technical debt before it's even merged. Semantic Code Search analyses the patterns, naming conventions, and architectural decisions already present in your repository — so every new line of generated code looks and feels like it was written by your own team.",points:["Reads existing files to extract your team's coding conventions","Matches variable naming, function structure, and module patterns","Detects and reuses existing utilities instead of generating duplicates","Surfaces related existing code when generating new features","Works across polyglot codebase
57s — TypeScript, Python, Go, Java, and more"],extra:"The result: generated code that passes peer review faster, requires fewer edits, and integrates cleanly into your existing architecture — without the 'AI smell' that makes reviewers reach for the delete key."},{id:"vibe",icon:de,title:"Vibe Code — Iterate Without Losing Control",badge:"Conversational Refinement",desc:"Every agent includes Vibe Code mode — a fast, conversational interface for refining generated output in plain language. Describe what you want changed and the AI refines the existing code instead of starting over.",points:['"Add error handling" — wraps every function with appropriate try/catch logic','"Make it more modern" — refactors to latest language idioms and patterns','"Rewrite this with hooks" — converts class components to functional patterns','"Optimise for performance" — applies caching, memoisation, and lazy loading','"Add JSDoc comments" — documents every function without changing behaviour'],extra:"Every Vibe Code iteration is saved as a numbered version. You can branch from any point, roll back to an earlier state, and experiment boldly — knowing you can always recover your last stable output. Sessions automatically inherit your project's Semantic Code Search context, so refinements stay consistent with your codebase."}],OG={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.06}}},DG={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}};function LG(){const{openDemoModal:t}=ot();return y.useEffect(()=>{window.scrollTo(0,0)},[]),e.jsxs("div",{className:"min-h-screen",children:[e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[700px] h-[320px] bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl mx-auto",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(Ue,{className:"h-3 w-3"}),"AI Powered PDLC & SDLC"]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["AI Code Generation,",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Powered by a Team of Specialist Agents"})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl mx-auto mb-4",children:"Most AI coding tools give you one chatbot that tries to do everything. We give you an entire product development team — each agent trained to excel at one part of the process, working together from idea to shipped code."}),e.jsx("p",{className:"text-muted-foreground text-base leading-relaxed max-w-3xl mx-auto",children:"From idea to production code — with an AI team, not just an AI chatbot. Our platform routes every request through specialised AI agents for business requirements, architecture, specs, planning, database design, and code generation — so nothing gets lost between idea and implementation."})]})})]}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(vt,{className:"h-3 w-3"})," 12 Specialist Agents"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"12 Specialised AI Agents, One Workflow"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"Every project moves through purpose-built agents instead of a single generic assistant. Each agent owns its phase and hands off to the next — just like a real product team."})]}
57),e.jsx(v.div,{variants:OG,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-5",children:RG.map(a=>e.jsxs(v.div,{variants:DG,className:"group relative border border-border/60 bg-card rounded-xl p-5 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-primary/8 to-primary/3 opacity-0 group-hover:opacity-100 rounded-xl transition-opacity duration-500"}),e.jsxs("div",{className:"relative",children:[e.jsxs("div",{className:"flex items-start justify-between mb-3",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-9 h-9 rounded-lg bg-primary/10 border border-primary/20 text-primary group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-4 w-4"})}),e.jsx("span",{className:"text-xs font-black text-primary/40 font-mono",children:a.num})]}),e.jsx("h3",{className:"font-bold text-foreground text-sm mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-xs leading-relaxed",children:a.desc})]})]},a.num))})]})}),PG.map((a,r)=>e.jsx("section",{className:`py-20 border-b border-border/40 ${r%2===1?"bg-muted/20":""}`,children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"max-w-3xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-3 py-1.5 rounded-full mb-4",children:[e.jsx(a.icon,{className:"h-3 w-3"}),a.badge]}),e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-4",children:a.title}),e.jsx("p",{className:"text-muted-foreground leading-relaxed mb-6",children:a.desc}),a.points&&e.jsx("div",{className:"space-y-2 mb-6",children:a.points.map(s=>e.jsxs("div",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"h-3.5 w-3.5 mt-0.5 flex-shrink-0 text-primary"}),s]},s))}),a.providers&&e.jsx("div",{className:"flex flex-wrap gap-2 mb-6",children:a.providers.map(s=>e.jsx("span",{className:"text-xs font-semibold px-3 py-1.5 rounded-full bg-primary/10 border border-primary/20 text-primary",children:s},s))}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed italic border-l-2 border-primary/30 pl-4",children:a.extra})]})})},a.id)),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(ge,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"Ship Faster. Ship Smarter."}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"See how XpediOo's AI-powered PDLC & SDLC platform can transform your product development velocity — from first requirement to production release."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const fl={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.07}}},gl={hidden:{opacity:0,y:18},visible:{opacity:1,y:0,transition:{duration:.45,ease:"easeOut"}}},VG={strategy:Hl,capacity:ze,variance:xN,trust:Be},_G=[ei,Pt,nt,Yg,Ya],zG=[Hl,Zs,ji,Ll,Cr],qG={governance:Ue,psa:GM,capacity:ze,delivery:vi,financials:xN,scenarios:ON,reporting:$e,audit:Ya};function Sn({icon:t,children:a,tone:r="primary"}){return e.jsxs("div",{className:`mb-4 inline-flex items-center gap-2 rounded-full border px-4 py-2 text-xs font-semibold uppercase tracking-widest ${r==="violet"?"border-violet-400/25 bg-vi
57olet-500/5 text-violet-500":"border-primary/30 bg-primary/10 text-primary"}`,children:[e.jsx(t,{className:"h-3.5 w-3.5"}),a]})}function Bd({items:t,tone:a="primary"}){return e.jsx("ul",{className:"space-y-3",children:t.map(r=>e.jsxs("li",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:`mt-0.5 h-4 w-4 flex-shrink-0 ${a==="violet"?"text-violet-500":"text-primary"}`}),e.jsx("span",{children:r})]},r))})}function FG(){const{openDemoModal:t}=ot();return y.useEffect(()=>{window.scrollTo(0,0)},[]),e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Program & Project Management | XpediOo"}),e.jsx("meta",{name:"description",content:"XpediOo AI Powered Program & Project Management connects portfolio governance, delivery frameworks, resource capacity, financial controls, and explainable AI forecasting in one enterprise control center."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/program-project-management"}),e.jsx("meta",{property:"og:title",content:"AI Powered Program & Project Management | XpediOo"}),e.jsx("meta",{property:"og:description",content:"Turn strategic priorities into governed plans, align delivery capacity, and surface schedule and budget risk before it becomes variance."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/program-project-management"}),e.jsx("meta",{property:"og:type",content:"website"})]}),e.jsxs("section",{className:"relative overflow-hidden border-b border-border/40 py-24 text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.035]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute left-1/2 top-0 h-96 w-[780px] -translate-x-1/2 rounded-full bg-primary/10 blur-3xl"}),e.jsx("div",{className:"container relative mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"mx-auto max-w-5xl",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center justify-center gap-3",children:[e.jsx(Sn,{icon:Ue,children:"Enterprise delivery control center"}),e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-violet-400/25 bg-violet-500/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-violet-500",children:[e.jsx(be,{className:"h-3.5 w-3.5"}),"AI powered"]})]}),e.jsxs("h1",{className:"mb-6 text-4xl font-bold leading-tight md:text-6xl",children:["Program and project delivery",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"with the whole portfolio in view"})]}),e.jsx("p",{className:"mx-auto mb-4 max-w-3xl text-lg leading-relaxed text-muted-foreground",children:"Turn strategic priorities into governed plans, give delivery teams the capacity and context to execute, and bring every investment conversation back to evidence."}),e.jsx("p",{className:"mx-auto max-w-3xl text-base leading-relaxed text-muted-foreground",children:"XpediOo connects portfolio governance, Agile and traditional delivery, professional-services operations, resources, financial controls, and explainable AI signals in one operating model for PMOs, delivery leaders, and resource managers."}),e.jsx("div",{className:"mt-10 grid grid-cols-2 gap-4 sm:grid-cols-4",children:QF.map(a=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card px-4 py-5",children:[e.jsx("div",{className:"mb-1 text-2xl font-bold text-primary md:text-3xl",children:a.value}),e.jsx("div",{className:"text-xs leading-tight text-muted-foreground",children:a.label})]},a.label))})]})})]}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsx(Sn,{icon:ht,tone:"violet",children:"The operating gap"}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Portfolio confidence cannot come from disconnected status reports"}),e.jsx("p",{className:"text-muted-foreground",children:"When the plan, the people, the money, and the decision history live apart, leaders see variance after the window to respond has narrowed."})]}
57),e.jsx(v.div,{variants:fl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:ZF.map(a=>{const r=VG[a.icon];return e.jsxs(v.article,{variants:gl,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"mb-4 inline-flex rounded-lg bg-violet-500/10 p-3 text-violet-500",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsx("h3",{className:"mb-2 font-semibold",children:a.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:a.body})]},a.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsx(Sn,{icon:nt,children:"One operating loop"}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"From demand to decision, without the handoff fog"}),e.jsx("p",{className:"text-muted-foreground",children:"A connected lifecycle keeps the portfolio responsive while preserving the controls that make enterprise delivery trustworthy."})]}),e.jsx(v.div,{variants:fl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-5",children:iB.map((a,r)=>{const s=_G[r];return e.jsxs(v.article,{variants:gl,className:"relative rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:e.jsx(s,{className:"h-5 w-5"})}),e.jsxs("span",{className:"text-xs font-bold tracking-widest text-primary",children:["0",r+1]})]}),e.jsx("h3",{className:"mb-2 text-lg font-bold",children:a.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:a.body})]},a.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsx(Sn,{icon:ji,children:"Framework coverage"}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Meet teams where delivery actually happens"}),e.jsx("p",{className:"text-muted-foreground",children:"Standardize portfolio governance without flattening the way teams deliver. Use the framework that fits the work and keep the executive signal consistent."})]}),e.jsx(v.div,{variants:fl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:JF.map((a,r)=>{const s=zG[r];return e.jsxs(v.article,{variants:gl,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-5 flex items-start justify-between",children:[e.jsx("div",{className:"rounded-lg bg-primary/10 p-3 text-primary",children:e.jsx(s,{className:"h-5 w-5"})}),e.jsx("span",{className:"rounded-full border border-primary/20 bg-primary/5 px-3 py-1 text-xs font-bold uppercase tracking-widest text-primary",children:a.name})]}),e.jsx("h3",{className:"mb-2 text-xl font-bold",children:a.descriptor}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:a.body}),e.jsx("div",{className:"flex flex-wrap gap-2",children:a.practices.map(l=>e.jsx("span",{className:"rounded-full border border-border/70 bg-muted/30 px-2.5 py-1 text-xs text-muted-foreground",children:l},l))})]},a.name)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsx(Sn,{icon:ge,children:"Built for high-impact operations"}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"The control center for the decisions that change delivery"}),e.jsx("p",{className:"text-muted-foreground",children:"XpediOo brings the operational details and the strategic frame together, so teams can move quickly without creating a second reporting process."})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.section,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-primary/20 bg-card p-3 text-primary",children:e.jsx(ge,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-impact capabilities"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Operational control at portfolio scale"})]})]}),e.jsx(Bd,{items:x3})]}),e.jsxs(v.section,{initial:{opacity:0,x:18},whileInView:{opacity:1,x:0},viewport:{once:!0}
57,className:"rounded-2xl border border-violet-400/25 bg-violet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(be,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"A forecast is useful when teams can act on it"})]})]}),e.jsx(Bd,{items:Rg,tone:"violet"})]})]})]})}),eB.map((a,r)=>{const s=qG[a.id];return e.jsx("section",{className:`border-b border-border/40 py-20 ${r%2===0?"":"bg-muted/20"}`,children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid items-start gap-10 lg:grid-cols-[0.8fr_1.2fr]",children:[e.jsxs(v.div,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"lg:sticky lg:top-24",children:[e.jsx("div",{className:"mb-5 inline-flex rounded-2xl border border-primary/20 bg-primary/5 p-4 text-primary",children:e.jsx(s,{className:"h-7 w-7"})}),e.jsx("div",{className:"mb-3 text-xs font-bold uppercase tracking-widest text-primary",children:a.eyebrow}),e.jsx("h2",{className:"text-3xl font-bold leading-tight md:text-4xl",children:a.title})]}),e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"rounded-2xl border border-border/60 bg-card p-6 md:p-8",children:[e.jsx("p",{className:"mb-7 text-base leading-relaxed text-muted-foreground",children:a.body}),e.jsx(Bd,{items:a.bullets})]})]})})},a.id)}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-8 lg:grid-cols-[1.15fr_0.85fr]",children:[e.jsxs(v.div,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},children:[e.jsx(Sn,{icon:be,tone:"violet",children:"AI forecasting and risk prediction"}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Surface the story behind the signal"}),e.jsx("p",{className:"mb-7 max-w-3xl text-muted-foreground",children:"XpediOo does not turn delivery into a black-box score. It watches the relationships between progress, remaining work, dates, dependencies, capacity, financial movement, and risk signals to help teams focus on the next accountable action."}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2",children:Rg.slice(0,6).map((a,r)=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card p-5",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2 text-sm font-semibold text-violet-500",children:[e.jsx(de,{className:"h-4 w-4"}),"Signal ",String(r+1).padStart(2,"0")]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:a})]},a))})]}),e.jsxs(v.aside,{initial:{opacity:0,x:18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-violet-400/25 bg-violet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(Be,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI governance"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Intelligence with a chain of accountability"})]})]}),e.jsx(Bd,{items:["Show contributing records, assumptions, confidence, and freshness alongside each forecast or risk signal","Keep AI recommendations separate from approved baselines, decisions, and plan changes","Let accountable owners accept, defer, dismiss, or override a recommendation with reason","Record model-assisted activity and human review for audit, learning, and governance"],tone:"violet"})]})]})})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsx(Sn,{icon:Be,children:"Governance by design"}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Move faster without making the record harder to trust"}),e.jsx("p",{className:"text-muted-foreground",children:"The platform is designed for the reality of enterprise delivery: delegated decisions, changing assumptions, multiple frameworks, and a need to explain outcomes later."})]}
57),e.jsx(v.div,{variants:fl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:aB.map((a,r)=>e.jsxs(v.article,{variants:gl,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-primary/10 text-sm font-bold text-primary",children:String(r+1).padStart(2,"0")}),e.jsx("h3",{className:"font-bold",children:a.title})]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:a.body})]},a.title))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsx(Sn,{icon:Ug,children:"What changes for the enterprise"}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"A sharper operating rhythm for every delivery conversation"}),e.jsx("p",{className:"text-muted-foreground",children:"The result is not another dashboard. It is a shared language for choosing, staffing, governing, forecasting, and learning from the work."})]}),e.jsx(v.div,{variants:fl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-4",children:tB.map(a=>e.jsxs(v.article,{variants:gl,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"mb-4 text-xs font-bold uppercase tracking-widest text-primary",children:a.signal}),e.jsx("h3",{className:"mb-3 text-xl font-bold",children:a.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:a.body})]},a.title))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"relative overflow-hidden rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-10 text-center md:p-16",children:[e.jsx("div",{className:"absolute right-0 top-0 h-64 w-64 rounded-full bg-primary/10 blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 h-48 w-48 rounded-full bg-primary/8 blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(It,{className:"mx-auto mb-6 h-12 w-12 text-primary"}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-5xl",children:"Make the next portfolio decision with more context"}),e.jsx("p",{className:"mx-auto mb-8 max-w-2xl text-lg text-muted-foreground",children:"See how XpediOo brings strategy, delivery, capacity, financial control, and explainable AI intelligence into one operating rhythm for your enterprise."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 rounded-lg bg-primary px-10 py-4 text-base font-semibold text-white transition-colors hover:bg-primary/90",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]}),e.jsxs("div",{className:"mt-7 flex flex-wrap items-center justify-center gap-x-6 gap-y-2 text-xs text-muted-foreground",children:[e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(Me,{className:"h-3.5 w-3.5 text-primary"})," Portfolio to project traceability"]}),e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(Me,{className:"h-3.5 w-3.5 text-primary"})," Framework-aware delivery"]}),e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(Me,{className:"h-3.5 w-3.5 text-primary"})," Human-governed AI"]})]})]})]})})})]})}const BG=[{id:"incident",num:"01",icon:ht,title:"Incident Management",badge:"AI Triage & Resolution",desc:"Every second a P1 incident runs unresolved costs money, trust, and engineer sanity. XpediOo's AI Powered Incident Management compresses the full incident lifecycle — from detection to resolution — by automating the triage, routing, and escalation decisions that traditionally consume your team's most valuable time.",points:["Autonomous incident classification — AI reads incoming tickets and assigns priority, c
57ategory, and affected service without human intervention","Intelligent routing — incidents are matched to the right team or individual based on skills, current load, and historical resolution patterns","AI-powered diagnosis — the platform correlates the incident with CMDB data, recent changes, and similar past incidents to surface probable root cause immediately","Auto-escalation with SLA awareness — escalation rules fire automatically when breach thresholds approach, notifying the right stakeholders before the clock runs out","War-room summaries — for major incidents, AI generates live status briefs for executive comms without your engineers having to stop and write updates"]},{id:"service-request",num:"02",icon:Ll,title:"Service Request",badge:"Self-Service at Scale",desc:"Service requests are the highest-volume, lowest-complexity work your service desk handles — yet they consume a disproportionate share of agent time. XpediOo automates fulfilment end-to-end while giving end-users a consumer-grade self-service experience that reduces walk-ups and email chains to zero.",points:["Conversational request intake — users describe what they need in plain language; AI maps it to the right service and pre-populates the form","Automated approval workflows — multi-stage approvals are routed dynamically based on request type, cost threshold, and organisational hierarchy","Fulfilment automation — standard requests (software installs, access provisioning, hardware orders) are fulfilled automatically via integrations with your provisioning and IAM tools","Real-time status visibility — requesters see live progress updates without having to chase the service desk","Continuous deflection — the AI suggests self-service alternatives and knowledge articles before the request is submitted, reducing catalogue volume over time"]},{id:"catalogue",num:"03",icon:qM,title:"Service Catalogue",badge:"Single Source of Truth",desc:"A service catalogue is only as useful as it is current and navigable. XpediOo replaces the static spreadsheet-style catalogue with a living, AI-enriched library that employees can search in plain language and that administrators can maintain with minimal manual effort.",points:["AI-assisted catalogue curation — the platform identifies gaps, duplicates, and stale entries and suggests corrections automatically","Natural language search — users find services by describing what they need, not by knowing the exact catalogue name","Rich service records — each service includes SLA commitments, ownership, dependencies, cost, and linked knowledge articles in one place","Subscription and notification model — users subscribe to services they depen
57d on and receive proactive updates when availability or terms change","Business service mapping — each IT service is linked to the business capabilities it supports, giving IT leaders a clear line of sight to business impact"]},{id:"cmdb",num:"04",icon:Qt,title:"CMDB — Configuration Management Database",badge:"Always-Accurate CI Data",desc:"A CMDB that nobody trusts is worse than no CMDB at all — it generates noise, slows incident diagnosis, and undermines every downstream process that depends on it. XpediOo's AI-driven CMDB keeps configuration item (CI) data accurate automatically by continuously reconciling discovery data against what's actually running in your environment.",points:["Auto-discovery and reconciliation — agents continuously scan your infrastructure and update CI records without manual intervention","Relationship mapping — dependencies between CIs (servers, applications, services, databases) are detected and visualised automatically","Change impact analysis — before any change is approved, the CMDB shows every downstream CI and service that could be affected","Drift detection — when the actual state of infrastructure diverges from the recorded state, the platform raises an alert and proposes a correction","Federated data model — pulls CI data from cloud providers, virtualisation layers, network scanners, and agent-based tools into a single normalised record"]},{id:"problem",num:"05",icon:We,title:"Problem Management",badge:"Eliminate Recurring Failures",desc:"Incident management puts out fires; problem management stops them from starting. XpediOo's AI-powered Problem Management proactively identifies patterns across your incident history, surfaces hidden root causes, and drives permanent fixes before users are impacted again.",points:["Trend analysis — AI continuously analyses incident data to identify recurring failures that indicate an underlying problem","Automatic problem record creation — when a pattern meets defined thresholds, a problem record 
57is raised and linked to all associated incidents automatically","Root cause investigation support — the platform pre-populates problem records with correlated CMDB data, change history, and similar resolved problems to accelerate investigation","Known error database (KEDB) — confirmed root causes and workarounds are published automatically to the knowledge base, reducing repeat incident resolution time","Resolution tracking — problem records stay open and visible until a permanent fix is implemented and verified, preventing premature closure"]},{id:"change",num:"06",icon:Ul,title:"Change Management",badge:"Risk-Scored, Automated Approval",desc:"Change-induced incidents are the most preventable category of service disruption — yet traditional change processes create so much friction that teams route around them. XpediOo makes rigorous change governance frictionless by scoring risk automatically, routing approvals intelligently, and integrating with your existing CI/CD pipelines.",points:["AI risk scoring — every change request receives an automatic risk score based on CI impact, change frequency, implementation window, and historical outcomes for similar changes","Dynamic approval routing — standard changes are auto-approved; normal and emergency changes are routed to the right CAB members based on risk and domain","Conflict detection — the platform flags scheduling conflicts between simultaneous changes and prevents deployment windows from overlapping on shared infrastructure","CI/CD integration — change records can be raised, updated, and closed automatically by your deployment pipeline, eliminating manual handoffs","Post-implementation review — AI compares pre- and post-change metrics to confirm success and detect regression, closing the feedback loop on every change"]},{id:"sla",num:"07",icon:ja,title:"SLA Management",badge:"Breach Prevention, Not Just Reporting",desc:"Most SLA tools tell you when you've already breached. XpediOo predicts breach risk 
57in real time and triggers automated interventions before it happens — shifting SLA management from a compliance reporting exercise to an active service quality control.",points:["Multi-tier SLA/OLA/UC support — define service level targets at every tier: external SLAs with customers, internal OLAs between teams, and underpinning contracts with vendors","Real-time breach prediction — AI monitors remaining time versus current resolution velocity and flags at-risk tickets with enough lead time to intervene","Automated escalation and reassignment — when breach risk is detected, the platform can automatically escalate, reassign, or notify without waiting for a manager to notice","SLA calendar awareness — maintenance windows, business hours, and holiday calendars are respected automatically when calculating time-to-respond and time-to-resolve","SLA analytics and trending — dashboards surface which service categories, teams, and CI types are consistently near breach, enabling systemic improvement rather than firefighting"]},{id:"knowledge",num:"08",icon:_n,title:"Knowledge Management",badge:"AI-Augmented Self-Service",desc:"Knowledge that lives only in people's heads — or buried in SharePoint folders nobody can navigate — doesn't scale. XpediOo turns your organisation's collective expertise into a structured, always-current, AI-searchable knowledge base that deflects tickets, accelerates agent resolution, and shortens new hire onboarding time dramatically.",points:["AI article generation — resolution notes from closed incidents and problems are automatically converted into structured knowledge articles for review and publication","Semantic search — users describe their issue in plain language and the AI surfaces the most relevant article, even when the wording doesn't match the article's exact terminology","Contextual surfacing — knowledge articles are proactively presented to agents while they are working a ticket, based on the incident's category, symptoms, and affected CI","Article lifecycle management — articles are tracked for usage, flagged when they haven't been accessed in 90 days, and automatically sent for review when linked incidents increase","Confidence scoring — AI rates article quality based on how often it successfully deflects or resolves the issues it's linked to, surfacing low-confidence articles for remediation"]},{id:"portfolio",num:"09",icon:$e,title:"Service Portfolio",badge:"Strategic Service Governance",desc:"The service portfolio is the full universe of IT services — active, retired, and in development — that IT manages on behalf of the business. XpediOo gives IT leaders a complete, data-enriched view of the portfolio so they can make investment, retirement, and prioritisation decisions with evidence rather than opinion.",points:["Three-pipeline view — the portfolio is organised into the service pipeline (in development), service catalogue (live), and retired services, with clear governance for transitions between stages","Business value mapping — each service is linked to the business capabilities and processes it enables, making the cost-to-value ratio visible at a glance","Cost and capacity data — actual run costs, resource consumption, and capacity utilisation are pulled from financial and infrastructure systems and surfaced per service","Service health scoring — a composite score aggregates availability, SLA performance, incident volume, and user satisfaction into a single service health indicator","Rationalisation recommendations — AI identifies redundant, underutilised, or high-cost services and flags them for review, supporting IT rationalisation and cost optimisation programmes"]},{id:"release",num:"10",icon:Tr,title:"Release Management",badge:"Controlled, Coordinated Delivery",desc:"Release management is the bridge between change approval and production delivery. XpediOo coordinates the planning, scheduling, and execution of releases across teams — ensuring every release is tracked, tested, and communicated — while integrating natively with your DevOps toolchain so release records reflect reality, not manual updates.",points:["Release planning and scheduling — release records aggregate all constituent changes, assign owners, and establish deployment windows with automated conflict detection","Environment management — the platform tracks the state of dev, test, staging, and production environments and ensures releases progress through the correct gates","Go/no-go decision support — pre-release checklists are completed and verified automatically; AI summarises outstanding risks for the release manager before sign-off","Rollback orchestration — rollback plans are captured at release creation time and can be triggered with a single action if post-deployment monitoring detects a regression","Release analytics — track release frequency, lead time, change failure rate, and mean time to restore — the four DORA metrics — to measure and improve delivery performance over time"]}],HG=[{icon:ge,title:"Autonomous Incident Triage & Routing",desc:"AI reads every incoming incident, assigns the correct priority and category, and routes it to the right resolver group — all before a human agent touches the queue. Average triage time drops from minutes to seconds."},{icon:de,title:"AI-Powered Root Cause Analysis",desc:"Correlates live incident data with CMDB, change history, and monitoring telemetry to surface probable root cause automatically. Engineers start investigating at the right place, not from a blank page."}
57,{icon:$e,title:"Predictive Change Risk Scoring",desc:"Every change request receives an AI-generated risk score before approval, factoring in CI relationships, deployment window, change frequency, and historical failure patterns for similar changes."},{icon:ja,title:"SLA Automation & Escalation",desc:"Real-time breach prediction fires escalation actions automatically — reassignment, manager notification, or priority upgrade — with enough lead time to prevent breach, not just report it."},{icon:_n,title:"Self-Service Knowledge Base with AI Search",desc:"Semantic search surfaces the right article from plain-language descriptions of the problem. AI generates new articles automatically from resolved incident and problem records."}],GG={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.06}}},UG={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}};function XG(){const{openDemoModal:t}=ot();return y.useEffect(()=>{window.scrollTo(0,0)},[]),e.jsxs("div",{className:"min-h-screen",children:[e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[700px] h-[320px] bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl mx-auto",children:[e.jsxs("div",{className:"flex items-center justify-center gap-3 mb-6",children:[e.jsx("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:"100+ AI Features"}),e.jsxs("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:[e.jsx(Xa,{className:"h-3 w-3"})," AI Powered ITSM"]})]}),e.jsx("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:"AI Powered ITSM"}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl mx-auto mb-4",children:"AI-driven ITIL 4 & ITIL 5 compliant service management that streamlines the entire service lifecycle — from first contact to permanent resolution."}),e.jsx("p",{className:"text-muted-foreground text-base leading-relaxed max-w-3xl mx-auto",children:"XpediOo replaces the reactive, ticket-centric service desk with an AI-native platform that predicts incidents, automates fulfilment, keeps your CMDB accurate, and governs change without slowing down delivery."})]})})]}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(WT,{className:"h-3 w-3"})," Core ITIL Modules"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"10 ITIL-Aligned Service Management Modules"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"Every module is ITIL 4 & 5 compliant, AI-augmented, and deeply integrated with the rest of the XpediOo platform — no silos, no manual handoffs."})]}),e.jsx("div",{className:"space-y-6",children:BG.map((a,r)=>e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.05},className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-primary/5 to-transparent opacity-0 group-hover:opacity-100 rounded-xl transition-opacity duration-500 pointer-events-none"}),e.jsxs("div",{className:"flex items-start gap-4 mb-4",children:[e.jsx("div",{className:"flex-shrink-0 inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-1",children:[e.jsx("span",{className:"text-xs font-black text-primary/40 font-mono",children:a.num}),e.jsx("h3",{className:"text-lg font-bold text-foreground",children:a.title}),e.jsx("span",{className:"text-xs font-semibold px-2.5 py-1 rounded-full bg-primary/10 border border-primary/20 text-primary",children:a.badge})]}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]})]}),e.jsx("div",{className:"grid sm:grid-cols-2 gap-x-8 gap-y-2 pl-14",children:a.points.map(s=>e.jsxs("div",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"h-3.5 w-3.5 mt-0.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:s})]},s))})]},a.id))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," AI Layer"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"100+ AI Features Built Into Every Module"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"These aren't bolt-on AI features — they're woven into the core workflows so the platform gets smarter with every ticket, change, and resolution."})]}
vendor: 7,662 bytes, line 57
57),e.jsx(v.div,{variants:GG,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:HG.map(a=>e.jsxs(v.div,{variants:UG,className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4 group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(Xa,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"Transform Your Service Desk with AI"}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"See how XpediOo's AI Powered ITSM reduces incident resolution time, eliminates SLA breaches, and frees your team from repetitive ticket work."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}var $G=y.createContext(void 0);function D3(t){const a=y.useContext($G);return t||a||"ltr"}var Cf="rovingFocusGroup.onEntryFocus",WG={bubbles:!1,cancelable:!0},tc="RovingFocusGroup",[Dg,L3,KG]=qj(tc),[YG,V3]=Ir(tc,[KG]),[QG,ZG]=YG(tc),_3=y.forwardRef((t,a)=>e.jsx(Dg.Provider,{scope:t.__scopeRovingFocusGroup,children:e.jsx(Dg.Slot,{scope:t.__scopeRovingFocusGroup,children:e.jsx(JG,{...t,ref:a})})}));_3.displayName=tc;var JG=y.forwardRef((t,a)=>{const{__scopeRovingFocusGroup:r,orientation:s,loop:l=!1,dir:d,currentTabStopId:u,defaultCurrentTabStopId:p,onCurrentTabStopIdChange:g,onEntryFocus:h,preventScrollOnEntryFocus:x=!1,...b}=t,w=y.useRef(null),N=Bt(a,w),A=D3(d),[k,I]=zu({prop:u,defaultProp:p??null,onChange:g,caller:tc}),[T,E]=y.useState(!1),R=Ka(h),C=L3(r),P=y.useRef(!1),[z,V]=y.useState(0);return y.useEffect(()=>{const D=w.current;if(D)return D.addEventListener(Cf,R),()=>D.removeEventListener(Cf,R)},[R]),e.jsx(QG,{scope:r,orientation:s,dir:A,loop:l,currentTabStopId:k,onItemFocus:y.useCallback(D=>I(D),[I]),onItemShiftTab:y.useCallback(()=>E(!0),[]),onFocusableItemAdd:y.useCallback(()=>V(D=>D+1),[]),onFocusableItemRemove:y.useCallback(()=>V(D=>D-1),[]),children:e.jsx(qe.div,{tabIndex:T||z===0?-1:0,"data-orientation":s,...b,ref:N,style:{outline:"none",...t.style},onMouseDown:He(t.onMouseDown,()=>{P.current=!0}),onFocus:He(t.onFocus,D=>{const K=!P.current;if(D.target===D.currentTarget&&K&&!T){const ne=new CustomEvent(Cf,WG);if(D.currentTarget.dispatchEvent(ne),!ne.defaultPrevented){const le=C().filter(_=>_.focusable),ce=le.find(_=>_.active),ye=le.find(_=>_.id===k),ue=[ce,ye,...le].filter(Boolean).map(_=>_.ref.current);F3(ue,x)}}P.current=!1}),onBlur:He(t.onBlur,()=>E(!1))})})}),z3="RovingFocusGroupItem",q3=y.forwardRef((t,a)=>{const{__scopeRovingFocusGroup:r,focusable:s=!0,active:l=!1,tabStopId:d,children:u,...p}=t,g=$a(),h=d||g,x=ZG(z3,r),b=x.currentTabStopId===h,w=L3(r),{onFocusableItemAdd:N,onFocusableItemRemove:A,currentTabStopId:k}=x;return y.useEffect(()=>{if(s)return N(),()=>A()},[s,N,A]),e.jsx(Dg.ItemSlot,{scope:r,id:h,focusable:s,active:l,children:e.jsx(qe.span,{tabIndex:b?0:-1,"data-orientation":x.orientation,...p,ref:a,onMouseDown:He(t.onMouseDown,I=>{s?x.onItemFocus(h):I.preventDefault()}),onFocus:He(t.onFocus,()=>x.onItemFocus(h)),onKeyDown:He(t.onKeyDown,I=>{if(I.key==="Tab"&&I.shiftKey){x.onItemShiftTab();return}if(I.target!==I.currentTarget)return;const T=aU(I,x.orientation,x.dir);if(T!==void 0){if(I.metaKey||I.ctrlKey||I.altKey||I.shiftKey)return;I.preventDefault();let R=w().filter(C=>C.focusable).map(C=>C.ref.current);if(T==="last")R.reverse();else if(T==="prev"||T==="next"){T==="prev"&&R.reverse();const C=R.indexOf(I.currentTarget);R=x.loop?iU(R,C+1):R.slice(C+1)}setTimeout(()=>F3(R))}}),children:typeof u=="function"?u({isCurrentTabStop:b,hasTabStop:k!=null}):u})})});q3.displayName=z3;var eU={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function tU(t,a){return a!=="rtl"?t:t==="ArrowLeft"?"ArrowRight":t==="ArrowRight"?"ArrowLeft":t}function aU(t,a,r){const s=tU(t.key,r);if(!(a==="vertical"&&["ArrowLeft","ArrowRight"].includes(s))&&!(a==="horizontal"&&["ArrowUp","ArrowDown"].includes(s)))return eU[s]}function F3(t,a=!1){const r=document.activeElement;for(const s of t)if(s===r||(s.focus({preventScroll:a}),document.activeElement!==r))return}function iU(t,a){return t.map((r,s)=>t[(a+s)%t.length])}var nU=_3,rU=q3,um="Tabs",[sU]=Ir(um,[V3]),B3=V3(),[oU,Yx]=sU(um),H3=y.forwardRef((t,a)=>{const{__scopeTabs:r,value:s,onValueChange:l,defaultValue:d,orientation:u="horizontal",dir:p,activationMode:g="automatic",...h}=t,x=D3(p),[b,w]=zu({prop:s,onChange:l,defaultProp:d??"",caller:um});return e.jsx(oU,{scope:r,baseId:$a(),value:b,onValueChange:w,orientation:u,dir:x,activationMode:g,children:e.jsx(qe.div,{dir:x,"data-orientation":u,...h,ref:a})})});H3.displayName=um;var G3="TabsList",U3=y.forwardRef((t,a)=>{const{__scopeTabs:r,loop:s=!0,...l}=t,d=Yx(G3,r),u=B3(r);return e.jsx(nU,{asChild:!0,...u,orientation:d.orientation,dir:d.dir,loop:s,children:e.jsx(qe.div,{role:"tablist","aria-orientation":d.orientation,...l,ref:a})})});U3.displayName=G3;var X3="TabsTrigger",$3=y.forwardRef((t,a)=>{const{__scopeTabs:r,value:s,disabled:l=!1,...d}=t,u=Yx(X3,r),p=B3(r),g=Y3(u.baseId,s),h=Q3(u.baseId,s),x=s===u.value;return e.jsx(rU,{asChild:!0,...p,focusable:!l,active:x,children:e.jsx(qe.button,{type:"button",role:"tab","aria-selected":x,"aria-controls":h,"data-state":x?"active":"inactive","data-disabled":l?"":void 0,disabled:l,id:g,...d,ref:a,onMouseDown:He(t.onMouseDown,b=>{!l&&b.button===0&&b.ctrlKey===!1?u.onValueChange(s):b.preventDefault()}),onKeyDown:He(t.onKeyDown,b=>{[" ","Enter"].includes(b.key)&&u.onValueChange(s)}),onFocus:He(t.onFocus,()=>{const b=u.activationMode!=="manual";!x&&!l&&b&&u.onValueChange(s)})})})});$3.displayName=X3;var W3="TabsContent",K3=y.forwardRef((t,a)=>{const{__scopeTabs:r,value:s,forceMount:l,children:d,...u}=t,p=Yx(W3,r),g=Y3(p.baseId,s),h=Q3(p.baseId,s),x=s===p.value,b=y.useRef(x);return y.useEffect(()=>{const w=requestAnimationFrame(()=>b.current=!1);return()=>cancelAnimationFrame(w)},[]),e.jsx(Vn,{present:l||x,children:({present:w})=>e.jsx(qe.div,{"data-state":x?"active":"inactive","data-orientation":p.orientation,role:"tabpanel","aria-labelledby":g,hidden:!w,id:h,tabIndex:0,...u,ref:a,style:{...t.style,animationDuration:b.current?"0s":void 0},children:w&&d})})});K3.displayName=W3;function Y3(t,a){return`${t}-trigger-${a}`}function Q3(t,a){return`${t}-content-${a}`}var lU=H3,Z3=U3,J3=$3,eS=K3;const cU=lU,tS=y.forwardRef(({className:t,...a},r)=>
57e.jsx(Z3,{ref:r,className:ie("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",t),...a}));tS.displayName=Z3.displayName;const aS=y.forwardRef(({className:t,...a},r)=>e.jsx(J3,{ref:r,className:ie("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",t),...a}));aS.displayName=J3.displayName;const iS=y.forwardRef(({className:t,...a},r)=>e.jsx(eS,{ref:r,className:ie("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",t),...a}));iS.displayName=eS.displayName;const nS=y.forwardRef(({className:t,...a},r)=>e.jsx("div",{className:"relative w-full overflow-auto",children:e.jsx("table",{ref:r,className:ie("w-full caption-bottom text-sm",t),...a})}));nS.displayName="Table";const rS=y.forwardRef(({className:t,...a},r)=>e.jsx("thead",{ref:r,className:ie("[&_tr]:border-b",t),...a}));rS.displayName="TableHeader";const sS=y.forwardRef(({className:t,...a},r)=>e.jsx("tbody",{ref:r,className:ie("[&_tr:last-child]:border-0",t),...a}));sS.displayName="TableBody";const dU=y.forwardRef(({className:t,...a},r)=>e.jsx("tfoot",{ref:r,className:ie("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",t),...a}));dU.displayName="TableFooter";const ou=y.forwardRef(({className:t,...a},r)=>e.jsx("tr",{ref:r,className:ie("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",t),...a}));ou.displayName="TableRow";const wl=y.forwardRef(({className:t,...a},r)=>e.jsx("th",{ref:r,className:ie("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...a}));wl.displayName="TableHead";const Os=y.forwardRef(({className:t,...a},r)=>e.jsx("td",{ref:r,className:ie("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...a}));Os.displayName="TableCell";const uU=y.forwardRef(({className:t,...a},r)=>e.jsx("caption",{ref:r,className:ie("mt-4 text-sm text-muted-foreground",t),...a}));uU.displayName="TableCaption";const jl={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.05}}},Nl={hidden:{opacity:0,y:16},visible:{opacity:1,y:0,transition:{duration:.35,ease:"easeOut"}}};function mU({cards:t}){return e.jsx(v.div,{variants:jl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:t.map(a=>e.jsxs(v.div,{variants:Nl,className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4 group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h4",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-3",children:a.desc}),a.tags&&a.tags.length>0&&e.jsx("div",{className:"flex flex-wrap gap-2",children:a.tags.map(r=>e.jsx("span",{className:"text-xs font-medium px-2 py-0.5 rounded-full bg-primary/10 text-primary border border-primary/20",children:r},r))})]},a.title))})}function pU({callouts:t}){return e.jsx("div",{className:"grid sm:grid-cols-2 gap-4 mt-5",children:t.map(a=>e.jsxs("div",{className:"flex items-start gap-3 rounded-lg border border-primary/20 bg-primary/5 p-5",children:[e.jsx("div",{className:"flex-shrink-0 inline-flex items-center justify-center w-8 h-8 rounded-md bg-primary/10 text-primary",children:e.jsx(a.icon,{className:"h-4 w-4"})}),e.jsxs("div",{children:[e.jsx("h5",{className:"font-semibold text-sm text-foreground mb-1",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]})]},a.title))})}function hU({sub:t}){return e.jsxs("div",{className:"mb-14 last:mb-0",children:[e.jsxs("div",{className:"mb-6",children:[e.jsx("h3",{className:"text-xl md:text-2xl font-bold text-foreground mb-2",children:t.heading}),t.description&&e.jsx("p",{className:"text-muted-foreground text-sm md:text-base leading-relaxed max-w-3xl",children:t.description}),t.stats&&e.jsx("div",{className:"flex flex-wrap gap-3 mt-4",children:t.stats.map(a=>e.jsxs("div",{className:"flex items-baseline gap-1.5 border border-border/60 bg-card px-3 py-1.5 rounded-full text-sm",children:[e.jsx("span",{className:"font-bold text-primary",children:a.value}),e.jsx("span",{className:"text-muted-foreground",children:a.label})]},a.label))})]}),e.jsx(mU,{cards:t.cards}),t.callouts&&e.jsx(pU,{callouts:t.callouts})]})}const fU=[{value:"7+",label:"Integrated Modules"},{value:"100%",label:"Agent & Agentless"},{value:"3",label:"Cloud Providers"},{value:"AI",label:"Across Every Module"}],gU=[{icon:Gl,stat:"$45B+",title:"Annual Software Waste",desc:"Enterprises overspend 30–40% on software licenses through unused seats, duplicate titles, and failed reclamation."},{icon:wN,stat:"60%",title:"of Assets Are Undiscovered",desc:"Unmanaged endpoints, shadow cloud instances, and BYOD devices create invisible attack surfaces and compliance gaps manual audits can't close."},{icon:ht,stat:"Audit Risk",title:"Without Visibility",desc:"Softw
57are publishers increasingly conduct aggressive audits. Without real-time license tracking, organizations face six-figure true-up penalties."},{icon:oa,stat:"Operational Lag",title:"= Breach Risk",desc:"Unmanaged control gaps create avoidable exposure. Without prioritized action, security teams can't keep pace."},{icon:sE,stat:"30–50%",title:"Tool Sprawl Kills Productivity",desc:"Context-switching between CMDB, SAM tools, and cloud portals consumes half of IT operations time."},{icon:LN,stat:"Stale Data",title:"= Bad Decisions",desc:"Quarterly manual audits and weekly scan schedules mean your CMDB is always out of date — and every decision built on it is too."}],xU=[{icon:Gt,label:"Discover",sub:"Agent & Agentless"},{icon:Nr,label:"HAM",sub:"Full Lifecycle"},{icon:Mr,label:"SAM",sub:"License Compliance"},{icon:du,label:"Deliver",sub:"Software Delivery"},{icon:de,label:"AI",sub:"Every Module"},{icon:Gi,label:"Cloud",sub:"AWS / Azure / GCP"}],yU={id:"discovery",label:"Discovery",icon:Gt,title:"See Everything. Miss Nothing.",intro:"A multi-vector discovery engine builds a living, accurate picture of your entire IT estate — hardware, software, cloud, and unmanaged devices — continuously, without requiring full agent deployment across every endpoint.",heroStats:[{value:"5",label:"Discovery Vectors"},{value:"3",label:"Cloud Platforms"},{value:"100+",label:"Hardware Data Points"},{value:"Real-time",label:"Heartbeat Monitoring"}],subsections:[{heading:"Agent-Based Discovery",description:"When installed, the native endpoint agent provides continuous, real-time telemetry that no agentless scan can match — including security posture, running processes, listening ports, and authenticated software usage data.",cards:[{icon:Xa,title:"Complete Hardware Inventory",desc:"CPU, RAM, disk, GPU, BIOS, chassis type, serial number, manufacturer, and model — collected at enrollment and updated on change.",tags:["100+ data points","Change detection"]},{icon:Mr,title:"Software & Application Inventory",desc:"All installed applications with publisher, version, install date, and scope. Tracks MSI, MSIX, AppX, .pkg, .deb, .rpm formats and detects suite components.",tags:["Publisher normalization","Suite detection"]},{icon:Be,title:"Security Posture Collection",desc:"Firewall status, disk encryption, antivirus and definition date, BitLocker/FileVault, TPM presence, Secure Boot, and password policy compliance.",tags:["Real-time","Framework-mapped"]},{icon:vi,title:"Network & Port Monitoring",desc:"Listening TCP/UDP ports mapped to owning processes, adapter configuration, VPN detection, Wi-Fi SSID, and proxy settings for Zero Trust readiness.",tags:["Process mapping","VPN-aware"]},{icon:$e,title:"Application Usage Analytics",desc:"Foreground focus time, launch frequency, and last-used date — the raw data powering SAM reclamation and software adoption insights.",tags:["Focus-time tracking","Privacy-safe"]}],callouts:[{icon:hN,title:"Agent Lifecycle Management",desc:"A built-in agent version management console — deploy, update, and retire agents at scale, with automated upgrade rings to roll out new versions safely."}]},{heading:"Agentless Discovery",description:"Legacy servers, restricted production systems, network infrastructure, and contractor devices all require a different approach. The agentless engine uses SSH (Linux/macOS) and WinRM (Windows) to probe, discover, and — optionally — remotely install the full agent.",cards:[{icon:Tn,title:"SSH / WinRM Probing",desc:"SSH probing for Linux, Unix, macOS, and network devices; WinRM/PowerShell probing for Windows servers and workstations."},{icon:Gu,title:"Credential Profile Security",desc:"Credentials encrypted at rest, mapped by IP range or domain. Supports username/password, SSH key-based auth, and Kerberos with role-based access."},{icon:gN,title:"Scheduled & On-Demand Jobs",desc:"Configurable scope with real-time job progress, per-host probe logs, and failure diagnostics."},{icon:vi,title:"Network Segment Sweep",desc:"Finds previously unknown devices and automatically escalates to agent deployment once contact is made."},{icon:Lw,title:"Discovery Probes",desc:"Pre-built, versioned probe templates for Windows, Linux, macOS, VMware, Cisco IOS, and generic SSH devices — fully customizable."},{icon:Xg,title:"Guided Job Creation Wizard",desc:"A multi-step wizard walks operators through scope, credentials, probe timeout/retry, and scheduling with live validation."}]},{heading:"Cloud Discovery",description:"Cloud sprawl is the fastest-growing source of unmanaged assets and unexpected spend. Native integrations pull asset inventory, configuration state, security findings, and cost data from AWS, Azure, and GCP — unified in the same repository as on-premises endpoints.",cards:[{icon:Gi,title:"Amazon Web Services (AWS)",desc:"EC2, RDS, S3, and Lambda inventory; IAM policy review; Cost Explorer spend attribution; Security Hub findings mapped to assets; tag-based ownership."},{icon:Gi,title:"Microsoft Azure",desc:"VM/VMSS/AKS inventory; subscription hierarchy; Azure Defender alerts; Cost Management integration; Managed Disk, Key Vault, and Storage inventory; Entra ID correlation."},{icon:Gi,title:"Google Cloud Platform (GCP)",desc:"Compute Engine, GKE, and Cloud Run inventory; org hierarchy; Security Command Center findings; billing export and committed-use tracking; label-based policy groups."}],callouts:[{icon:Tn,title:"All Assets. One Repository.",desc:"Cloud instances, on-premises servers, and employee laptops all flow into the same Central Asset Repository — enabling unified search and consistent lifecycle governance regardless of where the asset lives."}]},{heading:"Discovery Data Quality & CMDB Health",description:"The most common failure mode of asset management programs isn't lack of discovery — it's poor data quality. A built-in CMDB health dashboard measures, scores, and actively reports on data completeness and accuracy.",cards:[{icon:Me,title:"Discovery Coverage Score",desc:"A live percentage showing what fraction of known network segments have at least one discovered asset, with one-click probe creation to close gaps."},{icon:AN,title:"Duplicate Serial Detection",desc:"Automatic detection of duplicate hardware records from re-imaging, VM cloning, or import errors — with a merge or dismiss workflow."},{icon:qR,title:"Normalization Accuracy Reporting",desc:"Tracks the percentage of records with 
57normalized manufacturer, model, and OS version, listing exceptions with suggested corrections."},{icon:ja,title:"Stale Endpoint Reporting",desc:"Endpoints with no heartbeat for 30+ days are flagged automatically, with drill-down by OS, site, or department and bulk cleanup actions."},{icon:Ht,title:"Missing Hardware Profile Detection",desc:"Identifies assets missing critical fields (CPU, RAM, storage) from limited scans or failed collection, triggering targeted re-discovery."},{icon:_T,title:"Full Export & Audit Trail",desc:"Every discovery result, normalization change, and data-quality action is logged with actor and timestamp, exportable for external audit or BI."}]},{heading:"Discovery Scripting",description:"No vendor can anticipate every data point every enterprise needs. A scripting engine lets your team write, test, version, and deploy custom discovery scripts that collect any data expressible in PowerShell or Bash.",cards:[{icon:wi,title:"Script Authoring & Editor",desc:"Built-in code editor with syntax highlighting for PowerShell and Bash. Supports parameterized scripts and structured JSON return payloads mapped to custom fields."},{icon:Lw,title:"Validation & Live Testing",desc:"Test any script against a real managed endpoint before publishing, with live output preview, error capture, and runtime profiling."},{icon:oP,title:"Script Marketplace",desc:"A curated library of pre-built discovery scripts — from BIOS firmware collection to custom configuration audits — ready to import and fork."}]}]},bU={id:"ham",label:"Hardware (HAM)",icon:Nr,title:"Complete Control of Your Hardware Estate",intro:"Raw discovery data becomes an actionable, governed hardware estate — with full lifecycle tracking, ownership accountability, site management, and proactive refresh planning.",subsections:[{heading:"Asset Lifecycle — From Procurement to Disposal",description:"A hardware asset's lifecycle isn't just about where it is today — it's about where it's been, what it costs, and when it needs to be replaced.",cards:[{icon:Mr,title:"Procurement & Intake",desc:"Assets enter via discovery auto-enrollment or manual intake, with serial numbers, purchase dates, and warranty data recorded from day one."},{icon:Gt,title:"Discovery & Normalization",desc:"Agent or agentless discovery populates the full hardware profile, with normalization mapping raw vendor strings to canonical names."},{icon:ze,title:"Assignment & Accountability",desc:"Devices are assigned to users and sites, with mismatch detection catching device sharing, unauthorized transfers, and ghost assets."},{icon:Yi,title:"Active Operations",desc:"Compliance, maintenance windows, software delivery, and remote control — every action logged against the asset record."},{icon:ct,title:"Aging & Refresh Planning",desc:"AI-powered risk scoring identifies hardware approaching end-of-life by age, failure indicators, and cost — before failures occur."},{icon:Wf,title:"Retirement & Disposal",desc:"Secure remote wipe for Windows, macOS, iOS, and Android, with chain-of-custody capture for regulatory requirements."}]},{heading:"Lifecycle & Financial Tracking",cards:[{icon:Xg,title:"Central Asset Repository",desc:"A single, searchable repository of every known asset, with configurable columns, custom filters, and grouping by department, site, OS, or manufacturer.",tags:["Configurable columns","Export"]},{icon:SN,title:"Asset Change Log",desc:"Every attribute change — configuration, assignment, software installs, and status — is captured in a searchable, exportable, immutable log.",tags:["Immutable log","Actor attribution"]},{icon:$e,title:"Hardware Variance Auditing",desc:"Compares discovered configuration against expected baselines, flagging removed RAM, changed storage, or model mismatches indicating tampering.",tags:["Baseline comparison","Change alerts"]},{icon:jN,title:"Warranty & Financial Tracking",desc:"Warranty expiry with configurable alert thresholds, alongside purchase price, depreciated value, and replacement cost estimates.",tags:["Expiry alerts","Financial records"]}]},{heading:"Asset Tracking & Accountability",description:"Asset accountability is a governance and audit requirement — made automatic, not a manual spreadsheet process.",cards:[{icon:ze,title:"Device Groups",desc:"Dynamic or static groups based on OS, site, department, softw
57are inventory, compliance, or custom attributes — driving targeted deployments and reporting."},{icon:ht,title:"User-Asset Mismatch Detection",desc:"Compares the authenticated user at last check-in against the assigned owner, catching hot-desking violations and ghost assets consuming licenses."},{icon:Gt,title:"Unmanaged Asset Queue",desc:"Devices discovered without a managed record are queued for operators to review, classify, enroll, or exclude with a documented reason."}],callouts:[{icon:mN,title:"Exclusion & Access Rules",desc:"Define discovery exclusion rules to keep specific IP ranges, device types, or asset classes out of the managed estate — useful for OT networks or lab environments."}]},{heading:"Geolocation & Site Management",description:"An interactive Asset Map brings geographic context to asset management — plotting every site, device, and remote worker with health overlays and geo-fence zones.",cards:[{icon:Kg,title:"Site Management",desc:"Create and manage sites with addresses, coordinates, timezone, device capacity, and geo-fence radius. Site health rolls up from device compliance."},{icon:ei,title:"Geo-Fence Zones",desc:"Configurable geo-fence radius per site, visualized to scale — a critical control for mobile and field asset governance."},{icon:IN,title:"WFH & Remote Device Layer",desc:"Remote and work-from-home devices plotted by region, colored by compliance status, with per-device tooltips."},{icon:RT,title:"Platform Drill-In",desc:"Click any site to scatter individual device dots colored by platform or compliance status, with filter chips to isolate OS types."},{icon:It,title:"Capacity Rings",desc:"Dashed capacity ring markers scale to each site's device capacity, shifting from green to red as utilization climbs."},{icon:YE,title:"Risk Overlay Modes",desc:"Switch instantly between Health and Compliance overlay modes to answer different operational questions from the same map."}]},{heading:"Endpoint Operations & Control",description:"Act directly on managed endpoints from a single console — no VPNs, remote desktop tools, or manual ticketing required.",cards:[{icon:Zs,title:"Maintenance Windows & Scheduling",desc:"Software delivery and reboots respect configured windows by group, site, or device — with AI predicting the optimal window from usage patterns."},{icon:CR,title:"Power Management",desc:"Fleet-wide shutdown, sleep, and hibernate policies, Wake-on-LAN for after-hours maintenance, and energy cost savings reporting."},{icon:zn,title:"Reboot Management",desc:"Targeted or fleet-wide scheduling with notifications, grace periods, forced-reboot escalation, and post-reboot compliance reporting."},{icon:Wf,title:"Remote Uninstall",desc:"Remotely uninstall any software with no console access needed — used for prohibited software removal, reclamation, and security response."},{icon:DT,title:"OS Image Management",desc:"A library of approved OS images for bare-metal provisioning and re-imaging, with versioning and deployment job integration."}]}]},vU={id:"sam",label:"Software (SAM)",icon:Mr,title:"Govern Every License. Eliminate Every Risk.",intro:"Software license compliance is the most financially significant IT governance challenge most organizations face. Raw software inventory is transformed into a governed, compliance-ready license estate — from normalization through entitlement matching, usage analysis, and reclamation.",subsections:[{heading:"Software Catalog & Normalization",description:"Raw software inventory is messy — the same application can appear under dozens of names across your fleet. A normalization engine standardizes this data automatically.",cards:[{icon:AN,title:"Normalization Engine",desc:"Publisher name normalization, product deduplication across version variants, suite component detection, and platform-specific title reconciliation."},{icon:VM,title:"Software Categories",desc:"Every normalized title is auto-categorized — Productivity, Development, Security, Remote Access, Communication, Creative — driving policy and spend analysis."},{icon:Gt,title:"Central Software Search",desc:"Search the entire estate for any title in seconds — install c
57ount, device totals, version distribution, publisher, and compliance status."},{icon:Ll,title:"Dynamic Software Views",desc:'Configurable saved perspectives — e.g. "All Adobe titles by department" or "Unapproved remote access tools" — for recurring reviews.'}]},{heading:"License Management & Compliance",description:"A real-time license position — the difference between purchased entitlements and deployed installations — calculated continuously, so audit surprises become a thing of the past.",cards:[{icon:Ht,title:"Entitlement Records",desc:"Purchase orders, subscriptions, volume licenses, and OEM entitlements with quantity, metric type, dates, and vendor contacts, auto-consolidated."},{icon:Gu,title:"License Position Calculation",desc:"Continuous reconciliation of entitlements vs. installations, shown as compliant, at-risk (within 10%), or non-compliant with exact figures."},{icon:ht,title:"Compliance Alerting",desc:"Configurable threshold alerts before a title exceeds its licensed quantity, routed by category, publisher, or assigned SAM owner."},{icon:Zs,title:"Subscription Expiry Tracking",desc:"Renewal dates tracked with configurable lead-time alerts (30/60/90 days), integrated with usage data to flag non-renewal candidates."},{icon:$e,title:"Multi-Framework Compliance Reporting",desc:"Compliance scores mapped to ISO/IEC 19770, BSA standards, and custom policies — the evidence base for internal and external audits."},{icon:jN,title:"Audit Defence Package",desc:"Point-in-time Effective License Position (ELP) reports, timestamped and formatted to standards expected by Microsoft, Adobe, and Oracle."}]},{heading:"Usage Analytics & Reclamation",description:"Usage data turns SAM from a static compliance tool into an active cost-optimization engine, recovering underused license spend automatically.",cards:[{icon:ja,title:"Application Focus Time Tracking",desc:"Measures actual foreground focus time per application — not just process presence — for a far more accurate utilization metric.",tags:["Focus time","Last used","Launch frequency"]},{icon:Gl,title:"Reclamation Workflow",desc:"Identifies devices where a license hasn't been used in a configurable period (default 90 days), notifies the user, then auto-uninstalls if unconfirmed.",tags:["Automated","User notification","Audit logged"]},{icon:Ug,title:"Utilisation Dashboards",desc:"Per-title dashboards showing the distribution of heavy, moderate, light, and zero users — helping right-size tiers and identify downgrades."},{icon:LN,title:"Cost Anomaly Detection",desc:"AI compares expected spend against entitlement costs and usage, surfacing spikes, duplicate purchases, and over-grown subscriptions before they hit budget."}]},{heading:"Shadow IT & Risk Control",description:"Unauthorized software is simultaneously a license risk, a security threat, and a governance liability — detected, reported, and remediated automatically.",cards:[{icon:mN,title:"Prohibited S
57oftware Detection",desc:"Flags devices with cryptominers, remote access tools, P2P clients, or competitor software, triggering automatic remediation via uninstall or notification."},{icon:dE,title:"Ghost Software Residue Detection",desc:"Identifies and cleans registry keys, service entries, and config files left behind by incomplete uninstalls that can inflate license positions."},{icon:vi,title:"Browser Extension Telemetry",desc:"Discovers and inventories extensions across Chrome, Edge, and Firefox — an often overlooked attack surface for data exfiltration and credential theft."},{icon:Ll,title:"Application Allowlist & Policy",desc:"Per-group allowlists and enforcement policies from passive reporting to active blocking via script policy execution."}]}]},wU={id:"delivery",label:"Delivery",icon:du,title:"Stage, Deploy, and Deliver Software at Enterprise Scale",intro:"The complete software distribution lifecycle — from package onboarding through staged ring deployment across the fleet — with agentless fallback for endpoints that haven't enrolled in full management. Packages, scripts, and policies all flow through the same delivery engine.",subsections:[{heading:"Package Library & Deployment",description:"Every piece of software delivered to your fleet should be approved, tested, and traceable — a governed, auditable supply chain replacing ad-hoc file shares.",cards:[{icon:Mr,title:"Package Onboarding",desc:"Upload MSI, MSIX, EXE, PKG, DEB, RPM, ZIP with metadata and install arguments. Hash verification and approval workflows gate production deployment."},{icon:ei,title:"Targeted Deployment Jobs",desc:"Device group, individual device, site, or OS-type targeting with configurable install conditions to prevent failed deployments and wasted bandwidth."},{icon:zE,title:"Dependency Resolution",desc:"Package dependencies are automatically sequenced, with circular dependency detection at job creation time before any packages are dispatched."},{icon:$e,title:"Deployment Monitoring",desc:"Real-time dashboards show Pending, Downloading, Installing, Succeeded, and Failed states, with exit codes and batch retry for failures."},{icon:du,title:"Quick Deploy",desc:"A one-click Quick Deploy from the catalog for urgent software packages or one-off installs, still requiring explicit device targeting."},{icon:Pt,title:"Deployment History & Compliance",desc:"Every action permanently logged — package version, scope, operator, and outcome — showing what was installed as of any historical date."}]},{heading:"Distribution & Ring Staging",description:"Deploying large packages to thousands of endpoints simultaneously can cripple network performance. Distribution points cache packages at the edge before deployment begins.",cards:[{icon:BR,title:"Satellite Distribution Points",desc:"Local caches that download packages once from the central repository and serve endpoints over LAN, with live cache inventory and sync status."},{icon:hT,title:"Ring-Based Deployment",desc:"Staged promotion — Canary (1–5%), Pilot (10–20%), then Broad — with automated holds and rollback based on success-rate thresholds."},{icon:ZM,title:"Agentless Delivery",desc:"For endpoints without an agent, SSH or WinRM push packages, execute installers, and verify completion — extending reach to servers and kiosks."}]}]},jU={id:"ai",label:"AI Intelligence",icon:de,title:"AI That Works With Your Team, Not Instead of It",intro:"AI is embedded throughout the platform — not an add-on chatbot. Each engine is purpose-built for a specific operational domain, produces explainable recommendations with confidence scoring, and requires human approval before any automated action. Governance first, intelligence always.",subsections:[{heading:"Six AI Engines, One Governed Platform",cards:[{icon:ct,title:"Asset Risk Intelligence",desc:"Continuous multi-factor device risk scoring across age, compliance gaps, usage anomalies, and hardware health signals."},{icon:Be,title:"Compliance Gap Analysis",desc:"Multi-framework compliance scoring with AI-generated remediation playbooks prioritized by risk 
57impact and effort."},{icon:Yi,title:"Self-Healing Operations",desc:"Anomaly detection with automated remediation proposals — configuration drift, performance degradation, and recurring failures resolved early."},{icon:ra,title:"Natural Language Query",desc:"Ask questions about your estate in plain English and get structured, filterable results backed by real-time data."}]},{heading:"Asset Risk AI",description:"Not all risks are equal. Multiple signal sources combine into ranked, actionable priority lists so operations teams focus where it matters most.",cards:[{icon:It,title:"Multi-Factor Risk Scoring",desc:"Each device receives a continuous 0–100 risk score from age, compliance status, security posture, behaviour anomalies, and hardware failure indicators — updating automatically as conditions change.",tags:["Explainable","Continuous","Actionable"]}],callouts:[{icon:be,title:"Score Breakdown",desc:"Every risk score comes with a component breakdown — operators see exactly how much each factor contributed and can drill directly to the underlying data. AI is never a black box."},{icon:ct,title:"Rank Change Badges",desc:"The AI Priority list persists rank positions across refreshes. When an asset's rank shifts, an up/down badge shows the delta for instant situational awareness."}]},{heading:"Compliance & Operations AI",cards:[{icon:Be,title:"Multi-Framework Compliance Gap Analysis",desc:"Maps endpoint compliance against CIS Benchmarks, NIST CSF, ISO 27001, and custom policies — identifying failing controls, generating prioritized remediation playbooks, estimating effort, tracking trend, and producing audit-ready evidence."}],callouts:[{icon:ra,title:"AI Policy Author",desc:"Describe a compliance requirement in natural language and the AI drafts the technical check definition — evaluated across your fleet with no manual scripting required."}]},{heading:"Self-Healing & Operations AI",description:"The highest-value AI use case in IT operations isn't analysis — it's prevention. These engines detect anomalies and predict failures before they generate helpdesk tickets.",cards:[{icon:Xl,title:"Configuration Drift Detection",desc:"Continuous comparison against known-good baselines, with severity-classified drift events and AI-recommended remediation pending human approval."},{icon:Zs,title:"Predictive Maintenance Windows",desc:"Analyzes historical usage patterns to predict the optimal maintenance window per device, enabling fleet-level scheduling optimization."},{icon:vt,title:"AI Remediation Engine",desc:"Generates executable remediation proposals — scripts, policies, or deployments — with confidence scores; approved proposals dispatch as standard fleet jobs."},{icon:Gl,title:"Cloud Cost Anomaly Detection",desc:"Monitors cloud spend against historical baselines and commitments, surfacing unexpected instances and orphaned resources within hours."},{icon:ra,title:"Employee Help Desk Copilot",desc:"A conversational AI assistant answering device-status questions, guiding self-service remediation, and escalating to IT with full context."},{icon:Ht,title:"Executive Briefing Generator",desc:"Generates plain-language briefings from estate data — risk posture, compliance, cost anomalies, and priorities — formatted for CIO, CISO, and CFO audiences."}]}]},Mf=[yU,bU,vU,wU,jU],NU=[{group:"Discovery",rows:[{capability:"Native endpoint agent",xpedioo:"Built-in",flexera:"Flexera Agent",servicenow:"Via MID Server"},{capability:"Agentless SSH/WinRM discovery",xpedioo:"Native",flexera:"Available",servicenow:"MID Server"},{capability:"Cloud discovery (AWS/Azure/GCP)",xpedioo:"All three, native",flexera:"All three",servicenow:"All three"},{capability:"CMDB data quality dashboard",xpedioo:"Built-in, live",flexera:"Limited",servicenow:"Via CSDM only"},{capability:"Discovery scripting engine",xpedioo:"Full IDE + marketplace",flexera:"Limited templates",servicenow:"Pattern-based only"}]},{group:"Hardware Asset Management",rows:[{capability:"Full hardware lifecycle management",xpedioo:"End-to-end",flexera:"Available",servicenow:"HAM Pro"},{capability:"Geographic asset map",xpedioo:"Interactive, real-time",flexera:"no",servicenow:"Basic sites only"},{capability:"Hardware variance/drift detection",xpedioo:"Automated auditing",flexera:"no",servicenow:"CI drift alerts only"}]}
57,{group:"Software Asset Management",rows:[{capability:"Software normalization library",xpedioo:"Continuous",flexera:"Technopedia",servicenow:"Requires Technopedia"},{capability:"License position calculation",xpedioo:"Real-time",flexera:"Industry-leading",servicenow:"SAM Pro"},{capability:"Usage-based reclamation",xpedioo:"Focus-time tracking",flexera:"Available",servicenow:"Basic last-used"},{capability:"Ghost software residue cleanup",xpedioo:"Automated detection",flexera:"partial",servicenow:"no"},{capability:"Browser extension telemetry",xpedioo:"Chrome/Edge/Firefox",flexera:"no",servicenow:"no"}]},{group:"AI & Intelligence",rows:[{capability:"Natural language asset query",xpedioo:"Built-in NL engine",flexera:"no",servicenow:"Now Intelligence only"},{capability:"Self-healing / anomaly remediation",xpedioo:"With approval gates",flexera:"no",servicenow:"AIOps (add-on)"},{capability:"Explainable AI with confidence scores",xpedioo:"Every recommendation",flexera:"no",servicenow:"Partial (NLQ)"}]},{group:"Platform",rows:[{capability:"Implementation complexity",xpedioo:"Low — unified platform",flexera:"High — modular",servicenow:"Very high — multi-product"},{capability:"Pricing model",xpedioo:"Per device, transparent",flexera:"Per device + modules",servicenow:"Complex per-user + SKUs"}]}],AU=["Only platform with HAM + SAM + Delivery + AI in one product","Real-time CMDB health scoring — not a quarterly audit process",'Focus-time application usage — not just "was it open?"',"Continuous asset risk scoring with explainable recommendations","Natural language fleet queries without professional services","Geographic asset map with geo-fence and WFH device visibility"];function Tf({value:t}){return t==="no"?e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-muted-foreground/70 text-sm",children:[e.jsx(bT,{className:"h-4 w-4"})," Not available"]}):t==="partial"?e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-amber-600 dark:text-amber-400 text-sm",children:[e.jsx(dR,{className:"h-4 w-4"})," Partial"]}):e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-sm text-foreground",children:[e.jsx(Me,{className:"h-4 w-4 text-primary flex-shrink-0"})," ",t]})}const kU=[{value:"30%",label:"Average software cost reduction via reclamation"},{value:"60%",label:"Reduction in audit preparation time"},{value:"45%",label:"Fewer L1 helpdesk tickets via self-healing"},{value:"3×",label:"Faster asset operations with AI prioritization"}],SU=[{icon:Gl,title:"Software Cost Savings",desc:"Usage-based reclamation identifies unused licenses for return or non-renewal. Ghost residue cleanup corrects inflated position reports. Customers typically recover 25–35% of their software budget in year one."},{icon:Be,title:"Audit Risk Reduction",desc:"Continuous license position monitoring eliminates the discovery phase of publisher audits. Point-in-time ELP reports cut response time from weeks to hours, virtually eliminating six-figure true-up penalties."},{icon:It,title:"Operational Efficiency",desc:"Consolidating 4–7 tools into one platform eliminates context-switching overhead. Customers report 40–60% reduction in time spent on routine asset administration."},{icon:oa,title:"Risk Reduction",desc:"Continuous discovery and prioritized remediation help surface high-risk assets early and eliminate unmanaged endpoint blind spots."},{icon:ct,title:"Hardware Refresh Savings",desc:"AI risk scoring identifies which devices genuinely need replacement vs. another cycle, saving 15–25% on refresh costs through bulk purchasing over emergency orders."},{icon:ze,title:"Employee Productivity",desc:"Endpoint and application insights identify degrading performance early, enabling remediation before users notice. Each prevented incident saves roughly 2.4 hours of employee and IT time."}];function IU(){const{openDemoModal:t}=ot(),[a,r]=y.useState(Mf[0].id);return y.useEffect(()=>{window.scrollTo(0,0)},[]),e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered IT Asset Management | XpediOo — Intelligent ITAM Platform"}),e.jsx("meta",{name:"description",content:"Xpedioo unifies Hardware Asset Management, Software Asset Management, Discovery, Softw
57are Delivery, and AI-powered intelligence into a single platform — replacing fragmented tools with a living, governed IT estate."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/itam"}),e.jsx("meta",{property:"og:title",content:"AI Powered IT Asset Management | XpediOo"}),e.jsx("meta",{property:"og:description",content:"One platform, every asset, complete intelligence — discovery, hardware and software asset management, software delivery, and AI, unified."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/itam"}),e.jsx("meta",{property:"og:image",content:"https://xpedioo.ai/opengraph.jpg"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"AI Powered IT Asset Management | XpediOo"}),e.jsx("meta",{name:"twitter:description",content:"One platform, every asset, complete intelligence — discovery, hardware and software asset management, software delivery, and AI, unified."}),e.jsx("meta",{name:"twitter:image",content:"https://xpedioo.ai/opengraph.jpg"})]}),e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[700px] h-[320px] bg-primary/10 rounded-full blur-3xl"}),e.jsxs("div",{className:"container mx-auto px-4 md:px-6 relative",children:[e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl mx-auto",children:[e.jsxs("div",{className:"flex items-center justify-center gap-3 mb-6 flex-wrap",children:[e.jsx("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:"50+ AI Features"}),e.jsxs("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:[e.jsx(Nr,{className:"h-3 w-3"})," AI Powered ITAM"]})]}),e.jsx("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:"AI Powered IT Asset Management"}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl mx-auto mb-4",children:"The intelligent asset management platform built for modern enterprise IT."}),e.jsx("p",{className:"text-muted-foreground text-base leading-relaxed max-w-3xl mx-auto",children:"XpediOo unifies Hardware Asset Management, Software Asset Management, Discovery, Software Delivery, and AI-powered intelligence into a single platform — replacing fragmented tools and manual processes with a living, governed IT estate."})]}),e.jsx(v.div,{initial:{opacity:0}
57,animate:{opacity:1},transition:{delay:.3},className:"mt-10 grid grid-cols-2 sm:grid-cols-4 gap-4 max-w-2xl mx-auto",children:fU.map(s=>e.jsxs("div",{className:"border border-border/60 bg-card rounded-xl px-4 py-4",children:[e.jsx("div",{className:"text-2xl md:text-3xl font-bold text-primary mb-1",children:s.value}),e.jsx("div",{className:"text-xs text-muted-foreground leading-tight",children:s.label})]},s.label))})]})]}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"mb-12 text-center max-w-3xl mx-auto",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(ht,{className:"h-3 w-3"})," The IT Asset Challenge"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Why Legacy IT Asset Tools Fail Modern Enterprises"}),e.jsx("p",{className:"text-muted-foreground",children:"The average enterprise runs 4–7 separate tools to manage hardware assets, software licenses, compliance, and cloud spend. The result: data gaps, audit failures, overspending, and operational blind spots."})]}),e.jsx(v.div,{variants:jl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5 mb-10",children:gU.map(s=>e.jsxs(v.div,{variants:Nl,className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-destructive/10 text-destructive mb-4",children:e.jsx(s.icon,{className:"h-5 w-5"})}),e.jsx("div",{className:"text-lg font-bold text-foreground mb-1",children:s.stat}),e.jsx("h4",{className:"font-semibold text-sm text-foreground mb-2",children:s.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:s.desc})]},s.title))}),e.jsx(v.p,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center text-foreground font-medium max-w-2xl mx-auto",children:"XpediOo's answer: replace the tool stack with a single continuous-intelligence platform that discovers, tracks, governs, and delivers across every asset type — from endpoint to cloud — with AI that turns data into decisions."})]})}),e.jsx("section",{className:"py-16 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-10",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-2",children:"One Platform. Every Asset. Complete Intelligence."}),e.jsx("p",{className:"text-muted-foreground max-w-2xl mx-auto",children:"Purpose-built for enterprise complexity — multi-tenant, multi-domain, role-based, with policy enforcement baked into every workflow rather than bolted on."})]}),e.jsx(v.div,{variants:jl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-6 gap-4",children:xU.map(s=>e.jsxs(v.div,{variants:Nl,className:"flex flex-col items-center text-center gap-2 border border-border/60 bg-card rounded-xl p-5",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary",children:e.jsx(s.icon,{className:"h-5 w-5"})}),e.jsx("div",{className:"font-bold text-sm text-foreground",children:s.label}),e.jsx("div",{className:"text-xs text-muted-foreground",children:s.sub})]},s.label))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-10",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(hN,{className:"h-3 w-3"})," Product Deep Dive"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"Explore Every Module"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"Five integrated pillars — Discovery, Hardware Asset Management, Software Asset Management, Software Delivery, and AI Intelligence — each deeply cross-linked to the same Central Asset Repository."})]}),e.jsxs(cU,{value:a,onValueChange:r,children:[e.jsx(tS,{className:"flex flex-wrap h-auto gap-1 bg-muted/60 p-1.5 mb-10 w-full sm:w-auto",children:Mf.map(s=>e.jsxs(aS,{value:s.id,className:"flex items-center gap-1.5 px-3.5 py-2 text-sm",children:[e.jsx(s.icon,{className:"h-3.5 w-3.5"}),s.label]},s.id))}),e.jsx(Mn,{mode:"wait",children:Mf.map(s=>a===s.id?e.jsx(iS,{value:s.id,forceMount:!0,children:e.jsxs(v.div,{initial:{opacity:0,y:10}
57,animate:{opacity:1,y:0},exit:{opacity:0},transition:{duration:.3},children:[e.jsxs("div",{className:"mb-10 max-w-3xl",children:[e.jsx("h3",{className:"text-2xl md:text-3xl font-bold mb-3",children:s.title}),e.jsx("p",{className:"text-muted-foreground leading-relaxed",children:s.intro}),s.heroStats&&e.jsx("div",{className:"flex flex-wrap gap-3 mt-5",children:s.heroStats.map(l=>e.jsxs("div",{className:"flex items-baseline gap-1.5 border border-border/60 bg-card px-3 py-1.5 rounded-full text-sm",children:[e.jsx("span",{className:"font-bold text-primary",children:l.value}),e.jsx("span",{className:"text-muted-foreground",children:l.label})]},l.label))})]}),s.subsections.map(l=>e.jsx(hU,{sub:l},l.heading))]})},s.id):null)})]})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-10",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(zw,{className:"h-3 w-3"})," Competitive Analysis"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"XpediOo vs. Flexera One vs. ServiceNow ITAM"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"Flexera One and ServiceNow ITAM are the incumbent leaders in enterprise SAM and ITAM. Here's how XpediOo compares across the capabilities that matter most to modern IT operations teams."})]}),e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"border border-border/60 rounded-xl overflow-hidden bg-card mb-10",children:e.jsxs(nS,{children:[e.jsx(rS,{children:e.jsxs(ou,{className:"bg-muted/40 hover:bg-muted/40",children:[e.jsx(wl,{className:"min-w-[220px]",children:"Capability"}),e.jsx(wl,{className:"text-primary font-bold",children:"XpediOo"}),e.jsx(wl,{children:"Flexera One"}),e.jsx(wl,{children:"ServiceNow ITAM"})]})}),e.jsx(sS,{children:NU.map(s=>e.jsxs(y.Fragment,{children:[e.jsx(ou,{className:"bg-muted/20 hover:bg-muted/20",children:e.jsx(Os,{colSpan:4,className:"font-bold text-xs uppercase tracking-wide text-muted-foreground py-2",children:s.group})}),s.rows.map(l=>e.jsxs(ou,{children:[e.jsx(Os,{className:"font-medium text-sm",children:l.capability}),e.jsx(Os,{children:e.jsx(Tf,{value:l.xpedioo})}),e.jsx(Os,{children:e.jsx(Tf,{value:l.flexera})}),e.jsx(Os,{children:e.jsx(Tf,{value:l.servicenow})})]},l.capability))]},s.group))})]})}),e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"rounded-xl border border-primary/30 bg-primary/5 p-8",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(zw,{className:"h-5 w-5 text-primary"}),e.jsx("h3",{className:"font-bold text-lg",children:"Where XpediOo Wins Uniquely"})]}),e.jsx("div",{className:"grid sm:grid-cols-2 gap-3",children:AU.map(s=>e.jsxs("div",{className:"flex items-start gap-2 text-sm text-foreground",children:[e.jsx(Ve,{className:"h-4 w-4 mt-0.5 flex-shrink-0 text-primary"}),s]},s))})]})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-10 text-center max-w-3xl mx-auto",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(vR,{className:"h-3 w-3"})," Business Value & ROI"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"The Financial Case for XpediOo"}),e.jsx("p",{className:"text-muted-foreground",children:"Measurable return across three vectors: cost reduction through software reclamation and hardware refresh optimization, risk reduction through proactive compliance, and productivity gains from unified tooling and AI automation."})]}
57),e.jsx(v.div,{variants:jl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid grid-cols-2 sm:grid-cols-4 gap-4 max-w-3xl mx-auto mb-12",children:kU.map(s=>e.jsxs(v.div,{variants:Nl,className:"text-center border border-border/60 bg-card rounded-xl px-4 py-6",children:[e.jsx("div",{className:"text-3xl font-bold text-primary mb-1",children:s.value}),e.jsx("div",{className:"text-xs text-muted-foreground leading-tight",children:s.label})]},s.label))}),e.jsx(v.div,{variants:jl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:SU.map(s=>e.jsxs(v.div,{variants:Nl,className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4",children:e.jsx(s.icon,{className:"h-5 w-5"})}),e.jsx("h4",{className:"font-bold text-foreground mb-2",children:s.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:s.desc})]},s.title))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(Nr,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"See the Platform in Your Environment"}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"Connect with our enterprise team for a personalized demonstration, or start a free 7-day Discovery Assessment to see exactly what's in your estate right now — no commitment required."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const CU=[{id:"stt",icon:Us,title:"Real-Time Speech-to-Text",desc:"Sub-second transcription powered by state-of-the-art acoustic models. Handles overlapping speech, domain-specific vocabulary, and noisy telephony environments without post-processing delays.",highlights:["Sub-100ms transcription latency","Domain-adapted vocabulary (medical, legal, IT, finance)","Noise cancellation and echo suppression","Streaming transcription with incremental updates"]},{id:"reasoning",icon:be,title:"Context-Aware Multi-Turn Reasoning",desc:"Every utterance is evaluated against a persistent call graph — entities, intents, prior commitments — so the agent never loses context mid-call, even across long pauses or topic switches.",highlights:["Persistent call-graph memory across turns","Entity tracking and coreference resolution","Topic switch detection and graceful recovery","Intent disambiguation with clarifying questions"]},{id:"task-execution",icon:ge,title:"Autonomous Task Execution",desc:"While the caller is still speaking, the agent queries CRM, ITSM, and ERP systems in parallel. By the time the caller finishes, the agent already has an answer or has completed the action.",highlights:["Parallel system calls during speech","CRM lookups and record updates mid-call","ITSM ticket creation and status queries","ERP order management and inventory checks"]},{id:"tts",icon:NE,title:"Low-Latency Text-to-Speech",desc:"Neural TTS with configurable voice personas, speaking rate, pitch, and emotional register — so every agent sounds distinct, human, and appropriate to the call context.",highlights:["Emotional tone control (empathetic, authoritative, upbeat)","Custom voice persona library","Speaking rate adapts to caller comprehension signals","SSML support for emphasis and pronunciation control"]},{id:"multilingual",icon:Qt,title:"Multi-Language & Accent Adaptation",desc:"Deploy a single agent that understands 40+ languages and continuously adapts to regional accents and speech patterns within the first 30 seconds of a call.",highlights:["40+ languages out of the box","Live accent adaptation within the call","Code-switching support (callers mixing languages)","Locale-aware date, number, and currency parsing"]},{id:"barge-in",icon:oR,title:"Barge-In & Interruption Handling",desc:'Callers can interrupt naturally at any point. The agent stops mid-sentence, processes the interruption, and responds — eliminating the robotic "Please wait for me to finish" experience.',highlights:["Full-duplex audio with instant barge-in response","Semantic interruption classification (correction vs. new intent)","Partial utterance preservation and retry","Graceful recovery from simultaneous speech"]}],MU=[{id:"sentiment",icon:yr,title:"Live Sentiment & Intent Detection",desc:"A parallel analysis stream scores caller frustration, urgency, and intent in real time — without delaying the voice response."},{id:"escalation",icon:ze,title:"Human-in-the-Loop Escalation",desc:"When confidence drops or frustration spikes, the agent transfers to a human agent with an AI-generated call summary and full transcript already waiting."},{id:"transcription",icon:ra,title:"Call Transcription & Summarization",desc:"Every call produces a full verbatim transcript, an AI-written summary, extracted action items, and outcome classification — automatically indexed for search."},{id:"telephony",icon:jR,title:"Telephony Integration",desc:"Native connectors for SIP trunks, Twilio Programmable Voice, Cisco Unified CM, Avaya Aura, and Genesys Cloud — no custom middleware required."},{id:"analytics",icon:$e,title:"Call Analytics Dashboard",desc:"Volume trends, average handle time, containment rate, CSAT, and per-intent resolution rates — all computed automatically from call data."},{id:"scheduling",icon:bN,title:"Callback Scheduling & Queue Management",desc:"Callers can opt for a callback at their preferred time rather than wait. Intelligent queue routing by skill, language, and priority."}],TU=[{id:"rbac",icon:We,title:"Enterprise RBAC & Audit",desc:"Role-based access to call recordings, transcripts, and analytics. Full immutable audit trail of every agent action and escalation decision."},{id:"multi-tenant",icon:vi,title:"Multi-Tenant Deployment",desc:"Separate voice agent configurations, phone numbers, LLM providers, and data isolation per organizational unit or customer account."},{id:"knowledge",icon:Ot,title:"RAG Knowledge Grounding",desc:"Upload PDFs, product manuals, compliance documents, and FAQs. The agent retrieves relevant passages and grounds every answer in your content."},{id:"compliance",icon:Me,title:"PCI-DSS & HIPAA Compliance",desc:"Call recording redaction for card numbers and PHI, consent management, data residency controls, and compliance-ready audit exports."},{id:"observability",icon:kl,title:"OpenTelemetry Observability",desc:"Every call, reasoning step, and system action emits structured trace spans — visible in the live observability dashboard or any compatible tracing backend."},{id:"llm-flex",icon:de,title:"Multi-LLM Provider Flexibility",desc:"Route reasoning to Anthropic Claude, OpenAI GPT-4, Google Gemini, or on-premises models — switchable without redeploying the voice pipeline."}],EU=[{value:"<100ms",label:"Speech-to-Text Latency"},{value:"40+",label:"Languages Supported"},{value:"10+",label:"Telephony Integrations"},{value:"50+",label:"Enterprise App Connectors"}],RU=[{icon:Us,title:"Voice Pipeline & Real-Time Intelligence",tagline:"The speech layer, reasoning engine, and response synthesizer run in parallel — so the caller experiences a natural conversation, not a series of processing pauses.",modules:[{name:"Sub-Second Voice Pipeline Architecture",desc:"Designed from the ground up for telephony-grade latency.",highImpact:["Streaming ASR — transcription begins while the caller is still speaking, delivering partial transcripts every 50–80ms for downstream reasoning to start processing immediately","Parallel Reasoning & TTS Pre-Heating — while the ASR finalizes the last sentence, the reasoning engine starts on the partial and the TTS engine pre-heats the response buffer, so audio begins playing within 300–400ms of the caller finishing","Full-Duplex Audio — the agent and caller can speak simultaneously; barge-in is detected semantically (not just by energy level) so the agent knows whether to yield or continue"],standard:["Voice Activity Detection (VAD) tuned per telephony codec — G.711, G.729, Opus — with adaptive silence thresholds that adju
57st for call background noise","Acoustic echo cancellation and comfort noise injection for natural-sounding pauses","Incremental response generation — the TTS engine starts synthesizing the first sentence of a response before the LLM has finished generating the full answer"]},{name:"Context-Aware Conversational Reasoning",desc:"The agent maintains a structured call graph, not just a raw transcript window.",highImpact:["Entity State Tracking — every name, account number, date, product, and commitment mentioned during the call is extracted and updated in a typed entity store that survives topic switches","Intent History with Priority — the call graph records a stack of intents (primary goal, secondary request, expressed concerns) so the agent can return to interrupted threads without the caller having to repeat","Confidence Gating — when the agent's response confidence falls below threshold, it generates a clarifying question rather than guessing, with automatic escalation if confidence remains low after two retries"],standard:['Coreference resolution handles "it", "that", and "they" across turns without losing the referent','Temporal reasoning parses relative dates ("next Tuesday", "two weeks ago") against the call timestamp',"Structured output schema validation with self-correction retries ensures extracted data is always well-formed before being written to downstream systems"]}]},{icon:ge,title:"Autonomous Action & Enterprise Integration",tagline:"The agent doesn't just talk — it reads, writes, and orchestrates across your enterprise stack mid-call, without the caller having to wait on hold.",modules:[{name:"Mid-Call Parallel System Execution",desc:"Actions fire while the caller is speaking — not after.",highImpact:["Speculative Prefetch — when the agent detects an account-lookup intent, it begins the CRM query during the caller's utterance; by the time the ASR finalizes the transcript, results are already in cache","Write-Ahead Action Buffer — update and create operations (ticket creation, order status change) are composed during reasoning and submitted with a single call at the point the agent is ready to confirm verbally","ITSM First-Contact Resolution — the agent can create, update, escalate, and close service tickets, search the knowledge base for known issues, and read CMDB records — all mid-conversation without putting the caller on hold"],standard:["Optimistic locking and idempotency keys on all write operations prevent duplicate records from retry on telephony timeouts","Credential vaulting with per-integration health monitoring — the agent surfaces a graceful fallback when a downstream system is unavailable rather than failing silently","50+ pre-built enterprise connectors span CRM (Salesforce, HubSpot), ITSM (ServiceNow, Jira), ERP (SAP, Oracle), HRIS (Workday, SuccessFactors), and identity (Active Directory)"]},{name:"Telephony Platform Coverage",desc:"Deploy on the infrastructure your enterprise already runs — no forklift upgrade required.",highImpact:["SIP Trunk Integration — the voice agent connects to any RFC 3261-compliant SIP provider; PSTN calls route directly to the agent cluster without a cloud telephony intermediary","Twilio Programmable Voice — full Media Streams support for real-time audio, with automatic reconnection and stream continuity on dropped WebSocket frames","Enterprise PBX — native connectors for Cisco Unified Communications Manager, Avaya Aura Session Manager, and Genesys Cloud with CTI event passthrough"],standard:["DTMF capture for callers who prefer touch-tone input alongside speech (compliance verification, PIN entry, menu fallback)","Call recording controls — agent-managed start/stop with PCI-DSS pause-resume for card capture segments and automatic PHI redaction","Number management — provision, map, and rotate DID numbers per campaign, department, or language queue from a central console"]}]},{icon:yr,title:"Sentiment, Escalation & Human Handoff",tagline:"Autonomous handling is the goal — but when a human is the right answer, the handoff is instant, contextual, and invisible to the caller.",modules:[{name:"Real-Time Sentiment & Intent Scoring",desc:"A parallel analysis pipeline runs alongside the main reasoning engine without adding latency.",highImpact:["Multi-Dimensional Sentiment — frustration, urgency, satisfaction, and churn risk are scored independently per turn using a fine-tuned telephony sentiment model, not a generic NLP classifier","Escalation Trigger Hierarchy — predefined escalation rules fire in order: explicit caller request → frustration threshold crossed → consecutive failure loops → confidence below floor → time-in-call limit","Pre-Escalation Intervention — before transferring, the agent attempts one de-escalation response 
57(empathetic acknowledgment, offer of supervisor, fee waiver authorization if permitted) and records the outcome"],standard:['Intent velocity tracking — sudden shifts in expressed intent (from "check balance" to "close account") trigger elevated-risk flags before the caller states them explicitly',"Sentiment trend visualization in the supervisor dashboard, with per-agent and per-queue aggregation","Configurable thresholds per queue — a billing dispute queue may escalate at lower frustration scores than a general enquiry queue"]},{name:"Human-in-the-Loop Handoff",desc:"The caller never knows a transfer happened — the human agent does, instantly.",highImpact:["AI-Generated Call Summary — at the moment of transfer, the human agent receives a structured briefing: caller identity, primary intent, entities mentioned, actions already taken, and the specific reason for escalation",'Context-Preserving Transfer — the full conversation state (transcript, entity store, system data already fetched) is attached to the agent workspace before the call audio connects, so the human never asks "Can you start from the beginning?"',"Warm Transfer Option — the AI agent stays on the call briefly after the human joins, answers the human agent's questions about what was already done, then drops off when the human is ready"],standard:["Skill-based routing on transfer — the escalation engine matches the unresolved intent to the human agent team with the right skills, language, and available capacity","Transfer loop protection — if the intended human team is unavailable, the agent offers a callback rather than entering a transfer queue loop","Post-transfer AI assist — the human agent can query the AI assistant during the call to surface policy references, similar past cases, and suggested next actions"]}]},{icon:$e,title:"Analytics, Compliance & Quality",tagline:"Every call generates structured data — and the platform surfaces the signals that actually matter to operations, quality, and compliance.",modules:[{name:"Call Analytics & Business Intelligence",desc:"Dashboards built around the questions contact centre leaders actually ask.",highImpact:["Containment Rate Tracking — the percentage of calls resolved by the voice agent without human transfer, segmented by intent, language, and telephony queue","First-Call Resolution (FCR) — computes whether the caller's stated intent was resolved 
57in a single interaction, using post-call intent classification and callback detection","Average Handle Time (AHT) by Intent — breaks AHT down by call type so operations can identify which intents drive the longest calls and optimize scripts or system access"],standard:["CSAT surveys — a post-call SMS or IVR survey with results linked to the call record and agent for per-agent and per-queue quality tracking","LLM cost attribution per call, per intent, and per queue — giving finance-grade visibility into AI spend","Weekly automated briefing: volume, containment, CSAT, escalation rate, and top unresolved intent clusters delivered to leadership on a schedule"]},{name:"Compliance, Redaction & Audit",desc:"Purpose-built for regulated industries where every word on a call is a potential liability.",highImpact:["PAN Redaction — the agent detects card number utterances (PCI-DSS scope) and replaces them with silence in the recording and with masked tokens in the transcript, without interrupting the call flow","PHI Detection & Redaction — named entity recognition for HIPAA-sensitive fields (name, DOB, diagnosis, medication) with configurable redaction scope","Consent Management — configurable consent prompts at call start with outcome logging per call and per jurisdiction, including dual-party consent for applicable US states"],standard:["Immutable call audit trail — every agent action, escalation decision, and system write is logged with timestamp, reasoning trace, and outcome for regulator-ready export","Data residency controls — choose which cloud region call recordings, transcripts, and analytics data are stored in, with per-queue granularity","GDPR data subject requests — locate, export, and delete a caller's data (recordings, transcripts, CRM writes) from a single administrative workflow"]}]}];function PU(){const{openDemoModal:t}=ot(),[a,r]=y.useState(null);return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"Voice AI Agentic Application | XpediOo — Autonomous Enterprise Voice Agents"}),e.jsx("meta",{name:"description",content:"Deploy autonomous voice agents that listen, reason, and act — handling enterprise calls end to end across support, sales, and operations without scripts or IVR trees."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/voice-ai-agentic"}),e.jsx("meta",{property:"og:title",content:"Voice AI Agentic Application | XpediOo"}),e.jsx("meta",{property:"og:description",content:"Enterprise voice agents with sub-100ms latency, 40+ languages, autonomous CRM/ITSM execution, and human-in-the-loop escalation."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/voice-ai-agentic"}),e.jsx("meta",{property:"og:image",content:"https://xpedioo.ai/opengraph.jpg"}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"Voice AI Agentic Application | XpediOo"}),e.jsx("meta",{name:"twitter:description",content:"Enterprise voice agents with sub-100ms latency, 40+ languages, autonomous CRM/ITSM execution, and human-in-the-loop escalation."}),e.jsx("meta",{name:"twitter:image",content:"https://xpedioo.ai/opengraph.jpg"})]}),e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 right-1/4 w-96 h-96 bg-primary/8 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-1/4 w-64 h-64 bg-primary/5 rounded-full blur-3xl"}),e.jsxs("div",{className:"container mx-auto px-4 md:px-6 relative",children:[e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-3xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(Us,{className:"h-3 w-3"}),"Voice AI Agentic Application"]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["Autonomous Voice Agents.",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Built for Enterprise Scale."})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-2xl",children:"Deploy voice agents that listen, reason, and act — handling enterprise calls end to end across support, sales, and operations. No scripts. No IVR trees. No hold music."})]}),e.jsxs(v.div,{initial:{opacity:0}
57,animate:{opacity:1},transition:{delay:.3},className:"mt-10 flex flex-wrap gap-4",children:[e.jsxs("button",{onClick:t,className:"flex items-center gap-2 bg-primary text-primary-foreground px-6 py-3 rounded-lg font-semibold text-sm hover:bg-primary/90 transition-colors",children:["Book a Demo",e.jsx(Te,{className:"h-4 w-4"})]}),e.jsxs("div",{className:"flex items-center gap-2 border border-border/60 bg-card px-4 py-3 rounded-lg text-sm text-muted-foreground",children:[e.jsx(de,{className:"h-3.5 w-3.5 text-primary"}),"Agentic Voice AI"]})]}),e.jsx(v.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{delay:.45,duration:.5},className:"mt-16 grid grid-cols-2 md:grid-cols-4 gap-4",children:EU.map(s=>e.jsxs("div",{className:"border border-border/60 bg-card rounded-xl p-5 text-center",children:[e.jsx("div",{className:"text-3xl font-bold text-primary mb-1",children:s.value}),e.jsx("div",{className:"text-xs text-muted-foreground uppercase tracking-wider font-medium",children:s.label})]},s.label))})]})]}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.5},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(ge,{className:"h-3 w-3"}),"Core Voice Capabilities"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"The Full Voice AI Stack"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl",children:"Six foundational modules that turn raw telephony audio into autonomous, enterprise-grade voice interactions."})]}),e.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:CU.map((s,l)=>e.jsxs(v.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:l*.07,duration:.4},className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 transition-all duration-300",children:[e.jsx("div",{className:"p-3 rounded-xl bg-card border border-border/60 text-primary group-hover:border-primary/20 transition-colors w-fit mb-4",children:e.jsx(s.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"text-base font-bold mb-2",children:s.title}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed mb-4",children:s.desc}),e.jsx("div",{className:"space-y-1.5",children:s.highlights.map(d=>e.jsxs("div",{className:"flex items-start gap-2 text-xs text-muted-foreground",children:[e.jsx(Me,{className:"h-3 w-3 mt-0.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:d})]},d))})]},s.id))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-card/30",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.5},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(Ki,{className:"h-3 w-3"}),"Extended Feature Set"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Intelligence Beyond the Call"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl",children:"Analytics, transcription, compliance, and orchestration that turn every call into a business asset."})]}),e.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-4",children:MU.map((s,l)=>e.jsxs(v.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{delay:l*.07,duration:.4},className:"group border border-border/60 bg-card rounded-xl p-5 hover:border-primary/30 transition-all duration-300",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"p-2.5 rounded-lg bg-card border border-border/60 text-primary group-hover:border-primary/20 transition-colors",children:e.jsx(s.icon,{className:"h-4 w-4"})}),e.jsx("h3",{className:"text-sm font-bold",children:s.title})]}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:s.desc})]},s.id))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16}
57,animate:{opacity:1,y:0},transition:{duration:.5},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(We,{className:"h-3 w-3"}),"Enterprise Infrastructure"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Governance, Security & Reliability"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl",children:"The compliance and operational infrastructure that regulated enterprises require before a voice AI project can go to production."})]}),e.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-4",children:TU.map((s,l)=>e.jsxs(v.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{delay:l*.07,duration:.4},className:"group border border-border/60 bg-card rounded-xl p-5 hover:border-primary/30 transition-all duration-300",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"p-2.5 rounded-lg bg-card border border-border/60 text-primary group-hover:border-primary/20 transition-colors",children:e.jsx(s.icon,{className:"h-4 w-4"})}),e.jsx("h3",{className:"text-sm font-bold",children:s.title})]}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:s.desc})]},s.id))})]})}),e.jsx("section",{className:"py-20 bg-card/30",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.5},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(be,{className:"h-3 w-3"}),"Technical Deep Dive"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"How It Works — In Detail"}),e.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl",children:"For architects, engineering leaders, and enterprise buyers who need specifics before signing off."})]}),e.jsx("div",{className:"space-y-4 max-w-4xl",children:RU.map((s,l)=>{const d=a===l;return e.jsxs(v.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:l*.08,duration:.4},className:"border border-border/60 bg-card rounded-xl overflow-hidden",children:[e.jsxs("button",{onClick:()=>r(d?null:l),className:"w-full flex items-center gap-4 p-6 text-left hover:bg-primary/5 transition-colors",children:[e.jsx("div",{className:"p-2.5 rounded-lg bg-card border border-border/60 text-primary flex-shrink-0",children:e.jsx(s.icon,{className:"h-5 w-5"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-base font-bold mb-1",children:s.title}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s.tagline})]}),e.jsx(na,{className:`h-5 w-5 text-muted-foreground flex-shrink-0 transition-transform duration-300 ${d?"rotate-180":""}`})]}),d&&e.jsx("div",{className:"px-6 pb-6 border-t border-border/40 pt-6 space-y-8",children:s.modules.map(u=>e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-bold text-foreground mb-1",children:u.name}),u.desc&&e.jsx("p",{className:"text-sm text-muted-foreground mb-4 leading-relaxed",children:u.desc}),u.highImpact&&u.highImpact.length>0&&e.jsx("div",{className:"space-y-3 mb-3",children:u.highImpact.map(p=>e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),e.jsx("p",{className:"text-sm text-foreground leading-relaxed",children:p})]},p))}),u.standard&&u.standard.length>0&&e.jsx("div",{className:"space-y-2 pl-4 border-l border-border/40",children:u.standard.map(p=>e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-1 h-1 rounded-full bg-muted-foreground mt-2 flex-shrink-0"}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:p})]},p))})]},u.name))})]},s.title)})})]})}),e.jsx("section",{className:"py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24}
57,animate:{opacity:1,y:0},transition:{duration:.6},className:"border border-primary/20 bg-card rounded-2xl p-10 md:p-16 text-center max-w-3xl mx-auto relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-primary/10 to-primary/5 opacity-60"}),e.jsxs("div",{className:"relative",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-6",children:[e.jsx(Us,{className:"h-3 w-3"}),"Ready to Deploy"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Put Voice AI to Work Today"}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"See a live call handled end to end by the Voice AI Agentic Application — from first utterance to CRM update — in a 30-minute demo."}),e.jsxs("button",{onClick:t,className:"flex items-center gap-2 bg-primary text-primary-foreground px-8 py-3.5 rounded-lg font-semibold text-sm hover:bg-primary/90 transition-colors mx-auto",children:["Book a Demo",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const OU=[{value:"50+",label:"AI Capabilities"},{value:"11",label:"HR Domains"},{value:"24/7",label:"AI HR Chatbot"},{value:"100+",label:"Countries Supported"}],xl={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.08}}},Cs={hidden:{opacity:0,y:18},visible:{opacity:1,y:0,transition:{duration:.45,ease:"easeOut"}}},DU=[ht,Ui,ra,be],LU=[$u,Me,Pt,ct,Be,Xl],VU={Video:IP,Briefcase:fN,TrendingUp:ct,Brain:be,BarChart3:$e,ClipboardCheck:Pt,Users:ze,BookOpen:_n,Receipt:PN,Globe2:Ui,MessageSquare:ra},_U={"Core People Management":ze,"Absence Management":Pt,"Performance and Development":ct,Recruitment:fN,"Case Management":_n,"Expense Management":$e,"Skill Management":be,"Corporate HR Policy Generator by Country":Ui,"Onboarding & Offboarding People":Te,"HR Analytics":$e,"Employee Self-Service Conversational Chatbot":ra};function zU(){const{openDemoModal:t}=ot();return y.useEffect(()=>{window.scrollTo(0,0)},[]),e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Human Capital Management (HRMS) | XpediOo"}),e.jsx("meta",{name:"description",content:"XpediOo HRMS delivers 50+ AI capabilities across 11 HR domains — AI Video Recruiter, Performance Goal Generator, People SWOT, predictive attrition, and a 24/7 conversational HR chatbot."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/hrms"}),e.jsx("meta",{property:"og:title",content:"AI Powered Human Capital Management (HRMS) | XpediOo"}),e.jsx("meta",{property:"og:description",content:"50+ AI capabilities across 11 HR domains — from AI Video Recruiter to People SWOT Generator, predictive attrition, and country-specific HR policy generation."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/hrms"})]}),e.jsxs("section",{className:"relative overflow-hidden border-b border-border/40 py-24",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.035]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute left-1/2 top-0 h-96 w-[760px] -translate-x-1/2 rounded-full bg-primary/10 blur-3xl"}),e.jsx("div",{className:"container relative mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl",children:[e.jsxs("div",{className:"mb-6 flex flex-wrap items-center gap-3",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ze,{className:"h-3 w-3"}),"AI Powered HRMS"]}),e.jsx("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:"50+ AI Capabilities"}),e.jsx("span",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:"11 HR Domains"})]}),e.jsxs("h1",{className:"mb-6 text-4xl font-bold leading-tight md:text-6xl",children:["AI Powered Human Capital",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Management (HRMS)"})]}),e.jsx("p",{className:"mb-4 max-w-3xl text-lg leading-relaxed text-muted-foreground",children:"One platform. Every HR domain. 50+ AI capabilities — from an AI Video Recruiter that dispatches agentic video interviews automatically, to a People SWOT Generator, predictive attrition scoring, and a 24/7 conversational HR chatbot."}),e.jsx("p",{className:"max-w-3xl text-base leading-relaxed text-muted-foreground",children:"XpediOo HRMS connects recruitment, onboarding, performance, absence, skills, expenses, and compliance in a single AI-native system — so HR teams spend time on people, not process."}),e.jsx("div",{className:"mt-10 grid grid-cols-2 gap-4 sm:grid-cols-4",children:OU.map(a=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card px-4 py-5 text-center",children:[e.jsx("div",{className:"mb-1 text-2xl font-bold text-primary md:text-3xl",children:a.value}),e.jsx("div",{className:"text-xs leading-tight text-muted-foreground",children:a.label})]},a.label))})]})})]}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-14 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ze,{className:"h-3 w-3"}),"11 capability domains"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Every HR domain. One platform."}),e.jsx("p",{className:"text-muted-foreground",children:"Each capability is built AI-first and integrated 
57with the others — not a collection of bolt-on modules."})]}),e.jsx(v.div,{variants:xl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-6 md:grid-cols-2",children:oB.map(a=>{const r=_U[a.heading]??ze;return e.jsxs(v.article,{variants:Cs,className:"rounded-xl border border-border/60 bg-card p-8",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-lg bg-primary/10",children:e.jsx(r,{className:"h-5 w-5 text-primary"})}),e.jsx("h3",{className:"text-lg font-semibold",children:a.heading})]}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-muted-foreground",children:a.body}),e.jsx("ul",{className:"space-y-2",children:a.bullets.map(s=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),s]},s))})]},a.heading)})})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-16 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(be,{className:"h-3 w-3"}),"50+ AI Capabilities"]}),e.jsxs("h2",{className:"mb-4 text-3xl font-bold md:text-5xl leading-tight",children:["AI at every layer of",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"the HR operating model"})]}),e.jsx("p",{className:"text-muted-foreground text-lg",children:"Every HR process has an AI engine behind it — not a chatbot wrapper, not a rules engine, not an automation macro. Genuine machine intelligence that learns, predicts, and generates at each step."})]}),e.jsx("div",{className:"space-y-16",children:U2.map((a,r)=>{const s=VU[a.icon]??be;return e.jsxs(v.div,{id:a.group.toLowerCase().replace(/[^a-z0-9]+/g,"-"),initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:.05},children:[e.jsxs("div",{className:"mb-8 flex flex-col gap-3 md:flex-row md:items-end md:justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"mb-3 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-11 w-11 items-center justify-center rounded-xl bg-primary/10",children:e.jsx(s,{className:"h-5 w-5 text-primary"})}),e.jsxs("div",{children:[e.jsxs("p",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:["AI Capability Group ",String(r+1).padStart(2,"0")]}),e.jsx("h3",{className:"text-xl font-bold md:text-2xl",children:a.group})]})]}),e.jsx("p",{className:"max-w-2xl text-muted-foreground",children:a.tagline})]}),e.jsx("div",{className:"flex-shrink-0",children:e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-primary/20 bg-primary/5 px-3 py-1 text-xs font-semibold text-primary",children:[a.features.length," AI features"]})})]}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:a.features.map(l=>e.jsxs(v.div,{variants:Cs,className:"group rounded-xl border border-border/60 bg-card p-6 transition-colors hover:border-primary/30 hover:bg-primary/[0.02]",children:[e.jsxs("div",{className:"mb-3 flex items-start gap-2",children:[e.jsx("div",{className:"mt-0.5 flex h-5 w-5 flex-shrink-0 items-center justify-center rounded-full bg-primary/10",children:e.jsx(de,{className:"h-2.5 w-2.5 text-primary"})}),e.jsx("h4",{className:"font-semibold leading-snug text-sm",children:l.title})]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:l.body})]},l.title))}),r<U2.length-1&&e.jsx("div",{className:"mt-16 border-b border-border/30"})]},a.group)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(de,{className:"h-3 w-3"}),"Capability highlights"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"High-impact features and AI capabilities"})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.div,{initial:{opacity:0,x:-20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.5},className:"rounded-2xl border border-primary/20 bg-primary/5 p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/15",children:e.jsx(ge,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"})]}),e.jsx("ul",{className:"space-y-4",children:y3.map(a=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Ve,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{className:"text-sm leading-relaxed text-foreground
57/80",children:a})]},a))})]}),e.jsxs(v.div,{initial:{opacity:0,x:20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.5},className:"rounded-2xl border border-primary/20 bg-primary/5 p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/15",children:e.jsx(de,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"AI Features"})]}),e.jsx("ul",{className:"space-y-4",children:b3.map(a=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Ve,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{className:"text-sm leading-relaxed text-foreground/80",children:a})]},a))})]})]})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-destructive/25 bg-destructive/5 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-destructive",children:[e.jsx(ht,{className:"h-3 w-3"}),"The case for change"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Why fragmented HR systems hold organisations back"}),e.jsx("p",{className:"text-muted-foreground",children:"Disconnected tools, manual compliance work, and poor employee experience are visible symptoms of an HR technology architecture that was never designed to scale."})]}),e.jsx(v.div,{variants:xl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:lB.map((a,r)=>{const s=DU[r];return e.jsxs(v.article,{variants:Cs,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"mb-4 inline-flex rounded-lg bg-destructive/10 p-3 text-destructive",children:e.jsx(s,{className:"h-5 w-5"})}),e.jsx("h3",{className:"mb-2 font-semibold",children:a.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:a.body})]},a.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Be,{className:"h-3 w-3"}),"Platform philosophy"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Six design commitments behind XpediOo HRMS"})]}),e.jsx(v.div,{variants:xl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 md:grid-cols-2 lg:grid-cols-3",children:cB.map((a,r)=>e.jsxs(v.div,{variants:Cs,className:"flex items-start gap-4 roun
57ded-xl border border-border/60 bg-card p-6",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-full bg-primary/10 text-sm font-bold text-primary",children:r+1}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:a})]},a))})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Xl,{className:"h-3 w-3"}),"The employee lifecycle"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"AI across every stage of the employee journey"})]}),e.jsx(v.div,{variants:xl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-3",children:dB.map((a,r)=>{const s=LU[r];return e.jsxs(v.div,{variants:Cs,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-lg bg-primary/10",children:e.jsx(s,{className:"h-5 w-5 text-primary"})}),e.jsxs("span",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:["0",r+1," — ",a.title]})]}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:a.body})]},a.title)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ct,{className:"h-3 w-3"}),"Business outcomes"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"What XpediOo HRMS delivers"})]}),e.jsx(v.div,{variants:xl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid gap-5 sm:grid-cols-2 lg:grid-cols-4",children:uB.map(a=>e.jsxs(v.div,{variants:Cs,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsx("h3",{className:"mb-3 font-semibold text-primary",children:a.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:a.body})]},a.title))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"mx-auto max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-6 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(de,{className:"h-3 w-3"}),"Get started"]}),e.jsxs("h2",{className:"mb-6 text-3xl font-bold md:text-5xl leading-tight",children:["Ready to transform your",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"HR operations with AI?"})]}),e.jsx("p",{className:"mb-10 text-muted-foreground text-lg leading-relaxed",children:"See how XpediOo HRMS puts 50+ AI capabilities across all 11 HR domains into one platform — from AI Video Recruiter and People SWOT Generator to country-specific policy generation and a 24/7 conversational HR chatbot."}),e.jsx("div",{className:"flex flex-wrap justify-center gap-4",children:e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 rounded-full bg-primary px-8 py-3 text-sm font-semibold text-primary-foreground transition hover:bg-primary/90",children:["Request a Demo",e.jsx(Te,{className:"h-4 w-4"})]})})]})})})]})}const qU=[{num:"01",icon:Ue,title:"More Controls Than Any Other Platform",desc:"Other form builders give you 20–30 field types. XpediOo Form Builder ships with 100+ purpose-built controls — from simple text inputs to enterprise-grade Kanban boards, Gantt charts, pivot tables, SLA trackers, shift rosters, OCR scanners, and AI questionnaire generators. You build once on one platform instead of stitching together five tools."},{num:"02",icon:be,title:"AI That Actually Does the Heavy Lifting",desc:"XpediOo Form Builder doesn't just add a chatbot badge to a legacy product. AI is embedded end-to-e
57nd: generate entire forms from a sentence, convert documents or screenshots into forms, enhance individual fields, auto-optimize layouts for completion rate, analyze WCAG accessibility compliance, predict how long respondents will take to fill out your form, generate backend API code, and translate your entire form into 21 languages — all without leaving the builder."},{num:"03",icon:Me,title:"Enterprise-Ready Out of the Box",desc:"Version control with full history and one-click revert. Draft/Published/Archived lifecycle management. Role-based workflow configuration. Field-level JavaScript scripting with AI code generation. A complete Template & Workflow Marketplace. REST API + GraphQL connectivity. ServiceNow and Jira integrations. Audit-ready SLA tracking. These are not add-ons — they are built in."},{num:"04",icon:ge,title:"One Builder, Every Screen Size",desc:"Responsive desktop, tablet, and mobile previews in the builder canvas. Every control is designed to reflow gracefully. Build it once, run it everywhere."},{num:"05",icon:wi,title:"Infinitely Extensible",desc:"Every form can call external APIs directly from within a field. The Dynamic JavaScript control lets you execute custom logic live. The AI API Generator writes your backend endpoints for you. Connect to any data source — REST, GraphQL, ServiceNow, Jira, custom databases — with zero-code configuration."},{num:"06",icon:Qt,title:"True Internationalization",desc:"21 languages supported, with both static resource files and real-time AI-powered translation. An admin translation panel lets you manage every string, cache translations, and switch LLM providers (OpenAI, Gemini, Claude) for translation tasks."},{num:"07",icon:bi,title:"Your Data, Your Security",desc:"PII Cards for masking sensitive data. OTP fields for identity verification. Multi-factor CAPTCHA. Digital signature pads with certificate authority support. Field-level validation scripts. Every credential referenced by environment variable — never hardcoded."}],FU=["100+ Controls","AI Form Generation","AI Layout Optimization","AI API Code Generation","Drag & Drop Multi-Column","Field-Level Scripting","Version Control","Kanban / Gantt / Pivot","SLA Tracker","OCR Scanner","Digital Signature + CA","21-Language AI Translation","Enterprise Widgets (ITSM)","Template Marketplace","Draft / Publish Workflow"],BU=[{num:"01",title:"Prompt-to-Form Generation",desc:'Describe the form you need in plain language — "a two-column employee onboarding form with sections for personal details, emergency contacts, and IT equipment requests" — and the AI generates the complete form configuration including fields, validation rules, layout, and help text. Powered by GPT-4o.'},{num:"02",title:"File / Image / Document to Form",desc:"Upload an image of a paper form, a PDF, a Word document, or a JSON structure and the AI converts it into a fully interactive digital form. The Vision API reads layouts from screenshots; document parsers extract fields from PDFs and text files. Zero manual re-typing."},{num:"03",title:"Conversational Field Adder",desc:'A natural language interface inside the builder lets you say "add a required date picker for the appointment" and the AI adds the correctly configured field. No hunting through the palette.'},{num:"04",title:"AI Field Enhancement",desc:"Select any field on the canvas and click Enhance. The AI rewrites the label, placeholder, help text, and validation rules based on the field's context within the form — making every field cleaner, clearer, and more user-friendly in seconds."},{num:"05",title:"AI Layout Optimizer",desc:"Submit any form to the layout optimizer and receive specific recommendations for multi-column groupings, suggested field reordering to reduce cognitive load, logical section groupings with explanations, and an entirely regenerated, optimized version of the form ready to apply."},{num:"06",title:"Accessibility Analyzer",desc:"The AI evaluates every form against WCAG 2.1 AA standards and screen reader compatibility. Receive a compliance score, a prioritized list of issues, and specific code-level recommendations to fix each one."}
57,{num:"07",title:"Performance Predictor",desc:"Before you launch a form, the AI predicts: estimated completion rate based on field count and complexity, average time-to-complete for your target audience, drop-off risk points, and specific suggestions to improve completion."},{num:"08",title:"AI API Generator",desc:"Point the AI at any form and it writes production-ready backend code: REST API endpoint definitions, database schema SQL, request/response validation, and OpenAPI documentation — all generated and ready to copy or deploy."},{num:"09",title:"Field-Level Script Generation",desc:'Inside the scripting panel for any field, describe in plain English what the script should do — "validate that this date is not a weekend" — and the AI writes the JavaScript. Supports onChange, onBlur, validation, transformer, and apiCall script types.'},{num:"10",title:"AI Questionnaire Generator",desc:'Drop the AI Questionnaire control into any form, type a prompt describing your topic (e.g., "vendor due diligence covering legal identity, tax compliance, and financial health for Indian company onboarding"), and the AI generates a structured questionnaire complete with questions, legal/regulatory references, and rationale for each question.'},{num:"11",title:"Rich Text AI Content Generation",desc:"The Rich Text Editor control has built-in AI assistance for generating, rewriting, and expanding content directly inside the editor — no copy-
57pasting to an external tool."},{num:"12",title:"AI-Powered Dynamic Translation",desc:"The entire application and every form it serves can be instantly translated into 21 languages. The translation engine uses LLMs (configurable between OpenAI, Google Gemini, and Anthropic Claude) to handle technical terms, placeholders, and context-aware phrasing that static translation files cannot."},{num:"13",title:"Smart Data Grid Insights",desc:"Drop a Data Grid Analytics widget onto any dashboard and the AI analyzes the tabular data to surface patterns, anomalies, and summary insights automatically."},{num:"14",title:"Multi-LLM Support",desc:"Connect OpenAI, Google Gemini, or Anthropic Claude through the admin configuration panel. Set model, temperature, max tokens, and custom endpoints per use case. Switch providers without touching code."}],HU=[{title:"Basic Input",controls:[{name:"Text Input",desc:"Single-line text entry with label, placeholder, help text, and validation"},{name:"Number Input",desc:"Numeric input with min/max, step, and format validation"},{name:"Currency Input",desc:"Money field with locale-aware currency formatting and symbols"},{name:"Text Area",desc:"Multi-line text entry with configurable rows and resize options"},{name:"Password Input",desc:"Masked password entry with show/hide toggle"},{name:"Input Mask",desc:"Text input that enforces a specific character pattern (phone, postal code, etc.)"}]},{title:"Advanced Input",controls:[{name:"Date & Time Picker",desc:"Calendar-based date and time selection with timezone support"},{name:"Rich Text Editor",desc:"WYSIWYG editor with formatting toolbar and AI-powered content generation"},{name:"Markdown Editor",desc:"Full-featured Markdown editor with live side-by-side preview and syntax highlighting"},{name:"Color Picker",desc:"Full-spectrum color selector with preset swatches and hex/RGB/HSL input"},{name:"Search",desc:"Search input with real-time filtering and result highlighting"},{name:"Web URL",desc:"URL entry with format validation and an inline open-in-new-tab button"}]},{title:"Selection",controls:[{name:"Dropdown",desc:"Standard single-selection dropdown with configurable options"},{name:"Multi-Select",desc:"Checkbox-style selection of multiple options from a list"},{name:"Combo Box",desc:"Searchable dropdown that allows typing to filter and entering custom values"},{name:"Radio Buttons",desc:"Single-choice selection displayed as a radio group"},{name:"Checkbox",desc:"Multi-choice selection with individual checkbox items"},{name:"Checklist",desc:"A structured list of tasks or items with checkbox completion tracking"}]},{title:"Layout & Display",controls:[{name:"Multi-Layout Control",desc:"Create 2, 3, or 4-column layouts and drag any control into any column"},{name:"Tab Menu",desc:"Organize form sections into named, clickable tabs"},{name:"Accordion",desc:"Collapsible sections that hide content until expanded"},{name:"Repeater",desc:"A repeating section where respondents can add as many rows as needed"},{name:"Card",desc:"A visually distinct card surface for grouping related content"},{name:"Progress Bar",desc:"Visual completion indicator for multi-step or sectioned forms"}]},{title:"Advanced Controls",controls:[{name:"People Picker",desc:"Directory-style selector for choosing users from Active Directory"},{name:"Data Grid",desc:"Full-featured interactive table with sorting, filtering, inline editing, and pagination"},{name:"Spreadsheet",desc:"Excel-like grid with formula support, cell formatting, and data manipulation"},{name:"Kanban Board",desc:"Drag-and-drop visual board with configurable lanes and card properties"},{name:"Gantt Chart",desc:"Project timeline with task bars, dependencies, milestones, and progress tracking"},{name:"Dynamic JavaScript",desc:"Execute custom JS code with live output and a built-in debugger"}]},{title:"Security & Verification",controls:[{name:"Digital Signature",desc:"Touchscreen or mouse signature pad with certificate authority support"},{name:"OTP Input",desc:"One-time password entry with auto-focus, paste support, and expiry validation"},{name:"CAPTCHA",desc:"Multi-mode security verification (image challenge, math, slider, honeypot)"},{name:"PII Card",desc:"Secure masked entry for credit cards, SSNs, and other PII with format validation"}]},{title:"Business Intelligence",controls:[{name:"Kanban Board",desc:"Drag-and-drop visual board with configurable lanes and card properties"},{name:"Gantt Chart",desc:"Project timeline with task bars, dependencies, milestones, and progress tracking"},{name:"Pivot Table",desc:"Cross-tabulation data analysis with aggregation, filtering, and drill-down"},{name:"SLA Tracker",desc:"Service Level Agreement countdown with status badges (On Track / At Risk / Breached)"},{name:"Shift Roster",desc:"Employee shift and rota planning with a visual timeline"},{name:"Timesheet",desc:"Professional time tracking grid with project/task breakdown and totals"}]},{title:"Media & Input",controls:[{name:"File Upload",desc:"Drag-and-drop file uploader with type filtering, size limits, and preview"},{name:"OCR Scanner",desc:"Extract text from images or documents using optical character recognition"},{name:"QR Scanner",desc:"Scan QR codes using the device camera and populate field values"},{name:"Google Maps",desc:"Interactive map for selecting and capturing GPS coordinates and addresses"},{name:"Digital Signature",desc:"Touchscreen or mouse signature pad with certificate authority support"},{name:"Screen Capture",desc:"Capture screenshots or record screen with download options"}]}],GU=[{title:"IT Service Management (ITSM)",desc:"Incident forms, change request workflows, SLA-tracked service requests, knowledge base capture, and ITSM dashboard widgets that connect directly to ServiceNow or Jira — all configured without writing a single line of code."},{title:"Human Resources",desc:"Employee onboarding, time-off requests, performance reviews, skill matrices, shift rosters, people allocation planning, and exit interviews. Every form is multilingual out of the box."},{title:"Finance & Compliance",desc:"Vendor due diligence questionnaires with legal references, depreciation grids, audit checklists, PII-masked data entry, digital signatures with certificate authority, and SLA-enforced approval workflows."},{title:"Legal & Regulatory",desc:"AI-generated questionnaires with regulatory references automatically matched to each question. Digital signatures. Document attachments per question. Evidence analysis with one click."},{title:"Operations & Project Management",desc:"Gantt charts, Kanban boards, timesheets, product catalogues, and calendar schedulers — all inside forms that can call external APIs and trigger workflows on submission."},{title:"Healthcare",desc:"HIPAA-conscious forms with PII masking, CAPTCHA verification, OTP authentication, digital signatures, audio/video capture for assessments, and AI-enhanced field descriptions."},{title:"Education & Training",desc:"Quiz builders, competency matrices, checklist assessments, progress trackers, and multilingual delivery to any audie
57nce."}],UU=[{q:"Do I need to know how to code to use XpediOo Form Builder?",a:"No. The entire form builder is visual drag-and-drop. AI writes any code you need. Developers who want more control can write custom JavaScript scripts at the field level."},{q:"Which AI providers are supported?",a:"OpenAI (GPT-4o), Google Gemini, and Anthropic Claude. You can configure each feature to use a different provider and model through the admin panel."},{q:"Can I connect my own database or API?",a:"Yes. Every form can connect to REST APIs, GraphQL endpoints, databases, ServiceNow, and Jira. Authentication supports API Key, Bearer Token, Basic Auth, and OAuth 2.0."},{q:"Is the data secure?",a:"Yes. PII masking, OTP verification, CAPTCHA, digital signatures with certificate authority support, and credential management via environment variables. No API keys are ever stored as plaintext."},{q:"Can I use XpediOo Form Builder in multiple languages?",a:"Yes. 21 languages are supported. The AI translation engine handles context-aware translation in real time, including technical terms and placeholders that static translation files get wrong."},{q:"How does version control work?",a:"Every save is versioned. You can browse the full version history, preview any past version, and revert with one click. No history is ever deleted."}],Ef={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.05}}},Rf={hidden:{opacity:0,y:16},visible:{opacity:1,y:0,transition:{duration:.35,ease:"easeOut"}}};function XU(){const{openDemoModal:t}=ot();return y.useEffect(()=>{window.scrollTo(0,0)},[]),e.jsxs("div",{className:"min-h-screen",children:[e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[700px] h-[320px] bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl mx-auto",children:[e.jsxs("div",{className:"flex items-center justify-center gap-3 mb-6",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:[e.jsx(Ht,{className:"h-3 w-3"})," AI Powered Form Builder"]}),e.jsx("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:"Low Code / No Code"})]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["100+ Controls. 14 AI Features.",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"One Enterprise Form Builder."})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl mx-auto mb-4",children:"Build enterprise-grade data capture forms in minutes with a drag-and-drop AI-assisted designer. Define field types, conditional logic, validation rules, and multi-step layouts without writing a line of code."}),e.jsx("p",{className:"text-muted-foreground text-base leading-relaxed max-w-3xl mx-auto",children:"The AI suggests fields based on your form's purpose, auto-generates accessible labels, translates forms into 21 languages instantly, and writes your backend API code for you. Every form is version-controlled and connected to downstream workflows automatically."})]})})]}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx($u,{className:"h-3 w-3"})," The Competitive Advantage"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"Why XpediOo Form Builder Wins"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"Seven reasons enterprises choose XpediOo Form Builder over ServiceNow Forms, Microsoft PowerApps, and every other low-code alternative."})]}),e.jsx("div",{className:"space-y-5",children:qU.map((a,r)=>
57e.jsx(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.05},className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"flex-shrink-0 inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-3 mb-1",children:[e.jsx("span",{className:"text-xs font-black text-primary/40 font-mono",children:a.num}),e.jsx("h3",{className:"font-bold text-foreground text-base",children:a.title})]}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]})]})},a.num))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-10",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"Top Features — All Included"}),e.jsx("p",{className:"text-muted-foreground max-w-xl",children:"Every feature below is built in. No add-ons. No upsells."})]}),e.jsx(v.div,{variants:Ef,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-3",children:FU.map(a=>e.jsxs(v.div,{variants:Rf,className:"flex items-center gap-3 border border-border/60 bg-card rounded-lg px-4 py-3",children:[e.jsx(Me,{className:"h-4 w-4 text-primary flex-shrink-0"}),e.jsx("span",{className:"text-sm font-medium text-foreground",children:a})]},a))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," AI Features"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"14 AI Features Built Into the Builder"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"AI isn't a bolt-on. Every one of these features is accessible from inside the builder canvas — no external tools, no copy-pasting."})]}),e.jsx(v.div,{variants:Ef,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 gap-5",children:BU.map(a=>e.jsx(v.div,{variants:Rf,className:"group border border-border/60 bg-card rounded-xl p-5 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:"text-xs font-black text-primary/40 font-mono mt-0.5 flex-shrink-0",children:a.num}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]})]})},a.num))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(Ue,{className:"h-3 w-3"})," Controls Reference"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"100+ Controls — Complete Reference"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"Every control ships with a full properties panel, field-level scripting, AI enhancement, and responsive behaviour built in."})]}),e.jsx("div",{className:"space-y-10",children:HU.map((a,r)=>
57e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.04},children:[e.jsx("h3",{className:"text-lg font-bold mb-4 text-foreground",children:a.title}),e.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-3",children:a.controls.map(s=>e.jsx("div",{className:"border border-border/60 bg-card rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Ve,{className:"h-3.5 w-3.5 mt-0.5 flex-shrink-0 text-primary"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-sm text-foreground mb-0.5",children:s.name}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:s.desc})]})]})},s.name+a.title))})]},a.title))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx($e,{className:"h-3 w-3"})," Use Cases by Industry"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"Built for Every Enterprise Department"})]}),e.jsx(v.div,{variants:Ef,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 lg:grid-cols-3 gap-5",children:GU.map(a=>e.jsxs(v.div,{variants:Rf,className:"border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 transition-colors duration-300",children:[e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-10",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(wi,{className:"h-3 w-3"})," Developer Features"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"Full Power for Developers"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"When you need more than drag-and-drop, XpediOo Form Builder gives developers full programmatic control — with AI doing the boilerplate."})]}),e.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:[{title:"Field-Level Scripting",desc:"Every field supports five script types: onChange, onBlur, Validation (custom logic returning pass/fail), Transformer (transforms the raw value before storage), and apiCall (makes an HTTP call using the field's value and maps the response to other fields). All scripts are written in JavaScript/TypeScript with syntax highlighting, autocompletion, and AI code generation."},{title:"REST & GraphQL Connectivity",desc:"Connect any control to any external data source with point-and-click configuration. Supports REST (GET/POST/PUT/DELETE) and GraphQL. Authentication options: API Key, Bearer Token, Basic Auth, OAuth 2.0, and custom headers. All credentials referenced via environment variable names — never stored as plaintext."},{title:"API Library",desc:"Every generated API is saved to the API Library for reuse, export, and documentation. Includes the generated endpoint code, database schema, and OpenAPI spec — ready to hand off to your backend team or deploy directly."},{title:"JSON Import / Export",desc:"Full round-trip JSON for forms, workflows, and navigation templates. Use as a version control artifact or deploy configurations across environments — dev, staging, and production — with a single file transfer."}].map(a=>e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4},className:"border border-border/60 bg-card rounded-xl p-6",children:[e.jsx("h3",{className:"font-bold text-foreground mb-3",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-10 text-center",children:e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"What Enterprise Teams Say"})}),e.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:[{quote:"We replaced three separate tools — our form builder, workflow engine, and dashboard — with XpediOo Form Builder. The AI generation alone saved our team 40 hours in the first month.",role:"Operations Lead, Financial Services Firm"},{quote:"The vendor due diligence questionnaire feature with AI-generated legal references is unlike anything else on the market. It would have taken our legal team days to write those questions manually.",role:"Compliance Manager, Global Enterprise"},{quote:"The fact that I can embed a Kanban board, a Gantt chart, and a live API call inside a single form — and have it translated into French for our European offices automatically — is genuinely remarkable.",role:"Digital Transformation Director"}].map(a=>e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"border border-primary/20 bg-primary/5 rounded-xl p-6",children:[e.jsxs("p",{className:"text-sm text-foreground leading-relaxed italic mb-4",children:['"',a.quote,'"']}),e.jsxs("p",{className:"text-xs text-primary font-semibold",children:["— ",a.role]})]},a.role))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-10",children:e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"Frequently Asked Questions"})}),e.jsx("div",{className:"grid md:grid-cols-2 gap-5 max-w-5xl",children:UU.map(a=>e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"border border-border/60 bg-card rounded-xl p-5",children:[e.jsx("h3",{className:"font-bold text-foreground text-sm mb-2",children:a.q}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.a})]},a.q))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(Ht,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"Build Your First AI-Powered Form Today"}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"See how XpediOo Form Builder replaces five separate tools with one intelligent platform — live in your environment."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const $U=[{value:"18+",label:"Workflow Controls"},{value:"500+",label:"Integration Connectors"},{value:"LangGraph",label:"State Engine"},{value:"Zero-code",label:"Workflow Builder"}
57],WU=[{icon:ji,problem:"No cyclic execution",solution:"Traditional tools are DAG-only. LangGraph supports loops and self-correcting agent patterns natively."},{icon:Xl,problem:"Stateless pipelines",solution:"Most workflow engines lose state between steps. LangGraph checkpoints every node — workflows survive failures and restarts."},{icon:ze,problem:"No human-in-the-loop",solution:"Approval gates are bolted on as hacks. XpediOo HITL is a first-class node type with SLA tracking built in."},{icon:vt,problem:"Agents as afterthoughts",solution:"Older platforms treat AI calls as HTTP steps. Every agent node here has model selection, tool use, and streaming built in."}];function KU(){return e.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[e.jsxs("section",{className:"relative overflow-hidden border-b border-border/40 py-24",children:[e.jsxs("div",{className:"absolute inset-0 -z-10",children:[e.jsx("div",{className:"absolute left-1/4 top-0 h-96 w-96 rounded-full bg-primary/6 blur-3xl"}),e.jsx("div",{className:"absolute right-1/4 bottom-0 h-64 w-64 rounded-full bg-primary/4 blur-3xl"})]}),e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"mx-auto max-w-4xl text-center",children:[e.jsxs("div",{className:"mb-6 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(nt,{className:"h-3.5 w-3.5"}),"AI Workflow Engine"]}),e.jsxs("h1",{className:"mb-6 text-4xl font-bold leading-tight tracking-tight md:text-6xl",children:["Enterprise Workflow Orchestration"," ",e.jsx("span",{className:"text-primary",children:"Powered by LangGraph"})]}),e.jsx("p",{className:"mx-auto mb-10 max-w-2xl text-lg leading-relaxed text-muted-foreground md:text-xl",children:"Design, deploy, and orchestrate stateful AI workflows across your entire enterprise — with cyclic graph execution, human-in-the-loop gates, and 500+ integration connectors. No code required."}),e.jsx("div",{className:"mb-12 grid grid-cols-2 gap-4 sm:grid-cols-4",children:$U.map(t=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card/60 px-4 py-5 text-center",children:[e.jsx("div",{className:"text-2xl font-bold text-primary",children:t.value}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:t.label})]},t.label))}),e.jsxs("div",{className:"flex flex-col items-center gap-3 sm:flex-row sm:justify-center",children:[e.jsx(ve,{size:"lg",className:"gap-2 bg-primary text-primary-foreground",asChild:!0,children:e.jsxs(Ie,{href:"/contact",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})}),e.jsx(ve,{size:"lg",variant:"outline",asChild:!0,children:e.jsx(Ie,{href:"/products",children:"View All Products"})})]})]})})]}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(de,{className:"h-3 w-3"}),"Capability Highlights"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"High-impact features and AI capabilities"})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.div,{initial:{opacity:0,x:-20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.5},className:"rounded-2xl border border-primary/20 bg-primary/5 p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/15",children:e.jsx(ge,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"})]}),e.jsx("ul",{className:"space-y-4",children:v3.map(t=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Ve,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{className:"text-sm leading-relaxed text-foreground
57/80",children:t})]},t))})]}),e.jsxs(v.div,{initial:{opacity:0,x:20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.5},className:"rounded-2xl border border-primary/20 bg-primary/5 p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/15",children:e.jsx(de,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"AI Features"})]}),e.jsx("ul",{className:"space-y-4",children:w3.map(t=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Ve,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{className:"text-sm leading-relaxed text-foreground/80",children:t})]},t))})]})]})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-16 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(Ue,{className:"h-3 w-3"}),"18 Workflow Controls"]}),e.jsxs("h2",{className:"mb-4 text-3xl font-bold md:text-5xl leading-tight",children:["Every building block your"," ",e.jsx("span",{className:"text-primary",children:"enterprise workflows need"})]}),e.jsx("p",{className:"text-muted-foreground",children:"From simple approval chains to complex multi-agent orchestrations — one platform, 18 controls, unlimited scale."})]}),e.jsx("div",{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:mB.map((t,a)=>{const r=t.split(" — ")[0],s=t.split(" — ")[1]??"";return e.jsxs(v.div,{id:`cap-${a}`,initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:a%6*.06},className:"group rounded-xl border border-border/60 bg-card/60 p-5 transition-all hover:border-primary/30 hover:bg-primary/5 hover:shadow-md",children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2",children:[e.jsx("div",{className:"flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-md bg-primary/10 text-primary",children:e.jsx(wT,{className:"h-3.5 w-3.5"})}),e.jsx("span",{className:"text-sm font-semibold text-foreground",children:r})]}),s&&e.jsx("p",{className:"ml-9 text-xs leading-relaxed text-muted-foreground",children:s})]},t)})})]})}),e.jsx("section",{className:"border-b border-border/40 bg-muted/20 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-16 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(vi,{className:"h-3 w-3"}),"Under the Hood"]}),e.jsxs("h2",{className:"mb-4 text-3xl font-bold md:text-5xl leading-tight",children:["LangGraph as the"," ",e.jsx("span",{className:"text-primary",children:"orchestration backbone"})]}),e.jsx("p",{className:"text-muted-foreground",children:"Most workflow engines were designed for linear pipelines. LangGraph was designed for AI — stateful, cyclical, agent-native from the ground up."})]}),e.jsx(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-16 max-w-4xl",children:e.jsxs("div",{className:"rounded-2xl border border-primary/20 bg-card/80 p-8",children:[e.jsx("div",{className:"mb-6 text-center text-xs font-bold uppercase tracking-widest text-primary",children:"LangGraph StateGraph Execution Model"}),e.jsx("div",{className:"flex items-center justify-center gap-2 overflow-x-auto pb-2",children:[{label:"Trigger",icon:ge,color:"bg-emerald-500/15 border-emerald-500/30 text-emerald-400"},{label:"Agent Node",icon:vt,color:"bg-primary/15 border-primary/30 text-primary"}
57,{label:"HITL Gate",icon:ze,color:"bg-amber-500/15 border-amber-500/30 text-amber-400"},{label:"Branch",icon:ji,color:"bg-blue-500/15 border-blue-500/30 text-blue-400"},{label:"Merge",icon:Ul,color:"bg-violet-500/15 border-violet-500/30 text-violet-400"},{label:"Connector",icon:wi,color:"bg-rose-500/15 border-rose-500/30 text-rose-400"},{label:"Complete",icon:We,color:"bg-teal-500/15 border-teal-500/30 text-teal-400"}].map((t,a,r)=>e.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[e.jsxs("div",{className:`flex flex-col items-center gap-1.5 rounded-xl border px-4 py-3 ${t.color}`,children:[e.jsx(t.icon,{className:"h-5 w-5"}),e.jsx("span",{className:"text-[10px] font-semibold",children:t.label})]}),a<r.length-1&&e.jsx(Ve,{className:"h-4 w-4 flex-shrink-0 text-muted-foreground/40"})]},t.label))}),e.jsxs("div",{className:"mt-4 flex justify-center gap-6 text-[10px] text-muted-foreground",children:[e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx(Xl,{className:"h-3 w-3 text-primary"}),"Cyclic loops supported"]}),e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx(ja,{className:"h-3 w-3 text-amber-400"}),"State checkpointed at every node"]}),e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx(be,{className:"h-3 w-3 text-violet-400"}),"Multi-agent shared state"]})]})]})}),e.jsx("div",{className:"grid gap-6 md:grid-cols-2 lg:grid-cols-3",children:pB.map((t,a)=>e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:a*.07},className:"rounded-xl border border-border/60 bg-card/60 p-6",children:[e.jsx("div",{className:"mb-3 flex h-8 w-8 items-center justify-center rounded-lg bg-primary/10",children:e.jsx(vi,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"mb-2 font-semibold text-foreground",children:t.title}),e.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground",children:t.description})]},t.title))})]})}),e.jsx("section",{className:"border-b border-border/40 py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3 w-3"}),"Why It Matters"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Why traditional workflow tools fall short for AI"}),e.jsx("p",{className:"text-muted-foreground",children:"Legacy BPM and RPA platforms were built before LLMs existed. Bolting AI onto them creates fragile, stateless integrations that break at scale."})]}),e.jsx("div",{className:"grid gap-6 md:grid-cols-2",children:WU.map((t,a)=>e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:a*.08},className:"rounded-xl border border-border/60 bg-card/60 p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-destructive/10",children:e.jsx(t.icon,{className:"h-4 w-4 text-destructive"})}),e.jsxs("span",{className:"text-sm font-semibold text-destructive/80",children:["Problem: ",t.problem]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-lg bg-primary/10",children:e.jsx(de,{className:"h-4 w-4 text-primary"})}),e.jsxs("p",{className:"text-sm leading-relaxed text-muted-foreground",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"XpediOo: "}),t.solution]})]})]},t.problem))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:18},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto max-w-2xl text-center",children:[e.jsx("div",{className:"mb-6 flex justify-center",children:e.jsx("div",{className:"flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10 ring-1 ring-primary/20",children:e.jsx(nt,{className:"h-8 w-8 text-primary"})})}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Ready to orchestrate your enterprise AI workflows?"}),e.jsx("p",{className:"mb-8 text-muted-foreground",children:"See how the AI Workflow Engine — powered by LangGraph — can replace your fragmented automation tools with one unified, stateful orchestration platform."}),e.jsxs("div",{className:"flex flex-col items-center gap-3 sm:flex-row sm:justify-center",children:[e.jsx(ve,{size:"lg",className:"gap-2 bg-primary text-primary-foreground",asChild:!0,children:e.jsxs(Ie,{href:"/contact",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})}),e.jsx(ve,{size:"lg",variant:"outline",asChild:!0,children:e.jsx(Ie,{href:"/products",children:"View All Products"})})]})]})})})]})}const oS="xpedioo_partner_registered_at",YU=3600*1e3;function QU(){try{const t=localStorage.getItem(oS);return t?Date.now()-Number(t)<YU:!1}catch{return!1}}function ZU(){try{localStorage.setItem(oS,String(Date.now()))}catch{}}const JU=new Set(["gmail.com","googlemail.com","yahoo.com","yahoo.co.uk","yahoo.co.in","yahoo.fr","yahoo.de","yahoo.es","yahoo.it","ymail.com","hotmail.com","hotmail.co.uk","hotmail.fr","hotmail.de","hotmail.es","hotmail.it","outlook.com","outlook.co.uk","outlook.fr","live.com","live.co.uk","msn.com","aol.com","icloud.com","me.com","mac.com","protonmail.com","proton.me","pm.me","tutanota.com","tutamail.com","zoho.com","mail.com","gmx.com","gmx.net","gmx.de","yandex.com","yandex.ru","inbox.com","fastmail.com"]),eX=[{value:"reseller",label:"Reseller",desc:"Purchase and resell XpediOo licences to end customers"},{value:"si",label:"System Integrator (SI)",desc:"Implement and integrate XpediOo within enterprise environments"},{value:"msp",label:"Managed Service Provider (MSP)",desc:"Deliver XpediOo as a managed service to your clients"},{value:"consulting",label:"Consulting / Advisory Partner",desc:"Advise customers on AI strategy and recommend XpediOo"},{value:"technology",label:"Technology Partner",desc:"Build integrations or complementary solutions with XpediOo"},{value:"oem",label:"OEM / White-label Partner",desc:"Embed XpediOo capabilities within your own product"}],nj=["North America","Latin America","United Kingdom","Western Europe","
57Eastern Europe","Middle East","Africa","South Asia","Southeast Asia","East Asia","Australia & New Zealand","Global / Multi-region"],rj=["Afghanistan","Albania","Algeria","Andorra","Angola","Antigua and Barbuda","Argentina","Armenia","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Brazil","Brunei","Bulgaria","Burkina Faso","Burundi","Cabo Verde","Cambodia","Cameroon","Canada","Central African Republic","Chad","Chile","China","Colombia","Comoros","Congo (Brazzaville)","Congo (Kinshasa)","Costa Rica","Croatia","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Eswatini","Ethiopia","Fiji","Finland","France","Gabon","Gambia","Georgia","Germany","Ghana","Greece","Grenada","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Honduras","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Kiribati","Kuwait","Kyrgyzstan","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Mauritania","Mauritius","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","New Zealand","Nicaragua","Niger","Nigeria","North Korea","North Macedonia","Norway","Oman","Pakistan","Palau","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Poland","Portugal","Qatar","Romania","Russia","Rwanda","Saint Kitts and Nevis","Saint Lucia","Saint Vincent and the Grenadines","Samoa","San Marino","São Tomé and Príncipe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Korea","South Sudan","Spain","Sri Lanka","Sudan","Suriname","Sweden","Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","Timor-Leste","Togo","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States","Uruguay","Uzbekistan","Vanuatu","Vatican City","Venezuela","Vietnam","Yemen","Zambia","Zimbabwe"],tX=[{value:"global",label:"Global",desc:"Sell and support XpediOo across all regions worldwide",icon:"🌐"},{value:"regional",label:"Regional",desc:"Focused on a defined group of countries or a geographic region",icon:"🗺️"},{value:"country",label:"Country-Specific",desc:"Exclusive focus on operating within a single country",icon:"📍"}],aX=["1–50 employees","51–200 employees","201–500 employees","501–2,000 employees","2,001–10,000 employees","10,000+ employees"],iX=["Fewer than 10 enterprise customers","10–50 enterprise customers","51–200 enterprise customers","200+ enterprise customers"],nX=["Under $250K annually","$250K – $1M annually","$1M – $5M annually","$5M – $20M annually","$20M+ annually"],rX={firstName:"",lastName:"",jobTitle:"",workEmail:"",phone:"",companyName:"",companyWebsite:"",companySize:"",yearFounded:"",country:"",partnerTypes:[],partnershipScope:"",scopeRegions:[],scopeCountry:"",territories:[],customerBaseSize:"",expectedPipeline:"",currentSolutions:"",motivation:"",additionalNotes:""},qa="w-full rounded-lg border border-border bg-background/50 px-3.5 py-2.5 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/60 transition-all duration-200",Ms="w-full rounded-lg border border-border bg-background/50 px-3.5 py-2.5 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/60 transition-all duration-200 appearance-none cursor-pointer";function lu({children:t,required:a}){return e.jsxs("label",{className:"text-xs font-semibold text-foreground/70 tracking-wider",children:[t,a&&e.jsx("span",{className:"text-primary ml-0.5",children:"*"})]})}function Xt({label:t,required:a,error:r,children:s}){return e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsx(lu,{required:a,children:t}),s,r&&e.jsx("span",{className:"text-xs text-red-500",children:r})]})}function Hd({icon:t,title:a,subtitle:r}){return e.jsxs("div",{className:"flex items-start gap-3 pb-4 border-b border-border mb-5",children:[e.jsx("div",{className:"h-9 w-9 rounded-xl bg-primary/10 flex items-center justify-center shrink-0 mt-0.5",children:e.jsx(t,{className:"h-4.5 w-4.5 text-primary"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-foreground",children:a}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5",children:r})]})]})}function sX(){const[t,a]=y.useState(rX),[r,s]=y.useState({}),[l,d]=y.useState(!1),[u,p]=y.useState(null),[g,h]=y.useState(()=>QU()),[x,b]=y.useState(!1),w=y.useRef(null),N=y.useRef(null),A=C=>P=>{a(z=>({...z,[C]:P.target.value})),r[C]&&s(z=>({...z,[C]:""}))},k=y.useCallback(C=>{a(P=>({...P,territories:P.territories.includes(C)?P.territories.filter(z=>z!==C):[...P.territories,C]}))},[]),I=y.useCallback(C=>{a(P=>({...P,partnerTypes:P.partnerTypes.includes(C)?P.partnerTypes.filter(z=>z!==C):[...P.partnerTypes,C]})),s(P=>({...P,partnerTypes:""}))},[]),T=y.useCallback(C=>{a(P=>({...P,scopeRegions:P.scopeRegions.includes(C)?P.scopeRegions.filter(z=>z!==C):[...P.scopeRegions,C]})),s(P=>({...P,scopeRegions:""}))},[]);function E(){const C={};if(t.firstName.trim()||(C.firstName="Required"),t.lastName.trim()||(C.lastName="Required"),t.jobTitle.trim()||(C.jobTitle="Required"),!t.workEmail.trim()||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t.workEmail))C.workEmail="Valid work email required";else{const P=t.workEmail.split("@")[1]?.toLowerCase();P&&JU.has(P)&&(C.workEmail="Please use a corporate email address")}return t.companyName.trim()||(C.companyName="Required"),t.companyWebsite.trim()||(C.companyWebsite="Required"),t.country.trim()||(C.country="Required"),t.partnerTypes.length===0&&(C.partnerTypes="Please select at least one partner type"),t.partnershipScope||(C.partnershipScope="Please select a partnership scope"),t.partnershipScope==="regional"&&t.scopeRegions.length===0&&(C.scopeRegions="Please select at least one region"),t.partnershipScope==="country"&&!t.scopeCountry.trim()&&(C.scopeCountry="Please select a country"),t.territories.length===0&&(C.territories="Please select at least one territory"),t.motivation.trim()||(C.motivation="Required"),s(C),Object.keys(C).length===0}async function R(C){if(C.preventDefault(),!!E()){d(!0),p(null);try{const P=await fetch("/api/partner-registration",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...t,_hp:N.current?.value??""})}),z=await P.json();if(!P.ok){p(z.error??"Something went wrong. Please try again.");return}ZU(),h(!0),window.scrollTo({top:0,behavior:"smooth"})}catch{p("Network error. Please check your connection and try again.")}finally{d(!1)}}}return g?e.jsx("div",{className:"min-h-screen flex items-center justify-center px-4 py-20",children:e.jsxs(v.div,{initial:{opacity:0,scale:.95,y:20}
57,animate:{opacity:1,scale:1,y:0},transition:{duration:.4,ease:"easeOut"},className:"max-w-lg w-full text-center",children:[e.jsx("div",{className:"h-24 w-24 rounded-full mx-auto mb-6 flex items-center justify-center",style:{background:"rgba(159,24,255,0.12)",boxShadow:"0 0 50px rgba(159,24,255,0.25)"},children:e.jsx(Me,{className:"h-12 w-12 text-primary"})}),e.jsx("h1",{className:"text-3xl font-bold mb-3",children:"Registration Submitted!"}),e.jsxs("p",{className:"text-muted-foreground text-base leading-relaxed mb-8",children:["Thank you for registering ",e.jsx("span",{className:"text-foreground font-medium",children:t.companyName||"your company"})," as a XpediOo partner. A confirmation has been sent to your email, and a dedicated partner success manager will reach out within ",e.jsx("span",{className:"text-foreground font-medium",children:"2 business days"}),"."]}),e.jsx("div",{className:"grid grid-cols-3 gap-3 mb-8",children:["Partner Portal Access","Sales Enablement Kit","Co-Sell Program"].map(C=>e.jsx("div",{className:"rounded-xl border border-primary/20 bg-primary/5 px-3 py-3 text-xs font-medium text-primary text-center",children:C},C))}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Questions? Email us at"," ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})]})]})}):e.jsxs("div",{className:"min-h-screen",children:[e.jsxs("section",{className:"relative overflow-hidden border-b border-border bg-gradient-to-br from-primary/5 via-background to-background py-20",children:[e.jsx("div",{className:"absolute inset-0 pointer-events-none",children:e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[900px] h-[400px] rounded-full bg-primary/6 blur-[120px]"})}),e.jsxs("div",{className:"relative max-w-3xl mx-auto px-6 text-center",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-1.5 mb-6",children:[e.jsx(Qt,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-xs font-semibold text-primary uppercase tracking-widest",children:"Global Partner Program"})]}),e.jsxs("h1",{className:"text-4xl md:text-5xl font-bold tracking-tight mb-5",children:["Become a"," ",e.jsx("span",{className:"text-primary",children:"XpediOo Partner"})]}),e.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed max-w-2xl mx-auto",children:"Join our global network of partners and bring AI-native enterprise transformation to organizations in your region. Resellers, system integrators, MSPs, and consulting firms — we have a program built for you."}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-4 mt-10",children:[{label:"Partner Countries",value:"40+"},{label:"Partner Margin",value:"Up to 35%"},{label:"Deal Registration",value:"Protected"},{label:"Enablement",value:"Dedicated"}].map(C=>e.jsxs("div",{className:"rounded-xl border border-border bg-background/60 p-4 text-center",children:[e.jsx("div",{className:"text-2xl font-bold text-primary",children:C.value}),e.jsx("div",{className:"text-xs text-muted-foreground mt-1",children:C.label})]},C.label))})]})]}),e.jsxs("section",{className:"max-w-4xl mx-auto px-6 py-16",children:[e.jsxs("div",{className:"mb-10 text-center",children:[e.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Partner Registration Form"}),e.jsx("p",{className:"text-muted-foreground",children:"Complete the form below and our partner team will review your application within 2 business days."})]}),e.jsxs("form",{onSubmit:R,className:"space-y-10",children:[e.jsx("input",{ref:N,type:"text",name:"_hp",tabIndex:-1,autoComplete:"off","aria-hidden":"true",style:{position:"absolute",left:"-9999px",width:"1px",height:"1px",opacity:0}}),e.jsxs("div",{className:"rounded-2xl border border-border bg-background/60 p-7",children:[e.jsx(Hd,{icon:ze,title:"Primary Contact",subtitle:"The person who will be our main point of contact for this partnership"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[e.jsx(Xt,{label:"First Name",required:!0,error:r.firstName,children:e.jsx("input",{type:"text",placeholder:"Jane",value:t.firstName,onChange:A("firstName"),className:ie(qa,r.firstName&&"border-red-500/60")})}),e.jsx(Xt,{label:"Last Name",required:!0,error:r.lastName,children:e.jsx("input",{type:"text",placeholder:"Smith",value:t.lastName,onChange:A("lastName"),className:ie(qa,r.lastName&&"border-red-500/60")})}),e.jsx(Xt,{label:"Job Title",required:!0,error:r.jobTitle,children:e.jsx("input",{type:"text",placeholder:"VP of Sales",value:t.jobTitle,onChange:A("jobTitle"),className:ie(qa,r.jobTitle&&"border-red-500/60")})}),e.jsx(Xt,{label:"Work Email",required:!0,error:r.workEmail,children:e.jsx("input",{type:"email",placeholder:"[email protected]",value:t.workEmail,onChange:A("workEmail"),className:ie(qa,r.workEmail&&"border-red-500/60")})}),e.jsx(Xt,{label:"Phone Number",children:e.jsx("input",{type:"tel",placeholder:"+1 (555) 000-0000",value:t.phone,onChange:A("phone"),className:qa})})]})]}),e.jsxs("div",{className:"rounded-2xl border border-border bg-background/60 p-
577",children:[e.jsx(Hd,{icon:yi,title:"Company Information",subtitle:"Tell us about your organisation"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[e.jsx(Xt,{label:"Company Name",required:!0,error:r.companyName,children:e.jsx("input",{type:"text",placeholder:"Acme Technologies Ltd.",value:t.companyName,onChange:A("companyName"),className:ie(qa,r.companyName&&"border-red-500/60")})}),e.jsx(Xt,{label:"Company Website",required:!0,error:r.companyWebsite,children:e.jsx("input",{type:"url",placeholder:"https://acme.com",value:t.companyWebsite,onChange:A("companyWebsite"),className:ie(qa,r.companyWebsite&&"border-red-500/60")})}),e.jsx(Xt,{label:"Headquarters Country / Region",required:!0,error:r.country,children:e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:t.country,onChange:A("country"),className:ie(Ms,r.country&&"border-red-500/60",!t.country&&"text-muted-foreground"),children:[e.jsx("option",{value:"",children:"Select country"}),rj.map(C=>e.jsx("option",{value:C,children:C},C))]}),e.jsx(na,{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"})]})}),e.jsx(Xt,{label:"Company Size",children:e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:t.companySize,onChange:A("companySize"),className:Ms,children:[e.jsx("option",{value:"",children:"Select size"}),aX.map(C=>e.jsx("option",{value:C,children:C},C))]}),e.jsx(na,{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"})]})}),e.jsx(Xt,{label:"Year Founded",children:e.jsx("input",{type:"number",placeholder:"2010",min:"1900",max:new Date().getFullYear(),value:t.yearFounded,onChange:A("yearFounded"),className:qa})})]})]}),e.jsxs("div",{className:"rounded-2xl border border-border bg-background/60 p-7",children:[e.jsx(Hd,{icon:Qt,title:"Partnership Details",subtitle:"Help us understand how you would like to work with XpediOo"}),e.jsxs("div",{className:"mb-6",children:[e.jsx(lu,{required:!0,children:"Partner Type"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 mb-3",children:"Select all types that apply to your business model"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:eX.map(C=>{const P=t.partnerTypes.includes(C.value);return e.jsxs("label",{onClick:()=>I(C.value),className:ie("flex items-start gap-3 rounded-xl border p-4 cursor-pointer transition-all duration-150 select-none",P?"border-primary bg-primary/5 shadow-[0_0_0_1px_rgba(159,24,255,0.3)]":"border-border hover:border-primary/40 hover:bg-muted/50"),children:[e.jsx("span",{className:ie("h-4 w-4 rounded border mt-0.5 shrink-0 flex items-center justify-center transition-colors",P?"bg-primary border-primary":"border-muted-foreground/40 bg-background"),children:P&&e.jsx("svg",{className:"h-2.5 w-2.5 text-white",viewBox:"0 0 10 10",fill:"none",children:e.jsx("path",{d:"M1.5 5l2.5 2.5 4.5-4.5",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-semibold text-foreground",children:C.label}),e.jsx("div",{className:"text-xs text-muted-foreground mt-0.5 leading-relaxed",children:C.desc})]})]},C.value)})}),r.partnerTypes&&e.jsx("span",{className:"text-xs text-red-500 mt-2 block",children:r.partnerTypes})]}),e.jsxs("div",{className:"mb-6",children:[e.jsx(lu,{required:!0,children:"Partnership Scope"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 mb-3",children:"How broadly do you intend to operate as a XpediOo partner?"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3",children:tX.map(C=>{const P=t.partnershipScope===C.value;return e.jsxs("label",{onClick:()=>{a(z=>({...z,partnershipScope:C.value,scopeRegions:[],scopeCountry:""})),s(z=>({...z,partnershipScope:"",scopeRegions:"",scopeCountry:""}))},className:ie("flex flex-col items-center text-center gap-2 rounded-xl border p-5 cursor-pointer transition-all duration-150 select-none",P?"border-primary bg-primary/5 shadow-[0_0_0_1px_rgba(159,24,255,0.3)]":"border-border hover:border-primary/40 hover:bg-muted/50"),children:[e.jsx("span",{className:"text-2xl",children:C.icon}),e.jsx("span",{className:ie("text-sm font-semibold",P?"text-primary":"text-foreground"),children:C.label}),e.jsx("span",{className:"text-xs text-muted-foreground leading-relaxed",children:C.desc}
57),e.jsx("span",{className:ie("h-4 w-4 rounded-full border-2 mt-1 flex items-center justify-center transition-colors shrink-0",P?"border-primary bg-primary":"border-muted-foreground/40"),children:P&&e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-white"})})]},C.value)})}),r.partnershipScope&&e.jsx("span",{className:"text-xs text-red-500 mt-2 block",children:r.partnershipScope}),t.partnershipScope==="regional"&&e.jsxs("div",{className:"mt-4 rounded-xl border border-primary/20 bg-primary/4 p-4",children:[e.jsxs("p",{className:"text-xs font-semibold text-foreground/70 tracking-wider mb-3",children:["Select Regions",e.jsx("span",{className:"text-primary ml-0.5",children:"*"})]}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-2",children:nj.map(C=>{const P=t.scopeRegions.includes(C);return e.jsxs("label",{onClick:()=>T(C),className:ie("flex items-center gap-2 rounded-lg border px-3 py-2 text-sm cursor-pointer transition-colors select-none",P?"border-primary bg-primary/8 text-foreground":"border-border hover:border-primary/40 hover:bg-muted/50 text-muted-foreground"),children:[e.jsx("span",{className:ie("h-4 w-4 rounded border flex items-center justify-center shrink-0 transition-colors",P?"bg-primary border-primary":"border-border bg-background"),children:P&&e.jsx("svg",{className:"h-2.5 w-2.5 text-white",viewBox:"0 0 10 10",fill:"none",children:e.jsx("path",{d:"M1.5 5l2.5 2.5 4.5-4.5",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})})}),C]},C)})}),t.scopeRegions.length>0&&e.jsxs("div",{className:"mt-2 flex items-center justify-between",children:[e.jsxs("span",{className:"text-xs text-muted-foreground",children:[t.scopeRegions.length," region",t.scopeRegions.length>1?"s":""," selected"]}),e.jsx("button",{type:"button",onClick:()=>a(C=>({...C,scopeRegions:[]})),className:"text-xs text-primary hover:underline",children:"Clear all"})]}),r.scopeRegions&&e.jsx("p",{className:"text-xs text-red-500 mt-2",children:r.scopeRegions})]}),t.partnershipScope==="country"&&e.jsxs("div",{className:"mt-4 rounded-xl border border-primary/20 bg-primary/4 p-4",children:[e.jsxs("p",{className:"text-xs font-semibold text-foreground/70 tracking-wider mb-3",children:["Select Country",e.jsx("span",{className:"text-primary ml-0.5",children:"*"})]}),e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:t.scopeCountry,onChange:A("scopeCountry"),className:ie(Ms,"bg-background",r.scopeCountry&&"border-red-500/60",!t.scopeCountry&&"text-muted-foreground"),children:[e.jsx("option",{value:"",children:"Select a country"}),rj.map(C=>e.jsx("option",{value:C,children:C},C))]}),e.jsx(na,{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"})]}),r.scopeCountry&&e.jsx("p",{className:"text-xs text-red-500 mt-2",children:r.scopeCountry})]})]}),e.jsxs("div",{className:"mb-5",children:[e.jsx(lu,{required:!0,children:"Target Sales Territories"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 mb-3",children:"Select all regions where you plan to sell XpediOo"}),e.jsxs("div",{ref:w,className:"relative",children:[e.jsxs("button",{type:"button",onClick:()=>b(C=>!C),className:ie(Ms,"text-left flex items-center justify-between",x&&"ring-2 ring-primary/40 border-primary/60"),children:[e.jsx("span",{className:t.territories.length===0?"text-muted-foreground":"text-foreground",children:t.territories.length===0?"Select territories":t.territories.length===1?t.territories[0]:`${t.territories.length} territories selected`}),e.jsx(na,{className:ie("h-4 w-4 text-muted-foreground ml-2 shrink-0 transition-transform",x&&"rotate-180")})]}),x&&e.jsxs("div",{className:"absolute z-50 left-0 right-0 mt-1 rounded-xl border border-border bg-background shadow-xl overflow-hidden",children:[e.jsx("div",{className:"grid grid-cols-2 gap-0 max-h-64 overflow-y-auto p-1",children:nj.map(C=>{const P=t.territories.includes(C);return e.jsxs("label",{onClick:()=>k(C),className:ie("flex items-center gap-2.5 px-3 py-2.5 rounded-lg text-sm cursor-pointer transition-colors select-none",P?"bg-primary/8 text-foreground":"hover:bg-muted text-foreground"),children:[e.jsx("span",{className:ie("h-4 w-4 roun
57ded border flex items-center justify-center shrink-0 transition-colors",P?"bg-primary border-primary":"border-border bg-background"),children:P&&e.jsx("svg",{className:"h-2.5 w-2.5 text-white",viewBox:"0 0 10 10",fill:"none",children:e.jsx("path",{d:"M1.5 5l2.5 2.5 4.5-4.5",stroke:"currentColor",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"})})}),C]},C)})}),t.territories.length>0&&e.jsxs("div",{className:"border-t border-border px-3 py-2 flex items-center justify-between",children:[e.jsxs("span",{className:"text-xs text-muted-foreground",children:[t.territories.length," selected"]}),e.jsx("button",{type:"button",onClick:()=>a(C=>({...C,territories:[]})),className:"text-xs text-primary hover:underline",children:"Clear all"})]})]})]}),r.territories&&e.jsx("span",{className:"text-xs text-red-500 mt-2 block",children:r.territories})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-5",children:[e.jsx(Xt,{label:"Current Enterprise Customer Base",children:e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:t.customerBaseSize,onChange:A("customerBaseSize"),className:Ms,children:[e.jsx("option",{value:"",children:"Select range"}),iX.map(C=>e.jsx("option",{value:C,children:C},C))]}),e.jsx(na,{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"})]})}),e.jsx(Xt,{label:"Expected Annual Pipeline (XpediOo)",children:e.jsxs("div",{className:"relative",children:[e.jsxs("select",{value:t.expectedPipeline,onChange:A("expectedPipeline"),className:Ms,children:[e.jsx("option",{value:"",children:"Select range"}),nX.map(C=>e.jsx("option",{value:C,children:C},C))]}),e.jsx(na,{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"})]})})]})]}),e.jsxs("div",{className:"rounded-2xl border border-border bg-background/60 p-7",children:[e.jsx(Hd,{icon:ct,title:"Business Context",subtitle:"Help us tailor your onboarding and enablement plan"}),e.jsxs("div",{className:"space-y-5",children:[e.jsx(Xt,{label:"Current Solutions You Sell",children:e.jsx("textarea",{placeholder:"e.g. ServiceNow, Salesforce, Microsoft 365, SAP, custom enterprise software…",value:t.currentSolutions,onChange:A("currentSolutions"),rows:3,className:ie(qa,"resize-none")})}),e.jsx(Xt,{label:"Why do you want to partner with XpediOo?",required:!0,error:r.motivation,children:e.jsx("textarea",{placeholder:"Tell us about your strategic rationale, target verticals, and how XpediOo fits your portfolio…",value:t.motivation,onChange:A("motivation"),rows:4,className:ie(qa,"resize-none",r.motivation&&"border-red-500/60")})}),e.jsx(Xt,{label:"Anything else we should know?",children:e.jsx("textarea",{placeholder:"Existing relationships, competitive context, preferred engagement model, or questions for our partner team…",value:t.additionalNotes,onChange:A("additionalNotes"),rows:3,className:ie(qa,"resize-none")})})]})]}),u&&e.jsx("div",{className:"rounded-xl border border-red-500/30 bg-red-500/10 px-5 py-4 text-sm text-red-500",children:u}),e.jsxs("div",{className:"flex flex-col items-center gap-3 pt-2",children:[e.jsx(ve,{type:"submit",disabled:l,className:"w-full max-w-md h-12 bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_24px_rgba(159,24,255,0.35)] hover:shadow-[0_0_40px_rgba(159,24,255,0.55)] transition-all duration-300 font-semibold text-base",children:l?e.jsxs(e.Fragment,{children:[e.jsx(Wt,{className:"mr-2 h-4 w-4 animate-spin"}),"Submitting Registration…"]}):e.jsxs(e.Fragment,{children:["Submit Partner Registration ",e.jsx(Te,{className:"ml-2 h-4 w-4"})]})}),e.jsx("p",{className:"text-xs text-muted-foreground text-center max-w-md",children:"By submitting, you agree to XpediOo's Partner Program terms and Privacy Policy. Our team will review your application and respond within 2 business days."})]})]})]})]})}const kt=y.forwardRef(({className:t,type:a,...r},s)=>e.jsx("input",{type:a,className:ie("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:s,...r}));kt.displayName="Input";var oX="Label",lS=y.forwardRef((t,a)=>
57e.jsx(qe.label,{...t,ref:a,onMouseDown:r=>{r.target.closest("button, input, select, textarea")||(t.onMouseDown?.(r),!r.defaultPrevented&&r.detail>1&&r.preventDefault())}}));lS.displayName=oX;var cS=lS;const lX=Bu("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),St=y.forwardRef(({className:t,...a},r)=>e.jsx(cS,{ref:r,className:ie(lX(),t),...a}));St.displayName=cS.displayName;const Pf="/".replace(/\/$/,"");function cX(){const{user:t,isLoading:a,login:r,verifyTotp:s,setup:l}=ux(),[,d]=Sr(),[u,p]=y.useState("credentials"),[g,h]=y.useState(!0),[x,b]=y.useState(""),[w,N]=y.useState(""),[A,k]=y.useState(""),[I,T]=y.useState(!1),[E,R]=y.useState(""),[C,P]=y.useState(""),[z,V]=y.useState(!1),[D,K]=y.useState(""),[ne,le]=y.useState(!1),ce=y.useRef(null);y.useEffect(()=>{!a&&t&&d("/reports")},[t,a,d]),y.useEffect(()=>{fetch(`${Pf}/api/auth/setup-needed`,{credentials:"include"}).then(X=>X.json()).then(X=>{X.needed&&p("setup")}).catch(()=>{}).finally(()=>h(!1))},[]),y.useEffect(()=>{const X=new URLSearchParams(window.location.search).get("reset");X&&(K(X),p("reset"))},[]),y.useEffect(()=>{u==="totp"&&setTimeout(()=>ce.current?.focus(),50)},[u]);async function ye(X){X.preventDefault(),P(""),V(!0);try{u==="setup"?(await l(x,w,A),d("/reports")):(await r(x,A)).requires2fa?(R(""),p("totp")):d("/reports")}catch(oe){P(oe instanceof Error?oe.message:"Something went wrong")}finally{V(!1)}}async function se(X){X.preventDefault(),P(""),V(!0);try{const oe=await fetch(`${Pf}/api/auth/request-password-reset`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:x,email:w})}),M=await oe.json();if(!oe.ok)throw new Error(M.error??"Unable to request a reset");le(!0)}catch(oe){P(oe instanceof Error?oe.message:"Unable to request a reset")}finally{V(!1)}}async function ue(X){X.preventDefault(),P(""),V(!0);try{const oe=await fetch(`${Pf}/api/auth/reset-password`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:D,password:A})}),M=await oe.json();if(!oe.ok)throw new Error(M.error??"Unable to reset password");k(""),K(""),p("credentials"),window.history.replaceState({},"",window.location.pathname),P("")}catch(oe){P(oe instanceof Error?oe.message:"Unable to reset password")}finally{V(!1)}}async function _(X){X.preventDefault(),P(""),V(!0);try{await s(E),d("/reports")}catch(oe){P(oe instanceof Error?oe.message:"Invalid code"),R(""),ce.current?.focus()}finally{V(!1)}}function ee(X){const oe=X.target.value.replace(/\D/g,"").slice(0,6);R(oe)}return a||g?e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background",children:e.jsx(Wt,{className:"h-6 w-6 animate-spin text-primary"})}):e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background p-4",children:e.jsxs("div",{className:"w-full max-w-sm",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-8 justify-center",children:[e.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center shadow-[0_0_16px_rgba(159,24,255,0.4)]",children:e.jsx(We,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-lg font-bold text-foreground leading-tight",children:"XpediOo"}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Admin Portal"})]})]}),e.jsx("div",{className:"border border-border/60 bg-card rounded-2xl p-8 shadow-xl",children:u==="totp"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(Js,{className:"h-5 w-5 text-primary"}),e.jsx("h1",{className:"text-xl font-bold text-foreground",children:"Two-factor authentication"})]}),e.jsx("p",{className:"text-sm text-muted-foreground mb-6",children:"Enter the 6-digit code from your authenticator app."}),e.jsxs("form",{onSubmit:_,className:"space-y-4",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(St,{htmlFor:"totp",className:"text-sm font-medium",children:"Authentication code"}),e.jsx(kt,{ref:ce,id:"totp",type:"text",inputMode:"numeric",autoComplete:"one-time-code",placeholder:"000000",value:E,onChange:ee,maxLength:6,className:"text-center text-2xl tracking-widest font-mono",disabled:z,required:!0})]}),C&&e.jsx("div",{className:"text-sm text-destructive bg-destructive/10 border border-destructive/20 rounded-lg px-3 py-2",children:C}),e.jsx(ve,{type:"submit",disabled:z||E.length!==6,className:"w-full bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_16px_rgba(159,24,255,0.25)]",children:z?e.jsxs(e.Fragment,{children:[e.jsx(Wt,{className:"h-4 w-4 mr-2 animate-spin"}),"Verifying…"]}):"Verify & Sign In"}),e.jsx("button",{type:"button",onClick:()=>{p("credentials"),P(""),R("")},className:"w-full text-sm text-muted-foreground hover:text-foreground transition-colors",children:"← Back to sign in"})]})]}):u==="forgot"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(Wg,{className:"h-5 w-5 text-primary"}),e.jsx("h1",{className:"text-xl font-bold text-foreground",children:"Reset your password"})]}),e.jsx("p",{className:"text-sm text-muted-foreground mb-6",children:"Enter your username and recovery email. If they match an account, we’ll send a reset link."}),ne?e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex gap-3 rounded-lg border border-emerald-500/20 bg-emerald-500/10 px-3 py-3 text-sm text-emerald-700 dark:text-emerald-300",children:[e.jsx(Me,{className:"h-5 w-5 shrink-0"}),e.jsx("span",{children:"Check your inbox for a password reset link. The link expires in 30 minutes."})]}),e.jsxs("button",{type:"button",onClick:()=>{p("credentials"),le(!1),P("")},className:"w-full text-sm text-muted-foreground hover:text-foreground transition-colors",children:[e.jsx(jr,{className:"inline h-3.5 w-3.5 mr-1"}),"Back to sign in"]})]}):e.jsxs("form",{onSubmit:se,className:"space-y-4",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(St,{htmlFor:"reset-username",className:"text-sm font-medium",children:"Username"}),e.jsx(kt,{id:"reset-username",value:x,onChange:X=>b(X.target.value),placeholder:"admin",required:!0,disabled:z})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(St,{htmlFor:"reset-email",className:"text-sm font-medium",children:"Recovery email"}),e.jsx(kt,{id:"reset-email",type:"email",autoComplete:"email",value:w,onChange:X=>N(X.target.value),placeholder:"[email protected]",required:!0,disabled:z})]}),C&&e.jsx("div",{className:"text-sm text-destructive bg-destructive/10 border border-destructive/20 rounded-lg px-3 py-2",children:C}),e.jsx(ve,{type:"submit",disabled:z,className:"w-full bg-primary text-primary-foreground hover:bg-primary/90",children:z?e.jsxs(e.Fragment,{children:[e.jsx(Wt,{className:"h-4 w-4 mr-2 animate-spin"}),"Sending…"]}):"Email Reset Link"}),e.jsxs("button",{type:"button",onClick:()=>{p("credentials"),P("")},className:"w-full text-sm text-muted-foreground hover:text-foreground transition-colors",children:[e.jsx(jr,{className:"inline h-3.5 w-3.5 mr-1"}),"Back to sign in"]})]})]}):u==="reset"?e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"text-xl font-bold text-foreground mb-1",children:"Choose a new password"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-6",children:"Set a new password with at least 8 characters."}),e.jsxs("form",{onSubmit:ue,className:"space-y-4",children:[e.jsx("input",{type:"text",name:"username",autoComplete:"username",value:x,onChange:X=>b(X.target.value),className:"hidden",tabIndex:-1,"aria-hidden":"true"}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(St,{htmlFor:"new-password",className:"text-sm font-medium",children:"New password"}),e.jsx(kt,{id:"new-password",type:I?"text":"password",autoComplete:"new-password",value:A,onChange:X=>k(X.target.value),minLength:8,required:!0,disabled:z,className:"pr-10"})]}),C&&e.jsx("div",{className:"text-sm text-destructive bg-destructive/10 border border-destructive/20 rounded-lg px-3 py-2",children:C}),e.jsx(ve,{type:"submit",disabled:z||A.length<8,className:"w-full bg-primary text-primary-foreground hover:bg-primary/90",children:z?e.jsxs(e.Fragment,{children:[e.jsx(Wt,{className:"h-4 w-4 mr-2 animate-spin"}),"Saving…"]}):"Save New Password"})]})]}):e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"text-xl font-bold text-foreground mb-1",children:u==="setup"?"Create Admin Account":"Sign in"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-6",children:u==="setup"?"No accounts exist yet. Create the first admin account to get started.":"Sign in to access reports and analytics."}),e.jsxs("form",{onSubmit:ye,className:"space-y-4",children:[u==="setup"&&e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(St,{htmlFor:"email",className:"text-sm font-medium",children:"Recovery email"}),e.jsx(kt,{id:"email",type:"email",autoComplete:"email",placeholder:"[email protected]",value:w,onChange:X=>N(X.target.value),required:!0,disabled:z})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(St,{htmlFor:"username",className:"text-sm font-medium",children:"Username"}),e.jsx(kt,{id:"username",type:"text",autoComplete:"username",placeholder:"admin",value:x,onChange:X=>b(X.target.value),required:!0,disabled:z})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(St,{htmlFor:"password",className:"text-sm font-medium",children:"Password"}),e.jsxs("div",{className:"relative",children:[e.jsx(kt,{id:"password",type:I?"text":"password",autoComplete:u==="setup"?"new-password":"current-password",placeholder:u==="setup"?"Min. 8 characters":"••••••••",value:A,onChange:X=>k(X.target.value),required:!0,disabled:z,className:"pr-10"}),e.jsx("button",{type:"button",onClick:()=>T(X=>!X),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors",tabIndex:-1,
57children:I?e.jsx(wN,{className:"h-4 w-4"}):e.jsx(Xi,{className:"h-4 w-4"})})]})]}),C&&e.jsx("div",{className:"text-sm text-destructive bg-destructive/10 border border-destructive/20 rounded-lg px-3 py-2",children:C}),e.jsx(ve,{type:"submit",disabled:z,className:"w-full bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_16px_rgba(159,24,255,0.25)]",children:z?e.jsxs(e.Fragment,{children:[e.jsx(Wt,{className:"h-4 w-4 mr-2 animate-spin"}),u==="setup"?"Creating account…":"Signing in…"]}):u==="setup"?"Create Account & Sign In":"Sign In"}),u!=="setup"&&e.jsx("button",{type:"button",onClick:()=>{p("forgot"),P(""),le(!1)},className:"w-full text-sm text-primary hover:text-primary/80 transition-colors",children:"Forgot password?"})]})]})})]})})}const dX=Bu("whitespace-nowrap inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover-elevate ",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow-xs",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-destructive-foreground shadow-xs",outline:"text-foreground border [border-color:var(--badge-outline)]"}},defaultVariants:{variant:"default"}});function Qx({className:t,variant:a,...r}){return e.jsx("div",{className:ie(dX({variant:a}),t),...r})}const Ha="/".replace(/\/$/,"");function Mu(t){return new Date(t).toLocaleDateString("en-GB",{day:"2-digit",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})}function mm(t,a=[]){const[r,s]=y.useState(null),[l,d]=y.useState(!0),[u,p]=y.useState(""),g=y.useCallback(()=>{d(!0),p(""),fetch(t,{credentials:"include"}).then(h=>{if(!h.ok)throw new Error(`HTTP ${h.status}`);return h.json()}).then(s).catch(h=>p(h.message)).finally(()=>d(!1))},[t]);return y.useEffect(()=>{g()},[g,...a]),{data:r,loading:l,error:u,reload:g}}function pm(){return e.jsx("div",{className:"flex items-center justify-center py-16",children:e.jsx(Wt,{className:"h-6 w-6 animate-spin text-primary"})})}function Ln({msg:t}){return e.jsx("div",{className:"text-sm text-destructive bg-destructive/10 border border-destructive/20 rounded-lg px-4 py-3",children:t})}function uX(){const{data:t,loading:a,error:r,reload:s}=mm(`${Ha}/api/admin/demo-requests`);return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("h2",{className:"font-semibold text-foreground",children:["Demo Requests ",e.jsxs("span",{className:"text-muted-foreground font-normal text-sm",children:["(",t?.count??0,")"]})]}),e.jsxs(ve,{size:"sm",variant:"outline",onClick:s,children:[e.jsx(Tr,{className:"h-3.5 w-3.5 mr-1.5"}),"Refresh"]})]}),a&&e.jsx(pm,{}),r&&e.jsx(Ln,{msg:r}),t&&!a&&e.jsx("div",{className:"overflow-x-auto rounded-xl border border-border/60",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-border/60 bg-muted/40",children:[e.jsx("th",{className:"text-left px-4 py-3 font-medium text-muted-foreground",children:"Email"}),e.jsx("th",{className:"text-left px-4 py-3 font-medium text-muted-foreground",children:"Company"}),e.jsx("th",{className:"text-left px-4 py-3 font-medium text-muted-foreground",children:"IP"}),e.jsx("th",{className:"text-left px-4 py-3 font-medium text-muted-foreground",children:"Date"})]})}),e.jsxs("tbody",{children:[t.data.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:4,className:"text-center py-8 text-muted-foreground",children:"No demo requests yet"})}),t.data.map(l=>e.jsxs("tr",{className:"border-b border-border/40 hover:bg-muted/20 transition-colors",children:[e.jsx("td",{className:"px-4 py-3 font-medium text-foreground",children:l.email}),e.jsx("td",{className:"px-4 py-3 text-muted-foreground",children:l.company}),e.jsx("td",{className:"px-4 py-3 text-muted-foreground font-mono text-xs",children:l.ip}),e.jsx("td",{className:"px-4 py-3 text-muted-foreground text-xs",children:Mu(l.createdAt)})]},l.id))]})]})})]})}function mX(){const{data:t,loading:a,error:r,reload:s}=mm(`${Ha}
57/api/admin/partner-registrations`),[l,d]=y.useState(null);return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("h2",{className:"font-semibold text-foreground",children:["Partner Registrations ",e.jsxs("span",{className:"text-muted-foreground font-normal text-sm",children:["(",t?.count??0,")"]})]}),e.jsxs(ve,{size:"sm",variant:"outline",onClick:s,children:[e.jsx(Tr,{className:"h-3.5 w-3.5 mr-1.5"}),"Refresh"]})]}),a&&e.jsx(pm,{}),r&&e.jsx(Ln,{msg:r}),t&&!a&&e.jsxs("div",{className:"space-y-2",children:[t.data.length===0&&e.jsx("div",{className:"text-center py-8 text-muted-foreground text-sm",children:"No partner registrations yet"}),t.data.map(u=>e.jsxs("div",{className:"border border-border/60 rounded-xl overflow-hidden",children:[e.jsxs("button",{onClick:()=>d(l===u.id?null:u.id),className:"w-full flex items-center justify-between px-5 py-4 hover:bg-muted/20 transition-colors text-left",children:[e.jsxs("div",{className:"flex items-center gap-4 min-w-0",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"font-medium text-foreground text-sm",children:[u.firstName," ",u.lastName]}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[u.workEmail," · ",u.companyName]})]}),e.jsx(Qx,{variant:"outline",className:"text-xs shrink-0",children:u.partnershipScope}),e.jsx("span",{className:"text-xs text-muted-foreground shrink-0 hidden sm:block",children:Mu(u.createdAt)})]}),l===u.id?e.jsx(lT,{className:"h-4 w-4 text-muted-foreground shrink-0 ml-2"}):e.jsx(na,{className:"h-4 w-4 text-muted-foreground shrink-0 ml-2"})]}),l===u.id&&e.jsx("div",{className:"border-t border-border/40 px-5 py-4 bg-muted/10 grid grid-cols-2 md:grid-cols-3 gap-4 text-sm",children:[["Job Title",u.jobTitle],["Country",u.country],["Company",u.companyName],["Partner Types",u.partnerTypes],["Territories",u.territories],["Scope Detail",u.scopeDetail??"—"],["Date",Mu(u.createdAt)]].map(([p,g])=>e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-0.5",children:p}),e.jsx("div",{className:"text-foreground font-medium break-words",children:g})]},p))})]},u.id))]})]})}function pX(){const{data:t,loading:a,error:r,reload:s}=mm(`${Ha}/api/admin/analytics`);if(a)return e.jsx(pm,{});if(r)return e.jsx(Ln,{msg:r});if(!t)return null;const l=Math.max(...t.daily.map(d=>d.visits),1);return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h2",{className:"font-semibold text-foreground",children:"Page Analytics"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("a",{href:"https://plausible.io/xpedioo.ai",target:"_blank",rel:"noreferrer",className:"inline-flex h-9 items-center rounded-md border border-primary/30 px-3 text-xs font-medium text-primary hover:bg-primary/10 transition-colors",children:[e.jsx(vN,{className:"h-3.5 w-3.5 mr-1.5"}),"Open Plausible"]}),e.jsxs(ve,{size:"sm",variant:"outline",onClick:s,children:[e.jsx(Tr,{className:"h-3.5 w-3.5 mr-1.5"}),"Refresh"]})]})]}),e.jsx("div",{className:"rounded-lg border border-primary/20 bg-primary/5 px-4 py-3 text-xs text-muted-foreground",children:"Plausible is now the primary analytics dashboard for production traffic. The summary below contains historical internal analytics collected before the migration."}),e.jsx("div",{className:"grid grid-cols-3 gap-4",children:[{label:"All-Time Views",value:t.totals.allTime.toLocaleString()},{label:"Last 7 Days",value:t.totals.last7Days.toLocaleString()},{label:"Last 30 Days",value:t.totals.last30Days.toLocaleString()}].map(d=>e.jsxs("div",{className:"border border-border/60 bg-card rounded-xl p-5",children:[e.jsx("div",{className:"text-2xl font-bold text-primary",children:d.value}),e.jsx("div",{className:"text-xs text-muted-foreground mt-1",children:d.label})]},d.label))}),t.daily.length>0&&e.jsxs("div",{className:"border border-border/60 rounded-xl p-5",children:[e.jsx("div",{className:"text-sm font-medium text-foreground mb-4",children:"Daily Views — Last 30 Days"}),e.jsx("div",{className:"flex items-end gap-1 h-24",children:t.daily.map(d=>e.jsxs("div",{className:"flex-1 flex flex-col items-center gap-1 group relative",children:[e.jsx("div",{className:"w-full bg-primary/40 group-hover:bg-primary/70 rounded-sm transition-colors",style:{height:`${Math.max(2,d.visits/l*88)}px`}}),e.jsx("div",{className:"absolute -top-6 left-1/2 -translate-x-1/2 text-xs bg-popover border border-border px-1.5 py-0.5 rounded opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap z-10",children:d.visits})]},d.day))}),e.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground mt-2",children:[e.jsx("span",{children:t.daily[0]?.day}),e.jsx("span",{children:t.daily[t.daily.length-1]?.day})]})]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"border border-border/60 rounded-xl p-5",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(Ht,{className:"h-4 w-4 text-primary"}),e.jsx("span",{className:"text-sm font-medium text-foreground",children:"Top Pages"})]}),e.jsx("div",{className:"space-y-2",children:t.byPage.map(d=>e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground font-mono text-xs truncate flex-1",children:d.path||"/"}),e.jsx("span",{className:"font-semibold text-foreground ml-3 shrink-0",children:d.visits.toLocaleStr
57ing()})]},d.path))})]}),e.jsxs("div",{className:"border border-border/60 rounded-xl p-5",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(Qt,{className:"h-4 w-4 text-primary"}),e.jsx("span",{className:"text-sm font-medium text-foreground",children:"Top Countries"})]}),e.jsx("div",{className:"space-y-2",children:t.byCountry.map(d=>e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:d.country??"Unknown"}),e.jsx("span",{className:"font-semibold text-foreground",children:d.visits.toLocaleString()})]},d.country??"unknown"))})]})]})]})}function hX({onClose:t,onEnabled:a}){const[r,s]=y.useState("qr"),[l,d]=y.useState(""),[u,p]=y.useState(""),[g,h]=y.useState(""),[x,b]=y.useState(""),[w,N]=y.useState(!0),[A,k]=y.useState(!1);y.useEffect(()=>{fetch(`${Ha}/api/auth/2fa/setup`,{credentials:"include"}).then(T=>T.json()).then(T=>{p(T.secret),d(T.qrDataUrl)}).catch(()=>b("Failed to load setup. Please try again.")).finally(()=>N(!1))},[]);async function I(T){T.preventDefault(),b(""),k(!0);try{const E=await fetch(`${Ha}/api/auth/2fa/enable`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({secret:u,code:g})});if(!E.ok){const R=await E.json();throw new Error(R.error)}a()}catch(E){b(E instanceof Error?E.message:"Failed to enable 2FA"),h("")}finally{k(!1)}}return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:e.jsxs("div",{className:"w-full max-w-md bg-card border border-border/60 rounded-2xl shadow-2xl",children:[e.jsxs("div",{className:"flex items-center justify-between px-6 pt-6 pb-4 border-b border-border/40",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Be,{className:"h-5 w-5 text-primary"}),e.jsx("span",{className:"font-bold text-foreground",children:"Set up Two-Factor Authentication"})]}),e.jsx("button",{onClick:t,className:"text-muted-foreground hover:text-foreground transition-colors",children:e.jsx(eo,{className:"h-5 w-5"})})]}),e.jsx("div",{className:"px-6 py-5",children:w?e.jsx("div",{className:"flex justify-center py-8",children:e.jsx(Wt,{className:"h-6 w-6 animate-spin text-primary"})}):x&&!l?e.jsx(Ln,{msg:x}):r==="qr"?e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Scan this QR code with your authenticator app (Google Authenticator, Authy, 1Password, etc.)."}),l&&e.jsx("div",{className:"flex justify-center p-4 bg-white rounded-xl",children:e.jsx("img",{src:l,alt:"2FA QR Code",className:"h-48 w-48"})}),e.jsxs("div",{className:"bg-muted/40 rounded-lg px-4 py-3",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Manual entry key"}),e.jsx("div",{className:"font-mono text-sm text-foreground break-all select-all",children:u})]}),e.jsx(ve,{className:"w-full",onClick:()=>{s("verify"),b("")},children:"I've scanned the code →"})]}):e.jsxs("form",{onSubmit:I,className:"space-y-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Enter the 6-digit code from your authenticator app to confirm setup."}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(St,{htmlFor:"setup-code",className:"text-sm font-medium",children:"Verification code"}),e.jsx(kt,{id:"setup-code",type:"text",inputMode:"numeric",autoComplete:"one-time-code",placeholder:"000000",value:g,onChange:T=>h(T.target.value.replace(/\D/g,"").slice(0,6)),maxLength:6,className:"text-center text-2xl tracking-widest font-mono",autoFocus:!0,required:!0,disabled:A})]}),x&&e.jsx(Ln,{msg:x}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(ve,{type:"button",variant:"outline",className:"flex-1",onClick:()=>{s("qr"),b("")},children:"← Back"}),e.jsx(ve,{type:"submit",className:"flex-1 bg-primary text-primary-foreground hover:bg-primary/90",disabled:A||g.length!==6,children:A?e.jsxs(e.Fragment,{children:[e.jsx(Wt,{className:"h-4 w-4 mr-1.5 animate-spin"}),"Enabling…"]}):"Enable 2FA"})]})]})})]})})}function fX({onClose:t,onDisabled:a}){const[r,s]=y.useState(""),[l,d]=y.useState(""),[u,p]=y.useState(!1);async function g(h){h.preventDefault(),d(""),p(!0);try{const x=await fetch(`${Ha}/api/auth/2fa/disable`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:r})});if(!x.ok){const b=await x.json();throw new Error(b.error)}a()}catch(x){d(x instanceof Error?x.message:"Failed to disable 2FA"),s("")}finally{p(!1)}}return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm p-4",children:e.jsxs("div",{className:"w-full max-w-sm bg-card border border-border/60 rounded-2xl shadow-2xl",children:[e.jsxs("div",{className:"flex items-center justify-between px-6 pt-6 pb-4 border-b border-border/40",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx($f,{className:"h-5 w-5 text-destructive"}),e.jsx("span",{className:"font-bold text-foreground",children:"Disable Two-Factor Authentication"})]}),e.jsx("button",{onClick:t,className:"text-muted-foreground hover:text-foreground transition-colors",children:e.jsx(eo,{className:"h-5 w-5"})})]}),e.jsxs("form",{onSubmit:g,className:"px-6 py-5 space-y-4",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Enter your current authenticator code to confirm you want to disable 2FA."}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(St,{htmlFor:"disable-code",className:"text-sm font-medium",children:"Authentication code"}),e.jsx(kt,{id:"disable-code",type:"text",inputMode:"numeric",autoComplete:"one-time-code",placeholder:"000000",value:r,onChange:h=>s(h.target.value.replace(/\D/g,"").slice(0,6)),maxLength:6,className:"text-center text-2xl tracking-widest font-mono",autoF
57ocus:!0,required:!0,disabled:u})]}),l&&e.jsx(Ln,{msg:l}),e.jsx(ve,{type:"submit",variant:"destructive",className:"w-full",disabled:u||r.length!==6,children:u?e.jsxs(e.Fragment,{children:[e.jsx(Wt,{className:"h-4 w-4 mr-1.5 animate-spin"}),"Disabling…"]}):"Disable 2FA"})]})]})})}function gX(){const{user:t,refreshUser:a}=ux(),{data:r,loading:s,error:l,reload:d}=mm(`${Ha}/api/admin/users`),[u,p]=y.useState(!1),[g,h]=y.useState(""),[x,b]=y.useState(""),[w,N]=y.useState(""),[A,k]=y.useState("viewer"),[I,T]=y.useState(""),[E,R]=y.useState(!1),[C,P]=y.useState(null),[z,V]=y.useState(null),[D,K]=y.useState(null),[ne,le]=y.useState(""),[ce,ye]=y.useState(!1),[se,ue]=y.useState(null),[_,ee]=y.useState(""),[X,oe]=y.useState(!1);async function M(W){W.preventDefault(),T(""),R(!0);try{const te=await fetch(`${Ha}/api/admin/users`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:g,email:x,password:w,role:A})});if(!te.ok){const je=await te.json();throw new Error(je.error)}h(""),b(""),N(""),k("viewer"),p(!1),d()}catch(te){T(te instanceof Error?te.message:"Failed to create user")}finally{R(!1)}}async function Q(W){ye(!0);try{const te=await fetch(`${Ha}/api/admin/users/${W}`,{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:ne})});if(!te.ok){const je=await te.json();throw new Error(je.error??"Failed to save recovery email")}K(null),d()}catch(te){T(te instanceof Error?te.message:"Failed to save recovery email")}finally{ye(!1)}}async function F(W){T(""),oe(!0);try{const te=await fetch(`${Ha}/api/admin/users/${W}`,{method:"PATCH",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:_})});if(!te.ok){const je=await te.json();throw new Error(je.error??"Failed to save username")}ue(null),W===t?.id&&await a(),d()}catch(te){T(te instanceof Error?te.message:"Failed to save username")}finally{oe(!1)}}async function Y(W){confirm("Delete this user?")&&(P(W),await fetch(`${Ha}/api/admin/users/${W}`,{method:"DELETE",credentials:"include"}),P(null),d())}const re=r?.data.find(W=>W.id===t?.id);return e.jsxs("div",{children:[z==="setup"&&e.jsx(hX,{onClose:()=>V(null),onEnabled:()=>{V(null),d()}}),z==="disable"&&e.jsx(fX,{onClose:()=>V(null),onDisabled:()=>{V(null),d()}}),e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("h2",{className:"font-semibold text-foreground",children:["Users ",e.jsxs("span",{className:"text-muted-foreground font-normal text-sm",children:["(",r?.count??0,")"]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(ve,{size:"sm",variant:"outline",onClick:d,children:[e.jsx(Tr,{className:"h-3.5 w-3.5 mr-1.5"}),"Refresh"]}),e.jsxs(ve,{size:"sm",onClick:()=>p(W=>!W),children:[e.jsx(SR,{className:"h-3.5 w-3.5 mr-1.5"}),"New User"]})]})]}),I&&!u&&e.jsx(Ln,{msg:I}),re!==void 0&&e.jsxs("div",{className:"mb-5 flex items-center gap-3 border border-border/60 bg-muted/20 rounded-xl px-5 py-3.5",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-sm font-medium text-foreground",children:"Your two-factor authentication"}),e.jsx("div",{className:"text-xs text-muted-foreground mt-0.5",children:re.totpEnabled?"2FA is active on your account. You'll need your authenticator app each time you sign in.":"Protect your account with an authenticator app."})]}),re.totpEnabled?e.jsxs(ve,{size:"sm",variant:"outline",className:"shrink-0 text-destructive border-destructive/40 hover:bg-destructive/10",onClick:()=>V("disable"),children:[e.jsx($f,{className:"h-3.5 w-3.5 mr-1.5"}),"Disable 2FA"]}):e.jsxs(ve,{size:"sm",className:"shrink-0 bg-primary text-primary-foreground hover:bg-primary/90",onClick:()=>V("setup"),children:[e.jsx(TR,{className:"h-3.5 w-3.5 mr-1.5"}),"Enable 2FA"]})]}),u&&e.jsxs("form",{onSubmit:M,className:"mb-5 border border-primary/20 bg-primary/5 rounded-xl p-5 space-y-4",children:[e.jsx("div",{className:"font-medium text-sm text-foreground mb-1",children:"Create New User"}),e.jsxs("div",{className:"grid sm:grid-cols-4 gap-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(St,{className:"text-xs",children:"Username"}),e.jsx(kt,{value:g,onChange:W=>h(W.target.value),placeholder:"john.doe",required:!0})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(St,{className:"text-xs",children:"Password"}),e.jsx(kt,{type:"password",value:w,onChange:W=>N(W.target.value),placeholder:"Min. 8 chars",required:!0})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(St,{className:"text-xs",children:"Recovery email"}),e.jsx(kt,{type:"email",value:x,onChange:W=>b(W.target.value),placeholder:"[email protected]",required:!0})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(St,{className:"text-xs",children:"Role"}),e.jsxs("select",{value:A,onChange:W=>k(W.target.value),className:"w-full h-9 rounded-md border border-input bg-background px-3 text-sm",children:[e.jsx("option",{value:"viewer",children:"Viewer"}),e.jsx("option",{value:"admin",children:"Admin"})]})]})]}),I&&e.jsx("div",{className:"text-xs text-destructive",children:I}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(ve,{type:"submit",size:"sm",disabled:E,children:E?e.
57jsxs(e.Fragment,{children:[e.jsx(Wt,{className:"h-3.5 w-3.5 mr-1.5 animate-spin"}),"Creating…"]}):"Create User"}),e.jsx(ve,{type:"button",size:"sm",variant:"ghost",onClick:()=>p(!1),children:"Cancel"})]})]}),s&&e.jsx(pm,{}),l&&e.jsx(Ln,{msg:l}),r&&!s&&e.jsx("div",{className:"overflow-x-auto rounded-xl border border-border/60",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-border/60 bg-muted/40",children:[e.jsx("th",{className:"text-left px-4 py-3 font-medium text-muted-foreground",children:"Username"}),e.jsx("th",{className:"text-left px-4 py-3 font-medium text-muted-foreground",children:"Recovery email"}),e.jsx("th",{className:"text-left px-4 py-3 font-medium text-muted-foreground",children:"Role"}),e.jsx("th",{className:"text-left px-4 py-3 font-medium text-muted-foreground",children:"2FA"}),e.jsx("th",{className:"text-left px-4 py-3 font-medium text-muted-foreground",children:"Created"}),e.jsx("th",{className:"px-4 py-3"})]})}),e.jsx("tbody",{children:r.data.map(W=>e.jsxs("tr",{className:"border-b border-border/40 hover:bg-muted/20 transition-colors",children:[e.jsx("td",{className:"px-4 py-3 font-medium text-foreground",children:se===W.id?e.jsxs("div",{className:"flex items-center gap-1.5 min-w-[220px]",children:[e.jsx(kt,{value:_,onChange:te=>ee(te.target.value),className:"h-7 text-xs font-normal",autoFocus:!0,onKeyDown:te=>{te.key==="Enter"&&(te.preventDefault(),F(W.id))}}),e.jsx(ve,{size:"sm",className:"h-7 px-2 text-xs",onClick:()=>{F(W.id)},disabled:X,children:"Save"}),e.jsx(ve,{size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",onClick:()=>ue(null),children:"Cancel"})]}):e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{children:W.username}),W.id===t?.id&&e.jsx("span",{className:"text-xs text-primary",children:"(you)"}),e.jsx("button",{type:"button",title:`Edit ${W.username}`,"aria-label":`Edit ${W.username}`,className:"text-muted-foreground hover:text-primary transition-colors",onClick:()=>{ue(W.id),ee(W.username),T("")},children:e.jsx(yR,{className:"h-3.5 w-3.5"})})]})}),e.jsx("td",{className:"px-4 py-3 text-xs",children:D===W.id?e.jsxs("div",{className:"flex items-center gap-1.5 min-w-[220px]",children:[e.jsx(kt,{type:"email",value:ne,onChange:te=>le(te.target.value),className:"h-7 text-xs"}),e.jsx(ve,{size:"sm",className:"h-7 px-2 text-xs",onClick:()=>Q(W.id),disabled:ce,children:"Save"}),e.jsx(ve,{size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",onClick:()=>K(null),children:"Cancel"})]}):e.jsx("button",{type:"button",className:"text-left text-muted-foreground hover:text-primary transition-colors",onClick:()=>{K(W.id),le(W.email??"")},children:W.email??"Add recovery email"})}),e.jsx("td",{className:"px-4 py-3",children:e.jsx(Qx,{variant:W.role==="admin"?"default":"outline",className:"text-xs",children:W.role})}),e.jsx("td",{className:"px-4 py-3",children:W.totpEnabled?e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs font-medium text-emerald-600 dark:text-emerald-400",children:[e.jsx(Be,{className:"h-3.5 w-3.5"}),"Enabled"]}):e.jsxs("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[e.jsx($f,{className:"h-3.5 w-3.5"}),"Off"]})}),e.jsx("td",{className:"px-4 py-3 text-muted-foreground text-xs",children:Mu(W.createdAt)}),e.jsx("td",{className:"px-4 py-3 text-right",children:W.id!==t?.id&&e.jsx(ve,{size:"sm",variant:"ghost",className:"text-destructive hover:text-destructive hover:bg-destructive/10 h-7 w-7 p-0",onClick:()=>Y(W.id),disabled:C===W.id,children:C===W.id?e.jsx(Wt,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Wf,{className:"h-3.5 w-3.5"})})})]},W.id))})]})})]})}function xX(){const{user:t,isLoading:a,logout:r}=ux(),[,s]=Sr(),[l,d]=y.useState("demo");if(y.useEffect(()=>{!a&&!t&&s("/sign-in")},[t,a,s]),a||!t)return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background",children:e.jsx(Wt,{className:"h-6 w-6 animate-spin text-primary"})});const u=[{id:"demo",label:"Demo Requests",icon:Ht},{id:"partners",label:"Partner Registrations",icon:yi},{id:"analytics",label:"Analytics",icon:$e},{id:"users",label:"Users",icon:ze,adminOnly:!0}];return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx("header",{className:"border-b border-border/60 bg-card/80 backdrop-blur-sm sticky top-0 z-10",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6 h-14 flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsx("div",{className:"h-7 w-7 rounded-lg bg-primary flex items-center justify-center shadow-[0_0_10px_rgba(159,24,255,0.35)]",children:e.jsx(We,{className:"h-3.5 w-3.5 text-white"})}),e.jsx("span",{className:"font-bold text-foreground text-sm",children:"XpediOo Admin"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("span",{className:"text-xs text-muted-foreground hidden sm:block",children:["Signed in as ",e.jsx("span",{className:"text-foreground font-medium",children:t.username}),t.role==="admin"&&e.jsx(Qx,{variant:"outline",className:"ml-2 text-[10px] py-0",children:"admin"})]}),e.jsxs(ve,{size:"sm",variant:"ghost",onClick:()=>{r().then(()=>s("/sign-in"))},className:"text-muted-foreground hover:text-foreground",children:[e.jsx(UE,{className:"h-3.5 w-3.5 mr-1.5"}),"Sign out"]})]})]})}),e.jsxs("div",{className:"container mx-auto px-4 md:px-6 py-8",children:[e.jsxs("div",{className:"mb-6",children:[e.jsx("h1",{className:"text-2xl font-bold text-foreground",children:"Reports & Analytics"}),e.jsx("p",{className:"text-muted-foreground text-sm mt-1",children:"All website activity in one place."})]}),e.jsx("div",{className:"flex gap-1 border border-border/60 bg-card rounded-xl p-1 w-fit mb-8 flex-wrap",children:u.filter(p=>!p.adminOnly||t.role==="admin").map(p=>e.jsxs("button",{onClick:()=>d(p.id),className:`flex items-center gap-1.5 px-4 py-2 rounded-lg text-sm font-medium transition-all ${l===p.id?"bg-primary text-primary-foreground shadow-sm":"text-muted-foreground hover:text-foreground hover:bg-muted/50"}`,children:[e.jsx(p.icon,{className:"h-3.5 w-3.5"}),p.label]},p.id))}),l==="demo"&&e.jsx(uX,{}),l==="partners"&&e.jsx(mX,{}),l==="analytics"&&e.jsx(pX,{}),l==="users"&&t.role==="admin"&&e.jsx(gX,{})]})]})}const yX=[{icon:de,title:"AI-First by Design",desc:"Every product we build is grounded in practical artificial intelligence — not retrofitted AI bolted onto legacy workflows, but AI-native architecture from the ground up."},{icon:We,title:"Enterprise-Grade Security",desc:"We hold our platform to the highest security and compliance standards, covering 28 global GRC frameworks so your enterprise can operate with confidence."},{icon:ge,title:"Zero-Code Empowerment",desc:"We believe enterprise automation should be accessible to operations teams, not locked behind developer cycles. XpediOo's entire platform is Low Code / No Code."},{icon:Qt,title:"Global Reach",desc:"XpediOo serves enterprise customers across North America, Europe, and Asia-Pacific, with multi-language and multi-region compliance built in."},{icon:ze,title:"Customer-Centric Partnership",desc:"We work as an extension of your team. Our partner ecosystem and dedicated success organisation ensure you realise value from day one."},{icon:yi,title:"Proven at Scale",desc:"Designed for the complexity of Fortune 500 operations — from multi-tenant IT service management to cross-functional governance, risk, and compliance."}];function bX(){const{openDemoModal:t}=ot();return e.jsxs(e.Fragment,{children:[e.jsxs(st,{children:[e.jsx("title",{children:"About XpediOo — Enterprise AI Platform"}),e.jsx("meta",{name:"description",content:"XpediOo is dedicated to making enterprise AI automation accessible, secure, and powerful. Learn about our mission, values, and the team behind the platform."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/about"}),e.jsx("meta",{property:"og:title",content:"About XpediOo"}),e.jsx("meta",{property:"og:description",content:"Learn about XpediOo — the enterprise AI platform with 1,000+ AI features and 28 global GRC frameworks."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/about"})]}),e.jsxs("section",{className:"relative overflow-hidden py-24 md:py-32",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-primary/5 via-trans
57parent to-primary/5 pointer-events-none"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 text-center",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},children:[e.jsx("span",{className:"inline-block rounded-full border border-primary/30 bg-primary/10 px-4 py-1.5 text-xs font-medium text-primary mb-6",children:"About Us"}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold tracking-tight mb-6",children:["Enterprise AI that ",e.jsx("span",{className:"text-primary",children:"actually runs the work"})]}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-3xl mx-auto mb-10",children:"XpediOo is the AI command centre for IT, GRC, HR, and operations teams — built on the belief that artificial intelligence should be the decisive engine behind every enterprise operation, not an afterthought bolted on top."}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsxs(ve,{onClick:t,className:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_20px_rgba(159,24,255,0.3)]",children:["Request a Demo",e.jsx(Te,{className:"ml-2 h-4 w-4"})]}),e.jsx(ve,{variant:"outline",className:"border-primary/40 text-primary hover:bg-primary/10",asChild:!0,children:e.jsx(Ie,{href:"/contact",children:"Contact Us"})})]})]})})]}),e.jsx("section",{className:"py-16 md:py-24 bg-card/50",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-6",children:"Our Mission"}),e.jsx("p",{className:"text-lg text-muted-foreground mb-6",children:"XpediOo was founded with a single guiding purpose: to give enterprise teams the power of artificial intelligence without the complexity. We build software that makes 1,000+ AI capabilities accessible to operations, IT, HR, and compliance teams — with zero code required."}),e.jsx("p",{className:"text-lg text-muted-foreground mb-6",children:"The XpediOo platform has been engineered by AI engineers who have built B2B IT operations platforms used by thousands of enterprise customers. Products developed by the team have been included in the Gartner Magic Quadrant, Forrester Wave, and more. XpediOo is a unified command centre for enterprise operations that combines AI-powered IT service management, GRC, ITAM, observability, AIOps, HR service delivery, field operations, endpoint vulnerability management, DEX, and agentic automation — all on a single Low Code / No Code AI platform."}),e.jsx("p",{className:"text-lg text-muted-foreground",children:"We exist to remove the gap between where enterprise AI technology is and where enterprise teams need it to be: operational, secure, compliant, and immediately actionable."})]})})})}),e.jsx("section",{className:"py-16 md:py-24",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center mb-12",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"What We Stand For"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl mx-auto",children:"Our values shape every product decision and every customer engagement."})]}),e.jsx("div",{className:"grid gap-6 md:grid-cols-2 lg:grid-cols-3",children:yX.map((a,r)=>e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:r*.1},className:"rounded-xl border border-border bg-card p-6",children:[e.jsx("div",{className:"mb-4 inline-flex h-10 w-10 items-center justify-center rounded-lg bg-primary/10",children:e.jsx(a.icon,{className:"h-5 w-5 text-primary"})}),e.jsx("h3",{className:"font-semibold text-lg mb-2",children:a.title}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-16 md:py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-8 text-center",children:[{value:"1,000+",label:"AI Features"},{value:"1,500+",label:"Automation Use Cases"},{value:"28",label:"Global GRC Frameworks"},{value:"20+",label:"AI-Powered Products"}].map(a=>e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},children:[e.jsx("div",{className:"text-4xl font-bold text-primary mb-2",children:a.value}),e.jsx("div",{className:"text-sm text-muted-foreground",children:a.label})]},a.label))})})}),e.jsx("section",{className:"py-16 md:py-24 bg-card/50",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6 text-center",children:e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-6",children:"Ready to See XpediOo in Action?"}),e.jsx("p",{className:"text-muted-foreground max-w-xl mx-auto mb-8",children:"Schedule a live demonstration with our enterprise team and see how XpediOo can transform your operations."}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[e.jsxs(ve,{onClick:t,className:"bg-primary text-primary-foreground hover:bg-primary/90",children:["Request a Demo",e.jsx(Te,{className:"ml-2 h-4 w-4"})]}),e.jsx(ve,{variant:"outline",className:"border-primary/40 text-primary hover:bg-primary/10",asChild:!0,children:e.jsx(Ie,{href:"/partner-registration",children:"Become a Partner"})})]})]})})})]})}const dS=y.forwardRef(({className:t,...a},r)=>
57e.jsx("textarea",{className:ie("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),ref:r,...a}));dS.displayName="Textarea";const vX=[{icon:Wg,label:"Email",value:"[email protected]",href:"mailto:[email protected]"}],wX=[{country:"In USA",addressLines:["2025 Gateway Place Suite 315","San Jose, CA - 95110"]},{country:"In India",office:"Bengaluru",addressLines:["9th floor MSR North City 144, Outer Ring Rd,","near Manayata Tech Park, Nagavara, Bengaluru, Karnataka 560045"]}],sj={name:"",email:"",company:"",subject:"",message:""};function jX(){const[t,a]=y.useState(sj),[r,s]=y.useState(!1),{toast:l}=_j();function d(p){a(g=>({...g,[p.target.name]:p.target.value}))}async function u(p){if(p.preventDefault(),!t.name||!t.email||!t.message){l({title:"Please fill in all required fields.",variant:"destructive"});return}s(!0);try{const g=encodeURIComponent(t.subject||`Contact from ${t.name} — ${t.company||"No company"}`),h=encodeURIComponent(`Name: ${t.name}
58Email: ${t.email}
59Company: ${t.company}
60
61${t.message}`);window.location.href=`mailto:[email protected]?subject=${g}&body=${h}`,a(sj),l({title:"Opening your email client…",description:"Your message has been prepared."})}finally{s(!1)}}return e.jsxs(e.Fragment,{children:[e.jsxs(st,{children:[e.jsx("title",{children:"Contact XpediOo | Enterprise AI Platform Support & Sales"}),e.jsx("meta",{name:"description",content:"Get in touch with the XpediOo team. Reach our sales, partnerships, or support teams by email, or send us a message directly from this page."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/contact"}),e.jsx("meta",{property:"og:title",content:"Contact XpediOo"}),e.jsx("meta",{property:"og:description",content:"Reach the XpediOo team for sales inquiries, partnership opportunities, or enterprise support."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/contact"})]}),e.jsxs("section",{className:"relative overflow-hidden py-24 md:py-32",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-primary/5 via-transparent to-primary/5 pointer-events-none"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 text-center",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},children:[e.jsx("span",{className:"inline-block rounded-full border border-primary/30 bg-primary/10 px-4 py-1.5 text-xs font-medium text-primary mb-6",children:"Contact Us"}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold tracking-tight mb-6",children:["Let's ",e.jsx("span",{className:"text-primary",children:"Talk"})]}),e.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-2xl mx-auto",children:"Whether you're evaluating XpediOo for your enterprise, exploring a partnership, or need support — our team is ready to help."})]})})]}),e.jsx("section",{className:"py-12 md:py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs("div",{className:"grid gap-12 lg:grid-cols-2",children:[e.jsxs(v.div,{initial:{opacity:0,x:-24},animate:{opacity:1,x:0},transition:{duration:.6},children:[e.jsx("h2",{className:"text-2xl font-bold mb-8",children:"Get in Touch"}),e.jsx("div",{className:"space-y-6 mb-10",children:vX.map(p=>e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"flex-shrink-0 h-10 w-10 rounded-lg bg-primary/10 flex items-center justify-center",children:e.jsx(p.icon,{className:"h-5 w-5 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-muted-foreground mb-0.5",children:p.label}),p.href?e.jsx("a",{href:p.href,className:"text-sm font-medium hover:text-primary transition-colors",children:p.value}):e.jsx("p",{className:"text-sm font-medium",children:p.value})]})]},p.label))}),e.jsxs("div",{className:"rounded-xl border border-border bg-card p-6",children:[e.jsx("h3",{className:"font-semibold mb-3",children:"Enterprise Demonstrations"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:"For a live platform walkthrough with our enterprise team, use the form on this page or request a demo directly. We typically respond within one business day."})]})]}),e.jsx(v.div,{initial:{opacity:0,x:24}
61,animate:{opacity:1,x:0},transition:{duration:.6,delay:.1},children:e.jsxs("div",{className:"rounded-xl border border-border bg-card p-8",children:[e.jsx("h2",{className:"text-2xl font-bold mb-6",children:"Send a Message"}),e.jsxs("form",{onSubmit:u,className:"space-y-5",children:[e.jsxs("div",{className:"grid grid-cols-1 gap-5 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(St,{htmlFor:"name",children:["Full Name ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(kt,{id:"name",name:"name",placeholder:"Jane Smith",value:t.name,onChange:d,required:!0})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(St,{htmlFor:"email",children:["Work Email ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(kt,{id:"email",name:"email",type:"email",placeholder:"[email protected]",value:t.email,onChange:d,required:!0})]})]}),e.jsxs("div",{className:"grid grid-cols-1 gap-5 sm:grid-cols-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(St,{htmlFor:"company",children:"Company"}),e.jsx(kt,{id:"company",name:"company",placeholder:"Acme Corp",value:t.company,onChange:d})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(St,{htmlFor:"subject",children:"Subject"}),e.jsx(kt,{id:"subject",name:"subject",placeholder:"e.g. Platform demo request",value:t.subject,onChange:d})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(St,{htmlFor:"message",children:["Message ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(dS,{id:"message",name:"message",placeholder:"Tell us how we can help…",rows:5,value:t.message,onChange:d,required:!0})]}),e.jsxs(ve,{type:"submit",disabled:r,className:"w-full bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_10px_rgba(159,24,255,0.2)] hover:shadow-[0_0_20px_rgba(159,24,255,0.4)]",children:[e.jsx(DN,{className:"mr-2 h-4 w-4"}),r?"Opening email client…":"Send Message"]}),e.jsxs("p",{className:"text-xs text-muted-foreground text-center",children:["By submitting this form you agree to our"," ",e.jsx("a",{href:"/privacy",className:"text-primary hover:underline",children:"Privacy Policy"}),"."]})]})]})})]})})}),e.jsx("section",{className:"py-16 md:py-24 bg-card/50",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center mb-12",children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Our Locations"}),e.jsx("p",{className:"text-muted-foreground max-w-xl mx-auto",children:"XpediOo has offices in San Jose and Bangalore."})]}),e.jsx("div",{className:"grid gap-6 sm:grid-cols-2 max-w-4xl mx-auto",children:wX.map((p,g)=>e.jsxs(v.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:g*.1},className:"rounded-xl border border-border bg-card p-6",children:[e.jsx("h3",{className:"text-lg font-bold text-primary mb-4",children:p.country}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Kg,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-sm text-muted-foreground",children:[p.office&&e.jsx("p",{className:"font-semibold text-foreground mb-1",children:p.office}),p.addressLines.map(h=>e.jsx("p",{children:h},h))]})]})]},p.country))})]})})]})}const NX="August 1, 2026",oj="XpediOo";function AX(){return e.jsxs(e.Fragment,{children:[e.jsxs(st,{children:[e.jsx("title",{children:"Privacy Policy | XpediOo"}),e.jsx("meta",{name:"description",content:"Read the XpediOo Privacy Policy — how XpediOo collects, uses, stores, and protects your personal data when you use the XpediOo enterprise AI platform."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/privacy"}),e.jsx("meta",{property:"og:title",content:"Privacy Policy | XpediOo"}),e.jsx("meta",{property:"og:description",content:"How XpediOo collects and uses your data across the XpediOo platform."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/privacy"})]}),e.jsx("section",{className:"py-24 md:py-32",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6 max-w-3xl",children:e.jsxs(v.div,{initial:{opacity:0,y:24}
61,animate:{opacity:1,y:0},transition:{duration:.6},children:[e.jsx("span",{className:"inline-block rounded-full border border-primary/30 bg-primary/10 px-4 py-1.5 text-xs font-medium text-primary mb-6",children:"Legal"}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-4",children:"Privacy Policy"}),e.jsxs("p",{className:"text-sm text-muted-foreground mb-12",children:["Last updated: ",NX]}),e.jsxs("div",{className:"prose prose-sm dark:prose-invert max-w-none space-y-10 text-muted-foreground",children:[e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"1. Introduction"}),e.jsxs("p",{children:[oj,' ("',e.jsx("strong",{children:"XpediOo"}),'", "',e.jsx("strong",{children:"we"}),'", "',e.jsx("strong",{children:"us"}),'", or "',e.jsx("strong",{children:"our"}),'") operates the XpediOo enterprise AI platform and the website located at ',e.jsx("a",{href:"https://xpedioo.ai",className:"text-primary hover:underline",children:"https://xpedioo.ai"}),' (collectively, the "',e.jsx("strong",{children:"Service"}),'"). This Privacy Policy explains how we collect, use, disclose, and safeguard information about you when you visit our website, request a demonstration, or use any component of the XpediOo platform.']}),e.jsx("p",{className:"mt-3",children:"Please read this Privacy Policy carefully. By accessing or using the Service, you acknowledge that you have read, understood, and agree to be bound by all the terms of this Privacy Policy. If you do not agree with the terms of this Privacy Policy, please do not access the Service."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"2. Information We Collect"}),e.jsx("h3",{className:"text-base font-semibold text-foreground mb-2",children:"2.1 Information You Provide to Us"}),e.jsx("p",{children:"We collect information you voluntarily provide when you:"}),e.jsxs("ul",{className:"list-disc pl-6 mt-2 space-y-1",children:[e.jsx("li",{children:"Fill in a contact or demo request form on our website (name, work email address, company name, job title, and message content)."}),e.jsx("li",{children:"Register as a partner through our Partner Registration programme (company details, business information, contact details)."}),e.jsx("li",{children:"Sign in to the XpediOo platform using credentials issued by your organisation."}),e.jsx("li",{children:"Communicate with us by email, telephone, or other means."}),e.jsx("li",{children:"Subscribe to newsletters or marketing communications (email address)."})]}),e.jsx("h3",{className:"text-base font-semibold text-foreground mb-2 mt-6",children:"2.2 Information Collected Automatically"}),e.jsx("p",{children:"When you visit our website, we may automatically collect certain technical information including:"}),e.jsxs("ul",{className:"list-disc pl-6 mt-2 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Log data:"})," IP address, browser type and version, operating system, referring URLs, pages viewed, and the date and time of your visit."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Usage data:"})," Information about how you navigate and interact with our website (page views, click paths, session duration)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Device information:"})," Device type, unique device identifiers, and mobile network information."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Cookies and similar tracking technologies:"})," See Section 7 for details."]})]}),e.jsx("h3",{className:"text-base font-semibold text-foreground mb-2 mt-6",children:"2.3 Information from Third Parties"}),e.jsx("p",{children:"We may receive information about you from third-party sources such as business data providers, analytics vendors, and social media platforms, which we combine with information we already hold about you."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"3. How We Use Your Information"}),e.jsx("p",{children:"We use the information we collect for the following purposes:"}),e.jsxs("ul",{className:"list-disc pl-6 mt-2 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Providing the Service:"})," To operate, maintain, and improve the XpediOo platform and our website."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Communications:"})," To respond to inquiries, send demo confirmations, and provide platform updates and support."]}
61),e.jsxs("li",{children:[e.jsx("strong",{children:"Marketing:"})," To send promotional content, product updates, and event invitations where you have consented or where we have a legitimate interest. You may opt out at any time."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Analytics:"})," To understand how visitors interact with our website and to improve the user experience."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Security:"})," To detect, prevent, and address fraud, abuse, and other harmful activities."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Legal compliance:"})," To comply with applicable laws, regulations, legal processes, and governmental requests."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Business operations:"})," To fulfil partner agreements, process transactions, and manage our business relationships."]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"4. Legal Bases for Processing (EEA / UK Users)"}),e.jsx("p",{children:"If you are located in the European Economic Area or the United Kingdom, we process your personal data under the following legal bases:"}),e.jsxs("ul",{className:"list-disc pl-6 mt-2 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Contractual necessity:"})," Processing required to perform a contract with you or take pre-contractual steps at your request."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Legitimate interests:"})," Processing for our legitimate business interests (e.g., analytics, marketing to business prospects), provided those interests are not overridden by your rights."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Consent:"})," Where we have asked for and you have provided consent (e.g., marketing emails). You may withdraw consent at any time."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Legal obligation:"})," Processing required to comply with applicable law."]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"5. How We Share Your Information"}),e.jsx("p",{children:"We do not sell your personal data. We may share information with:"}),e.jsxs("ul",{className:"list-disc pl-6 mt-2 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Service providers:"})," Third-party vendors that process data on our behalf under data processing agreements (e.g., cloud hosting, email delivery, analytics platforms)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Business partners:"})," Authorised XpediOo channel partners, where necessary to fulfil a transaction or provide a service you have requested."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Legal authorities:"})," Law enforcement, regulatory bodies, or courts when required by applicable law or to protect our legal rights."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Business transfers:"})," In connection with a merger, acquisition, asset sale, or similar corporate transaction, subject to confidentiality obligations."]})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"6. Data Retention"}),e.jsx("p",{children:"We retain personal data for as long as necessary to fulfil the purposes described in this Privacy Policy, unless a longer retention period is required by law. When data is no longer needed, we securely delete or anonymise it. Platform customer data is retained in accordance with the terms of the applicable enterprise agreement."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"7. Cookies"}),e.jsx("p",{children:"Our website uses cookies and similar tracking technologies to enhance your experience. We use:"}),e.jsxs("ul",{className:"list-disc pl-6 mt-2 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Strictly necessary cookies:"})," Required for the website to function (e.g., session management, security). These cannot be disabled."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Analytics cookies:"})," Used to understand how visitors interact with our website. These may be set by us or third-party analytics providers."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Preference cookies:"})," Used to remember your settings (e.g., theme preference)."]})]}),e.jsx("p",{className:"mt-3",children:"You can control cookies through your browser settings. Disabling certain cookies may affect the functionality of the website."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"8. Data Security"}),e.jsx("p",{children:"We implement appropriate technical and organisational security measures to protect your personal data against unauthorised access, disclosure, alteration, or destruction. The XpediOo platform is architected to meet enterprise-grade security requirements including encryption in transit (TLS 1.2+) and at rest, access control, audit logging, and support for 28 global GRC frameworks."}),e.jsxs("p",{className:"mt-3",children:["No method of transmission over the Internet or electronic storage is 100% secure. While we strive to use commercially acceptable means to protect your data, we cannot guarantee absolute security. If you discover a security vulnerability, please report it to ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"}),"."]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"9. International Data Transfers"}),e.jsx("p",{children:"Your information may be transferred to, and processed in, countries other than the country in which you reside. These 
61countries may have data protection laws that differ from the laws of your country. When we transfer data from the EEA or UK to third countries, we rely on appropriate safeguards such as Standard Contractual Clauses approved by the European Commission or the UK Information Commissioner's Office."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"10. Your Rights"}),e.jsx("p",{children:"Depending on your location, you may have the following rights regarding your personal data:"}),e.jsxs("ul",{className:"list-disc pl-6 mt-2 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Access:"})," The right to request a copy of the personal data we hold about you."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Rectification:"})," The right to request correction of inaccurate or incomplete data."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Erasure:"})," The right to request deletion of your personal data in certain circumstances."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Restriction:"})," The right to request that we restrict processing of your data in certain circumstances."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Portability:"})," The right to receive your data in a structured, machine-readable format."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Objection:"})," The right to object to processing based on our legitimate interests."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Withdraw consent:"})," The right to withdraw consent at any time where processing is based on consent."]})]}),e.jsxs("p",{className:"mt-3",children:["To exercise these rights, please contact us at ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"}),". We will respond within the timeframe required by applicable law."]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"11. Children's Privacy"}),e.jsxs("p",{children:["The Service is not directed to individuals under the age of 18. We do not knowingly collect personal data from children. If you believe we have inadvertently collected personal data from a child, please contact us immediately at ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"}),"."]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"12. Changes to This Privacy Policy"}),e.jsx("p",{children:'We may update this Privacy Policy from time to time. When we make material changes, we will update the "Last updated" date at the top of this page and, where appropriate, notify you by email or prominent notice on our website. Your continued use of the Service after the effective date of any change constitutes your acceptance of the updated Privacy Policy.'})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"13. Contact Us"}),e.jsx("p",{children:"If you have questions, concerns, or requests relating to this Privacy Policy or our data practices, please contact us at:"}),e.jsxs("div",{className:"mt-4 p-4 rounded-lg border border-border bg-card text-sm",children:[e.jsx("p",{className:"font-semibold",children:oj}),e.jsx("p",{children:"Privacy Team"}),e.jsxs("p",{children:["Email:"," ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})]}),e.jsxs("p",{children:["Website:"," ",e.jsx("a",{href:"https://xpedioo.ai",className:"text-primary hover:underline",children:"https://xpedioo.ai"})]})]})]})]})]})})})]})}const kX="August 1, 2026",lj="XpediOo";function SX(){return e.jsxs(e.Fragment,{children:[e.jsxs(st,{children:[e.jsx("title",{children:"Terms of Service | XpediOo"}),e.jsx("meta",{name:"description",content:"Read the XpediOo Terms of Service — the agreement that governs your use of the XpediOo enterprise AI platform."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/terms"}),e.jsx("meta",{property:"og:title",content:"Terms of Service | XpediOo"}),e.jsx("meta",{property:"og:description",content:"The terms and conditions governing use of the XpediOo enterprise AI platform."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/terms"})]}),e.jsx("section",{className:"py-24 md:py-32",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6 max-w-3xl",children:e.jsxs(v.div,{initial:{opacity:0,y:24}
61,animate:{opacity:1,y:0},transition:{duration:.6},children:[e.jsx("span",{className:"inline-block rounded-full border border-primary/30 bg-primary/10 px-4 py-1.5 text-xs font-medium text-primary mb-6",children:"Legal"}),e.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-4",children:"Terms of Service"}),e.jsxs("p",{className:"text-sm text-muted-foreground mb-12",children:["Last updated: ",kX]}),e.jsxs("div",{className:"prose prose-sm dark:prose-invert max-w-none space-y-10 text-muted-foreground",children:[e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"1. Agreement to Terms"}),e.jsxs("p",{children:['These Terms of Service ("',e.jsx("strong",{children:"Terms"}),'") constitute a legally binding agreement between ',lj,' ("',e.jsx("strong",{children:"XpediOo"}),'", "',e.jsx("strong",{children:"we"}),'", "',e.jsx("strong",{children:"us"}),'", or "',e.jsx("strong",{children:"our"}),'") and you ("',e.jsx("strong",{children:"User"}),'", "',e.jsx("strong",{children:"you"}),'", or "',e.jsx("strong",{children:"your"}),'") governing your access to and use of the XpediOo enterprise AI platform, including any associated websites, applications, APIs, and services (collectively, the "',e.jsx("strong",{children:"Service"}),'").']}),e.jsx("p",{className:"mt-3",children:"By accessing or using the Service, you confirm that you are at least 18 years of age, have the legal capacity to enter into a binding agreement, and accept these Terms in full. If you are accessing the Service on behalf of an organisation, you represent that you have authority to bind that organisation to these Terms."}),e.jsx("p",{className:"mt-3",children:"If you do not agree to these Terms, do not access or use the Service."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"2. Description of Service"}),e.jsx("p",{children:"XpediOo is an enterprise AI platform that provides, among other capabilities, AI-powered IT Service Management (ITSM), Governance, Risk and Compliance (GRC), Human Capital Management (HRMS), Endpoint Vulnerability Management, Field Service Management, Agentic Studio, and related automation features. The specific features and capabilities available to you depend on the subscription tier and enterprise agreement applicable to your organisation."}),e.jsx("p",{className:"mt-3",children:"We reserve the right to modify, add, or remove features of the Service at any time. We will provide reasonable notice of material changes affecting enterprise subscribers."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"3. Accounts and Access"}),e.jsx("h3",{className:"text-base font-semibold text-foreground mb-2",children:"3.1 Account Credentials"}),e.jsxs("p",{children:["Access to the XpediOo platform requires authentication credentials issued by your organisation's designated administrator. You are responsible for maintaining the confidentiality of your credentials and for all activity that occurs under your account. You must notify us immediately at ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})," if you suspect unauthorised access to your account."]}),e.jsx("h3",{className:"text-base font-semibold text-foreground mb-2 mt-4",children:"3.2 Acceptable Use"}),e.jsx("p",{children:"You agree not to:"}),e.jsxs("ul",{className:"list-disc pl-6 mt-2 space-y-1",children:[e.jsx("li",{children:"Use the Service for any unlawful purpose or in violation of these Terms."}),e.jsx("li",{children:"Attempt to gain unauthorised access to any part of the Service or its underlying systems."}),e.jsx("li",{children:"Reverse engineer, decompile, disassemble, or otherwise attempt to derive the source code of the Service."}),e.jsx("li",{children:"Use automated scripts, bots, or scraping tools to extract data from the Service without our express written consent."}),e.jsx("li",{children:"Introduce malware, viruses, or other harmful code into the Service."}),e.jsx("li",{children:"Impersonate any person or entity or misrepresent your affiliation with any person or entity."}),e.jsx("li",{children:"Resell, sublicense, or otherwise transfer access to the Service without our written authorisation."}),e.jsx("li",{children:"Use the Service to process data in a manner that violates applicable data protection laws."})]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"4. Intellectual Property"}),e.jsx("h3",{className:"text-base font-semibold text-foreground mb-2",children:"4.1 Our Intellectual Property"}),e.jsx("p",{children:"The Service, including all software, algorithms, AI models, workflows, user interfaces, documentation, and content (excluding Customer Data), is the exclusive intellectual property of XpediOo and is protected by copyright, trade secret, patent, and other applicable intellectual property laws. These Terms grant you a limited, non-exclusive, non-transferable, revocable licence to use the Service solely in accordance with your enterprise agreement and these Terms."}),e.jsx("h3",{className:"text-base font-semibold text-foreground mb-2 mt-4",children:"4.2 Customer Data"}),e.jsxs("p",{children:['You retain all rights in and to data that you or your users upload to, or generate through use of, the Service ("',e.jsx("strong",{children:"Customer Data"}),'"). You grant us a limited licence to process Customer Data solely to provide and improve the Service, as described 
61in our Privacy Policy and applicable enterprise data processing agreement.']}),e.jsx("h3",{className:"text-base font-semibold text-foreground mb-2 mt-4",children:"4.3 Feedback"}),e.jsx("p",{children:"If you provide feedback, suggestions, or ideas regarding the Service, you grant us an irrevocable, royalty-free, worldwide licence to use, copy, modify, and incorporate such feedback into the Service without any obligation to you."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"5. Privacy and Data Processing"}),e.jsxs("p",{children:["Your use of the Service is also governed by our ",e.jsx("a",{href:"/privacy",className:"text-primary hover:underline",children:"Privacy Policy"}),", which is incorporated into these Terms by reference. Enterprise customers who process personal data through the Service should contact us at ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})," to execute a Data Processing Agreement as required by applicable data protection laws (including GDPR and UK GDPR)."]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"6. Subscriptions and Payment"}),e.jsx("p",{children:"XpediOo is offered under enterprise subscription agreements negotiated separately with each customer organisation. Payment terms, subscription tiers, renewal periods, and refund policies are as specified in your applicable order form or master services agreement. In the event of conflict between these Terms and an executed enterprise agreement, the enterprise agreement will prevail."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"7. Confidentiality"}),e.jsxs("p",{children:[`Each party agrees to maintain the confidentiality of the other party's non-public business, technical, or financial information disclosed in connection with the Service ("`,e.jsx("strong",{children:"Confidential Information"}),'"), using at least the same degree of care it uses to protect its own confidential information (but no less than reasonable care). Confidential Information does not include information that is or becomes publicly known through no fault of the receiving party, is independently developed by the receiving party, or is required to be disclosed by law or court order.']})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"8. Disclaimers"}),e.jsx("p",{children:'THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE. TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, XPEDIOO DISCLAIMS ALL WARRANTIES, INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.'}),e.jsx("p",{className:"mt-3",children:"We do not warrant that the Service will be uninterrupted, error-free, or free of viruses or other harmful components. AI-generated outputs and recommendations are provided for informational purposes and should be reviewed by qualified personnel before being relied upon for business-critical decisions."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"9. Limitation of Liability"}),e.jsx("p",{children:"TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL XPEDIOO BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, PUNITIVE, OR EXEMPLARY DAMAGES — INCLUDING LOSS OF PROFITS, REVENUE, DATA, BUSINESS, OR GOODWILL — ARISING OUT OF OR IN CONNECTION WITH THESE TERMS OR THE SERVICE, EVEN IF XPEDIOO HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES."}),e.jsx("p",{className:"mt-3",children:"OUR TOTAL CUMULATIVE LIABILITY ARISING OUT OF OR IN CONNECTION WITH THESE TERMS OR THE SERVICE WILL NOT EXCEED THE GREATER OF (A) THE AMOUNT PAID BY YOU TO US IN THE TWELVE MONTHS PRECEDING THE CLAIM, OR (B) ONE HUNDRED US DOLLARS (USD $100)."}),e.jsx("p",{className:"mt-3",children:"Some jurisdictions do not allow the exclusion or limitation of certain liabilities. In such jurisdictions, our liability is limited to the minimum extent permitted by law."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"10. Indemnification"}),e.jsx("p",{children:"You agree to indemnify, defend, and hold harmless XpediOo, its affiliates, officers, directors, employees, and agents from and against any claims, liabilities, damages, losses, and expenses (including reasonable legal fees) arising out of or in any way connected with: (a) your access to or use of the Service; (b) your violation of these Terms;
61 (c) your violation of any third-party rights; or (d) any Customer Data you submit to the Service."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"11. Term and Termination"}),e.jsx("p",{children:"These Terms remain in effect for as long as you use or access the Service. We may suspend or terminate your access to the Service at any time if we reasonably believe you are in breach of these Terms or if required for legal, security, or operational reasons. Upon termination, all licences granted under these Terms will immediately cease."}),e.jsx("p",{className:"mt-3",children:"Sections 4 (Intellectual Property), 7 (Confidentiality), 8 (Disclaimers), 9 (Limitation of Liability), 10 (Indemnification), and 13 (General) will survive any termination of these Terms."})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"12. Changes to These Terms"}),e.jsx("p",{children:'We may revise these Terms from time to time. When we make material changes, we will update the "Last updated" date and, where appropriate, provide notice through the Service or by email. Your continued use of the Service after the effective date of updated Terms constitutes your acceptance of the revised Terms.'})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"13. General"}),e.jsxs("p",{children:[e.jsx("strong",{children:"Governing Law:"})," These Terms are governed by and construed in accordance with the laws of the State of Delaware, United States, without regard to conflict-of-law principles."]}),e.jsxs("p",{className:"mt-3",children:[e.jsx("strong",{children:"Dispute Resolution:"})," Any dispute arising out of or relating to these Terms or the Service will be resolved by binding arbitration administered by the American Arbitration Association under its Commercial Arbitration Rules, except that either party may seek injunctive or other equitable relief in a court of competent jurisdiction."]}),e.jsxs("p",{className:"mt-3",children:[e.jsx("strong",{children:"Entire Agreement:"})," These Terms, together with your applicable enterprise agreement and our Privacy Policy, constitute the entire agreement between you and XpediOo regarding the Service and supersede all prior agreements."]}),e.jsxs("p",{className:"mt-3",children:[e.jsx("strong",{children:"Severability:"})," If any provision of these Terms is found to be unenforceable, the remaining provisions will continue in full force and effect."]}),e.jsxs("p",{className:"mt-3",children:[e.jsx("strong",{children:"Waiver:"})," Our failure to enforce any right or provision of these Terms will not be considered a waiver of those rights."]}),e.jsxs("p",{className:"mt-3",children:[e.jsx("strong",{children:"Assignment:"})," You may not assign or transfer these Terms without our prior written consent. We may assign these Terms without restriction."]})]}),e.jsxs("section",{children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground mb-4",children:"14. Contact Us"}),e.jsx("p",{children:"If you have questions about these Terms, please contact us at:"}),e.jsxs("div",{className:"mt-4 p-4 rounded-lg border border-border bg-card text-sm",children:[e.jsx("p",{className:"font-semibold",children:lj}),e.jsx("p",{children:"Legal Team"}),e.jsxs("p",{children:["Email:"," ",e.jsx("a",{href:"mailto:[email protected]",className:"text-primary hover:underline",children:"[email protected]"})]}),e.jsxs("p",{children:["Website:"," ",e.jsx("a",{href:"https://xpedioo.ai",className:"text-primary hover:underline",children:"https://xpedioo.ai"})]})]})]})]})]})})})]})}const uS=y.forwardRef(({className:t,...a},r)=>e.jsx("div",{ref:r,className:ie("rounded-xl border bg-card text-card-foreground shadow",t),...a}));uS.displayName="Card";const IX=y.forwardRef(({className:t,...a},r)=>e.jsx("div",{ref:r,className:ie("flex flex-col space-y-1.5 p-6",t),...a}));IX.displayName="CardHeader";const CX=y.forwardRef(({className:t,...a},r)=>e.jsx("div",{ref:r,className:ie("font-semibold leading-none tracking-tight",t),...a}));
61CX.displayName="CardTitle";const MX=y.forwardRef(({className:t,...a},r)=>e.jsx("div",{ref:r,className:ie("text-sm text-muted-foreground",t),...a}));MX.displayName="CardDescription";const mS=y.forwardRef(({className:t,...a},r)=>e.jsx("div",{ref:r,className:ie("p-6 pt-0",t),...a}));mS.displayName="CardContent";const TX=y.forwardRef(({className:t,...a},r)=>e.jsx("div",{ref:r,className:ie("flex items-center p-6 pt-0",t),...a}));TX.displayName="CardFooter";function EX(){return e.jsx("div",{className:"min-h-screen w-full flex items-center justify-center bg-gray-50",children:e.jsx(uS,{className:"w-full max-w-md mx-4",children:e.jsxs(mS,{className:"pt-6",children:[e.jsxs("div",{className:"flex mb-4 gap-2",children:[e.jsx(dT,{className:"h-8 w-8 text-red-500"}),e.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"404 Page Not Found"})]}),e.jsx("p",{className:"mt-4 text-sm text-gray-600",children:"Did you forget to add the page to the router?"})]})})})}function RX(t){return t.replace(/#{1,6}\s*/g,"").replace(/\*\*(.+?)\*\*/g,"$1").replace(/\*(.+?)\*/g,"$1").replace(/__(.+?)__/g,"$1").replace(/_(.+?)_/g,"$1").replace(/`{1,3}([^`]*)`{1,3}/g,"$1").replace(/^\s*[-*+]\s+/gm,"• ").replace(/^\s*>\s*/gm,"").replace(/\[(.+?)\]\(.+?\)/g,"$1").replace(/\n{3,}/g,`
62
63`).trim()}const cj={role:"assistant",content:"Hi! I'm the XpediOo AI Assistant. I can help you explore our enterprise AI platform, products, GRC frameworks, and integrations. Ask a question to get started, or use Request a Demo when you're ready to speak with our team."};function PX(){const[t,a]=y.useState(!1),[r,s]=y.useState([cj]),[l,d]=y.useState(""),[u,p]=y.useState(!1),g=y.useRef(null),h=y.useRef(null),x=y.useRef(null);y.useEffect(()=>{g.current?.scrollIntoView({behavior:"smooth"})},[r]),y.useEffect(()=>{t&&setTimeout(()=>h.current?.focus(),250)},[t]);async function b(){const N=l.trim();if(!N||u)return;d("");const A={role:"user",content:N},k=[...r,A];s([...k,{role:"assistant",content:"",pending:!0}]),p(!0);const I=new AbortController;x.current=I;try{const T=k.filter(V=>!V.pending).map(({role:V,content:D})=>({role:V,content:D})),E=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:T}),signal:I.signal});if(!E.ok){let V="Sorry, something went wrong. Please try again.";if(E.status===429)try{V=(await E.json()).error??V}catch{}s(D=>{const K=[...D];return K[K.length-1]={role:"assistant",content:V},K});return}if(!E.body)throw new Error("Request failed");const R=E.body.getReader(),C=new TextDecoder;let P="",z="";for(;;){const{done:V,value:D}=await R.read();if(V)break;P+=C.decode(D,{stream:!0});const K=P.split(`
64`);P=K.pop()??"";
64for(const ne of K){if(!ne.startsWith("data: "))continue;const le=ne.slice(6).trim();if(le)try{const ce=JSON.parse(le);if(ce.content&&(z+=ce.content,s(ye=>{const se=[...ye];return se[se.length-1]={role:"assistant",content:z},se})),ce.done||ce.error)break}catch{}}}}catch(T){if(T.name==="AbortError")return;s(E=>{const R=[...E];return R[R.length-1]={role:"assistant",content:"Sorry, something went wrong. Please try again."},R})}finally{p(!1),x.current=null}}function w(){x.current?.abort(),p(!1),s([cj]),d("")}return e.jsxs(e.Fragment,{children:[e.jsx(v.button,{onClick:()=>a(N=>!N),whileHover:{scale:1.07},whileTap:{scale:.95},className:ie("fixed bottom-6 right-6 z-[200] h-14 w-14 rounded-full shadow-2xl flex items-center justify-center transition-colors duration-200","bg-primary text-primary-foreground","shadow-[0_0_30px_rgba(159,24,255,0.45)]"),"aria-label":t?"Close chat":"Open chat",children:e.jsx(Mn,{mode:"wait",initial:!1,children:t?e.jsx(v.span,{initial:{rotate:-90,opacity:0},animate:{rotate:0,opacity:1},exit:{rotate:90,opacity:0},transition:{duration:.15},children:e.jsx(eo,{className:"h-6 w-6"})},"x"):e.jsx(v.span,{initial:{rotate:90,opacity:0},animate:{rotate:0,opacity:1},exit:{rotate:-90,opacity:0},transition:{duration:.15},children:e.jsx(aR,{className:"h-6 w-6"})},"chat")})}),e.jsx(Mn,{children:t&&e.jsxs(v.div,{initial:{opacity:0,y:24,scale:.96},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:24,scale:.96},transition:{duration:.2,ease:"easeOut"},className:"fixed top-[113px] bottom-24 right-6 z-[199] w-[555px] max-w-[calc(100vw-24px)] rounded-2xl border border-border bg-background shadow-2xl flex flex-col overflow-hidden",style:{boxShadow:"0 0 60px rgba(159,24,255,0.12), 0 25px 50px rgba(0,0,0,0.3)"},children:[e.jsxs("div",{className:"flex items-center gap-3 px-4 py-3 border-b border-border bg-primary/5",children:[e.jsx("div",{className:"h-8 w-8 rounded-full bg-primary/15 flex items-center justify-center shrink-0",children:e.jsx(vt,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-semibold text-foreground leading-tight",children:"XpediOo AI Assistant"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Ask about our enterprise platform"})]}),e.jsx("button",{onClick:w,title:"Reset conversation",className:"p-1.5 rounded-lg text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:e.jsx(zn,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto px-4 py-3 space-y-3",children:[r.map((N,A)=>e.jsxs("div",{className:ie("flex gap-2",N.role==="user"?"justify-end":"justify-start"),children:[N.role==="assistant"&&e.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/15 flex items-center justify-center shrink-0 mt-0.5",children:e.jsx(vt,{className:"h-3.5 w-3.5 text-primary"})}),e.jsx("div",{className:ie("max-w-[82%] rounded-2xl px-3.5 py-2.5 text-sm leading-relaxed",N.role==="user"?"bg-primary text-primary-foreground rounded-tr-sm":"bg-muted text-foreground rounded-tl-sm"),children:N.pending&&!N.content?e.jsxs("span",{className:"flex gap-1 items-center py-0.5",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-current animate-bounce [animation-delay:0ms]"}),e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-current animate-bounce [animation-delay:150ms]"}),e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-current animate-bounce [animation-delay:300ms]"})]}):e.jsx("span",{className:"whitespace-pre-wrap",children:N.role==="assistant"?RX(N.content):N.content})})]},A)),e.jsx("div",{ref:g})]}),e.jsxs("div",{className:"p-3 border-t border-border",children:[e.jsxs("form",{onSubmit:N=>{N.preventDefault(),b()},className:"flex gap-2 items-center",children:[e.jsx("input",{ref:h,value:l,onChange:N=>d(N.target.value),placeholder:"Ask about XpediOo…",disabled:u,className:"flex-1 rounded-xl border border-border bg-background/70 px-3.5 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/60 transition-all disabled:opacity-60",maxLength:1e3}),e.jsx("button",{type:"submit",disabled:!l.trim()||u,className:"h-9 w-9 rounded-xl bg-primary text-primary-foreground flex items-center justify-center disabled:opacity-40 hover:bg-primary/90 transition-colors shrink-0",children:u?e.jsx(Wt,{className:"h-4 w-4 animate-spin"}):e.jsx(DN,{className:"h-4 w-4"})})]}
64),e.jsx("p",{className:"text-[10px] text-muted-foreground/60 text-center mt-2",children:"Powered by XpediOo AI · Only answers platform-related questions"})]})]},"chat-panel")})]})}const yl={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.08}}},di={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}},OX=[Hu,be,br,ge,$e],DX=[{icon:be,title:"AI Code Review",desc:"OpenAI and Claude analyze every function for logic, performance, security, style, and design pattern violations in under 30 seconds."},{icon:We,title:"AI Security Scanning",desc:"Multi-layer scanning: SAST, secret detection, dependency CVE audit, container analysis, and infrastructure misconfiguration review."},{icon:Ue,title:"Architecture Analysis",desc:"837 database-driven rules enforce scalability, security, performance, layering, design patterns, and naming on every commit."},{icon:Gt,title:"Taint Analysis Engine",desc:"AST-powered data-flow tracking from HTTP inputs and file reads to SQL executors, shell calls, and HTML renderers with 94% true-positive rate."},{icon:ge,title:"AI Fix Suggestions",desc:"Context-aware code fix patches generated from full file content — with side-by-side diff and plain-English explanation. One click to apply."},{icon:$e,title:"Code Complexity Analysis",desc:"Cyclomatic and cognitive complexity measured per function and file. AI refactoring suggestions when thresholds are exceeded."},{icon:CT,title:"Code Duplication Detection",desc:"Anchor-pair extension algorithm detects Type 1, 2, and 3 clones. AI generates extract-function suggestions and updated call sites."},{icon:ht,title:"Technical Debt Management",desc:"Continuous AI debt quantification across code smells, architecture violations, security debt, test debt, and dependency debt."},{icon:br,title:"Quality Gates",desc:"PASS / FAIL / WARN / INCONCLUSIVE gates evaluated against configurable thresholds on every PR — never a false pass on missing data."},{icon:hE,title:"PR Intelligence",desc:"Every PR receives AI risk scoring, size labeling, inline AI comments, and an executive summary before human review begins."},{icon:ct,title:"DORA Metrics & Analytics",desc:"Deployment frequency, lead time, MTTR, and change failure rate benchmarked against Elite/High/Medium/Low industry tiers."},{icon:Xi,title:"AI Vision Analysis",desc:"GPT-4 Vision and Claude Vision analyze architecture diagrams, UI screenshots, database ER schemas, and infrastructure diagrams."}],LX=[{icon:be,color:"text-violet-500",bg:"bg-violet-500/5",border:"border-violet-400/20",heading:"Multi-LLM AI Engine",items:["OpenAI for code review and fix generation","Claude Sonnet/Opus for security and architecture","Gemini Pro for complexity analysis and summarization","Claude Sonnet/Opus / Fable for lightweight summarization tasks","Intelligent task-to-model routing with fallback","Token budgeting, cost tracking, and model versioning"]},{icon:We,color:"text-red-500",bg:"bg-red-500/5",border:"border-red-400/20",heading:"Security Intelligence",items:["SAST with OWASP Top 10 coverage","Hardcoded secret and credential detection (99%)","Dependency CVE audit and license compliance","Container image and IaC misconfiguration scanning","AI Security Advisor with CVSS-aligned severity scoring","Taint analysis: source-to-sink data flow tracking"]},{icon:Ue,color:"text-blue-500",bg:"bg-blue-500/5",border:"border-blue-400/20",heading:"Architecture & Code Quality",items:["2700+ language-specific rules across 35+ languages and 8 rule categories","837 architecture rules: scalability, security, performance, layering, design patterns","AI Rule Builder Chat Engine — describe a rule in plain English, AI generates it instantly","Tree-sitter AST parsing for 35+ languages — structure-level, not regex","Cyclomatic and cognitive complexity measurement with AI refactoring guidance","Anchor-pair clone detection (Type 1, 2, 3) with AI extract-function suggestions"]},{icon:Cr,color:"text-emerald-500",bg:"bg-emerald-500/5",border:"border-emerald-400/20",heading:"Engineering Analytics",items:["DORA metrics: deploy frequency, lead time, MTTR, CFR","Per-developer qual
64ity scores and PR metrics","AI-generated executive security and compliance reports","Technical debt trend charts and priority matrix","Team performance benchmarking and skill-gap detection","Scheduled report delivery in PDF, JSON, and CSV"]}];function VX(){const{openDemoModal:t}=ot();return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Code Analysis | XpediOo — Enterprise AI Code Intelligence"}),e.jsx("meta",{name:"description",content:"Enterprise AI code analysis platform combining OpenAI, Anthropic, Gemini, and Grok with 837 architecture rules, taint analysis, DORA metrics, and one-click AI fixes across 35+ languages."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/ai-code-analysis"}),e.jsx("meta",{property:"og:title",content:"AI Powered Code Analysis | XpediOo"}),e.jsx("meta",{property:"og:description",content:"Multi-LLM code intelligence: instant PR review, security scanning, architecture enforcement, and AI-generated fixes in under 30 seconds."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/ai-code-analysis"})]}),e.jsx("section",{className:"relative overflow-hidden bg-gradient-to-br from-background via-primary/5 to-background pt-20 pb-16",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{variants:yl,initial:"hidden",animate:"visible",className:"max-w-4xl",children:[e.jsxs(v.div,{variants:di,className:"flex flex-wrap gap-2 mb-6",children:[e.jsxs("span",{className:"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-primary/10 text-primary text-xs font-bold uppercase tracking-widest border border-primary/20",children:[e.jsx(be,{className:"h-3.5 w-3.5"})," AI Code Intelligence"]}),e.jsx("span",{className:"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-violet-500/10 text-violet-500 text-xs font-bold uppercase tracking-widest border border-violet-400/20",children:"35+ Languages"}),e.jsx("span",{className:"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-blue-500/10 text-blue-500 text-xs font-bold uppercase tracking-widest border border-blue-400/20",children:"837 Architecture Rules"}),e.jsx("span",{className:"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-emerald-500/10 text-emerald-500 text-xs font-bold uppercase tracking-widest border border-emerald-400/20",children:"Multi-LLM Engine"})]}),e.jsxs(v.h1,{variants:di,className:"text-4xl md:text-5xl lg:text-6xl font-black tracking-tight mb-6",children:["AI Powered"," ",e.jsx("span",{className:"text-primary",children:"Code Analysis"})]}),e.jsx(v.p,{variants:di,className:"text-xl text-muted-foreground leading-relaxed mb-4 max-w-3xl",children:"An enterprise-grade platform that combines OpenAI, Anthropic, Gemini, and Grok with deep static analysis to automatically review every PR, detect security vulnerabilities, enforce 837 architecture rules, and generate one-click AI fixes — in under 30 seconds."}),e.jsx(v.p,{variants:di,className:"text-base text-muted-foreground leading-relaxed mb-8 max-w-3xl",children:"Connects directly to GitHub, GitLab, Azure DevOps, and Bitbucket. No change to developer workflows required."}),e.jsx(v.div,{variants:di,className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-7 gap-3 mb-8",children:EB.map(a=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card p-4 text-center",children:[e.jsx("div",{className:"text-2xl font-black text-primary mb-1",children:a.value}),e.jsx("div",{className:"text-xs text-muted-foreground",children:a.label})]},a.label))}),e.jsxs(v.div,{variants:di,className:"flex flex-wrap gap-3",children:[e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 rounded-xl bg-primary px-6 py-3 text-sm font-semibold text-primary-foreground hover:bg-primary/90 transition-colors",children:["Request Demo ",e.jsx(Te,{className:"h-4 w-4"})]}),e.jsx("button",{onClick:t,className:"inline-flex items-center gap-2 rounded-xl border border-border px-6 py-3 text-sm font-semibold hover:border-primary/40 hover:text-primary transition-colors",children:"Start Free Trial"})]})]})})}),e.jsx("section",{className:"py-20 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"text-center mb-12",children:[e.jsx("span",{className:"inline-block px-3 py-1 rounded-full bg-primary/10 text-primary text-xs font-bold uppercase tracking-widest border border-primary/20 mb-4",children:"AI-Driven Workflow"}),e.jsxs("h2",{className:"text-3xl md:text-4xl font-black mb-4",children:["From commit to confidence — ",e.jsx("span",{className:"text-primary",children:"automatically"})]}),e.jsx("p",{className:"text-muted-foreground max-w-2xl mx-auto",children:"Every step of the code quality lifecycle is orchestrated by AI — connect once and every future commit, PR, and merge is analyzed, scored, fixed, and monitored without manual intervention."})]}
64),e.jsx(v.div,{variants:yl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"space-y-6",children:TB.map((a,r)=>{const s=OX[r];return e.jsxs(v.div,{variants:di,className:"flex gap-6 rounded-xl border border-border/60 bg-card p-6 hover:border-primary/30 transition-colors",children:[e.jsxs("div",{className:"flex-shrink-0 flex flex-col items-center gap-2",children:[e.jsx("div",{className:"w-10 h-10 rounded-xl bg-primary/10 border border-primary/20 flex items-center justify-center",children:e.jsx(s,{className:"h-5 w-5 text-primary"})}),e.jsx("span",{className:"text-xs font-bold text-primary/60",children:a.stage})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-lg font-bold text-foreground mb-2",children:a.heading}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed mb-4",children:a.description}),e.jsx("div",{className:"grid sm:grid-cols-2 gap-2",children:a.points.map(l=>e.jsxs("div",{className:"flex items-start gap-2 text-xs text-muted-foreground",children:[e.jsx(Ve,{className:"h-3.5 w-3.5 mt-0.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:l})]},l))})]})]},a.stage)})})]})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"text-center mb-12",children:[e.jsx("span",{className:"inline-block px-3 py-1 rounded-full bg-primary/10 text-primary text-xs font-bold uppercase tracking-widest border border-primary/20 mb-4",children:"AI Capability Clusters"}),e.jsxs("h2",{className:"text-3xl md:text-4xl font-black mb-4",children:["Four AI engines. ",e.jsx("span",{className:"text-primary",children:"One unified platform."})]}),e.jsx("p",{className:"text-muted-foreground max-w-2xl mx-auto",children:"Each cluster is purpose-built for a distinct dimension of software quality — and they work together seamlessly on every scan."})]}),e.jsx(v.div,{variants:yl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 gap-6",children:LX.map(a=>e.jsxs(v.div,{variants:di,className:`rounded-xl border ${a.border} ${a.bg} p-6`,children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:`p-2 rounded-lg bg-background/60 border ${a.border}`,children:e.jsx(a.icon,{className:`h-5 w-5 ${a.color}`})}),e.jsx("h3",{className:`font-bold text-base ${a.color}`,children:a.heading})]}),e.jsx("ul",{className:"space-y-2",children:a.items.map(r=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:`h-3.5 w-3.5 mt-0.5 flex-shrink-0 ${a.color}`}),e.jsx("span",{children:r})]},r))})]},a.heading))})]})}),e.jsx("section",{className:"py-20 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"text-center mb-12",children:[e.jsx("span",{className:"inline-block px-3 py-1 rounded-full bg-primary/10 text-primary text-xs font-bold uppercase tracking-widest border border-primary/20 mb-4",children:"Platform Capabilities"}),e.jsxs("h2",{className:"text-3xl md:text-4xl font-black mb-4",children:["Complete AI code intelligence — ",e.jsx("span",{className:"text-primary",children:"every layer"})]})]}),e.jsx(v.div,{variants:yl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-4",children:DX.map(a=>e.jsxs(v.div,{variants:di,className:"rounded-xl border border-border/60 bg-card p-5 hover:border-primary/30 transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"p-2 rounded-lg bg-primary/10 border border-primary/20",children:e.jsx(a.icon,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"font-semibold text-sm text-foreground",children:a.title})]}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"text-center mb-12",children:[e.jsx("span",{className:"inline-block px-3 py-1 rounded-full bg-primary/10 text-primary text-xs font-bold uppercase tracking-widest border border-primary/20 mb-4",children:"Feature Depth"}),e.jsxs("h2",{className:"text-3xl md:text-4xl font-black mb-4",children:["Enterprise-grade AI at ",e.jsx("span",{className:"text-primary",children:"every touchpoint"})]})]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-6",children:[e.jsxs(v.div,{initial:{opacity:0,x:-20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.5},className:"rounded-xl border border-primary/20 bg-primary/5 p-6",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-5",children:[e.jsx(ge,{className:"h-5 w-5 text-primary"}),e.jsx("span",{className:"text-sm font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"})]}),e.jsx("div",{className:"space-y-3",children:T3.map(a=>e.jsxs("div",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"h-3.5 w-3.5 mt-0.5 flex-shrink-0 text-primary"}),e.jsx("span",{children:a})]},a))})]}),e.jsxs(v.div,{initial:{opacity:0,x:20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.5}
64,className:"rounded-xl border border-violet-400/25 bg-violet-500/5 p-6",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-5",children:[e.jsx(be,{className:"h-5 w-5 text-violet-500"}),e.jsx("span",{className:"text-sm font-bold uppercase tracking-widest text-violet-500",children:"AI Features"})]}),e.jsx("div",{className:"space-y-3",children:E3.map(a=>e.jsxs("div",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"h-3.5 w-3.5 mt-0.5 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:a})]},a))})]})]})]})}),e.jsx("section",{className:"py-20 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"text-center mb-12",children:[e.jsx("span",{className:"inline-block px-3 py-1 rounded-full bg-destructive/10 text-destructive text-xs font-bold uppercase tracking-widest border border-destructive/20 mb-4",children:"The Problem"}),e.jsxs("h2",{className:"text-3xl md:text-4xl font-black mb-4",children:["Why traditional code review ",e.jsx("span",{className:"text-destructive",children:"breaks down"})]}),e.jsx("p",{className:"text-muted-foreground max-w-2xl mx-auto",children:"Every gap traditional tooling leaves open is a direct cost to engineering velocity, security posture, and software quality."})]}),e.jsx(v.div,{variants:yl,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid md:grid-cols-2 gap-5",children:RB.map((a,r)=>e.jsxs(v.div,{variants:di,className:"rounded-xl border border-border/60 bg-card p-6",children:[e.jsxs("div",{className:"mb-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx($M,{className:"h-4 w-4 text-destructive"}),e.jsx("span",{className:"text-xs font-bold uppercase tracking-widest text-destructive",children:"Without AI"})]}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:a.problem})]}),e.jsxs("div",{className:"border-t border-border/40 pt-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(br,{className:"h-4 w-4 text-emerald-500"}),e.jsx("span",{className:"text-xs font-bold uppercase tracking-widest text-emerald-500",children:"With XpediOo AI"})]}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:a.solution})]})]},r))})]})}),e.jsx("section",{className:"py-20",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"rounded-2xl border border-primary/20 bg-gradient-to-br from-primary/10 via-primary/5 to-background p-10 md:p-16 text-center",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-14 h-14 rounded-2xl bg-primary/10 border border-primary/20 mb-6",children:e.jsx(Hu,{className:"h-7 w-7 text-primary"})}),e.jsxs("h2",{className:"text-3xl md:text-4xl font-black mb-4",children:["Start analyzing your code with ",e.jsx("span",{className:"text-primary",children:"AI today"})]}),e.jsx("p",{className:"text-muted-foreground max-w-xl mx-auto mb-8",children:"Connect your first repository in under 5 minutes. AI reviews every file, flags every vulnerability, and generates actionable insights — automatically."}),e.jsxs("div",{className:"flex flex-wrap gap-3 justify-center",children:[e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 rounded-xl bg-primary px-8 py-3 text-sm font-semibold text-primary-foreground hover:bg-primary/90 transition-colors",children:["Book a Demo ",e.jsx(Te,{className:"h-4 w-4"})]}),e.jsx("button",{onClick:t,className:"inline-flex items-center gap-2 rounded-xl border border-border px-8 py-3 text-sm font-semibold hover:border-primary/40 hover:text-primary transition-colors",children:"Start Free Trial — 30 days, no credit card"})]})]})})})]})}const _X=[{icon:Ki,title:"Space Planning & Occupancy Analytics",desc:"Real-time utilization heat maps built from badge and sensor data show exactly how every floor, room, and desk is used — so you can right-size the portfolio with evidence, not guesswork."},{icon:Yi,title:"Predictive Maintenance Scheduling",desc:"AI failure-risk scoring across HVAC, electrical, elevators, and building systems schedules maintenance before equipment fails, preventing unplanned downtime and emergency call-out
64s."},{icon:ge,title:"AI-Generated Work Orders",desc:"Requests, inspections, and sensor thresholds automatically become work orders — prioritized by criticality, SLA commitment, and technician availability without manual triage."},{icon:ze,title:"Vendor & Contractor Management",desc:"Performance scoring, onboarding workflows, and spend controls keep every facilities vendor accountable and every contract within budget."},{icon:MN,title:"Energy & Sustainability Tracking",desc:"AI anomaly alerts catch consumption spikes early while carbon footprint dashboards keep sustainability reporting continuous and audit-ready."},{icon:Zs,title:"Room & Desk Booking",desc:"AI demand forecasting right-sizes hybrid-work space — surfacing which floors to consolidate, which rooms to convert, and where booking friction is costing productivity."},{icon:Pt,title:"Compliance & Inspection Management",desc:"Automated checklists with regulatory audit trails ensure every site inspection, safety check, and statutory obligation is completed and evidenced on time."},{icon:It,title:"Asset Condition Monitoring",desc:"IoT-integrated sensor feeds trigger work orders the moment thresholds are crossed — turning building telemetry into immediate, governed action."},{icon:wP,title:"Visitor & Access Management",desc:"AI-assisted pre-registration, ID capture, and entry logs give security teams full visibility of who is on site, where, and why."},{icon:MP,title:"Cost Centre Allocation",desc:"Automated facilities charge-back and budget-to-actual reporting keep finance and facilities aligned on one set of numbers."},{icon:de,title:"AI-Generated Facilities Insights",desc:"Executive briefings on utilization trends and cost opportunities are generated automatically — translating building telemetry into board-ready language."},{icon:Js,title:"Mobile App for Facilities Teams",desc:"Offline-capable inspections, photo evidence, and QR/barcode scanning let field teams complete work anywhere — with everything synced back to the central record."}],zX=[{icon:Ki,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",heading:"Space & Occupancy Intelligence",items:["Live utilization heat maps by site, floor, room, desk, and time of day","AI demand forecasting for rooms, desks, amenities, and visitor capacity","Scenario modelling for consolidation, expansion, and hybrid-work decisions","Automated booking recommendations that reduce unused space and friction","Natural-language answers to questions about occupancy, bookings, and space cost"]},{icon:Yi,color:"text-emerald-500",bg:"bg-emerald-500/10",border:"border-emerald-400/25",heading:"Predictive Maintenance AI",items:["Asset failure-risk scoring from IoT telemetry, age, history, and operating conditions","Preventive work recommendations before equipment creates an emergency call","Intelligent routing by skill, certification, location, workload, and asset familiarity","Parts and technician demand forecasting for better readiness and fewer repeat visits","Continuous learning from completed work orders, repeat failures, and SLA outcomes"]},{icon:Pt,color:"text-violet-500",bg:"bg-violet-500/10",border:"border-violet-400/25",heading:"Compliance & Inspection AI",items:["Regime-aware inspection checklists generated for each asset class and site","Risk-based inspection frequency adjusted from historical faults and site conditions","Early warnings for overdue statutory checks and expiring certificates","Evidence completeness checks across photos, signatures, timestamps, and locations","AI-generated audit summaries that expose gaps before a regulator or incident does"]},{icon:MN,color:"text-amber-500",bg:"bg-amber-500/10",border:"border-amber-400/25",heading:"Energy & Sustainability Analytics",items:["Anomaly detection that separates occupancy changes from equipment faults","AI recommendations ranked by expected energy, carbon, and cost impact","Consumption forecasting across sites, floors, assets, and operating schedules","Executive sustainability briefings generated from live facilities data","Continuous measurement of savings after corrective actions are completed"]}],qX=[ra,Ki,Yi,Pt,de],FX={hidden:{opacity:0}
64,visible:{opacity:1,transition:{staggerChildren:.06}}},BX={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}};function HX(){const{openDemoModal:t}=ot();return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Facilities Service Management | XpediOo"}),e.jsx("meta",{name:"description",content:"Digitize and automate facilities operations — space management, predictive maintenance, energy tracking, and compliance — across all enterprise locations with AI."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/facilities"}),e.jsx("meta",{property:"og:title",content:"AI Powered Facilities Service Management | XpediOo"}),e.jsx("meta",{property:"og:description",content:"Digitize and automate facilities operations — from space management to maintenance requests — across all enterprise locations."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/facilities-service-management"})]}),e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[700px] h-[320px] bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl mx-auto",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 mb-6",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:[e.jsx(kl,{className:"h-3 w-3"})," AI Powered Facilities"]}),e.jsxs("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:[e.jsx(YM,{className:"h-3 w-3"})," Every Enterprise Location"]})]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["AI Powered Facilities",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Service Management"})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl mx-auto mb-4",children:"Digitize and automate facilities operations — from space management to maintenance requests — across all enterprise locations."}),e.jsx("p",{className:"text-muted-foreground text-base leading-relaxed max-w-3xl mx-auto mb-10",children:"XpediOo replaces spreadsheets, email chains, and reactive break-fix cycles with one AI-native platform that predicts failures, prioritizes work automatically, and keeps every site compliant and cost-controlled."}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-10 max-w-3xl mx-auto",children:xB.map(a=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card/60 px-4 py-5 text-center",children:[e.jsx("div",{className:"text-2xl font-bold text-primary",children:a.value}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground leading-tight",children:a.label})]},a.label))}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-3 justify-center",children:e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-8 py-3.5 rounded-lg hover:bg-primary/90 transition-colors",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})})]})})]}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-14 max-w-3xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," AI at Every Stage"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"Intelligence woven through the entire facilities lifecycle"}),e.jsx("p",{className:"text-muted-foreground",children:"From an employee request or sensor alert to the executive insight generated after closure, AI is active at every step — not bolted on at the edges."})]}),e.jsx("div",{className:"space-y-6",children:gB.map((a,r)=>
64{const s=qX[r];return e.jsx(v.div,{initial:{opacity:0,x:-20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.4,delay:r*.07},className:"rounded-2xl border border-border/60 bg-card/60 p-6 md:p-8 hover:border-primary/30 hover:shadow-md transition-all",children:e.jsxs("div",{className:"flex flex-col md:flex-row md:items-start gap-6",children:[e.jsxs("div",{className:"flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3 md:mb-0",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-primary/10 border border-primary/20 text-primary",children:e.jsx(s,{className:"h-5 w-5"})}),e.jsx("span",{className:"inline-block rounded-full bg-primary/10 px-3 py-1 text-xs font-bold uppercase tracking-widest text-primary md:hidden",children:a.stage})]}),e.jsx("span",{className:"hidden md:inline-block mt-2 rounded-full bg-primary/10 px-3 py-1 text-xs font-bold uppercase tracking-widest text-primary whitespace-nowrap",children:a.stage})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-lg font-bold mb-2",children:a.heading}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-4",children:a.description}),e.jsx("ul",{className:"grid sm:grid-cols-2 gap-2",children:a.points.map(l=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),l]},l))})]})]})},a.stage)})})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-14 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(be,{className:"h-3 w-3"})," AI Capability Clusters"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Four layers of AI — working together"}),e.jsx("p",{className:"text-muted-foreground",children:"Most facilities platforms digitize requests and stop there. XpediOo applies AI across space, maintenance, compliance, and sustainability — with every layer improving the next."})]}),e.jsx("div",{className:"grid gap-6 md:grid-cols-2",children:zX.map((a,r)=>e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.08},className:`rounded-2xl border ${a.border} bg-card/80 p-6 md:p-8`,children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:`flex h-10 w-10 items-center justify-center rounded-xl ${a.bg} border ${a.border} ${a.color}`,children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:`font-bold text-lg ${a.color}`,children:a.heading})]}),e.jsx("ul",{className:"space-y-3",children:a.items.map(s=>e.jsxs("li",{className:"flex items-start gap-2.5 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:`mt-0.5 h-4 w-4 flex-shrink-0 ${a.color}`}),s]},s))})]},a.heading))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(kl,{className:"h-3 w-3"})," Core Capabilities"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"12 Capabilities Covering Every Facilities Workflow"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"From space planning to mobile inspections, every capability is AI-augmented and integrated with EAM, CMDB, and the rest of the XpediOo platform."})]}),e.jsx(v.div,{variants:FX,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:_X.map(a=>e.jsxs(v.div,{variants:BX,className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4 group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3 w-3"})," Built for high-impact operations"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Run every building like your best building"}),e.jsx("p",{className:"text-muted-foreground",children:"Every capability reduces cost and risk while keeping facilities, security, and finance teams aligned on one operational record."})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.section,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-primary/20 bg-card p-3 text-primary",children:e.jsx(ge,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Operational control across every site"})]})]}),e.jsx("div",{className:"space-y-4",children:j3.map(a=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:a})]},a))})]}),e.jsxs(v.section,{initial:{opacity:0,x:18},whileInView:{opacity:1,x:0},viewport:{once:!0}
64,className:"rounded-2xl border border-violet-400/25 bg-violet-500/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"rounded-xl border border-violet-400/25 bg-card p-3 text-violet-500",children:e.jsx(be,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-bold uppercase tracking-widest text-violet-500",children:"AI Features"}),e.jsx("h3",{className:"mt-1 text-xl font-bold",children:"Intelligence behind every decision"})]})]}),e.jsx("div",{className:"space-y-4",children:N3.map(a=>e.jsxs("div",{className:"flex items-start gap-3 text-sm leading-relaxed text-muted-foreground",children:[e.jsx(de,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-violet-500"}),e.jsx("span",{children:a})]},a))})]})]})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ct,{className:"h-3 w-3"})," Why It Matters"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Why traditional facilities platforms hold estates back"}),e.jsx("p",{className:"text-muted-foreground",children:"Legacy tools record requests and inspections. XpediOo uses AI to predict what is next, prioritise what matters, and show leaders where to act."})]}),e.jsx("div",{className:"grid gap-5 md:grid-cols-2",children:yB.map((a,r)=>e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.07},className:"rounded-xl border border-border/60 bg-card/60 p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-destructive/10",children:e.jsx(ge,{className:"h-4 w-4 text-destructive"})}),e.jsxs("span",{className:"text-sm font-semibold text-destructive/80",children:["Problem: ",a.problem]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg bg-primary/10",children:e.jsx(de,{className:"h-4 w-4 text-primary"})}),e.jsxs("p",{className:"text-sm leading-relaxed text-muted-foreground",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"XpediOo: "}),a.solution]})]})]},a.problem))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(kl,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"Turn Your Buildings into a Managed, Predictable Estate"}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"See how XpediOo's AI Powered Facilities Service Management cuts reactive maintenance by 30%+, improves space utilization, and keeps every site compliant."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const GX=[{icon:$l,title:"AI-Optimized Scheduling & Dispatch",desc:"Every job assignment weighs skills, proximity, parts availability, and SLA commitments — so the right technician arrives with the right parts, every time."},{icon:Kg,title:"Real-Time Technician Tracking",desc:"Live location with ETA prediction keeps dispatchers in control and triggers automatic customer push notifications as technicians approach."},{icon:Js,title:"Mobile Technician App",desc:"Offline-capable with job details, asset history, and parts lookup — technicians complete work in basements, rural sites, and dead zones without losing data."},{icon:Mr,title:"Intelligent Parts & Inventory",desc:"AI demand forecasting and automatic replenishment keep depot and van stock at the right levels, eliminating second visits caused by missing parts."},{icon:ja,title:"SLA Tracking & Automated Escalation",desc:"Breach prediction triggers re-dispatch and escalation before violations occur — shifting SLA management from reporting to prevention."},{icon:de,title:"AI-Generated Job Summaries",desc:"Work performed, parts used, and next steps are captured automatically as resolution notes — no end-of-day paperwork for technicians."},{icon:ra,title:"Customer Communication Automation",desc:"Appointment confirmations, arrival alerts, and post-visit satisfaction surveys run automatically across the entire service journey."},{icon:SN,title:"Asset & Equipment Service History",desc:"Linked to CMDB and EAM for full lifecycle c
64ontext — every technician sees the complete history of the asset they're servicing."},{icon:Yi,title:"Predictive Field Service Planning",desc:"AI recommends preventive visits based on asset failure-risk scores, converting emergency call-outs into planned, efficient maintenance."},{icon:ze,title:"Contractor & Third-Party Workforce",desc:"Credentialing, job assignment, and performance scoring extend the same governance to external workforces as to your own technicians."},{icon:PN,title:"Billing & Time-Capture Integration",desc:"Automated work order costing and invoice generation close the loop between field work and revenue without manual reconciliation."},{icon:$e,title:"Field Analytics Dashboards",desc:"First-time fix rate, utilization, travel time, and customer satisfaction trends give operations leaders the levers to improve continuously."}],UX=[{icon:$l,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",heading:"Dispatch Intelligence",items:["Multi-factor optimisation: skill, location, parts, SLA — simultaneously","Continuous re-optimisation as jobs complete, cancel, or escalate","AI-recommended parts list generated before technician leaves depot","Contractor pool included in the same AI dispatch engine","Capacity forecasting 30+ days ahead for staffing alignment"]},{icon:Yi,color:"text-emerald-500",bg:"bg-emerald-500/10",border:"border-emerald-400/25",heading:"Predictive Maintenance & Planning",items:["Asset failure-risk scoring from IoT telemetry, age, and maintenance history","Preventive visit scheduling before reactive call-outs are generated","Parts demand forecasting and auto-replenishment across all depots","First-time fix rate analysis identifying recurring failure root causes","Technician skill-gap detection from repeat-visit and escalation patterns"]},{icon:Js,color:"text-violet-500",bg:"bg-violet-500/10",border:"border-violet-400/25",heading:"Mobile & In-Field AI",items:["Offline-capable app — fully functional in signal-dead environments","AI-suggested resolution steps ranked by success rate on similar assets","Conversational job briefing in natural language — no manual search","Semantic KB search — right article without exact keywords","Auto-generated closure summaries submitted on job completion"]},{icon:$e,color:"text-amber-500",bg:"bg-amber-500/10",border:"border-amber-400/25",heading:"Analytics & Workforce Optimisation",items:["Natural-language field analytics — ask plain-English questions about operations","Customer sentiment scoring with automatic low-CSAT follow-up workflows","Travel waste and utilisation dashboards with AI improvement recommendations","SLA compliance trends broken down by team, region, and asset class","Continuous learning loop: every job outcome improves dispatch and prediction models"]}],XX=[Mr,$l,Js,ja,de],$X={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.06}}},WX={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}};function KX(){const{openDemoModal:t}=ot();return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Field Service Management | XpediOo"}),e.jsx("meta",{name:"description",content:"Dispatch the right technician with the right skills to the right location — optimized in real time by AI routing, SLA breach prediction, and intelligent parts management."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/field-service"}),e.jsx("meta",{property:"og:title",content:"AI Powered Field Service Management | XpediOo"}),e.jsx("meta",{property:"og:description",content:"AI-optimized scheduling and dispatch, real-time technician tracking, and predictive field service planning at enterprise scale."})]}),e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[700px] h-[320px] bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24}
64,animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl mx-auto",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 mb-6",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:[e.jsx(Qt,{className:"h-3 w-3"})," AI Powered Field Service"]}),e.jsxs("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:[e.jsx($l,{className:"h-3 w-3"})," Real-Time AI Dispatch"]})]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["AI Powered Field Service",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Management"})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl mx-auto mb-4",children:"Dispatch the right technician with the right skills to the right location — optimised in real time by AI routing, SLA breach prediction, and intelligent parts management."}),e.jsx("p",{className:"text-muted-foreground text-base leading-relaxed max-w-3xl mx-auto mb-10",children:"XpediOo turns field operations from a dispatch board and a phone into a self-optimising system that predicts demand, prevents SLA breaches, and lifts first-time fix rates across every region."}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-10 max-w-3xl mx-auto",children:vB.map(a=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card/60 px-4 py-5 text-center",children:[e.jsx("div",{className:"text-2xl font-bold text-primary",children:a.value}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground leading-tight",children:a.label})]},a.label))}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-3 justify-center",children:e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-8 py-3.5 rounded-lg hover:bg-primary/90 transition-colors",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})})]})})]}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-14 max-w-3xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," AI at Every Stage"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"Intelligence woven through the entire field service lifecycle"}),e.jsx("p",{className:"text-muted-foreground",children:"From the moment a job request arrives to the predictive insight it generates on closure — AI is active at every step, not bolted on at the edges."})]}),e.jsx("div",{className:"space-y-6",children:bB.map((a,r)=>{const s=XX[r];return e.jsx(v.div,{initial:{opacity:0,x:-20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.4,delay:r*.07},className:"rounded-2xl border border-border/60 bg-card/60 p-6 md:p-8 hover:border-primary/30 hover:shadow-md transition-all",children:e.jsxs("div",{className:"flex flex-col md:flex-row md:items-start gap-6",children:[e.jsxs("div",{className:"flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3 md:mb-0",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-primary/10 border border-primary/20 text-primary",children:e.jsx(s,{className:"h-5 w-5"})}),e.jsx("span",{className:"inline-block rounded-full bg-primary/10 px-3 py-1 text-xs font-bold uppercase tracking-widest text-primary md:hidden",children:a.stage})]}),e.jsx("span",{className:"hidden md:inline-block mt-2 rounded-full bg-primary/10 px-3 py-1 text-xs font-bold uppercase tracking-widest text-primary whitespace-nowrap",children:a.stage})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-lg font-bold mb-2",children:a.heading}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-4",children:a.description}),e.jsx("ul",{className:"grid sm:grid-cols-2 gap-2",children:a.points.map(l
64=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),l]},l))})]})]})},a.stage)})})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-14 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(be,{className:"h-3 w-3"})," AI Capability Clusters"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Four layers of AI — working together"}),e.jsx("p",{className:"text-muted-foreground",children:"Most FSM platforms bolt AI onto dispatch. XpediOo is built AI-first across four intelligence layers — each feeding the others to create a self-improving field operation."})]}),e.jsx("div",{className:"grid gap-6 md:grid-cols-2",children:UX.map((a,r)=>e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.08},className:`rounded-2xl border ${a.border} bg-card/80 p-6 md:p-8`,children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:`flex h-10 w-10 items-center justify-center rounded-xl ${a.bg} border ${a.border} ${a.color}`,children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:`font-bold text-lg ${a.color}`,children:a.heading})]}),e.jsx("ul",{className:"space-y-3",children:a.items.map(s=>e.jsxs("li",{className:"flex items-start gap-2.5 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:`mt-0.5 h-4 w-4 flex-shrink-0 ${a.color}`}),s]},s))})]},a.heading))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(Qt,{className:"h-3 w-3"})," Core Capabilities"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"12 capabilities covering the full field service lifecycle"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"From intelligent dispatch to automated invoicing, every capability is AI-augmented and connected to EAM, CMDB, and the rest of the XpediOo platform."})]}),e.jsx(v.div,{variants:$X,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:GX.map(a=>e.jsxs(v.div,{variants:WX,className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4 group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3 w-3"})," Capability Highlights"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"High-impact features and AI capabilities"})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.div,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/15",children:e.jsx(ge,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"})]}),e.jsx("ul",{className:"space-y-4",children:A3.map(a=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{className:"text-sm leading-relaxed text-foreground
64/80",children:a})]},a))})]}),e.jsxs(v.div,{initial:{opacity:0,x:18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/15",children:e.jsx(de,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"AI Features"})]}),e.jsx("ul",{className:"space-y-4",children:k3.map(a=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(de,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{className:"text-sm leading-relaxed text-foreground/80",children:a})]},a))})]})]})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ct,{className:"h-3 w-3"})," Why It Matters"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Why traditional field service platforms hold operations back"}),e.jsx("p",{className:"text-muted-foreground",children:"Legacy FSM tools were built for scheduling, not intelligence. XpediOo was built AI-first from day one."})]}),e.jsx("div",{className:"grid gap-5 md:grid-cols-2",children:wB.map((a,r)=>e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.07},className:"rounded-xl border border-border/60 bg-card/60 p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-destructive/10",children:e.jsx(ge,{className:"h-4 w-4 text-destructive"})}),e.jsxs("span",{className:"text-sm font-semibold text-destructive/80",children:["Problem: ",a.problem]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg bg-primary/10",children:e.jsx(de,{className:"h-4 w-4 text-primary"})}),e.jsxs("p",{className:"text-sm leading-relaxed text-muted-foreground",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"XpediOo: "}),a.solution]})]})]},a.problem))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(Qt,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"Raise First-Time Fix Rates. Cut Travel Waste."}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"See how XpediOo's AI Powered Field Service Management raises first-time fix rates by 35%+, cuts travel waste by 40%, and predicts SLA breaches before they happen."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const YX=[{icon:CN,title:"Omnichannel Case Management",desc:"Email, chat, voice, social, and portal unified in one prioritized queue — agents work from a single pane regardless of where the customer reached out."},{icon:TN,title:"AI-Suggested Resolutions",desc:"KB-grounded recommendations appear as agents work, reducing handle time by up to 60% and keeping answers consistent across the team."},{icon:Xu,title:"Real-Time Sentiment Analysis",desc:"Tone and intent scoring throughout every interaction gives agents and supervisors live visibility into how each conversation is going."},{icon:ja,title:"Predictive Escalation Management",desc:"AI flags at-risk cases before SLA breach occurs — supervisors intervene while there's still time to save the outcome."}
64,{icon:vt,title:"Conversational Self-Service Portal",desc:"24/7 resolution without agent involvement — conversational AI handles common issues end to end and hands off seamlessly when a human is needed."},{icon:$l,title:"Automated Classification & Routing",desc:"AI assigns category, priority, and team in milliseconds — cases land with the right agent the moment they arrive."},{icon:Ht,title:"AI-Generated Case Summaries",desc:"Instant context for agents picking up transferred cases — summaries and closure notes are written automatically, not from memory at shift end."},{icon:yN,title:"Customer 360 View",desc:"Full interaction history, sentiment trend, and account health across all touchpoints — every agent sees the whole relationship, not just the ticket."},{icon:ZE,title:"Proactive Outreach Automation",desc:"AI triggers notifications and remediation offers before customers report issues — turning known problems into proactive service moments."},{icon:ge,title:"SLA Enforcement",desc:"Automated escalation chains and manager notifications keep every commitment visible and enforced without manual queue-watching."},{icon:$e,title:"AI-Powered CSAT & NPS Analysis",desc:"Theme extraction and trend identification across 100% of survey responses — not a sample — show exactly what drives satisfaction and what erodes it."},{icon:_n,title:"Knowledge Gap Detection",desc:"Unresolved case clusters automatically generate KB article drafts, so the knowledge base improves with every support cycle."}],QX=[{icon:vt,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",heading:"Conversational AI & Self-Service",items:["24/7 Tier-1 resolution without agent involvement","Seamless human handoff with full conversation context","Multilingual support across 50+ languages","Voice-enabled self-service with natural language understanding","Proactive bot outreach triggered by product events or anomalies"]},{icon:be,color:"text-violet-500",bg:"bg-violet-500/10",border:"border-violet-400/25",heading:"Agent Intelligence & Augmentation",items:["Generative AI reply drafts grounded in KB, policy, and case history","Next-best-action recommendations at every case stage","Semantic KB search — right answer without exact keywords","AI onboarding assistant reducing ramp time to days","Live transcription and suggestion overlay for voice interactions"]},{icon:ct,color:"text-emerald-500",bg:"bg-emerald-500/10",border:"border-emerald-400/25",heading:"Predictive & Proactive AI",items:["SLA breach probability scoring hours before deadlines","Customer churn risk prediction from support interaction signals","Proactive outreach before customers notice a problem","Escalation path recommendation ranked by success likelihood","Volume forecasting for staffing and capacity planning"]},{icon:$e,color:"text-amber-500",bg:"bg-amber-500/10",border:"border-amber-400/25",heading:"Analytics & Continuous Learning",items:["100% CSAT and NPS response analysis — no sampling","Sentiment trend dashboards by product, region, and agent","Knowledge gap detection with auto-generated KB drafts","Case deflection analytics identifying self-service opportunities","Model improvement loop fed by resolved cases and agent approvals"]}],ZX=[CN,yN,TN,We,de],JX={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.06}}},e$={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}};function t$(){const{openDemoModal:t}=ot();return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Customer Support Management | XpediOo"}),e.jsx("meta",{name:"description",content:"Deliver proactive, AI-augmented customer support across every channel — omnichannel case management, AI-suggested resolutions, sentiment analysis, and predictive escalation at enterprise scale."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/csm"}),e.jsx("meta",{property:"og:title",content:"AI Powered Customer Support Management | XpediOo"}),e.jsx("meta",{property:"og:description",content:"Proactive, AI-augmented customer support across every channel — from first contact to resolution — at enterprise scale."})]}),e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[700px] h-[320px] bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24}
64,animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl mx-auto",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 mb-6",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:[e.jsx(yr,{className:"h-3 w-3"})," AI Powered CSM"]}),e.jsxs("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:[e.jsx(ra,{className:"h-3 w-3"})," Every Channel, One AI Platform"]})]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["AI Powered Customer",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Support Management"})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl mx-auto mb-4",children:"Deliver proactive, AI-augmented customer support across every channel — from first contact to resolution — at enterprise scale."}),e.jsx("p",{className:"text-muted-foreground text-base leading-relaxed max-w-3xl mx-auto mb-10",children:"XpediOo replaces siloed inboxes and reactive queues with one AI-native support platform that classifies, routes, resolves, and reaches out before customers notice a problem."}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-10 max-w-3xl mx-auto",children:NB.map(a=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card/60 px-4 py-5 text-center",children:[e.jsx("div",{className:"text-2xl font-bold text-primary",children:a.value}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground leading-tight",children:a.label})]},a.label))}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-3 justify-center",children:e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-8 py-3.5 rounded-lg hover:bg-primary/90 transition-colors",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})})]})})]}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-14 max-w-3xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," AI at Every Stage"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"Intelligence woven through the entire support lifecycle"}),e.jsx("p",{className:"text-muted-foreground",children:"From the moment a case arrives to the knowledge article it generates after closure — AI is active at every step, not bolted on at the edges."})]}),e.jsx("div",{className:"space-y-6",children:jB.map((a,r)=>{const s=ZX[r];return e.jsx(v.div,{initial:{opacity:0,x:-20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.4,delay:r*.07},className:"rounded-2xl border border-border/60 bg-card/60 p-6 md:p-8 hover:border-primary/30 hover:shadow-md transition-all",children:e.jsxs("div",{className:"flex flex-col md:flex-row md:items-start gap-6",children:[e.jsxs("div",{className:"flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3 md:mb-0",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-primary/10 border border-primary/20 text-primary",children:e.jsx(s,{className:"h-5 w-5"})}),e.jsx("span",{className:"inline-block rounded-full bg-primary/10 px-3 py-1 text-xs font-bold uppercase tracking-widest text-primary md:hidden",children:a.stage})]}),e.jsx("span",{className:"hidden md:inline-block mt-2 rounded-full bg-primary/10 px-3 py-1 text-xs font-bold uppercase tracking-widest text-primary whitespace-nowrap",children:a.stage})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-lg font-bold mb-2",children:a.heading}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-4",children:a.description}),e.jsx("ul",{className:"grid sm:grid-cols-2 gap-2",children:a.points.map(l
64=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),l]},l))})]})]})},a.stage)})})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-14 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(be,{className:"h-3 w-3"})," AI Capability Clusters"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Four layers of AI — working together"}),e.jsx("p",{className:"text-muted-foreground",children:"Most CSM platforms add one AI feature. XpediOo is built AI-first across four distinct intelligence layers — each feeding the others."})]}),e.jsx("div",{className:"grid gap-6 md:grid-cols-2",children:QX.map((a,r)=>e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.08},className:`rounded-2xl border ${a.border} bg-card/80 p-6 md:p-8`,children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:`flex h-10 w-10 items-center justify-center rounded-xl ${a.bg} border ${a.border} ${a.color}`,children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:`font-bold text-lg ${a.color}`,children:a.heading})]}),e.jsx("ul",{className:"space-y-3",children:a.items.map(s=>e.jsxs("li",{className:"flex items-start gap-2.5 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:`mt-0.5 h-4 w-4 flex-shrink-0 ${a.color}`}),s]},s))})]},a.heading))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(yr,{className:"h-3 w-3"})," Core Capabilities"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"12 capabilities covering the full support lifecycle"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"From first contact to closure notes, every capability is AI-augmented and connected to the knowledge base, SLA engine, and the rest of the XpediOo platform."})]}),e.jsx(v.div,{variants:JX,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:YX.map(a=>e.jsxs(v.div,{variants:e$,className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4 group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3 w-3"})," Capability Highlights"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"High-impact features and AI capabilities"})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.div,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/15",children:e.jsx(ge,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"})]}),e.jsx("ul",{className:"space-y-4",children:S3.map(a=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{className:"text-sm leading-relaxed text-foreground
64/80",children:a})]},a))})]}),e.jsxs(v.div,{initial:{opacity:0,x:18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/15",children:e.jsx(de,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"AI Features"})]}),e.jsx("ul",{className:"space-y-4",children:I3.map(a=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(de,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{className:"text-sm leading-relaxed text-foreground/80",children:a})]},a))})]})]})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ct,{className:"h-3 w-3"})," Why It Matters"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Why traditional support platforms hold teams back"}),e.jsx("p",{className:"text-muted-foreground",children:"Legacy CSM tools were built for ticket management, not intelligence. XpediOo was built for AI from day one."})]}),e.jsx("div",{className:"grid gap-5 md:grid-cols-2",children:AB.map((a,r)=>e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.07},className:"rounded-xl border border-border/60 bg-card/60 p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-destructive/10",children:e.jsx(ge,{className:"h-4 w-4 text-destructive"})}),e.jsxs("span",{className:"text-sm font-semibold text-destructive/80",children:["Problem: ",a.problem]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg bg-primary/10",children:e.jsx(de,{className:"h-4 w-4 text-primary"})}),e.jsxs("p",{className:"text-sm leading-relaxed text-muted-foreground",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"XpediOo: "}),a.solution]})]})]},a.problem))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(yr,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"Turn Support into Your Strongest Loyalty Engine"}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"See how XpediOo's AI Powered Customer Support Management cuts handle time by 60%, resolves 40% of cases without an agent, and predicts SLA breaches before they happen."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const a$=[{icon:VN,title:"Vendor Onboarding & Due Diligence",desc:"AI-guided questionnaires with automated document verification compress onboarding from weeks to days while raising the diligence bar."}
64,{icon:It,title:"Third-Party Risk Scoring",desc:"Continuous AI scoring across financial, cyber, compliance, and operational dimensions — so risk posture is always current, not a point-in-time snapshot."},{icon:$g,title:"Contract Lifecycle Management",desc:"AI-extracted obligations, renewal alerts, and clause deviation flagging keep every commitment visible from signature to expiry."},{icon:$u,title:"Vendor Performance Scorecards",desc:"KPI tracking with AI-generated trend analysis and improvement recommendations turns vendor reviews from anecdotes into evidence."},{icon:$e,title:"Spend Analytics & Consolidation",desc:"AI identifies overlap, redundancy, and negotiation leverage across the portfolio — surfacing savings that manual spend reviews miss."},{icon:Be,title:"Regulatory Compliance Monitoring",desc:"Automated checks against GDPR, SOC 2, ISO 27001, and DORA requirements keep every third-party relationship inside your compliance boundary."},{icon:Ht,title:"AI-Powered Vendor Risk Reports",desc:"One-click executive summaries generated from uploaded evidence and questionnaire responses — audit-ready in minutes, not weeks."},{icon:ht,title:"Incident & Breach Notification Tracking",desc:"Vendor SLA obligations and regulatory reporting timelines are tracked automatically when third-party incidents occur."},{icon:Xg,title:"Preferred Vendor Catalogue",desc:"AI-assisted selection based on risk profile, capability, and pricing steers the business toward pre-vetted vendors by default."},{icon:Zs,title:"Renewal & Expiry Management",desc:"Automated workflows triggered by contract milestones and risk threshold changes mean no renewal ever sneaks up on procurement again."},{icon:AM,title:"Audit Trail & Evidence Repository",desc:"Centralised storage linked to GRC gives auditors complete third-party coverage without evidence-gathering fire drills."},{icon:ct,title:"Spend Consolidation AI",desc:"Duplicate vendor relationships, shadow procurement, and pricing anomalies surfaced across business units for immediate cost recovery opportunities."}],i$=[{icon:It,color:"text-primary",bg:"bg-primary/10",border:"border-primary/20",heading:"Vendor Risk Intelligence",items:["Continuous multi-dimensional risk scoring updated from live external signals","Real-time ingestion of breach databases, financial filings, and news feeds","Natural-language executive briefings generated from score changes on demand","Threshold-based risk alerts triggering automated review workflows","Predictive risk trajectory forecasting ahead of annual review cycles"]},{icon:$g,color:"text-violet-500",bg:"bg-violet-500/10",border:"border-violet-400/25",heading:"Contract AI",items:["AI obligation extraction mapping every commitment at upload","Clause deviation detection against approved legal templates before execution","Renewal milestone alerts timed to preserve renegotiation leverage","Full contract version history linked to vendor record and audit trail","SLA extraction and automated breach notification workflows"]},{icon:$e,color:"text-emerald-500",bg:"bg-emerald-500/10",border:"border-emerald-400/25",heading:"Performance & Spend Analytics",items:["AI-generated vendor scorecards with trend narratives and benchmarks","Spend consolidation engine identifying overlap and redundancy across BUs","KPI anomaly detection flagging deterioration before SLA breach occurs","Pricing anomaly detection surfacing renegotiation opportunities","Review meeting packs auto-generated with prior-period comparisons"]},{icon:Be,color:"text-amber-500",bg:"bg-amber-500/10",border:"border-amber-400/25",heading:"Regulatory Compliance AI",items:["Continuous framework checks against GDPR, SOC 2, ISO 27001, and DORA","AI gap analysis mapped to each vendor's evidence on file","Remediation plan with owner assignments generated automatically","Centralised evidence repository with chain-of-custody audit trail","Framework update tracking so compliance requirements never go stale"]}],n$=[VN,It,$g,$u,Be],r$={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.06}}},s$={hidden:{opacity:0,y:20},visible:{opacity:1,y:0,transition:{duration:.4,ease:"easeOut"}}};function o$(){const{openDemoModal:t}=ot();return e.jsxs("div",{className:"min-h-screen",children:[e.jsxs(st,{children:[e.jsx("title",{children:"AI Powered Vendor Management | XpediOo"}),e.jsx("meta",{name:"description",content:"Centralize and govern every vend
64or relationship — AI-guided onboarding, continuous third-party risk scoring, contract lifecycle management, and performance tracking at enterprise scale."}),e.jsx("link",{rel:"canonical",href:"https://xpedioo.ai/vendor-management"}),e.jsx("meta",{property:"og:title",content:"AI Powered Vendor Management | XpediOo"}),e.jsx("meta",{property:"og:description",content:"Centralize and govern every vendor relationship — from onboarding and risk assessment to contract management and performance tracking."}),e.jsx("meta",{property:"og:url",content:"https://xpedioo.ai/vendor-management"})]}),e.jsxs("section",{className:"relative py-24 border-b border-border/40 overflow-hidden text-center",children:[e.jsx("div",{className:"absolute inset-0 opacity-[0.03]",style:{backgroundImage:"linear-gradient(hsl(275 100% 60%) 1px, transparent 1px), linear-gradient(90deg, hsl(275 100% 60%) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[700px] h-[320px] bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"container mx-auto px-4 md:px-6 relative",children:e.jsxs(v.div,{initial:{opacity:0,y:24},animate:{opacity:1,y:0},transition:{duration:.6},className:"max-w-4xl mx-auto",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-3 mb-6",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:[e.jsx(br,{className:"h-3 w-3"})," AI Powered Vendor Mgmt"]}),e.jsxs("span",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full",children:[e.jsx(Be,{className:"h-3 w-3"})," GRC-Linked Governance"]})]}),e.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6 leading-tight",children:["AI Powered Vendor",e.jsx("br",{}),e.jsx("span",{className:"text-primary",children:"Management"})]}),e.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl mx-auto mb-4",children:"Centralize and govern every vendor relationship — from onboarding and risk assessment to contract management and performance tracking."}),e.jsx("p",{className:"text-muted-foreground text-base leading-relaxed max-w-3xl mx-auto mb-10",children:"XpediOo replaces scattered spreadsheets and annual review cycles with continuous AI risk scoring, automated compliance monitoring, and one governed record for every third-party relationship."}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-10 max-w-3xl mx-auto",children:SB.map(a=>e.jsxs("div",{className:"rounded-xl border border-border/60 bg-card/60 px-4 py-5 text-center",children:[e.jsx("div",{className:"text-2xl font-bold text-primary",children:a.value}),e.jsx("div",{className:"mt-1 text-xs text-muted-foreground leading-tight",children:a.label})]},a.label))}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-3 justify-center",children:e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-8 py-3.5 rounded-lg hover:bg-primary/90 transition-colors",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})})]})})]}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-14 max-w-3xl",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(de,{className:"h-3 w-3"})," AI at Every Stage"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"Intelligence woven through the entire vendor lifecycle"}),e.jsx("p",{className:"text-muted-foreground",children:"From the first onboarding questionnaire to the final audit evidence pack — AI is active at every step, not bolted on at the edges."})]}),e.jsx("div",{className:"space-y-6",children:kB.map((a,r)=>
64{const s=n$[r];return e.jsx(v.div,{initial:{opacity:0,x:-20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.4,delay:r*.07},className:"rounded-2xl border border-border/60 bg-card/60 p-6 md:p-8 hover:border-primary/30 hover:shadow-md transition-all",children:e.jsxs("div",{className:"flex flex-col md:flex-row md:items-start gap-6",children:[e.jsxs("div",{className:"flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3 md:mb-0",children:[e.jsx("div",{className:"flex h-10 w-10 items-center justify-center rounded-xl bg-primary/10 border border-primary/20 text-primary",children:e.jsx(s,{className:"h-5 w-5"})}),e.jsx("span",{className:"inline-block rounded-full bg-primary/10 px-3 py-1 text-xs font-bold uppercase tracking-widest text-primary md:hidden",children:a.stage})]}),e.jsx("span",{className:"hidden md:inline-block mt-2 rounded-full bg-primary/10 px-3 py-1 text-xs font-bold uppercase tracking-widest text-primary whitespace-nowrap",children:a.stage})]}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"text-lg font-bold mb-2",children:a.heading}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed mb-4",children:a.description}),e.jsx("ul",{className:"grid sm:grid-cols-2 gap-2",children:a.points.map(l=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),l]},l))})]})]})},a.stage)})})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-14 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(be,{className:"h-3 w-3"})," AI Capability Clusters"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Four layers of AI — working together"}),e.jsx("p",{className:"text-muted-foreground",children:"Most vendor management platforms add one AI feature. XpediOo is built AI-first across four distinct intelligence layers — each feeding the others."})]}),e.jsx("div",{className:"grid gap-6 md:grid-cols-2",children:i$.map((a,r)=>e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.08},className:`rounded-2xl border ${a.border} bg-card/80 p-6 md:p-8`,children:[e.jsxs("div",{className:"mb-5 flex items-center gap-3",children:[e.jsx("div",{className:`flex h-10 w-10 items-center justify-center rounded-xl ${a.bg} border ${a.border} ${a.color}`,children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:`font-bold text-lg ${a.color}`,children:a.heading})]}),e.jsx("ul",{className:"space-y-3",children:a.items.map(s=>e.jsxs("li",{className:"flex items-start gap-2.5 text-sm text-muted-foreground",children:[e.jsx(Ve,{className:`mt-0.5 h-4 w-4 flex-shrink-0 ${a.color}`}),s]},s))})]},a.heading))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 border border-primary/30 bg-primary/10 text-primary text-xs font-semibold tracking-widest uppercase px-4 py-2 rounded-full mb-4",children:[e.jsx(br,{className:"h-3 w-3"})," Core Capabilities"]}),e.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-3",children:"12 capabilities covering the full vendor lifecycle"}),e.jsx("p",{className:"text-muted-foreground max-w-2xl",children:"From due diligence to disposal, every capability is AI-augmented and linked to GRC, contracts, and spend — one governed record per vendor."})]}),e.jsx(v.div,{variants:r$,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-5",children:a$.map(a=>e.jsxs(v.div,{variants:s$,className:"group border border-border/60 bg-card rounded-xl p-6 hover:border-primary/30 hover:shadow-md transition-all duration-300",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 border border-primary/20 text-primary mb-4 group-hover:bg-primary/15 transition-colors",children:e.jsx(a.icon,{className:"h-5 w-5"})}),e.jsx("h3",{className:"font-bold text-foreground mb-2",children:a.title}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:a.desc})]},a.title))})]})}),e.jsx("section",{className:"py-20 border-b border-border/40 bg-muted/20",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ge,{className:"h-3 w-3"})," Capability Highlights"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"High-impact features and AI capabilities"})]}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(v.div,{initial:{opacity:0,x:-18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/15",children:e.jsx(ge,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"High-Impact Features"})]}),e.jsx("ul",{className:"space-y-4",children:C3.map(a=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(Me,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{className:"text-sm leading-relaxed text-foreground
64/80",children:a})]},a))})]}),e.jsxs(v.div,{initial:{opacity:0,x:18},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"rounded-2xl border border-primary/20 bg-primary/5 p-6 md:p-8",children:[e.jsxs("div",{className:"mb-6 flex items-center gap-3",children:[e.jsx("div",{className:"flex h-9 w-9 items-center justify-center rounded-lg bg-primary/15",children:e.jsx(de,{className:"h-4 w-4 text-primary"})}),e.jsx("h3",{className:"text-xs font-bold uppercase tracking-widest text-primary",children:"AI Features"})]}),e.jsx("ul",{className:"space-y-4",children:M3.map(a=>e.jsxs("li",{className:"flex items-start gap-3",children:[e.jsx(de,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{className:"text-sm leading-relaxed text-foreground/80",children:a})]},a))})]})]})]})}),e.jsx("section",{className:"py-20 border-b border-border/40",children:e.jsxs("div",{className:"container mx-auto px-4 md:px-6",children:[e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mx-auto mb-12 max-w-3xl text-center",children:[e.jsxs("div",{className:"mb-4 inline-flex items-center gap-2 rounded-full border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-semibold uppercase tracking-widest text-primary",children:[e.jsx(ct,{className:"h-3 w-3"})," Why It Matters"]}),e.jsx("h2",{className:"mb-4 text-3xl font-bold md:text-4xl",children:"Why traditional vendor management holds teams back"}),e.jsx("p",{className:"text-muted-foreground",children:"Legacy vendor tools were built for tracking, not intelligence. XpediOo was built for AI from day one."})]}),e.jsx("div",{className:"grid gap-5 md:grid-cols-2",children:IB.map((a,r)=>e.jsxs(v.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:r*.07},className:"rounded-xl border border-border/60 bg-card/60 p-6",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-destructive/10",children:e.jsx(ge,{className:"h-4 w-4 text-destructive"})}),e.jsxs("span",{className:"text-sm font-semibold text-destructive/80",children:["Problem: ",a.problem]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg bg-primary/10",children:e.jsx(de,{className:"h-4 w-4 text-primary"})}),e.jsxs("p",{className:"text-sm leading-relaxed text-muted-foreground",children:[e.jsx("span",{className:"font-semibold text-foreground",children:"XpediOo: "}),a.solution]})]})]},a.problem))})]})}),e.jsx("section",{className:"py-24",children:e.jsx("div",{className:"container mx-auto px-4 md:px-6",children:e.jsxs(v.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"relative rounded-2xl border border-primary/30 bg-gradient-to-br from-primary/10 via-primary/5 to-transparent p-12 text-center overflow-hidden",children:[e.jsx("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/10 rounded-full blur-3xl"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-48 h-48 bg-primary/8 rounded-full blur-3xl"}),e.jsxs("div",{className:"relative",children:[e.jsx(br,{className:"h-12 w-12 text-primary mx-auto mb-6"}),e.jsx("h2",{className:"text-3xl md:text-5xl font-bold mb-4",children:"Know Every Vendor. Govern Every Risk."}),e.jsx("p",{className:"text-muted-foreground text-lg mb-8 max-w-xl mx-auto",children:"See how XpediOo's AI Powered Vendor Management compresses onboarding by 70%, keeps risk scores continuous, and makes every renewal a deliberate decision."}),e.jsxs("button",{onClick:t,className:"inline-flex items-center gap-2 bg-primary text-white font-semibold px-10 py-4 rounded-lg hover:bg-primary/90 transition-colors text-base",children:["Request a Demo ",e.jsx(Te,{className:"h-4 w-4"})]})]})]})})})]})}const l$=new zC,c$=["demo","book-demo"];function d$(){const{openDemoModal:t}=ot();return y.useEffect(()=>{const a=new URLSearchParams(window.location.search);if(!(a.get("demo")==="open"||a.get("book-demo")==="1"))return;t(),c$.forEach(d=>
64a.delete(d));const s=a.toString(),l=window.location.pathname+(s?`?${s}`:"")+window.location.hash;window.history.replaceState({},"",l)},[t]),null}function dj(){const[t]=Sr();return y.useEffect(()=>{window.scrollTo(0,0)},[t]),null}const u$=["/sign-in","/reports"];function m$(){const[t]=Sr();return u$.some(r=>t===r||t.startsWith(r+"/"))?e.jsxs(e.Fragment,{children:[e.jsx(dj,{}),e.jsxs(lw,{children:[e.jsx(_e,{path:"/sign-in",component:cX}),e.jsx(_e,{path:"/reports",component:xX})]})]}):e.jsxs("div",{className:"flex min-h-screen flex-col bg-background text-foreground transition-colors duration-300",children:[e.jsx(dj,{}),e.jsx(qB,{}),e.jsx("main",{className:"flex-1",children:e.jsxs(lw,{children:[e.jsx(_e,{path:"/",component:QB}),e.jsx(_e,{path:"/products",component:DB}),e.jsx(_e,{path:"/patch-management",component:tH}),e.jsx(_e,{path:"/vulnerability-management",component:oH}),e.jsx(_e,{path:"/enterprise-asset-management",component:uH}),e.jsx(_e,{path:"/application-infrastructure-automation",component:fH}),e.jsx(_e,{path:"/digital-employee-experience",component:vH}),e.jsx(_e,{path:"/grc",component:_H}),e.jsx(_e,{path:"/ai-studio",component:FH}),e.jsx(_e,{path:"/platform",component:$H}),e.jsx(_e,{path:"/agentic-studio",component:eG}),e.jsx(_e,{path:"/servicenow-ai-studio",component:oG}),e.jsx(_e,{path:"/ai-auditor-suite",component:uG}),e.jsx(_e,{path:"/ai-observability",component:xG}),e.jsx(_e,{path:"/aiops-log-management",component:EG}),e.jsx(_e,{path:"/pdlc-sdlc",component:LG}),e.jsx(_e,{path:"/program-project-management",component:FG}),e.jsx(_e,{path:"/itsm",component:XG}),e.jsx(_e,{path:"/itam",component:IU}),e.jsx(_e,{path:"/voice-ai-agentic",component:PU}),e.jsx(_e,{path:"/hrms",component:zU}),e.jsx(_e,{path:"/form-builder",component:XU}),e.jsx(_e,{path:"/facilities",component:HX}),e.jsx(_e,{path:"/field-service",component:KX}),e.jsx(_e,{path:"/csm",component:t$}),e.jsx(_e,{path:"/vendor-management",component:o$}),e.jsx(_e,{path:"/ai-code-analysis",component:VX}),e.jsx(_e,{path:"/ai-workflow-engine",component:KU}),e.jsx(_e,{path:"/partner-registration",component:sX}),e.jsx(_e,{path:"/about",component:bX}),e.jsx(_e,{path:"/contact",component:jX}),e.jsx(_e,{path:"/privacy",component:AX}),e.jsx(_e,{path:"/terms",component:SX}),e.jsx(_e,{component:EX})]})}),e.jsx(FB,{})]})}function p$(){return e.jsx(Lj,{children:e.jsx(fD,{children:e.jsx(gD,{children:e.jsx(xD,{children:e.jsx(Y_,{children:e.jsx(FC,{client:l$,children:e.jsxs(pD,{children:[e.jsxs(wj,{base:"/".replace(/\/$/,""),children:[e.jsx(m$,{}),e.jsx(_B,{})]}),e.jsx(K_,{}),e.jsx(d$,{}),e.jsx(PX,{}),e.jsx(E8,{})]})})})})})})})}const uj="xpedioo.ai",h$=new Set(["xpedioo.ai","www.xpedioo.ai"]);function f$(){if(typeof window>"u"||!h$.has(window.location.hostname)||document.querySelector(`script[data-domain="${uj}"]`))return;const t=document.createElement("script");t.defer=!0,t.src="https://plausible.io/js/script.js",t.dataset.domain=uj,document.head.appendChild(t)}f$();GI.createRoot(document.getElementById("root")).render(e.jsx(p$,{}));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.