PluginProbe
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN / 1.1.6
xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN v1.1.6
1.3.2 1.3.1 1.3.0 1.2.4 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.2.0 All 28 releases
xspeed / assets / admin.js

admin.js in xSpeed Cache: AI-Powered Performance Hub with MCP, Caching & CDN 1.1.6, at assets/admin.js

12 lines 444.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function(){var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=o((e=>{var t=Symbol.for(`react.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.provider`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`setState(...): takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var x=Array.isArray,S=Object.prototype.hasOwnProperty,C={current:null},w={key:!0,ref:!0,__self:!0,__source:!0};function T(e,n,r){var i,a={},o=null,s=null;if(n!=null)for(i in n.ref!==void 0&&(s=n.ref),n.key!==void 0&&(o=``+n.key),n)S.call(n,i)&&!w.hasOwnProperty(i)&&(a[i]=n[i]);var c=arguments.length-2;if(c===1)a.children=r;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(i in c=e.defaultProps,c)a[i]===void 0&&(a[i]=c[i]);return{$$typeof:t,type:e,key:o,ref:s,props:a,_owner:C.current}}function ee(e,n){return{$$typeof:t,type:e.type,key:n,ref:e.ref,props:e.props,_owner:e._owner}}function E(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function te(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var D=/\/+/g;function ne(e,t){return typeof e==`object`&&e&&e.key!=null?te(``+e.key):t.toString(36)}function re(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0}}if(c)return c=e,o=o(c),e=a===``?`.`+ne(c,0):a,x(o)?(i=``,e!=null&&(i=e.replace(D,`$&/`)+`/`),re(o,r,i,``,function(e){return e})):o!=null&&(E(o)&&(o=ee(o,i+(!o.key||c&&c.key===o.key?``:(``+o.key).replace(D,`$&/`)+`/`)+e)),r.push(o)),1;if(c=0,a=a===``?`.`:a+`:`,x(e))for(var l=0;l<e.length;l++){s=e[l];var u=a+ne(s,l);c+=re(s,r,i,u,o)}else if(u=p(e),typeof u==`function`)for(e=u.call(e),l=0;!(s=e.next()).done;)s=s.value,u=a+ne(s,l++),c+=re(s,r,i,u,o);else if(s===`object`)throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`);return c}function O(e,t,n){if(e==null)return e;var r=[],i=0;return re(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function k(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var A={current:null},j={transition:null},ie={ReactCurrentDispatcher:A,ReactCurrentBatchConfig:j,ReactCurrentOwner:C};function ae(){throw Error(`act(...) is not supported in production builds of React.`)}e.Children={map:O,forEach:function(e,t,n){O(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return O(e,function(){t++}),t},toArray:function(e){return O(e,function(e){return e})||[]},only:function(e){if(!E(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}},e.Component=_,e.Fragment=r,e.Profiler=a,e.PureComponent=y,e.StrictMode=i,e.Suspense=l,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ie,e.act=ae,e.cloneElement=function(e,n,r){if(e==null)throw Error(`React.cloneElement(...): The argument must be a React element, but you passed `+e+`.`);var i=h({},e.props),a=e.key,o=e.ref,s=e._owner;if(n!=null){if(n.ref!==void 0&&(o=n.ref,s=C.current),n.key!==void 0&&(a=``+n.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in n)S.call(n,l)&&!w.hasOwnProperty(l)&&(i[l]=n[l]===void 0&&c!==void 0?c[l]:n[l])}var l=arguments.length-2;if(l===1)i.children=r;else if(1<l){c=Array(l);for(var u=0;u<l;u++)c[u]=arguments[u+2];i.children=c}return{$$typeof:t,type:e.type,key:a,ref:o,props:i,_owner:s}},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:o,_context:e},e.Consumer=e},e.createElement=T,e.createFactory=function(e){var t=T.bind(null,e);return t.type=e,t},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=E,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:k}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=j.transition;j.transition={};try{e()}finally{j.transition=t}},e.unstable_act=ae,e.useCallback=function(e,t){return A.current.useCallback(e,t)},e.useContext=function(e){return A.current.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e){return A.current.useDeferredValue(e)},e.useEffect=function(e,t){return A.current.useEffect(e,t)},e.useId=function(){return A.current.useId()},e.useImperativeHandle=function(e,t,n){return A.current.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return A.current.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return A.current.useLayoutEffect(e,t)},e.useMemo=function(e,t){return A.current.useMemo(e,t)},e.useReducer=function(e,t,n){return A.current.useReducer(e,t,n)},e.useRef=function(e){return A.current.useRef(e)},e.useState=function(e){return A.current.useState(e)},e.useSyncExternalStore=function(e,t,n){return A.current.useSyncExternalStore(e,t,n)},e.useTransition=function(){return A.current.useTransition()},e.version=`18.3.1`})),u=o(((e,t)=>{t.exports=l()})),d=o((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=typeof setTimeout==`function`?setTimeout:null,_=typeof clearTimeout==`function`?clearTimeout:null,v=typeof setImmediate<`u`?setImmediate:null;typeof navigator<`u`&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function b(e){if(h=!1,y(e),!m)if(n(c)!==null)m=!0,O(x);else{var t=n(l);t!==null&&k(b,t.startTime-e)}}function x(t,i){m=!1,h&&(h=!1,_(w),w=-1),p=!0;var a=f;try{for(y(i),d=n(c);d!==null&&(!(d.expirationTime>i)||t&&!E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=i);i=e.unstable_now(),typeof s==`function`?d.callback=s:d===n(c)&&r(c),y(i)}else r(c);d=n(c)}if(d!==null)var u=!0;else{var g=n(l);g!==null&&k(b,g.startTime-i),u=!1}return u}finally{d=null,f=a,p=!1}}var S=!1,C=null,w=-1,T=5,ee=-1;function E(){return!(e.unstable_now()-ee<T)}function te(){if(C!==null){var t=e.unstable_now();ee=t;var n=!0;try{n=C(!0,t)}finally{n?D():(S=!1,C=null)}}else S=!1}var D;if(typeof v==`function`)D=function(){v(te)};else if(typeof MessageChannel<`u`){var ne=new MessageChannel,re=ne.port2;ne.port1.onmessage=te,D=function(){re.postMessage(null)}}else D=function(){g(te,0)};function O(e){C=e,S||(S=!0,D())}function k(t,n){w=g(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_continueExecution=function(){m||p||(m=!0,O(x))},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):T=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(_(w),w=-1):h=!0,k(b,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,O(x))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),f=o(((e,t)=>{t.exports=d()})),p=o((e=>{var t=u(),n=f();function r(e){for(var t=`https://reactjs.org/docs/error-decoder.html?invariant=`+e,n=1;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n]);return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}var i=new Set,a={};function o(e,t){s(e,t),s(e+`Capture`,t)}function s(e,t){for(a[e]=t,e=0;e<t.length;e++)i.add(t[e])}var c=!(typeof window>`u`||window.document===void 0||window.document.createElement===void 0),l=Object.prototype.hasOwnProperty,d=/^[: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]*$/,p={},m={};function h(e){return l.call(m,e)?!0:l.call(p,e)?!1:d.test(e)?m[e]=!0:(p[e]=!0,!1)}function g(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case`function`:case`symbol`:return!0;case`boolean`:return r?!1:n===null?(e=e.toLowerCase().slice(0,5),e!==`data-`&&e!==`aria-`):!n.acceptsBooleans;default:return!1}}function _(e,t,n,r){if(t==null||g(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function v(e,t,n,r,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var y={};`children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style`.split(` `).forEach(function(e){y[e]=new v(e,0,!1,e,null,!1,!1)}),[[`acceptCharset`,`accept-charset`],[`className`,`class`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`]].forEach(function(e){var t=e[0];y[t]=new v(t,1,!1,e[1],null,!1,!1)}),[`contentEditable`,`draggable`,`spellCheck`,`value`].forEach(function(e){y[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)}),[`autoReverse`,`externalResourcesRequired`,`focusable`,`preserveAlpha`].forEach(function(e){y[e]=new v(e,2,!1,e,null,!1,!1)}),`allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope`.split(` `).forEach(function(e){y[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)}),[`checked`,`multiple`,`muted`,`selected`].forEach(function(e){y[e]=new v(e,3,!0,e,null,!1,!1)}),[`capture`,`download`].forEach(function(e){y[e]=new v(e,4,!1,e,null,!1,!1)}),[`cols`,`rows`,`size`,`span`].forEach(function(e){y[e]=new v(e,6,!1,e,null,!1,!1)}),[`rowSpan`,`start`].forEach(function(e){y[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)});var b=/[\-:]([a-z])/g;function x(e){return e[1].toUpperCase()}`accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height`.split(` `).forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,null,!1,!1)}),`xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type`.split(` `).forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,`http://www.w3.org/1999/xlink`,!1,!1)}),[`xml:base`,`xml:lang`,`xml:space`].forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,`http://www.w3.org/XML/1998/namespace`,!1,!1)}),[`tabIndex`,`crossOrigin`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)}),y.xlinkHref=new v(`xlinkHref`,1,!1,`xlink:href`,`http://www.w3.org/1999/xlink`,!0,!1),[`src`,`href`,`action`,`formAction`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)});function S(e,t,n,r){var i=y.hasOwnProperty(t)?y[t]:null;(i===null?r||!(2<t.length)||t[0]!==`o`&&t[0]!==`O`||t[1]!==`n`&&t[1]!==`N`:i.type!==0)&&(_(t,n,i,r)&&(n=null),r||i===null?h(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,``+n)):i.mustUseProperty?e[i.propertyName]=n===null?i.type===3?!1:``:n:(t=i.attributeName,r=i.attributeNamespace,n===null?e.removeAttribute(t):(i=i.type,n=i===3||i===4&&!0===n?``:``+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var C=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for(`react.element`),T=Symbol.for(`react.portal`),ee=Symbol.for(`react.fragment`),E=Symbol.for(`react.strict_mode`),te=Symbol.for(`react.profiler`),D=Symbol.for(`react.provider`),ne=Symbol.for(`react.context`),re=Symbol.for(`react.forward_ref`),O=Symbol.for(`react.suspense`),k=Symbol.for(`react.suspense_list`),A=Symbol.for(`react.memo`),j=Symbol.for(`react.lazy`),ie=Symbol.for(`react.offscreen`),ae=Symbol.iterator;function oe(e){return typeof e!=`object`||!e?null:(e=ae&&e[ae]||e[`@@iterator`],typeof e==`function`?e:null)}var M=Object.assign,se;function ce(e){if(se===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);se=t&&t[1]||``}return`
2 `+se+e}var le=!1;function ue(e,t){if(!e||le)return``;le=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&typeof t.stack==`string`){for(var i=t.stack.split(`
3 `),a=r.stack.split(`
4 `),o=i.length-1,s=a.length-1;1<=o&&0<=s&&i[o]!==a[s];)s--;for(;1<=o&&0<=s;o--,s--)if(i[o]!==a[s]){if(o!==1||s!==1)do if(o--,s--,0>s||i[o]!==a[s]){var c=`
5 `+i[o].replace(` at new `,` at `);return e.displayName&&c.includes(`<anonymous>`)&&(c=c.replace(`<anonymous>`,e.displayName)),c}while(1<=o&&0<=s);break}}}finally{le=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:``)?ce(e):``}function de(e){switch(e.tag){case 5:return ce(e.type);case 16:return ce(`Lazy`);case 13:return ce(`Suspense`);case 19:return ce(`SuspenseList`);case 0:case 2:case 15:return e=ue(e.type,!1),e;case 11:return e=ue(e.type.render,!1),e;case 1:return e=ue(e.type,!0),e;default:return``}}function fe(e){if(e==null)return null;if(typeof e==`function`)return e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case ee:return`Fragment`;case T:return`Portal`;case te:return`Profiler`;case E:return`StrictMode`;case O:return`Suspense`;case k:return`SuspenseList`}if(typeof e==`object`)switch(e.$$typeof){case ne:return(e.displayName||`Context`)+`.Consumer`;case D:return(e._context.displayName||`Context`)+`.Provider`;case re:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case A:return t=e.displayName||null,t===null?fe(e.type)||`Memo`:t;case j:t=e._payload,e=e._init;try{return fe(e(t))}catch{}}return null}function pe(e){var t=e.type;switch(e.tag){case 24:return`Cache`;case 9:return(t.displayName||`Context`)+`.Consumer`;case 10:return(t._context.displayName||`Context`)+`.Provider`;case 18:return`DehydratedFragment`;case 11:return e=t.render,e=e.displayName||e.name||``,t.displayName||(e===``?`ForwardRef`:`ForwardRef(`+e+`)`);case 7:return`Fragment`;case 5:return t;case 4:return`Portal`;case 3:return`Root`;case 6:return`Text`;case 16:return fe(t);case 8:return t===E?`StrictMode`:`Mode`;case 22:return`Offscreen`;case 12:return`Profiler`;case 21:return`Scope`;case 13:return`Suspense`;case 19:return`SuspenseList`;case 25:return`TracingMarker`;case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t==`function`)return t.displayName||t.name||null;if(typeof t==`string`)return t}return null}function N(e){switch(typeof e){case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function me(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function he(e){var t=me(e)?`checked`:`value`,n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=``+e[t];if(!e.hasOwnProperty(t)&&n!==void 0&&typeof n.get==`function`&&typeof n.set==`function`){var i=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){r=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ge(e){e._valueTracker||=he(e)}function _e(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=me(e)?e.checked?`true`:`false`:e.value),e=r,e===n?!1:(t.setValue(e),!0)}function ve(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}function ye(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function be(e,t){var n=t.defaultValue==null?``:t.defaultValue,r=t.checked==null?t.defaultChecked:t.checked;n=N(t.value==null?n:t.value),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type===`checkbox`||t.type===`radio`?t.checked!=null:t.value!=null}}function xe(e,t){t=t.checked,t!=null&&S(e,`checked`,t,!1)}function Se(e,t){xe(e,t);var n=N(t.value),r=t.type;if(n!=null)r===`number`?(n===0&&e.value===``||e.value!=n)&&(e.value=``+n):e.value!==``+n&&(e.value=``+n);else if(r===`submit`||r===`reset`){e.removeAttribute(`value`);return}t.hasOwnProperty(`value`)?we(e,t.type,n):t.hasOwnProperty(`defaultValue`)&&we(e,t.type,N(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Ce(e,t,n){if(t.hasOwnProperty(`value`)||t.hasOwnProperty(`defaultValue`)){var r=t.type;if(!(r!==`submit`&&r!==`reset`||t.value!==void 0&&t.value!==null))return;t=``+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==``&&(e.name=``),e.defaultChecked=!!e._wrapperState.initialChecked,n!==``&&(e.name=n)}function we(e,t,n){(t!==`number`||ve(e.ownerDocument)!==e)&&(n==null?e.defaultValue=``+e._wrapperState.initialValue:e.defaultValue!==``+n&&(e.defaultValue=``+n))}var Te=Array.isArray;function Ee(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+N(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function De(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(r(91));return M({},t,{value:void 0,defaultValue:void 0,children:``+e._wrapperState.initialValue})}function Oe(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(r(92));if(Te(n)){if(1<n.length)throw Error(r(93));n=n[0]}t=n}t??=``,n=t}e._wrapperState={initialValue:N(n)}}function ke(e,t){var n=N(t.value),r=N(t.defaultValue);n!=null&&(n=``+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=``+r)}function Ae(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==``&&t!==null&&(e.value=t)}function je(e){switch(e){case`svg`:return`http://www.w3.org/2000/svg`;case`math`:return`http://www.w3.org/1998/Math/MathML`;default:return`http://www.w3.org/1999/xhtml`}}function Me(e,t){return e==null||e===`http://www.w3.org/1999/xhtml`?je(t):e===`http://www.w3.org/2000/svg`&&t===`foreignObject`?`http://www.w3.org/1999/xhtml`:e}var Ne,Pe=function(e){return typeof MSApp<`u`&&MSApp.execUnsafeLocalFunction?function(t,n,r,i){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,i)})}:e}(function(e,t){if(e.namespaceURI!==`http://www.w3.org/2000/svg`||`innerHTML`in e)e.innerHTML=t;else{for(Ne||=document.createElement(`div`),Ne.innerHTML=`<svg>`+t.valueOf().toString()+`</svg>`,t=Ne.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Fe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Ie={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Le=[`Webkit`,`ms`,`Moz`,`O`];Object.keys(Ie).forEach(function(e){Le.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Ie[t]=Ie[e]})});function Re(e,t,n){return t==null||typeof t==`boolean`||t===``?``:n||typeof t!=`number`||t===0||Ie.hasOwnProperty(e)&&Ie[e]?(``+t).trim():t+`px`}function ze(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=n.indexOf(`--`)===0,i=Re(n,t[n],r);n===`float`&&(n=`cssFloat`),r?e.setProperty(n,i):e[n]=i}}var Be=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ve(e,t){if(t){if(Be[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(r(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(r(60));if(typeof t.dangerouslySetInnerHTML!=`object`||!(`__html`in t.dangerouslySetInnerHTML))throw Error(r(61))}if(t.style!=null&&typeof t.style!=`object`)throw Error(r(62))}}function He(e,t){if(e.indexOf(`-`)===-1)return typeof t.is==`string`;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var Ue=null;function P(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var We=null,Ge=null,Ke=null;function qe(e){if(e=zi(e)){if(typeof We!=`function`)throw Error(r(280));var t=e.stateNode;t&&(t=Vi(t),We(e.stateNode,e.type,t))}}function Je(e){Ge?Ke?Ke.push(e):Ke=[e]:Ge=e}function Ye(){if(Ge){var e=Ge,t=Ke;if(Ke=Ge=null,qe(e),t)for(e=0;e<t.length;e++)qe(t[e])}}function Xe(e,t){return e(t)}function Ze(){}var Qe=!1;function $e(e,t,n){if(Qe)return e(t,n);Qe=!0;try{return Xe(e,t,n)}finally{Qe=!1,(Ge!==null||Ke!==null)&&(Ze(),Ye())}}function et(e,t){var n=e.stateNode;if(n===null)return null;var i=Vi(n);if(i===null)return null;n=i[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(i=!i.disabled)||(e=e.type,i=!(e===`button`||e===`input`||e===`select`||e===`textarea`)),e=!i;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(r(231,t,typeof n));return n}var tt=!1;if(c)try{var nt={};Object.defineProperty(nt,"passive",{get:function(){tt=!0}}),window.addEventListener(`test`,nt,nt),window.removeEventListener(`test`,nt,nt)}catch{tt=!1}function rt(e,t,n,r,i,a,o,s,c){var l=Array.prototype.slice.call(arguments,3);try{t.apply(n,l)}catch(e){this.onError(e)}}var it=!1,at=null,ot=!1,st=null,ct={onError:function(e){it=!0,at=e}};function lt(e,t,n,r,i,a,o,s,c){it=!1,at=null,rt.apply(ct,arguments)}function ut(e,t,n,i,a,o,s,c,l){if(lt.apply(this,arguments),it){if(it){var u=at;it=!1,at=null}else throw Error(r(198));ot||(ot=!0,st=u)}}function dt(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function ft(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function pt(e){if(dt(e)!==e)throw Error(r(188))}function mt(e){var t=e.alternate;if(!t){if(t=dt(e),t===null)throw Error(r(188));return t===e?e:null}for(var n=e,i=t;;){var a=n.return;if(a===null)break;var o=a.alternate;if(o===null){if(i=a.return,i!==null){n=i;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return pt(a),e;if(o===i)return pt(a),t;o=o.sibling}throw Error(r(188))}if(n.return!==i.return)n=a,i=o;else{for(var s=!1,c=a.child;c;){if(c===n){s=!0,n=a,i=o;break}if(c===i){s=!0,i=a,n=o;break}c=c.sibling}if(!s){for(c=o.child;c;){if(c===n){s=!0,n=o,i=a;break}if(c===i){s=!0,i=o,n=a;break}c=c.sibling}if(!s)throw Error(r(189))}}if(n.alternate!==i)throw Error(r(190))}if(n.tag!==3)throw Error(r(188));return n.stateNode.current===n?e:t}function ht(e){return e=mt(e),e===null?null:gt(e)}function gt(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=gt(e);if(t!==null)return t;e=e.sibling}return null}var _t=n.unstable_scheduleCallback,vt=n.unstable_cancelCallback,yt=n.unstable_shouldYield,bt=n.unstable_requestPaint,F=n.unstable_now,xt=n.unstable_getCurrentPriorityLevel,I=n.unstable_ImmediatePriority,St=n.unstable_UserBlockingPriority,Ct=n.unstable_NormalPriority,wt=n.unstable_LowPriority,Tt=n.unstable_IdlePriority,Et=null,Dt=null;function Ot(e){if(Dt&&typeof Dt.onCommitFiberRoot==`function`)try{Dt.onCommitFiberRoot(Et,e,void 0,(e.current.flags&128)==128)}catch{}}var kt=Math.clz32?Math.clz32:Mt,At=Math.log,jt=Math.LN2;function Mt(e){return e>>>=0,e===0?32:31-(At(e)/jt|0)|0}var Nt=64,L=4194304;function Pt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ft(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,a=e.pingedLanes,o=n&268435455;if(o!==0){var s=o&~i;s===0?(a&=o,a!==0&&(r=Pt(a))):r=Pt(s)}else o=n&~i,o===0?a!==0&&(r=Pt(a)):r=Pt(o);if(r===0)return 0;if(t!==0&&t!==r&&(t&i)===0&&(i=r&-r,a=t&-t,i>=a||i===16&&a&4194240))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-kt(t),i=1<<n,r|=e[n],t&=~i;return r}function It(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Lt(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes;0<a;){var o=31-kt(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=It(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}}function Rt(e){return e=e.pendingLanes&-1073741825,e===0?e&1073741824?1073741824:0:e}function zt(){var e=Nt;return Nt<<=1,!(Nt&4194240)&&(Nt=64),e}function Bt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Vt(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-kt(t),e[t]=n}function Ht(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var i=31-kt(n),a=1<<i;t[i]=0,r[i]=-1,e[i]=-1,n&=~a}}function Ut(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-kt(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}var R=0;function Wt(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var Gt,Kt,qt,Jt,Yt,Xt=!1,Zt=[],Qt=null,$t=null,en=null,tn=new Map,nn=new Map,rn=[],an=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit`.split(` `);function on(e,t){switch(e){case`focusin`:case`focusout`:Qt=null;break;case`dragenter`:case`dragleave`:$t=null;break;case`mouseover`:case`mouseout`:en=null;break;case`pointerover`:case`pointerout`:tn.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:nn.delete(t.pointerId)}}function sn(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=zi(t),t!==null&&Kt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function z(e,t,n,r,i){switch(t){case`focusin`:return Qt=sn(Qt,e,t,n,r,i),!0;case`dragenter`:return $t=sn($t,e,t,n,r,i),!0;case`mouseover`:return en=sn(en,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return tn.set(a,sn(tn.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,nn.set(a,sn(nn.get(a)||null,e,t,n,r,i)),!0}return!1}function B(e){var t=Ri(e.target);if(t!==null){var n=dt(t);if(n!==null){if(t=n.tag,t===13){if(t=ft(n),t!==null){e.blockedOn=t,Yt(e.priority,function(){qt(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function cn(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=yn(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Ue=r,n.target.dispatchEvent(r),Ue=null}else return t=zi(n),t!==null&&Kt(t),e.blockedOn=n,!1;t.shift()}return!0}function ln(e,t,n){cn(e)&&n.delete(t)}function un(){Xt=!1,Qt!==null&&cn(Qt)&&(Qt=null),$t!==null&&cn($t)&&($t=null),en!==null&&cn(en)&&(en=null),tn.forEach(ln),nn.forEach(ln)}function dn(e,t){e.blockedOn===t&&(e.blockedOn=null,Xt||(Xt=!0,n.unstable_scheduleCallback(n.unstable_NormalPriority,un)))}function fn(e){function t(t){return dn(t,e)}if(0<Zt.length){dn(Zt[0],e);for(var n=1;n<Zt.length;n++){var r=Zt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(Qt!==null&&dn(Qt,e),$t!==null&&dn($t,e),en!==null&&dn(en,e),tn.forEach(t),nn.forEach(t),n=0;n<rn.length;n++)r=rn[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<rn.length&&(n=rn[0],n.blockedOn===null);)B(n),n.blockedOn===null&&rn.shift()}var pn=C.ReactCurrentBatchConfig,mn=!0;function hn(e,t,n,r){var i=R,a=pn.transition;pn.transition=null;try{R=1,_n(e,t,n,r)}finally{R=i,pn.transition=a}}function gn(e,t,n,r){var i=R,a=pn.transition;pn.transition=null;try{R=4,_n(e,t,n,r)}finally{R=i,pn.transition=a}}function _n(e,t,n,r){if(mn){var i=yn(e,t,n,r);if(i===null)ui(e,t,r,vn,n),on(e,r);else if(z(i,e,t,n,r))r.stopPropagation();else if(on(e,r),t&4&&-1<an.indexOf(e)){for(;i!==null;){var a=zi(i);if(a!==null&&Gt(a),a=yn(e,t,n,r),a===null&&ui(e,t,r,vn,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else ui(e,t,r,null,n)}}var vn=null;function yn(e,t,n,r){if(vn=null,e=P(r),e=Ri(e),e!==null)if(t=dt(e),t===null)e=null;else if(n=t.tag,n===13){if(e=ft(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return vn=e,null}function bn(e){switch(e){case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 1;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`toggle`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 4;case`message`:switch(xt()){case I:return 1;case St:return 4;case Ct:case wt:return 16;case Tt:return 536870912;default:return 16}default:return 16}}var V=null,xn=null,Sn=null;function Cn(){if(Sn)return Sn;var e,t=xn,n=t.length,r,i=`value`in V?V.value:V.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return Sn=i.slice(e,1<r?1-r:void 0)}function wn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Tn(){return!0}function En(){return!1}function Dn(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?Tn:En,this.isPropagationStopped=En,this}return M(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=Tn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=Tn)},persist:function(){},isPersistent:Tn}),t}var On={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},kn=Dn(On),An=M({},On,{view:0,detail:0}),jn=Dn(An),Mn,Nn,Pn,Fn=M({},An,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Gn,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==Pn&&(Pn&&e.type===`mousemove`?(Mn=e.screenX-Pn.screenX,Nn=e.screenY-Pn.screenY):Nn=Mn=0,Pn=e),Mn)},movementY:function(e){return`movementY`in e?e.movementY:Nn}}),In=Dn(Fn),Ln=Dn(M({},Fn,{dataTransfer:0})),Rn=Dn(M({},An,{relatedTarget:0})),zn=Dn(M({},On,{animationName:0,elapsedTime:0,pseudoElement:0})),Bn=Dn(M({},On,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Vn=Dn(M({},On,{data:0})),Hn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Un={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`},H={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Wn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=H[e])?!!t[e]:!1}function Gn(){return Wn}var Kn=Dn(M({},An,{key:function(e){if(e.key){var t=Hn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=wn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Un[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Gn,charCode:function(e){return e.type===`keypress`?wn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?wn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),qn=Dn(M({},Fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Jn=Dn(M({},An,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Gn})),Yn=Dn(M({},On,{propertyName:0,elapsedTime:0,pseudoElement:0})),Xn=Dn(M({},Fn,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),Zn=[9,13,27,32],Qn=c&&`CompositionEvent`in window,$n=null;c&&`documentMode`in document&&($n=document.documentMode);var er=c&&`TextEvent`in window&&!$n,tr=c&&(!Qn||$n&&8<$n&&11>=$n),nr=` `,rr=!1;function ir(e,t){switch(e){case`keyup`:return Zn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function ar(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var or=!1;function sr(e,t){switch(e){case`compositionend`:return ar(t);case`keypress`:return t.which===32?(rr=!0,nr):null;case`textInput`:return e=t.data,e===nr&&rr?null:e;default:return null}}function cr(e,t){if(or)return e===`compositionend`||!Qn&&ir(e,t)?(e=Cn(),Sn=xn=V=null,or=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return tr&&t.locale!==`ko`?null:t.data;default:return null}}var lr={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 ur(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!lr[e.type]:t===`textarea`}function dr(e,t,n,r){Je(r),t=fi(t,`onChange`),0<t.length&&(n=new kn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var fr=null,pr=null;function mr(e){ai(e,0)}function hr(e){if(_e(Bi(e)))return e}function gr(e,t){if(e===`change`)return t}var _r=!1;if(c){var vr;if(c){var yr=`oninput`in document;if(!yr){var br=document.createElement(`div`);br.setAttribute(`oninput`,`return;`),yr=typeof br.oninput==`function`}vr=yr}else vr=!1;_r=vr&&(!document.documentMode||9<document.documentMode)}function xr(){fr&&(fr.detachEvent(`onpropertychange`,Sr),pr=fr=null)}function Sr(e){if(e.propertyName===`value`&&hr(pr)){var t=[];dr(t,pr,e,P(e)),$e(mr,t)}}function Cr(e,t,n){e===`focusin`?(xr(),fr=t,pr=n,fr.attachEvent(`onpropertychange`,Sr)):e===`focusout`&&xr()}function wr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return hr(pr)}function Tr(e,t){if(e===`click`)return hr(t)}function Er(e,t){if(e===`input`||e===`change`)return hr(t)}function Dr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var Or=typeof Object.is==`function`?Object.is:Dr;function kr(e,t){if(Or(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!l.call(t,i)||!Or(e[i],t[i]))return!1}return!0}function Ar(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function jr(e,t){var n=Ar(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Ar(n)}}function Mr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Mr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Nr(){for(var e=window,t=ve();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=ve(e.document)}return t}function Pr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}function Fr(e){var t=Nr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Mr(n.ownerDocument.documentElement,n)){if(r!==null&&Pr(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),`selectionStart`in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,a=Math.min(r.start,i);r=r.end===void 0?a:Math.min(r.end,i),!e.extend&&a>r&&(i=r,r=a,a=i),i=jr(n,a);var o=jr(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus==`function`&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Ir=c&&`documentMode`in document&&11>=document.documentMode,Lr=null,Rr=null,zr=null,Br=!1;function Vr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Br||Lr==null||Lr!==ve(r)||(r=Lr,`selectionStart`in r&&Pr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),zr&&kr(zr,r)||(zr=r,r=fi(Rr,`onSelect`),0<r.length&&(t=new kn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Lr)))}function Hr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var Ur={animationend:Hr(`Animation`,`AnimationEnd`),animationiteration:Hr(`Animation`,`AnimationIteration`),animationstart:Hr(`Animation`,`AnimationStart`),transitionend:Hr(`Transition`,`TransitionEnd`)},Wr={},Gr={};c&&(Gr=document.createElement(`div`).style,`AnimationEvent`in window||(delete Ur.animationend.animation,delete Ur.animationiteration.animation,delete Ur.animationstart.animation),`TransitionEvent`in window||delete Ur.transitionend.transition);function Kr(e){if(Wr[e])return Wr[e];if(!Ur[e])return e;var t=Ur[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Gr)return Wr[e]=t[n];return e}var qr=Kr(`animationend`),Jr=Kr(`animationiteration`),Yr=Kr(`animationstart`),Xr=Kr(`transitionend`),Zr=new Map,Qr=`abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);function $r(e,t){Zr.set(e,t),o(t,[e])}for(var ei=0;ei<Qr.length;ei++){var ti=Qr[ei];$r(ti.toLowerCase(),`on`+(ti[0].toUpperCase()+ti.slice(1)))}$r(qr,`onAnimationEnd`),$r(Jr,`onAnimationIteration`),$r(Yr,`onAnimationStart`),$r(`dblclick`,`onDoubleClick`),$r(`focusin`,`onFocus`),$r(`focusout`,`onBlur`),$r(Xr,`onTransitionEnd`),s(`onMouseEnter`,[`mouseout`,`mouseover`]),s(`onMouseLeave`,[`mouseout`,`mouseover`]),s(`onPointerEnter`,[`pointerout`,`pointerover`]),s(`onPointerLeave`,[`pointerout`,`pointerover`]),o(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),o(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),o(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),o(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),o(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),o(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var ni=`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(` `),ri=new Set(`cancel close invalid load scroll toggle`.split(` `).concat(ni));function ii(e,t,n){var r=e.type||`unknown-event`;e.currentTarget=n,ut(r,t,void 0,e),e.currentTarget=null}function ai(e,t){t=(t&4)!=0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;ii(i,s,l),a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;ii(i,s,l),a=c}}}if(ot)throw e=st,ot=!1,st=null,e}function U(e,t){var n=t[Fi];n===void 0&&(n=t[Fi]=new Set);var r=e+`__bubble`;n.has(r)||(li(t,e,2,!1),n.add(r))}function oi(e,t,n){var r=0;t&&(r|=4),li(n,e,r,t)}var si=`_reactListening`+Math.random().toString(36).slice(2);function ci(e){if(!e[si]){e[si]=!0,i.forEach(function(t){t!==`selectionchange`&&(ri.has(t)||oi(t,!1,e),oi(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[si]||(t[si]=!0,oi(`selectionchange`,!1,t))}}function li(e,t,n,r){switch(bn(t)){case 1:var i=hn;break;case 4:i=gn;break;default:i=_n}n=i.bind(null,t,n,e),i=void 0,!tt||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function ui(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var o=r.tag;if(o===3||o===4){var s=r.stateNode.containerInfo;if(s===i||s.nodeType===8&&s.parentNode===i)break;if(o===4)for(o=r.return;o!==null;){var c=o.tag;if((c===3||c===4)&&(c=o.stateNode.containerInfo,c===i||c.nodeType===8&&c.parentNode===i))return;o=o.return}for(;s!==null;){if(o=Ri(s),o===null)return;if(c=o.tag,c===5||c===6){r=a=o;continue a}s=s.parentNode}}r=r.return}$e(function(){var r=a,i=P(n),o=[];a:{var s=Zr.get(e);if(s!==void 0){var c=kn,l=e;switch(e){case`keypress`:if(wn(n)===0)break a;case`keydown`:case`keyup`:c=Kn;break;case`focusin`:l=`focus`,c=Rn;break;case`focusout`:l=`blur`,c=Rn;break;case`beforeblur`:case`afterblur`:c=Rn;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:c=In;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:c=Ln;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:c=Jn;break;case qr:case Jr:case Yr:c=zn;break;case Xr:c=Yn;break;case`scroll`:c=jn;break;case`wheel`:c=Xn;break;case`copy`:case`cut`:case`paste`:c=Bn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:c=qn}var u=(t&4)!=0,d=!u&&e===`scroll`,f=u?s===null?null:s+`Capture`:s;u=[];for(var p=r,m;p!==null;){m=p;var h=m.stateNode;if(m.tag===5&&h!==null&&(m=h,f!==null&&(h=et(p,f),h!=null&&u.push(di(p,h,m)))),d)break;p=p.return}0<u.length&&(s=new c(s,l,null,n,i),o.push({event:s,listeners:u}))}}if(!(t&7)){a:{if(s=e===`mouseover`||e===`pointerover`,c=e===`mouseout`||e===`pointerout`,s&&n!==Ue&&(l=n.relatedTarget||n.fromElement)&&(Ri(l)||l[Pi]))break a;if((c||s)&&(s=i.window===i?i:(s=i.ownerDocument)?s.defaultView||s.parentWindow:window,c?(l=n.relatedTarget||n.toElement,c=r,l=l?Ri(l):null,l!==null&&(d=dt(l),l!==d||l.tag!==5&&l.tag!==6)&&(l=null)):(c=null,l=r),c!==l)){if(u=In,h=`onMouseLeave`,f=`onMouseEnter`,p=`mouse`,(e===`pointerout`||e===`pointerover`)&&(u=qn,h=`onPointerLeave`,f=`onPointerEnter`,p=`pointer`),d=c==null?s:Bi(c),m=l==null?s:Bi(l),s=new u(h,p+`leave`,c,n,i),s.target=d,s.relatedTarget=m,h=null,Ri(i)===r&&(u=new u(f,p+`enter`,l,n,i),u.target=m,u.relatedTarget=d,h=u),d=h,c&&l)b:{for(u=c,f=l,p=0,m=u;m;m=pi(m))p++;for(m=0,h=f;h;h=pi(h))m++;for(;0<p-m;)u=pi(u),p--;for(;0<m-p;)f=pi(f),m--;for(;p--;){if(u===f||f!==null&&u===f.alternate)break b;u=pi(u),f=pi(f)}u=null}else u=null;c!==null&&mi(o,s,c,u,!1),l!==null&&d!==null&&mi(o,d,l,u,!0)}}a:{if(s=r?Bi(r):window,c=s.nodeName&&s.nodeName.toLowerCase(),c===`select`||c===`input`&&s.type===`file`)var g=gr;else if(ur(s))if(_r)g=Er;else{g=wr;var _=Cr}else (c=s.nodeName)&&c.toLowerCase()===`input`&&(s.type===`checkbox`||s.type===`radio`)&&(g=Tr);if(g&&=g(e,r)){dr(o,g,n,i);break a}_&&_(e,s,r),e===`focusout`&&(_=s._wrapperState)&&_.controlled&&s.type===`number`&&we(s,`number`,s.value)}switch(_=r?Bi(r):window,e){case`focusin`:(ur(_)||_.contentEditable===`true`)&&(Lr=_,Rr=r,zr=null);break;case`focusout`:zr=Rr=Lr=null;break;case`mousedown`:Br=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Br=!1,Vr(o,n,i);break;case`selectionchange`:if(Ir)break;case`keydown`:case`keyup`:Vr(o,n,i)}var v;if(Qn)b:{switch(e){case`compositionstart`:var y=`onCompositionStart`;break b;case`compositionend`:y=`onCompositionEnd`;break b;case`compositionupdate`:y=`onCompositionUpdate`;break b}y=void 0}else or?ir(e,n)&&(y=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(y=`onCompositionStart`);y&&(tr&&n.locale!==`ko`&&(or||y!==`onCompositionStart`?y===`onCompositionEnd`&&or&&(v=Cn()):(V=i,xn=`value`in V?V.value:V.textContent,or=!0)),_=fi(r,y),0<_.length&&(y=new Vn(y,e,null,n,i),o.push({event:y,listeners:_}),v?y.data=v:(v=ar(n),v!==null&&(y.data=v)))),(v=er?sr(e,n):cr(e,n))&&(r=fi(r,`onBeforeInput`),0<r.length&&(i=new Vn(`onBeforeInput`,`beforeinput`,null,n,i),o.push({event:i,listeners:r}),i.data=v))}ai(o,t)})}function di(e,t,n){return{instance:e,listener:t,currentTarget:n}}function fi(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;i.tag===5&&a!==null&&(i=a,a=et(e,n),a!=null&&r.unshift(di(e,a,i)),a=et(e,t),a!=null&&r.push(di(e,a,i))),e=e.return}return r}function pi(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function mi(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(c!==null&&c===r)break;s.tag===5&&l!==null&&(s=l,i?(c=et(n,a),c!=null&&o.unshift(di(n,c,s))):i||(c=et(n,a),c!=null&&o.push(di(n,c,s)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var hi=/\r\n?/g,gi=/\u0000|\uFFFD/g;function _i(e){return(typeof e==`string`?e:``+e).replace(hi,`
6 `).replace(gi,``)}function vi(e,t,n){if(t=_i(t),_i(e)!==t&&n)throw Error(r(425))}function yi(){}var bi=null,xi=null;function Si(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Ci=typeof setTimeout==`function`?setTimeout:void 0,wi=typeof clearTimeout==`function`?clearTimeout:void 0,Ti=typeof Promise==`function`?Promise:void 0,Ei=typeof queueMicrotask==`function`?queueMicrotask:Ti===void 0?Ci:function(e){return Ti.resolve(null).then(e).catch(Di)};function Di(e){setTimeout(function(){throw e})}function Oi(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n===`/$`){if(r===0){e.removeChild(i),fn(t);return}r--}else n!==`$`&&n!==`$?`&&n!==`$!`||r++;n=i}while(n);fn(t)}function ki(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`)break;if(t===`/$`)return null}}return e}function Ai(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`){if(t===0)return e;t--}else n===`/$`&&t++}e=e.previousSibling}return null}var ji=Math.random().toString(36).slice(2),Mi=`__reactFiber$`+ji,Ni=`__reactProps$`+ji,Pi=`__reactContainer$`+ji,Fi=`__reactEvents$`+ji,Ii=`__reactListeners$`+ji,Li=`__reactHandles$`+ji;function Ri(e){var t=e[Mi];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Pi]||n[Mi]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Ai(e);e!==null;){if(n=e[Mi])return n;e=Ai(e)}return t}e=n,n=e.parentNode}return null}function zi(e){return e=e[Mi]||e[Pi],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Bi(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(r(33))}function Vi(e){return e[Ni]||null}var Hi=[],Ui=-1;function Wi(e){return{current:e}}function W(e){0>Ui||(e.current=Hi[Ui],Hi[Ui]=null,Ui--)}function G(e,t){Ui++,Hi[Ui]=e.current,e.current=t}var Gi={},Ki=Wi(Gi),qi=Wi(!1),Ji=Gi;function Yi(e,t){var n=e.type.contextTypes;if(!n)return Gi;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in n)i[a]=t[a];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Xi(e){return e=e.childContextTypes,e!=null}function Zi(){W(qi),W(Ki)}function Qi(e,t,n){if(Ki.current!==Gi)throw Error(r(168));G(Ki,t),G(qi,n)}function $i(e,t,n){var i=e.stateNode;if(t=t.childContextTypes,typeof i.getChildContext!=`function`)return n;for(var a in i=i.getChildContext(),i)if(!(a in t))throw Error(r(108,pe(e)||`Unknown`,a));return M({},n,i)}function ea(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Gi,Ji=Ki.current,G(Ki,e),G(qi,qi.current),!0}function ta(e,t,n){var i=e.stateNode;if(!i)throw Error(r(169));n?(e=$i(e,t,Ji),i.__reactInternalMemoizedMergedChildContext=e,W(qi),W(Ki),G(Ki,e)):W(qi),G(qi,n)}var na=null,ra=!1,ia=!1;function aa(e){na===null?na=[e]:na.push(e)}function oa(e){ra=!0,aa(e)}function sa(){if(!ia&&na!==null){ia=!0;var e=0,t=R;try{var n=na;for(R=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}na=null,ra=!1}catch(t){throw na!==null&&(na=na.slice(e+1)),_t(I,sa),t}finally{R=t,ia=!1}}return null}var ca=[],la=0,ua=null,da=0,fa=[],pa=0,ma=null,ha=1,ga=``;function _a(e,t){ca[la++]=da,ca[la++]=ua,ua=e,da=t}function va(e,t,n){fa[pa++]=ha,fa[pa++]=ga,fa[pa++]=ma,ma=e;var r=ha;e=ga;var i=32-kt(r)-1;r&=~(1<<i),n+=1;var a=32-kt(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,ha=1<<32-kt(t)+i|n<<i|r,ga=a+e}else ha=1<<a|n<<i|r,ga=e}function ya(e){e.return!==null&&(_a(e,1),va(e,1,0))}function ba(e){for(;e===ua;)ua=ca[--la],ca[la]=null,da=ca[--la],ca[la]=null;for(;e===ma;)ma=fa[--pa],fa[pa]=null,ga=fa[--pa],fa[pa]=null,ha=fa[--pa],fa[pa]=null}var xa=null,Sa=null,K=!1,Ca=null;function wa(e,t){var n=Kl(5,null,null,0);n.elementType=`DELETED`,n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Ta(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t===null?!1:(e.stateNode=t,xa=e,Sa=ki(t.firstChild),!0);case 6:return t=e.pendingProps===``||t.nodeType!==3?null:t,t===null?!1:(e.stateNode=t,xa=e,Sa=null,!0);case 13:return t=t.nodeType===8?t:null,t===null?!1:(n=ma===null?null:{id:ha,overflow:ga},e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Kl(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,xa=e,Sa=null,!0);default:return!1}}function Ea(e){return(e.mode&1)!=0&&(e.flags&128)==0}function Da(e){if(K){var t=Sa;if(t){var n=t;if(!Ta(e,t)){if(Ea(e))throw Error(r(418));t=ki(n.nextSibling);var i=xa;t&&Ta(e,t)?wa(i,n):(e.flags=e.flags&-4097|2,K=!1,xa=e)}}else{if(Ea(e))throw Error(r(418));e.flags=e.flags&-4097|2,K=!1,xa=e}}}function Oa(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;xa=e}function ka(e){if(e!==xa)return!1;if(!K)return Oa(e),K=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!==`head`&&t!==`body`&&!Si(e.type,e.memoizedProps)),t&&=Sa){if(Ea(e))throw Aa(),Error(r(418));for(;t;)wa(e,t),t=ki(t.nextSibling)}if(Oa(e),e.tag===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(r(317));a:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`){if(t===0){Sa=ki(e.nextSibling);break a}t--}else n!==`$`&&n!==`$!`&&n!==`$?`||t++}e=e.nextSibling}Sa=null}}else Sa=xa?ki(e.stateNode.nextSibling):null;return!0}function Aa(){for(var e=Sa;e;)e=ki(e.nextSibling)}function q(){Sa=xa=null,K=!1}function ja(e){Ca===null?Ca=[e]:Ca.push(e)}var Ma=C.ReactCurrentBatchConfig;function Na(e,t,n){if(e=n.ref,e!==null&&typeof e!=`function`&&typeof e!=`object`){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(r(309));var i=n.stateNode}if(!i)throw Error(r(147,e));var a=i,o=``+e;return t!==null&&t.ref!==null&&typeof t.ref==`function`&&t.ref._stringRef===o?t.ref:(t=function(e){var t=a.refs;e===null?delete t[o]:t[o]=e},t._stringRef=o,t)}if(typeof e!=`string`)throw Error(r(284));if(!n._owner)throw Error(r(290,e))}return e}function Pa(e,t){throw e=Object.prototype.toString.call(t),Error(r(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e))}function Fa(e){var t=e._init;return t(e._payload)}function Ia(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function i(e,t){for(e=new Map;t!==null;)t.key===null?e.set(t.index,t):e.set(t.key,t),t=t.sibling;return e}function a(e,t){return e=Yl(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=2,n):(r=r.index,r<n?(t.flags|=2,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=2),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=$l(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===ee?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===j&&Fa(i)===t.type)?(r=a(t,n.props),r.ref=Na(e,t,n),r.return=e,r):(r=Xl(n.type,n.key,n.props,null,e.mode,r),r.ref=Na(e,t,n),r.return=e,r)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=eu(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=Zl(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`)return t=$l(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case w:return n=Xl(t.type,t.key,t.props,null,e.mode,n),n.ref=Na(e,null,t),n.return=e,n;case T:return t=eu(t,e.mode,n),t.return=e,t;case j:var r=t._init;return f(e,r(t._payload),n)}if(Te(t)||oe(t))return t=Zl(t,e.mode,n,null),t.return=e,t;Pa(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case w:return n.key===i?l(e,t,n,r):null;case T:return n.key===i?u(e,t,n,r):null;case j:return i=n._init,p(e,t,i(n._payload),r)}if(Te(n)||oe(n))return i===null?d(e,t,n,r,null):null;Pa(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case w:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case T:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case j:var a=r._init;return m(e,t,n,a(r._payload),i)}if(Te(r)||oe(r))return e=e.get(n)||null,d(t,e,r,i,null);Pa(t,r)}return null}function h(r,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(r,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(r,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(r,d),K&&_a(r,h),l;if(d===null){for(;h<s.length;h++)d=f(r,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return K&&_a(r,h),l}for(d=i(r,d);h<s.length;h++)g=m(d,r,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(r,e)}),K&&_a(r,h),l}function g(a,s,c,l){var u=oe(c);if(typeof u!=`function`)throw Error(r(150));if(c=u.call(c),c==null)throw Error(r(151));for(var d=u=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),K&&_a(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return K&&_a(a,g),u}for(h=i(a,h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),K&&_a(a,g),u}function _(e,r,i,o){if(typeof i==`object`&&i&&i.type===ee&&i.key===null&&(i=i.props.children),typeof i==`object`&&i){switch(i.$$typeof){case w:a:{for(var c=i.key,l=r;l!==null;){if(l.key===c){if(c=i.type,c===ee){if(l.tag===7){n(e,l.sibling),r=a(l,i.props.children),r.return=e,e=r;break a}}else if(l.elementType===c||typeof c==`object`&&c&&c.$$typeof===j&&Fa(c)===l.type){n(e,l.sibling),r=a(l,i.props),r.ref=Na(e,l,i),r.return=e,e=r;break a}n(e,l);break}else t(e,l);l=l.sibling}i.type===ee?(r=Zl(i.props.children,e.mode,o,i.key),r.return=e,e=r):(o=Xl(i.type,i.key,i.props,null,e.mode,o),o.ref=Na(e,r,i),o.return=e,e=o)}return s(e);case T:a:{for(l=i.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===i.containerInfo&&r.stateNode.implementation===i.implementation){n(e,r.sibling),r=a(r,i.children||[]),r.return=e,e=r;break a}else{n(e,r);break}else t(e,r);r=r.sibling}r=eu(i,e.mode,o),r.return=e,e=r}return s(e);case j:return l=i._init,_(e,r,l(i._payload),o)}if(Te(i))return h(e,r,i,o);if(oe(i))return g(e,r,i,o);Pa(e,i)}return typeof i==`string`&&i!==``||typeof i==`number`?(i=``+i,r!==null&&r.tag===6?(n(e,r.sibling),r=a(r,i),r.return=e,e=r):(n(e,r),r=$l(i,e.mode,o),r.return=e,e=r),s(e)):n(e,r)}return _}var La=Ia(!0),Ra=Ia(!1),za=Wi(null),Ba=null,Va=null,Ha=null;function Ua(){Ha=Va=Ba=null}function Wa(e){var t=za.current;W(za),e._currentValue=t}function Ga(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Ka(e,t){Ba=e,Ha=Va=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Ns=!0),e.firstContext=null)}function qa(e){var t=e._currentValue;if(Ha!==e)if(e={context:e,memoizedValue:t,next:null},Va===null){if(Ba===null)throw Error(r(308));Va=e,Ba.dependencies={lanes:0,firstContext:e}}else Va=Va.next=e;return t}var Ja=null;function Ya(e){Ja===null?Ja=[e]:Ja.push(e)}function Xa(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Ya(t)):(n.next=i.next,i.next=n),t.interleaved=n,Za(e,r)}function Za(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Qa=!1;function $a(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function eo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function to(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function no(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Q&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,Za(e,n)}return i=r.interleaved,i===null?(t.next=t,Ya(r)):(t.next=i.next,i.next=t),r.interleaved=t,Za(e,n)}function ro(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194240)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ut(e,n)}}function io(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function ao(e,t,n,r){var i=e.updateQueue;Qa=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane,p=s.eventTime;if((r&f)===f){u!==null&&(u=u.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});a:{var m=e,h=s;switch(f=t,p=n,h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(p,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(p,d,f):m,f==null)break a;d=M({},d,f);break a;case 2:Qa=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,f=i.effects,f===null?i.effects=[s]:f.push(s))}else p={eventTime:p,lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;f=s,s=f.next,f.next=null,i.lastBaseUpdate=f,i.shared.pending=null}}while(1);if(u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else a===null&&(i.shared.lanes=0);Yc|=o,e.lanes=o,e.memoizedState=d}}function oo(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var i=e[t],a=i.callback;if(a!==null){if(i.callback=null,i=n,typeof a!=`function`)throw Error(r(191,a));a.call(i)}}}var so={},co=Wi(so),lo=Wi(so),uo=Wi(so);function fo(e){if(e===so)throw Error(r(174));return e}function po(e,t){switch(G(uo,t),G(lo,e),G(co,so),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Me(null,``);break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Me(t,e)}W(co),G(co,t)}function mo(){W(co),W(lo),W(uo)}function ho(e){fo(uo.current);var t=fo(co.current),n=Me(t,e.type);t!==n&&(G(lo,e),G(co,n))}function go(e){lo.current===e&&(W(co),W(lo))}var J=Wi(0);function _o(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data===`$?`||n.data===`$!`))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var vo=[];function yo(){for(var e=0;e<vo.length;e++)vo[e]._workInProgressVersionPrimary=null;vo.length=0}var bo=C.ReactCurrentDispatcher,xo=C.ReactCurrentBatchConfig,So=0,Y=null,X=null,Co=null,wo=!1,To=!1,Eo=0,Do=0;function Oo(){throw Error(r(321))}function ko(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Or(e[n],t[n]))return!1;return!0}function Ao(e,t,n,i,a,o){if(So=o,Y=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,bo.current=e===null||e.memoizedState===null?ps:ms,e=n(i,a),To){o=0;do{if(To=!1,Eo=0,25<=o)throw Error(r(301));o+=1,Co=X=null,t.updateQueue=null,bo.current=hs,e=n(i,a)}while(To)}if(bo.current=fs,t=X!==null&&X.next!==null,So=0,Co=X=Y=null,wo=!1,t)throw Error(r(300));return e}function jo(){var e=Eo!==0;return Eo=0,e}function Mo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Co===null?Y.memoizedState=Co=e:Co=Co.next=e,Co}function No(){if(X===null){var e=Y.alternate;e=e===null?null:e.memoizedState}else e=X.next;var t=Co===null?Y.memoizedState:Co.next;if(t!==null)Co=t,X=e;else{if(e===null)throw Error(r(310));X=e,e={memoizedState:X.memoizedState,baseState:X.baseState,baseQueue:X.baseQueue,queue:X.queue,next:null},Co===null?Y.memoizedState=Co=e:Co=Co.next=e}return Co}function Po(e,t){return typeof t==`function`?t(e):t}function Fo(e){var t=No(),n=t.queue;if(n===null)throw Error(r(311));n.lastRenderedReducer=e;var i=X,a=i.baseQueue,o=n.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}i.baseQueue=a=o,n.pending=null}if(a!==null){o=a.next,i=i.baseState;var c=s=null,l=null,u=o;do{var d=u.lane;if((So&d)===d)l!==null&&(l=l.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),i=u.hasEagerState?u.eagerState:e(i,u.action);else{var f={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};l===null?(c=l=f,s=i):l=l.next=f,Y.lanes|=d,Yc|=d}u=u.next}while(u!==null&&u!==o);l===null?s=i:l.next=c,Or(i,t.memoizedState)||(Ns=!0),t.memoizedState=i,t.baseState=s,t.baseQueue=l,n.lastRenderedState=i}if(e=n.interleaved,e!==null){a=e;do o=a.lane,Y.lanes|=o,Yc|=o,a=a.next;while(a!==e)}else a===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Io(e){var t=No(),n=t.queue;if(n===null)throw Error(r(311));n.lastRenderedReducer=e;var i=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);Or(o,t.memoizedState)||(Ns=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,i]}function Lo(){}function Ro(e,t){var n=Y,i=No(),a=t(),o=!Or(i.memoizedState,a);if(o&&(i.memoizedState=a,Ns=!0),i=i.queue,Xo(Vo.bind(null,n,i,e),[e]),i.getSnapshot!==t||o||Co!==null&&Co.memoizedState.tag&1){if(n.flags|=2048,Go(9,Bo.bind(null,n,i,a,t),void 0,null),Hc===null)throw Error(r(349));So&30||zo(n,t,a)}return a}function zo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=Y.updateQueue,t===null?(t={lastEffect:null,stores:null},Y.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Bo(e,t,n,r){t.value=n,t.getSnapshot=r,Ho(t)&&Uo(e)}function Vo(e,t,n){return n(function(){Ho(t)&&Uo(e)})}function Ho(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Or(e,n)}catch{return!0}}function Uo(e){var t=Za(e,1);t!==null&&hl(t,e,1,-1)}function Wo(e){var t=Mo();return typeof e==`function`&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Po,lastRenderedState:e},t.queue=e,e=e.dispatch=cs.bind(null,Y,e),[t.memoizedState,e]}function Go(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=Y.updateQueue,t===null?(t={lastEffect:null,stores:null},Y.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function Ko(){return No().memoizedState}function qo(e,t,n,r){var i=Mo();Y.flags|=e,i.memoizedState=Go(1|t,n,void 0,r===void 0?null:r)}function Jo(e,t,n,r){var i=No();r=r===void 0?null:r;var a=void 0;if(X!==null){var o=X.memoizedState;if(a=o.destroy,r!==null&&ko(r,o.deps)){i.memoizedState=Go(t,n,a,r);return}}Y.flags|=e,i.memoizedState=Go(1|t,n,a,r)}function Yo(e,t){return qo(8390656,8,e,t)}function Xo(e,t){return Jo(2048,8,e,t)}function Zo(e,t){return Jo(4,2,e,t)}function Qo(e,t){return Jo(4,4,e,t)}function $o(e,t){if(typeof t==`function`)return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function es(e,t,n){return n=n==null?null:n.concat([e]),Jo(4,4,$o.bind(null,t,e),n)}function ts(){}function ns(e,t){var n=No();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&ko(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function rs(e,t){var n=No();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&ko(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function is(e,t,n){return So&21?(Or(n,t)||(n=zt(),Y.lanes|=n,Yc|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Ns=!0),e.memoizedState=n)}function as(e,t){var n=R;R=n!==0&&4>n?n:4,e(!0);var r=xo.transition;xo.transition={};try{e(!1),t()}finally{R=n,xo.transition=r}}function os(){return No().memoizedState}function ss(e,t,n){var r=ml(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},ls(e))us(t,n);else if(n=Xa(e,t,n,r),n!==null){var i=pl();hl(n,e,r,i),ds(n,t,r)}}function cs(e,t,n){var r=ml(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(ls(e))us(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Or(s,o)){var c=t.interleaved;c===null?(i.next=i,Ya(t)):(i.next=c.next,c.next=i),t.interleaved=i;return}}catch{}n=Xa(e,t,i,r),n!==null&&(i=pl(),hl(n,e,r,i),ds(n,t,r))}}function ls(e){var t=e.alternate;return e===Y||t!==null&&t===Y}function us(e,t){To=wo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ds(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ut(e,n)}}var fs={readContext:qa,useCallback:Oo,useContext:Oo,useEffect:Oo,useImperativeHandle:Oo,useInsertionEffect:Oo,useLayoutEffect:Oo,useMemo:Oo,useReducer:Oo,useRef:Oo,useState:Oo,useDebugValue:Oo,useDeferredValue:Oo,useTransition:Oo,useMutableSource:Oo,useSyncExternalStore:Oo,useId:Oo,unstable_isNewReconciler:!1},ps={readContext:qa,useCallback:function(e,t){return Mo().memoizedState=[e,t===void 0?null:t],e},useContext:qa,useEffect:Yo,useImperativeHandle:function(e,t,n){return n=n==null?null:n.concat([e]),qo(4194308,4,$o.bind(null,t,e),n)},useLayoutEffect:function(e,t){return qo(4194308,4,e,t)},useInsertionEffect:function(e,t){return qo(4,2,e,t)},useMemo:function(e,t){var n=Mo();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Mo();return t=n===void 0?t:n(t),r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ss.bind(null,Y,e),[r.memoizedState,e]},useRef:function(e){var t=Mo();return e={current:e},t.memoizedState=e},useState:Wo,useDebugValue:ts,useDeferredValue:function(e){return Mo().memoizedState=e},useTransition:function(){var e=Wo(!1),t=e[0];return e=as.bind(null,e[1]),Mo().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var i=Y,a=Mo();if(K){if(n===void 0)throw Error(r(407));n=n()}else{if(n=t(),Hc===null)throw Error(r(349));So&30||zo(i,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,Yo(Vo.bind(null,i,o,e),[e]),i.flags|=2048,Go(9,Bo.bind(null,i,o,n,t),void 0,null),n},useId:function(){var e=Mo(),t=Hc.identifierPrefix;if(K){var n=ga,r=ha;n=(r&~(1<<32-kt(r)-1)).toString(32)+n,t=`:`+t+`R`+n,n=Eo++,0<n&&(t+=`H`+n.toString(32)),t+=`:`}else n=Do++,t=`:`+t+`r`+n.toString(32)+`:`;return e.memoizedState=t},unstable_isNewReconciler:!1},ms={readContext:qa,useCallback:ns,useContext:qa,useEffect:Xo,useImperativeHandle:es,useInsertionEffect:Zo,useLayoutEffect:Qo,useMemo:rs,useReducer:Fo,useRef:Ko,useState:function(){return Fo(Po)},useDebugValue:ts,useDeferredValue:function(e){return is(No(),X.memoizedState,e)},useTransition:function(){return[Fo(Po)[0],No().memoizedState]},useMutableSource:Lo,useSyncExternalStore:Ro,useId:os,unstable_isNewReconciler:!1},hs={readContext:qa,useCallback:ns,useContext:qa,useEffect:Xo,useImperativeHandle:es,useInsertionEffect:Zo,useLayoutEffect:Qo,useMemo:rs,useReducer:Io,useRef:Ko,useState:function(){return Io(Po)},useDebugValue:ts,useDeferredValue:function(e){var t=No();return X===null?t.memoizedState=e:is(t,X.memoizedState,e)},useTransition:function(){return[Io(Po)[0],No().memoizedState]},useMutableSource:Lo,useSyncExternalStore:Ro,useId:os,unstable_isNewReconciler:!1};function gs(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps,e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function _s(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:M({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var vs={isMounted:function(e){return(e=e._reactInternals)?dt(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=pl(),i=ml(e),a=to(r,i);a.payload=t,n!=null&&(a.callback=n),t=no(e,a,i),t!==null&&(hl(t,e,i,r),ro(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=pl(),i=ml(e),a=to(r,i);a.tag=1,a.payload=t,n!=null&&(a.callback=n),t=no(e,a,i),t!==null&&(hl(t,e,i,r),ro(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=pl(),r=ml(e),i=to(n,r);i.tag=2,t!=null&&(i.callback=t),t=no(e,i,r),t!==null&&(hl(t,e,r,n),ro(t,e,r))}};function ys(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!kr(n,r)||!kr(i,a):!0}function bs(e,t,n){var r=!1,i=Gi,a=t.contextType;return typeof a==`object`&&a?a=qa(a):(i=Xi(t)?Ji:Ki.current,r=t.contextTypes,a=(r=r!=null)?Yi(e,i):Gi),t=new t(n,a),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=vs,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=a),t}function xs(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&vs.enqueueReplaceState(t,t.state,null)}function Ss(e,t,n,r){var i=e.stateNode;i.props=n,i.state=e.memoizedState,i.refs={},$a(e);var a=t.contextType;typeof a==`object`&&a?i.context=qa(a):(a=Xi(t)?Ji:Ki.current,i.context=Yi(e,a)),i.state=e.memoizedState,a=t.getDerivedStateFromProps,typeof a==`function`&&(_s(e,t,a,n),i.state=e.memoizedState),typeof t.getDerivedStateFromProps==`function`||typeof i.getSnapshotBeforeUpdate==`function`||typeof i.UNSAFE_componentWillMount!=`function`&&typeof i.componentWillMount!=`function`||(t=i.state,typeof i.componentWillMount==`function`&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount==`function`&&i.UNSAFE_componentWillMount(),t!==i.state&&vs.enqueueReplaceState(i,i.state,null),ao(e,n,i,r),i.state=e.memoizedState),typeof i.componentDidMount==`function`&&(e.flags|=4194308)}function Cs(e,t){try{var n=``,r=t;do n+=de(r),r=r.return;while(r);var i=n}catch(e){i=`
7 Error generating stack: `+e.message+`
8 `+e.stack}return{value:e,source:t,stack:i,digest:null}}function ws(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Ts(e,t){try{console.error(t.value)}catch(e){setTimeout(function(){throw e})}}var Es=typeof WeakMap==`function`?WeakMap:Map;function Ds(e,t,n){n=to(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){rl||(rl=!0,il=r),Ts(e,t)},n}function Os(e,t,n){n=to(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r==`function`){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){Ts(e,t)}}var a=e.stateNode;return a!==null&&typeof a.componentDidCatch==`function`&&(n.callback=function(){Ts(e,t),typeof r!=`function`&&(al===null?al=new Set([this]):al.add(this));var n=t.stack;this.componentDidCatch(t.value,{componentStack:n===null?``:n})}),n}function ks(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Es;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=zl.bind(null,e,t,n),t.then(e,e))}function As(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t===null?!0:t.dehydrated!==null),t)return e;e=e.return}while(e!==null);return null}function js(e,t,n,r,i){return e.mode&1?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=to(-1,1),t.tag=2,no(n,t,1))),n.lanes|=1),e)}var Ms=C.ReactCurrentOwner,Ns=!1;function Ps(e,t,n,r){t.child=e===null?Ra(t,null,n,r):La(t,e.child,n,r)}function Fs(e,t,n,r,i){n=n.render;var a=t.ref;return Ka(t,i),r=Ao(e,t,n,r,a,i),n=jo(),e!==null&&!Ns?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,tc(e,t,i)):(K&&n&&ya(t),t.flags|=1,Ps(e,t,r,i),t.child)}function Is(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!ql(a)&&a.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=a,Ls(e,t,a,r,i)):(e=Xl(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,(e.lanes&i)===0){var o=a.memoizedProps;if(n=n.compare,n=n===null?kr:n,n(o,r)&&e.ref===t.ref)return tc(e,t,i)}return t.flags|=1,e=Yl(a,r),e.ref=t.ref,e.return=t,t.child=e}function Ls(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(kr(a,r)&&e.ref===t.ref)if(Ns=!1,t.pendingProps=r=a,(e.lanes&i)!==0)e.flags&131072&&(Ns=!0);else return t.lanes=e.lanes,tc(e,t,i)}return Bs(e,t,n,r,i)}function Rs(e,t,n){var r=t.pendingProps,i=r.children,a=e===null?null:e.memoizedState;if(r.mode===`hidden`)if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(Kc,Gc),Gc|=n;else{if(!(n&1073741824))return e=a===null?n:a.baseLanes|n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,G(Kc,Gc),Gc|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=a===null?n:a.baseLanes,G(Kc,Gc),Gc|=r}else a===null?r=n:(r=a.baseLanes|n,t.memoizedState=null),G(Kc,Gc),Gc|=r;return Ps(e,t,i,n),t.child}function zs(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Bs(e,t,n,r,i){var a=Xi(n)?Ji:Ki.current;return a=Yi(t,a),Ka(t,i),n=Ao(e,t,n,r,a,i),r=jo(),e!==null&&!Ns?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,tc(e,t,i)):(K&&r&&ya(t),t.flags|=1,Ps(e,t,n,i),t.child)}function Vs(e,t,n,r,i){if(Xi(n)){var a=!0;ea(t)}else a=!1;if(Ka(t,i),t.stateNode===null)ec(e,t),bs(t,n,r),Ss(t,n,r,i),r=!0;else if(e===null){var o=t.stateNode,s=t.memoizedProps;o.props=s;var c=o.context,l=n.contextType;typeof l==`object`&&l?l=qa(l):(l=Xi(n)?Ji:Ki.current,l=Yi(t,l));var u=n.getDerivedStateFromProps,d=typeof u==`function`||typeof o.getSnapshotBeforeUpdate==`function`;d||typeof o.UNSAFE_componentWillReceiveProps!=`function`&&typeof o.componentWillReceiveProps!=`function`||(s!==r||c!==l)&&xs(t,o,r,l),Qa=!1;var f=t.memoizedState;o.state=f,ao(t,r,o,i),c=t.memoizedState,s!==r||f!==c||qi.current||Qa?(typeof u==`function`&&(_s(t,n,u,r),c=t.memoizedState),(s=Qa||ys(t,n,s,r,f,c,l))?(d||typeof o.UNSAFE_componentWillMount!=`function`&&typeof o.componentWillMount!=`function`||(typeof o.componentWillMount==`function`&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount==`function`&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount==`function`&&(t.flags|=4194308)):(typeof o.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),o.props=r,o.state=c,o.context=l,r=s):(typeof o.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,eo(e,t),s=t.memoizedProps,l=t.type===t.elementType?s:gs(t.type,s),o.props=l,d=t.pendingProps,f=o.context,c=n.contextType,typeof c==`object`&&c?c=qa(c):(c=Xi(n)?Ji:Ki.current,c=Yi(t,c));var p=n.getDerivedStateFromProps;(u=typeof p==`function`||typeof o.getSnapshotBeforeUpdate==`function`)||typeof o.UNSAFE_componentWillReceiveProps!=`function`&&typeof o.componentWillReceiveProps!=`function`||(s!==d||f!==c)&&xs(t,o,r,c),Qa=!1,f=t.memoizedState,o.state=f,ao(t,r,o,i);var m=t.memoizedState;s!==d||f!==m||qi.current||Qa?(typeof p==`function`&&(_s(t,n,p,r),m=t.memoizedState),(l=Qa||ys(t,n,l,r,f,m,c)||!1)?(u||typeof o.UNSAFE_componentWillUpdate!=`function`&&typeof o.componentWillUpdate!=`function`||(typeof o.componentWillUpdate==`function`&&o.componentWillUpdate(r,m,c),typeof o.UNSAFE_componentWillUpdate==`function`&&o.UNSAFE_componentWillUpdate(r,m,c)),typeof o.componentDidUpdate==`function`&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof o.componentDidUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),o.props=r,o.state=m,o.context=c,r=l):(typeof o.componentDidUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return Hs(e,t,n,r,a,i)}function Hs(e,t,n,r,i,a){zs(e,t);var o=(t.flags&128)!=0;if(!r&&!o)return i&&ta(t,n,!1),tc(e,t,a);r=t.stateNode,Ms.current=t;var s=o&&typeof n.getDerivedStateFromError!=`function`?null:r.render();return t.flags|=1,e!==null&&o?(t.child=La(t,e.child,null,a),t.child=La(t,null,s,a)):Ps(e,t,s,a),t.memoizedState=r.state,i&&ta(t,n,!0),t.child}function Us(e){var t=e.stateNode;t.pendingContext?Qi(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Qi(e,t.context,!1),po(e,t.containerInfo)}function Ws(e,t,n,r,i){return q(),ja(i),t.flags|=256,Ps(e,t,n,r),t.child}var Gs={dehydrated:null,treeContext:null,retryLane:0};function Ks(e){return{baseLanes:e,cachePool:null,transitions:null}}function qs(e,t,n){var r=t.pendingProps,i=J.current,a=!1,o=(t.flags&128)!=0,s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:(i&2)!=0),s?(a=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(i|=1),G(J,i&1),e===null)return Da(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data===`$!`?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=r.children,e=r.fallback,a?(r=t.mode,a=t.child,o={mode:`hidden`,children:o},!(r&1)&&a!==null?(a.childLanes=0,a.pendingProps=o):a=Ql(o,r,0,null),e=Zl(e,r,n,null),a.return=t,e.return=t,a.sibling=e,t.child=a,t.child.memoizedState=Ks(n),t.memoizedState=Gs,e):Js(t,o));if(i=e.memoizedState,i!==null&&(s=i.dehydrated,s!==null))return Xs(e,t,o,r,s,i,n);if(a){a=r.fallback,o=t.mode,i=e.child,s=i.sibling;var c={mode:`hidden`,children:r.children};return!(o&1)&&t.child!==i?(r=t.child,r.childLanes=0,r.pendingProps=c,t.deletions=null):(r=Yl(i,c),r.subtreeFlags=i.subtreeFlags&14680064),s===null?(a=Zl(a,o,n,null),a.flags|=2):a=Yl(s,a),a.return=t,r.return=t,r.sibling=a,t.child=r,r=a,a=t.child,o=e.child.memoizedState,o=o===null?Ks(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},a.memoizedState=o,a.childLanes=e.childLanes&~n,t.memoizedState=Gs,r}return a=e.child,e=a.sibling,r=Yl(a,{mode:`visible`,children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function Js(e,t){return t=Ql({mode:`visible`,children:t},e.mode,0,null),t.return=e,e.child=t}function Ys(e,t,n,r){return r!==null&&ja(r),La(t,e.child,null,n),e=Js(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Xs(e,t,n,i,a,o,s){if(n)return t.flags&256?(t.flags&=-257,i=ws(Error(r(422))),Ys(e,t,s,i)):t.memoizedState===null?(o=i.fallback,a=t.mode,i=Ql({mode:`visible`,children:i.children},a,0,null),o=Zl(o,a,s,null),o.flags|=2,i.return=t,o.return=t,i.sibling=o,t.child=i,t.mode&1&&La(t,e.child,null,s),t.child.memoizedState=Ks(s),t.memoizedState=Gs,o):(t.child=e.child,t.flags|=128,null);if(!(t.mode&1))return Ys(e,t,s,null);if(a.data===`$!`){if(i=a.nextSibling&&a.nextSibling.dataset,i)var c=i.dgst;return i=c,o=Error(r(419)),i=ws(o,i,void 0),Ys(e,t,s,i)}if(c=(s&e.childLanes)!==0,Ns||c){if(i=Hc,i!==null){switch(s&-s){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}a=(a&(i.suspendedLanes|s))===0?a:0,a!==0&&a!==o.retryLane&&(o.retryLane=a,Za(e,a),hl(i,e,a,-1))}return kl(),i=ws(Error(r(421))),Ys(e,t,s,i)}return a.data===`$?`?(t.flags|=128,t.child=e.child,t=Vl.bind(null,e),a._reactRetry=t,null):(e=o.treeContext,Sa=ki(a.nextSibling),xa=t,K=!0,Ca=null,e!==null&&(fa[pa++]=ha,fa[pa++]=ga,fa[pa++]=ma,ha=e.id,ga=e.overflow,ma=t),t=Js(t,i.children),t.flags|=4096,t)}function Zs(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ga(e.return,t,n)}function Qs(e,t,n,r,i){var a=e.memoizedState;a===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=i)}function $s(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;if(Ps(e,t,r.children,n),r=J.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Zs(e,n,t);else if(e.tag===19)Zs(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(G(J,r),!(t.mode&1))t.memoizedState=null;else switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&_o(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Qs(t,!1,i,n,a);break;case`backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&_o(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Qs(t,!0,n,null,a);break;case`together`:Qs(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function ec(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function tc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Yc|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(r(153));if(t.child!==null){for(e=t.child,n=Yl(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Yl(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function nc(e,t,n){switch(t.tag){case 3:Us(t),q();break;case 5:ho(t);break;case 1:Xi(t.type)&&ea(t);break;case 4:po(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,i=t.memoizedProps.value;G(za,r._currentValue),r._currentValue=i;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(G(J,J.current&1),e=tc(e,t,n),e===null?null:e.sibling):qs(e,t,n):(G(J,J.current&1),t.flags|=128,null);G(J,J.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return $s(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),G(J,J.current),r)break;return null;case 22:case 23:return t.lanes=0,Rs(e,t,n)}return tc(e,t,n)}var rc=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},ic=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,fo(co.current);var o=null;switch(n){case`input`:i=ye(e,i),r=ye(e,r),o=[];break;case`select`:i=M({},i,{value:void 0}),r=M({},r,{value:void 0}),o=[];break;case`textarea`:i=De(e,i),r=De(e,r),o=[];break;default:typeof i.onClick!=`function`&&typeof r.onClick==`function`&&(e.onclick=yi)}Ve(n,r);var s;for(u in n=null,i)if(!r.hasOwnProperty(u)&&i.hasOwnProperty(u)&&i[u]!=null)if(u===`style`){var c=i[u];for(s in c)c.hasOwnProperty(s)&&(n||={},n[s]=``)}else u!==`dangerouslySetInnerHTML`&&u!==`children`&&u!==`suppressContentEditableWarning`&&u!==`suppressHydrationWarning`&&u!==`autoFocus`&&(a.hasOwnProperty(u)?o||=[]:(o||=[]).push(u,null));for(u in r){var l=r[u];if(c=i?.[u],r.hasOwnProperty(u)&&l!==c&&(l!=null||c!=null))if(u===`style`)if(c){for(s in c)!c.hasOwnProperty(s)||l&&l.hasOwnProperty(s)||(n||={},n[s]=``);for(s in l)l.hasOwnProperty(s)&&c[s]!==l[s]&&(n||={},n[s]=l[s])}else n||(o||=[],o.push(u,n)),n=l;else u===`dangerouslySetInnerHTML`?(l=l?l.__html:void 0,c=c?c.__html:void 0,l!=null&&c!==l&&(o||=[]).push(u,l)):u===`children`?typeof l!=`string`&&typeof l!=`number`||(o||=[]).push(u,``+l):u!==`suppressContentEditableWarning`&&u!==`suppressHydrationWarning`&&(a.hasOwnProperty(u)?(l!=null&&u===`onScroll`&&U(`scroll`,e),o||c===l||(o=[])):(o||=[]).push(u,l))}n&&(o||=[]).push(`style`,n);var u=o;(t.updateQueue=u)&&(t.flags|=4)}},ac=function(e,t,n,r){n!==r&&(t.flags|=4)};function oc(e,t){if(!K)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function sc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&14680064,r|=i.flags&14680064,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function cc(e,t,n){var i=t.pendingProps;switch(ba(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return sc(t),null;case 1:return Xi(t.type)&&Zi(),sc(t),null;case 3:return i=t.stateNode,mo(),W(qi),W(Ki),yo(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(e===null||e.child===null)&&(ka(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Ca!==null&&(yl(Ca),Ca=null))),sc(t),null;case 5:go(t);var o=fo(uo.current);if(n=t.type,e!==null&&t.stateNode!=null)ic(e,t,n,i,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!i){if(t.stateNode===null)throw Error(r(166));return sc(t),null}if(e=fo(co.current),ka(t)){i=t.stateNode,n=t.type;var s=t.memoizedProps;switch(i[Mi]=t,i[Ni]=s,e=(t.mode&1)!=0,n){case`dialog`:U(`cancel`,i),U(`close`,i);break;case`iframe`:case`object`:case`embed`:U(`load`,i);break;case`video`:case`audio`:for(o=0;o<ni.length;o++)U(ni[o],i);break;case`source`:U(`error`,i);break;case`img`:case`image`:case`link`:U(`error`,i),U(`load`,i);break;case`details`:U(`toggle`,i);break;case`input`:be(i,s),U(`invalid`,i);break;case`select`:i._wrapperState={wasMultiple:!!s.multiple},U(`invalid`,i);break;case`textarea`:Oe(i,s),U(`invalid`,i)}for(var c in Ve(n,s),o=null,s)if(s.hasOwnProperty(c)){var l=s[c];c===`children`?typeof l==`string`?i.textContent!==l&&(!0!==s.suppressHydrationWarning&&vi(i.textContent,l,e),o=[`children`,l]):typeof l==`number`&&i.textContent!==``+l&&(!0!==s.suppressHydrationWarning&&vi(i.textContent,l,e),o=[`children`,``+l]):a.hasOwnProperty(c)&&l!=null&&c===`onScroll`&&U(`scroll`,i)}switch(n){case`input`:ge(i),Ce(i,s,!0);break;case`textarea`:ge(i),Ae(i);break;case`select`:case`option`:break;default:typeof s.onClick==`function`&&(i.onclick=yi)}i=o,t.updateQueue=i,i!==null&&(t.flags|=4)}else{c=o.nodeType===9?o:o.ownerDocument,e===`http://www.w3.org/1999/xhtml`&&(e=je(n)),e===`http://www.w3.org/1999/xhtml`?n===`script`?(e=c.createElement(`div`),e.innerHTML=`<script><\/script>`,e=e.removeChild(e.firstChild)):typeof i.is==`string`?e=c.createElement(n,{is:i.is}):(e=c.createElement(n),n===`select`&&(c=e,i.multiple?c.multiple=!0:i.size&&(c.size=i.size))):e=c.createElementNS(e,n),e[Mi]=t,e[Ni]=i,rc(e,t,!1,!1),t.stateNode=e;a:{switch(c=He(n,i),n){case`dialog`:U(`cancel`,e),U(`close`,e),o=i;break;case`iframe`:case`object`:case`embed`:U(`load`,e),o=i;break;case`video`:case`audio`:for(o=0;o<ni.length;o++)U(ni[o],e);o=i;break;case`source`:U(`error`,e),o=i;break;case`img`:case`image`:case`link`:U(`error`,e),U(`load`,e),o=i;break;case`details`:U(`toggle`,e),o=i;break;case`input`:be(e,i),o=ye(e,i),U(`invalid`,e);break;case`option`:o=i;break;case`select`:e._wrapperState={wasMultiple:!!i.multiple},o=M({},i,{value:void 0}),U(`invalid`,e);break;case`textarea`:Oe(e,i),o=De(e,i),U(`invalid`,e);break;default:o=i}for(s in Ve(n,o),l=o,l)if(l.hasOwnProperty(s)){var u=l[s];s===`style`?ze(e,u):s===`dangerouslySetInnerHTML`?(u=u?u.__html:void 0,u!=null&&Pe(e,u)):s===`children`?typeof u==`string`?(n!==`textarea`||u!==``)&&Fe(e,u):typeof u==`number`&&Fe(e,``+u):s!==`suppressContentEditableWarning`&&s!==`suppressHydrationWarning`&&s!==`autoFocus`&&(a.hasOwnProperty(s)?u!=null&&s===`onScroll`&&U(`scroll`,e):u!=null&&S(e,s,u,c))}switch(n){case`input`:ge(e),Ce(e,i,!1);break;case`textarea`:ge(e),Ae(e);break;case`option`:i.value!=null&&e.setAttribute(`value`,``+N(i.value));break;case`select`:e.multiple=!!i.multiple,s=i.value,s==null?i.defaultValue!=null&&Ee(e,!!i.multiple,i.defaultValue,!0):Ee(e,!!i.multiple,s,!1);break;default:typeof o.onClick==`function`&&(e.onclick=yi)}switch(n){case`button`:case`input`:case`select`:case`textarea`:i=!!i.autoFocus;break a;case`img`:i=!0;break a;default:i=!1}}i&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return sc(t),null;case 6:if(e&&t.stateNode!=null)ac(e,t,e.memoizedProps,i);else{if(typeof i!=`string`&&t.stateNode===null)throw Error(r(166));if(n=fo(uo.current),fo(co.current),ka(t)){if(i=t.stateNode,n=t.memoizedProps,i[Mi]=t,(s=i.nodeValue!==n)&&(e=xa,e!==null))switch(e.tag){case 3:vi(i.nodeValue,n,(e.mode&1)!=0);break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&vi(i.nodeValue,n,(e.mode&1)!=0)}s&&(t.flags|=4)}else i=(n.nodeType===9?n:n.ownerDocument).createTextNode(i),i[Mi]=t,t.stateNode=i}return sc(t),null;case 13:if(W(J),i=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(K&&Sa!==null&&t.mode&1&&!(t.flags&128))Aa(),q(),t.flags|=98560,s=!1;else if(s=ka(t),i!==null&&i.dehydrated!==null){if(e===null){if(!s)throw Error(r(318));if(s=t.memoizedState,s=s===null?null:s.dehydrated,!s)throw Error(r(317));s[Mi]=t}else q(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;sc(t),s=!1}else Ca!==null&&(yl(Ca),Ca=null),s=!0;if(!s)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(i=i!==null,i!==(e!==null&&e.memoizedState!==null)&&i&&(t.child.flags|=8192,t.mode&1&&(e===null||J.current&1?qc===0&&(qc=3):kl())),t.updateQueue!==null&&(t.flags|=4),sc(t),null);case 4:return mo(),e===null&&ci(t.stateNode.containerInfo),sc(t),null;case 10:return Wa(t.type._context),sc(t),null;case 17:return Xi(t.type)&&Zi(),sc(t),null;case 19:if(W(J),s=t.memoizedState,s===null)return sc(t),null;if(i=(t.flags&128)!=0,c=s.rendering,c===null)if(i)oc(s,!1);else{if(qc!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(c=_o(e),c!==null){for(t.flags|=128,oc(s,!1),i=c.updateQueue,i!==null&&(t.updateQueue=i,t.flags|=4),t.subtreeFlags=0,i=n,n=t.child;n!==null;)s=n,e=i,s.flags&=14680066,c=s.alternate,c===null?(s.childLanes=0,s.lanes=e,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=c.childLanes,s.lanes=c.lanes,s.child=c.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=c.memoizedProps,s.memoizedState=c.memoizedState,s.updateQueue=c.updateQueue,s.type=c.type,e=c.dependencies,s.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return G(J,J.current&1|2),t.child}e=e.sibling}s.tail!==null&&F()>tl&&(t.flags|=128,i=!0,oc(s,!1),t.lanes=4194304)}else{if(!i)if(e=_o(c),e!==null){if(t.flags|=128,i=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),oc(s,!0),s.tail===null&&s.tailMode===`hidden`&&!c.alternate&&!K)return sc(t),null}else 2*F()-s.renderingStartTime>tl&&n!==1073741824&&(t.flags|=128,i=!0,oc(s,!1),t.lanes=4194304);s.isBackwards?(c.sibling=t.child,t.child=c):(n=s.last,n===null?t.child=c:n.sibling=c,s.last=c)}return s.tail===null?(sc(t),null):(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=F(),t.sibling=null,n=J.current,G(J,i?n&1|2:n&1),t);case 22:case 23:return Tl(),i=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==i&&(t.flags|=8192),i&&t.mode&1?Gc&1073741824&&(sc(t),t.subtreeFlags&6&&(t.flags|=8192)):sc(t),null;case 24:return null;case 25:return null}throw Error(r(156,t.tag))}function lc(e,t){switch(ba(t),t.tag){case 1:return Xi(t.type)&&Zi(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return mo(),W(qi),W(Ki),yo(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return go(t),null;case 13:if(W(J),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));q()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return W(J),null;case 4:return mo(),null;case 10:return Wa(t.type._context),null;case 22:case 23:return Tl(),null;case 24:return null;default:return null}}var uc=!1,dc=!1,fc=typeof WeakSet==`function`?WeakSet:Set,Z=null;function pc(e,t){var n=e.ref;if(n!==null)if(typeof n==`function`)try{n(null)}catch(n){$(e,t,n)}else n.current=null}function mc(e,t,n){try{n()}catch(n){$(e,t,n)}}var hc=!1;function gc(e,t){if(bi=mn,e=Nr(),Pr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var i=n.getSelection&&n.getSelection();if(i&&i.rangeCount!==0){n=i.anchorNode;var a=i.anchorOffset,o=i.focusNode;i=i.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||i!==0&&f.nodeType!==3||(l=s+i),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===i&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(xi={focusedElem:e,selectionRange:n},mn=!1,Z=t;Z!==null;)if(t=Z,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,Z=e;else for(;Z!==null;){t=Z;try{var h=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var g=h.memoizedProps,_=h.memoizedState,v=t.stateNode;v.__reactInternalSnapshotBeforeUpdate=v.getSnapshotBeforeUpdate(t.elementType===t.type?g:gs(t.type,g),_)}break;case 3:var y=t.stateNode.containerInfo;y.nodeType===1?y.textContent=``:y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(e){$(t,t.return,e)}if(e=t.sibling,e!==null){e.return=t.return,Z=e;break}Z=t.return}return h=hc,hc=!1,h}function _c(e,t,n){var r=t.updateQueue;if(r=r===null?null:r.lastEffect,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var a=i.destroy;i.destroy=void 0,a!==void 0&&mc(t,n,a)}i=i.next}while(i!==r)}}function vc(e,t){if(t=t.updateQueue,t=t===null?null:t.lastEffect,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function yc(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t==`function`?t(e):t.current=e}}function bc(e){var t=e.alternate;t!==null&&(e.alternate=null,bc(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Mi],delete t[Ni],delete t[Fi],delete t[Ii],delete t[Li])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function xc(e){return e.tag===5||e.tag===3||e.tag===4}function Sc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||xc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Cc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=yi));else if(r!==4&&(e=e.child,e!==null))for(Cc(e,t,n),e=e.sibling;e!==null;)Cc(e,t,n),e=e.sibling}function wc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(wc(e,t,n),e=e.sibling;e!==null;)wc(e,t,n),e=e.sibling}var Tc=null,Ec=!1;function Dc(e,t,n){for(n=n.child;n!==null;)Oc(e,t,n),n=n.sibling}function Oc(e,t,n){if(Dt&&typeof Dt.onCommitFiberUnmount==`function`)try{Dt.onCommitFiberUnmount(Et,n)}catch{}switch(n.tag){case 5:dc||pc(n,t);case 6:var r=Tc,i=Ec;Tc=null,Dc(e,t,n),Tc=r,Ec=i,Tc!==null&&(Ec?(e=Tc,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Tc.removeChild(n.stateNode));break;case 18:Tc!==null&&(Ec?(e=Tc,n=n.stateNode,e.nodeType===8?Oi(e.parentNode,n):e.nodeType===1&&Oi(e,n),fn(e)):Oi(Tc,n.stateNode));break;case 4:r=Tc,i=Ec,Tc=n.stateNode.containerInfo,Ec=!0,Dc(e,t,n),Tc=r,Ec=i;break;case 0:case 11:case 14:case 15:if(!dc&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var a=i,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&mc(n,t,o),i=i.next}while(i!==r)}Dc(e,t,n);break;case 1:if(!dc&&(pc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(e){$(n,t,e)}Dc(e,t,n);break;case 21:Dc(e,t,n);break;case 22:n.mode&1?(dc=(r=dc)||n.memoizedState!==null,Dc(e,t,n),dc=r):Dc(e,t,n);break;default:Dc(e,t,n)}}function kc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new fc),t.forEach(function(t){var r=Hl.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))})}}function Ac(e,t){var n=t.deletions;if(n!==null)for(var i=0;i<n.length;i++){var a=n[i];try{var o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 5:Tc=c.stateNode,Ec=!1;break a;case 3:Tc=c.stateNode.containerInfo,Ec=!0;break a;case 4:Tc=c.stateNode.containerInfo,Ec=!0;break a}c=c.return}if(Tc===null)throw Error(r(160));Oc(o,s,a),Tc=null,Ec=!1;var l=a.alternate;l!==null&&(l.return=null),a.return=null}catch(e){$(a,t,e)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)jc(t,e),t=t.sibling}function jc(e,t){var n=e.alternate,i=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ac(t,e),Mc(e),i&4){try{_c(3,e,e.return),vc(3,e)}catch(t){$(e,e.return,t)}try{_c(5,e,e.return)}catch(t){$(e,e.return,t)}}break;case 1:Ac(t,e),Mc(e),i&512&&n!==null&&pc(n,n.return);break;case 5:if(Ac(t,e),Mc(e),i&512&&n!==null&&pc(n,n.return),e.flags&32){var a=e.stateNode;try{Fe(a,``)}catch(t){$(e,e.return,t)}}if(i&4&&(a=e.stateNode,a!=null)){var o=e.memoizedProps,s=n===null?o:n.memoizedProps,c=e.type,l=e.updateQueue;if(e.updateQueue=null,l!==null)try{c===`input`&&o.type===`radio`&&o.name!=null&&xe(a,o),He(c,s);var u=He(c,o);for(s=0;s<l.length;s+=2){var d=l[s],f=l[s+1];d===`style`?ze(a,f):d===`dangerouslySetInnerHTML`?Pe(a,f):d===`children`?Fe(a,f):S(a,d,f,u)}switch(c){case`input`:Se(a,o);break;case`textarea`:ke(a,o);break;case`select`:var p=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!o.multiple;var m=o.value;m==null?p!==!!o.multiple&&(o.defaultValue==null?Ee(a,!!o.multiple,o.multiple?[]:``,!1):Ee(a,!!o.multiple,o.defaultValue,!0)):Ee(a,!!o.multiple,m,!1)}a[Ni]=o}catch(t){$(e,e.return,t)}}break;case 6:if(Ac(t,e),Mc(e),i&4){if(e.stateNode===null)throw Error(r(162));a=e.stateNode,o=e.memoizedProps;try{a.nodeValue=o}catch(t){$(e,e.return,t)}}break;case 3:if(Ac(t,e),Mc(e),i&4&&n!==null&&n.memoizedState.isDehydrated)try{fn(t.containerInfo)}catch(t){$(e,e.return,t)}break;case 4:Ac(t,e),Mc(e);break;case 13:Ac(t,e),Mc(e),a=e.child,a.flags&8192&&(o=a.memoizedState!==null,a.stateNode.isHidden=o,!o||a.alternate!==null&&a.alternate.memoizedState!==null||(el=F())),i&4&&kc(e);break;case 22:if(d=n!==null&&n.memoizedState!==null,e.mode&1?(dc=(u=dc)||d,Ac(t,e),dc=u):Ac(t,e),Mc(e),i&8192){if(u=e.memoizedState!==null,(e.stateNode.isHidden=u)&&!d&&e.mode&1)for(Z=e,d=e.child;d!==null;){for(f=Z=d;Z!==null;){switch(p=Z,m=p.child,p.tag){case 0:case 11:case 14:case 15:_c(4,p,p.return);break;case 1:pc(p,p.return);var h=p.stateNode;if(typeof h.componentWillUnmount==`function`){i=p,n=p.return;try{t=i,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(e){$(i,n,e)}}break;case 5:pc(p,p.return);break;case 22:if(p.memoizedState!==null){Ic(f);continue}}m===null?Ic(f):(m.return=p,Z=m)}d=d.sibling}a:for(d=null,f=e;;){if(f.tag===5){if(d===null){d=f;try{a=f.stateNode,u?(o=a.style,typeof o.setProperty==`function`?o.setProperty(`display`,`none`,`important`):o.display=`none`):(c=f.stateNode,l=f.memoizedProps.style,s=l!=null&&l.hasOwnProperty(`display`)?l.display:null,c.style.display=Re(`display`,s))}catch(t){$(e,e.return,t)}}}else if(f.tag===6){if(d===null)try{f.stateNode.nodeValue=u?``:f.memoizedProps}catch(t){$(e,e.return,t)}}else if((f.tag!==22&&f.tag!==23||f.memoizedState===null||f===e)&&f.child!==null){f.child.return=f,f=f.child;continue}if(f===e)break a;for(;f.sibling===null;){if(f.return===null||f.return===e)break a;d===f&&(d=null),f=f.return}d===f&&(d=null),f.sibling.return=f.return,f=f.sibling}}break;case 19:Ac(t,e),Mc(e),i&4&&kc(e);break;case 21:break;default:Ac(t,e),Mc(e)}}function Mc(e){var t=e.flags;if(t&2){try{a:{for(var n=e.return;n!==null;){if(xc(n)){var i=n;break a}n=n.return}throw Error(r(160))}switch(i.tag){case 5:var a=i.stateNode;i.flags&32&&(Fe(a,``),i.flags&=-33),wc(e,Sc(e),a);break;case 3:case 4:var o=i.stateNode.containerInfo;Cc(e,Sc(e),o);break;default:throw Error(r(161))}}catch(t){$(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Nc(e,t,n){Z=e,Pc(e,t,n)}function Pc(e,t,n){for(var r=(e.mode&1)!=0;Z!==null;){var i=Z,a=i.child;if(i.tag===22&&r){var o=i.memoizedState!==null||uc;if(!o){var s=i.alternate,c=s!==null&&s.memoizedState!==null||dc;s=uc;var l=dc;if(uc=o,(dc=c)&&!l)for(Z=i;Z!==null;)o=Z,c=o.child,o.tag===22&&o.memoizedState!==null||c===null?Lc(i):(c.return=o,Z=c);for(;a!==null;)Z=a,Pc(a,t,n),a=a.sibling;Z=i,uc=s,dc=l}Fc(e,t,n)}else i.subtreeFlags&8772&&a!==null?(a.return=i,Z=a):Fc(e,t,n)}}function Fc(e){for(;Z!==null;){var t=Z;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:dc||vc(5,t);break;case 1:var i=t.stateNode;if(t.flags&4&&!dc)if(n===null)i.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:gs(t.type,n.memoizedProps);i.componentDidUpdate(a,n.memoizedState,i.__reactInternalSnapshotBeforeUpdate)}var o=t.updateQueue;o!==null&&oo(t,o,i);break;case 3:var s=t.updateQueue;if(s!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}oo(t,s,n)}break;case 5:var c=t.stateNode;if(n===null&&t.flags&4){n=c;var l=t.memoizedProps;switch(t.type){case`button`:case`input`:case`select`:case`textarea`:l.autoFocus&&n.focus();break;case`img`:l.src&&(n.src=l.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var u=t.alternate;if(u!==null){var d=u.memoizedState;if(d!==null){var f=d.dehydrated;f!==null&&fn(f)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(r(163))}dc||t.flags&512&&yc(t)}catch(e){$(t,t.return,e)}}if(t===e){Z=null;break}if(n=t.sibling,n!==null){n.return=t.return,Z=n;break}Z=t.return}}function Ic(e){for(;Z!==null;){var t=Z;if(t===e){Z=null;break}var n=t.sibling;if(n!==null){n.return=t.return,Z=n;break}Z=t.return}}function Lc(e){for(;Z!==null;){var t=Z;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{vc(4,t)}catch(e){$(t,n,e)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount==`function`){var i=t.return;try{r.componentDidMount()}catch(e){$(t,i,e)}}var a=t.return;try{yc(t)}catch(e){$(t,a,e)}break;case 5:var o=t.return;try{yc(t)}catch(e){$(t,o,e)}}}catch(e){$(t,t.return,e)}if(t===e){Z=null;break}var s=t.sibling;if(s!==null){s.return=t.return,Z=s;break}Z=t.return}}var Rc=Math.ceil,zc=C.ReactCurrentDispatcher,Bc=C.ReactCurrentOwner,Vc=C.ReactCurrentBatchConfig,Q=0,Hc=null,Uc=null,Wc=0,Gc=0,Kc=Wi(0),qc=0,Jc=null,Yc=0,Xc=0,Zc=0,Qc=null,$c=null,el=0,tl=1/0,nl=null,rl=!1,il=null,al=null,ol=!1,sl=null,cl=0,ll=0,ul=null,dl=-1,fl=0;function pl(){return Q&6?F():dl===-1?dl=F():dl}function ml(e){return e.mode&1?Q&2&&Wc!==0?Wc&-Wc:Ma.transition===null?(e=R,e===0?(e=window.event,e=e===void 0?16:bn(e.type),e):e):(fl===0&&(fl=zt()),fl):1}function hl(e,t,n,i){if(50<ll)throw ll=0,ul=null,Error(r(185));Vt(e,n,i),(!(Q&2)||e!==Hc)&&(e===Hc&&(!(Q&2)&&(Xc|=n),qc===4&&xl(e,Wc)),gl(e,i),n===1&&Q===0&&!(t.mode&1)&&(tl=F()+500,ra&&sa()))}function gl(e,t){var n=e.callbackNode;Lt(e,t);var r=Ft(e,e===Hc?Wc:0);if(r===0)n!==null&&vt(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&vt(n),t===1)e.tag===0?oa(Sl.bind(null,e)):aa(Sl.bind(null,e)),Ei(function(){!(Q&6)&&sa()}),n=null;else{switch(Wt(r)){case 1:n=I;break;case 4:n=St;break;case 16:n=Ct;break;case 536870912:n=Tt;break;default:n=Ct}n=Wl(n,_l.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function _l(e,t){if(dl=-1,fl=0,Q&6)throw Error(r(327));var n=e.callbackNode;if(Ll()&&e.callbackNode!==n)return null;var i=Ft(e,e===Hc?Wc:0);if(i===0)return null;if(i&30||(i&e.expiredLanes)!==0||t)t=Al(e,i);else{t=i;var a=Q;Q|=2;var o=Ol();(Hc!==e||Wc!==t)&&(nl=null,tl=F()+500,El(e,t));do try{Ml();break}catch(t){Dl(e,t)}while(1);Ua(),zc.current=o,Q=a,Uc===null?(Hc=null,Wc=0,t=qc):t=0}if(t!==0){if(t===2&&(a=Rt(e),a!==0&&(i=a,t=vl(e,a))),t===1)throw n=Jc,El(e,0),xl(e,i),gl(e,F()),n;if(t===6)xl(e,i);else{if(a=e.current.alternate,!(i&30)&&!bl(a)&&(t=Al(e,i),t===2&&(o=Rt(e),o!==0&&(i=o,t=vl(e,o))),t===1))throw n=Jc,El(e,0),xl(e,i),gl(e,F()),n;switch(e.finishedWork=a,e.finishedLanes=i,t){case 0:case 1:throw Error(r(345));case 2:Fl(e,$c,nl);break;case 3:if(xl(e,i),(i&130023424)===i&&(t=el+500-F(),10<t)){if(Ft(e,0)!==0)break;if(a=e.suspendedLanes,(a&i)!==i){pl(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Ci(Fl.bind(null,e,$c,nl),t);break}Fl(e,$c,nl);break;case 4:if(xl(e,i),(i&4194240)===i)break;for(t=e.eventTimes,a=-1;0<i;){var s=31-kt(i);o=1<<s,s=t[s],s>a&&(a=s),i&=~o}if(i=a,i=F()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Rc(i/1960))-i,10<i){e.timeoutHandle=Ci(Fl.bind(null,e,$c,nl),i);break}Fl(e,$c,nl);break;case 5:Fl(e,$c,nl);break;default:throw Error(r(329))}}}return gl(e,F()),e.callbackNode===n?_l.bind(null,e):null}function vl(e,t){var n=Qc;return e.current.memoizedState.isDehydrated&&(El(e,t).flags|=256),e=Al(e,t),e!==2&&(t=$c,$c=n,t!==null&&yl(t)),e}function yl(e){$c===null?$c=e:$c.push.apply($c,e)}function bl(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!Or(a(),i))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function xl(e,t){for(t&=~Zc,t&=~Xc,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-kt(t),r=1<<n;e[n]=-1,t&=~r}}function Sl(e){if(Q&6)throw Error(r(327));Ll();var t=Ft(e,0);if(!(t&1))return gl(e,F()),null;var n=Al(e,t);if(e.tag!==0&&n===2){var i=Rt(e);i!==0&&(t=i,n=vl(e,i))}if(n===1)throw n=Jc,El(e,0),xl(e,t),gl(e,F()),n;if(n===6)throw Error(r(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Fl(e,$c,nl),gl(e,F()),null}function Cl(e,t){var n=Q;Q|=1;try{return e(t)}finally{Q=n,Q===0&&(tl=F()+500,ra&&sa())}}function wl(e){sl!==null&&sl.tag===0&&!(Q&6)&&Ll();var t=Q;Q|=1;var n=Vc.transition,r=R;try{if(Vc.transition=null,R=1,e)return e()}finally{R=r,Vc.transition=n,Q=t,!(Q&6)&&sa()}}function Tl(){Gc=Kc.current,W(Kc)}function El(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,wi(n)),Uc!==null)for(n=Uc.return;n!==null;){var r=n;switch(ba(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&Zi();break;case 3:mo(),W(qi),W(Ki),yo();break;case 5:go(r);break;case 4:mo();break;case 13:W(J);break;case 19:W(J);break;case 10:Wa(r.type._context);break;case 22:case 23:Tl()}n=n.return}if(Hc=e,Uc=e=Yl(e.current,null),Wc=Gc=t,qc=0,Jc=null,Zc=Xc=Yc=0,$c=Qc=null,Ja!==null){for(t=0;t<Ja.length;t++)if(n=Ja[t],r=n.interleaved,r!==null){n.interleaved=null;var i=r.next,a=n.pending;if(a!==null){var o=a.next;a.next=i,r.next=o}n.pending=r}Ja=null}return e}function Dl(e,t){do{var n=Uc;try{if(Ua(),bo.current=fs,wo){for(var i=Y.memoizedState;i!==null;){var a=i.queue;a!==null&&(a.pending=null),i=i.next}wo=!1}if(So=0,Co=X=Y=null,To=!1,Eo=0,Bc.current=null,n===null||n.return===null){qc=1,Jc=t,Uc=null;break}a:{var o=e,s=n.return,c=n,l=t;if(t=Wc,c.flags|=32768,typeof l==`object`&&l&&typeof l.then==`function`){var u=l,d=c,f=d.tag;if(!(d.mode&1)&&(f===0||f===11||f===15)){var p=d.alternate;p?(d.updateQueue=p.updateQueue,d.memoizedState=p.memoizedState,d.lanes=p.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=As(s);if(m!==null){m.flags&=-257,js(m,s,c,o,t),m.mode&1&&ks(o,u,t),t=m,l=u;var h=t.updateQueue;if(h===null){var g=new Set;g.add(l),t.updateQueue=g}else h.add(l);break a}else{if(!(t&1)){ks(o,u,t),kl();break a}l=Error(r(426))}}else if(K&&c.mode&1){var _=As(s);if(_!==null){!(_.flags&65536)&&(_.flags|=256),js(_,s,c,o,t),ja(Cs(l,c));break a}}o=l=Cs(l,c),qc!==4&&(qc=2),Qc===null?Qc=[o]:Qc.push(o),o=s;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t;var v=Ds(o,l,t);io(o,v);break a;case 1:c=l;var y=o.type,b=o.stateNode;if(!(o.flags&128)&&(typeof y.getDerivedStateFromError==`function`||b!==null&&typeof b.componentDidCatch==`function`&&(al===null||!al.has(b)))){o.flags|=65536,t&=-t,o.lanes|=t;var x=Os(o,c,t);io(o,x);break a}}o=o.return}while(o!==null)}Pl(n)}catch(e){t=e,Uc===n&&n!==null&&(Uc=n=n.return);continue}break}while(1)}function Ol(){var e=zc.current;return zc.current=fs,e===null?fs:e}function kl(){(qc===0||qc===3||qc===2)&&(qc=4),Hc===null||!(Yc&268435455)&&!(Xc&268435455)||xl(Hc,Wc)}function Al(e,t){var n=Q;Q|=2;var i=Ol();(Hc!==e||Wc!==t)&&(nl=null,El(e,t));do try{jl();break}catch(t){Dl(e,t)}while(1);if(Ua(),Q=n,zc.current=i,Uc!==null)throw Error(r(261));return Hc=null,Wc=0,qc}function jl(){for(;Uc!==null;)Nl(Uc)}function Ml(){for(;Uc!==null&&!yt();)Nl(Uc)}function Nl(e){var t=Ul(e.alternate,e,Gc);e.memoizedProps=e.pendingProps,t===null?Pl(e):Uc=t,Bc.current=null}function Pl(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=lc(n,t),n!==null){n.flags&=32767,Uc=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{qc=6,Uc=null;return}}else if(n=cc(n,t,Gc),n!==null){Uc=n;return}if(t=t.sibling,t!==null){Uc=t;return}Uc=t=e}while(t!==null);qc===0&&(qc=5)}function Fl(e,t,n){var r=R,i=Vc.transition;try{Vc.transition=null,R=1,Il(e,t,n,r)}finally{Vc.transition=i,R=r}return null}function Il(e,t,n,i){do Ll();while(sl!==null);if(Q&6)throw Error(r(327));n=e.finishedWork;var a=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(r(177));e.callbackNode=null,e.callbackPriority=0;var o=n.lanes|n.childLanes;if(Ht(e,o),e===Hc&&(Uc=Hc=null,Wc=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||ol||(ol=!0,Wl(Ct,function(){return Ll(),null})),o=(n.flags&15990)!=0,n.subtreeFlags&15990||o){o=Vc.transition,Vc.transition=null;var s=R;R=1;var c=Q;Q|=4,Bc.current=null,gc(e,n),jc(n,e),Fr(xi),mn=!!bi,xi=bi=null,e.current=n,Nc(n,e,a),bt(),Q=c,R=s,Vc.transition=o}else e.current=n;if(ol&&(ol=!1,sl=e,cl=a),o=e.pendingLanes,o===0&&(al=null),Ot(n.stateNode,i),gl(e,F()),t!==null)for(i=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],i(a.value,{componentStack:a.stack,digest:a.digest});if(rl)throw rl=!1,e=il,il=null,e;return cl&1&&e.tag!==0&&Ll(),o=e.pendingLanes,o&1?e===ul?ll++:(ll=0,ul=e):ll=0,sa(),null}function Ll(){if(sl!==null){var e=Wt(cl),t=Vc.transition,n=R;try{if(Vc.transition=null,R=16>e?16:e,sl===null)var i=!1;else{if(e=sl,sl=null,cl=0,Q&6)throw Error(r(331));var a=Q;for(Q|=4,Z=e.current;Z!==null;){var o=Z,s=o.child;if(Z.flags&16){var c=o.deletions;if(c!==null){for(var l=0;l<c.length;l++){var u=c[l];for(Z=u;Z!==null;){var d=Z;switch(d.tag){case 0:case 11:case 15:_c(8,d,o)}var f=d.child;if(f!==null)f.return=d,Z=f;else for(;Z!==null;){d=Z;var p=d.sibling,m=d.return;if(bc(d),d===u){Z=null;break}if(p!==null){p.return=m,Z=p;break}Z=m}}}var h=o.alternate;if(h!==null){var g=h.child;if(g!==null){h.child=null;do{var _=g.sibling;g.sibling=null,g=_}while(g!==null)}}Z=o}}if(o.subtreeFlags&2064&&s!==null)s.return=o,Z=s;else b:for(;Z!==null;){if(o=Z,o.flags&2048)switch(o.tag){case 0:case 11:case 15:_c(9,o,o.return)}var v=o.sibling;if(v!==null){v.return=o.return,Z=v;break b}Z=o.return}}var y=e.current;for(Z=y;Z!==null;){s=Z;var b=s.child;if(s.subtreeFlags&2064&&b!==null)b.return=s,Z=b;else b:for(s=y;Z!==null;){if(c=Z,c.flags&2048)try{switch(c.tag){case 0:case 11:case 15:vc(9,c)}}catch(e){$(c,c.return,e)}if(c===s){Z=null;break b}var x=c.sibling;if(x!==null){x.return=c.return,Z=x;break b}Z=c.return}}if(Q=a,sa(),Dt&&typeof Dt.onPostCommitFiberRoot==`function`)try{Dt.onPostCommitFiberRoot(Et,e)}catch{}i=!0}return i}finally{R=n,Vc.transition=t}}return!1}function Rl(e,t,n){t=Cs(n,t),t=Ds(e,t,1),e=no(e,t,1),t=pl(),e!==null&&(Vt(e,1,t),gl(e,t))}function $(e,t,n){if(e.tag===3)Rl(e,e,n);else for(;t!==null;){if(t.tag===3){Rl(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(al===null||!al.has(r))){e=Cs(n,e),e=Os(t,e,1),t=no(t,e,1),e=pl(),t!==null&&(Vt(t,1,e),gl(t,e));break}}t=t.return}}function zl(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=pl(),e.pingedLanes|=e.suspendedLanes&n,Hc===e&&(Wc&n)===n&&(qc===4||qc===3&&(Wc&130023424)===Wc&&500>F()-el?El(e,0):Zc|=n),gl(e,t)}function Bl(e,t){t===0&&(e.mode&1?(t=L,L<<=1,!(L&130023424)&&(L=4194304)):t=1);var n=pl();e=Za(e,t),e!==null&&(Vt(e,t,n),gl(e,n))}function Vl(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Bl(e,n)}function Hl(e,t){var n=0;switch(e.tag){case 13:var i=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(r(314))}i!==null&&i.delete(t),Bl(e,n)}var Ul=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||qi.current)Ns=!0;else{if((e.lanes&n)===0&&!(t.flags&128))return Ns=!1,nc(e,t,n);Ns=!!(e.flags&131072)}else Ns=!1,K&&t.flags&1048576&&va(t,da,t.index);switch(t.lanes=0,t.tag){case 2:var i=t.type;ec(e,t),e=t.pendingProps;var a=Yi(t,Ki.current);Ka(t,n),a=Ao(null,t,i,e,a,n);var o=jo();return t.flags|=1,typeof a==`object`&&a&&typeof a.render==`function`&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Xi(i)?(o=!0,ea(t)):o=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,$a(t),a.updater=vs,t.stateNode=a,a._reactInternals=t,Ss(t,i,e,n),t=Hs(null,t,i,!0,o,n)):(t.tag=0,K&&o&&ya(t),Ps(null,t,a,n),t=t.child),t;case 16:i=t.elementType;a:{switch(ec(e,t),e=t.pendingProps,a=i._init,i=a(i._payload),t.type=i,a=t.tag=Jl(i),e=gs(i,e),a){case 0:t=Bs(null,t,i,e,n);break a;case 1:t=Vs(null,t,i,e,n);break a;case 11:t=Fs(null,t,i,e,n);break a;case 14:t=Is(null,t,i,gs(i.type,e),n);break a}throw Error(r(306,i,``))}return t;case 0:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:gs(i,a),Bs(e,t,i,a,n);case 1:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:gs(i,a),Vs(e,t,i,a,n);case 3:a:{if(Us(t),e===null)throw Error(r(387));i=t.pendingProps,o=t.memoizedState,a=o.element,eo(e,t),ao(t,i,null,n);var s=t.memoizedState;if(i=s.element,o.isDehydrated)if(o={element:i,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){a=Cs(Error(r(423)),t),t=Ws(e,t,i,n,a);break a}else if(i!==a){a=Cs(Error(r(424)),t),t=Ws(e,t,i,n,a);break a}else for(Sa=ki(t.stateNode.containerInfo.firstChild),xa=t,K=!0,Ca=null,n=Ra(t,null,i,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(q(),i===a){t=tc(e,t,n);break a}Ps(e,t,i,n)}t=t.child}return t;case 5:return ho(t),e===null&&Da(t),i=t.type,a=t.pendingProps,o=e===null?null:e.memoizedProps,s=a.children,Si(i,a)?s=null:o!==null&&Si(i,o)&&(t.flags|=32),zs(e,t),Ps(e,t,s,n),t.child;case 6:return e===null&&Da(t),null;case 13:return qs(e,t,n);case 4:return po(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=La(t,null,i,n):Ps(e,t,i,n),t.child;case 11:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:gs(i,a),Fs(e,t,i,a,n);case 7:return Ps(e,t,t.pendingProps,n),t.child;case 8:return Ps(e,t,t.pendingProps.children,n),t.child;case 12:return Ps(e,t,t.pendingProps.children,n),t.child;case 10:a:{if(i=t.type._context,a=t.pendingProps,o=t.memoizedProps,s=a.value,G(za,i._currentValue),i._currentValue=s,o!==null)if(Or(o.value,s)){if(o.children===a.children&&!qi.current){t=tc(e,t,n);break a}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var c=o.dependencies;if(c!==null){s=o.child;for(var l=c.firstContext;l!==null;){if(l.context===i){if(o.tag===1){l=to(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),Ga(o.return,n,t),c.lanes|=n;break}l=l.next}}else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){if(s=o.return,s===null)throw Error(r(341));s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),Ga(s,n,t),s=o.sibling}else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){if(s===t){s=null;break}if(o=s.sibling,o!==null){o.return=s.return,s=o;break}s=s.return}o=s}Ps(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,i=t.pendingProps.children,Ka(t,n),a=qa(a),i=i(a),t.flags|=1,Ps(e,t,i,n),t.child;case 14:return i=t.type,a=gs(i,t.pendingProps),a=gs(i.type,a),Is(e,t,i,a,n);case 15:return Ls(e,t,t.type,t.pendingProps,n);case 17:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:gs(i,a),ec(e,t),t.tag=1,Xi(i)?(e=!0,ea(t)):e=!1,Ka(t,n),bs(t,i,a),Ss(t,i,a,n),Hs(null,t,i,!0,e,n);case 19:return $s(e,t,n);case 22:return Rs(e,t,n)}throw Error(r(156,t.tag))};function Wl(e,t){return _t(e,t)}function Gl(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Kl(e,t,n,r){return new Gl(e,t,n,r)}function ql(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Jl(e){if(typeof e==`function`)return+!!ql(e);if(e!=null){if(e=e.$$typeof,e===re)return 11;if(e===A)return 14}return 2}function Yl(e,t){var n=e.alternate;return n===null?(n=Kl(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Xl(e,t,n,i,a,o){var s=2;if(i=e,typeof e==`function`)ql(e)&&(s=1);else if(typeof e==`string`)s=5;else a:switch(e){case ee:return Zl(n.children,a,o,t);case E:s=8,a|=8;break;case te:return e=Kl(12,n,t,a|2),e.elementType=te,e.lanes=o,e;case O:return e=Kl(13,n,t,a),e.elementType=O,e.lanes=o,e;case k:return e=Kl(19,n,t,a),e.elementType=k,e.lanes=o,e;case ie:return Ql(n,a,o,t);default:if(typeof e==`object`&&e)switch(e.$$typeof){case D:s=10;break a;case ne:s=9;break a;case re:s=11;break a;case A:s=14;break a;case j:s=16,i=null;break a}throw Error(r(130,e==null?e:typeof e,``))}return t=Kl(s,n,t,a),t.elementType=e,t.type=i,t.lanes=o,t}function Zl(e,t,n,r){return e=Kl(7,e,r,t),e.lanes=n,e}function Ql(e,t,n,r){return e=Kl(22,e,r,t),e.elementType=ie,e.lanes=n,e.stateNode={isHidden:!1},e}function $l(e,t,n){return e=Kl(6,e,null,t),e.lanes=n,e}function eu(e,t,n){return t=Kl(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function tu(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Bt(0),this.expirationTimes=Bt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Bt(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function nu(e,t,n,r,i,a,o,s,c){return e=new tu(e,t,n,s,c),t===1?(t=1,!0===a&&(t|=8)):t=0,a=Kl(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},$a(a),e}function ru(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:T,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}function iu(e){if(!e)return Gi;e=e._reactInternals;a:{if(dt(e)!==e||e.tag!==1)throw Error(r(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break a;case 1:if(Xi(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break a}}t=t.return}while(t!==null);throw Error(r(171))}if(e.tag===1){var n=e.type;if(Xi(n))return $i(e,n,t)}return t}function au(e,t,n,r,i,a,o,s,c){return e=nu(n,r,!0,e,i,a,o,s,c),e.context=iu(null),n=e.current,r=pl(),i=ml(n),a=to(r,i),a.callback=t??null,no(n,a,i),e.current.lanes=i,Vt(e,i,r),gl(e,r),e}function ou(e,t,n,r){var i=t.current,a=pl(),o=ml(i);return n=iu(n),t.context===null?t.context=n:t.pendingContext=n,t=to(a,o),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=no(i,t,o),e!==null&&(hl(e,i,o,a),ro(e,i,o)),o}function su(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function cu(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function lu(e,t){cu(e,t),(e=e.alternate)&&cu(e,t)}function uu(){return null}var du=typeof reportError==`function`?reportError:function(e){console.error(e)};function fu(e){this._internalRoot=e}pu.prototype.render=fu.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(r(409));ou(e,t,null,null)},pu.prototype.unmount=fu.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;wl(function(){ou(null,e,null,null)}),t[Pi]=null}};function pu(e){this._internalRoot=e}pu.prototype.unstable_scheduleHydration=function(e){if(e){var t=Jt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<rn.length&&t!==0&&t<rn[n].priority;n++);rn.splice(n,0,e),n===0&&B(e)}};function mu(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function hu(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==` react-mount-point-unstable `))}function gu(){}function _u(e,t,n,r,i){if(i){if(typeof r==`function`){var a=r;r=function(){var e=su(o);a.call(e)}}var o=au(t,r,e,0,null,!1,!1,``,gu);return e._reactRootContainer=o,e[Pi]=o.current,ci(e.nodeType===8?e.parentNode:e),wl(),o}for(;i=e.lastChild;)e.removeChild(i);if(typeof r==`function`){var s=r;r=function(){var e=su(c);s.call(e)}}var c=nu(e,0,!1,null,null,!1,!1,``,gu);return e._reactRootContainer=c,e[Pi]=c.current,ci(e.nodeType===8?e.parentNode:e),wl(function(){ou(t,c,n,r)}),c}function vu(e,t,n,r,i){var a=n._reactRootContainer;if(a){var o=a;if(typeof i==`function`){var s=i;i=function(){var e=su(o);s.call(e)}}ou(t,o,e,i)}else o=_u(n,t,e,i,r);return su(o)}Gt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Pt(t.pendingLanes);n!==0&&(Ut(t,n|1),gl(t,F()),!(Q&6)&&(tl=F()+500,sa()))}break;case 13:wl(function(){var t=Za(e,1);t!==null&&hl(t,e,1,pl())}),lu(e,1)}},Kt=function(e){if(e.tag===13){var t=Za(e,134217728);t!==null&&hl(t,e,134217728,pl()),lu(e,134217728)}},qt=function(e){if(e.tag===13){var t=ml(e),n=Za(e,t);n!==null&&hl(n,e,t,pl()),lu(e,t)}},Jt=function(){return R},Yt=function(e,t){var n=R;try{return R=e,t()}finally{R=n}},We=function(e,t,n){switch(t){case`input`:if(Se(e,n),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name=`+JSON.stringify(``+t)+`][type="radio"]`),t=0;t<n.length;t++){var i=n[t];if(i!==e&&i.form===e.form){var a=Vi(i);if(!a)throw Error(r(90));_e(i),Se(i,a)}}}break;case`textarea`:ke(e,n);break;case`select`:t=n.value,t!=null&&Ee(e,!!n.multiple,t,!1)}},Xe=Cl,Ze=wl;var yu={usingClientEntryPoint:!1,Events:[zi,Bi,Vi,Je,Ye,Cl]},bu={findFiberByHostInstance:Ri,bundleType:0,version:`18.3.1`,rendererPackageName:`react-dom`},xu={bundleType:bu.bundleType,version:bu.version,rendererPackageName:bu.rendererPackageName,rendererConfig:bu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:C.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=ht(e),e===null?null:e.stateNode},findFiberByHostInstance:bu.findFiberByHostInstance||uu,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:`18.3.1-next-f1338f8080-20240426`};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Su=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Su.isDisabled&&Su.supportsFiber)try{Et=Su.inject(xu),Dt=Su}catch{}}e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=yu,e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!mu(t))throw Error(r(200));return ru(e,t,null,n)},e.createRoot=function(e,t){if(!mu(e))throw Error(r(299));var n=!1,i=``,a=du;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(i=t.identifierPrefix),t.onRecoverableError!==void 0&&(a=t.onRecoverableError)),t=nu(e,1,!1,null,null,n,!1,i,a),e[Pi]=t.current,ci(e.nodeType===8?e.parentNode:e),new fu(t)},e.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(r(188)):(e=Object.keys(e).join(`,`),Error(r(268,e)));return e=ht(t),e=e===null?null:e.stateNode,e},e.flushSync=function(e){return wl(e)},e.hydrate=function(e,t,n){if(!hu(t))throw Error(r(200));return vu(null,e,t,!0,n)},e.hydrateRoot=function(e,t,n){if(!mu(e))throw Error(r(405));var i=n!=null&&n.hydratedSources||null,a=!1,o=``,s=du;if(n!=null&&(!0===n.unstable_strictMode&&(a=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onRecoverableError!==void 0&&(s=n.onRecoverableError)),t=au(t,null,e,1,n??null,a,!1,o,s),e[Pi]=t.current,ci(e),i)for(e=0;e<i.length;e++)n=i[e],a=n._getVersion,a=a(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new pu(t)},e.render=function(e,t,n){if(!hu(t))throw Error(r(200));return vu(null,e,t,!1,n)},e.unmountComponentAtNode=function(e){if(!hu(e))throw Error(r(40));return e._reactRootContainer?(wl(function(){vu(null,null,e,!1,function(){e._reactRootContainer=null,e[Pi]=null})}),!0):!1},e.unstable_batchedUpdates=Cl,e.unstable_renderSubtreeIntoContainer=function(e,t,n,i){if(!hu(n))throw Error(r(200));if(e==null||e._reactInternals===void 0)throw Error(r(38));return vu(e,t,n,!1,i)},e.version=`18.3.1-next-f1338f8080-20240426`})),m=o(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=p()})),h=o((e=>{var t=m();e.createRoot=t.createRoot,e.hydrateRoot=t.hydrateRoot})),g=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),_=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),v={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`},y=c(u()),b=(0,y.forwardRef)(({color:e=`currentColor`,size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>(0,y.createElement)(`svg`,{ref:c,...v,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:_(`lucide`,i),...s},[...o.map(([e,t])=>(0,y.createElement)(e,t)),...Array.isArray(a)?a:[a]])),x=(e,t)=>{let n=(0,y.forwardRef)(({className:n,...r},i)=>(0,y.createElement)(b,{ref:i,iconNode:t,className:_(`lucide-${g(e)}`,n),...r}));return n.displayName=`${e}`,n},S=x(`Activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),C=x(`ArrowLeft`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),w=x(`ArrowRight`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),T=x(`ArrowUpRight`,[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]),ee=x(`BadgeCheck`,[[`path`,{d:`M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z`,key:`3c2336`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),E=x(`BookOpen`,[[`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`}]]),te=x(`Boxes`,[[`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`}]]),D=x(`CalendarCheck`,[[`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`}],[`path`,{d:`m9 16 2 2 4-4`,key:`19s6y9`}]]),ne=x(`CalendarClock`,[[`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:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`path`,{d:`M3 10h5`,key:`r794hk`}],[`path`,{d:`M17.5 17.5 16 16.3V14`,key:`akvzfd`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),re=x(`ChartColumn`,[[`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`}]]),O=x(`Check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),k=x(`ChevronDown`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),A=x(`ChevronLeft`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),j=x(`ChevronRight`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),ie=x(`ChevronUp`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),ae=x(`CircleAlert`,[[`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`}]]),oe=x(`CircleCheck`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),M=x(`CircleX`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),se=x(`Clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`polyline`,{points:`12 6 12 12 16 14`,key:`68esgv`}]]),ce=x(`Cloud`,[[`path`,{d:`M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z`,key:`p7xjir`}]]),le=x(`Copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),ue=x(`CornerDownLeft`,[[`polyline`,{points:`9 10 4 15 9 20`,key:`r3jprv`}],[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}]]),de=x(`Crown`,[[`path`,{d:`M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z`,key:`1vdc57`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),fe=x(`Database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),pe=x(`Download`,[[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`polyline`,{points:`7 10 12 15 17 10`,key:`2ggqvy`}],[`line`,{x1:`12`,x2:`12`,y1:`15`,y2:`3`,key:`1vk2je`}]]),N=x(`ExternalLink`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),me=x(`EyeOff`,[[`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`}]]),he=x(`Eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),ge=x(`FileX`,[[`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:`m14.5 12.5-5 5`,key:`b62r18`}],[`path`,{d:`m9.5 12.5 5 5`,key:`1rk7el`}]]),_e=x(`Filter`,[[`polygon`,{points:`22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3`,key:`1yg77f`}]]),ve=x(`Flame`,[[`path`,{d:`M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z`,key:`96xj49`}]]),ye=x(`Gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),be=x(`Gift`,[[`rect`,{x:`3`,y:`8`,width:`18`,height:`4`,rx:`1`,key:`bkv52`}],[`path`,{d:`M12 8v13`,key:`1c76mn`}],[`path`,{d:`M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7`,key:`6wjy6b`}],[`path`,{d:`M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5`,key:`1ihvrl`}]]),xe=x(`GitCompare`,[[`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`}],[`path`,{d:`M11 18H8a2 2 0 0 1-2-2V9`,key:`19pyzm`}]]),Se=x(`Globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),Ce=x(`HardDrive`,[[`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`}]]),we=x(`HeartPulse`,[[`path`,{d:`M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z`,key:`c3ymky`}],[`path`,{d:`M3.22 12H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27`,key:`1uw2ng`}]]),Te=x(`History`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]]),Ee=x(`ImagePlus`,[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]),De=x(`Image`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]),Oe=x(`Import`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m8 11 4 4 4-4`,key:`1dohi6`}],[`path`,{d:`M8 5H4a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4`,key:`1ywtjm`}]]),ke=x(`Info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Ae=x(`KeyRound`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),je=x(`Layers`,[[`path`,{d:`m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z`,key:`8b97xw`}],[`path`,{d:`m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65`,key:`dd6zsq`}],[`path`,{d:`m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65`,key:`ep9fru`}]]),Me=x(`LayoutDashboard`,[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]),Ne=x(`LifeBuoy`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m4.93 4.93 4.24 4.24`,key:`1ymg45`}],[`path`,{d:`m14.83 9.17 4.24-4.24`,key:`1cb5xl`}],[`path`,{d:`m14.83 14.83 4.24 4.24`,key:`q42g0n`}],[`path`,{d:`m9.17 14.83-4.24 4.24`,key:`bqpfvv`}],[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}]]),Pe=x(`Lightbulb`,[[`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`}]]),Fe=x(`LoaderCircle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Ie=x(`Lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]),Le=x(`Moon`,[[`path`,{d:`M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z`,key:`a7tn18`}]]),Re=x(`Network`,[[`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`}]]),ze=x(`Pencil`,[[`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`}]]),Be=x(`Play`,[[`polygon`,{points:`6 3 20 12 6 21 6 3`,key:`1oa8hb`}]]),Ve=x(`PlugZap`,[[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m18 3-4 4h6l-4 4`,key:`16psg9`}]]),He=x(`Plug`,[[`path`,{d:`M12 22v-5`,key:`1ega77`}],[`path`,{d:`M9 8V2`,key:`14iosj`}],[`path`,{d:`M15 8V2`,key:`18g5xt`}],[`path`,{d:`M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z`,key:`osxo6l`}]]),Ue=x(`Power`,[[`path`,{d:`M12 2v10`,key:`mnfbl`}],[`path`,{d:`M18.4 6.6a9 9 0 1 1-12.77.04`,key:`obofu9`}]]),P=x(`RefreshCw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),We=x(`Replace`,[[`path`,{d:`M14 4a2 2 0 0 1 2-2`,key:`1w2hp7`}],[`path`,{d:`M16 10a2 2 0 0 1-2-2`,key:`shjach`}],[`path`,{d:`M20 2a2 2 0 0 1 2 2`,key:`188mtx`}],[`path`,{d:`M22 8a2 2 0 0 1-2 2`,key:`ddf4tu`}],[`path`,{d:`m3 7 3 3 3-3`,key:`x25e72`}],[`path`,{d:`M6 10V5a3 3 0 0 1 3-3h1`,key:`3y3t5z`}],[`rect`,{x:`2`,y:`14`,width:`8`,height:`8`,rx:`2`,key:`4rksxw`}]]),Ge=x(`Rocket`,[[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z`,key:`m3kijz`}],[`path`,{d:`m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z`,key:`1fmvmk`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0`,key:`1f8sc4`}],[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`,key:`qeys4`}]]),Ke=x(`RotateCw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),qe=x(`Rss`,[[`path`,{d:`M4 11a9 9 0 0 1 9 9`,key:`pv89mb`}],[`path`,{d:`M4 4a16 16 0 0 1 16 16`,key:`k0647b`}],[`circle`,{cx:`5`,cy:`19`,r:`1`,key:`bfqh0e`}]]),Je=x(`Scissors`,[[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M8.12 8.12 12 12`,key:`1alkpv`}],[`path`,{d:`M20 4 8.12 15.88`,key:`xgtan2`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`path`,{d:`M14.8 14.8 20 20`,key:`ptml3r`}]]),Ye=x(`ScrollText`,[[`path`,{d:`M15 12h-5`,key:`r7krc0`}],[`path`,{d:`M15 8h-5`,key:`1khuty`}],[`path`,{d:`M19 17V5a2 2 0 0 0-2-2H4`,key:`zz82l3`}],[`path`,{d:`M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3`,key:`1ph1d7`}]]),Xe=x(`Search`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`path`,{d:`m21 21-4.3-4.3`,key:`1qie3q`}]]),Ze=x(`Server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Qe=x(`Settings`,[[`path`,{d:`M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z`,key:`1qme2f`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),$e=x(`Shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),et=x(`Shrink`,[[`path`,{d:`m15 15 6 6m-6-6v4.8m0-4.8h4.8`,key:`17vawe`}],[`path`,{d:`M9 19.8V15m0 0H4.2M9 15l-6 6`,key:`chjx8e`}],[`path`,{d:`M15 4.2V9m0 0h4.8M15 9l6-6`,key:`lav6yq`}],[`path`,{d:`M9 4.2V9m0 0H4.2M9 9 3 3`,key:`1pxi2q`}]]),tt=x(`SlidersVertical`,[[`line`,{x1:`4`,x2:`4`,y1:`21`,y2:`14`,key:`1p332r`}],[`line`,{x1:`4`,x2:`4`,y1:`10`,y2:`3`,key:`gb41h5`}],[`line`,{x1:`12`,x2:`12`,y1:`21`,y2:`12`,key:`hf2csr`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`3`,key:`1kfi7u`}],[`line`,{x1:`20`,x2:`20`,y1:`21`,y2:`16`,key:`1lhrwl`}],[`line`,{x1:`20`,x2:`20`,y1:`12`,y2:`3`,key:`16vvfq`}],[`line`,{x1:`2`,x2:`6`,y1:`14`,y2:`14`,key:`1uebub`}],[`line`,{x1:`10`,x2:`14`,y1:`8`,y2:`8`,key:`1yglbp`}],[`line`,{x1:`18`,x2:`22`,y1:`16`,y2:`16`,key:`1jxqpz`}]]),nt=x(`Smartphone`,[[`rect`,{width:`14`,height:`20`,x:`5`,y:`2`,rx:`2`,ry:`2`,key:`1yt0o3`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}]]),rt=x(`Sparkles`,[[`path`,{d:`M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z`,key:`4pj2yx`}],[`path`,{d:`M20 3v4`,key:`1olli1`}],[`path`,{d:`M22 5h-4`,key:`1gvqau`}],[`path`,{d:`M4 17v2`,key:`vumght`}],[`path`,{d:`M5 18H3`,key:`zchphs`}]]),it=x(`Square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),at=x(`Star`,[[`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`}]]),ot=x(`Sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),st=x(`Tag`,[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`,key:`vktsd0`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`kqv944`}]]),ct=x(`Timer`,[[`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`}]]),lt=x(`Trash2`,[[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6`,key:`4alrt4`}],[`path`,{d:`M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2`,key:`v07s0e`}],[`line`,{x1:`10`,x2:`10`,y1:`11`,y2:`17`,key:`1uufr5`}],[`line`,{x1:`14`,x2:`14`,y1:`11`,y2:`17`,key:`xtxkd`}]]),ut=x(`TrendingUp`,[[`polyline`,{points:`22 7 13.5 15.5 8.5 10.5 2 17`,key:`126l90`}],[`polyline`,{points:`16 7 22 7 22 13`,key:`kwv8wd`}]]),dt=x(`TriangleAlert`,[[`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`}]]),ft=x(`Type`,[[`polyline`,{points:`4 7 4 4 20 4 20 7`,key:`1nosan`}],[`line`,{x1:`9`,x2:`15`,y1:`20`,y2:`20`,key:`swin9y`}],[`line`,{x1:`12`,x2:`12`,y1:`4`,y2:`20`,key:`1tx1rr`}]]),pt=x(`Upload`,[[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`polyline`,{points:`17 8 12 3 7 8`,key:`t8dd8p`}],[`line`,{x1:`12`,x2:`12`,y1:`3`,y2:`15`,key:`widbto`}]]),mt=x(`WandSparkles`,[[`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`}]]),ht=x(`Webhook`,[[`path`,{d:`M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2`,key:`q3hayz`}],[`path`,{d:`m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06`,key:`1go1hn`}],[`path`,{d:`m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8`,key:`qlwsc0`}]]),gt=x(`Wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z`,key:`cbrjhi`}]]),_t=x(`X`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),vt=x(`Zap`,[[`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`}]]),yt=o((e=>{var t=u(),n=Symbol.for(`react.element`),r=Symbol.for(`react.fragment`),i=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,r){var s,c={},l=null,u=null;for(s in r!==void 0&&(l=``+r),t.key!==void 0&&(l=``+t.key),t.ref!==void 0&&(u=t.ref),t)i.call(t,s)&&!o.hasOwnProperty(s)&&(c[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps,t)c[s]===void 0&&(c[s]=t[s]);return{$$typeof:n,type:e,key:l,ref:u,props:c,_owner:a.current}}e.Fragment=r,e.jsx=s,e.jsxs=s})),bt=o(((e,t)=>{t.exports=yt()})),F=c(m(),1),xt=h(),I=bt(),St={Activity:S,BarChart3:re,CalendarClock:ne,Clock:se,Cloud:ce,Database:fe,Eye:he,FileX:ge,Filter:_e,Gauge:ye,Globe:Se,HardDrive:Ce,HeartPulse:we,Image:De,Import:Oe,KeyRound:Ae,Layers:je,LayoutDashboard:Me,LifeBuoy:Ne,Lightbulb:Pe,Network:Re,Replace:We,Rss:qe,Scissors:Je,Search:Xe,Server:Ze,Settings:Qe,Shield:$e,Shrink:et,Sliders:tt,Sparkles:rt,Square:it,Tag:st,Trash2:lt,TrendingUp:ut,Type:ft,Wand2:mt,Webhook:ht,Wrench:gt,Zap:vt};function Ct({name:e,size:t=15,className:n}){return(0,I.jsx)(St[e]??it,{size:t,className:n})}var wt=[{slug:`pagespeed`,label:`PageSpeed`,icon:`Gauge`,description:`Run Google PageSpeed Insights audits without leaving the dashboard. Scores + CWV cached 24h.`,teaser:`pagespeed`,embedded:!0},{slug:`recommendations`,label:`Recommendations`,icon:`Lightbulb`,description:`Rule-based engine surfaces the 5 things most likely to improve your score.`,teaser:`recommendations`,embedded:!0},{slug:`rum`,label:`Real-User Monitoring`,icon:`Eye`,description:`Sample LCP / FCP / CLS / INP / TTFB from real visitors. Per-URL percentile charts.`,teaser:`rum`,embedded:!0},{slug:`images`,label:`Image Optimization`,icon:`Replace`,description:`Convert new JPEG/PNG uploads to WebP and AVIF; serve modern formats to supporting browsers.`,teaser:`webp-avif`,embedded:!0},{slug:`cloudflare-apo`,label:`Cloudflare APO`,icon:`Zap`,description:`Toggle Automatic Platform Optimization, edge cache level, and TTL. No separate dashboard.`,teaser:`cloudflare-apo`,embedded:!0},{slug:`feed-cache`,label:`Feed Caching`,icon:`Rss`,description:`Cache RSS / Atom / comment feeds so polling aggregators skip a full render. Correct feed content-type preserved; purges on new posts.`,teaser:`feed-cache`,embedded:!0},{slug:`cache-404`,label:`404 Caching`,icon:`FileX`,description:`Serve one cached 404 so bot / scanner floods on unknown URLs don't each cost a render. Short-lived, shared entry, purged on publish.`,teaser:`cache-404`,embedded:!0},{slug:`search-cache`,label:`Search Caching`,icon:`Search`,description:`Cache internal search-results pages (/?s=…) so popular repeated searches skip a full query + render. Keyed per term, short-lived, purged on publish.`,teaser:`search-cache`,embedded:!0},{slug:`rest-cache`,label:`REST API Cache`,icon:`Webhook`,description:`Cache read-only REST responses with a TTL you set per route — built for headless sites and app backends. Auth'd and write requests never cache.`,teaser:`rest-cache`,embedded:!0},{slug:`maintenance-cache`,label:`Maintenance`,icon:`Wrench`,description:`Skip caching while the site is in maintenance / coming-soon mode, and auto-purge when it goes live again.`,teaser:null,embedded:!0},{slug:`prewarm-schedule`,label:`On a Schedule`,icon:`CalendarClock`,description:`Warm target URLs ahead of posts, sales, and campaigns so the spike hits a warm cache. One-off, recurring, and auto-warm on scheduled-post publish.`,teaser:`prewarm-schedule`,embedded:!0},{slug:`predictive-warm`,label:`Auto (AI)`,icon:`TrendingUp`,description:`Proactively warm the hottest URLs — ranked by real traffic, recency, and content — so popular and about-to-be-popular pages always serve from cache.`,teaser:`predictive-warm`,embedded:!0},{slug:`brotli-compression`,label:`Brotli`,icon:`Shrink`,description:`Serve Brotli where supported — smaller than GZIP — with automatic GZIP fallback.`,teaser:`brotli`,embedded:!0},{slug:`custom-rules`,label:`Custom Cache Rules`,icon:`Filter`,description:`Bypass cache or override expiry by URL glob, post type, category, tag, or author.`,teaser:`custom-rules`,embedded:!0},{slug:`analytics`,label:`Analytics`,icon:`BarChart3`,description:`Hit-ratio trends, slowest URLs from RUM samples, recent activity timeline.`,teaser:`analytics`,embedded:!0},{slug:`critical-css`,label:`Critical CSS`,icon:`Sparkles`,description:`Inline above-the-fold styles, defer the rest. Pluggable generator endpoint.`,teaser:`critical-css`,embedded:!0},{slug:`unused-css`,label:`Unused CSS`,icon:`Scissors`,description:`Per-URL pruned stylesheet inlined; original <link> tags stripped.`,teaser:`unused-css`,embedded:!0},{slug:`license`,label:`License`,icon:`KeyRound`,description:`Activate xSpeed Pro and manage automatic updates.`,teaser:null},{slug:`white-label`,label:`Branding`,icon:`Tag`,description:`Rebrand the dashboard chrome — name, footer credit, hide help links.`,teaser:`white-label`},{slug:`multisite`,label:`Multisite`,icon:`Network`,description:`One dashboard across every site in a WP Multisite network with network-wide purge.`,teaser:`multisite`},{slug:`ai-provider`,label:`AI Provider`,icon:`Sparkles`,description:`Connect OpenAI, Anthropic, Gemini, or OpenRouter once — every Pro AI feature shares the connection.`,teaser:null},{slug:`smart-predict`,label:`Speculation Rules`,icon:`Wand2`,description:`Predict each visitor's next page and prefetch it via Chrome's Speculation Rules API.`,teaser:null,embedded:!0},{slug:`performance-health`,label:`Performance Health`,icon:`HeartPulse`,description:`Core Web Vitals health monitor with AI anomaly detection and a 7-day regression baseline.`,teaser:null,embedded:!0},{slug:`smart-image`,label:`AI Suggestions`,icon:`Sparkles`,description:`AI-recommended format + quality settings, applied into Image Optimization in one click.`,teaser:null,embedded:!0},{slug:`adaptive-cache`,label:`Adaptive Cache`,icon:`Lightbulb`,description:`AI-tuned cache TTL based on 24-hour traffic patterns, applied into the Cache module in one click.`,teaser:null}],Tt=new Set(wt.filter(e=>e.embedded).map(e=>e.slug)),Et=[{id:`cache`,label:`Cache`,icon:`Zap`,description:`Page, object and browser caching, plus preload.`,slugs:[`cache`,`preloader`,`browser-cache`,`object-cache`,`cache-coverage`,`adaptive-cache`]},{id:`performance`,label:`Optimization`,icon:`Gauge`,description:`Minify, compress, lazy-load, fonts and hints.`,slugs:[`minify`,`gzip`,`lazy`,`resource-hints`,`fonts`,`bloat`,`heartbeat`]},{id:`network`,label:`Network`,icon:`Network`,description:`CDN and Cloudflare edge delivery.`,slugs:[`cdn`,`cloudflare`]},{id:`insights`,label:`Health & insights`,icon:`HeartPulse`,description:`Speed score, diagnostics and analytics.`,slugs:[`health`,`score`]},{id:`tools`,label:`Tools`,icon:`Sliders`,description:`Database cleanup, migration and logs.`,slugs:[`database`,`migration`,`logs`]},{id:`ai-agents`,label:`AI & agents`,icon:`Sparkles`,description:`Hub, MCP access, AI provider and privacy.`,slugs:[`ai-provider`,`mcp`,`ai-privacy`]},{id:`settings`,label:`Settings`,icon:`Settings`,description:`License, branding, multisite and support.`,slugs:[`license`,`white-label`,`multisite`,`support`]}],Dt=Et.map(e=>e.id);function Ot(e){return Et.find(t=>t.id===e)}function kt(e){return Et.find(t=>t.slugs.includes(e))?.id}function At(e,t=!0){let n=new Map(e.map(e=>[e.slug,e])),r=new Set,i=[];for(let e of Et){let t=[];for(let i of e.slugs){let e=n.get(i);e&&(t.push(e),r.add(i))}t.length>0&&i.push({id:e.id,label:e.label,icon:e.icon,modules:t,leaf:e.leaf})}let a=e.filter(e=>!r.has(e.slug)&&!Tt.has(e.slug));return a.length>0&&i.push({id:`other`,label:`Other`,icon:`Square`,modules:a}),i}var jt=`overview`,Mt=`xspeed`;function Nt(){return typeof window>`u`?null:window.wp?.i18n??null}function L(e,t=Mt){let n=Nt();return n?n.__(e,t):e}function Pt(e,...t){let n=Nt();if(n)return n.sprintf(e,...t);let r=0;return e.replace(/%[sd]/g,()=>String(t[r++]??``))}var Ft={},It=`xspeed:panels-changed`,Lt=`xspeed:tier-changed`,Rt=`xspeed:branding-changed`;function zt(e){return Ft[e]}function Bt(){typeof window>`u`||window.XSpeedPro||(window.XSpeedPro={panels:Ft,registerPanel(e,t){Ft[e]=t,window.dispatchEvent(new CustomEvent(It,{detail:{slug:e}}))},setTier(e){let t=window.XSpeedConfig;t&&(t.tier=e),window.dispatchEvent(new CustomEvent(Lt,{detail:{tier:e}}))},setBranding(e){let t=window.XSpeedConfig;t&&(t.branding=e),window.dispatchEvent(new CustomEvent(Rt,{detail:{branding:e}}))}})}function Vt(){let[e,t]=(0,y.useState)(0);return(0,y.useEffect)(()=>{let e=()=>t(e=>e+1);return window.addEventListener(It,e),()=>window.removeEventListener(It,e)},[]),e}var Ht={name:`xSpeed Cache`,footer_credit:null,hide_help_links:!1,logo_svg:null};function Ut(){let e=window.XSpeedConfig?.branding;return e?{...Ht,...e}:Ht}function R(){let[e,t]=(0,y.useState)(Ut);return(0,y.useEffect)(()=>{let e=()=>t(Ut());return window.addEventListener(Rt,e),()=>window.removeEventListener(Rt,e)},[]),e}function Wt(){return typeof window>`u`?`free`:window.XSpeedConfig?.tier??`free`}function Gt(){if(typeof window>`u`)return`not_installed`;let e=window.XSpeedConfig;return e?.proState?e.proState:qt()?`active`:`not_installed`}function Kt(){let[e,t]=(0,y.useState)(Wt);return(0,y.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>t(Wt());return window.addEventListener(Lt,e),()=>window.removeEventListener(Lt,e)},[]),e}function qt(){let e=Wt();return e===`pro`||e===`trial`}function Jt(){let[e,t]=(0,y.useState)(Gt);return(0,y.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>t(Gt());return window.addEventListener(Lt,e),()=>window.removeEventListener(Lt,e)},[]),e}var Yt=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='-12.5%20-6.2%2084.8%2084.8'%20fill='currentColor'%3e%3cpath%20d='M48.5785%2036.0175C49.1085%2036.0095%2049.5752%2036.0326%2050.0151%2036.0942C54.5584%2036.7301%2058.2798%2040.0242%2059.4625%2044.4568C59.8495%2045.9073%2059.8483%2047.7319%2059.8483%2051.3252C59.8483%2054.5498%2059.8493%2056.1876%2059.5156%2057.5401C58.4986%2061.6597%2055.2818%2064.8767%2051.1621%2065.8935C49.8096%2066.2274%2048.172%2066.2263%2044.9472%2066.2263H27.605L22.8577%2071.3378C21.8413%2072.432%2020.213%2072.6993%2018.9001%2071.9875C17.5872%2071.2756%2016.9228%2069.765%2017.2853%2068.3162L17.8083%2066.2257C14.8099%2066.2255%2012.5338%2066.2195%2010.7131%2066.0664C8.85549%2065.9102%207.46018%2065.6005%206.24471%2064.9812C4.09536%2063.8861%202.34772%2062.1383%201.25248%2059.989C0.62595%2058.7594%200.316091%2057.3455%200.16153%2055.4551C0.00710842%2053.5663%200.00702338%2051.1895%200.00690304%2048.0317L0.00662692%2040.2236H7.48311L26.4898%2040.3834C27.4111%2040.3913%2028.0706%2041.2763%2027.8149%2042.1614L20.2426%2068.3463C20.0955%2068.8549%2020.7483%2069.2025%2021.088%2068.7964L48.4749%2036.0666L48.5152%2036.0183L48.5785%2036.0175Z'/%3e%3cpath%20d='M40.3093%201.07568C41.635%20-0.187017%2043.6612%20-0.357074%2045.1792%200.666468C46.697%201.6902%2047.2986%203.63244%2046.6249%205.33481L46.2831%206.19741C49.6878%206.2672%2051.8385%206.51454%2053.6049%207.41454C55.7543%208.50975%2057.502%2010.2577%2058.5972%2012.4071C59.2237%2013.6367%2059.5337%2015.0508%2059.6881%2016.9412C59.8424%2018.8301%2059.8422%2021.207%2059.8422%2024.3649V32.521H51.6809L33.5137%2032.4287C32.5191%2032.4236%2031.8506%2031.4069%2032.2405%2030.4918L43.3822%204.34465C43.5955%203.84378%2042.9544%203.42105%2042.5781%203.8145L10.4605%2037.4094L10.0645%2037.4315L10.0607%2037.4317H10.0568C4.50287%2037.4325%202.60655e-05%2032.9302%206.13307e-08%2027.3763V21.8001C2.87832e-08%2017.8963%20-0.00154013%2015.9137%200.48597%2014.2963C1.59122%2010.6297%204.46019%207.76069%208.12674%206.65549C9.74417%206.16799%2011.7267%206.16952%2015.6306%206.16952H34.9617L40.3093%201.07568Z'/%3e%3c/svg%3e`;function Xt({className:e=`w-6 h-6 rounded shrink-0`,onDark:t=!1}){let n=R(),r=n.logo_svg?.trim(),i=n.name||`xSpeed Cache`,[a,o]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{o(!1)},[r]),r&&!a?r.startsWith(`<svg`)?(0,I.jsx)(`span`,{className:`inline-flex items-center justify-center ${e}`,role:`img`,"aria-label":i,dangerouslySetInnerHTML:{__html:r}}):(0,I.jsx)(`img`,{src:r,alt:i,className:e,onError:()=>o(!0)}):(0,I.jsx)(`img`,{src:Yt,alt:i,className:`${e} ${t?`invert`:`dark:invert`}`})}function Zt({activeGroup:e,onNavigate:t,onUpgrade:n,onManageLicense:r,modules:i=[]}){let a=R(),o=Jt(),s=e=>e.reduce((e,t)=>e+ +(i.find(e=>e.slug===t)?.settings?.enabled===!0),0),c=`group w-full flex items-center gap-3 px-3 py-2 rounded-control text-[13.5px] font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40`;return(0,I.jsxs)(`aside`,{className:`w-60 shrink-0 flex flex-col text-rail-text`,style:{background:`linear-gradient(180deg, var(--rail-top), var(--rail-bottom))`},children:[(0,I.jsxs)(`div`,{className:`h-14 shrink-0 flex items-center gap-2.5 px-4 border-b`,style:{borderColor:`var(--rail-edge)`},children:[(0,I.jsx)(Xt,{className:`w-6 h-6 rounded`,onDark:!0}),(0,I.jsx)(`span`,{className:`font-display font-semibold text-[15px] text-white truncate`,children:a.name})]}),(0,I.jsxs)(`nav`,{"aria-label":L(`Primary`),className:`flex-1 overflow-y-auto p-3 space-y-1`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:()=>t(jt),"aria-current":e===`overview`?`page`:void 0,className:e===`overview`?`${c} bg-primary text-on-primary shadow-primary-glow`:`${c} text-rail-text hover:text-white hover:bg-white/[.06]`,children:[(0,I.jsx)(Me,{size:16,className:`shrink-0`,"aria-hidden":`true`}),(0,I.jsx)(`span`,{className:`flex-1 text-left truncate`,children:L(`Overview`)})]}),(0,I.jsx)(`div`,{className:`pt-2`}),Et.map(n=>{let r=e===n.id,i=s(n.slugs);return(0,I.jsxs)(`button`,{type:`button`,onClick:()=>t(n.id),"aria-current":r?`page`:void 0,className:r?`${c} bg-primary text-on-primary shadow-primary-glow`:`${c} text-rail-text hover:text-white hover:bg-white/[.06]`,children:[(0,I.jsx)(Ct,{name:n.icon,size:16,className:`shrink-0`}),(0,I.jsx)(`span`,{className:`flex-1 text-left truncate`,children:n.label}),i>0&&(0,I.jsx)(`span`,{className:`shrink-0 text-[11px] tabular-nums ${r?`text-on-primary`:`text-rail-text`}`,children:i})]},n.id)})]}),(0,I.jsx)(`div`,{className:`p-3 border-t`,style:{borderColor:`var(--rail-edge)`},children:o===`active`?(0,I.jsxs)(`button`,{type:`button`,onClick:r,title:L(`Manage your license`),className:`w-full flex items-center gap-2.5 px-3 py-2 rounded-control text-[13px] font-medium text-rail-text hover:text-white hover:bg-white/[.06] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40`,children:[(0,I.jsx)(ee,{size:15,className:`shrink-0 text-success`,"aria-hidden":`true`}),(0,I.jsx)(`span`,{className:`flex-1 text-left`,children:L(`Pro Licensed`)}),(0,I.jsx)(T,{size:14,className:`shrink-0 opacity-50`,"aria-hidden":`true`})]}):(0,I.jsxs)(`button`,{type:`button`,onClick:o===`unlicensed`?r:n,className:`w-full flex items-center gap-2.5 px-3 py-2 rounded-control text-[13px] font-medium text-white bg-white/[.06] hover:bg-white/[.1] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/40`,children:[o===`unlicensed`?(0,I.jsx)(Ae,{size:15,className:`shrink-0 text-warning`,"aria-hidden":`true`}):(0,I.jsx)(rt,{size:15,className:`shrink-0 text-warning`,"aria-hidden":`true`}),(0,I.jsx)(`span`,{className:`flex-1 text-left`,children:L(o===`unlicensed`?`Activate License`:`Upgrade to Pro`)}),(0,I.jsx)(T,{size:14,className:`shrink-0 opacity-70`,"aria-hidden":`true`})]})})]})}var Qt=typeof navigator<`u`&&/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent||``)?`⌘K`:`Ctrl K`;function $t({crumb:e,onOpenSearch:t,onPurge:n,onPreload:r,onConnectHub:i,purging:a=!1,preloading:o=!1,hubConnected:s=!1,theme:c,onToggleTheme:l}){return(0,I.jsxs)(`header`,{className:`sticky top-0 z-30 h-14 shrink-0 flex items-center justify-between gap-3 px-4 sm:px-6 border-b border-line bg-paper`,children:[(0,I.jsxs)(`nav`,{"aria-label":L(`Breadcrumb`),className:`flex items-center gap-2 min-w-0`,children:[e.backLabel&&(0,I.jsxs)(`button`,{type:`button`,onClick:e.onBack,className:`inline-flex items-center gap-1 shrink-0 rounded-control px-2 py-1 text-[13px] text-ink-soft hover:text-ink hover:bg-panel transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,children:[(0,I.jsx)(A,{size:15,"aria-hidden":`true`}),e.backLabel]}),e.backLabel&&(0,I.jsx)(`span`,{className:`text-faint shrink-0`,"aria-hidden":`true`,children:`/`}),(0,I.jsx)(`span`,{className:`truncate text-[14px] font-medium text-ink`,children:e.current})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:t,"aria-label":L(`Search`),"aria-keyshortcuts":`Meta+K Control+K`,className:`inline-flex items-center gap-2 rounded-control border border-line px-2.5 py-1.5 text-[12.5px] text-muted hover:text-ink hover:bg-panel transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,children:[(0,I.jsx)(Xe,{size:14,"aria-hidden":`true`}),(0,I.jsx)(`span`,{className:`hidden md:inline`,children:L(`Search`)}),(0,I.jsx)(`kbd`,{className:`hidden md:inline-flex items-center h-[18px] px-1 rounded text-[10px] font-medium bg-panel text-muted`,children:Qt})]}),(0,I.jsxs)(`button`,{type:`button`,onClick:n,disabled:a,className:`inline-flex items-center gap-2 rounded-control px-3 py-1.5 text-[13px] font-medium bg-primary text-on-primary shadow-primary-glow hover:bg-primary-hover transition-colors disabled:opacity-60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-1`,children:[(0,I.jsx)(P,{size:14,className:a?`xspeed-anim-spin animate-spin`:``,"aria-hidden":`true`}),L(`Purge all`)]}),(0,I.jsxs)(`button`,{type:`button`,onClick:r,disabled:o,className:`inline-flex items-center gap-2 rounded-control px-3 py-1.5 text-[13px] font-medium border border-line-strong text-ink hover:bg-panel transition-colors disabled:opacity-60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,children:[(0,I.jsx)(Ge,{size:14,className:o?`animate-pulse`:``,"aria-hidden":`true`}),L(`Preload`)]}),(0,I.jsxs)(`button`,{type:`button`,onClick:i,className:`hidden sm:inline-flex items-center gap-1.5 rounded-pill px-3 py-1.5 text-[12.5px] text-ink-soft hover:text-ink hover:bg-panel transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,children:[(0,I.jsx)(ce,{size:14,"aria-hidden":`true`}),L(s?`Hub connected`:`Connect Hub`),s&&(0,I.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-success`,"aria-hidden":`true`})]}),(0,I.jsx)(`button`,{type:`button`,onClick:l,"aria-label":L(c===`dark`?`Switch to light mode`:`Switch to dark mode`),className:`inline-flex items-center justify-center w-8 h-8 rounded-control text-ink-soft hover:text-ink hover:bg-panel transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,children:c===`dark`?(0,I.jsx)(ot,{size:16,"aria-hidden":`true`}):(0,I.jsx)(Le,{size:16,"aria-hidden":`true`})})]})]})}function en(e){if(e.locked)return`locked`;let t=e.settings?.enabled;return typeof t==`boolean`?t?`on`:`off`:null}function tn({state:e}){return e===`locked`?(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-pill px-2 py-0.5 text-[11px] font-medium bg-primary-tint text-primary`,children:[(0,I.jsx)(Ie,{size:11,"aria-hidden":`true`}),` `,L(`Pro`)]}):e===`on`?(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-pill px-2 py-0.5 text-[11px] font-medium bg-success-tint text-success`,children:[(0,I.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-success`,"aria-hidden":`true`}),` `,L(`On`)]}):e===`off`?(0,I.jsx)(`span`,{className:`rounded-pill px-2 py-0.5 text-[11px] font-medium bg-panel text-muted`,children:L(`Off`)}):null}function nn({groupId:e,modules:t,onOpen:n}){let r=Ot(e);if(!r)return null;let i=r.slugs.map(e=>{if(e===`logs`)return{slug:e,label:L(`Logs`),description:L(`Recent cache and settings activity.`),icon:`Activity`,state:null};let n=t.find(t=>t.slug===e);return n?{slug:e,label:n.label??e,description:n.description??``,icon:n.icon??`Square`,state:en(n)}:null}).filter(e=>e!==null),a=i.filter(e=>e.state!==null).length,o=i.filter(e=>e.state===`on`).length;return(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`p`,{className:`text-[12px] font-medium uppercase tracking-wide text-muted`,children:r.label}),(0,I.jsxs)(`div`,{className:`mt-1 flex items-baseline gap-3 flex-wrap`,children:[(0,I.jsx)(`h1`,{className:`font-display text-[22px] font-semibold text-ink`,children:r.description??r.label}),a>0&&(0,I.jsxs)(`span`,{className:`text-[13px] text-muted tabular-nums`,children:[o,` `,L(`of`),` `,a,` `,L(`on`)]})]}),(0,I.jsx)(`div`,{className:`mt-5 grid gap-4 grid-cols-[repeat(auto-fill,minmax(260px,1fr))]`,children:i.map(e=>(0,I.jsxs)(`button`,{type:`button`,onClick:()=>n(e.slug),className:`text-left rounded-card border border-line bg-paper p-4 transition-all hover:border-line-strong hover:-translate-y-0.5 hover:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,children:[(0,I.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,I.jsx)(`span`,{className:`inline-flex items-center justify-center w-9 h-9 rounded-control bg-panel text-ink-soft`,children:e.icon===`Activity`?(0,I.jsx)(S,{size:17}):(0,I.jsx)(Ct,{name:e.icon,size:17})}),(0,I.jsx)(tn,{state:e.state})]}),(0,I.jsx)(`p`,{className:`mt-3 text-[15px] font-semibold text-ink`,children:e.label}),e.description&&(0,I.jsx)(`p`,{className:`mt-1 text-[13px] leading-relaxed text-ink-soft line-clamp-2`,children:e.description})]},e.slug))})]})}function rn(e){if(e.locked)return`locked`;let t=e.settings?.enabled;return typeof t==`boolean`?t?`on`:`off`:null}function an({state:e}){return e===`locked`?(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-pill px-2.5 py-0.5 text-[12px] font-medium bg-primary-tint text-primary`,children:[(0,I.jsx)(Ie,{size:12,"aria-hidden":`true`}),` `,L(`Pro`)]}):e===`on`?(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-pill px-2.5 py-0.5 text-[12px] font-medium bg-success-tint text-success`,children:[(0,I.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-success`,"aria-hidden":`true`}),` `,L(`On`)]}):e===`off`?(0,I.jsx)(`span`,{className:`rounded-pill px-2.5 py-0.5 text-[12px] font-medium bg-panel text-muted`,children:L(`Off`)}):null}function on({module:e,eyebrow:t}){return(0,I.jsxs)(`div`,{children:[t&&(0,I.jsx)(`p`,{className:`text-[12px] font-medium uppercase tracking-wide text-muted`,children:t}),(0,I.jsxs)(`div`,{className:`mt-1 flex items-center gap-3 flex-wrap`,children:[(0,I.jsx)(`h1`,{className:`font-display text-[22px] font-semibold text-ink`,children:e.label}),(0,I.jsx)(an,{state:rn(e)})]}),e.description&&(0,I.jsx)(`p`,{className:`mt-1 text-[13px] leading-relaxed text-ink-soft max-w-2xl`,children:e.description})]})}var sn=window.XSpeedConfig;async function z(e,t={}){let n=await fetch(`${sn.restUrl}${e}`,{...t,headers:{"Content-Type":`application/json`,"X-WP-Nonce":sn.nonce,...t.headers||{}},credentials:`same-origin`});if(!n.ok)throw Error(`HTTP ${n.status}`);return n.json()}var B={request:(e,t={})=>z(e,t),getStatus:()=>z(`/status`),getSettings:()=>z(`/settings`),getModules:()=>z(`/modules`),getBranding:()=>z(`/branding`),updateSettings:e=>z(`/settings`,{method:`POST`,body:JSON.stringify(e)}),toggleCache:e=>z(`/cache/toggle`,{method:`POST`,body:JSON.stringify({enabled:e})}),purge:()=>z(`/cache/purge`,{method:`POST`}),preload:()=>z(`/preloader/start`,{method:`POST`}),getRecommendations:()=>z(`/recommendations`),applyRecommendation:e=>z(`/recommendations/apply`,{method:`POST`,body:JSON.stringify({id:e})}),getProAudit:()=>z(`/audit/pro`),getActivity:()=>z(`/activity`),mobileEqualityProbe:()=>z(`/cache/mobile-probe`,{method:`POST`}),dismissMobileReview:()=>z(`/cache/mobile-review-dismiss`,{method:`POST`}),onboardingApply:e=>z(`/onboarding/apply`,{method:`POST`,body:JSON.stringify(e)}),onboardingComplete:()=>z(`/onboarding/complete`,{method:`POST`}),getModuleSettings:e=>z(`/${e}/`),updateModuleSettings:(e,t)=>z(`/${e}/`,{method:`POST`,body:JSON.stringify(t)})};function cn(e){return Math.round(Number(e??0)).toLocaleString()}function ln(e){let t=Number(e??0),n=t<=1?t*100:t;return`${Math.round(n)}%`}function un(e){let t=Math.max(0,Math.floor(Date.now()/1e3)-Number(e||0));if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);return i<30?`${i}d ago`:`${Math.floor(i/30)}mo ago`}function dn(e){let t=Number(e??0);if(t<=0)return`0 KB`;let n=[`B`,`KB`,`MB`,`GB`,`TB`],r=Math.min(n.length-1,Math.floor(Math.log(t)/Math.log(1024))),i=t/1024**r;return`${r>=2?Math.round(i*10)/10:Math.round(i)} ${n[r]}`}function fn(e){switch(e){case`success`:return`bg-success`;case`warn`:return`bg-warning`;case`error`:return`bg-danger`;default:return`bg-line-strong`}}function pn(){let[e,t]=(0,y.useState)(null);return(0,y.useEffect)(()=>{let e=!0;return B.getActivity().then(n=>{e&&t(n.activity??[])}).catch(()=>{e&&t([])}),()=>{e=!1}},[]),(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`p`,{className:`text-[12px] font-medium uppercase tracking-wide text-muted`,children:L(`Tools`)}),(0,I.jsx)(`h1`,{className:`mt-1 font-display text-[22px] font-semibold text-ink`,children:L(`Logs`)}),(0,I.jsx)(`p`,{className:`mt-1 text-[13px] text-ink-soft`,children:L(`Recent cache and settings activity on this site.`)}),(0,I.jsx)(`div`,{className:`mt-5 rounded-card border border-line bg-paper overflow-hidden`,children:e===null?(0,I.jsxs)(`div`,{className:`p-4 space-y-2`,"aria-busy":`true`,children:[(0,I.jsx)(`span`,{className:`block h-4 rounded bg-panel animate-pulse`}),(0,I.jsx)(`span`,{className:`block h-4 w-2/3 rounded bg-panel animate-pulse`})]}):e.length===0?(0,I.jsx)(`div`,{className:`p-8 text-center text-[13px] text-muted`,children:L(`No activity recorded yet.`)}):(0,I.jsx)(`ul`,{className:`divide-y divide-line`,children:e.map((e,t)=>(0,I.jsxs)(`li`,{className:`flex items-center gap-3 px-4 py-2.5`,children:[(0,I.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full shrink-0 ${fn(e.severity)}`,"aria-hidden":`true`}),(0,I.jsx)(`span`,{className:`flex-1 min-w-0 truncate text-[13.5px] text-ink`,children:e.message}),(0,I.jsx)(`span`,{className:`shrink-0 text-[11px] text-muted tabular-nums font-mono`,children:un(e.ts)})]},`${e.ts}-${t}`))})})]})}function mn(){return(0,I.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center gap-5 px-6`,role:`status`,"aria-label":L(`Loading`),children:[(0,I.jsx)(Xt,{className:`w-12 h-12 rounded-card shrink-0 motion-safe:animate-pulse`}),(0,I.jsxs)(`div`,{className:`w-full max-w-[220px] space-y-2.5`,children:[(0,I.jsx)(`div`,{className:`h-3 rounded bg-line motion-safe:animate-pulse mx-auto w-1/2`}),(0,I.jsx)(`div`,{className:`h-2.5 rounded bg-panel motion-safe:animate-pulse w-full`}),(0,I.jsx)(`div`,{className:`h-2.5 rounded bg-panel motion-safe:animate-pulse w-5/6 mx-auto`})]}),(0,I.jsx)(`span`,{className:`sr-only`,children:L(`Loading…`)})]})}function hn({message:e}){return(0,I.jsx)(`div`,{className:`fixed bottom-6 left-1/2 -translate-x-1/2 bg-neutral-900 dark:bg-neutral-50 text-white dark:text-neutral-900 text-[13px] px-4 py-2 rounded shadow-sm z-50`,children:e})}function gn({checked:e,onChange:t,size:n=`md`,label:r=`Toggle`}){let i=n===`lg`?{track:`w-11 h-6`,dot:`w-5 h-5`,tx:`translate-x-[22px]`,off:`translate-x-0.5`}:{track:`w-9 h-5`,dot:`w-4 h-4`,tx:`translate-x-[18px]`,off:`translate-x-0.5`};return(0,I.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e?`true`:`false`,"aria-label":r,title:r,onClick:()=>t(!e),className:`relative inline-flex shrink-0 ${i.track} items-center rounded-full transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-1 ${e?`bg-primary`:`bg-line-strong`}`,children:(0,I.jsx)(`span`,{className:`inline-block ${i.dot} transform rounded-full bg-white shadow-sm transition-transform duration-150 ${e?i.tx:i.off}`})})}function _n(e){if(!e.module)return`#`;let t=`#${e.module}`;e.subtab&&(t+=`/${e.subtab}`);let n=[];return e.focus&&n.push(`focus=${encodeURIComponent(e.focus)}`),e.suggest!==void 0&&e.suggest!==null&&n.push(`suggest=${encodeURIComponent(String(e.suggest))}`),n.length>0&&(t+=`?${n.join(`&`)}`),t}function vn(e){let[t=``,n=``]=(e||``).replace(/^#/,``).split(`?`),[r=``,i=``]=t.split(`/`),a={module:r};i&&(a.subtab=i);for(let e of n.split(`&`)){if(!e)continue;let t=e.indexOf(`=`);if(t<0)continue;let n=e.slice(0,t),r=decodeURIComponent(e.slice(t+1));n===`focus`&&r&&(a.focus=r),n===`suggest`&&r!==``&&(a.suggest=r)}return a}function yn(e){if(!e)return null;let t=e.indexOf(`:`);return t<=0||t===e.length-1?null:{module:e.slice(0,t),field:e.slice(t+1)}}var bn={info:{border:`border-line`,bg:`bg-info-tint`,iconColor:`text-info`,titleColor:`text-on-tint`,bodyColor:`text-ink-soft`,preBorder:`border-line`,preBg:`bg-paper`,preText:`text-ink`,copyBtnBorder:`border-line-strong`,copyBtnBg:`bg-paper`,copyBtnText:`text-primary`,copyBtnHover:`hover:bg-panel`,Icon:ke},warn:{border:`border-amber-200 dark:border-amber-900/60`,bg:`bg-amber-50 dark:bg-amber-950/40`,iconColor:`text-amber-600 dark:text-amber-400`,titleColor:`text-amber-900 dark:text-amber-200`,bodyColor:`text-amber-800/90 dark:text-amber-200/80`,preBorder:`border-amber-200 dark:border-amber-900/60`,preBg:`bg-white dark:bg-neutral-900`,preText:`text-neutral-800 dark:text-neutral-200`,copyBtnBorder:`border-amber-300 dark:border-amber-800`,copyBtnBg:`bg-white dark:bg-neutral-900`,copyBtnText:`text-amber-800 dark:text-amber-200`,copyBtnHover:`hover:bg-amber-100 dark:hover:bg-amber-900/40`,Icon:dt},danger:{border:`border-red-200 dark:border-red-900/60`,bg:`bg-red-50 dark:bg-red-950/40`,iconColor:`text-red-600 dark:text-red-400`,titleColor:`text-red-900 dark:text-red-200`,bodyColor:`text-red-800/90 dark:text-red-200/80`,preBorder:`border-red-200 dark:border-red-900/60`,preBg:`bg-white dark:bg-neutral-900`,preText:`text-neutral-800 dark:text-neutral-200`,copyBtnBorder:`border-red-300 dark:border-red-800`,copyBtnBg:`bg-white dark:bg-neutral-900`,copyBtnText:`text-red-800 dark:text-red-200`,copyBtnHover:`hover:bg-red-100 dark:hover:bg-red-900/40`,Icon:ae},success:{border:`border-emerald-200 dark:border-emerald-900/60`,bg:`bg-emerald-50 dark:bg-emerald-950/40`,iconColor:`text-emerald-600 dark:text-emerald-400`,titleColor:`text-emerald-900 dark:text-emerald-200`,bodyColor:`text-emerald-800/90 dark:text-emerald-200/80`,preBorder:`border-emerald-200 dark:border-emerald-900/60`,preBg:`bg-white dark:bg-neutral-900`,preText:`text-neutral-800 dark:text-neutral-200`,copyBtnBorder:`border-emerald-300 dark:border-emerald-800`,copyBtnBg:`bg-white dark:bg-neutral-900`,copyBtnText:`text-emerald-800 dark:text-emerald-200`,copyBtnHover:`hover:bg-emerald-100 dark:hover:bg-emerald-900/40`,Icon:oe}};function V({tone:e,title:t,body:n,snippet:r,action:i}){let a=bn[e],[o,s]=(0,y.useState)(!1);return(0,I.jsx)(`div`,{className:`border ${a.border} ${a.bg} rounded-lg p-4 sm:p-5`,children:(0,I.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[(0,I.jsx)(a.Icon,{size:16,className:`${a.iconColor} shrink-0 mt-0.5`}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`div`,{className:`font-medium ${a.titleColor} text-[13px]`,children:t}),n&&(0,I.jsx)(`p`,{className:`text-[12px] ${a.bodyColor} mt-1`,children:n}),r&&(0,I.jsxs)(`div`,{className:`mt-3 relative`,children:[(0,I.jsx)(`pre`,{className:`text-[11px] font-mono ${a.preBg} border ${a.preBorder} rounded p-3 overflow-x-auto whitespace-pre ${a.preText}`,children:r}),(0,I.jsxs)(`button`,{type:`button`,onClick:async()=>{r&&(await navigator.clipboard.writeText(r),s(!0),setTimeout(()=>s(!1),1500))},className:`absolute top-2 right-2 flex items-center gap-1 text-[11px] px-2 py-1 rounded border ${a.copyBtnBorder} ${a.copyBtnBg} ${a.copyBtnText} ${a.copyBtnHover} transition-colors`,children:[o?(0,I.jsx)(O,{size:11}):(0,I.jsx)(le,{size:11}),o?`Copied`:`Copy`]})]}),i&&(0,I.jsxs)(`a`,{href:_n(i),className:`mt-3 inline-flex items-center gap-1.5 text-[12px] px-2.5 py-1 rounded border ${a.copyBtnBorder} ${a.copyBtnBg} ${a.copyBtnText} ${a.copyBtnHover} transition-colors`,children:[i.label,(0,I.jsx)(w,{size:12})]})]})]})})}function xn(){return window.wp?.media}function Sn({value:e,onChange:t,label:n}){let r=xn(),i=()=>{if(!r)return;let e=r({title:n,button:{text:`Use this image`},library:{type:`image`},multiple:!1});e.on(`select`,()=>{let n=e.state().get(`selection`).first();n&&t(n.toJSON().url)}),e.open()};return r?(0,I.jsx)(`div`,{className:`flex items-center gap-2`,children:e?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`img`,{src:e,alt:n,className:`w-8 h-8 rounded object-contain border border-neutral-200 dark:border-neutral-700 bg-white`}),(0,I.jsx)(`button`,{type:`button`,onClick:i,className:`text-[12px] px-2.5 py-1 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors`,children:`Change`}),(0,I.jsx)(`button`,{type:`button`,onClick:()=>t(``),"aria-label":`Remove ${n}`,className:`text-neutral-400 hover:text-red-600 dark:hover:text-red-400 transition-colors`,children:(0,I.jsx)(_t,{size:14})})]}):(0,I.jsxs)(`button`,{type:`button`,onClick:i,className:`text-[12px] px-2.5 py-1 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors inline-flex items-center gap-1.5`,children:[(0,I.jsx)(Ee,{size:13}),`Select image`]})}):(0,I.jsx)(`input`,{type:`url`,value:e??``,onChange:e=>t(e.target.value),className:`w-56`,"aria-label":n,placeholder:`https://…`})}function Cn({title:e,body:t}){let[n,r]=(0,y.useState)(null),i=(0,y.useRef)(null),a=(0,y.useRef)(null),o=(0,y.useId)(),s=n!==null,c=()=>{let e=i.current;if(!e)return;let t=e.getBoundingClientRect();r({top:t.bottom+6,left:t.left})};return(0,y.useEffect)(()=>{if(!s)return;let e=e=>{!a.current?.contains(e.target)&&!i.current?.contains(e.target)&&r(null)},t=e=>{e.key===`Escape`&&r(null)},n=()=>r(null);return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),window.addEventListener(`scroll`,n,!0),window.addEventListener(`resize`,n),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t),window.removeEventListener(`scroll`,n,!0),window.removeEventListener(`resize`,n)}},[s]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`button`,{ref:i,type:`button`,onClick:()=>s?r(null):c(),"aria-expanded":s,"aria-label":e?`Info: ${e}`:`More information`,className:`inline-flex items-center justify-center text-neutral-400 hover:text-accent dark:hover:text-primary transition-colors align-middle`,children:(0,I.jsx)(ke,{size:14})}),s&&typeof document<`u`&&(0,F.createPortal)((0,I.jsxs)(`div`,{ref:a,role:`dialog`,"aria-labelledby":e?o:void 0,style:{position:`fixed`,top:n.top,left:n.left,zIndex:60},className:`w-[min(20rem,calc(100vw-2rem))] rounded-md bg-white dark:bg-neutral-900 border border-neutral-200 dark:border-neutral-700 shadow-md p-3`,children:[e&&(0,I.jsx)(`div`,{id:o,className:`text-[12px] font-medium text-neutral-900 dark:text-neutral-50 mb-1`,children:e}),(0,I.jsx)(`p`,{className:`text-[12px] leading-relaxed text-neutral-600 dark:text-neutral-400`,children:t})]}),document.getElementById(`xspeed-app`)??document.body)]})}var wn={ok:`bg-success`,warn:`bg-warning`,fail:`bg-danger`,info:`bg-line-strong`};function Tn({tone:e,label:t,labelAfter:n,detail:r,trailing:i,first:a=!1}){return(0,I.jsxs)(`div`,{className:`flex items-start gap-3 px-4 sm:px-5 py-3.5 ${a?``:`border-t border-line`}`,children:[(0,I.jsx)(`span`,{className:`w-2 h-2 rounded-full mt-1.5 shrink-0 ${wn[e]}`}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxs)(`div`,{className:`inline-flex items-center gap-1.5 text-[13px] font-medium text-ink`,children:[(0,I.jsx)(`span`,{children:t}),n]}),r!=null&&r!==``&&(0,I.jsx)(`div`,{className:`text-[12px] text-muted mt-0.5`,children:r})]}),i&&(0,I.jsx)(`div`,{className:`shrink-0`,children:i})]})}function En({content:e,tone:t=`neutral`}){let[n,r]=(0,y.useState)(!1);return(0,I.jsxs)(`div`,{className:`relative rounded ${t===`amber`?`bg-white dark:bg-neutral-900 border border-amber-200 dark:border-amber-900/60`:t===`blue`?`bg-primary-tint border border-line`:`bg-neutral-50 dark:bg-neutral-950 border border-neutral-200 dark:border-neutral-800`}`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:async()=>{try{await navigator.clipboard.writeText(e),r(!0),window.setTimeout(()=>r(!1),1800)}catch{}},className:`absolute top-2 right-2 inline-flex items-center gap-1 text-[11px] px-2 py-1 rounded border border-neutral-300 dark:border-neutral-700 bg-white/90 dark:bg-neutral-800/90 text-neutral-700 dark:text-neutral-200 hover:bg-neutral-100 dark:hover:bg-neutral-700 transition-colors`,"aria-label":n?`Snippet copied`:`Copy snippet`,children:[n?(0,I.jsx)(O,{size:12}):(0,I.jsx)(le,{size:12}),n?`Copied`:`Copy`]}),(0,I.jsx)(`pre`,{className:`text-[11px] font-mono p-3 pr-16 overflow-x-auto whitespace-pre text-neutral-800 dark:text-neutral-200`,children:e})]})}function Dn(e){if(!e)return`Never`;let t=Math.floor(Date.now()/1e3)-e;return t<60?`${t}s ago`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}var On={info:`bg-neutral-300 dark:bg-neutral-600`,warn:`bg-amber-500`,error:`bg-red-500`,success:`bg-emerald-500`};function kn({module:e}){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(null);if((0,y.useEffect)(()=>{B.getModuleSettings(`health`).then(n).catch(e=>i(e instanceof Error?e.message:`Failed to load`))},[]),r)return(0,I.jsx)(`div`,{className:`text-[12px] text-red-600 dark:text-red-400`,children:r});if(!t)return(0,I.jsx)(`div`,{className:`text-[13px] text-neutral-500 dark:text-neutral-400`,children:`Loading…`});let{checks:a,stats:o,buckets:s,activity:c}=t;return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(An,{stats:o,buckets:s}),(0,I.jsx)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg overflow-hidden`,children:a.map((e,t)=>(0,I.jsxs)(`div`,{children:[(0,I.jsx)(Tn,{first:t===0,tone:e.tone,label:e.label,detail:e.detail,labelAfter:e.id===`static_rewrite_nginx`?(0,I.jsx)(Cn,{title:`Good to know`,body:`You added this snippet to your nginx config yourself, so it's yours to manage — xSpeed never touches it. If you ever need to uninstall xSpeed, just remove this snippet from your nginx config first to keep everything tidy and your server running happily.`}):void 0}),e.snippet&&(0,I.jsx)(`div`,{className:`px-4 pb-4 pt-1 border-b border-neutral-200 dark:border-neutral-800 last:border-b-0`,children:(0,I.jsx)(En,{content:e.snippet})})]},e.id))}),(0,I.jsx)(Mn,{activity:c})]})}function An({stats:e,buckets:t}){let n=e.hits_24h+e.misses_24h,r=n>0?Math.round(e.hit_ratio*100):0;return(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-5`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,I.jsx)(`div`,{className:`text-[11px] uppercase tracking-wider text-neutral-500 dark:text-neutral-400 font-medium`,children:`Hit ratio · 24h`}),(0,I.jsx)(S,{size:14,className:`text-neutral-400 dark:text-neutral-500`})]}),(0,I.jsxs)(`div`,{className:`flex items-baseline gap-3 mb-3`,children:[(0,I.jsx)(`div`,{className:`text-[28px] font-semibold text-neutral-900 dark:text-neutral-50 leading-none`,children:n>0?`${r}%`:`—`}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400`,children:n>0?`${e.hits_24h} hits · ${e.misses_24h} misses`:`No traffic captured in the last 24h yet.`})]}),(0,I.jsx)(jn,{buckets:t})]})}function jn({buckets:e}){if(!e.length)return(0,I.jsx)(`div`,{className:`h-8`});let t=Math.max(1,...e.map(e=>e.hits+e.misses)),n=480/Math.max(e.length-1,1),r=e.map((e,r)=>{let i=32-(e.hits+e.misses)/t*28-2;return`${(r*n).toFixed(1)},${i.toFixed(1)}`}).join(` `);return(0,I.jsx)(`svg`,{viewBox:`0 0 480 32`,preserveAspectRatio:`none`,className:`w-full h-8 text-accent`,role:`img`,"aria-label":`24-hour cache request volume`,children:(0,I.jsx)(`polyline`,{points:r,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})})}function Mn({activity:e}){return e.length===0?(0,I.jsx)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-5 text-center text-[13px] text-neutral-500 dark:text-neutral-400`,children:`No activity yet.`}):(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg overflow-hidden`,children:[(0,I.jsxs)(`div`,{className:`px-4 sm:px-5 py-3 border-b border-neutral-200 dark:border-neutral-800`,children:[(0,I.jsx)(`div`,{className:`font-medium text-[13px] text-neutral-900 dark:text-neutral-50`,children:`Recent activity`}),(0,I.jsxs)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400 mt-0.5`,children:[`Most recent `,e.length,` event`,e.length===1?``:`s`,` captured by the cache engine.`]})]}),(0,I.jsx)(`ul`,{className:`divide-y divide-neutral-200 dark:divide-neutral-800`,children:e.map((e,t)=>(0,I.jsxs)(`li`,{className:`px-4 sm:px-5 py-3 flex items-start gap-3`,children:[(0,I.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full mt-2 shrink-0 ${On[e.severity]}`}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1 flex items-baseline justify-between gap-3`,children:[(0,I.jsx)(`div`,{className:`text-[13px] text-neutral-700 dark:text-neutral-300 min-w-0 truncate`,children:e.message}),(0,I.jsx)(`div`,{className:`text-[11px] text-neutral-500 dark:text-neutral-400 shrink-0`,children:Dn(e.ts)})]})]},`${e.ts}-${t}`))})]})}var Nn=52,Pn=2*Math.PI*Nn;function Fn({percent:e,label:t}){let n=Math.max(0,Math.min(100,Math.round(e))),[r,i]=(0,y.useState)(!1);(0,y.useEffect)(()=>{let e=window.requestAnimationFrame(()=>i(!0));return()=>window.cancelAnimationFrame(e)},[]);let a=r?Pn*(1-n/100):Pn;return(0,I.jsxs)(`div`,{className:`relative inline-flex items-center justify-center`,role:`img`,"aria-label":`${t}: ${n}%`,children:[(0,I.jsxs)(`svg`,{width:`128`,height:`128`,viewBox:`0 0 128 128`,children:[(0,I.jsx)(`circle`,{cx:`64`,cy:`64`,r:Nn,fill:`none`,stroke:`var(--panel)`,strokeWidth:`10`}),(0,I.jsx)(`circle`,{cx:`64`,cy:`64`,r:Nn,fill:`none`,stroke:`var(--primary)`,strokeWidth:`10`,strokeLinecap:`round`,strokeDasharray:Pn,strokeDashoffset:a,transform:`rotate(-90 64 64)`,style:{transition:`stroke-dashoffset 900ms ease-out`}})]}),(0,I.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center`,children:[(0,I.jsxs)(`span`,{className:`font-display text-[26px] font-semibold text-ink tabular-nums`,children:[n,`%`]}),(0,I.jsx)(`span`,{className:`text-[11px] text-muted`,children:t})]})]})}function In({getModule:e}){let t=window.XSpeedConfig?.bootstrap,n=t?.status?.stats,r=t?.settings?.cache_enabled===!0,i=parseInt(ln(n?.hit_ratio),10)||0,a=t=>e?.(t)?.settings?.enabled===!0,o=[r,a(`object-cache`),a(`browser-cache`),a(`preloader`)],s=Math.round(o.filter(Boolean).length/o.length*100),c=(n?.hits_24h??0)+(n?.misses_24h??0),l=[{label:L(`Cache coverage`),value:`${s}%`,hint:L(`of cache features on`)},{label:L(`Cached pages`),value:cn(n?.cached_pages),hint:L(`served without PHP`)},{label:L(`Cache size`),value:dn(n?.cache_size),hint:L(`on disk`)},{label:L(`Requests (24h)`),value:cn(c),hint:L(`hits + misses`)}];return(0,I.jsx)(`section`,{className:`rounded-card border border-line bg-paper p-5`,"aria-label":L(`Health summary`),children:(0,I.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center gap-6`,children:[(0,I.jsx)(Fn,{percent:i,label:L(`Hit ratio`)}),(0,I.jsx)(`div`,{className:`flex-1 grid grid-cols-2 lg:grid-cols-4 gap-4 w-full`,children:l.map(e=>(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`p`,{className:`text-[12px] text-ink-soft`,children:e.label}),(0,I.jsx)(`p`,{className:`mt-0.5 font-display text-[20px] font-semibold text-ink tabular-nums`,children:e.value}),(0,I.jsx)(`p`,{className:`text-[11px] text-muted`,children:e.hint})]},e.label))})]})})}function Ln({items:e,value:t,onChange:n,idBase:r}){let i=(0,y.useId)(),a=r??i;function o(r){let i=e.findIndex(e=>e.key===t);if(i===-1)return;let a=e[(i+r+e.length)%e.length];n(a.key)}return(0,I.jsx)(`div`,{role:`tablist`,className:`flex items-center gap-1 border-b border-neutral-200 dark:border-neutral-800`,onKeyDown:e=>{e.key===`ArrowRight`?(e.preventDefault(),o(1)):e.key===`ArrowLeft`&&(e.preventDefault(),o(-1))},children:e.map(e=>{let r=e.key===t;return(0,I.jsx)(`button`,{id:Rn(a,e.key),role:`tab`,type:`button`,"aria-selected":r,"aria-controls":zn(a,e.key),tabIndex:r?0:-1,onClick:()=>n(e.key),className:`text-[12px] px-3 py-1.5 -mb-px border-b-2 transition-colors ${r?`border-accent text-neutral-900 dark:text-neutral-50 font-medium`:`border-transparent text-neutral-500 dark:text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-200`} ${e.locked?`opacity-70`:``}`,children:(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[e.label,e.locked&&(0,I.jsx)(`span`,{"aria-hidden":`true`,className:`inline-block w-[10px] h-[10px] rounded-[2px] bg-amber-400/80`,title:`Pro`})]})},e.key)})})}function Rn(e,t){return`xspeed-tab-${e}-${t}`}function zn(e,t){return`xspeed-tabpanel-${e}-${t}`}var Bn=`https://xspeedcache.com/pricing/`,Vn=`admin.php?page=xspeed#/settings/license`,Hn={"critical-css":{id:`critical-css`,icon:`Sparkles`,title:`Critical CSS`,body:`Inline above-the-fold styles and defer the rest. Cuts first paint on theme-heavy pages by 30-60%.`},"unused-css":{id:`unused-css`,icon:`Scissors`,title:`Remove Unused CSS`,body:`Per-URL pruned stylesheet inlined; original <link> tags stripped. Pairs with Critical CSS.`},"webp-avif":{id:`webp-avif`,icon:`Replace`,title:`Auto WebP / AVIF on upload`,body:`New JPEG/PNG uploads get .webp + .avif siblings; browsers that support modern formats get them automatically.`},"cloudflare-apo":{id:`cloudflare-apo`,icon:`Zap`,title:`Cloudflare APO + edge cache`,body:`Toggle Automatic Platform Optimization right from here, set edge cache TTL, no separate dashboard.`},"feed-cache":{id:`feed-cache`,icon:`Rss`,title:`Feed caching`,body:`Cache RSS / Atom / comment feeds so aggregators polling your feed skip a full render — with the correct feed content-type preserved and auto-purge on new posts.`},"cache-404":{id:`cache-404`,icon:`FileX`,title:`404 caching`,body:`Serve one short-lived cached 404 so bot and scanner floods on nonexistent URLs don't each trigger a full render. Shared entry, correct 404 status, purged when you publish.`},"search-cache":{id:`search-cache`,icon:`Search`,title:`Search caching`,body:`Cache internal search-results pages (/?s=…) so popular repeated searches skip a full query + render. Keyed per term, short-lived, and purged when you publish new content.`},"rest-cache":{id:`rest-cache`,icon:`Webhook`,title:`REST API per-route cache`,body:`Cache read-only REST responses with a TTL you set per route — ideal for headless front-ends and app backends. Authenticated and write requests are never cached.`},"prewarm-schedule":{id:`prewarm-schedule`,icon:`CalendarClock`,title:`Scheduled prewarming`,body:`Warm target URLs ahead of a post going live, a sale, or a campaign so the traffic spike hits a warm cache. One-off, recurring, and auto-warm when a scheduled post publishes.`},"predictive-warm":{id:`predictive-warm`,icon:`TrendingUp`,title:`Predictive warming`,body:`Proactively warm the pages most likely to be visited next — ranked by real traffic, recency, and content — so your hottest URLs are always served from cache, not a cold render.`},brotli:{id:`brotli`,icon:`Shrink`,title:`Brotli compression`,body:`Serve Brotli where the browser and server support it — typically 15-25% smaller than GZIP — with automatic GZIP fallback.`},rum:{id:`rum`,icon:`Eye`,title:`Real-User Monitoring`,body:`See actual LCP / CLS / INP from your visitors’ browsers, not synthetic Lighthouse. Per-URL percentiles.`},pagespeed:{id:`pagespeed`,icon:`Gauge`,title:`PageSpeed Insights, in-dashboard`,body:`Run Google PSI on any URL without leaving xSpeed. Scores + Core Web Vitals + cached for 24h.`},recommendations:{id:`recommendations`,icon:`Lightbulb`,title:`Smart recommendations`,body:`Pro audits your current settings + server state and surfaces the 5 things most likely to move your score.`},analytics:{id:`analytics`,icon:`BarChart3`,title:`Per-URL cache analytics`,body:`Slowest pages, hit-ratio chart, recent activity timeline. Powered by the RUM data you’re already collecting.`},migration:{id:`migration`,icon:`Import`,title:`One-click migration`,body:`Import settings from WP Rocket, W3 Total Cache, or WP Super Cache. No manual reconfiguration.`},"white-label":{id:`white-label`,icon:`Tag`,title:`White-label dashboard`,body:`Rebrand the plugin name, footer credit, and help links for client work.`},multisite:{id:`multisite`,icon:`Network`,title:`Multisite network view`,body:`One dashboard across every site in your network with per-site cache state and network-wide purge.`},"custom-rules":{id:`custom-rules`,icon:`Filter`,title:`Pattern-based cache rules`,body:`Bypass cache or override expiry by URL glob, post type, category, tag, or author — beyond per-post settings.`}};function Un({icon:e,title:t,description:n,teaser:r}){let i=r?Hn[r]:null,a=Jt()===`unlicensed`,o={card:`border-line bg-primary-tint`,iconWrap:`bg-paper border-line text-primary`,badge:`text-primary bg-paper border-line`,cta:`bg-primary hover:bg-primary-hover text-on-primary`};return(0,I.jsx)(`div`,{className:`border rounded-card p-4 sm:p-5 ${o.card}`,children:(0,I.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,I.jsx)(`div`,{className:`shrink-0 w-9 h-9 rounded-full border flex items-center justify-center ${o.iconWrap}`,children:(0,I.jsx)(Ct,{name:e,size:17})}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2 mb-0.5`,children:[(0,I.jsx)(`h3`,{className:`text-[14px] font-semibold text-ink`,children:t}),(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[10px] uppercase tracking-wider font-medium border rounded-full px-1.5 py-0.5 ${o.badge}`,children:[a?(0,I.jsx)(Ae,{size:9}):(0,I.jsx)(Ie,{size:9}),(0,I.jsx)(`span`,{children:L(a?`License`:`Pro`)})]})]}),n&&(0,I.jsx)(`p`,{className:`text-[12px] text-ink-soft leading-relaxed`,children:n}),i&&(0,I.jsx)(`p`,{className:`text-[12px] text-muted mt-2 leading-relaxed`,children:i.body}),a?(0,I.jsxs)(`a`,{href:Vn,className:`inline-flex items-center gap-1.5 mt-3 px-3 py-1.5 rounded-md text-[12px] font-medium transition-colors ${o.cta}`,children:[L(`Activate your license`),(0,I.jsx)(w,{size:12})]}):(0,I.jsxs)(`a`,{href:Bn,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 mt-3 px-3 py-1.5 rounded-md text-[12px] font-medium transition-colors ${o.cta}`,children:[L(`Upgrade to Pro`),(0,I.jsx)(w,{size:12})]})]})]})})}function H({panel:e,slug:t,getModule:n,onSaved:r,title:i,description:a,icon:o}){Vt();let s=Kt(),c=wt.find(e=>e.slug===t),l=(0,I.jsx)(Un,{icon:o??c?.icon??`Sparkles`,title:i??c?.label??t,description:a??c?.description,teaser:c?.teaser??void 0});if(s!==`pro`&&s!==`trial`)return l;let u=n?.(t);if(!u)return l;let d=e?zt(e):void 0;return d?(0,I.jsx)(d,{module:u,onSaved:r}):e?l:(0,I.jsx)(Qi,{module:u,onSaved:r})}var Wn={"ai-provider":{id:`ai-provider`,title:`One AI connection, every AI feature`,subtitle:`Connect OpenAI, Anthropic, Gemini, or OpenRouter once — every Pro AI feature shares the same key, no per-feature setup.`,icon:`Sparkles`,mock:{kind:`toggles`,rows:[{label:`OpenAI`,on:!0,stat:`connected`},{label:`Anthropic`,on:!1,stat:`available`},{label:`Google Gemini`,on:!1,stat:`available`},{label:`OpenRouter`,on:!1,stat:`available`}]},points:[{icon:`Sparkles`,text:`Connect one provider; Speculation Rules, AI Suggestions, and Adaptive Cache all use it.`},{icon:`Lock`,text:`Your key stays on your server — stored in wp-config or the database, never shipped to us.`},{icon:`Check`,text:`Swap providers any time without reconfiguring each feature.`}]},"adaptive-cache":{id:`adaptive-cache`,title:`Cache TTL that tunes itself`,subtitle:`xSpeed reads your last 24 hours of traffic and recommends the cache lifetime that balances freshness against hit-rate — applied in one click.`,icon:`Lightbulb`,mock:{kind:`chart`,headline:`+18%`,headlineNote:`projected hit-rate at the suggested TTL`,bars:[{label:`Now`,value:71},{label:`Suggested`,value:89}]},points:[{icon:`Lightbulb`,text:`AI-tuned TTL from real 24-hour traffic patterns — no more guessing a number.`},{icon:`Check`,text:`Review the recommendation, then apply it into the Cache module in one click.`}]},"coverage-what":{id:`coverage-what`,title:`Cache more than HTML pages`,subtitle:`Page Cache serves anonymous HTML. Pro extends that to the requests that quietly cost you the most renders.`,icon:`Layers`,mock:{kind:`toggles`,rows:[{label:`404 Caching`,on:!0,stat:`3,180 bot hits absorbed`},{label:`Search Caching`,on:!0,stat:`/?s= results cached`}]},points:[{icon:`FileX`,text:`Serve one shared cached 404 so scanner floods stop costing a render each.`},{icon:`Search`,text:`Cache internal search pages (/?s=…), keyed per term, purged on publish.`},{icon:`ShieldCheck`,text:`Correct status codes preserved; auto-purge when you publish new content.`}]},"coverage-beyond":{id:`coverage-beyond`,title:`Cache feeds & API responses`,subtitle:`Aggregators and headless front-ends hammer endpoints Page Cache never touches. Pro caches those too.`,icon:`Rss`,mock:{kind:`toggles`,rows:[{label:`Feed Caching (RSS / Atom)`,on:!0,stat:`content-type preserved`},{label:`REST API Cache`,on:!0,stat:`per-route TTL`}]},points:[{icon:`Rss`,text:`Cache RSS / Atom / comment feeds so polling aggregators skip a full render.`},{icon:`Webhook`,text:`Cache read-only REST routes with a TTL you set — built for headless sites.`},{icon:`Lock`,text:`Authenticated and write requests are never cached.`}]},"coverage-rules":{id:`coverage-rules`,title:`Bypass & override by rule`,subtitle:`Go past per-post toggles: shape caching with patterns, and stand down cleanly during maintenance.`,icon:`Filter`,mock:{kind:`code`,code:[`BYPASS /cart/* (never cache)`,`BYPASS post_type=product when logged in`,`EXPIRE /blog/* override → 12h`,`MAINT. coming-soon mode → skip + auto-purge on go-live`]},points:[{icon:`Filter`,text:`Bypass or override expiry by URL glob, post type, category, tag, or author.`},{icon:`Wrench`,text:`Skip caching in maintenance / coming-soon mode, auto-purge when live again.`}]},"media-formats":{id:`media-formats`,title:`Modern image formats, automatically`,subtitle:`Every new upload gets lighter WebP + AVIF siblings, served to the browsers that support them.`,icon:`Replace`,mock:{kind:`formats`,badges:[`JPEG`,`WebP`,`AVIF`],headline:`−62%`,headlineNote:`typical transfer saved vs original JPEG`},points:[{icon:`Replace`,text:`New JPEG/PNG uploads get .webp + .avif siblings generated automatically.`},{icon:`Zap`,text:`Browsers that support modern formats get them; others fall back cleanly.`}]},"media-smart":{id:`media-smart`,title:`AI-tuned image settings`,subtitle:`Let xSpeed recommend the format and quality for each image, then apply it into Image Optimization in one click.`,icon:`Sparkles`,mock:{kind:`toggles`,rows:[{label:`hero.jpg → AVIF @ 72`,on:!0,stat:`−240 KB`},{label:`logo.png → WebP lossless`,on:!0,stat:`−31 KB`}]},points:[{icon:`Sparkles`,text:`AI recommends the best format + quality per image, not a blanket setting.`},{icon:`Check`,text:`Review the suggestions, then apply them all with one click.`}]},"compression-brotli":{id:`compression-brotli`,title:`Brotli compression`,subtitle:`Smaller than GZIP where the browser supports it — with automatic GZIP fallback everywhere else.`,icon:`Shrink`,mock:{kind:`chart`,headline:`−21%`,headlineNote:`smaller responses vs GZIP (typical)`,bars:[{label:`None`,value:100},{label:`GZIP`,value:34},{label:`Brotli`,value:27}]},points:[{icon:`Shrink`,text:`Serve Brotli where the browser and server support it — typically 15–25% smaller.`},{icon:`ShieldCheck`,text:`Automatic GZIP fallback, so nothing breaks on older clients.`}]},"cssjs-critical":{id:`cssjs-critical`,title:`Inline critical CSS, defer the rest`,subtitle:`Send only the styles the first screen needs up front so the page paints without waiting on the full stylesheet.`,icon:`Sparkles`,mock:{kind:`chart`,headline:`−48%`,headlineNote:`render-blocking CSS on first paint`,bars:[{label:`Before`,value:100},{label:`Critical`,value:52}]},points:[{icon:`Sparkles`,text:`Inline above-the-fold CSS and defer the rest — cuts first paint 30–60%.`},{icon:`Gauge`,text:`Pluggable generator endpoint; regenerates when your theme changes.`}]},"cssjs-unused":{id:`cssjs-unused`,title:`Strip the CSS a page never uses`,subtitle:`Most themes ship one giant stylesheet for the whole site. Pro serves each URL only the rules it actually needs.`,icon:`Scissors`,mock:{kind:`chart`,headline:`−71%`,headlineNote:`stylesheet bytes on a typical post`,bars:[{label:`Full CSS`,value:100},{label:`Pruned`,value:29}]},points:[{icon:`Scissors`,text:`Per-URL pruned stylesheet inlined; original <link> tags stripped.`},{icon:`Sparkles`,text:`Pairs with Critical CSS for the smallest possible first paint.`}]},"health-pagespeed":{id:`health-pagespeed`,title:`Real scores, in your dashboard`,subtitle:`Run Google PageSpeed on any URL and watch Core Web Vitals from real visitors — without leaving xSpeed.`,icon:`Gauge`,mock:{kind:`chart`,headline:`98`,headlineNote:`PageSpeed score · mobile`,bars:[{label:`LCP`,value:92},{label:`CLS`,value:99},{label:`INP`,value:95}]},points:[{icon:`Gauge`,text:`Run Google PSI on any URL — scores + Core Web Vitals, cached 24h.`},{icon:`Eye`,text:`Real-User Monitoring: LCP / CLS / INP from actual visitors, per-URL percentiles.`},{icon:`HeartPulse`,text:`Performance Health flags regressions against a 7-day baseline.`}]},"hints-speculation":{id:`hints-speculation`,title:`Prefetch the next page, before the click`,subtitle:`xSpeed predicts where each visitor is headed and quietly prefetches it via Chrome’s Speculation Rules API — so the next page feels instant.`,icon:`Wand2`,mock:{kind:`toggles`,rows:[{label:`Prefetch on hover / viewport`,on:!0,stat:`eager`},{label:`Prerender top predicted page`,on:!0,stat:`moderate`}]},points:[{icon:`Wand2`,text:`Predict each visitor’s next page and prefetch it via Speculation Rules.`},{icon:`Zap`,text:`The next navigation feels instant — the page is already there.`}]},"network-cloudflare":{id:`network-cloudflare`,title:`Drive Cloudflare from here`,subtitle:`Toggle Automatic Platform Optimization and edge cache without a second dashboard.`,icon:`Zap`,mock:{kind:`toggles`,rows:[{label:`Automatic Platform Optimization`,on:!0,stat:`edge HTML cache`},{label:`Edge cache TTL`,on:!0,stat:`4 hours`}]},points:[{icon:`Zap`,text:`Toggle APO, set edge cache level and TTL from inside xSpeed.`},{icon:`RefreshCw`,text:`Edge purge stays in sync with your local cache purges.`}]},"preloader-scheduled":{id:`preloader-scheduled`,title:`Warm the cache before the traffic`,subtitle:`Schedule warm-ups around launches, sales, and scheduled posts so the spike hits a warm cache — never a cold render.`,icon:`CalendarClock`,mock:{kind:`toggles`,rows:[{label:`Nightly full-site warm`,on:!0,stat:`02:00`},{label:`On scheduled-post publish`,on:!0,stat:`auto`},{label:`One-off: /black-friday`,on:!0,stat:`Fri 08:00`}]},points:[{icon:`CalendarClock`,text:`Warm target URLs ahead of a post, sale, or campaign going live.`},{icon:`RefreshCw`,text:`One-off, recurring, and auto-warm when a scheduled post publishes.`}]},"preloader-predictive":{id:`preloader-predictive`,title:`Keep the hottest pages always warm`,subtitle:`Let xSpeed rank your URLs by real traffic, recency, and content, and warm the ones most likely to be hit next.`,icon:`TrendingUp`,mock:{kind:`toggles`,rows:[{label:`/pricing`,on:!0,stat:`rank #1 · warm`},{label:`/blog/new-release`,on:!0,stat:`rank #2 · warm`},{label:`/features`,on:!0,stat:`rank #3 · warm`}]},points:[{icon:`TrendingUp`,text:`Proactively warm the pages most likely to be visited next.`},{icon:`BarChart3`,text:`Ranked by real traffic, recency, and content — no manual list to maintain.`}]},"health-visitors":{id:`health-visitors`,title:`Measure real visitors, not lab tests`,subtitle:`A lightweight beacon samples Core Web Vitals from your actual visitors’ browsers — the numbers Google ranks on.`,icon:`Eye`,mock:{kind:`chart`,headline:`p75`,headlineNote:`real-user Core Web Vitals`,bars:[{label:`LCP`,value:88},{label:`CLS`,value:96},{label:`INP`,value:91}]},points:[{icon:`Eye`,text:`Sample LCP / FCP / CLS / INP / TTFB from real visitors, per-URL percentiles.`},{icon:`BarChart3`,text:`See which pages actually feel slow — powered by the data you already collect.`}]}};function Gn(e){return Wn[e]}function Kn({id:e}){let t=Gn(e),n=Jt()===`unlicensed`;if(!t)return null;let r={frame:`border-line bg-primary-tint`,iconWrap:`bg-paper border-line text-primary`,badge:`text-primary bg-paper border-line`,cta:`bg-primary hover:bg-primary-hover text-on-primary`,accent:`text-primary`,check:`text-primary`};return(0,I.jsxs)(`div`,{className:`border rounded-card overflow-hidden ${r.frame}`,children:[(0,I.jsxs)(`div`,{className:`flex items-start gap-3 p-4 sm:p-5 pb-3`,children:[(0,I.jsx)(`div`,{className:`shrink-0 w-9 h-9 rounded-full border flex items-center justify-center ${r.iconWrap}`,children:(0,I.jsx)(Ct,{name:t.icon,size:17})}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2 mb-0.5`,children:[(0,I.jsx)(`h3`,{className:`text-[14px] font-semibold text-ink`,children:t.title}),(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[10px] uppercase tracking-wider font-medium border rounded-full px-1.5 py-0.5 ${r.badge}`,children:[n?(0,I.jsx)(Ae,{size:9}):(0,I.jsx)(Ie,{size:9}),(0,I.jsx)(`span`,{children:L(n?`License`:`Pro`)})]})]}),(0,I.jsx)(`p`,{className:`text-[12px] text-ink-soft leading-relaxed`,children:t.subtitle})]})]}),(0,I.jsx)(`div`,{className:`px-4 sm:px-5`,children:(0,I.jsx)(qn,{mock:t.mock,accent:r.accent})}),(0,I.jsxs)(`div`,{className:`p-4 sm:p-5 pt-4`,children:[(0,I.jsx)(`ul`,{className:`space-y-2`,children:t.points.map((e,t)=>(0,I.jsxs)(`li`,{className:`flex items-start gap-2.5`,children:[(0,I.jsx)(O,{size:15,className:`shrink-0 mt-0.5 ${r.check}`,strokeWidth:2.5}),(0,I.jsx)(`span`,{className:`text-[12px] text-ink-soft leading-relaxed`,children:e.text})]},t))}),n?(0,I.jsxs)(`a`,{href:Vn,className:`inline-flex items-center gap-1.5 mt-4 px-3.5 py-2 rounded-md text-[12px] font-medium transition-colors ${r.cta}`,children:[L(`Activate your license`),(0,I.jsx)(w,{size:12})]}):(0,I.jsxs)(`a`,{href:Bn,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 mt-4 px-3.5 py-2 rounded-md text-[12px] font-medium transition-colors ${r.cta}`,children:[L(`Upgrade to Pro`),(0,I.jsx)(w,{size:12})]})]})]})}function qn({mock:e,accent:t}){return(0,I.jsxs)(`div`,{className:`relative rounded-card border border-line bg-panel p-3.5 overflow-hidden`,children:[(0,I.jsxs)(`div`,{className:`absolute right-2 top-2 z-10 flex items-center gap-1 rounded-full bg-paper border border-line px-1.5 py-0.5 text-[9px] uppercase tracking-wider text-faint`,children:[(0,I.jsx)(Ie,{size:8}),L(`Preview`)]}),(0,I.jsxs)(`div`,{"aria-hidden":`true`,className:`select-none`,children:[e.kind===`toggles`&&(0,I.jsx)(Jn,{mock:e,accent:t}),e.kind===`chart`&&(0,I.jsx)(Yn,{mock:e,accent:t}),e.kind===`code`&&(0,I.jsx)(Xn,{mock:e}),e.kind===`formats`&&(0,I.jsx)(Zn,{mock:e,accent:t})]})]})}function Jn({mock:e,accent:t}){return(0,I.jsx)(`div`,{className:`space-y-2`,children:(e.rows??[]).map((e,n)=>(0,I.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md bg-paper border border-line px-3 py-2`,children:[(0,I.jsx)(`span`,{className:`relative inline-flex shrink-0 w-9 h-5 items-center rounded-full ${e.on?`bg-primary`:`bg-line-strong`}`,children:(0,I.jsx)(`span`,{className:`inline-block w-4 h-4 rounded-full bg-white shadow-sm transform ${e.on?`translate-x-[18px]`:`translate-x-0.5`}`})}),(0,I.jsx)(`span`,{className:`text-[12px] font-medium text-ink flex-1 min-w-0 truncate`,children:e.label}),e.stat&&(0,I.jsx)(`span`,{className:`text-[11px] font-medium tabular-nums ${t}`,children:e.stat})]},n))})}function Yn({mock:e,accent:t}){let n=e.bars??[];return(0,I.jsxs)(`div`,{className:`flex items-end gap-4`,children:[e.headline&&(0,I.jsxs)(`div`,{className:`shrink-0`,children:[(0,I.jsx)(`div`,{className:`text-[26px] font-bold leading-none tabular-nums ${t}`,children:e.headline}),e.headlineNote&&(0,I.jsx)(`div`,{className:`text-[10px] text-muted mt-1 max-w-[130px] leading-snug`,children:e.headlineNote})]}),(0,I.jsx)(`div`,{className:`flex-1 flex items-end justify-around gap-2 h-[64px]`,children:n.map((e,t)=>(0,I.jsxs)(`div`,{className:`flex flex-col items-center gap-1 flex-1 h-full justify-end`,children:[(0,I.jsx)(`div`,{className:`w-full rounded-t ${t===n.length-1?`bg-primary`:`bg-line-strong`}`,style:{height:`${Math.max(6,e.value)}%`}}),(0,I.jsx)(`span`,{className:`text-[9px] text-muted truncate max-w-full`,children:e.label})]},t))})]})}function Xn({mock:e}){return(0,I.jsx)(`div`,{className:`font-mono text-[11px] leading-relaxed text-ink-soft space-y-0.5 overflow-x-auto`,children:(e.code??[]).map((e,t)=>(0,I.jsx)(`div`,{className:`whitespace-pre`,children:e},t))})}function Zn({mock:e,accent:t}){let n=e.badges??[];return(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,I.jsx)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:n.map((e,t)=>{let r=t===n.length-1;return(0,I.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,I.jsx)(`span`,{className:`rounded-md border px-2 py-1 text-[11px] font-semibold ${r?`border-primary/40 bg-primary/10 text-primary`:`border-line bg-paper text-muted`}`,children:e}),!r&&(0,I.jsx)(`span`,{className:`text-faint text-[11px]`,children:`→`})]},t)})}),e.headline&&(0,I.jsxs)(`div`,{className:`text-right shrink-0`,children:[(0,I.jsx)(`div`,{className:`text-[22px] font-bold leading-none tabular-nums ${t}`,children:e.headline}),e.headlineNote&&(0,I.jsx)(`div`,{className:`text-[10px] text-muted mt-1 max-w-[130px] leading-snug`,children:e.headlineNote})]})]})}function Qn({demo:e,children:t}){return qt()?(0,I.jsx)(I.Fragment,{children:t}):(0,I.jsx)(Kn,{id:e})}var $n=[{key:`cache`,label:`Overview`},{key:`visitors`,label:`Visitors`,locked:!0},{key:`pagespeed`,label:`PageSpeed`,locked:!0}],er=`cache`,tr=new Set($n.map(e=>e.key));function nr({module:e,onSaved:t,subtab:n,onSubtabChange:r,getModule:i}){let a=Kt(),o=a===`pro`||a===`trial`,s=$n.map(e=>({...e,locked:e.locked&&!o})),c=n&&tr.has(n)?n:er;return(0,y.useEffect)(()=>{n&&!tr.has(n)&&r?.(er)},[n,r]),(0,I.jsxs)(`div`,{className:`space-y-5`,children:[(0,I.jsx)(In,{getModule:i}),(0,I.jsx)(H,{panel:`RecommendationsPanel`,slug:`recommendations`,getModule:i,onSaved:t}),(0,I.jsx)(Ln,{items:s,value:c,onChange:e=>r?.(e),idBase:`health`}),c===`cache`&&(0,I.jsxs)(`div`,{className:`space-y-5`,children:[(0,I.jsx)(kn,{module:e}),(0,I.jsx)(H,{panel:`AnalyticsPanel`,slug:`analytics`,getModule:i,onSaved:t})]}),c===`visitors`&&(0,I.jsx)(Qn,{demo:`health-visitors`,children:(0,I.jsx)(`div`,{className:`space-y-5`,children:(0,I.jsx)(H,{panel:`RumPanel`,slug:`rum`,getModule:i,onSaved:t})})}),c===`pagespeed`&&(0,I.jsxs)(`div`,{className:`space-y-5`,children:[(0,I.jsx)(H,{panel:`PageSpeedPanel`,slug:`pagespeed`,getModule:i,onSaved:t}),(0,I.jsx)(H,{panel:`PerformanceHealthPanel`,slug:`performance-health`,getModule:i,onSaved:t})]})]})}function rr({state:e}){let[t,n]=(0,y.useState)(null),r=(0,y.useRef)(`saving`);if((e===`saving`||e===`saved`)&&(r.current=e),(0,y.useEffect)(()=>{if(typeof document>`u`)return;let e=document.getElementById(`xspeed-toast-host`);if(!e){let t=document.getElementById(`xspeed-app`);if(!t)return;e=document.createElement(`div`),e.id=`xspeed-toast-host`,t.appendChild(e)}n(e)},[]),!t)return null;let i=e!==`idle`,a=e===`saved`||e===`idle`&&r.current===`saved`;return(0,F.createPortal)((0,I.jsx)(`div`,{"aria-hidden":!i,className:`fixed bottom-6 left-1/2 -translate-x-1/2 z-50 pointer-events-none transition-opacity duration-150 ${i?`opacity-100`:`opacity-0`}`,children:(0,I.jsx)(`div`,{className:`flex items-center gap-2 px-4 py-2 rounded-full border shadow-md text-[12px] font-medium ${a?`bg-emerald-50 dark:bg-emerald-950/60 border-emerald-200 dark:border-emerald-800 text-emerald-700 dark:text-emerald-300`:`bg-white dark:bg-neutral-900 border-neutral-200 dark:border-neutral-700 text-neutral-600 dark:text-neutral-300`}`,children:a?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(O,{size:14,className:`text-emerald-600 dark:text-emerald-400`}),(0,I.jsx)(`span`,{children:L(`Settings saved`)})]}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(Fe,{size:13,className:`animate-spin text-neutral-400 dark:text-neutral-500`}),(0,I.jsx)(`span`,{children:L(`Saving changes…`)})]})})}),t)}var ir=1500;function ar({saving:e}){let[t,n]=(0,y.useState)(`idle`),r=(0,y.useRef)(`idle`),i=(0,y.useRef)(!1),a=(0,y.useRef)(null);return(0,y.useEffect)(()=>{r.current=t},[t]),(0,y.useEffect)(()=>{if(e){r.current!==`saved`&&(a.current&&=(window.clearTimeout(a.current),null),n(`saving`)),i.current=!0;return}i.current&&(i.current=!1,n(`saved`),a.current&&window.clearTimeout(a.current),a.current=window.setTimeout(()=>{n(`idle`),a.current=null},ir))},[e]),(0,y.useEffect)(()=>()=>{a.current&&window.clearTimeout(a.current)},[]),(0,I.jsx)(rr,{state:t})}function or(e,t,n){let r={...t},i=!1,a=new Set([...Object.keys(t),...Object.keys(n),...Object.keys(e)]);for(let o of a)sr(n[o],e[o])?Object.prototype.hasOwnProperty.call(t,o)?r[o]=t[o]:r[o]=n[o]:(r[o]=n[o],i=!0);return{next:r,dirty:i}}function sr(e,t){if(e===t)return!0;if(e===null||t===null||e===void 0||t===void 0||typeof e!=`object`||typeof t!=`object`)return!1;try{return JSON.stringify(e)===JSON.stringify(t)}catch{return!1}}var cr=4e3;function lr({module:e,onSaved:t}){let[n,r]=(0,y.useState)(e.settings),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(null),f=(0,y.useRef)(null),p=(0,y.useRef)(!0),m=(0,y.useRef)(JSON.stringify(e.settings)),h=(0,y.useRef)(n);(0,y.useEffect)(()=>{h.current=n},[n]),(0,y.useEffect)(()=>{let e=!1,t=async()=>{try{let t=await B.request(`/preloader/status`);e||a(t)}catch{}};t();let n=window.setInterval(()=>{i?.running&&t()},cr);return()=>{e=!0,window.clearInterval(n)}},[i?.running]),(0,y.useEffect)(()=>{if(p.current){p.current=!1;return}if(JSON.stringify(n)!==m.current)return f.current&&window.clearTimeout(f.current),f.current=window.setTimeout(async()=>{s(!0);let i=n;try{let{next:n,dirty:a}=or(i,await B.updateModuleSettings(e.slug,i),h.current);r(n),m.current=a?``:JSON.stringify(n),t?.(n)}catch(e){l(e instanceof Error?e.message:`Save failed`)}finally{s(!1)}},600),()=>{f.current&&window.clearTimeout(f.current)}},[n,e.slug]);let g=(e,t)=>r(n=>({...n,[e]:t})),_=(0,y.useMemo)(()=>Object.entries(e.schema),[e.schema]);return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(ur,{state:i,enabled:!!n.enabled,percent:i&&i.total>0?Math.round(i.processed/i.total*100):0,actioning:u,onStart:async()=>{d(`start`),l(null);try{a(await B.request(`/preloader/start`,{method:`POST`}))}catch(e){l(e instanceof Error?e.message:`Failed to start`)}finally{d(null)}},onStop:async()=>{d(`stop`);try{a(await B.request(`/preloader/stop`,{method:`POST`}))}catch(e){l(e instanceof Error?e.message:`Failed to stop`)}finally{d(null)}}}),c&&(0,I.jsx)(V,{tone:`danger`,title:`Preloader error`,body:c}),(0,I.jsx)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg overflow-hidden`,children:_.map(([e,t],r)=>(0,I.jsx)(dr,{fieldKey:e,spec:t,value:n[e],onChange:t=>g(e,t),first:r===0},e))}),(0,I.jsx)(ar,{saving:o})]})}function ur({state:e,enabled:t,percent:n,actioning:r,onStart:i,onStop:a}){let o=!!e?.running,s=!!(e&&(e.total>0||e.finished_at>0)),c=e?.sitemap_error??``,l=e?.source===`fallback`,u=!!c&&!l&&e?.total===0;return(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-4 mb-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(`span`,{className:`w-2 h-2 rounded-full shrink-0 ${o?`bg-accent animate-pulse`:t?`bg-emerald-500`:`bg-neutral-300 dark:bg-neutral-600`}`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:o?`Crawling…`:u?`Couldn't start`:t?`Ready`:`Disabled`}),(0,I.jsx)(`div`,{className:`text-[12px] ${u?`text-amber-700 dark:text-amber-400`:`text-neutral-500 dark:text-neutral-400`}`,children:e?u?c:s?`${e.processed} / ${e.total} URLs warmed${e.errors.length>0?` · ${e.errors.length} error${e.errors.length===1?``:`s`}`:``}`:t?`No crawl yet. Hit "Start now" to warm the cache.`:`Enable below, then start a crawl.`:`Loading…`}),l&&(0,I.jsx)(`div`,{className:`text-[12px] text-amber-700 dark:text-amber-400 mt-0.5`,children:o?`Warming from site content — the sitemap couldn’t be read.`:`Warmed from site content — the sitemap couldn’t be read.`})]})]}),(0,I.jsx)(`div`,{className:`flex items-center gap-2 shrink-0`,children:o?(0,I.jsxs)(`button`,{type:`button`,onClick:a,disabled:r!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors disabled:opacity-50`,children:[(0,I.jsx)(it,{size:13}),`Stop`]}):(0,I.jsxs)(`button`,{type:`button`,onClick:i,disabled:!t||r!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-accent text-white hover:bg-primary-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed`,children:[r===`start`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(Be,{size:13}),`Start now`]})})]}),(o||s)&&e&&e.total>0&&(0,I.jsxs)(`div`,{className:`mt-3`,children:[(0,I.jsx)(`div`,{className:`h-1.5 w-full bg-neutral-100 dark:bg-neutral-800 rounded-full overflow-hidden`,children:(0,I.jsx)(`div`,{className:`h-full bg-accent transition-all duration-300`,style:{width:`${n}%`}})}),e.last_url&&(0,I.jsxs)(`div`,{className:`mt-2 text-[11px] text-neutral-500 dark:text-neutral-400 font-mono truncate`,children:[`Last: `,e.last_url]})]})]})}function dr({fieldKey:e,spec:t,value:n,onChange:r,first:i}){let a=t.label??e;return(0,I.jsxs)(`div`,{className:`px-4 sm:px-5 py-4 flex items-center justify-between gap-3 sm:gap-4 ${i?``:`border-t border-neutral-200 dark:border-neutral-800`}`,children:[(0,I.jsxs)(`div`,{className:`min-w-0 pr-2`,children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:a}),t.description&&(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400 mt-0.5`,children:t.description})]}),(0,I.jsx)(`div`,{className:`shrink-0`,children:fr(t,n,r,a)})]})}function fr(e,t,n,r){switch(e.type){case`bool`:return(0,I.jsx)(gn,{checked:!!t,onChange:n,label:r});case`int`:return(0,I.jsx)(`input`,{type:`number`,min:e.min,max:e.max,value:t==null?``:Number(t),onChange:e=>n(Number(e.target.value)),className:`w-20 text-right`,"aria-label":r});case`enum`:return(0,I.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:(e.options??[]).map(r=>{let i=t===r,a=e.option_labels?.[r]??r;return(0,I.jsx)(`button`,{type:`button`,onClick:()=>n(r),className:`text-[12px] px-2.5 py-1 rounded border transition-colors ${i?`bg-accent border-accent text-white`:`border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800`}`,children:a},r)})});case`string`:case`url`:return(0,I.jsx)(`input`,{type:e.type===`url`?`url`:`text`,value:t==null?``:String(t),onChange:e=>n(e.target.value),className:`w-56`,"aria-label":r});default:return na(e,t,n,r)}}var pr=Object.fromEntries(wt.map(e=>[e.slug,e.label]));function mr(e,t){let{module:n,getModule:r,isPro:i,subtab:a}=t,o=(0,y.useMemo)(()=>e.map(e=>{let t;return t=e.self?n.tab_label??n.label??e.slug:r?.(e.slug)?.label??pr[e.slug]??e.slug,{key:e.key,label:t,locked:!!e.pro&&!i}}),[e,n,r,i]);return{items:o,active:a&&o.some(e=>e.key===a)?a:e[0]?.key??``}}var hr=[{key:`manual`,slug:`preloader`,self:!0},{key:`scheduled`,slug:`prewarm-schedule`,panel:`PrewarmSchedulePanel`,pro:!0},{key:`predictive`,slug:`predictive-warm`,panel:`PredictiveWarmPanel`,pro:!0}];function gr({module:e,onSaved:t,subtab:n,onSubtabChange:r,getModule:i}){let a=Kt(),{items:o,active:s}=mr(hr,{module:e,getModule:i,isPro:a===`pro`||a===`trial`,subtab:n});return(0,y.useEffect)(()=>{n&&!o.some(e=>e.key===n)&&r?.(hr[0].key)},[n,o,r]),(0,I.jsxs)(`div`,{className:`space-y-5`,children:[(0,I.jsx)(Ln,{items:o,value:s,onChange:e=>r?.(e),idBase:`preloader`}),s===`manual`&&(0,I.jsx)(lr,{module:e,onSaved:t}),s===`scheduled`&&(0,I.jsx)(Qn,{demo:`preloader-scheduled`,children:(0,I.jsx)(H,{panel:`PrewarmSchedulePanel`,slug:`prewarm-schedule`,getModule:i,onSaved:t})}),s===`predictive`&&(0,I.jsx)(Qn,{demo:`preloader-predictive`,children:(0,I.jsx)(H,{panel:`PredictiveWarmPanel`,slug:`predictive-warm`,getModule:i,onSaved:t})})]})}function _r({title:e,body:t,confirmLabel:n,cancelLabel:r=`Cancel`,busy:i=!1,onConfirm:a,onCancel:o}){return(0,I.jsx)(`div`,{role:`alertdialog`,"aria-labelledby":`xspeed-inline-confirm-title`,className:`border border-red-200 dark:border-red-900/60 bg-red-50 dark:bg-red-950/40 rounded-lg p-4 sm:p-5`,children:(0,I.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[(0,I.jsx)(dt,{size:16,className:`text-red-600 dark:text-red-400 shrink-0 mt-0.5`}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`div`,{id:`xspeed-inline-confirm-title`,className:`font-medium text-red-900 dark:text-red-200 text-[13px]`,children:e}),t&&(0,I.jsx)(`p`,{className:`text-[12px] text-red-800/90 dark:text-red-200/80 mt-1`,children:t}),(0,I.jsxs)(`div`,{className:`mt-3 flex items-center gap-2`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:a,disabled:i,style:{height:32,boxSizing:`border-box`},className:`flex items-center gap-1.5 whitespace-nowrap text-[12px] px-3 rounded-md !border !border-solid !border-red-600 dark:!border-red-500 bg-red-600 dark:bg-red-500 text-white hover:bg-red-700 hover:!border-red-700 dark:hover:bg-red-600 transition-colors disabled:opacity-50`,children:[i&&(0,I.jsx)(Fe,{size:12,className:`animate-spin`}),n]}),(0,I.jsx)(`button`,{type:`button`,onClick:o,disabled:i,style:{height:32,boxSizing:`border-box`},className:`flex items-center gap-1.5 whitespace-nowrap text-[12px] px-3 rounded-md !border !border-solid !border-red-300 dark:!border-red-800 bg-white dark:bg-neutral-900 text-red-800 dark:text-red-200 hover:bg-red-100 dark:hover:bg-red-900/40 transition-colors disabled:opacity-50`,children:r})]})]})]})})}function vr({id:e}){if(Kt()!==`free`)return null;let t=Hn[e];return t?(0,I.jsxs)(`div`,{className:`relative overflow-hidden border border-line bg-primary-tint rounded-card p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`absolute top-3 right-3 flex items-center gap-1 text-[10px] uppercase tracking-wider font-medium text-warning`,children:[(0,I.jsx)(de,{size:11}),(0,I.jsx)(`span`,{children:L(`Pro`)})]}),(0,I.jsxs)(`div`,{className:`flex items-start gap-3 pr-12`,children:[(0,I.jsx)(`span`,{className:`shrink-0 mt-0.5 text-warning`,children:(0,I.jsx)(Ct,{name:t.icon,size:18})}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`text-[14px] font-medium text-ink`,children:t.title}),(0,I.jsx)(`p`,{className:`text-[12px] text-ink-soft mt-1 leading-relaxed`,children:t.body}),(0,I.jsxs)(`a`,{href:Bn,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 mt-2.5 text-[12px] font-medium text-primary hover:text-primary-hover transition-colors`,children:[t.cta??L(`Learn more about Pro`),(0,I.jsx)(w,{size:12})]})]})]})]}):(typeof console<`u`&&console.warn(`[xSpeed] Unknown ProTeaser id: "${String(e)}"`),null)}function yr({module:e,onSaved:t}){let[n,r]=(0,y.useState)(e.settings),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)({}),[c,l]=(0,y.useState)({}),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),x=(0,y.useRef)(null),S=(0,y.useRef)(!0),C=(0,y.useRef)(JSON.stringify(e.settings)),w=(0,y.useRef)(n);(0,y.useEffect)(()=>{w.current=n},[n]);let T=async()=>{d(`scan`),p(null);try{let e=await B.request(`/database/scan`);a(e.scan),s(e.labels)}catch(e){p(e instanceof Error?e.message:`Scan failed`)}finally{d(null)}};(0,y.useEffect)(()=>{T()},[]),(0,y.useEffect)(()=>{if(S.current){S.current=!1;return}if(JSON.stringify(n)!==C.current)return x.current&&window.clearTimeout(x.current),x.current=window.setTimeout(async()=>{b(!0);let i=n;try{let{next:n,dirty:a}=or(i,await B.updateModuleSettings(e.slug,i),w.current);r(n),C.current=a?``:JSON.stringify(n),t?.(n)}catch(e){p(e instanceof Error?e.message:`Save failed`)}finally{b(!1)}},600),()=>{x.current&&window.clearTimeout(x.current)}},[n,e.slug]);let ee=(e,t)=>r(n=>({...n,[e]:t})),E=(0,y.useMemo)(()=>Object.keys(c).filter(e=>c[e]&&(i?.[e]?.count??0)>0),[c,i]),te=(0,y.useMemo)(()=>E.reduce((e,t)=>e+(i?.[t]?.count??0),0),[E,i]),D=e=>l(t=>({...t,[e]:!t[e]})),ne=()=>{if(!i)return;let e={};Object.entries(i).forEach(([t,n])=>{n.count>0&&(e[t]=!0)}),l(e)},re=()=>l({}),O=async()=>{if(E.length!==0){_(!1),d(`clean`),p(null),h(null);try{let e=await B.request(`/database/clean`,{method:`POST`,body:JSON.stringify({types:E})});a(e.scan);let t=Object.values(e.cleaned).reduce((e,t)=>e+t,0);h(`Removed ${t.toLocaleString()} row${t===1?``:`s`}.`),l({})}catch(e){p(e instanceof Error?e.message:`Cleanup failed`)}finally{d(null)}}},k=async()=>{d(`optimize`),p(null),h(null);try{let e=await B.request(`/database/optimize`,{method:`POST`}),t=Object.keys(e.optimized).length;h(`Optimized ${t} table${t===1?``:`s`}.`)}catch(e){p(e instanceof Error?e.message:`Optimize failed`)}finally{d(null)}},A=(0,y.useMemo)(()=>Object.entries(e.schema),[e.schema]),j=i?Object.entries(i):[],ie=j.reduce((e,[,t])=>e+t.count,0);return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-4 mb-4`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(fe,{size:18,className:`text-primary shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:`Database bloat`}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:i?ie===0?`Nothing to clean — your database is tidy.`:`${ie.toLocaleString()} row${ie===1?``:`s`} across ${j.filter(([,e])=>e.count>0).length} categor${j.filter(([,e])=>e.count>0).length===1?`y`:`ies`}`:`Scanning…`})]})]}),(0,I.jsx)(`div`,{className:`flex items-center gap-2 shrink-0`,children:(0,I.jsxs)(`button`,{type:`button`,onClick:T,disabled:u!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-line text-ink-soft hover:bg-panel transition-colors disabled:opacity-50`,children:[(0,I.jsx)(P,{size:13,className:u===`scan`?`animate-spin`:``}),`Rescan`]})})]}),j.length>0&&(0,I.jsx)(`div`,{className:`border border-line rounded overflow-hidden`,children:j.map(([e,t],n)=>{let r=!!c[e],i=t.count===0;return(0,I.jsxs)(`label`,{className:`flex items-center justify-between gap-3 px-3 py-2.5 cursor-pointer ${n===0?``:`border-t border-line`} ${i?`opacity-50 cursor-not-allowed`:`hover:bg-panel/40`}`,children:[(0,I.jsxs)(`span`,{className:`flex items-center gap-2.5 min-w-0`,children:[(0,I.jsx)(`input`,{type:`checkbox`,checked:r,disabled:i,onChange:()=>D(e),className:`accent-primary`}),(0,I.jsx)(`span`,{className:`text-[13px] text-ink truncate`,children:o[e]??t.label})]}),(0,I.jsx)(`span`,{className:`text-[12px] tabular-nums text-muted shrink-0`,children:t.count.toLocaleString()})]},e)})}),(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 mt-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2 text-[12px]`,children:[(0,I.jsx)(`button`,{type:`button`,onClick:ne,className:`text-primary hover:underline`,disabled:!i||ie===0,children:`Select all`}),(0,I.jsx)(`span`,{className:`text-line-strong`,children:`·`}),(0,I.jsx)(`button`,{type:`button`,onClick:re,className:`text-muted hover:underline`,disabled:E.length===0,children:`Clear`})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:k,disabled:u!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-line text-ink-soft hover:bg-panel transition-colors disabled:opacity-50`,children:[(0,I.jsx)(vt,{size:13,className:u===`optimize`?`animate-pulse`:``}),`Optimize tables`]}),(0,I.jsxs)(`button`,{type:`button`,onClick:()=>_(!0),disabled:u!==null||E.length===0,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-primary text-on-primary hover:bg-primary-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed`,children:[u===`clean`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(lt,{size:13}),`Clean selected`,te>0?` (${te.toLocaleString()})`:``]})]})]}),g&&(0,I.jsx)(`div`,{className:`mt-3`,children:(0,I.jsx)(_r,{title:`Permanently delete ${te.toLocaleString()} row${te===1?``:`s`}?`,body:`This removes the selected rows from your database. It can't be undone — take a backup first if you're unsure.`,confirmLabel:`Delete rows`,busy:u===`clean`,onConfirm:O,onCancel:()=>_(!1)})}),u===`clean`&&(0,I.jsx)(`div`,{className:`mt-3 h-1.5 rounded-pill bg-panel overflow-hidden`,role:`progressbar`,"aria-label":`Cleaning`,children:(0,I.jsx)(`div`,{className:`h-full w-full rounded-pill xspeed-anim-sweep`,style:{backgroundImage:`linear-gradient(90deg, var(--primary) 0%, #5BD6CE 50%, var(--primary) 100%)`}})})]}),f&&(0,I.jsx)(V,{tone:`danger`,title:`Database error`,body:f}),m&&!f&&(0,I.jsx)(V,{tone:`success`,title:`Done`,body:m}),A.length>0&&(0,I.jsx)(`div`,{className:`border border-line bg-paper rounded-card overflow-hidden`,children:A.map(([e,t],r)=>(0,I.jsx)(br,{fieldKey:e,spec:t,value:n[e],labels:o,onChange:t=>ee(e,t),first:r===0},e))}),(0,I.jsx)(ar,{saving:v}),(0,I.jsx)(vr,{id:`migration`})]})}function br({fieldKey:e,spec:t,value:n,labels:r,onChange:i,first:a}){let o=t.label??e,s=e===`included_types`;return(0,I.jsxs)(`div`,{className:`px-4 sm:px-5 py-4 ${a?``:`border-t border-line`}`,children:[(0,I.jsxs)(`div`,{className:`flex items-start justify-between gap-3 sm:gap-4`,children:[(0,I.jsxs)(`div`,{className:`min-w-0 pr-2`,children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:o}),t.description&&(0,I.jsx)(`div`,{className:`text-[12px] text-muted mt-0.5`,children:t.description})]}),!s&&(0,I.jsx)(`div`,{className:`shrink-0`,children:Sr(t,n,i,o)})]}),s&&Object.keys(r).length>0&&(0,I.jsx)(xr,{value:Array.isArray(n)?n:[],labels:r,onChange:i})]})}function xr({value:e,labels:t,onChange:n}){let r=t=>{n(e.includes(t)?e.filter(e=>e!==t):[...e,t])};return(0,I.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mt-3`,children:Object.entries(t).map(([t,n])=>(0,I.jsx)(`button`,{type:`button`,onClick:()=>r(t),className:`text-[12px] px-2.5 py-1 rounded border transition-colors ${e.includes(t)?`bg-primary border-primary text-on-primary`:`border-line text-ink-soft hover:bg-panel`}`,children:n},t))})}function Sr(e,t,n,r){switch(e.type){case`bool`:return(0,I.jsx)(gn,{checked:!!t,onChange:n,label:r});case`enum`:return(0,I.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:(e.options??[]).map(r=>{let i=t===r,a=e.option_labels?.[r]??r;return(0,I.jsx)(`button`,{type:`button`,onClick:()=>n(r),className:`text-[12px] px-2.5 py-1 rounded border transition-colors ${i?`bg-primary border-primary text-on-primary`:`border-line text-ink-soft hover:bg-panel`}`,children:a},r)})});default:return na(e,t,n,r)}}function Cr(e,t,n){return e.dependsOn?wr(e.dependsOn,t,n,new Set):!0}function wr(e,t,n,r){if(`all`in e)return e.all.every(e=>wr(e,t,n,r));if(`any`in e)return e.any.some(e=>wr(e,t,n,r));if(r.has(e.field))return!0;let i=n[e.field];if(i?.dependsOn){let a=new Set(r);if(a.add(e.field),!wr(i.dependsOn,t,n,a))return!1}let a=t[e.field];return Object.prototype.hasOwnProperty.call(e,`value`)?a===e.value:!!a}function Tr(e,t,n){return(0,y.useMemo)(()=>Object.entries(e).filter(([r,i])=>Cr(i,t,e)&&(n?n(r,i):!0)),[e,t])}function Er({module:e,onSaved:t,getModule:n}){let[r,i]=(0,y.useState)(e.settings),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(!1),h=(0,y.useRef)(null),g=(0,y.useRef)(!0),_=(0,y.useRef)(JSON.stringify(e.settings)),v=(0,y.useRef)(r);(0,y.useEffect)(()=>{v.current=r},[r]),(0,y.useEffect)(()=>{if(g.current){g.current=!1;return}if(JSON.stringify(r)!==_.current)return h.current&&window.clearTimeout(h.current),h.current=window.setTimeout(async()=>{m(!0);let n=r;try{let{next:r,dirty:a}=or(n,await B.updateModuleSettings(e.slug,n),v.current);i(r),_.current=a?``:JSON.stringify(r),t?.(r)}catch(e){u(e instanceof Error?e.message:`Save failed`)}finally{m(!1)}},600),()=>{h.current&&window.clearTimeout(h.current)}},[r,e.slug]);let b=(e,t)=>i(n=>({...n,[e]:t})),x=async(e,t,n=`POST`,r)=>{c(e),u(null),f(null);try{let i=await B.request(t,{method:n,body:r?JSON.stringify(r):void 0});t===`/cloudflare/verify`&&o(i),i.ok?f(`Cloudflare: ${Dr(e)} succeeded.`):u(i.body?.message||`Cloudflare API returned HTTP ${i.status}.`)}catch(e){u(e instanceof Error?e.message:`Request failed`)}finally{c(null)}},S=String(r.auth_method??`token`),C=Tr(e.schema,r,e=>!(S===`token`&&(e===`email`||e===`api_key`)||S===`key`&&e===`api_token`));return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[a?.ok?(0,I.jsx)(oe,{size:18,className:`text-emerald-500 shrink-0`}):a?(0,I.jsx)(ae,{size:18,className:`text-rose-500 shrink-0`}):(0,I.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-neutral-300 dark:bg-neutral-600 shrink-0 ml-2`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:a?.ok?`Connected: ${a.body.result?.name??`zone`}`:a?`Verification failed`:`Not verified yet`}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400`,children:a?.ok?`Plan: ${a.body.result?.plan?.name??`unknown`}`:`Fill in credentials below, then click Verify.`})]})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:()=>x(`verify`,`/cloudflare/verify`),disabled:s!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors disabled:opacity-50`,children:[(0,I.jsx)(P,{size:13,className:s===`verify`?`animate-spin`:``}),`Verify`]}),(0,I.jsxs)(`button`,{type:`button`,onClick:()=>x(`purge`,`/cloudflare/purge`),disabled:s!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-accent text-white hover:bg-primary-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed`,children:[s===`purge`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(lt,{size:13}),`Purge Cloudflare`]})]})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 mt-3`,children:[(0,I.jsx)(`button`,{type:`button`,onClick:()=>x(`devon`,`/cloudflare/dev-mode`,`POST`,{on:!0}),disabled:s!==null,className:`text-[12px] px-2.5 py-1 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors disabled:opacity-50`,children:`Dev mode: ON`}),(0,I.jsx)(`button`,{type:`button`,onClick:()=>x(`devoff`,`/cloudflare/dev-mode`,`POST`,{on:!1}),disabled:s!==null,className:`text-[12px] px-2.5 py-1 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors disabled:opacity-50`,children:`Dev mode: OFF`})]})]}),l&&(0,I.jsx)(V,{tone:`danger`,title:`Cloudflare error`,body:l}),d&&!l&&(0,I.jsx)(V,{tone:`success`,title:`Done`,body:d}),(0,I.jsx)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg overflow-hidden`,children:C.map(([e,t],n)=>(0,I.jsx)(Or,{fieldKey:e,spec:t,value:r[e],onChange:t=>b(e,t),first:n===0},e))}),(0,I.jsx)(ar,{saving:p}),(0,I.jsxs)(`div`,{className:`pt-2`,children:[(0,I.jsx)(`div`,{className:`text-[11px] uppercase tracking-wider text-neutral-500 dark:text-neutral-400 font-medium mb-2`,children:`Automatic Platform Optimization`}),(0,I.jsx)(Qn,{demo:`network-cloudflare`,children:(0,I.jsx)(H,{panel:`CloudflareApoPanel`,slug:`cloudflare-apo`,getModule:n,onSaved:t})})]})]})}function Dr(e){switch(e){case`verify`:return`verify`;case`purge`:return`purge`;case`devon`:return`dev mode on`;case`devoff`:return`dev mode off`;default:return`action`}}function Or({fieldKey:e,spec:t,value:n,onChange:r,first:i}){let a=t.label??e;return(0,I.jsxs)(`div`,{"data-field-anchor":`cloudflare:${e}`,className:`xspeed-field px-4 sm:px-5 py-4 flex items-start justify-between gap-3 sm:gap-4 ${i?``:`border-t border-neutral-200 dark:border-neutral-800`}`,children:[(0,I.jsxs)(`div`,{className:`min-w-0 pr-2`,children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:a}),t.description&&(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400 mt-0.5`,children:t.description})]}),(0,I.jsx)(`div`,{className:`shrink-0`,children:kr(t,n,r,a)})]})}function kr(e,t,n,r){switch(e.type){case`bool`:return(0,I.jsx)(gn,{checked:!!t,onChange:n,label:r});case`enum`:return(0,I.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:(e.options??[]).map(r=>{let i=t===r,a=e.option_labels?.[r]??r;return(0,I.jsx)(`button`,{type:`button`,onClick:()=>n(r),className:`text-[12px] px-2.5 py-1 rounded border transition-colors ${i?`bg-accent border-accent text-white`:`border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800`}`,children:a},r)})});case`string`:return(0,I.jsx)(`input`,{type:`text`,value:t==null?``:String(t),onChange:e=>n(e.target.value),className:`w-64`,autoComplete:`off`,"aria-label":r});default:return na(e,t,n,r)}}function Ar({module:e,onSaved:t}){let[n,r]=(0,y.useState)(e.settings),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(``),[c,l]=(0,y.useState)(null),[u,d]=(0,y.useState)(null),[f,p]=(0,y.useState)(null),[m,h]=(0,y.useState)(null),[g,_]=(0,y.useState)(!1),[v,b]=(0,y.useState)(!1),[x,S]=(0,y.useState)(!1),C=(0,y.useRef)(null),w=(0,y.useRef)(!0),T=(0,y.useRef)(JSON.stringify(e.settings)),ee=(0,y.useRef)(n);(0,y.useEffect)(()=>{ee.current=n},[n]);let E=async()=>{l(`detect`),d(null);try{let[e,t]=await Promise.all([B.request(`/object-cache/detect`),B.request(`/object-cache/snippet`)]);a(e),s(t.snippet)}catch(e){d(e instanceof Error?e.message:`Detection failed`)}finally{l(null)}};(0,y.useEffect)(()=>{E()},[]),(0,y.useEffect)(()=>{if(w.current){w.current=!1;return}if(JSON.stringify(n)!==T.current)return C.current&&window.clearTimeout(C.current),C.current=window.setTimeout(async()=>{S(!0);let i=n;try{let{next:n,dirty:a}=or(i,await B.updateModuleSettings(e.slug,i),ee.current);r(n),T.current=a?``:JSON.stringify(n),t?.(n),s((await B.request(`/object-cache/snippet`)).snippet)}catch(e){d(e instanceof Error?e.message:`Save failed`)}finally{S(!1)}},600),()=>{C.current&&window.clearTimeout(C.current)}},[n,e.slug]);let te=(e,t)=>r(n=>({...n,[e]:t})),D=async()=>{l(`flush`),d(null),p(null);try{p((await B.request(`/object-cache/flush`,{method:`POST`})).ok?`Object cache flushed.`:`Flush returned false — cache backend may not be active.`)}catch(e){d(e instanceof Error?e.message:`Flush failed`)}finally{l(null)}},ne=async()=>{l(`test`),d(null),p(null),h(null);try{let e=await B.request(`/object-cache/test-connection`,{method:`POST`,body:JSON.stringify(n)});h(e),e.ok||d(e.message)}catch(e){d(e instanceof Error?e.message:`Connection test failed`)}finally{l(null)}},re=async()=>{l(`enable`),d(null),p(null),_(!1);try{let e=await B.request(`/object-cache/enable`,{method:`POST`,body:JSON.stringify(n)});h(e.test??null),e.ok?(p(e.message),a(e.detect)):(d(e.message),e.steps.drop_in&&!e.steps.wp_config&&_(!0)),await E()}catch(e){d(e instanceof Error?e.message:`Enable failed`)}finally{l(null)}},O=async()=>{l(`disable`),d(null),p(null);try{p((await B.request(`/object-cache/disable`,{method:`POST`})).message),h(null),_(!1),await E()}catch(e){d(e instanceof Error?e.message:`Disable failed`)}finally{l(null)}},k=async()=>{try{await navigator.clipboard.writeText(o),b(!0),window.setTimeout(()=>b(!1),1500)}catch{d(`Clipboard write blocked — select + copy the snippet manually.`)}},A=String(n.backend??`redis`),j=(0,y.useMemo)(()=>Object.entries(e.schema),[e.schema]).filter(([e])=>!(A===`redis`&&(e===`memcached_host`||e===`memcached_port`)||A===`memcached`&&(e===`redis_host`||e===`redis_port`||e===`redis_user`||e===`redis_password`||e===`redis_database`))),ie=i?i.wp_cache_active?{tone:`ok`,label:`Active: ${i.drop_in_label||i.backend}`,sub:`Backend: ${i.backend}`}:{tone:`warn`,label:`No persistent object cache`,sub:`WordPress is using its built-in in-memory cache (resets every request).`}:null;return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[ie?.tone===`ok`?(0,I.jsx)(oe,{size:18,className:`text-emerald-500 shrink-0`}):ie?.tone===`warn`?(0,I.jsx)(ae,{size:18,className:`text-amber-500 shrink-0`}):(0,I.jsx)(Ze,{size:18,className:`text-neutral-400 shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:ie?ie.label:`Detecting…`}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400`,children:ie?.sub??``})]})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:E,disabled:c!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors disabled:opacity-50`,children:[(0,I.jsx)(P,{size:13,className:c===`detect`?`animate-spin`:``}),`Re-detect`]}),i?.drop_in_installed&&(0,I.jsxs)(`button`,{type:`button`,onClick:D,disabled:c!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors disabled:opacity-50`,children:[c===`flush`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(lt,{size:13}),`Flush`]})]})]}),i&&(()=>{let e=A===`redis`?!!i.class_available.Redis:!!(i.class_available.Memcached||i.class_available.Memcache);return(0,I.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 text-[12px]`,children:[(0,I.jsxs)(`span`,{className:`px-2 py-0.5 rounded border border-emerald-300 bg-emerald-50 text-emerald-700 dark:border-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300 whitespace-nowrap`,children:[A===`redis`?`Redis`:`Memcached`,` ready`]}),(0,I.jsx)(`span`,{className:`text-neutral-500 dark:text-neutral-400`,children:e?`Native ${A===`redis`?`phpredis`:`memcached`} extension detected — fastest path.`:`xSpeed uses its built-in client — no extension to install.`})]})})()]}),u&&(0,I.jsx)(V,{tone:`danger`,title:`Error`,body:u}),f&&!u&&(0,I.jsx)(V,{tone:`success`,title:`Done`,body:f}),(0,I.jsx)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5`,children:(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsxs)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50 flex items-center gap-2`,children:[(0,I.jsx)(vt,{size:15,className:`text-accent`}),`One-click setup`]}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400 mt-0.5`,children:i?.drop_in_installed?`Object cache is installed. Disable to remove the drop-in and clean wp-config.php.`:`Test the ${A} connection, then enable — xSpeed writes the drop-in and wp-config.php for you. No manual steps.`}),m&&(0,I.jsxs)(`div`,{className:`mt-2 inline-flex items-center gap-1.5 text-[12px] px-2 py-1 rounded ${m.ok?`bg-emerald-50 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300`:`bg-red-50 text-red-700 dark:bg-red-900/30 dark:text-red-300`}`,children:[m.ok?(0,I.jsx)(oe,{size:13}):(0,I.jsx)(ae,{size:13}),m.message,m.latency_ms!=null&&m.ok?` (${m.latency_ms} ms)`:``]})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:ne,"data-field-anchor":`object-cache:connection_test`,disabled:c!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors disabled:opacity-50`,children:[c===`test`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(He,{size:13}),`Test connection`]}),i?.drop_in_installed?(0,I.jsxs)(`button`,{type:`button`,onClick:O,disabled:c!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-red-300 dark:border-red-800 text-red-700 dark:text-red-300 hover:bg-red-50 dark:hover:bg-red-900/20 transition-colors disabled:opacity-50`,children:[c===`disable`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(Ue,{size:13}),`Disable`]}):(0,I.jsxs)(`button`,{type:`button`,onClick:re,disabled:c!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-accent text-white hover:bg-primary-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed`,children:[c===`enable`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(Ue,{size:13}),`Enable object cache`]})]})]})}),(0,I.jsx)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg overflow-hidden`,children:j.map(([e,t],r)=>(0,I.jsx)(jr,{fieldKey:e,spec:t,value:n[e],onChange:t=>te(e,t),first:r===0},e))}),g&&(0,I.jsxs)(`div`,{className:`border border-amber-200 dark:border-amber-800 bg-amber-50/40 dark:bg-amber-900/10 rounded-lg p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3 mb-3`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:`Manual step needed — wp-config.php isn’t writable`}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400 mt-0.5`,children:`The drop-in was installed, but xSpeed couldn’t edit wp-config.php automatically. Paste this above the “That’s all, stop editing!” comment to finish.`})]}),(0,I.jsxs)(`button`,{type:`button`,onClick:k,disabled:!o,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors disabled:opacity-50`,children:[v?(0,I.jsx)(oe,{size:13,className:`text-emerald-500`}):(0,I.jsx)(le,{size:13}),v?`Copied`:`Copy`]})]}),(0,I.jsx)(`pre`,{className:`text-[11px] leading-relaxed font-mono whitespace-pre-wrap break-all bg-neutral-50 dark:bg-neutral-950 text-neutral-700 dark:text-neutral-300 border border-neutral-200 dark:border-neutral-800 rounded p-3 max-h-72 overflow-auto`,children:o||`// Adjust the settings above to generate a snippet.`})]}),(0,I.jsx)(ar,{saving:x})]})}function jr({fieldKey:e,spec:t,value:n,onChange:r,first:i}){let a=t.label??e;return(0,I.jsxs)(`div`,{className:`px-4 sm:px-5 py-4 flex items-start justify-between gap-3 sm:gap-4 ${i?``:`border-t border-neutral-200 dark:border-neutral-800`}`,children:[(0,I.jsxs)(`div`,{className:`min-w-0 pr-2`,children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:a}),t.description&&(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400 mt-0.5`,children:t.description})]}),(0,I.jsx)(`div`,{className:`shrink-0`,children:Mr(t,n,r,a)})]})}function Mr(e,t,n,r){switch(e.type){case`bool`:return(0,I.jsx)(gn,{checked:!!t,onChange:n,label:r});case`enum`:return(0,I.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:(e.options??[]).map(r=>{let i=t===r,a=e.option_labels?.[r]??r;return(0,I.jsx)(`button`,{type:`button`,onClick:()=>n(r),className:`text-[12px] px-2.5 py-1 rounded border transition-colors ${i?`bg-accent border-accent text-white`:`border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800`}`,children:a},r)})});case`string`:return(0,I.jsx)(`input`,{type:`text`,value:t==null?``:String(t),onChange:e=>n(e.target.value),className:`w-56`,autoComplete:`off`,"aria-label":r});default:return na(e,t,n,r)}}var Nr=`xspeed_migration_applied_${typeof window<`u`?window.location.host:``}`;function Pr(){if(typeof window>`u`)return[];try{let e=window.localStorage.getItem(Nr),t=e?JSON.parse(e):[];return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}}function Fr(e){if(!(typeof window>`u`))try{window.localStorage.setItem(Nr,JSON.stringify(e))}catch{}}var Ir={cache:`Page Cache`,minify:`Minify`,lazy:`Lazy Load`,preloader:`Preloader`,"browser-cache":`Browser Cache`,"object-cache":`Object Cache`},Lr={cache_enabled:`Enable caching`,cache_expiry:`Cache lifetime (hours)`,mobile_separate:`Separate mobile cache`,excluded_urls:`Excluded URLs`,excluded_cookies:`Excluded cookies`,bypass_user_agents:`Bypass user agents`,ignored_query_params:`Ignored query params`,minify_html:`Minify HTML`,minify_css:`Minify CSS`,minify_js:`Minify JS`,lazy_images:`Lazy-load images`,lazy_iframes:`Lazy-load iframes`,lazy_videos:`Lazy-load videos`,enabled:`Enabled`,schedule:`Schedule`};function Rr(e){return Lr[e]??e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function zr(e){return typeof e==`boolean`?e?`On`:`Off`:Array.isArray(e)?e.length?`${e.length} item${e.length===1?``:`s`}: ${e.join(`, `)}`:`—`:e==null||e===``?`—`:String(e)}function Br({patch:e,title:t}){return(0,I.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[(0,I.jsx)(`div`,{className:`text-[11px] font-medium text-muted uppercase tracking-wider`,children:t}),Object.entries(e).map(([e,t])=>(0,I.jsxs)(`div`,{className:`rounded-card overflow-hidden bg-panel`,children:[(0,I.jsx)(`div`,{className:`px-4 pt-2.5 pb-1.5 text-[12px] font-semibold text-ink`,children:Ir[e]??Rr(e)}),Object.entries(t).map(([e,t])=>(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-4 py-2`,children:[(0,I.jsx)(`span`,{className:`text-[12px] text-muted shrink-0`,children:Rr(e)}),(0,I.jsx)(`span`,{className:`text-[12px] text-ink text-right truncate`,title:zr(t),children:zr(t)})]},e))]},e))]})}function Vr(e){let t=Kt(),n=t===`pro`||t===`trial`,[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)({}),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(null),[_,v]=(0,y.useState)(null),[b,x]=(0,y.useState)({}),[S,C]=(0,y.useState)(null),[T,ee]=(0,y.useState)(()=>Pr()),[E,te]=(0,y.useState)(null);(0,y.useEffect)(()=>{Fr(T)},[T]);let[D,ne]=(0,y.useState)(``),[re,O]=(0,y.useState)(null),[k,A]=(0,y.useState)(null),[j,ie]=(0,y.useState)(null),[ae,M]=(0,y.useState)(null),[se,ce]=(0,y.useState)(!1),le=async()=>{c({source:`*`,op:`status`}),m(null);try{i((await B.request(`/migration/status`)).sources)}catch(e){m(e instanceof Error?e.message:`Status check failed`)}finally{c(null)}},ue=async()=>{try{v((await B.request(`/migration-pro/profiles`)).profiles)}catch{v([])}};(0,y.useEffect)(()=>{le(),n&&ue()},[n]);let fe=async e=>{c({source:e,op:`preview`}),m(null);try{let t=await B.request(`/migration/preview`,{method:`POST`,body:JSON.stringify({source:e})});o(n=>({...n,[e]:t.patch}))}catch(e){m(e instanceof Error?e.message:`Preview failed`)}finally{c(null)}},N=e=>{e.active?g(e):ge(e.id)},ge=async e=>{g(null),c({source:e,op:`apply`}),m(null),f(null);try{let t=await B.request(`/migration/apply`,{method:`POST`,body:JSON.stringify({source:e})});u(t=>[...t,e]);let n=t.source_label||`the source plugin`;f({title:`Imported settings from ${n}`,body:t.deactivated?`Your ${n} settings are now active in xSpeed, and ${n} has been deactivated so the two caching plugins don't conflict. Review the imported values in the panels and re-enable anything you want to tweak.`:`Your ${n} settings are now active in xSpeed. Review the imported values in the panels. (${n} was already inactive, so nothing was changed there.)`}),le()}catch(e){m(e instanceof Error?e.message:`Apply failed`)}finally{c(null)}},_e=async e=>{if(b[e]){x(t=>{let n={...t};return delete n[e],n});return}C({id:e,op:`preview`}),m(null);try{let t=await B.request(`/migration-pro/profiles/preview`,{method:`POST`,body:JSON.stringify({profile:e})});x(n=>({...n,[e]:t.patch}))}catch(e){m(e instanceof Error?e.message:`Preview failed`)}finally{C(null)}},ve=e=>te(e),ye=async e=>{te(null),C({id:e,op:`apply`}),m(null);try{await B.request(`/migration-pro/profiles/apply`,{method:`POST`,body:JSON.stringify({profile:e})}),ee(t=>t.includes(e)?t:[...t,e])}catch(e){m(e instanceof Error?e.message:`Apply failed`)}finally{C(null)}},be=async()=>{A(`export`),m(null),ie(null);try{let e=await B.request(`/migration-pro/profile/export`),t=JSON.stringify(e.profile,null,2),n=new Blob([t],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`xspeed-profile.json`,document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(r),ie(`Profile exported — saved as xspeed-profile.json.`)}catch(e){m(e instanceof Error?e.message:`Export failed`)}finally{A(null)}},xe=e=>{let t=e instanceof Error?e.message:``;return/422|format|profile|parse|json/i.test(t)||!t?`That doesn’t look like an xSpeed profile. Paste the JSON from an exported profile, or choose a .json file.`:t},Se=async()=>{if(D.trim()){A(`preview`),M(null),ie(null),O(null);try{O((await B.request(`/migration-pro/profile/import/preview`,{method:`POST`,body:JSON.stringify({profile:D.trim()})})).patch)}catch(e){M(xe(e))}finally{A(null)}}},Ce=()=>{D.trim()&&(M(null),ce(!0))},we=async()=>{ce(!1),A(`apply`),M(null),ie(null);try{let e=await B.request(`/migration-pro/profile/import/apply`,{method:`POST`,body:JSON.stringify({profile:D.trim()})}),t=Object.keys(e.results).length;ie(`Imported — applied settings to ${t} module${t===1?``:`s`}.`),O(null),ne(``)}catch(e){M(xe(e))}finally{A(null)}},Te=e=>{let t=new FileReader;t.onload=()=>ne(String(t.result??``)),t.readAsText(e)};return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(Oe,{size:18,className:`text-primary shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:`Migrate from another plugin`}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:`Read settings from a detected caching plugin and apply the equivalent xSpeed configuration.`})]})]}),(0,I.jsxs)(`button`,{type:`button`,onClick:le,disabled:s!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-line text-ink-soft hover:bg-panel transition-colors disabled:opacity-50`,children:[(0,I.jsx)(P,{size:13,className:s?.op===`status`?`animate-spin`:``}),`Re-scan`]})]})}),p&&(0,I.jsx)(V,{tone:`danger`,title:`Migration error`,body:p}),d&&(0,I.jsx)(V,{tone:`success`,title:d.title,body:d.body}),r?.map(e=>{let t=l.includes(e.id)||e.imported,n=a[e.id],r=e.mapped_count,i=`${r} ${r===1?`setting`:`settings`}`,o=t?`Imported${e.active?``:` · plugin deactivated`}`:e.detected?`Detected — imports ${i}`:`Not installed (or settings not present)`;return(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(`span`,{className:`w-2 h-2 rounded-full shrink-0 ${t||e.detected?`bg-success`:`bg-line-strong`}`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:e.label}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:o})]})]}),(0,I.jsx)(`div`,{className:`flex items-center gap-2 shrink-0`,children:t?(0,I.jsxs)(`span`,{className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 text-success font-medium`,children:[(0,I.jsx)(oe,{size:14}),`Imported`]}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`button`,{type:`button`,onClick:()=>fe(e.id),disabled:!e.detected||s!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-line text-ink-soft hover:bg-panel transition-colors disabled:opacity-40 disabled:cursor-not-allowed`,children:[s?.source===e.id&&s?.op===`preview`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(he,{size:13}),`Preview`]}),(0,I.jsxs)(`button`,{type:`button`,onClick:()=>N(e),disabled:!e.detected||s!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-primary text-on-primary hover:bg-primary-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed`,children:[s?.source===e.id&&s?.op===`apply`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(w,{size:13}),`Import`]})]})})]}),h?.id===e.id&&(0,I.jsx)(`div`,{className:`mt-4`,children:(0,I.jsx)(_r,{title:`${e.label} will be deactivated after import`,body:(0,I.jsxs)(I.Fragment,{children:[`xSpeed will import `,e.label,`’s `,i,`, then deactivate`,` `,e.label,` — two page-caching plugins can’t run together (they double-cache and fight over the cache drop-in, breaking caching for both). Your `,e.label,` settings stay saved in its own options, so you can reactivate it anytime to switch back.`]}),confirmLabel:`Import & switch to xSpeed`,cancelLabel:`Cancel`,busy:s?.source===e.id&&s?.op===`apply`,onConfirm:()=>ge(e.id),onCancel:()=>g(null)})}),n&&(0,I.jsx)(Br,{patch:n,title:`Translation preview`})]},e.id)}),(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(mt,{size:18,className:`text-primary shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,I.jsx)(`span`,{className:`font-medium text-ink`,children:`One-click cache profiles`}),!n&&(0,I.jsx)(de,{size:12,className:`text-warning shrink-0`})]}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:`Apply a curated, best-practice xSpeed setup for your site type — no manual tuning.`})]})]}),n?_===null?(0,I.jsx)(`div`,{className:`mt-4 text-[12px] text-muted text-center py-4`,children:`Loading…`}):_.length===0?(0,I.jsx)(`div`,{className:`mt-4 text-[12px] text-muted text-center py-4`,children:`No profiles available.`}):(0,I.jsx)(`div`,{className:`mt-4 space-y-3`,children:_.map(e=>{let t=T.includes(e.id),n=b[e.id],r=!!n,i=E?.id===e.id;return(0,I.jsxs)(`div`,{className:`border border-line rounded-card p-4`,children:[(0,I.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:e.label}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted mt-0.5`,children:e.description})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:()=>_e(e.id),disabled:S!==null,"aria-expanded":r?`true`:`false`,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-line text-ink-soft hover:bg-panel transition-colors disabled:opacity-40`,children:[S?.id===e.id&&S?.op===`preview`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):r?(0,I.jsx)(me,{size:13}):(0,I.jsx)(he,{size:13}),r?`Hide preview`:`Preview`]}),(0,I.jsxs)(`button`,{type:`button`,onClick:()=>ve(e),disabled:S!==null||t,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-primary text-on-primary hover:bg-primary-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed`,children:[S?.id===e.id&&S?.op===`apply`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):t?(0,I.jsx)(oe,{size:13}):(0,I.jsx)(w,{size:13}),t?`Applied`:`Apply`]})]})]}),n&&(0,I.jsx)(Br,{patch:n,title:`Will set`}),i&&(0,I.jsx)(`div`,{className:`mt-4`,children:(0,I.jsx)(_r,{title:`Apply the "${e.label}" profile?`,body:(0,I.jsxs)(I.Fragment,{children:[`This overwrites your site-wide cache settings (cache lifetime, exclusions, minify & lazy options) with the `,e.label,` preset. Your existing safety exclusions are kept. You can re-tune anything afterward in each panel.`]}),confirmLabel:`Apply profile`,cancelLabel:`Cancel`,busy:S?.id===e.id&&S?.op===`apply`,onConfirm:()=>ye(e.id),onCancel:()=>te(null)})})]},e.id)})}):(0,I.jsx)(`div`,{className:`mt-4 rounded-card border border-dashed border-line-strong px-4 py-3 text-[12px] text-muted`,children:`Curated one-click profiles (Blog, WooCommerce, Membership, LMS, News) and portable save\xA0&\xA0share are a Pro feature. Activate Pro to unlock them here.`})]}),n&&(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(pe,{size:18,className:`text-primary shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:`Save & share your config`}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:`Export this site’s xSpeed settings as a portable profile, then import it on another site.`})]})]}),(0,I.jsxs)(`button`,{type:`button`,onClick:be,disabled:k!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-primary text-on-primary hover:bg-primary-hover transition-colors disabled:opacity-40 shrink-0`,children:[k===`export`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(pe,{size:13}),`Export profile`]})]}),(0,I.jsxs)(`div`,{className:`mt-3 text-[11px] text-muted leading-snug`,children:[`For your security, API keys, tokens, and other secrets are `,(0,I.jsx)(`strong`,{children:`excluded`}),` from the exported file — re-enter them manually on the destination site after importing.`]}),j&&!ae&&(0,I.jsx)(`div`,{className:`mt-3`,children:(0,I.jsx)(V,{tone:`success`,title:`Done`,body:j})}),(0,I.jsxs)(`div`,{className:`mt-5`,children:[(0,I.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider font-medium text-muted mb-1`,children:`Import a profile`}),(0,I.jsx)(`textarea`,{rows:4,value:D,onChange:e=>{ne(e.target.value),O(null)},placeholder:`Paste an xSpeed profile JSON here, or choose a .json file below.`,className:`w-full font-mono text-[11px]`,"aria-label":`Profile JSON to import`}),(0,I.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2`,children:[(0,I.jsxs)(`label`,{className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-line text-ink-soft hover:bg-panel transition-colors cursor-pointer`,children:[(0,I.jsx)(pt,{size:13}),`Choose file`,(0,I.jsx)(`input`,{type:`file`,accept:`application/json,.json`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&Te(t)}})]}),(0,I.jsxs)(`button`,{type:`button`,onClick:Se,disabled:k!==null||!D.trim(),className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-line text-ink-soft hover:bg-panel transition-colors disabled:opacity-40`,children:[k===`preview`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(he,{size:13}),`Preview`]}),(0,I.jsxs)(`button`,{type:`button`,onClick:Ce,disabled:k!==null||!D.trim(),className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-primary text-on-primary hover:bg-primary-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed`,children:[k===`apply`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(w,{size:13}),`Import & apply`]})]}),ae&&(0,I.jsx)(`div`,{className:`mt-3`,children:(0,I.jsx)(V,{tone:`danger`,title:`Import error`,body:ae})}),se&&(0,I.jsx)(`div`,{className:`mt-3`,children:(0,I.jsx)(_r,{title:`Apply this imported profile?`,body:(0,I.jsx)(I.Fragment,{children:`This overwrites your site-wide xSpeed settings with the values in the imported profile (cache lifetime, exclusions, minify & lazy options, …). Secrets aren’t included — re-enter them after. You can re-tune anything afterward in each panel.`}),confirmLabel:`Import & apply`,cancelLabel:`Cancel`,busy:k===`apply`,onConfirm:we,onCancel:()=>ce(!1)})}),re&&(0,I.jsx)(Br,{patch:re,title:`Will import`})]})]})]})}function Hr({module:e}){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(!1),l=R(),u=String(e.settings.support_url??`https://wpdeveloper.com/support`),d=async()=>{i(!0),o(null);try{n(await B.request(`/support/snapshot`))}catch(e){o(e instanceof Error?e.message:`Snapshot failed`)}finally{i(!1)}};return(0,y.useEffect)(()=>{d()},[]),(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5`,children:(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(Ne,{size:18,className:`text-accent shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:`Help & Support`}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400`,children:`Open a ticket with your system snapshot already attached so we can help faster.`})]})]}),!l.hide_help_links&&(0,I.jsxs)(`a`,{href:u,target:`_blank`,rel:`noopener noreferrer`,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-accent text-white hover:bg-primary-hover transition-colors`,children:[(0,I.jsx)(N,{size:13}),`Open ticket`]})]})}),a&&(0,I.jsx)(V,{tone:`danger`,title:`Support snapshot error`,body:a}),(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3 mb-3`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:`System snapshot`}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400`,children:`Paste this into your support ticket. License key is masked — first 4 + last 4 only.`})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:d,disabled:r,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors disabled:opacity-50`,children:[(0,I.jsx)(P,{size:13,className:r?`animate-spin`:``}),`Refresh`]}),(0,I.jsxs)(`button`,{type:`button`,onClick:async()=>{if(t)try{await navigator.clipboard.writeText(t.markdown),c(!0),window.setTimeout(()=>c(!1),1500)}catch{o(`Clipboard blocked. Select the text below and copy manually.`)}},disabled:!t,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors disabled:opacity-50`,children:[s?(0,I.jsx)(oe,{size:13,className:`text-emerald-500`}):(0,I.jsx)(le,{size:13}),s?`Copied`:`Copy markdown`]})]})]}),t?(0,I.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-2 text-[12px]`,children:Object.entries(t.snapshot).map(([e,t])=>(0,I.jsxs)(`div`,{className:`flex justify-between gap-3 border-b border-neutral-100 dark:border-neutral-800 pb-1`,children:[(0,I.jsx)(`span`,{className:`text-neutral-500 dark:text-neutral-400 font-mono`,children:e}),(0,I.jsx)(`span`,{className:`text-neutral-900 dark:text-neutral-100 text-right truncate font-mono`,children:Array.isArray(t)?t.join(`, `):typeof t==`boolean`?t?`yes`:`no`:String(t)})]},e))}):(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400 italic`,children:`Loading snapshot…`})]}),(()=>{let e=l.footer_credit?.trim();return e?(0,I.jsx)(`div`,{className:`text-[11px] text-neutral-400 dark:text-neutral-500 text-center pt-1`,children:e}):l.hide_help_links?null:(0,I.jsxs)(`div`,{className:`text-[11px] text-neutral-400 dark:text-neutral-500 text-center pt-1`,children:[`Built by`,` `,(0,I.jsx)(`a`,{href:`https://wpdeveloper.com`,target:`_blank`,rel:`noopener noreferrer`,className:`hover:text-accent`,children:`WPDeveloper`})]})})()]})}function Ur(e){let t=Math.max(0,Math.floor(Date.now()/1e3)-e);return t<60?`just now`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}function Wr(){let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),c=async()=>{a(!0);try{r(await B.request(`/mcp/activity?limit=50`))}catch{r({entries:[],summary:{total:0,failed:0,last_ts:0,top_tool:``}})}finally{a(!1)}};(0,y.useEffect)(()=>{e&&n===null&&c()},[e]);let l=async()=>{a(!0);try{r(await B.request(`/mcp/activity/clear`,{method:`POST`}))}finally{a(!1),s(!1)}},u=n?.summary,d=n?.entries??[];return(0,I.jsxs)(`div`,{className:`mt-4 rounded-card border border-line`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:()=>t(e=>!e),"aria-expanded":e,className:`flex w-full items-center gap-2 px-3 py-2.5 text-left`,children:[e?(0,I.jsx)(k,{size:14,className:`text-faint`}):(0,I.jsx)(j,{size:14,className:`text-faint`}),(0,I.jsx)(Ye,{size:14,className:`text-muted`}),(0,I.jsx)(`span`,{className:`text-[13px] font-medium text-ink`,children:`Activity log`}),u&&u.total>0&&(0,I.jsxs)(`span`,{className:`text-[11px] text-faint`,children:[u.total,` call`,u.total===1?``:`s`,u.failed>0&&(0,I.jsxs)(`span`,{className:`text-danger`,children:[` · `,u.failed,` failed`]})]}),(0,I.jsx)(`span`,{className:`ml-auto text-[11px] text-faint`,children:`what the AI did`})]}),e&&(0,I.jsxs)(`div`,{className:`border-t border-line px-3 py-3`,children:[(0,I.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,I.jsx)(`p`,{className:`text-[11px] text-muted`,children:`Every tool call an assistant dispatched to this site, newest first.`}),(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,I.jsx)(`button`,{type:`button`,onClick:c,disabled:i,"aria-label":`Refresh activity log`,className:`rounded border border-line p-1.5 text-muted hover:bg-panel disabled:opacity-40`,children:(0,I.jsx)(P,{size:12,className:i?`animate-spin`:``})}),d.length>0&&(0,I.jsx)(`button`,{type:`button`,onClick:()=>o?l():s(!0),onBlur:()=>s(!1),disabled:i,className:`rounded border px-2 py-1 text-[11px] disabled:opacity-40 ${o?`border-danger text-danger`:`border-line text-muted hover:bg-panel`}`,children:o?`Confirm clear`:`Clear`})]})]}),d.length===0?(0,I.jsx)(`p`,{className:`py-4 text-center text-[12px] text-faint`,children:n===null?`Loading…`:`No tool calls recorded yet.`}):(0,I.jsx)(`ul`,{className:`space-y-1`,children:d.map((e,t)=>(0,I.jsxs)(`li`,{className:`flex items-start gap-2 rounded-md bg-panel/50 px-2.5 py-1.5`,children:[e.ok?(0,I.jsx)(oe,{size:13,className:`mt-0.5 shrink-0 text-success`,"aria-label":`succeeded`}):(0,I.jsx)(M,{size:13,className:`mt-0.5 shrink-0 text-danger`,"aria-label":`failed`}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,I.jsx)(`code`,{className:`text-[12px] font-medium text-ink`,children:e.tool}),e.scope===`read`?(0,I.jsx)(he,{size:11,className:`text-faint`,"aria-label":`read-only call`}):(0,I.jsx)(ze,{size:11,className:`text-warning`,"aria-label":`write call`})]}),e.args!==``&&(0,I.jsx)(`div`,{className:`truncate text-[11px] text-muted`,children:e.args}),e.error!==``&&(0,I.jsx)(`div`,{className:`text-[11px] text-danger`,children:e.error})]}),(0,I.jsx)(`span`,{className:`shrink-0 text-[11px] tabular-nums text-faint`,children:Ur(e.ts)})]},`${e.ts}-${e.tool}-${t}`))})]})]})}function Gr({active:e}){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(!1),[d,f]=(0,y.useState)(!1),p=async()=>{i(`load`),o(null);try{n(await B.request(`/mcp/hub`))}catch(e){o(e instanceof Error?e.message:`Failed to load xSpeed Hub status.`)}finally{i(null),u(!0)}},m=async(e=!1)=>{try{let t=e?{headers:{"X-XSpeed-Reconcile":`1`}}:{};n(await B.request(`/mcp/hub`,t))}catch{}};(0,y.useEffect)(()=>{e&&!l&&r!==`load`&&p()},[e]),(0,y.useEffect)(()=>{let t=()=>{document.visibilityState===`visible`&&e&&l&&m(!0)};return document.addEventListener(`visibilitychange`,t),window.addEventListener(`focus`,t),()=>{document.removeEventListener(`visibilitychange`,t),window.removeEventListener(`focus`,t)}},[e,l]);let h=async()=>{i(`token`),o(null);try{n(await B.request(`/mcp/hub/token`,{method:`POST`}))}catch(e){o(e instanceof Error?e.message:`Could not generate a token.`)}finally{i(null)}},g=async()=>{c(!1),i(`disconnect`),o(null);try{n(await B.request(`/mcp/hub/disconnect`,{method:`POST`}))}catch(e){o(e instanceof Error?e.message:`Disconnect failed.`)}finally{i(null)}};if(!l)return(0,I.jsxs)(`div`,{className:`flex items-center gap-2 text-[12px] text-faint py-6`,children:[(0,I.jsx)(P,{size:13,className:`animate-spin`}),` Loading xSpeed Hub…`]});let _=!!t?.attached,v=(()=>{let e=t?.attach_url;if(!e||typeof window>`u`)return e;try{let t=new URL(e),n=new URL(window.location.href);return n.searchParams.set(`xspeed_connected`,`1`),t.searchParams.set(`return_url`,n.toString()),t.toString()}catch{return e}})(),b=!!t?.site_token;return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(te,{size:18,className:`text-primary shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:`xSpeed Hub`}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:`Control caching on all your sites from one AI connection.`})]})]}),_&&(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-[12px] text-success shrink-0`,children:[(0,I.jsx)(oe,{size:14}),`Connected`]})]}),_&&(0,I.jsxs)(`div`,{className:`rounded-md border border-line bg-success-tint px-3 py-2.5 flex flex-wrap items-center justify-between gap-2`,children:[(0,I.jsxs)(`p`,{className:`text-[12px] text-ink-soft`,children:[`This site is managed at xSpeed Hub`,t?.account_email?(0,I.jsxs)(I.Fragment,{children:[` — signed in as `,(0,I.jsx)(`strong`,{children:t.account_email})]}):``,`.`]}),(0,I.jsxs)(`a`,{href:t?.hub_url,target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-primary text-on-primary hover:bg-primary-hover transition-colors shrink-0`,children:[(0,I.jsx)(N,{size:13}),` Go to dashboard`]})]}),(0,I.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-2 text-[12px]`,children:[[`1`,`Connect this site`,`One click — sign in and approve`],[`2`,`Connect AI once`,`Add one connection from your xSpeed Hub dashboard`],[`3`,`Control every site`,`“Purge cache on acme” — done`]].map(([e,t,n])=>(0,I.jsxs)(`div`,{className:`rounded-md border border-line bg-panel px-3 py-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5 font-medium text-ink`,children:[(0,I.jsx)(`span`,{className:`inline-flex h-4 w-4 items-center justify-center rounded-full bg-primary text-on-primary text-[10px]`,children:e}),t]}),(0,I.jsx)(`div`,{className:`text-muted mt-0.5`,children:n})]},e))}),a&&(0,I.jsx)(V,{tone:`danger`,title:`xSpeed Hub error`,body:a}),!_&&(0,I.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,I.jsxs)(`a`,{href:v,target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-primary text-on-primary hover:bg-primary-hover transition-colors`,children:[(0,I.jsx)(rt,{size:13}),` Connect via xSpeed Hub`]}),(0,I.jsx)(`p`,{className:`text-[12px] text-muted`,children:`One click — sign in to your account and approve. No token to copy.`})]}),!_&&(0,I.jsxs)(`div`,{className:`border-t border-line pt-3`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:()=>{b||h(),f(e=>!e)},className:`flex items-center gap-1.5 text-[12px] text-muted hover:text-ink`,children:[(0,I.jsx)(Ae,{size:12}),`Can't redirect? Add with a token instead`]}),d&&(0,I.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,I.jsxs)(`p`,{className:`text-[12px] text-muted`,children:[`Paste this site's URL + token into the`,` `,(0,I.jsxs)(`a`,{href:t?.add_site_url,target:`_blank`,rel:`noreferrer`,className:`text-primary hover:underline inline-flex items-center gap-0.5`,children:[`Add site form `,(0,I.jsx)(N,{size:11})]}),` `,`on xspeedcache.com.`]}),(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`text-[11px] font-medium text-muted mb-1`,children:`Site URL`}),(0,I.jsx)(En,{content:t?.site_url??``})]}),(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`text-[11px] font-medium text-muted mb-1`,children:`Token`}),(0,I.jsx)(En,{content:t?.site_token??``,tone:`blue`})]}),(0,I.jsx)(`p`,{className:`text-[12px] text-muted`,children:`Same token as your MCP connection — treat it like a password.`})]})]}),_&&(0,I.jsx)(`div`,{className:`border-t border-line pt-3`,children:s?(0,I.jsx)(_r,{title:`Disconnect this site from xSpeed Hub?`,body:`This clears the hub link on this site. To fully cut off the hub's access, also Rotate the token above so its stored copy stops working.`,confirmLabel:`Disconnect`,busy:r===`disconnect`,onConfirm:g,onCancel:()=>c(!1)}):(0,I.jsxs)(`button`,{type:`button`,onClick:()=>c(!0),disabled:r!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-line text-danger hover:bg-danger-tint transition-colors disabled:opacity-50`,children:[(0,I.jsx)(Ue,{size:13}),` Disconnect from Hub`]})})]})}var Kr=!1;function qr({module:e}){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(`cli`),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null),h=async()=>{i(`load`),o(null);try{n(await B.request(`/mcp/connection`))}catch(e){o(e instanceof Error?e.message:`Failed to load MCP status.`)}finally{i(null)}};(0,y.useEffect)(()=>{h()},[]);let g=async()=>{i(`connect`),o(null);try{n(await B.request(`/mcp/connect`,{method:`POST`,body:JSON.stringify({read_only:s})}))}catch(e){o(e instanceof Error?e.message:`Could not connect to xSpeed MCP.`)}finally{i(null)}},_=async()=>{m(null),i(`rotate`),o(null);try{n(await B.request(`/mcp/rotate`,{method:`POST`}))}catch(e){o(e instanceof Error?e.message:`Token rotation failed.`)}finally{i(null)}},v=async()=>{m(null),i(`disconnect`),o(null);try{n(await B.request(`/mcp/disconnect`,{method:`POST`}))}catch(e){o(e instanceof Error?e.message:`Disconnect failed.`)}finally{i(null)}},b=!!t?.connected;return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[b?(0,I.jsx)(oe,{size:18,className:`text-success shrink-0`}):(0,I.jsx)(Ue,{size:18,className:`text-faint shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2 font-medium text-ink`,children:[b?`Connected`:`Not connected`,Kr]}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:`Control this site's cache from Claude and other MCP-compatible AI agents.`})]})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:h,disabled:r!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-line text-ink-soft hover:bg-panel transition-colors disabled:opacity-50`,children:[(0,I.jsx)(P,{size:13,className:r===`load`?`animate-spin`:``}),`Refresh`]}),b?(0,I.jsxs)(I.Fragment,{children:[Kr,(0,I.jsxs)(`button`,{type:`button`,onClick:()=>m(`rotate`),disabled:r!==null||p!==null,title:`Mint a fresh token and invalidate the current one`,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-line text-ink-soft hover:bg-panel transition-colors disabled:opacity-50`,children:[r===`rotate`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(Ke,{size:13}),`Rotate`]}),(0,I.jsxs)(`button`,{type:`button`,onClick:()=>m(`disconnect`),disabled:r!==null||p!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-line text-danger hover:bg-danger-tint transition-colors disabled:opacity-50`,children:[r===`disconnect`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(Ue,{size:13}),`Disconnect`]})]}):(0,I.jsxs)(`button`,{type:`button`,onClick:g,disabled:r!==null,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-primary text-on-primary hover:bg-primary-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed`,children:[r===`connect`?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(rt,{size:13}),`Connect`]})]})]}),Kr]}),p===`rotate`&&(0,I.jsx)(_r,{title:`Rotate the MCP token?`,body:`A fresh token is minted and the current one is invalidated immediately. Any AI agent using the old token stops working until you paste the new one.`,confirmLabel:`Rotate token`,busy:r===`rotate`,onConfirm:_,onCancel:()=>m(null)}),p===`disconnect`&&(0,I.jsx)(_r,{title:`Disconnect MCP?`,body:`This revokes the token and every OAuth grant immediately — any AI agent using this site stops working until you reconnect.`,confirmLabel:`Disconnect`,busy:r===`disconnect`,onConfirm:v,onCancel:()=>m(null)}),a&&(0,I.jsx)(V,{tone:`danger`,title:`MCP error`,body:a}),t&&(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5 space-y-3`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:`Add this MCP server to your AI client`}),(0,I.jsxs)(`div`,{className:`text-[12px] text-muted mt-0.5`,children:[`Pick the format your client uses. The token travels in an`,` `,(0,I.jsx)(`code`,{className:`font-mono text-[11px]`,children:`Authorization`}),` header, so it never lands in a URL or server log.`]})]}),(0,I.jsx)(`div`,{className:`flex items-center gap-1 border-b border-line`,children:[[`cli`,`Claude Code (CLI)`],[`json`,`JSON config`],[`prompt`,`AI prompt`],[`oauth`,`Remote (OAuth)`]].map(([e,t])=>(0,I.jsx)(`button`,{type:`button`,onClick:()=>u(e),className:`flex items-center gap-1.5 text-[12px] px-3 py-1.5 -mb-px border-b-2 transition-colors ${l===e?`border-primary text-ink font-medium`:`border-transparent text-muted hover:text-ink`}`,children:t},e))}),!b&&(0,I.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-line bg-panel px-3 py-2 text-[12px] text-muted`,children:[(0,I.jsx)(rt,{size:14,className:`mt-0.5 shrink-0 text-primary`}),(0,I.jsxs)(`span`,{children:[`Click `,(0,I.jsx)(`strong`,{className:`font-medium text-ink-soft`,children:`Connect`}),` `,`above to mint this site's token, then copy your connection config here.`]})]}),l===`cli`&&b&&(0,I.jsxs)(`div`,{className:`space-y-2`,children:[(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:`Run this once in your terminal — it registers xSpeed with Claude Code:`}),(0,I.jsx)(En,{content:t.config.cli,tone:`blue`})]}),l===`json`&&b&&(0,I.jsxs)(`div`,{className:`space-y-2`,children:[(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:`Add this to your client's MCP config (e.g. Claude Desktop's config file):`}),(0,I.jsx)(En,{content:t.config.json,tone:`blue`})]}),l===`prompt`&&b&&(0,I.jsxs)(`div`,{className:`space-y-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-start gap-2 rounded-md border border-line bg-warning-tint px-3 py-2 text-[12px] text-warning`,children:[(0,I.jsx)(dt,{size:14,className:`mt-0.5 shrink-0`}),(0,I.jsxs)(`span`,{children:[(0,I.jsx)(`strong`,{className:`font-semibold`,children:`Not recommended.`}),` This pastes your token into a chat, so the AI provider may see and store it. Prefer the`,` `,(0,I.jsx)(`strong`,{className:`font-medium`,children:`Claude Code (CLI)`}),`,`,` `,(0,I.jsx)(`strong`,{className:`font-medium`,children:`JSON config`}),`, or`,` `,(0,I.jsx)(`strong`,{className:`font-medium`,children:`Remote (OAuth)`}),` methods, which keep the token out of the conversation.`]})]}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:`Paste this to your AI agent so it knows what it's connected to and how to act:`}),(0,I.jsx)(En,{content:t.ai_prompt})]}),l===`oauth`&&b&&(0,I.jsxs)(`div`,{className:`space-y-2`,children:[(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:`For clients that connect by URL only (e.g. claude.ai connectors). Paste just the server URL — no token field:`}),(0,I.jsx)(En,{content:t.mcp_endpoint,tone:`blue`}),(0,I.jsxs)(`div`,{className:`flex items-start gap-2 text-[12px] text-muted pt-1`,children:[(0,I.jsx)(`span`,{className:`text-primary shrink-0`,children:`•`}),(0,I.jsxs)(`span`,{children:[`No token needed. Your client opens a browser page where you`,` `,(0,I.jsx)(`strong`,{className:`font-medium text-ink-soft`,children:`approve access`}),` `,`(you must be signed in here as an administrator). Approval grants the same`,` `,t.read_only?`read-only`:`read & write`,` access as the token above.`]})]})]}),b&&(0,I.jsxs)(`div`,{className:`flex items-start gap-2 text-[12px] text-muted pt-1`,children:[(0,I.jsx)(`span`,{className:`text-warning shrink-0`,children:`•`}),(0,I.jsxs)(`span`,{children:[`Treat the token like a password — it lets an AI control this site.`,` `,(0,I.jsx)(`strong`,{className:`font-medium text-ink-soft`,children:`Rotate`}),` `,`if it may have leaked;`,` `,(0,I.jsx)(`strong`,{className:`font-medium text-ink-soft`,children:`Disconnect`}),` `,`to revoke entirely.`,t.scopes.length>0&&(0,I.jsxs)(I.Fragment,{children:[` Granted scopes: `,t.scopes.join(`, `),`.`]})]})]})]}),b&&t&&t.tools.length>0&&(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:()=>f(e=>!e),"aria-expanded":d?`true`:`false`,className:`flex w-full items-center gap-2 rounded text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-1`,children:[d?(0,I.jsx)(k,{size:16,className:`shrink-0 text-muted`}):(0,I.jsx)(j,{size:16,className:`shrink-0 text-muted`}),(0,I.jsx)(`span`,{className:`font-medium text-ink`,children:`Tools your AI agent can call`}),(0,I.jsxs)(`span`,{className:`text-[12px] text-faint`,children:[`(`,t.tools.length,`)`]})]}),d&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`div`,{className:`text-[12px] text-muted mt-2`,children:t.read_only?(0,I.jsxs)(I.Fragment,{children:[`This is a `,(0,I.jsx)(`strong`,{className:`font-medium`,children:`read-only`}),` connection, so the`,` `,(0,I.jsx)(`span`,{className:`text-warning`,children:`write`}),` tools below are refused.`]}):(0,I.jsx)(I.Fragment,{children:`Each tool maps to an xSpeed action. Write tools can change this site.`})}),(0,I.jsx)(`ul`,{className:`mt-3 divide-y divide-line`,children:t.tools.map(e=>(0,I.jsxs)(`li`,{className:`flex items-start gap-3 py-2`,children:[(0,I.jsx)(`code`,{className:`font-mono text-[11px] text-ink shrink-0 mt-0.5`,children:e.name}),(0,I.jsx)(`span`,{className:`shrink-0 mt-0.5 text-[10px] font-medium px-1.5 py-0.5 rounded ${e.write?`bg-warning-tint text-warning`:`bg-panel text-muted`}`,children:e.write?`write`:`read`}),(0,I.jsx)(`span`,{className:`text-[12px] text-muted`,children:e.description})]},e.name))})]})]}),!b&&t!==null&&(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:`What your AI agent can do`}),(0,I.jsxs)(`div`,{className:`text-[12px] text-muted mt-1`,children:[`Once connected, your AI can read cache status & stats, purge the cache, toggle caching on or off, and read or change module settings — all scoped to this site.`,Kr,` `,`Rotate or disconnect any time to revoke access.`]})]}),(0,I.jsx)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:(0,I.jsx)(Gr,{active:!0})}),(0,I.jsx)(Wr,{})]})}var Jr=[{key:`gzip`,slug:`gzip`,self:!0},{key:`brotli`,slug:`brotli-compression`,pro:!0}];function Yr({module:e,onSaved:t,subtab:n,onSubtabChange:r,getModule:i}){let a=Kt(),{items:o,active:s}=mr(Jr,{module:e,getModule:i,isPro:a===`pro`||a===`trial`,subtab:n});return(0,y.useEffect)(()=>{n&&!o.some(e=>e.key===n)&&r?.(Jr[0].key)},[n,o,r]),(0,I.jsxs)(`div`,{className:`space-y-5`,children:[(0,I.jsx)(Ln,{items:o,value:s,onChange:e=>r?.(e),idBase:`compression`}),s===`gzip`&&(0,I.jsx)(Qi,{module:e,onSaved:t}),s===`brotli`&&(0,I.jsx)(Qn,{demo:`compression-brotli`,children:(0,I.jsx)(H,{slug:`brotli-compression`,getModule:i,onSaved:t})})]})}var Xr=[{key:`minify`,slug:`minify`,self:!0},{key:`critical`,slug:`critical-css`,panel:`CriticalCssPanel`,pro:!0},{key:`unused`,slug:`unused-css`,panel:`UnusedCssPanel`,pro:!0}];function Zr({module:e,onSaved:t,subtab:n,onSubtabChange:r,getModule:i}){let a=Kt(),{items:o,active:s}=mr(Xr,{module:e,getModule:i,isPro:a===`pro`||a===`trial`,subtab:n});return(0,y.useEffect)(()=>{n&&!o.some(e=>e.key===n)&&r?.(Xr[0].key)},[n,o,r]),(0,I.jsxs)(`div`,{className:`space-y-5`,children:[(0,I.jsx)(Ln,{items:o,value:s,onChange:e=>r?.(e),idBase:`cssjs`}),s===`minify`&&(0,I.jsx)(Qi,{module:e,onSaved:t}),s===`critical`&&(0,I.jsx)(Qn,{demo:`cssjs-critical`,children:(0,I.jsx)(H,{panel:`CriticalCssPanel`,slug:`critical-css`,getModule:i,onSaved:t})}),s===`unused`&&(0,I.jsx)(Qn,{demo:`cssjs-unused`,children:(0,I.jsx)(H,{panel:`UnusedCssPanel`,slug:`unused-css`,getModule:i,onSaved:t})})]})}var Qr=[{key:`lazy`,slug:`lazy`,self:!0},{key:`images`,slug:`images`,panel:`ImagesPanel`,pro:!0},{key:`smart`,slug:`smart-image`,panel:`SmartImagePanel`,pro:!0}];function $r({module:e,onSaved:t,subtab:n,onSubtabChange:r,getModule:i}){let a=Kt(),{items:o,active:s}=mr(Qr,{module:e,getModule:i,isPro:a===`pro`||a===`trial`,subtab:n});return(0,y.useEffect)(()=>{n&&!o.some(e=>e.key===n)&&r?.(Qr[0].key)},[n,o,r]),(0,I.jsxs)(`div`,{className:`space-y-5`,children:[(0,I.jsx)(Ln,{items:o,value:s,onChange:e=>r?.(e),idBase:`media`}),s===`lazy`&&(0,I.jsx)(Qi,{module:e,onSaved:t}),s===`images`&&(0,I.jsx)(Qn,{demo:`media-formats`,children:(0,I.jsx)(H,{panel:`ImagesPanel`,slug:`images`,getModule:i,onSaved:t})}),s===`smart`&&(0,I.jsx)(Qn,{demo:`media-smart`,children:(0,I.jsx)(H,{panel:`SmartImagePanel`,slug:`smart-image`,getModule:i,onSaved:t})})]})}var ei=[{key:`hints`,slug:`resource-hints`,self:!0},{key:`speculation`,slug:`smart-predict`,panel:`SmartPredictPanel`,pro:!0}];function ti({module:e,onSaved:t,subtab:n,onSubtabChange:r,getModule:i}){let a=Kt(),{items:o,active:s}=mr(ei,{module:e,getModule:i,isPro:a===`pro`||a===`trial`,subtab:n});return(0,y.useEffect)(()=>{n&&!o.some(e=>e.key===n)&&r?.(ei[0].key)},[n,o,r]),(0,I.jsxs)(`div`,{className:`space-y-5`,children:[(0,I.jsx)(Ln,{items:o,value:s,onChange:e=>r?.(e),idBase:`resource-hints`}),s===`hints`&&(0,I.jsx)(Qi,{module:e,onSaved:t}),s===`speculation`&&(0,I.jsx)(Qn,{demo:`hints-speculation`,children:(0,I.jsx)(H,{panel:`SmartPredictPanel`,slug:`smart-predict`,getModule:i,onSaved:t})})]})}var ni=[{key:`coverage`,label:`What to cache`,locked:!0},{key:`beyond`,label:`Feeds & API`,locked:!0},{key:`rules`,label:`Rules & bypass`,locked:!0}],ri=`coverage`,ii=new Set(ni.map(e=>e.key));function ai({getModule:e,onSaved:t,subtab:n,onSubtabChange:r}){let i=Kt(),a=i===`pro`||i===`trial`,o=ni.map(e=>({...e,locked:e.locked&&!a})),s=n&&ii.has(n)?n:ri;return(0,y.useEffect)(()=>{n&&!ii.has(n)&&r?.(ri)},[n,r]),(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(Ln,{items:o,value:s,onChange:e=>r?.(e),idBase:`cache-extras`}),s===`coverage`&&(a?(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(H,{slug:`cache-404`,getModule:e,onSaved:t}),(0,I.jsx)(H,{slug:`search-cache`,getModule:e,onSaved:t})]}):(0,I.jsx)(Kn,{id:`coverage-what`})),s===`beyond`&&(a?(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(H,{slug:`feed-cache`,getModule:e,onSaved:t}),(0,I.jsx)(H,{panel:`RestCachePanel`,slug:`rest-cache`,getModule:e,onSaved:t})]}):(0,I.jsx)(Kn,{id:`coverage-beyond`})),s===`rules`&&(a?(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(H,{panel:`CustomRulesPanel`,slug:`custom-rules`,getModule:e,onSaved:t}),(0,I.jsx)(H,{panel:`MaintenanceCachePanel`,slug:`maintenance-cache`,getModule:e,onSaved:t})]}):(0,I.jsx)(Kn,{id:`coverage-rules`}))]})}function U({onSaved:e,subtab:t,onSubtabChange:n,getModule:r}){return(0,I.jsx)(ai,{getModule:e=>r?.(e),subtab:t,onSubtabChange:n,onSaved:e})}function oi({open:e,onClose:t,title:n,children:r,dismissible:i=!0,labelledBy:a}){let o=(0,y.useRef)(null),s=(0,y.useRef)(null),c=(0,y.useCallback)(()=>{i&&t()},[i,t]);return(0,y.useEffect)(()=>{if(!e)return;s.current=document.activeElement;let t=window.requestAnimationFrame(()=>{(o.current?.querySelector(si)??o.current)?.focus()});return()=>{window.cancelAnimationFrame(t);let e=s.current;e&&e.isConnected&&e.focus()}},[e]),(0,y.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&(e.stopPropagation(),c())};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,c]),(0,y.useEffect)(()=>{if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=t}},[e]),e?(0,F.createPortal)((0,I.jsxs)(`div`,{className:`fixed inset-0 z-[100000] flex items-center justify-center p-4`,onMouseDown:e=>{o.current&&!o.current.contains(e.target)&&c()},children:[(0,I.jsx)(`div`,{className:`absolute inset-0 bg-black/40`,"aria-hidden":`true`}),(0,I.jsxs)(`div`,{ref:o,role:`dialog`,"aria-modal":`true`,"aria-label":a?void 0:n,"aria-labelledby":a,tabIndex:-1,onKeyDown:e=>{if(e.key!==`Tab`)return;let t=o.current?.querySelectorAll(si);if(!t||t.length===0)return;let n=t[0],r=t[t.length-1];!n||!r||(e.shiftKey&&document.activeElement===n?(e.preventDefault(),r.focus()):!e.shiftKey&&document.activeElement===r&&(e.preventDefault(),n.focus()))},className:`relative w-full max-w-md rounded-card border border-line bg-paper shadow-xl focus:outline-none`,children:[(0,I.jsxs)(`div`,{className:`flex items-start gap-3 px-5 pt-5`,children:[(0,I.jsx)(`h2`,{className:`flex-1 text-[15px] font-medium text-ink`,children:n}),i&&(0,I.jsx)(`button`,{type:`button`,onClick:t,"aria-label":L(`Close`),className:`-mr-1 -mt-1 shrink-0 rounded p-1 text-muted hover:text-ink hover:bg-panel transition-colors`,children:(0,I.jsx)(_t,{size:16})})]}),(0,I.jsx)(`div`,{className:`px-5 pb-5 pt-3`,children:r})]})]}),document.getElementById(`xspeed-app`)??document.body):null}var si=`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,ci=typeof window<`u`?window.XSpeedConfig?.bootstrap?.hub??null:null,li=ci,ui=ci!=null,di=!1,fi=!1,pi=new Set;function mi(e){li=e,ui=!0,pi.forEach(e=>e())}function hi(e){return pi.add(e),()=>pi.delete(e)}function gi({active:e=!0,initial:t}={}){let n=(0,y.useSyncExternalStore)(hi,()=>li),r=(0,y.useSyncExternalStore)(hi,()=>ui),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(null),c=(0,y.useCallback)(async()=>{if(!di){di=!0,a(`load`),s(null);try{mi(await B.request(`/mcp/hub`))}catch(e){s(e instanceof Error?e.message:`Failed to load xSpeed Hub status.`)}finally{di=!1,a(null)}}},[]),l=(0,y.useCallback)(async(e=!1)=>{try{let t=e?{headers:{"X-XSpeed-Reconcile":`1`}}:{};mi(await B.request(`/mcp/hub`,t))}catch{}},[]),u=(0,y.useCallback)(async()=>{a(`token`),s(null);try{mi(await B.request(`/mcp/hub/token`,{method:`POST`}))}catch(e){s(e instanceof Error?e.message:`Could not generate a token.`)}finally{a(null)}},[]),d=(0,y.useCallback)(async()=>{a(`disconnect`),s(null);try{mi(await B.request(`/mcp/hub/disconnect`,{method:`POST`}))}catch(e){s(e instanceof Error?e.message:`Disconnect failed.`)}finally{a(null)}},[]);return(0,y.useEffect)(()=>{if(!(fi||!e)){if(fi=!0,t!=null&&!ui){mi(t);return}c()}},[e]),(0,y.useEffect)(()=>{if(typeof window>`u`)return;let e=new URL(window.location.href);e.searchParams.get(`xspeed_connected`)===`1`&&(l(!0),e.searchParams.delete(`xspeed_connected`),e.searchParams.delete(`xspeed_hub_nonce`),e.searchParams.delete(`xspeed_hub_email`),window.history.replaceState(null,``,e.toString()))},[]),(0,y.useEffect)(()=>{let t=()=>{document.visibilityState===`visible`&&e&&r&&l(!0)};return document.addEventListener(`visibilitychange`,t),window.addEventListener(`focus`,t),()=>{document.removeEventListener(`visibilitychange`,t),window.removeEventListener(`focus`,t)}},[e,r,l]),{status:n,connectUrl:(()=>{let e=n?.attach_url;if(!e||typeof window>`u`)return e;try{let t=new URL(e),n=new URL(window.location.href);return n.searchParams.set(`xspeed_connected`,`1`),t.searchParams.set(`return_url`,n.toString()),t.toString()}catch{return e}})(),busy:i,error:o,loaded:r,attached:!!n?.attached,hasToken:!!n?.site_token,load:c,reload:l,generateToken:u,disconnect:d,setError:s}}var _i=[`not_connected`,`unauthorized`];function vi(e){return e!==void 0&&_i.includes(e)}function yi({open:e,onClose:t,onConnected:n,local:r=!1}){let{connectUrl:i,attached:a,busy:o,error:s,generateToken:c}=gi({active:e}),l=o===`token`,[u,d]=(0,y.useState)(!1),f=(0,y.useRef)(!1);(0,y.useEffect)(()=>{e||(d(!1),f.current=!1)},[e]),(0,y.useEffect)(()=>{if(!e||!a||!u||f.current)return;f.current=!0;let r=window.setTimeout(()=>{n(),t()},900);return()=>window.clearTimeout(r)},[e,a,u,n,t]);let p=async()=>{d(!0);let e=i||await c();e&&window.open(e,`_blank`,`noopener`)};return(0,I.jsx)(oi,{open:e,onClose:t,title:L(`Run a GTmetrix test`),children:a&&u?(0,I.jsxs)(`div`,{className:`flex items-center gap-2 py-2 text-[13px] text-ink`,children:[(0,I.jsx)(O,{size:16,className:`text-success`}),L(`Connected — starting your test…`)]}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`div`,{className:`flex gap-3`,children:[(0,I.jsx)(ye,{size:18,className:`mt-0.5 shrink-0 text-accent`}),(0,I.jsxs)(`div`,{className:`space-y-2 text-[13px] leading-relaxed text-ink-soft`,children:[(0,I.jsx)(`p`,{children:L(`Connect this site to xSpeed Hub to run GTmetrix tests from here.`)}),(0,I.jsx)(`p`,{className:`text-muted`,children:L(`It takes a few seconds.`)})]})]}),r&&(0,I.jsxs)(`div`,{className:`mt-3 flex gap-2 rounded border border-line bg-panel px-3 py-2 text-[12px] text-muted`,children:[(0,I.jsx)(ke,{size:14,className:`mt-0.5 shrink-0`}),(0,I.jsx)(`span`,{children:L(`This site looks local, so it may not be reachable for testing. Your own GTmetrix API key works either way — see the settings below.`)})]}),s&&(0,I.jsx)(`p`,{className:`mt-3 text-[12px] text-danger`,children:s}),(0,I.jsxs)(`div`,{className:`mt-4 flex items-center justify-end gap-2`,children:[(0,I.jsx)(`button`,{type:`button`,onClick:t,className:`rounded px-3 py-1.5 text-[13px] text-muted hover:text-ink hover:bg-panel transition-colors`,children:L(`Not now`)}),(0,I.jsxs)(`button`,{type:`button`,onClick:()=>void p(),disabled:l,className:`inline-flex items-center gap-1.5 rounded bg-accent px-3 py-1.5 text-[13px] text-white hover:bg-primary-hover transition-colors disabled:opacity-50`,children:[l?(0,I.jsx)(Fe,{size:13,className:`animate-spin`}):(0,I.jsx)(N,{size:13}),L(u?`Waiting for connection…`:`Connect`)]})]}),u&&(0,I.jsx)(`p`,{className:`mt-2 text-right text-[11px] text-muted`,children:L(`Finish in the tab that opened, then come back here.`)})]})})}var bi=e=>e?.status===`queued`||e?.status===`running`;function xi(e,t){return L(`%1$d of %2$d left`).replace(`%1$d`,String(e)).replace(`%2$d`,String(t))}var Si=[{key:`lcp`,label:`LCP`,unit:`ms`,title:`Largest Contentful Paint — when the main content finished rendering`},{key:`fcp`,label:`FCP`,unit:`ms`,title:`First Contentful Paint — when the first text or image appeared`},{key:`tbt`,label:`TBT`,unit:`ms`,title:`Total Blocking Time — how long the page was unresponsive to input`},{key:`cls`,label:`CLS`,unit:`raw`,title:`Cumulative Layout Shift — how much the page moved while loading`},{key:`si`,label:`SI`,unit:`ms`,title:`Speed Index — how quickly the page visibly filled in`},{key:`ttfb`,label:`TTFB`,unit:`ms`,title:`Time to First Byte — how long the server took to respond`}];function Ci(e,t,n){let r=n[e];return t==null||!r?`unknown`:t<=r.good?`good`:t<=r.poor?`needs-improvement`:`poor`}var wi={good:`bg-success`,"needs-improvement":`bg-warning`,poor:`bg-danger`,unknown:`bg-line-strong`};function Ti(e){return e===null?`stroke-line`:e>=90?`stroke-success`:e>=50?`stroke-warning`:`stroke-danger`}function Ei(e){return e===null?`text-faint`:e>=90?`text-success`:e>=50?`text-warning`:`text-danger`}function Di(e,t){return e==null?`—`:t===`raw`?e.toFixed(3):`${Math.round(e)} ms`}function Oi({runs:e}){let t=e.filter(e=>e.ok&&typeof e.score==`number`).slice(0,12).reverse().map(e=>e.score);if(t.length<2)return null;let n=t.map((e,n)=>`${n/(t.length-1)*120},${28-e/100*28}`).join(` `),r=t[0]??0,i=(t[t.length-1]??0)-r;return(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`svg`,{width:120,height:28,viewBox:`0 0 120 28`,"aria-hidden":`true`,className:`overflow-visible`,children:(0,I.jsx)(`polyline`,{points:n,fill:`none`,strokeWidth:`1.5`,className:i>=0?`stroke-success`:`stroke-danger`,strokeLinejoin:`round`,strokeLinecap:`round`})}),(0,I.jsxs)(`span`,{className:`text-[11px] tabular-nums ${i>0?`text-success`:i<0?`text-danger`:`text-muted`}`,title:L(`Change across the runs shown`),children:[i>0?`+`:``,i===0?L(`no change`):i]})]})}function ki(e){let t=Math.floor(Date.now()/1e3)-e;return t<60?L(`just now`):t<3600?`${Math.floor(t/60)}m ${L(`ago`)}`:t<86400?`${Math.floor(t/3600)}h ${L(`ago`)}`:`${Math.floor(t/86400)}d ${L(`ago`)}`}function Ai({module:e,onSaved:t}){let[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(null),u=(0,y.useRef)(null),[d,f]=(0,y.useState)(null),[p,m]=(0,y.useState)(null),[h,g]=(0,y.useState)(!1),[_,v]=(0,y.useState)(!1),[b,x]=(0,y.useState)([]),S=(0,y.useRef)(null),C=e.settings?.enabled===!0,w=e.settings?.provider===`gtmetrix`&&typeof e.settings?.gtmetrix_api_key==`string`&&e.settings.gtmetrix_api_key!==``,T=d?.available===!0&&(d.quota?.remaining??0)>0,ee=!w&&(d?.available===!0||(d?vi(d.reason):!1)),E=(0,y.useCallback)(async()=>{try{r(await B.request(`/score/history`))}catch{r({runs:[],latest:null,thresholds:{}})}},[]);(0,y.useEffect)(()=>{E()},[E]);let te=(0,y.useCallback)(async()=>{try{let e=await B.request(`/score/hub-status`);f(e),m(e.runs?.[0]??null)}catch{f({available:!1})}},[]);(0,y.useEffect)(()=>{te()},[te]);let D=(0,y.useCallback)(async()=>{try{if(!(await B.request(`/score/status`)).pending){s(!1),await E();return}u.current=window.setTimeout(()=>void D(),6e3)}catch(e){s(!1),l(e instanceof Error?e.message:L(`Could not check the test status.`))}},[E]);(0,y.useEffect)(()=>()=>{u.current&&window.clearTimeout(u.current)},[]);let ne=(0,y.useCallback)(async()=>{try{let e=await B.request(`/score/hub-status`);f(e);let t=e.runs?.[0]??null;if(m(t),bi(t)){S.current=window.setTimeout(()=>void ne(),5e3);return}t?.status===`error`&&t.error&&l(t.error),await E()}catch{await E()}},[E]);(0,y.useEffect)(()=>()=>{S.current&&window.clearTimeout(S.current)},[]);let re=(0,y.useCallback)(async()=>{g(!0),l(null);try{let e=await B.request(`/score/hub-test`,{method:`POST`,body:JSON.stringify({})});m(e.run),f(t=>t&&{...t,quota:e.quota??t.quota}),S.current=window.setTimeout(()=>void ne(),5e3)}catch(e){l(e instanceof Error?e.message:L(`The test could not be started.`))}finally{g(!1)}},[ne]),O=(0,y.useCallback)(()=>{if(d?.available){re();return}v(!0)},[d?.available,re]),k=async()=>{a(!0),l(null);try{let e=await B.request(`/score/run`,{method:`POST`,body:JSON.stringify({})});e.pending?(s(!0),u.current=window.setTimeout(()=>void D(),6e3)):(await E(),!e.ok&&e.error&&l(e.error))}catch(e){l(e instanceof Error?e.message:L(`The test could not be started.`))}finally{a(!1)}},A=n?.latest??null,j=n?.thresholds??{};return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-lg p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(ye,{size:18,className:`text-accent shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:L(ee?`Speed test`:`External score`)}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:A?`${A.provider===`gtmetrix`?`GTmetrix`:`PageSpeed Insights`} · ${ki(A.ts)}`:L(ee?`Performance score and Core Web Vitals.`:`No audit run yet.`)})]})]}),ee?(0,I.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[d?.quota&&(0,I.jsx)(`span`,{className:`text-[11px] text-muted`,title:L(`Free tests included with your plan`),children:xi(d.quota.remaining,d.quota.limit)}),(0,I.jsxs)(`button`,{type:`button`,onClick:O,disabled:h||bi(p)||d?.available===!0&&!T,title:d?.available&&(d.quota?.remaining??0)===0?L(`You have used this month’s free tests.`):L(`Run a GTmetrix test on this site`),className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-accent text-white hover:bg-primary-hover transition-colors disabled:opacity-50`,children:[(h||bi(p))&&(0,I.jsx)(P,{size:13,className:`animate-spin`}),bi(p)?L(`Testing…`):L(`Test with GTmetrix`)]})]}):(0,I.jsxs)(`button`,{type:`button`,onClick:k,disabled:!C||i||o,title:C?void 0:L(`Turn on external scores below first.`),className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-accent text-white hover:bg-primary-hover transition-colors disabled:opacity-50`,children:[(i||o)&&(0,I.jsx)(P,{size:13,className:`animate-spin`}),L(o?`Running…`:`Test now`)]})]}),!C&&!ee&&(0,I.jsx)(`p`,{className:`mt-3 text-[12px] text-muted`,children:L(`External scores are off. Turning them on lets you run an audit from here — nothing is sent anywhere until you press Test.`)}),c&&(0,I.jsxs)(`div`,{className:`mt-3 flex items-start gap-2 text-[12px] text-danger`,children:[(0,I.jsx)(dt,{size:13,className:`mt-0.5 shrink-0`}),(0,I.jsx)(`span`,{children:c})]}),A&&(0,I.jsxs)(`div`,{className:`mt-4 rounded-lg border border-line p-4`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-6 gap-y-4`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,I.jsxs)(`div`,{className:`relative h-16 w-16 shrink-0`,children:[(0,I.jsxs)(`svg`,{viewBox:`0 0 36 36`,className:`h-16 w-16 -rotate-90`,children:[(0,I.jsx)(`circle`,{cx:`18`,cy:`18`,r:`15.9155`,fill:`none`,strokeWidth:`2.5`,className:`stroke-line`}),A.score!==null&&(0,I.jsx)(`circle`,{cx:`18`,cy:`18`,r:`15.9155`,fill:`none`,strokeWidth:`2.5`,strokeLinecap:`round`,strokeDasharray:`${A.score}, 100`,className:Ti(A.score)})]}),(0,I.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center text-[20px] font-semibold tabular-nums ${Ei(A.score)}`,children:A.score===null?`—`:A.score})]}),(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`text-[12px] font-medium text-ink`,children:L(`Performance`)}),(0,I.jsx)(`div`,{className:`text-[11px] text-muted`,children:A.strategy||L(`score out of 100`)})]})]}),(0,I.jsx)(`div`,{className:`grid flex-1 grid-cols-2 gap-x-4 gap-y-2 sm:grid-cols-3`,children:Si.map(e=>{let t=A.metrics?.[e.key]??null,n=Ci(e.key,t,j);return(0,I.jsxs)(`div`,{className:`min-w-0`,title:e.title,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,I.jsx)(`span`,{className:`h-1.5 w-1.5 shrink-0 rounded-full ${wi[n]}`}),(0,I.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-muted`,children:e.label})]}),(0,I.jsx)(`div`,{className:`mt-0.5 text-[14px] font-medium tabular-nums text-ink`,children:Di(t,e.unit)})]},e.key)})})]}),(0,I.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-x-4 gap-y-1 border-t border-line pt-3 text-[11px] text-muted`,children:[A.url&&(0,I.jsx)(`span`,{className:`truncate max-w-[22rem]`,children:A.url}),A.report_url&&(0,I.jsxs)(`a`,{href:A.report_url,target:`_blank`,rel:`noreferrer`,className:`inline-flex items-center gap-1 hover:text-accent`,children:[L(`View on GTmetrix`),(0,I.jsx)(N,{size:11})]})]})]}),A?.opportunities&&A.opportunities.length>0&&(0,I.jsxs)(`div`,{className:`mt-4 border-t border-line pt-3`,children:[(0,I.jsxs)(`div`,{className:`mb-1.5 flex items-center gap-1.5 text-[12px] font-medium text-ink`,children:[(0,I.jsx)(Pe,{size:13,className:`text-accent`}),L(`What to improve`)]}),(0,I.jsx)(`ul`,{className:`space-y-1`,children:A.opportunities.slice(0,6).map(e=>(0,I.jsxs)(`li`,{className:`flex items-baseline justify-between gap-3 text-[12px] text-ink-soft`,children:[(0,I.jsx)(`span`,{className:`min-w-0`,children:e.title}),e.metrics.length>0&&(0,I.jsx)(`span`,{className:`shrink-0 text-[10px] uppercase tracking-wide text-faint`,children:e.metrics.join(` · `)})]},e.id))})]}),A?.issues&&A.issues.length>0&&(0,I.jsx)(`ul`,{className:`mt-4 space-y-1`,children:A.issues.slice(0,3).map(e=>(0,I.jsxs)(`li`,{className:`flex items-baseline justify-between gap-3 text-[12px] text-ink-soft`,children:[(0,I.jsx)(`span`,{className:`min-w-0 truncate`,children:e.title}),(0,I.jsxs)(`span`,{className:`tabular-nums text-muted shrink-0`,children:[`−`,Math.round(e.savings_ms),` ms`]})]},e.id))})]}),n&&n.runs.length>1&&(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-lg p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center justify-between gap-2`,children:[(0,I.jsx)(`div`,{className:`text-[12px] font-medium text-ink`,children:L(`Run history`)}),(0,I.jsx)(Oi,{runs:n.runs})]}),b.length===2&&(()=>{let e=n.runs.find(e=>e.ts===b[0]),t=n.runs.find(e=>e.ts===b[1]);if(!e||!t)return null;let[r,i]=e.ts<=t.ts?[e,t]:[t,e],a=[[L(`Performance`),r.score,i.score,`score`],[`LCP`,r.metrics?.lcp??null,i.metrics?.lcp??null,`ms`],[`TBT`,r.metrics?.tbt??null,i.metrics?.tbt??null,`ms`],[`CLS`,r.metrics?.cls??null,i.metrics?.cls??null,`raw`],[`TTFB`,r.metrics?.ttfb??null,i.metrics?.ttfb??null,`ms`]];return(0,I.jsxs)(`div`,{className:`mb-3 rounded border border-line p-3`,children:[(0,I.jsxs)(`div`,{className:`mb-2 flex items-center justify-between text-[11px] text-muted`,children:[(0,I.jsxs)(`span`,{children:[ki(r.ts),` → `,ki(i.ts)]}),(0,I.jsx)(`button`,{type:`button`,onClick:()=>x([]),className:`text-accent hover:underline`,children:L(`Clear`)})]}),(0,I.jsxs)(`table`,{className:`w-full border-collapse text-left`,children:[(0,I.jsx)(`thead`,{children:(0,I.jsxs)(`tr`,{className:`text-[10px] uppercase tracking-wider text-faint`,children:[(0,I.jsx)(`th`,{scope:`col`,className:`py-1 font-medium`,children:L(`Metric`)}),(0,I.jsx)(`th`,{scope:`col`,className:`w-20 py-1 text-right font-medium`,children:L(`Before`)}),(0,I.jsx)(`th`,{scope:`col`,className:`w-20 py-1 text-right font-medium`,children:L(`After`)}),(0,I.jsx)(`th`,{scope:`col`,className:`w-24 py-1 text-right font-medium`,children:L(`Change`)})]})}),(0,I.jsx)(`tbody`,{children:a.map(([e,t,n,r])=>{let i=r===`score`,a=t!==null&&n!==null?n-t:null,o=a===null||a===0?null:i?a>0:a<0;return(0,I.jsxs)(`tr`,{className:`border-t border-line`,children:[(0,I.jsx)(`td`,{className:`py-1 text-[12px] text-muted`,children:e}),(0,I.jsx)(`td`,{className:`py-1 text-right text-[12px] tabular-nums text-muted`,children:r===`score`?t??`—`:Di(t,r===`raw`?`raw`:`ms`)}),(0,I.jsx)(`td`,{className:`py-1 text-right text-[12px] tabular-nums text-ink`,children:r===`score`?n??`—`:Di(n,r===`raw`?`raw`:`ms`)}),(0,I.jsxs)(`td`,{className:`py-1 text-right text-[12px] tabular-nums ${o===!0?`text-success`:o===!1?`text-danger`:`text-faint`}`,children:[a===null?`—`:a===0?L(`no change`):`${a>0?`+`:`−`}${r===`score`?Math.abs(a):Di(Math.abs(a),r===`raw`?`raw`:`ms`)}`,o===!0&&` ▲`,o===!1&&` ▼`]})]},e)})})]})]})})(),n.runs.length>1&&b.length<2&&(0,I.jsx)(`p`,{className:`mb-2 text-[11px] text-muted`,children:b.length===1?L(`Pick one more run to compare.`):L(`Pick two runs to compare them.`)}),(0,I.jsx)(`div`,{className:`overflow-x-auto`,children:(0,I.jsxs)(`table`,{className:`w-full min-w-[34rem] border-collapse text-left`,children:[(0,I.jsx)(`thead`,{children:(0,I.jsxs)(`tr`,{className:`border-b border-line text-[10px] uppercase tracking-wider text-faint`,children:[(0,I.jsx)(`th`,{scope:`col`,className:`w-8 py-1.5 font-medium`,children:(0,I.jsx)(`span`,{className:`sr-only`,children:L(`Compare`)})}),(0,I.jsx)(`th`,{scope:`col`,className:`w-20 py-1.5 font-medium`,children:L(`When`)}),(0,I.jsx)(`th`,{scope:`col`,className:`py-1.5 font-medium`,children:L(`Provider`)}),(0,I.jsx)(`th`,{scope:`col`,className:`w-12 py-1.5 text-right font-medium`,children:L(`Score`)}),(0,I.jsx)(`th`,{scope:`col`,className:`w-20 py-1.5 text-right font-medium`,title:`Largest Contentful Paint`,children:`LCP`}),(0,I.jsx)(`th`,{scope:`col`,className:`w-16 py-1.5 text-right font-medium`,title:`Total Blocking Time`,children:`TBT`}),(0,I.jsx)(`th`,{scope:`col`,className:`w-14 py-1.5 text-right font-medium`,title:`Cumulative Layout Shift`,children:`CLS`}),(0,I.jsx)(`th`,{scope:`col`,className:`w-20 py-1.5 text-right font-medium`,title:`Time to First Byte`,children:`TTFB`})]})}),(0,I.jsx)(`tbody`,{children:n.runs.slice(0,10).map((e,t)=>(0,I.jsxs)(`tr`,{className:`border-b border-line last:border-b-0 ${b.includes(e.ts)?`bg-panel`:``}`,children:[(0,I.jsx)(`td`,{className:`py-1.5`,children:(0,I.jsx)(`button`,{type:`button`,onClick:()=>x(t=>t.includes(e.ts)?t.filter(t=>t!==e.ts):[...t,e.ts].slice(-2)),"aria-pressed":b.includes(e.ts),title:L(`Compare this run`),className:`rounded p-0.5 ${b.includes(e.ts)?`text-accent`:`text-faint hover:text-accent`}`,children:(0,I.jsx)(xe,{size:12})})}),(0,I.jsx)(`td`,{className:`py-1.5 text-[11px] text-muted`,children:ki(e.ts)}),(0,I.jsx)(`td`,{className:`min-w-0 py-1.5 text-[12px] text-muted`,children:(0,I.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,I.jsx)(`span`,{className:`truncate`,children:e.ok?e.provider===`gtmetrix`?`GTmetrix`:`PageSpeed`:e.error}),e.ok&&e.report_url&&(0,I.jsx)(`a`,{href:e.report_url,target:`_blank`,rel:`noopener noreferrer`,className:`shrink-0 text-faint hover:text-accent`,"aria-label":L(`Open the full report`),children:(0,I.jsx)(N,{size:11})})]})}),(0,I.jsx)(`td`,{className:`py-1.5 text-right text-[13px] font-medium tabular-nums ${Ei(e.score)}`,children:e.ok?e.score??`—`:`—`}),(0,I.jsx)(`td`,{className:`py-1.5 text-right text-[11px] tabular-nums text-muted`,children:Di(e.metrics?.lcp??null,`ms`)}),(0,I.jsx)(`td`,{className:`py-1.5 text-right text-[11px] tabular-nums text-muted`,children:Di(e.metrics?.tbt??null,`ms`)}),(0,I.jsx)(`td`,{className:`py-1.5 text-right text-[11px] tabular-nums text-muted`,children:Di(e.metrics?.cls??null,`raw`)}),(0,I.jsx)(`td`,{className:`py-1.5 text-right text-[11px] tabular-nums text-muted`,children:Di(e.metrics?.ttfb??null,`ms`)})]},`${e.ts}-${t}`))})]})})]}),(0,I.jsx)(yi,{open:_,onClose:()=>v(!1),local:d?.local===!0,onConnected:()=>{te().then(()=>void re())}}),(0,I.jsx)(Qi,{module:e,onSaved:t})]})}var ji={HealthPanel:nr,PreloaderHost:gr,DatabaseCleanerPanel:yr,CloudflarePanel:Er,ObjectCachePanel:Ar,MigrationPanel:Vr,SupportPanel:Hr,McpPanel:qr,CompressionPanel:Yr,CssJsPanel:Zr,MediaPanel:$r,ResourceHintsPanel:ti,CacheCoveragePanel:U,ScorePanel:Ai};function Mi({module:e}){let t=wt.find(t=>t.slug===e.slug),n=t?.teaser?Hn[t.teaser]:null,r=Jt()===`unlicensed`;if(Gn(e.slug))return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(Kn,{id:e.slug}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted text-center px-4`,children:L(r?`Activating your license unlocks this module + every other locked row in the sidebar. Your current settings stay unchanged.`:`Pro unlocks this module + every other locked row in the sidebar. Your current Free settings stay unchanged.`)})]});let i={card:`border-line bg-primary-tint`,iconWrap:`bg-paper border-line text-primary`,badge:`text-primary bg-paper border-line`,cta:`bg-primary hover:bg-primary-hover text-on-primary`,link:`text-primary`};return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(`div`,{className:`relative overflow-hidden border rounded-card p-6 sm:p-8 ${i.card}`,children:(0,I.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,I.jsx)(`div`,{className:`shrink-0 w-12 h-12 rounded-full border flex items-center justify-center ${i.iconWrap}`,children:(0,I.jsx)(Ct,{name:e.icon,size:22})}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`div`,{className:`flex items-center gap-2 mb-1`,children:(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[10px] uppercase tracking-wider font-medium border rounded-full px-2 py-0.5 ${i.badge}`,children:[r?(0,I.jsx)(Ae,{size:10}):(0,I.jsx)(Ie,{size:10}),(0,I.jsx)(`span`,{children:L(r?`Pro — license needed`:`Pro feature`)})]})}),(0,I.jsx)(`h2`,{className:`text-[18px] font-semibold text-ink`,children:e.label}),e.description&&(0,I.jsx)(`p`,{className:`text-[13px] text-ink-soft mt-2 leading-relaxed`,children:e.description}),r?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`p`,{className:`text-[13px] text-ink-soft mt-3 leading-relaxed`,children:L(`xSpeed Pro is installed — activate your license to unlock this module and every other Pro feature.`)}),(0,I.jsxs)(`a`,{href:Vn,className:`inline-flex items-center gap-1.5 mt-4 px-4 py-2 rounded-md text-[13px] font-medium transition-colors ${i.cta}`,children:[L(`Activate your license`),(0,I.jsx)(w,{size:13})]})]}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`a`,{href:Bn,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 mt-4 px-4 py-2 rounded-md text-[13px] font-medium transition-colors ${i.cta}`,children:[L(`Upgrade to Pro`),(0,I.jsx)(w,{size:13})]}),(0,I.jsxs)(`a`,{href:Bn,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 ml-3 text-[12px] hover:underline ${i.link}`,children:[L(`Compare plans`),(0,I.jsx)(N,{size:11})]})]})]})]})}),n&&(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:[(0,I.jsx)(`div`,{className:`text-[11px] uppercase tracking-wider text-muted font-medium mb-2`,children:L(`What this adds`)}),(0,I.jsx)(`p`,{className:`text-[13px] text-ink-soft leading-relaxed`,children:n.body})]}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted text-center px-4`,children:L(r?`Activating your license unlocks this module + every other locked row in the sidebar. Your current settings stay unchanged.`:`Pro unlocks this module + every other locked row in the sidebar. Your current Free settings stay unchanged.`)})]})}var Ni=null,Pi=new Set;function Fi(){for(let e of Pi)e(Ni)}function Ii(e){Ni=e,Fi()}function Li(){return Ni}function Ri(e,t){e&&t&&(Ni?.module!==e||Ni?.field!==t)||(Ni=null,Fi())}function zi(e){return Pi.add(e),()=>{Pi.delete(e)}}function Bi(e,t){switch(t){case`bool`:case`boolean`:return e===`1`||e===`true`?!0:e===`0`||e===`false`?!1:void 0;case`int`:return/^-?\d+$/.test(e.trim())?parseInt(e,10):void 0;case`list`:return e.split(`,`).map(e=>e.trim()).filter(Boolean);default:return e}}function Vi(e,t){let n=Bi(e,t);return n===void 0?e:typeof n==`boolean`?n?`On`:`Off`:Array.isArray(n)?n.join(`, `):String(n)}function Hi(e,t,n,r,i){let[a,o]=(0,y.useState)(()=>Li());if((0,y.useEffect)(()=>zi(o),[]),!a||a.module!==e||a.field!==t)return null;let s=Bi(a.value,n.type);if(s===void 0||!Ui(s,n)||JSON.stringify(s)===JSON.stringify(r))return null;let c=Vi(a.value,n.type);return c.trim()===``?null:{display:c,value:s,apply:()=>{i(s),Ri(e,t)},dismiss:()=>Ri(e,t)}}function Ui(e,t){if(t.type===`int`)return!(typeof e!=`number`||t.min!==void 0&&e<t.min||t.max!==void 0&&e>t.max);if(t.type===`enum`){let n=Array.isArray(t.options)?t.options:[];return n.length>0&&n.includes(String(e))}if(t.type===`list`)return Array.isArray(e)&&e.length>0;if(t.type===`url`){let t=String(e??``).trim();return t!==``&&/^https?:\/\//i.test(t)}return!0}function Wi({strip:e}){return(0,I.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2 rounded border border-amber-200 dark:border-amber-900/60 bg-amber-50 dark:bg-amber-950/40 px-2.5 py-1.5`,children:[(0,I.jsx)(Pe,{size:13,className:`text-amber-600 dark:text-amber-400 shrink-0`}),(0,I.jsxs)(`span`,{className:`text-[12px] text-amber-900 dark:text-amber-200`,children:[L(`Recommended:`),` `,(0,I.jsx)(`span`,{className:`font-medium`,children:e.display})]}),(0,I.jsxs)(`button`,{type:`button`,onClick:e.apply,className:`ml-auto inline-flex items-center gap-1 text-[12px] px-2 py-1 rounded bg-accent text-white hover:bg-primary-hover transition-colors`,children:[(0,I.jsx)(O,{size:12}),L(`Apply`)]}),(0,I.jsx)(`button`,{type:`button`,onClick:e.dismiss,className:`text-[12px] text-amber-800 dark:text-amber-300 hover:underline`,children:L(`Dismiss`)})]})}function W(e){return typeof e==`string`&&e.includes(`••••`)}function G({value:e,onChange:t,label:n,inputClassName:r}){let i=W(e),a=(0,y.useRef)(i?e:``);i&&a.current!==e&&(a.current=e);let o=i?``:String(e??``),s=a.current!==``;return(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,I.jsx)(`input`,{type:`password`,value:o,onChange:e=>{let n=e.target.value;t(n===``?a.current:n)},autoComplete:`off`,spellCheck:!1,placeholder:i?String(e):n,title:s?L(`A key is saved. Type to replace it; use ✕ to remove it.`):void 0,className:r??`w-56 rounded-control border border-line bg-paper px-2.5 py-1.5 text-[13px] text-ink focus:outline-none focus:ring-2 focus:ring-primary`,"aria-label":n}),s&&i&&(0,I.jsx)(`button`,{type:`button`,onClick:()=>{a.current=``,t(``)},className:`shrink-0 p-1.5 rounded border border-line text-ink-soft hover:text-danger hover:border-danger transition-colors`,title:L(`Remove the saved key`),"aria-label":`${L(`Remove`)} ${n}`,children:(0,I.jsx)(_t,{size:13})})]})}var Gi={ms:1/1e3,seconds:1,minutes:60,hours:3600,days:86400},Ki=[{seconds:604800,one:`week`,many:`weeks`},{seconds:86400,one:`day`,many:`days`},{seconds:3600,one:`hour`,many:`hours`},{seconds:60,one:`minute`,many:`minutes`},{seconds:1,one:`second`,many:`seconds`}],qi=3;function Ji(e,t){if(!Number.isFinite(e)||e<=0)return``;let n=Math.floor(e*Gi[t]);if(n<1||t===`seconds`&&n<60)return``;let r=[],i=n;for(let e of Ki){if(r.length>=qi)break;let t=Math.floor(i/e.seconds);t<=0||(r.push(`${t} ${t===1?e.one:e.many}`),i-=t*e.seconds)}return r.join(` `)}function Yi(e,t){return Ji(e,t)}function Xi({notices:e}){return!e||e.length===0?null:(0,I.jsx)(I.Fragment,{children:e.map((e,t)=>(0,I.jsx)(V,{tone:e.tone,title:e.title,body:e.body,snippet:e.snippet,action:e.action},t))})}function Zi({module:e,onSaved:t,subtab:n,onSubtabChange:r,getModule:i}){if(Vt(),e.locked)return(0,I.jsx)(Mi,{module:e});if(e.custom_panel){let a={onSaved:t,subtab:n,onSubtabChange:r,getModule:i},o=ji[e.custom_panel]??zt(e.custom_panel);if(o)return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(Xi,{notices:e.notices}),(0,I.jsx)(o,{module:e,...a})]})}return(0,I.jsx)(Qi,{module:e,onSaved:t})}function Qi({module:e,onSaved:t}){let[n,r]=(0,y.useState)(e.settings),[i,a]=(0,y.useState)(`idle`),[o,s]=(0,y.useState)(null),c=(0,y.useRef)(!0),l=(0,y.useRef)(null),u=(0,y.useRef)(null),d=(0,y.useRef)(JSON.stringify(e.settings)),f=(0,y.useRef)(`idle`);(0,y.useEffect)(()=>{f.current=i},[i]);let p=(0,y.useRef)(n);(0,y.useEffect)(()=>{p.current=n},[n]),(0,y.useEffect)(()=>{r(e.settings),d.current=JSON.stringify(e.settings),c.current=!0,a(`idle`),s(null)},[e.slug]),(0,y.useEffect)(()=>{if(c.current){c.current=!1;return}if(JSON.stringify(n)!==d.current)return l.current&&window.clearTimeout(l.current),l.current=window.setTimeout(async()=>{f.current!==`saved`&&a(`saving`),s(null);let i=n;try{let n=await B.updateModuleSettings(e.slug,i),{next:o,dirty:s}=or(i,n,p.current);r(o),d.current=s?``:JSON.stringify(o),a(`saved`),u.current&&window.clearTimeout(u.current),u.current=window.setTimeout(()=>a(`idle`),1500),t?.(n)}catch(e){s(e instanceof Error?e.message:`Save failed`),a(`idle`)}},600),()=>{l.current&&window.clearTimeout(l.current)}},[n,e.slug]);let m=Tr(e.schema,n),h=(e,t)=>r(n=>({...n,[e]:t}));return(0,I.jsxs)(`div`,{className:`space-y-4`,children:[(0,I.jsx)(rr,{state:i}),(0,I.jsx)(Xi,{notices:e.notices}),(0,I.jsx)(`div`,{className:`border border-line bg-paper rounded-card overflow-hidden`,children:m.map(([t,r],i)=>(0,I.jsx)($i,{moduleSlug:e.slug,fieldKey:t,spec:r,value:n[t],onChange:e=>h(t,e),first:i===0},t))}),o&&(0,I.jsx)(`div`,{className:`text-[12px] text-danger`,children:o})]})}function $i({moduleSlug:e,fieldKey:t,spec:n,value:r,onChange:i,first:a}){let o=n.label??ra(t),s=`${e}:${t}`,c=Hi(e,t,n,r,i),l=n.description,u=n.type===`int`&&(n.min!==void 0||n.max!==void 0)?`Range: ${n.min??`-∞`} – ${n.max??`∞`}`:null,d=n.type===`list`,f=a?``:`border-t border-line`;return d?(0,I.jsxs)(`div`,{"data-field-anchor":s,className:`xspeed-field px-4 sm:px-5 py-4 ${f}`,children:[(0,I.jsxs)(`div`,{className:`mb-1.5`,children:[(0,I.jsxs)(`div`,{className:`font-medium text-ink inline-flex items-center gap-1.5`,children:[(0,I.jsx)(`span`,{children:o}),n.info&&(0,I.jsx)(Cn,{title:n.info_title,body:n.info})]}),(0,I.jsx)(ea,{spec:n})]}),na(n,r,i,o),c&&(0,I.jsx)(Wi,{strip:c})]}):(0,I.jsxs)(`div`,{"data-field-anchor":s,className:`xspeed-field px-4 sm:px-5 py-4 ${f}`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3 sm:gap-4`,children:[(0,I.jsxs)(`div`,{className:`min-w-0 max-w-[70%] pr-2`,children:[(0,I.jsxs)(`div`,{className:`font-medium text-ink inline-flex items-center gap-1.5`,children:[(0,I.jsx)(`span`,{children:o}),n.info&&(0,I.jsx)(Cn,{title:n.info_title,body:n.info})]}),(0,I.jsx)(ea,{spec:n}),!l&&u&&(0,I.jsx)(`div`,{className:`text-[12px] text-ink-soft mt-0.5`,children:u})]}),(0,I.jsx)(`div`,{className:`shrink-0`,children:na(n,r,i,o)})]}),c&&(0,I.jsx)(Wi,{strip:c})]})}function ea({spec:e}){return!e.description&&!e.doc_url?null:(0,I.jsxs)(`div`,{className:`text-[12px] text-ink-soft mt-0.5`,children:[e.description,e.doc_url&&(0,I.jsxs)(I.Fragment,{children:[e.description?` `:``,(0,I.jsx)(`a`,{href:e.doc_url,target:`_blank`,rel:`noopener noreferrer`,className:`text-accent hover:underline`,children:`Check the documentation`})]})]})}function ta({value:e,label:t,onChange:n}){let r=Array.isArray(e)?e.map(String):[],[i,a]=(0,y.useState)(null),o=i??r.join(`
9 `),s=(0,y.useRef)(!1),c=e=>{let t=e.split(`
10 `).map(e=>e.trim());(t.length!==r.length||t.some((e,t)=>e!==r[t]))&&n(t)},l=e=>{let t=e.split(`
11 `).map(e=>e.trim()).filter(Boolean),i=Array.from(new Set(t));a(null),(i.length!==r.length||i.some((e,t)=>e!==r[t]))&&n(i)};return(0,I.jsx)(`textarea`,{value:o,rows:5,onCompositionStart:()=>{s.current=!0},onCompositionEnd:e=>{s.current=!1,c(e.currentTarget.value)},onChange:e=>{let t=e.target.value;a(t),s.current||c(t)},onBlur:e=>l(e.target.value),className:`w-full rounded-control border border-line bg-paper px-3 py-2 font-mono text-[12px] text-ink focus:outline-none focus:ring-2 focus:ring-primary`,"aria-label":t})}function na(e,t,n,r){switch(e.type){case`bool`:return(0,I.jsx)(gn,{checked:!!t,onChange:e=>n(e),label:r});case`int`:{let i=e.unit?Yi(Number(t),e.unit):``;return(0,I.jsxs)(`div`,{className:`flex flex-col items-end`,children:[(0,I.jsx)(`input`,{type:`number`,value:t==null?``:Number(t),min:e.min,max:e.max,onChange:e=>n(Number(e.target.value)),className:`w-24 shrink-0 text-right rounded-control border border-line bg-paper px-2.5 py-1.5 text-[13px] text-ink focus:outline-none focus:ring-2 focus:ring-primary`,"aria-label":r}),e.unit&&(0,I.jsx)(`span`,{"aria-live":`polite`,className:`mt-1 block h-4 text-right text-[11.5px] leading-4 text-muted`,children:i})]})}case`enum`:return(0,I.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:(e.options??[]).map(r=>{let i=t===r,a=e.option_labels?.[r]??ra(r);return(0,I.jsx)(`button`,{type:`button`,onClick:()=>n(r),className:`text-[12px] px-2.5 py-1 rounded border transition-colors ${i?`bg-primary border-primary text-on-primary`:`border-line text-ink-soft hover:bg-panel`}`,children:a},r)})});case`string`:case`url`:return(0,I.jsx)(`input`,{type:e.type===`url`?`url`:`text`,value:t==null?``:String(t),onChange:e=>n(e.target.value),className:`w-56 rounded-control border border-line bg-paper px-2.5 py-1.5 text-[13px] text-ink focus:outline-none focus:ring-2 focus:ring-primary`,"aria-label":r});case`secret`:return(0,I.jsx)(G,{value:t,onChange:n,label:r});case`media`:return(0,I.jsx)(Sn,{value:t==null?``:String(t),onChange:e=>n(e),label:r});case`list`:return(0,I.jsx)(ta,{value:t,label:r,onChange:n});default:return null}}function ra(e){return e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function ia({probe:e,onOpenHealth:t}){let n=!!e&&!e.active&&!e.pending&&!e.inconclusive,r=e?.snippet?`xspeed:rewrite_alert:${aa(e.snippet)}`:`xspeed:rewrite_alert:apache`,[i,a]=(0,y.useState)(!1);if((0,y.useEffect)(()=>{if(n)try{a(window.localStorage.getItem(r)===`1`)}catch{a(!1)}},[n,r]),!n||i)return null;let o=()=>{try{window.localStorage.setItem(r,`1`)}catch{}a(!0)},s=e.topology??(e.server_type===`nginx`?`nginx-host`:`htaccess`),c=s===`nginx-container`&&e.behind_proxy===!0,l,u;if(c)l=`Static rewrite may not be available on this host`,u=`Your cache still works on every request — xSpeed's PHP drop-in is serving cached HTML, so nothing is broken. But this site sits behind a reverse proxy or CDN, which usually means a managed/containerized host where the nginx that serves requests isn't one you can edit. The extra-fast server-level rewrite (5–15ms static hits) needs that nginx, so it likely can't be enabled here — and that's also why the cache HIT log stays empty (nginx never serves the static file, so there's nothing to log). If you DO control the request-terminating nginx, use the snippet in the "Server config" panel below.`;else switch(s){case`nginx-host`:l=`nginx detected — configure for max cache speed`,u=`Your cache works on every request — xSpeed's PHP drop-in is serving cached HTML. To shave additional latency, copy the snippet from the "Server config" panel below into your nginx vhost (typically /etc/nginx/sites-enabled/<your-site>) and reload nginx so cached pages skip PHP entirely.`;break;case`nginx-container`:l=`Containerized nginx detected — paste into your container config`,u=`Your cache works on every request — xSpeed's PHP drop-in is serving cached HTML. For the full server-level rewrite, copy the snippet from the "Server config" panel below into your container's nginx config (typically docker/nginx.conf next to your docker-compose.yml). The host nginx in front of your container only proxies traffic; pasting there has no effect.`;break;default:l=`Server config missing — cache running on PHP fallback`,u=`Your cache works on every request — xSpeed's PHP drop-in is serving cached HTML. To engage the faster server-level rewrite, toggle Cache off and on to reinstall the .htaccess block, and confirm AllowOverride is enabled for your site.`}return(0,I.jsxs)(`div`,{className:`border border-amber-300 dark:border-amber-900/60 bg-amber-50 dark:bg-amber-950/30 rounded-lg p-4 sm:p-5 relative`,children:[(0,I.jsx)(`button`,{type:`button`,onClick:o,"aria-label":`Dismiss banner`,className:`absolute top-2 right-2 p-1 rounded text-amber-700/70 hover:text-amber-900 dark:text-amber-300/70 dark:hover:text-amber-100 hover:bg-amber-100 dark:hover:bg-amber-900/40`,children:(0,I.jsx)(_t,{size:14})}),(0,I.jsxs)(`div`,{className:`flex items-start gap-2.5 pr-6`,children:[(0,I.jsx)(vt,{size:16,className:`shrink-0 mt-0.5 text-amber-600 dark:text-amber-400`}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`div`,{className:`font-medium text-amber-900 dark:text-amber-100 text-[13px]`,children:l}),(0,I.jsx)(`p`,{className:`text-[12px] text-amber-800/90 dark:text-amber-200/80 mt-1`,children:u}),(0,I.jsx)(`div`,{className:`mt-3 flex items-center gap-3`,children:(0,I.jsx)(`button`,{type:`button`,onClick:t,className:`text-[12px] font-medium text-amber-900 dark:text-amber-100 underline underline-offset-2 hover:text-amber-700 dark:hover:text-amber-300`,children:`View in Health →`})})]})]})]})}function aa(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)|0;return(t>>>0).toString(36)}function oa({mobile:e,onOpenCacheSettings:t}){let[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null);if(!(e&&(e.blocking||e.needs_review))||n)return null;let c=!e.blocking&&e.needs_review;return(0,I.jsxs)(`div`,{className:`border border-amber-300 dark:border-amber-900/60 bg-amber-50 dark:bg-amber-950/30 rounded-lg p-4 sm:p-5 relative`,children:[(0,I.jsx)(`button`,{type:`button`,onClick:async()=>{r(!0);try{await B.dismissMobileReview()}catch{}},"aria-label":`Dismiss banner`,className:`absolute top-2 right-2 p-1 rounded text-amber-700/70 hover:text-amber-900 dark:text-amber-300/70 dark:hover:text-amber-100 hover:bg-amber-100 dark:hover:bg-amber-900/40`,children:(0,I.jsx)(_t,{size:14})}),(0,I.jsxs)(`div`,{className:`flex items-start gap-2.5 pr-6`,children:[(0,I.jsx)(nt,{size:16,className:`shrink-0 mt-0.5 text-amber-600 dark:text-amber-400`}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`div`,{className:`font-medium text-amber-900 dark:text-amber-100 text-[13px]`,children:c?`Separate Mobile Cache was left off after import`:`Separate Mobile Cache is disabling faster static serving`}),(0,I.jsx)(`p`,{className:`text-[12px] text-amber-800/90 dark:text-amber-200/80 mt-1`,children:c?(0,I.jsxs)(I.Fragment,{children:[`Your previous plugin had Separate Mobile Cache on, but xSpeed kept it `,(0,I.jsx)(`strong`,{children:`off`}),` so it can use the device-blind server-level rewrite (5–15ms static hits) instead of the slower PHP path (~85ms). Most sites serve the same HTML to every device and don’t need it. Only turn it on if your site serves device-specific pages — not sure? Check whether your desktop and mobile pages actually differ.`]}):(0,I.jsx)(I.Fragment,{children:`Separate Mobile Cache is on, so xSpeed can’t use the device-blind server-level rewrite (5–15ms static hits) and falls back to the slower PHP path (~85ms). If your site serves the same HTML to every device, turn it off for much faster cache hits. Not sure? Check whether your desktop and mobile pages actually differ.`})}),o&&o.checked&&(0,I.jsx)(`div`,{className:`mt-2.5 text-[12px] rounded-md px-2.5 py-2 `+(o.identical?`bg-emerald-100/70 dark:bg-emerald-950/40 text-emerald-900 dark:text-emerald-200`:`bg-amber-100/70 dark:bg-amber-900/40 text-amber-900 dark:text-amber-100`),children:o.identical?(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,I.jsx)(O,{size:13,className:`shrink-0`}),c?`Desktop and mobile HTML are identical — leaving Separate Mobile Cache off is correct; nothing to change.`:`Desktop and mobile HTML are identical — you can safely turn Separate Mobile Cache off to regain the fast static path.`]}):(0,I.jsxs)(I.Fragment,{children:[`Desktop and mobile HTML differ`,o.desktop_bytes&&o.mobile_bytes?` (${o.desktop_bytes.toLocaleString()} vs ${o.mobile_bytes.toLocaleString()} bytes)`:``,` `,`— your site serves device-specific pages, so`,` `,c?`you should turn Separate Mobile Cache on.`:`keeping Separate Mobile Cache on is correct.`]})}),o&&!o.checked&&(0,I.jsxs)(`div`,{className:`mt-2.5 text-[12px] text-amber-800/80 dark:text-amber-200/70`,children:[`Couldn’t complete the check`,o.reason?` (${o.reason})`:``,`. Try again shortly.`]}),(0,I.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-3`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:async()=>{a(!0);try{s(await B.mobileEqualityProbe())}catch{s({identical:!1,checked:!1,reason:`probe failed`})}finally{a(!1)}},disabled:i,className:`inline-flex items-center gap-1.5 text-[12px] font-medium text-amber-900 dark:text-amber-100 underline underline-offset-2 hover:text-amber-700 dark:hover:text-amber-300 disabled:opacity-60 disabled:no-underline`,children:[i&&(0,I.jsx)(Fe,{size:12,className:`animate-spin`}),i?`Checking…`:`Check now`]}),(0,I.jsx)(`button`,{type:`button`,onClick:t,className:`text-[12px] font-medium text-amber-900 dark:text-amber-100 underline underline-offset-2 hover:text-amber-700 dark:hover:text-amber-300`,children:`Open Cache settings →`})]})]})]})]})}var sa=`xspeed:nginx_server_block:expanded`,ca=`cache:nginx_snippet`;function la({snippet:e,topology:t,focus:n}){let[r,i]=(0,y.useState)(()=>{try{return window.localStorage.getItem(sa)===`1`}catch{return!1}});(0,y.useEffect)(()=>{n===`cache:nginx_snippet`&&i(!0)},[n]);let a=()=>{i(e=>{let t=!e;try{window.localStorage.setItem(sa,t?`1`:`0`)}catch{}return t})};if(!e)return null;let o=t===`nginx-container`?`your container's nginx config (typically docker/nginx.conf next to your docker-compose.yml)`:`your nginx vhost (typically /etc/nginx/sites-enabled/<your-site>)`,s=e.split(`
12 `).length;return(0,I.jsxs)(`section`,{"data-field-anchor":ca,className:`xspeed-field border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg overflow-hidden`,children:[(0,I.jsxs)(`div`,{className:`flex items-start gap-2.5 p-4 sm:p-5`,children:[(0,I.jsx)(`button`,{type:`button`,onClick:a,"aria-expanded":r?`true`:`false`,"aria-label":r?`Collapse server config`:`Expand server config`,className:`shrink-0 mt-0.5 rounded text-neutral-500 dark:text-neutral-400 hover:text-neutral-700 dark:hover:text-neutral-200 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-1`,children:r?(0,I.jsx)(k,{size:16}):(0,I.jsx)(j,{size:16})}),(0,I.jsx)(Ze,{size:16,className:`shrink-0 mt-0.5 text-neutral-500 dark:text-neutral-400`}),(0,I.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,I.jsxs)(`h2`,{className:`inline-flex items-center gap-1.5 text-[13px] font-semibold text-neutral-900 dark:text-neutral-50`,children:[(0,I.jsxs)(`span`,{children:[`Server config `,(0,I.jsxs)(`span`,{className:`text-neutral-400 dark:text-neutral-500 font-normal`,children:[`· `,s,` lines`]})]}),(0,I.jsx)(Cn,{title:`Good to know`,body:`You added this snippet to your nginx config yourself, so it's yours to manage — xSpeed never touches it. If you ever need to uninstall xSpeed, just remove this snippet from your nginx config first to keep everything tidy and your server running happily.`})]}),(0,I.jsxs)(`p`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400 mt-0.5`,children:[`Paste this once into `,o,`, above the `,(0,I.jsx)(`code`,{className:`text-[11px]`,children:`location /`}),` block, then reload nginx.`]})]})]}),r&&(0,I.jsx)(`div`,{className:`px-4 pb-4 sm:px-5 sm:pb-5`,children:(0,I.jsx)(En,{content:e,tone:`neutral`})})]})}function ua({label:e,value:t,icon:n,onClick:r,expanded:i,hint:a}){let o=(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,I.jsx)(`div`,{className:`text-[11px] uppercase tracking-wider text-neutral-500 dark:text-neutral-400 font-medium`,children:e}),r?(0,I.jsx)(k,{size:14,className:`text-neutral-400 dark:text-neutral-500 transition-transform ${i?`rotate-180`:``}`}):n&&(0,I.jsx)(n,{size:14,className:`text-neutral-400 dark:text-neutral-500`})]}),(0,I.jsx)(`div`,{className:`text-[22px] font-semibold text-neutral-900 dark:text-neutral-50 leading-none`,children:t})]}),s=`border bg-white dark:bg-neutral-900 rounded-lg p-5 text-left w-full transition-colors`;return r?(0,I.jsx)(`button`,{type:`button`,onClick:r,"aria-expanded":i??!1,"aria-label":a?`${e} — ${a}`:e,className:`${s} cursor-pointer hover:border-neutral-300 dark:hover:border-neutral-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${i?`border-accent dark:border-accent`:`border-neutral-200 dark:border-neutral-800`}`,children:o}):(0,I.jsx)(`div`,{className:`${s} border-neutral-200 dark:border-neutral-800`,children:o})}var da={events:[],last_purge:0,last_gc:0,gc_removed:0,gc_removed_total:0,gc_next_run:0};function fa(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(2)} MB`}function pa(e){return e<60?`${e}s`:e<3600?`${Math.floor(e/60)}m`:e<86400?`${Math.floor(e/3600)}h`:`${Math.floor(e/86400)}d`}function ma({title:e,busy:t,onRefresh:n,children:r}){return(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,I.jsx)(`div`,{className:`text-[12px] font-medium text-neutral-900 dark:text-neutral-50`,children:e}),(0,I.jsx)(`button`,{type:`button`,onClick:n,disabled:t,"aria-label":L(`Refresh`),className:`text-neutral-400 dark:text-neutral-500 hover:text-neutral-700 dark:hover:text-neutral-300 disabled:opacity-40`,children:(0,I.jsx)(P,{size:13,className:t?`animate-spin`:``})})]}),r]})}function ha({text:e}){return(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400 py-2`,children:e})}function ga(){let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(!1),i=async(e=!1)=>{r(!0);try{t(await B.request(`/cache/inventory?limit=50${e?`&fresh=1`:``}`))}catch{t({entries:[],total:0,capped:!1})}finally{r(!1)}};return(0,y.useEffect)(()=>{i()},[]),(0,I.jsx)(ma,{title:L(`Cached pages`),busy:n,onRefresh:()=>void i(!0),children:e?e.entries.length===0?(0,I.jsx)(ha,{text:L(`Nothing cached yet. Visit a page as a logged-out visitor to warm the cache.`)}):(0,I.jsxs)(I.Fragment,{children:[e.capped&&(0,I.jsxs)(`div`,{className:`flex items-start gap-2 mb-3 text-[11px] text-amber-700 dark:text-amber-400`,children:[(0,I.jsx)(dt,{size:12,className:`mt-0.5 shrink-0`}),(0,I.jsx)(`span`,{children:L(`This cache is large enough that the scan stopped early — the list below is a recent sample, not every page.`)})]}),(0,I.jsx)(`div`,{className:`overflow-x-auto`,children:(0,I.jsxs)(`table`,{className:`w-full text-[12px]`,children:[(0,I.jsx)(`thead`,{children:(0,I.jsxs)(`tr`,{className:`text-[11px] uppercase tracking-wider text-neutral-500 dark:text-neutral-400`,children:[(0,I.jsx)(`th`,{className:`text-left font-medium pb-2`,children:L(`Page`)}),(0,I.jsx)(`th`,{className:`text-right font-medium pb-2 whitespace-nowrap`,children:L(`Size`)}),(0,I.jsx)(`th`,{className:`text-right font-medium pb-2 whitespace-nowrap`,children:L(`Age`)}),(0,I.jsx)(`th`,{className:`text-right font-medium pb-2 whitespace-nowrap`,children:L(`Stored`)})]})}),(0,I.jsx)(`tbody`,{children:e.entries.map(e=>(0,I.jsxs)(`tr`,{className:`border-t border-neutral-100 dark:border-neutral-800`,children:[(0,I.jsx)(`td`,{className:`py-1.5 pr-3 max-w-0`,children:e.url?(0,I.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`text-neutral-800 dark:text-neutral-200 hover:underline inline-flex items-center gap-1 truncate max-w-full`,children:[(0,I.jsx)(`span`,{className:`truncate`,children:e.url}),(0,I.jsx)(N,{size:10,className:`shrink-0 opacity-60`})]}):(0,I.jsx)(`span`,{className:`text-neutral-500 dark:text-neutral-400 font-mono text-[11px]`,title:e.key,children:L(`Address not recorded`)})}),(0,I.jsx)(`td`,{className:`py-1.5 text-right tabular-nums text-neutral-600 dark:text-neutral-400 whitespace-nowrap`,children:fa(e.bytes)}),(0,I.jsx)(`td`,{className:`py-1.5 pl-3 text-right tabular-nums text-neutral-600 dark:text-neutral-400 whitespace-nowrap`,children:pa(e.age)}),(0,I.jsx)(`td`,{className:`py-1.5 pl-3 text-right text-[11px] text-neutral-500 dark:text-neutral-400 whitespace-nowrap`,children:e.stored_in.join(` + `)})]},e.url??e.key))})]})}),(0,I.jsxs)(`div`,{className:`mt-2 text-[11px] text-neutral-500 dark:text-neutral-400`,children:[L(`Showing`),` `,e.entries.length,` `,L(`of`),` `,e.total]})]}):(0,I.jsx)(ha,{text:L(`Loading…`)})})}function _a(){let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(!1),i=async()=>{r(!0);try{t(await B.request(`/cache/size`))}catch{t(null)}finally{r(!1)}};(0,y.useEffect)(()=>{i()},[]);let a=e?.buckets.filter(e=>e.files>0)??[],o=a.reduce((e,t)=>Math.max(e,t.bytes),0);return(0,I.jsx)(ma,{title:L(`Where the cache size goes`),busy:n,onRefresh:()=>void i(),children:e?a.length===0?(0,I.jsx)(ha,{text:L(`Nothing on disk yet.`)}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`div`,{className:`space-y-2`,children:a.map(e=>(0,I.jsxs)(`div`,{children:[(0,I.jsxs)(`div`,{className:`flex items-baseline justify-between text-[12px]`,children:[(0,I.jsx)(`span`,{className:`text-neutral-700 dark:text-neutral-300`,children:e.label}),(0,I.jsxs)(`span`,{className:`tabular-nums text-neutral-600 dark:text-neutral-400`,children:[fa(e.bytes),(0,I.jsxs)(`span`,{className:`text-neutral-400 dark:text-neutral-500`,children:[` · `,e.files]})]})]}),(0,I.jsx)(`div`,{className:`mt-1 h-1.5 rounded-full bg-neutral-100 dark:bg-neutral-800 overflow-hidden`,children:(0,I.jsx)(`div`,{className:`h-full rounded-full bg-accent`,style:{width:o>0?`${Math.max(2,e.bytes/o*100)}%`:`0%`}})})]},e.key))}),e.compressed_bytes>0&&(0,I.jsxs)(`div`,{className:`mt-3 text-[11px] text-neutral-500 dark:text-neutral-400`,children:[L(`Precompressed copies on disk:`),` `,fa(e.compressed_bytes),`.`,` `,L(`Pages without one are compressed by the server when requested.`)]})]}):(0,I.jsx)(ha,{text:L(`Loading…`)})})}function va(){let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(!1),i=async()=>{r(!0);try{t(await B.request(`/cache/purge-log?limit=25`))}catch{t(da)}finally{r(!1)}};(0,y.useEffect)(()=>{i()},[]);let a=Math.floor(Date.now()/1e3),o=e?e.last_gc>0?Pt(L(`Automatic cleanup ran %1$s ago — %2$d file(s) removed, %3$d in total.`),pa(Math.max(0,a-e.last_gc)),e.gc_removed,e.gc_removed_total):e.gc_next_run>0?Pt(L(`Automatic cleanup has not run yet — first sweep in %s.`),pa(Math.max(0,e.gc_next_run-a))):null:null;return(0,I.jsxs)(ma,{title:L(`Purge history`),busy:n,onRefresh:()=>void i(),children:[o&&(0,I.jsx)(`p`,{className:`text-[11px] text-neutral-500 dark:text-neutral-400 mb-2`,children:o}),e?e.events.length===0?(0,I.jsx)(ha,{text:L(`No purges recorded yet.`)}):(0,I.jsx)(`ul`,{className:`space-y-1.5`,children:e.events.map((e,t)=>(0,I.jsxs)(`li`,{className:`flex items-baseline gap-3 text-[12px] border-t border-neutral-100 dark:border-neutral-800 first:border-t-0 pt-1.5 first:pt-0`,children:[(0,I.jsx)(`span`,{className:`tabular-nums text-[11px] text-neutral-500 dark:text-neutral-400 w-12 shrink-0`,children:pa(Math.max(0,a-e.ts))}),(0,I.jsx)(`span`,{className:`text-neutral-700 dark:text-neutral-300`,children:e.message})]},`${e.ts}-${t}`))}):(0,I.jsx)(ha,{text:L(`Loading…`)})]})}function ya({which:e}){return e===`pages`?(0,I.jsx)(ga,{}):e===`size`?(0,I.jsx)(_a,{}):e===`purge`?(0,I.jsx)(va,{}):null}function ba(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(2)} MB`}function xa(e){return(e.hits_24h??0)+(e.misses_24h??0)===0?`—`:`${Math.round((e.hit_ratio??0)*100)}%`}function Sa(e){if(!e)return`Never`;let t=Math.floor(Date.now()/1e3)-e;return t<60?`${t}s ago`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}function K({settings:e,stats:t,onToggle:n,onPurge:r}){let[i,a]=(0,y.useState)(null),o=e=>a(t=>t===e?null:e);return(0,I.jsxs)(`div`,{className:`space-y-6`,children:[(0,I.jsxs)(`div`,{"data-field-anchor":`cache:cache_enabled`,className:`xspeed-field border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(`span`,{className:`w-2 h-2 rounded-full shrink-0 ${e.cache_enabled?`bg-emerald-500`:`bg-neutral-300 dark:bg-neutral-600`}`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:`Enable Cache`}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400`,children:e.cache_enabled?`Active — serving cached HTML`:`Inactive`})]})]}),(0,I.jsxs)(`div`,{className:`flex items-center justify-end gap-3 shrink-0`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:r,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800 transition-colors`,children:[(0,I.jsx)(lt,{size:13}),`Purge`]}),(0,I.jsx)(gn,{checked:e.cache_enabled,onChange:n,size:`lg`,label:`Enable Cache`})]})]}),(0,I.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-2 lg:grid-cols-4 gap-3 sm:gap-4`,children:[(0,I.jsx)(ua,{label:`Cached Pages`,value:String(t.cached_pages),onClick:()=>o(`pages`),expanded:i===`pages`,hint:L(`show which pages are cached`)}),(0,I.jsx)(ua,{label:`Cache Size`,value:ba(t.cache_size),onClick:()=>o(`size`),expanded:i===`size`,hint:L(`show what is taking the space`)}),(0,I.jsx)(ua,{label:`Last Purge`,value:Sa(t.last_purge),onClick:()=>o(`purge`),expanded:i===`purge`,hint:L(`show what cleared the cache and why`)}),(0,I.jsx)(ua,{label:t.edge_cache?L(`Hit Ratio · 24h · origin`):L(`Hit Ratio · 24h`),value:xa(t),onClick:()=>{document.querySelector(`[data-xspeed-anchor="hit-trend"]`)?.scrollIntoView({block:`start`,behavior:`smooth`})},hint:L(`jump to the hit-ratio trend`)})]}),(t.edge_cache||(t.excluded_24h??0)>0)&&(0,I.jsxs)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400 space-y-1 -mt-2`,children:[t.edge_cache&&(0,I.jsx)(`p`,{children:L(`An edge cache (Cloudflare) is in front, so this hit ratio is origin-layer only — hits served at the edge never reach the origin and aren’t counted here.`)}),(t.excluded_24h??0)>0&&(0,I.jsxs)(`p`,{children:[L(`Absorbed`),` `,(0,I.jsx)(`span`,{className:`tabular-nums text-neutral-700 dark:text-neutral-300 font-medium`,children:(t.excluded_24h??0).toLocaleString()}),` `,L(`bot / 404 requests in 24h — excluded from the hit ratio.`)]})]}),i&&(0,I.jsx)(ya,{which:i})]})}function Ca(e){let t=e/1e3;return t<60?`${t.toFixed(1)}s`:t<3600?`${(t/60).toFixed(1)} ${L(`min`)}`:`${(t/3600).toFixed(1)} ${L(`hrs`)}`}function wa({stats:e}){let[t,n]=(0,y.useState)(void 0),[r,i]=(0,y.useState)([]);if((0,y.useEffect)(()=>{(async()=>{try{let[e,t]=await Promise.all([B.request(`/cache/benchmark/history`),B.request(`/stats/hit-daily?days=30`)]),r=e.runs.filter(e=>e.cache_enabled&&e.savings_ms!=null&&e.savings_ms>0);n(r.length?r[r.length-1].savings_ms:null),i(t.days)}catch{n(null)}})()},[]),t===void 0)return null;let a=e.hits_24h??0;if(t===null||a===0)return(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5 flex items-center gap-3`,children:[(0,I.jsx)(ct,{size:18,className:`text-neutral-400 dark:text-neutral-500 shrink-0`}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400`,children:L(t===null?`Run the benchmark once and this card shows how much combined wait time the cache saves your visitors.`:`Serving cached pages… impact numbers appear once today’s hits accumulate.`)})]});let o=e=>r.slice(-e).reduce((e,t)=>e+(t.hits??0),0),s=[{label:L(`last 24h`),hits:a},{label:L(`7 days`),hits:o(7)},{label:L(`30 days`),hits:o(30)}];return(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[(0,I.jsx)(vt,{size:16,className:`text-accent shrink-0`}),(0,I.jsx)(`span`,{className:`text-[11px] uppercase tracking-wider font-medium text-neutral-500 dark:text-neutral-400`,children:L(`Real visitor impact`)})]}),(0,I.jsxs)(`div`,{className:`text-neutral-900 dark:text-neutral-50`,children:[L(`xSpeed served`),` `,(0,I.jsx)(`span`,{className:`font-semibold tabular-nums`,children:a.toLocaleString()}),` `,L(`cached pages in 24h — saving your visitors`),` `,(0,I.jsx)(`span`,{className:`font-semibold text-emerald-600 dark:text-emerald-400 tabular-nums`,children:Ca(a*t)}),` `,L(`of combined wait time`),` `,(0,I.jsxs)(`span`,{className:`text-neutral-500 dark:text-neutral-400 text-[13px]`,children:[`(`,Math.round(t),`ms `,L(`faster per page`),`)`]})]}),(0,I.jsx)(`div`,{className:`flex flex-wrap gap-x-5 gap-y-1 mt-2 text-[12px] text-neutral-500 dark:text-neutral-400`,children:s.slice(1).map(e=>e.hits>0?(0,I.jsxs)(`span`,{children:[e.label,`:`,` `,(0,I.jsx)(`span`,{className:`tabular-nums text-neutral-700 dark:text-neutral-300 font-medium`,children:Ca(e.hits*t)}),` `,L(`saved across`),` `,e.hits.toLocaleString(),` `,L(`hits`)]},e.label):null)})]})}function Ta(){let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(!1),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),c=(0,y.useCallback)(async()=>{try{t((await B.request(`/recommendations`)).recommendations)}catch{t([])}},[]);(0,y.useEffect)(()=>{c()},[c]);let l=e?.[0];return e===null?null:l?(0,I.jsx)(`div`,{className:`border border-amber-200 dark:border-amber-900/60 bg-amber-50 dark:bg-amber-950/40 rounded-lg p-4 sm:p-5`,children:(0,I.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center gap-3 sm:gap-4`,children:[(0,I.jsx)(Pe,{size:18,className:`text-amber-600 dark:text-amber-300 shrink-0 hidden sm:block`}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxs)(`div`,{className:`text-[11px] uppercase tracking-wider font-medium text-amber-700 dark:text-amber-300 mb-0.5`,children:[L(`Next best action`),e.length>1&&(0,I.jsxs)(`span`,{className:`normal-case tracking-normal font-normal`,children:[` `,`· `,e.length-1,` `,L(`more after this`)]})]}),(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:l.title}),(0,I.jsx)(`div`,{className:`text-[12px] text-amber-900/80 dark:text-amber-200/80 mt-0.5`,children:l.detail}),o&&(0,I.jsx)(`div`,{className:`text-[12px] text-red-700 dark:text-red-300 mt-1`,children:o})]}),(0,I.jsx)(`div`,{className:`shrink-0`,children:l.action.type===`apply`?(0,I.jsxs)(`button`,{type:`button`,onClick:async()=>{if(l){r(!0),s(null);try{let e=await B.request(`/recommendations/apply`,{method:`POST`,body:JSON.stringify({id:l.id})});a(!0),setTimeout(()=>{a(!1),t(e.recommendations)},1600)}catch(e){s(e instanceof Error?e.message:L(`Could not apply the fix.`))}finally{r(!1)}}},disabled:n||i,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-accent text-white hover:bg-primary-hover transition-colors disabled:opacity-60`,children:[n?(0,I.jsx)(P,{size:13,className:`animate-spin`}):i?(0,I.jsx)(O,{size:13}):null,i?L(`Applied`):l.action.label]}):(0,I.jsxs)(`a`,{href:l.action.module?_n({module:l.action.module,subtab:l.action.subtab,focus:l.action.focus,suggest:l.action.suggest}):`#`,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded border border-amber-300 dark:border-amber-800 text-amber-800 dark:text-amber-200 hover:bg-amber-100 dark:hover:bg-amber-900/40 transition-colors`,children:[l.action.label,` `,(0,I.jsx)(w,{size:13})]})})]})}):(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5 flex items-center gap-3`,children:[(0,I.jsx)(oe,{size:18,className:`text-emerald-500 shrink-0`}),(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:L(`No recommendations right now`)}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400`,children:L(`Every deterministic check passes — your configuration looks healthy.`)})]})]})}function Ea({compact:e=!1}){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(!1),[a,o]=(0,y.useState)(null);return(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 mb-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(vt,{size:18,className:`text-accent shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:L(`Cache impact benchmark`)}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400`,children:L(`Compare your homepage with and without cache.`)})]})]}),(0,I.jsxs)(`button`,{type:`button`,onClick:async()=>{i(!0),o(null);try{n(await B.request(`/cache/benchmark`))}catch(e){o(e instanceof Error?e.message:L(`Benchmark failed`))}finally{i(!1)}},disabled:r,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-accent text-white hover:bg-primary-hover transition-colors disabled:opacity-40 disabled:cursor-not-allowed`,children:[r?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(vt,{size:13}),L(t?`Re-run`:`Run benchmark`)]})]}),a&&(0,I.jsxs)(`div`,{className:`text-[13px] text-red-700 dark:text-red-300 bg-red-50 dark:bg-red-950/40 border border-red-200 dark:border-red-900/60 rounded p-2.5 flex items-start gap-2 mb-3`,children:[(0,I.jsx)(ae,{size:14,className:`shrink-0 mt-0.5`}),a]}),t&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,I.jsx)(Da,{label:L(`Without cache`),tone:`warn`,ms:t.without_cache.time_ms,bytes:t.without_cache.bytes}),(0,I.jsx)(Da,{label:L(`With cache`),tone:`ok`,ms:t.with_cache.time_ms,bytes:t.with_cache.bytes})]}),t.savings_pct!==null&&t.savings_ms!==null&&(0,I.jsx)(`div`,{className:`mt-3 text-center text-[13px]`,children:t.savings_pct>5?(0,I.jsxs)(`span`,{className:`text-emerald-700 dark:text-emerald-300 font-medium`,children:[`⚡ `,L(`Cache is`),` `,(0,I.jsxs)(`span`,{className:`tabular-nums`,children:[t.savings_pct.toFixed(0),`%`]}),` `,L(`faster`),` `,`(`,t.savings_ms.toFixed(0),` ms `,L(`saved per request`),`)`]}):(0,I.jsx)(`span`,{className:`text-neutral-500 dark:text-neutral-400`,children:L(`Negligible difference — page is cheap to render or cache is cold.`)})}),!t.cache_enabled&&(0,I.jsx)(`div`,{className:`mt-3 text-[12px] text-amber-700 dark:text-amber-300 text-center`,children:L(`Cache is disabled — both runs hit the same uncached path. Enable Cache to see a real difference.`)}),!e&&(0,I.jsx)(`div`,{className:`mt-3 text-[11px] text-neutral-400 text-center font-mono truncate`,children:t.url})]}),!t&&!r&&!a&&(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400 text-center py-3`,children:L(`Click "Run benchmark" to compare load times.`)})]})}function Da({label:e,tone:t,ms:n,bytes:r}){return(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 rounded p-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,I.jsx)(`span`,{className:`w-2 h-2 rounded-full ${t===`ok`?`bg-emerald-500`:`bg-amber-500`}`}),(0,I.jsx)(`span`,{className:`text-[11px] uppercase tracking-wider text-neutral-500 dark:text-neutral-400 font-medium`,children:e})]}),(0,I.jsxs)(`div`,{className:`text-2xl font-semibold tabular-nums ${t===`ok`?`text-emerald-600 dark:text-emerald-400`:`text-amber-600 dark:text-amber-400`}`,children:[Math.round(n),(0,I.jsx)(`span`,{className:`text-[13px] font-normal text-neutral-500 dark:text-neutral-400 ml-1`,children:`ms`})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 mt-2 text-[11px] text-neutral-500 dark:text-neutral-400`,children:[(0,I.jsx)(se,{size:11}),(0,I.jsxs)(`span`,{className:`tabular-nums`,children:[Math.round(n),` ms`]}),(0,I.jsx)(`span`,{className:`text-neutral-300 dark:text-neutral-700`,children:`·`}),(0,I.jsx)(fe,{size:11}),(0,I.jsxs)(`span`,{className:`tabular-nums`,children:[(r/1024).toFixed(1),` KB`]})]})]})}function Oa(){let[e,t]=(0,y.useState)(null),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)([]),[o,s]=(0,y.useState)(30),[c,l]=(0,y.useState)(!1),u=async()=>{l(!0);try{let[e,n]=await Promise.all([B.request(`/stats/hit-daily?days=30`),B.request(`/cache/benchmark/history`)]);t(e.days),r(n.runs),a(e.changes.length?e.changes:n.changes)}catch{t([]),r([])}finally{l(!1)}};(0,y.useEffect)(()=>{u()},[]);let d=(e??[]).slice(-o),f=d.length>=2,p=(n??[]).length>=2;return(0,I.jsxs)(`div`,{"data-xspeed-anchor":`hit-trend`,className:`border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 rounded-lg p-4 sm:p-5 scroll-mt-6`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 mb-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(ut,{size:18,className:`text-accent shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-neutral-900 dark:text-neutral-50`,children:L(`Trends`)}),(0,I.jsx)(`div`,{className:`text-[12px] text-neutral-500 dark:text-neutral-400`,children:L(`Hit ratio and benchmark history, with your settings changes marked.`)})]})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`div`,{className:`flex rounded border border-neutral-200 dark:border-neutral-700 overflow-hidden text-[12px]`,children:[7,30].map(e=>(0,I.jsxs)(`button`,{type:`button`,onClick:()=>s(e),className:o===e?`px-2.5 py-1 bg-accent text-white`:`px-2.5 py-1 text-neutral-600 dark:text-neutral-300 hover:bg-neutral-50 dark:hover:bg-neutral-800`,children:[e,`d`]},e))}),(0,I.jsx)(`button`,{type:`button`,onClick:u,disabled:c,"aria-label":L(`Refresh trends`),className:`p-1.5 rounded border border-neutral-200 dark:border-neutral-700 text-neutral-500 dark:text-neutral-400 hover:bg-neutral-50 dark:hover:bg-neutral-800 disabled:opacity-40`,children:(0,I.jsx)(P,{size:13,className:c?`animate-spin`:``})})]})]}),(0,I.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-3`,children:[(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 rounded p-3`,children:[(0,I.jsxs)(`div`,{className:`text-[11px] uppercase tracking-wider text-neutral-500 dark:text-neutral-400 font-medium mb-2`,children:[L(`Hit ratio`),` · `,o,`d`]}),f?(0,I.jsx)(Na,{rows:d,changes:i}):(0,I.jsx)(Fa,{text:L(`Trends appear after a couple of days of traffic. The daily series is being collected now.`)})]}),(0,I.jsxs)(`div`,{className:`border border-neutral-200 dark:border-neutral-800 rounded p-3`,children:[(0,I.jsx)(`div`,{className:`text-[11px] uppercase tracking-wider text-neutral-500 dark:text-neutral-400 font-medium mb-2`,children:L(`Benchmark: cached vs uncached (ms)`)}),p?(0,I.jsx)(Pa,{rows:n??[],changes:i}):(0,I.jsx)(Fa,{text:L(`Run the benchmark at least twice to see a trend.`)})]})]}),i.length>0&&(0,I.jsxs)(`div`,{className:`mt-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5 text-[11px] uppercase tracking-wider text-neutral-500 dark:text-neutral-400 font-medium mb-1.5`,children:[(0,I.jsx)(Te,{size:11}),` `,L(`Recent changes`)]}),(0,I.jsx)(`ul`,{className:`space-y-0.5`,children:i.slice(0,5).map(e=>(0,I.jsxs)(`li`,{className:`text-[12px] text-neutral-600 dark:text-neutral-300 truncate`,children:[(0,I.jsx)(`span`,{className:`text-neutral-400 dark:text-neutral-500 tabular-nums mr-2`,children:new Date(e.ts*1e3).toLocaleDateString()}),e.message]},`${e.ts}-${e.message}`))})]})]})}var ka=280,Aa=80,q=4;function ja(e,t){return t<=1?q:q+e*(ka-2*q)/(t-1)}function Ma({changes:e,t0:t,t1:n}){return n<=t?null:(0,I.jsx)(I.Fragment,{children:e.filter(e=>e.ts>=t&&e.ts<=n).map(e=>{let r=q+(e.ts-t)/(n-t)*(ka-2*q);return(0,I.jsx)(`line`,{x1:r,x2:r,y1:q,y2:Aa-q,className:`stroke-amber-500/70`,strokeWidth:`1`,strokeDasharray:`2 3`,children:(0,I.jsx)(`title`,{children:e.message})},`${e.ts}-${e.message}`)})})}function Na({rows:e,changes:t}){let n=e=>Aa-q-e*(Aa-2*q),r=e.map((t,r)=>`${ja(r,e.length)},${n(t.ratio)}`).join(` `),i=n(1),a=n(.8),o=Date.parse(e[0]?.date??``)/1e3,s=Date.parse(e[e.length-1]?.date??``)/1e3+86399,c=e[e.length-1];return(0,I.jsxs)(`div`,{children:[(0,I.jsxs)(`svg`,{viewBox:`0 0 ${ka} ${Aa}`,className:`w-full h-20`,role:`img`,"aria-label":L(`Hit ratio trend`),children:[(0,I.jsx)(`rect`,{x:q,y:i,width:ka-2*q,height:a-i,className:`fill-emerald-500/10`}),(0,I.jsx)(`line`,{x1:q,x2:ka-q,y1:a,y2:a,className:`stroke-emerald-500/40`,strokeWidth:`1`,strokeDasharray:`3 3`}),Number.isFinite(o)&&Number.isFinite(s)&&(0,I.jsx)(Ma,{changes:t,t0:o,t1:s}),(0,I.jsx)(`polyline`,{points:r,fill:`none`,className:`stroke-accent`,strokeWidth:`2`,strokeLinejoin:`round`,strokeLinecap:`round`}),e.map((t,r)=>(0,I.jsx)(`circle`,{cx:ja(r,e.length),cy:n(t.ratio),r:`2`,className:`fill-accent`,children:(0,I.jsx)(`title`,{children:`${t.date} — ${(t.ratio*100).toFixed(1)}% (${t.hits} hits / ${t.misses} misses)`})},t.date))]}),c&&(0,I.jsxs)(`div`,{className:`mt-1 text-[12px] text-neutral-500 dark:text-neutral-400`,children:[L(`Latest`),`:`,` `,(0,I.jsxs)(`span`,{className:c.ratio>=.8?`text-emerald-600 dark:text-emerald-400 font-medium`:`text-amber-600 dark:text-amber-400 font-medium`,children:[(c.ratio*100).toFixed(1),`%`]}),` `,`· `,L(`target ≥80%`)]})]})}function Pa({rows:e,changes:t}){let n=Math.max(...e.map(e=>e.uncached_ms),1),r=e=>Aa-q-e/n*(Aa-2*q),i=t=>e.map((n,i)=>`${ja(i,e.length)},${r(t(n))}`).join(` `),a=e[0]?.ts??0,o=e[e.length-1]?.ts??0,s=e[e.length-1];return(0,I.jsxs)(`div`,{children:[(0,I.jsxs)(`svg`,{viewBox:`0 0 ${ka} ${Aa}`,className:`w-full h-20`,role:`img`,"aria-label":L(`Benchmark trend`),children:[o>a&&(0,I.jsx)(Ma,{changes:t,t0:a,t1:o}),(0,I.jsx)(`polyline`,{points:i(e=>e.uncached_ms),fill:`none`,className:`stroke-amber-500`,strokeWidth:`1.5`,strokeDasharray:`4 3`}),(0,I.jsx)(`polyline`,{points:i(e=>e.cached_ms),fill:`none`,className:`stroke-emerald-500`,strokeWidth:`2`,strokeLinejoin:`round`,strokeLinecap:`round`}),e.map((t,n)=>(0,I.jsx)(`circle`,{cx:ja(n,e.length),cy:r(t.cached_ms),r:`2`,className:`fill-emerald-500`,children:(0,I.jsx)(`title`,{children:`${new Date(t.ts*1e3).toLocaleString()} — ${Math.round(t.cached_ms)}ms cached vs ${Math.round(t.uncached_ms)}ms uncached`})},t.ts))]}),(0,I.jsxs)(`div`,{className:`mt-1 flex items-center gap-3 text-[12px] text-neutral-500 dark:text-neutral-400`,children:[(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,I.jsx)(`span`,{className:`inline-block w-3 h-0.5 bg-emerald-500 rounded`}),` `,L(`cached`)]}),(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,I.jsx)(`span`,{className:`inline-block w-3 h-0.5 bg-amber-500 rounded`}),` `,L(`uncached`)]}),s?.savings_ms!=null&&(0,I.jsxs)(`span`,{className:`ml-auto tabular-nums`,children:[`−`,Math.round(s.savings_ms),`ms`]})]})]})}function Fa({text:e}){return(0,I.jsx)(`div`,{className:`h-20 flex items-center justify-center text-center text-[12px] text-neutral-400 dark:text-neutral-500 px-4`,children:e})}function Ia(){let e=Kt(),[t,n]=(0,y.useState)(!1),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)(!1);return e===`free`?(0,I.jsxs)(`div`,{className:`border border-line bg-primary-tint rounded-card p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(`span`,{className:`shrink-0 w-9 h-9 rounded-full bg-paper border border-line flex items-center justify-center text-warning`,children:(0,I.jsx)(rt,{size:18})}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,I.jsx)(`span`,{className:`font-medium text-ink`,children:L(`What would Pro do for your site?`)}),(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[10px] uppercase tracking-wider font-medium text-warning`,children:[(0,I.jsx)(de,{size:10}),L(`Pro`)]})]}),(0,I.jsx)(`div`,{className:`text-[12px] text-ink-soft mt-0.5`,children:L(`Scans your current settings + 24h cache stats and shows exactly which Pro features would help.`)})]})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[r&&(0,I.jsxs)(`button`,{type:`button`,onClick:()=>c(e=>!e),className:`flex items-center gap-1 text-[12px] text-ink-soft hover:text-ink transition-colors`,children:[(0,I.jsx)(ie,{size:13,className:`transition-transform ${s?``:`rotate-180`}`}),L(s?`Hide`:`Show`)]}),(0,I.jsxs)(`button`,{type:`button`,onClick:async()=>{n(!0),o(null);try{i(await B.request(`/audit/pro`)),c(!0)}catch(e){o(e instanceof Error?e.message:L(`Audit failed`))}finally{n(!1)}},disabled:t,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded-md bg-primary hover:bg-primary-hover text-on-primary font-medium transition-colors disabled:opacity-50`,children:[t?(0,I.jsx)(P,{size:13,className:`animate-spin`}):(0,I.jsx)(rt,{size:13}),L(r?`Re-run`:`Run Pro audit`)]})]})]}),a&&(0,I.jsx)(`div`,{className:`mt-3 text-[12px] text-danger`,children:a}),r&&s&&(0,I.jsxs)(`div`,{className:`mt-4 space-y-2`,children:[r.suggestions.map(e=>(0,I.jsx)(Ra,{suggestion:e},`${e.id}-${e.severity}`)),(0,I.jsx)(`div`,{className:`text-center pt-2`,children:(0,I.jsxs)(`a`,{href:`https://xspeedcache.com/pricing/`,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 px-4 py-2 rounded-md bg-primary hover:bg-primary-hover text-on-primary text-[13px] font-medium transition-colors`,children:[L(`Upgrade to Pro`),(0,I.jsx)(w,{size:13})]})})]})]}):null}var La={high:{dot:`bg-danger`,chip:`bg-danger-tint text-danger border-line`,label:`High`},med:{dot:`bg-warning`,chip:`bg-warning-tint text-warning border-line`,label:`Medium`},low:{dot:`bg-info`,chip:`bg-info-tint text-info border-line`,label:`Low`}};function Ra({suggestion:e}){let t=Hn[e.id],n=La[e.severity];return(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-md p-3 sm:p-4 flex items-start gap-3`,children:[(0,I.jsx)(`span`,{className:`shrink-0 w-2 h-2 rounded-full mt-2.5 ${n.dot}`,"aria-hidden":!0}),(0,I.jsx)(`span`,{className:`shrink-0 text-warning mt-0.5`,children:t&&(0,I.jsx)(Ct,{name:t.icon,size:16})}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`text-[13px] font-medium text-ink`,children:t?.title??e.id}),(0,I.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider px-1.5 py-0.5 rounded border ${n.chip}`,children:n.label}),e.fact&&(0,I.jsx)(`span`,{className:`text-[10px] font-mono px-1.5 py-0.5 rounded bg-panel text-ink-soft`,children:e.fact})]}),(0,I.jsx)(`p`,{className:`text-[12px] text-ink-soft mt-1 leading-relaxed`,children:e.reason})]})]})}function za(){let e=Jt(),t=e===`unlicensed`,n=e===`active`,r=Object.values(Hn);return(0,I.jsxs)(`div`,{className:`mx-auto max-w-5xl space-y-6`,children:[(0,I.jsxs)(`section`,{className:`relative overflow-hidden rounded-card border border-line bg-primary-tint p-6 sm:p-8`,children:[(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[10px] uppercase tracking-wider font-medium border border-line bg-paper text-primary rounded-full px-2 py-0.5`,children:[n?(0,I.jsx)(ee,{size:10}):t?(0,I.jsx)(Ae,{size:10}):(0,I.jsx)(Ie,{size:10}),(0,I.jsx)(`span`,{children:L(n?`Pro Licensed`:t?`Pro — license needed`:`xSpeed Pro`)})]}),(0,I.jsx)(`h1`,{className:`mt-3 font-display text-[26px] font-semibold text-ink`,children:L(n?`Pro is licensed on this site.`:`Everything in Free, plus the heavy lifting.`)}),(0,I.jsx)(`p`,{className:`mt-2 max-w-2xl text-[14px] leading-relaxed text-ink-soft`,children:L(n?`Every feature below is unlocked and available from its own page. This screen stays as a reference for what Pro adds — manage your license from the License page.`:t?`xSpeed Pro is installed — activate your license to unlock every feature below. Your current settings stay exactly as they are.`:`Pro layers deeper optimization, real-user insight, and automation on top of the cache you already run. Nothing you have set up changes.`)}),(0,I.jsx)(`div`,{className:`mt-5`,children:n?(0,I.jsxs)(`a`,{href:Vn,className:`inline-flex items-center gap-1.5 px-4 py-2 rounded-control text-[13px] font-medium border border-line-strong text-ink no-underline hover:bg-panel transition-colors`,children:[L(`Manage license`),(0,I.jsx)(w,{size:14})]}):t?(0,I.jsxs)(`a`,{href:Vn,className:`inline-flex items-center gap-1.5 px-5 py-2.5 rounded-control text-[14px] font-medium bg-primary hover:bg-primary-hover text-on-primary no-underline shadow-primary-glow transition-colors`,children:[L(`Activate License`),(0,I.jsx)(w,{size:15})]}):(0,I.jsxs)(`a`,{href:Bn,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 px-5 py-2.5 rounded-control text-[14px] font-medium bg-primary hover:bg-primary-hover text-on-primary no-underline shadow-primary-glow transition-colors`,children:[L(`Upgrade to Pro`),(0,I.jsx)(w,{size:15})]})})]}),(0,I.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4`,children:r.map(e=>(0,I.jsx)(`div`,{className:`rounded-card border border-line bg-paper p-4`,children:(0,I.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,I.jsx)(`div`,{className:`shrink-0 w-9 h-9 rounded-full border border-line bg-primary-tint text-primary flex items-center justify-center`,children:(0,I.jsx)(Ct,{name:e.icon,size:17})}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`h3`,{className:`text-[14px] font-semibold text-ink`,children:e.title}),(0,I.jsx)(`p`,{className:`mt-1 text-[12px] leading-relaxed text-ink-soft`,children:e.body})]})]})},e.id))}),!n&&(0,I.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 text-[12px] text-muted`,children:[(0,I.jsx)(O,{size:13,className:`text-success`}),(0,I.jsx)(`span`,{children:L(`Your Free tier keeps working exactly as it does today.`)})]})]})}function Ba({settings:e,stats:t,rewriteProbe:n}){let r=e.cache_enabled,i=ln(t.hit_ratio),a=parseInt(i,10)||0,o=(()=>{if(!r)return L(`Turn on the page cache to start serving pages instantly.`);let e=cn(t.cached_pages);if(n?.active){let t=n.server_type===`nginx`?`nginx`:L(`your web server`);return`${L(`Serving from`)} ${t}, ${L(`bypassing PHP`)} · ${e} ${L(`pages cached`)}`}return`${L(`Serving from the PHP cache`)} · ${e} ${L(`pages cached`)}`})();return(0,I.jsxs)(`section`,{className:`rounded-card border border-line bg-paper p-5 flex flex-col`,"aria-label":L(`Cache status`),children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,I.jsx)(`span`,{className:`inline-flex items-center justify-center w-6 h-6 rounded-full ${r?`bg-success-tint text-success xspeed-anim-boltpulse`:`bg-panel text-faint`}`,"aria-hidden":`true`,children:(0,I.jsx)(vt,{size:14})}),(0,I.jsx)(`h2`,{className:`font-display text-[18px] font-semibold text-ink`,children:L(r?`Cache active`:`Cache inactive`)})]}),(0,I.jsx)(`p`,{className:`mt-1.5 text-[13px] leading-relaxed text-ink-soft`,children:o}),(0,I.jsxs)(`div`,{className:`mt-auto pt-5`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between text-[12px] mb-1.5`,children:[(0,I.jsx)(`span`,{className:`text-ink-soft`,children:L(`Cache warmth`)}),(0,I.jsx)(`span`,{className:`font-mono tabular-nums text-ink`,children:i})]}),(0,I.jsx)(`div`,{className:`h-2 rounded-pill bg-panel overflow-hidden`,role:`progressbar`,"aria-valuenow":a,"aria-valuemin":0,"aria-valuemax":100,"aria-label":L(`Cache warmth`),children:(0,I.jsx)(`div`,{className:`h-full rounded-pill ${r?`xspeed-anim-sweep`:``}`,style:{width:`${a}%`,backgroundImage:r?`linear-gradient(90deg, var(--primary) 0%, #5BD6CE 50%, var(--primary) 100%)`:`var(--line-strong)`,backgroundColor:r?void 0:`var(--line-strong)`}})}),(0,I.jsxs)(`p`,{className:`mt-2 text-[12px] text-muted`,children:[L(`Last purged`),` `,t.last_purge?un(t.last_purge):L(`never`)]})]})]})}function Va({onNavigate:e}){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(!0),a=(e=!1)=>B.request(`/mcp/hub`,e?{headers:{"X-XSpeed-Reconcile":`1`}}:{}).then(e=>n(e)).catch(()=>void 0);(0,y.useEffect)(()=>{let e=!0;return B.request(`/mcp/hub`).then(t=>{e&&n(t)}).catch(()=>{e&&n(null)}).finally(()=>{e&&i(!1)}),()=>{e=!1}},[]),(0,y.useEffect)(()=>{let e=()=>{document.visibilityState===`visible`&&a(!0)};return document.addEventListener(`visibilitychange`,e),window.addEventListener(`focus`,e),()=>{document.removeEventListener(`visibilitychange`,e),window.removeEventListener(`focus`,e)}},[]);let o=`rounded-card border border-line bg-paper p-5 flex flex-col`,s=`inline-flex items-center gap-2 rounded border border-line-strong px-3 py-1.5 text-[13px] font-medium text-ink-soft hover:bg-panel transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`;if(r)return(0,I.jsxs)(`section`,{className:o,"aria-busy":`true`,"aria-label":L(`xSpeed Hub`),children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,I.jsx)(ce,{size:18,className:`text-muted`,"aria-hidden":`true`}),(0,I.jsx)(`span`,{className:`h-4 w-28 rounded bg-panel animate-pulse`})]}),(0,I.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,I.jsx)(`span`,{className:`block h-3 w-full rounded bg-panel animate-pulse`}),(0,I.jsx)(`span`,{className:`block h-3 w-2/3 rounded bg-panel animate-pulse`})]})]});let c=t?.attached===!0;return(0,I.jsxs)(`section`,{className:o,"aria-label":L(`xSpeed Hub`),children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,I.jsx)(ce,{size:18,className:`text-ink-soft`,"aria-hidden":`true`}),(0,I.jsx)(`h2`,{className:`text-[15px] font-semibold text-ink`,children:L(`xSpeed Hub`)}),c&&(0,I.jsxs)(`span`,{className:`ml-auto inline-flex items-center gap-1.5 text-[12px] text-success`,children:[(0,I.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-success`,"aria-hidden":`true`}),L(`Connected`)]})]}),c?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`p`,{className:`mt-1.5 text-[13px] leading-relaxed text-ink-soft`,children:t?.account_email?`${L(`Connected as`)} ${t.account_email}. ${L(`Control caching remotely and from AI agents.`)}`:L(`Control caching remotely, drive it from AI agents, and manage your sites in one place.`)}),(0,I.jsx)(`div`,{className:`mt-auto pt-4`,children:(0,I.jsxs)(`a`,{href:t?.hub_url,target:`_blank`,rel:`noopener noreferrer`,className:s,children:[L(`Open Hub dashboard`),(0,I.jsx)(N,{size:14})]})})]}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`p`,{className:`mt-1.5 text-[13px] leading-relaxed text-ink-soft`,children:L(`Connect to control caching remotely, drive it from AI agents, and manage all your sites in one place.`)}),(0,I.jsxs)(`div`,{className:`mt-auto pt-4 flex flex-wrap items-center gap-3`,children:[t?.attach_url?(0,I.jsxs)(`a`,{href:t.attach_url,target:`_blank`,rel:`noopener noreferrer`,className:s,children:[L(`Connect to Hub`),(0,I.jsx)(N,{size:14})]}):(0,I.jsx)(`button`,{type:`button`,onClick:()=>e(`mcp`),className:s,children:L(`Connect to Hub`)}),(0,I.jsx)(`button`,{type:`button`,onClick:()=>e(`mcp`),className:`text-[13px] text-ink-soft hover:text-ink underline underline-offset-2`,children:L(`More options`)})]})]})]})}function Ha({stats:e}){let[t,n]=(0,y.useState)(void 0);(0,y.useEffect)(()=>{let e=!0;return B.request(`/cache/benchmark/history?limit=1`).then(t=>{e&&n(t.runs&&t.runs.length>0?t.runs[0].savings_ms??null:null)}).catch(()=>{e&&n(null)}),()=>{e=!1}},[]);let r=t==null||t<=0?`—`:t>=950?`${(t/1e3).toFixed(1)}s`:`${Math.round(t)} ms`,i=[{label:L(`Hit ratio`),value:ln(e.hit_ratio),hint:L(`last 24 hours`)},{label:L(`Cached pages`),value:cn(e.cached_pages),hint:L(`served without PHP`)},{label:L(`Cache size`),value:dn(e.cache_size),hint:L(`on disk`)},{label:L(`Avg saved`),value:r,hint:L(`per page load`)}];return(0,I.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4`,"aria-label":L(`Key metrics`),children:i.map(e=>(0,I.jsxs)(`div`,{className:`rounded-card border border-line bg-paper p-4`,children:[(0,I.jsx)(`p`,{className:`text-[13px] text-ink-soft`,children:e.label}),(0,I.jsx)(`p`,{className:`mt-1 font-display text-[24px] font-semibold text-ink tabular-nums`,children:e.value}),(0,I.jsx)(`p`,{className:`mt-0.5 text-[11px] text-muted`,children:e.hint})]},e.label))})}var Ua=`https://calendly.com/xspeed-cache/book-expert-setup`;function Wa({settings:e,stats:t,rewriteProbe:n,showToast:r}){let i=Kt(),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)([]),[l,u]=(0,y.useState)(!0),[d,f]=(0,y.useState)(null);(0,y.useEffect)(()=>{let e=!0,t=[B.getRecommendations().then(t=>{e&&o(t.recommendations??[])}).catch(()=>{e&&o([])})];return i===`free`&&t.push(B.getProAudit().then(t=>{e&&c(t.suggestions??[])}).catch(()=>void 0)),Promise.all(t).finally(()=>{e&&u(!1)}),()=>{e=!1}},[i]);let p=e=>e.action.module?_n({module:e.action.module,subtab:e.action.subtab,focus:e.action.focus,suggest:e.action.suggest}):`#`,m=async e=>{let{action:t}=e;if(t.type===`apply`){if(d)return;f(e.id);try{o((await B.applyRecommendation(e.id)).recommendations??[]),r(L(`Applied`))}catch{r(L(`Could not apply that fix`))}finally{f(null)}}},h=(t.hits_24h??0)+(t.misses_24h??0)>=50&&(t.hit_ratio??0)<.5,g=n?n.active===!1:!1,_=!e.cache_enabled||g||h,v=a&&a.length>0||s.length>0||_;return(0,I.jsxs)(`section`,{className:`rounded-card border border-line bg-info-tint p-4 sm:p-5`,"aria-label":L(`Recommended for your site`),children:[(0,I.jsxs)(`h2`,{className:`flex items-center gap-1.5 text-[14px] font-semibold text-on-tint mb-3`,children:[(0,I.jsx)(vt,{size:15,className:`text-primary`,"aria-hidden":`true`}),L(`Recommended for your site`)]}),l?(0,I.jsxs)(`div`,{className:`space-y-2`,"aria-busy":`true`,children:[(0,I.jsx)(`span`,{className:`block h-10 rounded-lg bg-paper animate-pulse`}),(0,I.jsx)(`span`,{className:`block h-10 w-5/6 rounded-lg bg-paper animate-pulse`})]}):v?(0,I.jsxs)(`div`,{className:`space-y-2`,children:[(a??[]).map(e=>(0,I.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-line bg-paper px-3 py-2.5`,children:[(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`p`,{className:`text-[13px] font-medium text-ink`,children:e.title}),(0,I.jsx)(`p`,{className:`mt-0.5 text-[12px] leading-relaxed text-ink-soft`,children:e.detail})]}),e.action.type===`link`?(0,I.jsxs)(`a`,{href:p(e),className:`shrink-0 inline-flex items-center gap-1.5 rounded border border-line-strong px-2.5 py-1 text-[12px] font-medium text-ink-soft hover:bg-panel transition-colors no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,children:[(0,I.jsx)(w,{size:13}),e.action.label]}):(0,I.jsxs)(`button`,{type:`button`,onClick:()=>m(e),disabled:d===e.id,className:`shrink-0 inline-flex items-center gap-1.5 rounded border border-line-strong px-2.5 py-1 text-[12px] font-medium text-ink-soft hover:bg-panel transition-colors disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,children:[(0,I.jsx)(mt,{size:13,className:d===e.id?`animate-pulse`:``}),e.action.label]})]},e.id)),s.length>0&&(0,I.jsxs)(`div`,{className:`pt-1`,children:[(0,I.jsx)(`p`,{className:`px-1 pb-1 text-[11px] font-semibold uppercase tracking-wide text-muted`,children:L(`Also worth a look`)}),(0,I.jsx)(`div`,{className:`space-y-1.5`,children:s.map(e=>(0,I.jsxs)(`div`,{className:`flex items-start gap-2.5 px-1`,children:[(0,I.jsx)(`span`,{className:`mt-1.5 w-1.5 h-1.5 rounded-full shrink-0 ${e.severity===`high`||e.severity===`med`?`bg-warning`:`bg-line-strong`}`,"aria-hidden":`true`}),(0,I.jsxs)(`p`,{className:`text-[12px] leading-relaxed text-ink-soft`,children:[e.reason,e.fact&&(0,I.jsxs)(`span`,{className:`ml-1.5 text-muted`,children:[`· `,e.fact]})]})]},e.id))})]}),_&&(0,I.jsxs)(`div`,{className:`flex items-start gap-3 rounded-lg border border-line bg-paper px-3 py-2.5`,children:[(0,I.jsx)(D,{size:16,className:`mt-0.5 shrink-0 text-ink-soft`,"aria-hidden":`true`}),(0,I.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,I.jsx)(`p`,{className:`text-[13px] font-medium text-ink`,children:L(`Want a hand?`)}),(0,I.jsx)(`p`,{className:`mt-0.5 text-[12px] leading-relaxed text-ink-soft`,children:L(`Book a free setup review with our team.`)})]}),(0,I.jsx)(`a`,{href:Ua,target:`_blank`,rel:`noopener noreferrer`,className:`shrink-0 inline-flex items-center gap-1.5 rounded border border-line-strong px-2.5 py-1 text-[12px] font-medium text-ink-soft hover:bg-panel transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,children:L(`Book`)})]})]}):(0,I.jsxs)(`p`,{className:`flex items-center gap-2 text-[13px] text-ink-soft`,children:[(0,I.jsx)(oe,{size:15,className:`text-success`,"aria-hidden":`true`}),L(`You're all set — no recommendations right now.`)]})]})}var Ga=e=>e?.status===`queued`||e?.status===`running`;function Ka({onOpenPanel:e}){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(null),[l,u]=(0,y.useState)(!1),d=(0,y.useRef)(null),f=(0,y.useCallback)(async()=>{try{let e=await B.request(`/score/hub-status`);n(e),i(e.runs?.[0]??null)}catch{n({available:!1})}},[]);(0,y.useEffect)(()=>{f()},[f]),(0,y.useEffect)(()=>()=>{d.current&&window.clearTimeout(d.current)},[]);let p=(0,y.useCallback)(async()=>{try{let e=await B.request(`/score/hub-status`);n(e);let t=e.runs?.[0]??null;i(t),Ga(t)?d.current=window.setTimeout(()=>void p(),5e3):t?.status===`error`&&t.error&&c(t.error)}catch{}},[]),m=(0,y.useCallback)(async()=>{o(!0),c(null);try{let e=await B.request(`/score/hub-test`,{method:`POST`,body:JSON.stringify({})});i(e.run),n(t=>t&&{...t,quota:e.quota??t.quota}),d.current=window.setTimeout(()=>void p(),5e3)}catch(e){c(e instanceof Error?e.message:L(`The test could not be started.`))}finally{o(!1)}},[p]);if(!t)return null;let h=!t.available&&vi(t.reason);if(!t.available&&!h)return null;let g=t.available&&(t.quota?.remaining??0)===0;return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-lg p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,I.jsx)(ye,{size:18,className:`text-accent shrink-0`}),(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:L(`GTmetrix test`)}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted`,children:L(g?`No tests left this month.`:`Performance score and Core Web Vitals for your home page.`)})]})]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[t.available&&t.quota&&(0,I.jsx)(`span`,{className:`text-[11px] text-muted`,children:L(`%1$d of %2$d left`).replace(`%1$d`,String(t.quota.remaining)).replace(`%2$d`,String(t.quota.limit))}),(0,I.jsxs)(`button`,{type:`button`,onClick:()=>t.available?void m():u(!0),disabled:a||Ga(r)||g,className:`flex items-center gap-1.5 text-[13px] px-3 py-1.5 rounded bg-accent text-white hover:bg-primary-hover transition-colors disabled:opacity-50`,children:[(a||Ga(r))&&(0,I.jsx)(P,{size:13,className:`animate-spin`}),Ga(r)?L(`Testing…`):L(`Run test`)]})]})]}),s&&(0,I.jsx)(`p`,{className:`mt-3 text-[12px] text-danger`,children:s}),r?.status===`done`&&e&&(0,I.jsxs)(`button`,{type:`button`,onClick:e,className:`mt-3 inline-flex items-center gap-1 text-[12px] text-accent hover:underline`,children:[L(`View the result`),(0,I.jsx)(w,{size:12})]})]}),(0,I.jsx)(yi,{open:l,onClose:()=>u(!1),local:t.local===!0,onConnected:()=>{f().then(()=>void m())}})]})}var qa=3,Ja=[`cache`,`performance`,`network`,`tools`];function Ya(e){if(e.locked)return`locked`;let t=e.settings?.enabled;return typeof t==`boolean`?t?`on`:`off`:null}function Xa({state:e}){return e===`locked`?(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[11px] text-ink-soft`,children:[(0,I.jsx)(Ie,{size:11,"aria-hidden":`true`}),L(`Pro`)]}):e===`on`?(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-[11px] text-success`,children:[(0,I.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-success`,"aria-hidden":`true`}),L(`On`)]}):e===`off`?(0,I.jsx)(`span`,{className:`text-[11px] text-muted`,children:L(`Off`)}):null}function Za({modules:e,onNavigate:t}){let[n,r]=(0,y.useState)(!1),i=At(e),a=n?i:Ja.map(e=>i.find(t=>t.id===e)).filter(e=>!!e),o=e.length;return(0,I.jsxs)(`section`,{"aria-label":L(`Your setup`),children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,I.jsx)(`h2`,{className:`text-[14px] font-semibold text-ink`,children:L(`Your setup`)}),o>0&&(0,I.jsxs)(`button`,{type:`button`,onClick:()=>r(e=>!e),className:`inline-flex items-center gap-1 text-[12px] text-ink-soft hover:text-ink underline underline-offset-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary rounded`,"aria-expanded":n,children:[n?L(`Show less`):`${L(`Browse all`)} ${o} ${L(`features`)}`,!n&&(0,I.jsx)(w,{size:12,"aria-hidden":`true`})]})]}),(0,I.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-x-5 gap-y-5`,children:a.map(e=>{let r=n?e.modules:e.modules.slice(0,qa);return r.length===0?null:(0,I.jsxs)(`div`,{children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5 px-1`,children:[(0,I.jsx)(Ct,{name:e.icon,size:13,className:`text-muted`}),(0,I.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-wide text-muted`,children:e.label})]}),(0,I.jsx)(`div`,{className:`rounded-card border border-line bg-paper divide-y divide-line overflow-hidden`,children:r.map(e=>(0,I.jsxs)(`button`,{type:`button`,onClick:()=>t(e.slug),className:`w-full flex items-center gap-3 px-3 py-2 text-left hover:bg-panel transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-inset`,children:[(0,I.jsx)(Ct,{name:e.icon,size:15,className:`shrink-0 text-ink-soft`}),(0,I.jsx)(`span`,{className:`flex-1 min-w-0 truncate text-[13px] text-ink-soft`,children:e.label}),(0,I.jsx)(Xa,{state:Ya(e)})]},e.slug))})]},e.id)})})]})}var Qa=6;function $a(e){switch(e){case`success`:return`bg-success`;case`warn`:return`bg-warning`;case`error`:return`bg-red-500`;default:return`bg-line-strong`}}function eo(){let[e,t]=(0,y.useState)(null);return(0,y.useEffect)(()=>{let e=!0;return B.getActivity().then(n=>{e&&t(n.activity??[])}).catch(()=>{e&&t([])}),()=>{e=!1}},[]),!e||e.length===0?null:(0,I.jsxs)(`section`,{"aria-label":L(`Recent activity`),children:[(0,I.jsx)(`h2`,{className:`text-[14px] font-semibold text-ink mb-3`,children:L(`Recent activity`)}),(0,I.jsx)(`ul`,{className:`rounded-card border border-line bg-paper divide-y divide-line`,children:e.slice(0,Qa).map((e,t)=>(0,I.jsxs)(`li`,{className:`flex items-center gap-3 px-3 py-2`,children:[(0,I.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full shrink-0 ${$a(e.severity)}`,"aria-hidden":`true`}),(0,I.jsx)(`span`,{className:`flex-1 min-w-0 truncate text-[13px] text-ink-soft`,children:e.message}),(0,I.jsx)(`span`,{className:`shrink-0 text-[11px] text-muted tabular-nums`,children:un(e.ts)})]},`${e.ts}-${t}`))})]})}var to=`https://xspeedcache.com/docs/`,no=`https://wpdeveloper.com/support/`,ro=`https://wordpress.org/support/plugin/xspeed/reviews/#new-post`;function io(){let e=`inline-flex items-center gap-2 text-ink-soft hover:text-ink transition-colors`;return(0,I.jsxs)(`section`,{className:`flex flex-wrap items-center gap-x-6 gap-y-2 pt-2 text-[13px]`,"aria-label":L(`Help and resources`),children:[(0,I.jsxs)(`a`,{href:to,target:`_blank`,rel:`noopener noreferrer`,className:e,children:[(0,I.jsx)(E,{size:14,"aria-hidden":`true`}),L(`Documentation`)]}),(0,I.jsxs)(`a`,{href:no,target:`_blank`,rel:`noopener noreferrer`,className:e,children:[(0,I.jsx)(Ne,{size:14,"aria-hidden":`true`}),L(`Help and support`)]}),(0,I.jsxs)(`a`,{href:ro,target:`_blank`,rel:`noopener noreferrer`,className:e,children:[(0,I.jsx)(at,{size:14,"aria-hidden":`true`}),L(`Review us on WordPress.org`)]})]})}function ao({settings:e,stats:t,rewriteProbe:n,modules:r,onNavigate:i,showToast:a}){return(0,I.jsxs)(`div`,{className:`space-y-6`,children:[(0,I.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-4`,children:[(0,I.jsx)(Ba,{settings:e,stats:t,rewriteProbe:n}),(0,I.jsx)(Va,{onNavigate:i})]}),(0,I.jsx)(Ha,{stats:t}),(0,I.jsx)(Ka,{onOpenPanel:()=>i(`score`)}),(0,I.jsx)(Wa,{settings:e,stats:t,rewriteProbe:n,showToast:a}),(0,I.jsx)(Za,{modules:r,onNavigate:i}),(0,I.jsx)(eo,{}),(0,I.jsx)(io,{})]})}var oo={"critical-css":{host:`minify`,subtab:`critical`},"unused-css":{host:`minify`,subtab:`unused`},"brotli-compression":{host:`gzip`,subtab:`brotli`},images:{host:`lazy`,subtab:`images`},"smart-image":{host:`lazy`,subtab:`smart`},"smart-predict":{host:`resource-hints`,subtab:`speculation`},"prewarm-schedule":{host:`preloader`,subtab:`scheduled`},"predictive-warm":{host:`preloader`,subtab:`predictive`},"cloudflare-apo":{host:`cloudflare`},analytics:{host:`health`,subtab:`cache`},rum:{host:`health`,subtab:`visitors`},pagespeed:{host:`health`,subtab:`pagespeed`},"performance-health":{host:`health`,subtab:`pagespeed`},recommendations:{host:`health`},"cache-404":{host:`cache-coverage`,subtab:`coverage`},"search-cache":{host:`cache-coverage`,subtab:`coverage`},"feed-cache":{host:`cache-coverage`,subtab:`beyond`},"rest-cache":{host:`cache-coverage`,subtab:`beyond`},"custom-rules":{host:`cache-coverage`,subtab:`rules`},"maintenance-cache":{host:`cache-coverage`,subtab:`rules`}};function so(e){return oo[e]??null}var co=(0,y.createContext)(``);function lo({query:e,children:t}){return(0,I.jsx)(co.Provider,{value:e,children:t})}function uo(e,t){let n=new Map(e.map(e=>[e.slug,e])),r=(e,t)=>{let r={displayLabel:e.label??e.slug,displayDescription:e.description,...t?.fieldKey?{fieldModuleSlug:e.slug}:{},...t},i=so(e.slug);if(!i)return{module:e,isChild:!1,...r};let a=n.get(i.host);return a?{module:a,subtab:i.subtab,parentLabel:a.label,isChild:!0,...r}:{module:e,isChild:!1,...r}},i=t.trim().toLowerCase();if(!i)return e.filter(e=>!so(e.slug)).map(e=>({module:e,isChild:!1,displayLabel:e.label??e.slug,displayDescription:e.description}));let a=new Set,o=e=>{if(!e)return;let t=`${e.module.slug}::${e.subtab??``}`;a.has(t)||(a.add(t),s.push(e))},s=[];for(let t of e){let e=(t.label??``).toLowerCase().includes(i),n=(t.description??``).toLowerCase().includes(i),a=(t.tab_label??``).toLowerCase().includes(i);if(e||n||a){o(r(t));continue}let s=t.schema??{},c=null;for(let[e,n]of Object.entries(s)){let a=(n.label??e).toString();if(`${a} ${(n.description??``).toString()} ${n.option_labels?Object.values(n.option_labels).join(` `):``} ${e}`.toLowerCase().includes(i)){c=r(t,{fieldKey:e,fieldLabel:a});break}}c&&o(c)}return s}function fo(e){let[t,n]=(0,y.useState)(``);return{query:t,setQuery:n,results:(0,y.useMemo)(()=>uo(e,t),[e,t])}}var po=new Set([`INPUT`,`TEXTAREA`,`SELECT`,`OPTION`,`PRE`,`CODE`,`KBD`,`SVG`,`STYLE`,`SCRIPT`]),mo=`xspeed-search`;function ho(){return typeof CSS<`u`&&!!CSS.highlights&&typeof globalThis.Highlight==`function`}function go(e,t){let n=t.trim();if(!n)return[];let r=n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),i=new RegExp(r,`gi`),a=[],o=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,{acceptNode(t){if(!t.nodeValue||!t.nodeValue.trim())return NodeFilter.FILTER_REJECT;let n=t.parentNode;for(;n&&n!==e;){if(n instanceof Element&&po.has(n.tagName))return NodeFilter.FILTER_REJECT;n=n.parentNode}return NodeFilter.FILTER_ACCEPT}}),s=o.nextNode();for(;s;){let e=s.nodeValue??``;i.lastIndex=0;let t;for(;(t=i.exec(e))!==null;){let e=document.createRange();e.setStart(s,t.index),e.setEnd(s,t.index+t[0].length),a.push(e),t[0].length===0&&i.lastIndex++}s=o.nextNode()}return a}function J({query:e,children:t}){let n=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let t=n.current;if(!t||!ho())return;let r=CSS.highlights,i=globalThis.Highlight,a=0,o=()=>{let n=go(t,e);if(n.length===0){r.delete(mo);return}r.set(mo,new i(...n))};o();let s=new MutationObserver(()=>{cancelAnimationFrame(a),a=requestAnimationFrame(o)});return s.observe(t,{childList:!0,subtree:!0,characterData:!0}),()=>{s.disconnect(),cancelAnimationFrame(a),r.delete(mo)}},[e]),(0,I.jsx)(`div`,{ref:n,className:`contents`,children:t})}function _o(e,t){if(!e)return e;let n=t.trim();if(!n)return e;let r=n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),i=RegExp(`(${r})`,`gi`),a=e.split(i);return a.length===1?e:(0,I.jsx)(I.Fragment,{children:a.map((e,t)=>t%2==1?(0,I.jsx)(`mark`,{className:`bg-warning-tint text-inherit rounded-sm`,children:e},t):(0,I.jsx)(y.Fragment,{children:e},t))})}function vo({open:e,onClose:t,modules:n,onSelectResult:r,onPurge:i,onPreload:a}){let{query:o,setQuery:s,results:c}=fo(n),[l,u]=(0,y.useState)(0),d=(0,y.useRef)(null),f=(0,y.useRef)(null),p=(0,y.useRef)(null),m=(0,y.useRef)(null),h=(0,y.useMemo)(()=>[{id:`purge`,label:L(`Purge all`),icon:P,run:i},{id:`preload`,label:L(`Preload`),icon:Ge,run:a}],[i,a]),g=(0,y.useMemo)(()=>{let e=o.trim().toLowerCase();return[...h.filter(t=>!e||t.label.toLowerCase().includes(e)).map(e=>({kind:`command`,command:e})),...c.slice(0,40).map(e=>({kind:`result`,result:e}))]},[h,c,o]);if((0,y.useEffect)(()=>{if(e){m.current=document.activeElement??null,s(``),u(0);let e=window.requestAnimationFrame(()=>d.current?.focus());return()=>window.cancelAnimationFrame(e)}m.current?.focus?.()},[e]),(0,y.useEffect)(()=>{u(e=>Math.min(e,Math.max(0,g.length-1)))},[g.length]),(0,y.useEffect)(()=>{e&&f.current?.querySelector(`[aria-selected="true"]`)?.scrollIntoView({block:`nearest`})},[l,e]),(0,y.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(e.preventDefault(),t())};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,t]),!e)return null;let _=e=>{e.kind===`command`?e.command.run():r(e.result),t()},v=e=>{if(e.key===`Escape`)e.preventDefault(),t();else if(e.key===`ArrowDown`)e.preventDefault(),u(e=>g.length?(e+1)%g.length:0);else if(e.key===`ArrowUp`)e.preventDefault(),u(e=>g.length?(e-1+g.length)%g.length:0);else if(e.key===`Enter`){e.preventDefault();let t=g[l];t&&_(t)}else e.key===`Tab`&&e.preventDefault()},b=e=>`xspeed-cmdk-opt-${e}`;return(0,I.jsxs)(`div`,{className:`fixed inset-0 z-[100] flex items-start justify-center px-4 pt-[12vh]`,onMouseDown:e=>{p.current&&!p.current.contains(e.target)&&t()},children:[(0,I.jsx)(`div`,{className:`absolute inset-0 bg-black/40`,"aria-hidden":`true`}),(0,I.jsxs)(`div`,{ref:p,role:`dialog`,"aria-modal":`true`,"aria-label":L(`Command palette`),className:`relative w-full max-w-xl rounded-card border border-line bg-paper shadow-xl overflow-hidden`,onKeyDown:v,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-3 border-b border-line`,children:[(0,I.jsx)(Xe,{size:18,className:`shrink-0 text-muted`,"aria-hidden":`true`}),(0,I.jsx)(`input`,{ref:d,type:`text`,role:`combobox`,"aria-expanded":`true`,"aria-controls":`xspeed-cmdk-list`,"aria-activedescendant":g.length?b(l):void 0,"aria-label":L(`Search settings, modules, actions`),value:o,onChange:e=>{s(e.target.value),u(0)},placeholder:L(`Search settings, modules, actions…`),className:`w-full bg-transparent py-0.5 text-[15px] text-ink placeholder-muted focus:outline-none`}),(0,I.jsx)(`kbd`,{className:`shrink-0 hidden sm:inline-flex items-center h-[20px] px-1.5 rounded text-[10px] font-medium bg-panel text-muted`,children:`esc`})]}),g.length===0?(0,I.jsx)(`div`,{className:`px-4 py-8 text-center text-[13px] text-muted`,children:L(`No matches`)}):(0,I.jsx)(`ul`,{ref:f,id:`xspeed-cmdk-list`,role:`listbox`,"aria-label":L(`Results`),className:`max-h-[52vh] overflow-y-auto py-1.5`,children:g.map((e,t)=>{let n=t===l,r=`flex items-center gap-3 px-4 py-2 cursor-pointer ${n?`bg-primary-tint`:``}`;if(e.kind===`command`){let i=e.command.icon;return(0,I.jsxs)(`li`,{id:b(t),role:`option`,"aria-selected":n,className:r,onMouseEnter:()=>u(t),onMouseDown:t=>{t.preventDefault(),_(e)},children:[(0,I.jsx)(`span`,{className:`shrink-0 inline-flex h-6 w-6 items-center justify-center rounded-control bg-panel text-ink-soft`,children:(0,I.jsx)(i,{size:14,"aria-hidden":`true`})}),(0,I.jsx)(`span`,{className:`flex-1 min-w-0 truncate text-[13px] text-ink`,children:_o(e.command.label,o)}),(0,I.jsx)(`span`,{className:`shrink-0 text-[11px] text-muted`,children:L(`Action`)}),n&&(0,I.jsx)(ue,{size:13,className:`shrink-0 text-muted`,"aria-hidden":`true`})]},`cmd-${e.command.id}`)}let i=e.result,a=i.parentLabel??Ot(kt(i.module.slug)??``)?.label??``;return(0,I.jsxs)(`li`,{id:b(t),role:`option`,"aria-selected":n,className:r,onMouseEnter:()=>u(t),onMouseDown:t=>{t.preventDefault(),_(e)},children:[(0,I.jsx)(`span`,{className:`shrink-0 inline-flex h-6 w-6 items-center justify-center rounded-control bg-panel text-ink-soft`,children:(0,I.jsx)(Ct,{name:i.module.icon,size:14})}),(0,I.jsxs)(`span`,{className:`flex-1 min-w-0 truncate text-[13px] text-ink`,children:[_o(i.displayLabel,o),i.fieldLabel&&(0,I.jsxs)(`span`,{className:`text-muted`,children:[` · `,_o(i.fieldLabel,o)]})]}),a&&(0,I.jsx)(`span`,{className:`shrink-0 text-[11px] text-muted`,children:a}),n&&(0,I.jsx)(ue,{size:13,className:`shrink-0 text-muted`,"aria-hidden":`true`})]},`res-${i.module.slug}:${i.subtab??``}:${i.fieldKey??``}`)})})]})]})}var yo=null,bo=0,xo=`xspeed-field-blink`,So=40;function Y(e,t){if(yo!==e)return;let n=document.querySelector(`[data-field-anchor="${Co(e)}"]`);if(n&&n.offsetParent!==null){yo=null,n.scrollIntoView({block:`center`,behavior:`smooth`}),n.classList.remove(xo),n.offsetWidth,n.classList.add(xo);let e=()=>n.classList.remove(xo);n.addEventListener(`animationend`,e,{once:!0}),window.setTimeout(e,1500);return}t<So?bo=window.requestAnimationFrame(()=>Y(e,t+1)):yo=null}function X(e,t){if(typeof window>`u`)return;let n=`${e}:${t}`;yo=n,window.cancelAnimationFrame(bo),bo=window.requestAnimationFrame(()=>Y(n,0))}function Co(e){return typeof CSS<`u`&&typeof CSS.escape==`function`?CSS.escape(e):e.replace(/["\\]/g,`\\$&`)}function wo(e){if(e.view===`overview`)return`#/overview`;if(e.view===`pro`)return`#/pro`;if(e.view===`group`)return`#/${e.group}`;let t=`#/${e.group}/${e.module}`;return e.subtab&&(t+=`/${e.subtab}`),t}function To(e){if(!e)return{};let t=new URLSearchParams(e);return{focus:t.get(`focus`)||void 0,suggest:t.get(`suggest`)??void 0}}var Eo={"migration-pro":{module:`migration`}};function Do(e){return e.module===`lazy`&&e.subtab===`fonts`?{...e,group:kt(`fonts`)??e.group,module:`fonts`,subtab:``}:e}function Oo(e){let t=(e||``).replace(/^#/,``),n=t.indexOf(`?`),r=n===-1?t:t.slice(0,n),{focus:i,suggest:a}=To(n===-1?``:t.slice(n+1));if(r.startsWith(`/`)){let e=r.slice(1).split(`/`).filter(Boolean);return e.length===0||e[0]===`overview`?{view:`overview`,focus:i,suggest:a}:e[0]===`pro`?{view:`pro`,focus:i,suggest:a}:Dt.includes(e[0])?e.length===1?{view:`group`,group:e[0],focus:i,suggest:a}:Do({view:`module`,group:e[0],module:e[1],subtab:e[2]||``,focus:i,suggest:a}):{view:`overview`,focus:i,suggest:a}}let o=vn(e),s=o.module;if(!s||s===`overview`)return{view:`overview`,focus:o.focus,suggest:o.suggest,legacy:!0};let c=Eo[s],l=c?c.module:s;c?.subtab&&!o.subtab&&(o.subtab=c.subtab);let u=kt(l);return u?Do({view:`module`,group:u,module:l,subtab:o.subtab??``,focus:o.focus,suggest:o.suggest,legacy:!0}):{view:`overview`,focus:o.focus,suggest:o.suggest,legacy:!0}}function ko(e,t){if(t!==`free`)return e;let n=new Set(e.map(e=>e.slug)),r=wt.filter(e=>!n.has(e.slug)&&!e.embedded).map(e=>({slug:e.slug,tier:`pro`,version:`0.0.0`,label:e.label,icon:e.icon,description:e.description,settings:{},schema:{},locked:!0}));return[...e,...r]}var Ao=`xspeed-theme`,jo=`xspeed_theme`;function Mo(e){document.cookie=`${jo}=${e}; path=/; max-age=31536000; SameSite=Lax`}function No(){let[e,t]=(0,y.useState)(()=>localStorage.getItem(Ao)===`dark`?`dark`:`light`);return(0,y.useEffect)(()=>{let t=document.getElementById(`xspeed-app`);t&&(t.classList.toggle(`dark`,e===`dark`),document.body.classList.toggle(`xspeed-dark`,e===`dark`),localStorage.setItem(Ao,e),Mo(e))},[e]),{theme:e,toggle:()=>t(e=>e===`dark`?`light`:`dark`)}}function Po(){let e=Kt(),[t,n]=(0,y.useState)({}),[r,i]=(0,y.useState)(()=>window.XSpeedConfig?.bootstrap?.modules??[]);(0,y.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>{B.getModules().then(i).catch(()=>void 0)};return window.addEventListener(`xspeed:tier-changed`,e),()=>window.removeEventListener(`xspeed:tier-changed`,e)},[]);let a=(0,y.useMemo)(()=>ko(r,e).map(e=>t[e.slug]?{...e,settings:t[e.slug]}:e),[e,t,r]),o=(0,y.useCallback)((e,t)=>{n(n=>({...n,[e]:t})),e===`white-label`&&B.getBranding().then(e=>{window.XSpeedPro?.setBranding?.(e)}).catch(()=>void 0)},[]),s=(0,y.useCallback)((e,t)=>{let n=yn(e);n&&(X(n.module,n.field),Ii(t===void 0?null:{module:n.module,field:n.field,value:t}))},[]),[c,l]=(0,y.useState)(()=>Oo(window.location.hash));(0,y.useEffect)(()=>{let e=Oo(window.location.hash);if(e.legacy){let t=wo(e);window.location.hash!==t&&history.replaceState(null,``,t)}s(e.focus,e.suggest)},[]),(0,y.useEffect)(()=>{let e=wo(c);typeof window<`u`&&window.location.hash!==e&&history.replaceState(null,``,e)},[c]),(0,y.useEffect)(()=>{if(typeof window>`u`)return;let e=()=>{let e=Oo(window.location.hash);l(e),s(e.focus,e.suggest)};return window.addEventListener(`hashchange`,e),()=>window.removeEventListener(`hashchange`,e)},[s]);let u=(0,y.useCallback)(e=>{l(e===`overview`?{view:`overview`}:{view:`group`,group:e})},[]),d=(0,y.useCallback)((e,t=``)=>{let n=kt(e);n&&l({view:`module`,group:n,module:e,subtab:t})},[]),f=(0,y.useCallback)(()=>l({view:`pro`}),[]),p=c.view===`overview`?jt:c.group??`overview`,m=c.view===`module`?c.module??null:null,h=c.view===`module`?c.subtab??``:``,g=(0,y.useMemo)(()=>m?a.find(e=>e.slug===m)??null:null,[a,m]),_=(0,y.useRef)(null);(0,y.useEffect)(()=>{_.current?.scrollTo({top:0})},[c]);let v=window.XSpeedConfig?.bootstrap,[b,x]=(0,y.useState)(v?.settings??null),[S,C]=(0,y.useState)(v?.status?.stats??null),[w,T]=(0,y.useState)(v?.status?.rewrite_probe??null),[ee,E]=(0,y.useState)(v?.status?.mobile_separate??null),[te,D]=(0,y.useState)(v?.status?.nginx_server_block??null),[ne,re]=(0,y.useState)(null),[O,k]=(0,y.useState)(!1),[A,j]=(0,y.useState)(!1),[ie,ae]=(0,y.useState)(!1),{theme:oe,toggle:M}=No(),[se,ce]=(0,y.useState)(!1),le=(0,y.useCallback)(e=>{d(e.module.slug,e.subtab??``),e.fieldKey&&X(e.fieldModuleSlug??e.module.slug,e.fieldKey)},[d]);(0,y.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&!e.altKey&&!e.shiftKey&&e.key.toLowerCase()===`k`&&(e.preventDefault(),e.stopPropagation(),ce(e=>!e))};return window.addEventListener(`keydown`,e,{capture:!0}),()=>window.removeEventListener(`keydown`,e,{capture:!0})},[]);let ue=(0,y.useCallback)(e=>{re(e),setTimeout(()=>re(null),2e3)},[]);(0,y.useEffect)(()=>{B.request(`/mcp/hub`).then(e=>ae(e?.attached===!0)).catch(()=>void 0)},[]),(0,y.useEffect)(()=>{b&&S||Promise.all([B.getSettings(),B.getStatus()]).then(([e,t])=>{x(e),C(t.stats),T(t.rewrite_probe??null),E(t.mobile_separate??null),D(t.nginx_server_block??null)}).catch(()=>ue(L(`Failed to load`)))},[]);let de=(0,y.useCallback)(async e=>{if(!b)return;let t=b;x({...b,cache_enabled:e});try{let t=await B.toggleCache(e);x(e=>e&&{...e,cache_enabled:t.enabled}),C(t.stats),D(t.install_state.nginx_server_block??null),e&&!t.install_state.wp_cache_constant&&t.install_state.manual_snippet?ue(`Cache enabled. Add to wp-config.php: ${t.install_state.manual_snippet}`):e&&t.install_state.nginx_snippet?ue(`Cache enabled. nginx detected — re-run the setup wizard to copy the server-block snippet for max speed.`):ue(L(e?`Cache enabled`:`Cache disabled`))}catch{x(t),ue(L(e?`Failed to enable cache`:`Failed to disable cache`))}},[b,ue]),fe=(0,y.useCallback)(async()=>{if(!O){k(!0);try{C((await B.purge()).stats),ue(L(`Cache purged`))}catch{ue(L(`Purge failed`))}finally{k(!1)}}},[O,ue]),pe=(0,y.useCallback)(async()=>{if(!A){j(!0);try{await B.preload(),ue(L(`Preload started`))}catch{ue(L(`Preload could not start`))}finally{j(!1)}}},[A,ue]),N=(0,y.useCallback)(async()=>{try{let e=await B.getStatus();C(e.stats),T(e.rewrite_probe??null),E(e.mobile_separate??null),D(e.nginx_server_block??null)}catch{}},[]),me=(0,y.useCallback)(()=>d(`mcp`),[d]),he=(0,y.useMemo)(()=>{if(c.view===`overview`)return{current:L(`Overview`)};if(c.view===`group`)return{current:Ot(c.group??``)?.label??``};let e=Ot(c.group??``),t=c.module===`logs`?L(`Logs`):g?.label??c.module??``;return{backLabel:e?.label,onBack:()=>u(c.group??`overview`),current:t}},[c,g,u]),ge=(0,I.jsx)(Zt,{activeGroup:p,onNavigate:u,onUpgrade:f,onManageLicense:()=>d(`license`),modules:a}),_e=(0,I.jsx)($t,{crumb:he,onOpenSearch:()=>ce(!0),onPurge:fe,onPreload:pe,onConnectHub:me,purging:O,preloading:A,hubConnected:ie,theme:oe,onToggleTheme:M});if(!b||!S)return(0,I.jsxs)(lo,{query:``,children:[ge,(0,I.jsxs)(`div`,{className:`flex-1 flex flex-col min-w-0`,children:[_e,(0,I.jsx)(`main`,{className:`flex-1 flex bg-canvas`,children:(0,I.jsx)(mn,{})})]})]});let ve=c.view===`module`&&c.module!==`logs`&&!g;return(0,I.jsxs)(lo,{query:``,children:[ge,(0,I.jsxs)(`div`,{className:`flex-1 flex flex-col min-w-0`,children:[_e,(0,I.jsx)(`main`,{ref:_,className:`flex-1 overflow-auto bg-canvas`,children:(0,I.jsx)(J,{query:``,children:(0,I.jsxs)(`div`,{className:`px-4 sm:px-6 lg:px-8 py-5 sm:py-6`,children:[c.view===`overview`&&(0,I.jsx)(ao,{settings:b,stats:S,rewriteProbe:w,modules:a,onNavigate:d,showToast:ue}),c.view===`pro`&&(0,I.jsx)(za,{}),(c.view===`group`||ve)&&(0,I.jsx)(nn,{groupId:c.group??`cache`,modules:a,onOpen:d}),c.view===`module`&&c.module===`logs`&&(0,I.jsx)(pn,{}),c.view===`module`&&g&&(0,I.jsxs)(`div`,{className:`space-y-6`,children:[(0,I.jsx)(on,{module:g,eyebrow:Ot(c.group??``)?.label}),g.slug===`cache`&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(ia,{probe:w,onOpenHealth:()=>d(`health`)}),(0,I.jsx)(oa,{mobile:ee,onOpenCacheSettings:()=>d(`cache`)}),(0,I.jsx)(wa,{stats:S}),(0,I.jsx)(Ta,{}),(0,I.jsx)(K,{settings:b,stats:S,onToggle:de,onPurge:fe}),(0,I.jsx)(la,{snippet:te,topology:w?.topology,focus:c.focus}),(0,I.jsx)(Ia,{}),(0,I.jsx)(Ea,{}),(0,I.jsx)(Oa,{})]}),(0,I.jsx)(Zi,{module:g,subtab:h,onSubtabChange:e=>l(t=>t.view===`module`?{...t,subtab:e}:t),getModule:e=>a.find(t=>t.slug===e),onSaved:e=>{o(g.slug,e),N()}})]})]})})})]}),ne&&(0,I.jsx)(hn,{message:ne}),(0,I.jsx)(`div`,{id:`xspeed-toast-host`}),(0,I.jsx)(vo,{open:se,onClose:()=>ce(!1),modules:a,onSelectResult:le,onPurge:fe,onPreload:pe})]})}var Fo=[{id:`review`,label:`Environment`},{id:`configure`,label:`Configure`},{id:`done`,label:`Summary`},{id:`connect`,label:`Connect`}];function Io(){return typeof window>`u`?!1:!!window.XSpeedConfig?.bootstrap?.hub?.attached}function Lo({current:e,showConnect:t=!Io()}){let n=t||e===`connect`?Fo:Fo.filter(e=>e.id!==`connect`).map(e=>e.id===`done`?{...e,label:`Done`}:e),r=n.findIndex(t=>t.id===e);return(0,I.jsx)(`div`,{className:`flex items-center justify-center gap-2 sm:gap-3 py-4 sm:py-5 border-b border-line`,children:n.map((e,t)=>{let i=t<r,a=t===r;return(0,I.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`w-6 h-6 rounded-full flex items-center justify-center text-[11px] font-medium transition-colors ${a?`bg-primary text-on-primary`:i?`bg-success text-white`:`bg-line text-muted`}`,children:i?(0,I.jsx)(O,{size:12}):t+1}),(0,I.jsx)(`span`,{className:`hidden sm:inline text-[13px] font-medium ${a?`text-ink`:i?`text-ink-soft`:`text-faint`}`,children:e.label})]}),t<n.length-1&&(0,I.jsx)(`span`,{className:`w-8 sm:w-12 h-px ${i?`bg-success`:`bg-line`}`})]},e.id)})})}function Ro({step:e,hero:t,children:n,footer:r}){return(0,I.jsxs)(`div`,{className:`max-w-3xl mx-auto my-6 sm:my-10 bg-paper border border-line rounded-card overflow-hidden flex flex-col`,children:[(0,I.jsx)(Lo,{current:e}),t,(0,I.jsx)(`div`,{className:`px-4 sm:px-6 py-2 space-y-4`,children:n}),r&&(0,I.jsx)(`div`,{className:`border-t border-line px-4 sm:px-6 py-3 sm:py-4 flex items-center justify-between gap-3 bg-paper mt-6`,children:r})]})}function zo({icon:e,logo:t,title:n,subtitle:r}){return(0,I.jsxs)(`div`,{className:`text-center max-w-2xl mx-auto px-4 sm:px-6 py-6 sm:py-8`,children:[t?(0,I.jsx)(`div`,{className:`mb-3 flex justify-center`,children:t}):e&&(0,I.jsx)(`div`,{className:`mb-3 flex justify-center`,children:(0,I.jsx)(e,{size:28,className:`text-primary`})}),(0,I.jsx)(`h1`,{className:`text-[22px] sm:text-[24px] font-semibold text-ink leading-tight`,children:n}),r&&(0,I.jsx)(`p`,{className:`text-[13px] text-muted mt-2`,children:r})]})}function Bo({children:e,onClick:t,disabled:n,type:r=`button`}){return(0,I.jsx)(`button`,{type:r,onClick:t,disabled:n,className:`px-4 py-2 rounded text-[13px] font-medium flex items-center gap-1.5 transition-colors ${n?`bg-primary text-on-primary opacity-50 cursor-not-allowed`:`bg-primary text-on-primary hover:bg-primary-hover`}`,children:e})}function Vo({children:e,onClick:t}){return(0,I.jsx)(`button`,{type:`button`,onClick:t,className:`text-[13px] text-muted hover:text-ink transition-colors`,children:e})}function Ho({step:e,rows:t=3}){return(0,I.jsxs)(`div`,{className:`max-w-3xl mx-auto my-6 sm:my-10 bg-paper border border-line rounded-card overflow-hidden flex flex-col`,children:[(0,I.jsx)(Lo,{current:e}),(0,I.jsxs)(`div`,{className:`text-center max-w-2xl mx-auto px-4 sm:px-6 py-6 sm:py-8 w-full`,children:[(0,I.jsx)(`div`,{className:`mx-auto mb-4 h-11 w-11 rounded-card bg-line motion-safe:animate-pulse`}),(0,I.jsx)(`div`,{className:`mx-auto h-5 w-1/2 rounded bg-line motion-safe:animate-pulse`}),(0,I.jsx)(`div`,{className:`mx-auto mt-3 h-3 w-3/4 rounded bg-panel motion-safe:animate-pulse`})]}),(0,I.jsx)(`div`,{className:`px-4 sm:px-6 py-2 space-y-3 pb-8`,children:(0,I.jsx)(`div`,{className:`rounded-card border border-line bg-panel px-5 py-5 space-y-3`,children:Array.from({length:t}).map((e,t)=>(0,I.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,I.jsx)(`div`,{className:`h-4 w-4 rounded-full bg-line motion-safe:animate-pulse shrink-0`}),(0,I.jsx)(`div`,{className:`h-3 rounded bg-line motion-safe:animate-pulse`,style:{width:`${80-t*12}%`}})]},t))})})]})}function Uo({initialHub:e,onNext:t,onSkip:n}){let{status:r,connectUrl:i,error:a,attached:o,hasToken:s,busy:c,loaded:l,generateToken:u}=gi({active:!0,initial:e}),[d,f]=(0,y.useState)(!1);return!l&&!o?(0,I.jsx)(Ho,{step:`connect`,rows:3}):o?(0,I.jsx)(Ro,{step:`connect`,hero:(0,I.jsx)(zo,{icon:O,title:L(`Connected to xSpeed Hub`),subtitle:r?.account_email?Pt(L(`Connected as %s. Your caching is ready to manage from anywhere.`),r.account_email):L(`Your caching is ready to manage from anywhere.`)}),footer:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`span`,{className:`text-[12px] text-faint`,children:L(`You're all set`)}),(0,I.jsxs)(Bo,{onClick:t,children:[L(`Go to Dashboard`),(0,I.jsx)(w,{size:14})]})]}),children:(0,I.jsxs)(`div`,{className:`rounded-card border border-line bg-success-tint px-4 py-3.5`,children:[(0,I.jsx)(`p`,{className:`text-[11px] font-semibold uppercase tracking-wide text-success mb-2.5`,children:L(`Now unlocked`)}),(0,I.jsx)(`ul`,{className:`space-y-2`,children:[L(`One AI connection controls the cache on every site you connect`),L(`Purge, benchmark, preload and tune settings by asking your AI`),L(`Manage this site from the central xSpeed Hub dashboard`)].map(e=>(0,I.jsxs)(`li`,{className:`flex items-start gap-2 text-[12.5px] text-ink-soft`,children:[(0,I.jsx)(O,{size:14,className:`text-success mt-0.5 shrink-0`}),e]},e))})]})}):(0,I.jsxs)(Ro,{step:`connect`,hero:(0,I.jsx)(zo,{logo:(0,I.jsx)(Xt,{className:`w-11 h-11 rounded-card`}),title:L(`Run your site just by asking`),subtitle:L(`Connect this site to your free xSpeed Hub — then manage caching here and on every other site straight from ChatGPT, Claude, or any AI assistant. Free, forever.`)}),footer:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(Vo,{onClick:n,children:L(`I'll connect later`)}),(0,I.jsxs)(Bo,{onClick:t,children:[L(`Go to Dashboard`),(0,I.jsx)(w,{size:14})]})]}),children:[a&&(0,I.jsx)(V,{tone:`danger`,title:L(`xSpeed Hub error`),body:a}),(0,I.jsxs)(`div`,{className:`rounded-card bg-panel border border-line px-5 sm:px-8 py-5 sm:py-6`,children:[(0,I.jsx)(`p`,{className:`text-[13px] font-medium text-ink mb-4`,children:L(`Your Hub is home base for all your sites. Once connected, you can:`)}),(0,I.jsxs)(`ul`,{className:`space-y-3.5`,children:[(0,I.jsxs)(`li`,{className:`flex items-start gap-3`,children:[(0,I.jsx)(vt,{size:16,className:`text-primary mt-0.5 shrink-0`}),(0,I.jsxs)(`p`,{className:`text-[13px] leading-relaxed text-ink-soft`,children:[(0,I.jsx)(`span`,{className:`font-medium text-ink`,children:L(`Just say what you want`)}),` — `,(0,I.jsx)(`em`,{className:`not-italic text-ink`,children:L(`“clear the cache on my store,” “warm up the homepage,” “how fast is my blog?”`)}),` — `,L(`and it happens.`)]})]}),(0,I.jsxs)(`li`,{className:`flex items-start gap-3`,children:[(0,I.jsx)(Se,{size:16,className:`text-primary mt-0.5 shrink-0`}),(0,I.jsxs)(`p`,{className:`text-[13px] leading-relaxed text-ink-soft`,children:[(0,I.jsx)(`span`,{className:`font-medium text-ink`,children:L(`Run every site from one place`)}),` — `,L(`no logging into each dashboard separately.`)]})]}),(0,I.jsxs)(`li`,{className:`flex items-start gap-3`,children:[(0,I.jsx)(be,{size:16,className:`text-primary mt-0.5 shrink-0`}),(0,I.jsxs)(`p`,{className:`text-[13px] leading-relaxed text-ink-soft`,children:[(0,I.jsx)(`span`,{className:`font-medium text-ink`,children:L(`Get more over time`)}),` — `,L(`new Hub features arrive automatically, free.`)]})]})]}),(0,I.jsx)(`p`,{className:`text-[13px] mt-4`,children:(0,I.jsx)(`a`,{href:`${r?.hub_url??`https://xspeedcache.com`}`,target:`_blank`,rel:`noreferrer`,className:`text-primary hover:underline`,children:L(`See everything it does.`)})})]}),(0,I.jsxs)(`div`,{className:`flex flex-col items-center gap-3 pt-2`,children:[(0,I.jsxs)(`a`,{href:i,className:`inline-flex items-center justify-center gap-2 px-8 py-3 rounded-md text-[14px] font-semibold bg-primary text-on-primary hover:bg-primary-hover transition-colors shadow-sm`,children:[(0,I.jsx)(rt,{size:16}),L(`Connect to xSpeed Hub`)]}),(0,I.jsx)(`div`,{className:`flex flex-wrap items-center justify-center gap-x-4 gap-y-1`,children:[L(`Free forever`),L(`Under a minute`),L(`No card, no catch`)].map(e=>(0,I.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-[11.5px] text-muted`,children:[(0,I.jsx)(O,{size:13,className:`text-success`}),e]},e))})]}),(0,I.jsxs)(`div`,{className:`border-t border-line pt-3 text-center`,children:[(0,I.jsxs)(`button`,{type:`button`,onClick:()=>{s||u(),f(e=>!e)},className:`inline-flex items-center gap-1.5 text-[11.5px] text-faint hover:text-ink-soft transition-colors`,children:[c===`token`?(0,I.jsx)(P,{size:12,className:`animate-spin`}):(0,I.jsx)(Ae,{size:12}),L(`No redirect? Connect with a token instead.`)]}),d&&(0,I.jsxs)(`div`,{className:`mt-3 space-y-2 text-left`,children:[(0,I.jsxs)(`p`,{className:`text-[12px] text-muted`,children:[L(`Paste this site’s URL + token into the`),` `,(0,I.jsxs)(`a`,{href:r?.add_site_url,target:`_blank`,rel:`noreferrer`,className:`text-primary hover:underline inline-flex items-center gap-0.5`,children:[L(`Add site form`),` `,(0,I.jsx)(N,{size:11})]}),` `,L(`on your xSpeed Hub account.`)]}),(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`text-[11px] font-medium text-muted mb-1`,children:L(`Site URL`)}),(0,I.jsx)(En,{content:r?.site_url??``})]}),(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`text-[11px] font-medium text-muted mb-1`,children:L(`Token`)}),(0,I.jsx)(En,{content:r?.site_token??``,tone:`blue`})]})]})]})]})}var Wo={apache:`Apache`,litespeed:`LiteSpeed`,nginx:`nginx`,iis:`IIS`,unknown:`Unknown`};function Go({env:e,onNext:t}){let n=R(),r=!!n.logo_svg?.trim(),i=e.conflicts.length>0,a=e.wp.ok?`ok`:`fail`,o=e.php.modern?`ok`:e.php.ok?`warn`:`fail`,s=e.cache_dir.writable?`ok`:`fail`,c=e.permalinks_ok?`ok`:`warn`,l=i?`warn`:`ok`,u=e.server.gzip_mode===`auto`?`GZIP can be auto-configured via .htaccess.`:`GZIP requires a manual server-config snippet (we'll show it).`;return(0,I.jsx)(Ro,{step:`review`,hero:(0,I.jsx)(zo,{icon:Ge,logo:r?(0,I.jsx)(Xt,{className:`w-8 h-8 rounded`}):void 0,title:`Let's review your setup`,subtitle:`A quick 30-second check of your environment before we turn on a sensible caching profile.`}),footer:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`span`,{}),(0,I.jsxs)(Bo,{onClick:t,children:[`Get Started`,(0,I.jsx)(w,{size:14})]})]}),children:(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card overflow-hidden`,children:[(0,I.jsx)(Tn,{first:!0,tone:a,label:`WordPress ${e.wp.version}`,detail:e.wp.ok?`Meets the 6.0+ minimum.`:`Upgrade to 6.0 or higher.`}),(0,I.jsx)(Tn,{tone:o,label:`PHP ${e.php.version}`,detail:e.php.modern?`Modern PHP — full speed.`:e.php.ok?`Works, but 8.1+ is recommended for best performance.`:`Upgrade to PHP 7.4 or higher.`}),(0,I.jsx)(Tn,{tone:`info`,label:`Server: ${Wo[e.server.type]}`,detail:u}),(0,I.jsx)(Tn,{tone:s,label:`Cache directory writable`,detail:e.cache_dir.writable?e.cache_dir.path:`Cannot write to ${e.cache_dir.path}. Adjust file permissions before continuing.`}),(0,I.jsx)(Tn,{tone:c,label:`Permalinks`,detail:e.permalinks_ok?`Pretty permalinks active.`:`Set permalinks to anything other than "Plain" — required for page caching.`}),(0,I.jsx)(Tn,{tone:l,label:`Caching plugin conflicts`,detail:i?`Detected: ${e.conflicts.join(`, `)}. Deactivate before enabling ${n.name} cache to avoid double-caching.`:`No other caching plugins detected.`})]})})}var Ko=[{value:12,label:`12 hours`},{value:24,label:`24 hours`},{value:168,label:`7 days`},{value:720,label:`30 days`}],qo=[{id:`conservative`,label:`Conservative`,description:`Page cache + GZIP only. No minify, no lazy-load, no browser cache headers. Safest on themes with finicky CSS / JS.`,icon:$e,choices:{cache_enabled:!0,minify_html:!1,minify_css:!1,minify_js:!1,defer_js:!1,gzip_enabled:!0,lazy_images:!1,browser_cache:!1,cache_expiry:12}},{id:`balanced`,label:`Balanced`,description:`Cache + GZIP + safe minify (HTML/CSS only) + lazy images + browser cache headers + LCP image preload & font preconnect. Recommended for most sites.`,icon:vt,choices:{cache_enabled:!0,minify_html:!0,minify_css:!0,minify_js:!1,defer_js:!1,gzip_enabled:!0,lazy_images:!0,browser_cache:!0,resource_hints:!0,cache_expiry:24}},{id:`aggressive`,label:`Aggressive`,description:`Everything Balanced does, plus JS minify + defer non-critical JS, and a 7-day cache lifetime. Test after enabling — some themes break.`,icon:ve,choices:{cache_enabled:!0,minify_html:!0,minify_css:!0,minify_js:!0,defer_js:!0,gzip_enabled:!0,lazy_images:!0,browser_cache:!0,resource_hints:!0,cache_expiry:168}}],Jo={cache_enabled:`Enable Page Cache`,minify_html:`Minify HTML`,minify_css:`Minify CSS`,minify_js:`Minify JS`,defer_js:`Defer JavaScript`,gzip_enabled:`Enable GZIP Compression`,lazy_images:`Lazy-load Images`,browser_cache:`Browser cache headers`,resource_hints:`LCP image preload + preconnect`};function Yo(e,t){return e?Object.keys(Jo).filter(n=>e[n]===!0&&t[n]!==!0).map(e=>Jo[e]):[]}function Xo(e){if(e>=168&&e%168==0){let t=e/168;return`${t} week${t===1?``:`s`}`}if(e>=24&&e%24==0){let t=e/24;return`${t} day${t===1?``:`s`}`}return`${e} hour${e===1?``:`s`}`}function Zo(e,t){if(!e)return[];let n=e.cache_expiry,r=t.cache_expiry;return typeof n!=`number`||typeof r!=`number`||n===r?[]:[`Cache expiry: ${Xo(n)} → ${Xo(r)}`]}function Qo(e){let t=e;return qo.find(e=>Object.entries(e.choices).every(([e,n])=>t[e]===n))?.id??`custom`}function $o({env:e,initial:t,current:n,onApply:r,onSkip:i,onBack:a,busy:o}){let[s,c]=(0,y.useState)(t),l=(e,t)=>c(n=>({...n,[e]:t})),u=e=>c(t=>({...t,...e.choices})),d=(0,y.useMemo)(()=>Qo(s),[s]),f=(0,y.useMemo)(()=>Yo(n,s),[n,s]),p=(0,y.useMemo)(()=>Zo(n,s),[n,s]),m=(0,y.useMemo)(()=>{let e=s.cache_expiry;return typeof e!=`number`||Ko.some(t=>t.value===e)?Ko:[...Ko,{value:e,label:Xo(e)}].sort((e,t)=>e.value-t.value)},[s.cache_expiry]);return(0,I.jsxs)(Ro,{step:`configure`,hero:(0,I.jsx)(zo,{icon:Qe,title:`Pick a starting point`,subtitle:`Choose a preset to fill the toggles below — or skip and configure each one yourself. You can change everything later.`}),footer:(0,I.jsxs)(I.Fragment,{children:[a&&(0,I.jsxs)(Vo,{onClick:a,children:[(0,I.jsx)(C,{size:14}),` Back`]}),(0,I.jsx)(Vo,{onClick:i,children:`Skip — I'll configure manually`}),(0,I.jsxs)(Bo,{onClick:()=>r(s),disabled:o,children:[o?`Applying…`:`Apply & Continue`,!o&&(0,I.jsx)(w,{size:14})]})]}),children:[(f.length>0||p.length>0)&&(0,I.jsxs)(`div`,{role:`status`,className:`flex gap-2.5 rounded-card border border-warning bg-warning-tint p-3.5 text-[13px] text-ink`,children:[(0,I.jsx)(dt,{size:16,className:`mt-px shrink-0 text-warning`,"aria-hidden":`true`}),(0,I.jsxs)(`div`,{className:`m-0`,children:[f.length>0&&(0,I.jsxs)(`p`,{className:`m-0`,children:[`Applying will turn off `,(0,I.jsx)(`strong`,{children:f.join(`, `)}),`, which`,` `,f.length===1?`is`:`are`,` currently on. Switch`,` `,f.length===1?`it`:`them`,` back on below to keep`,` `,f.length===1?`it`:`them`,`.`]}),p.length>0&&(0,I.jsxs)(`p`,{className:f.length>0?`m-0 mt-1.5`:`m-0`,children:[`Applying will also change `,(0,I.jsx)(`strong`,{children:p.join(`, `)}),`.`]})]})]}),(0,I.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-2.5`,children:qo.map(e=>{let t=e.icon,n=d===e.id;return(0,I.jsxs)(`button`,{type:`button`,onClick:()=>u(e),className:`text-left rounded-card p-3.5 border transition-colors ${n?`border-primary bg-primary-tint`:`border-line bg-paper hover:border-line-strong`}`,"aria-pressed":n,children:[(0,I.jsx)(t,{size:16,className:n?`text-primary`:`text-muted`}),(0,I.jsx)(`div`,{className:`text-[13px] font-medium mt-1.5 ${n?`text-primary`:`text-ink`}`,children:e.label}),(0,I.jsx)(`div`,{className:`text-[11px] text-muted mt-0.5 leading-snug`,children:e.description})]},e.id)})}),(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card overflow-hidden`,children:[(0,I.jsx)(es,{first:!0,label:`Enable Page Cache`,hint:`Serve static HTML to non-logged-in visitors. The single biggest speed win.`,checked:s.cache_enabled,onChange:e=>l(`cache_enabled`,e)}),(0,I.jsx)(es,{label:`Minify HTML`,hint:`Strip whitespace and comments from HTML output.`,checked:s.minify_html,onChange:e=>l(`minify_html`,e)}),(0,I.jsx)(es,{label:`Minify CSS`,hint:`Compress and rewrite enqueued local stylesheets.`,checked:s.minify_css,onChange:e=>l(`minify_css`,e)}),(0,I.jsx)(es,{label:`Minify JS`,hint:`Compress enqueued local scripts. Higher conflict risk than HTML/CSS — turn off if scripts break.`,checked:s.minify_js,onChange:e=>l(`minify_js`,e)}),(0,I.jsx)(es,{label:`Defer JavaScript`,hint:`Add defer to enqueued <script> tags so they don't block first paint. Safest paired with Minify JS off; flip on after testing.`,checked:s.defer_js,onChange:e=>l(`defer_js`,e)}),(0,I.jsx)(es,{label:`Enable GZIP Compression`,hint:e.server.gzip_mode===`auto`?`Reduces transfer size. We will write the .htaccess rules.`:`Reduces transfer size. On ${e.server.type===`nginx`?`nginx`:`this server`} you'll need to paste a snippet into your server config — we'll show it after.`,checked:s.gzip_enabled,onChange:e=>l(`gzip_enabled`,e)}),(0,I.jsx)(es,{label:`Lazy-load Images`,hint:`Defer off-screen images + iframes until they scroll into view. Keeps the first image eager so your LCP isn't deferred.`,checked:s.lazy_images,onChange:e=>l(`lazy_images`,e)}),(0,I.jsx)(es,{label:`Browser cache headers`,hint:`Send Cache-Control + Expires so returning visitors fetch nothing. 1-year immutable for static assets, 1-hour for HTML.`,checked:s.browser_cache,onChange:e=>l(`browser_cache`,e)}),(0,I.jsx)(es,{label:`LCP image preload + preconnect`,hint:`Preload the largest above-the-fold image and preconnect to font hosts so the main content paints sooner. Safe on every theme — only adds resource hints, never removes anything.`,checked:s.resource_hints??!0,onChange:e=>l(`resource_hints`,e)})]}),(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:[(0,I.jsx)(`label`,{htmlFor:`xspeed-onb-expiry`,className:`block text-[13px] font-medium text-ink mb-1.5`,children:`Cache Expiry`}),(0,I.jsx)(`p`,{className:`text-[12px] text-muted mb-2.5`,children:`How long cached pages live before regenerating.`}),(0,I.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:m.map(e=>(0,I.jsx)(`button`,{type:`button`,onClick:()=>l(`cache_expiry`,e.value),className:`text-[13px] px-3 py-1.5 rounded border transition-colors ${s.cache_expiry===e.value?`bg-primary border-primary text-on-primary`:`border-line text-ink-soft hover:bg-panel`}`,children:e.label},e.value))})]}),(0,I.jsx)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:(0,I.jsxs)(`div`,{className:`flex items-start justify-between gap-3 sm:gap-4`,children:[(0,I.jsxs)(`div`,{className:`min-w-0 pr-2`,children:[(0,I.jsx)(`div`,{className:`text-[13px] font-medium text-ink mb-1.5`,children:`Help improve xSpeed`}),(0,I.jsx)(`p`,{className:`text-[12px] text-muted leading-snug`,children:`Share a few anonymous basics — WordPress & PHP version, active theme & plugins, server type, and which features you enable. Never personal data or page content. Change it anytime from the dashboard.`})]}),(0,I.jsx)(`div`,{className:`shrink-0`,children:(0,I.jsx)(gn,{checked:s.usage_tracking,onChange:e=>l(`usage_tracking`,e),label:`Share anonymous usage data`})})]})})]})}function es({label:e,hint:t,checked:n,onChange:r,first:i=!1}){return(0,I.jsxs)(`div`,{className:`px-4 sm:px-5 py-4 flex items-center justify-between gap-3 sm:gap-4 ${i?``:`border-t border-line`}`,children:[(0,I.jsxs)(`div`,{className:`min-w-0 pr-2`,children:[(0,I.jsx)(`div`,{className:`font-medium text-ink`,children:e}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted mt-0.5`,children:t})]}),(0,I.jsx)(`div`,{className:`shrink-0`,children:(0,I.jsx)(gn,{checked:n,onChange:r,label:e})})]})}function ts({choices:e,applyResult:t,onDashboard:n,onNext:r}){let i=R(),a=!!i.logo_svg?.trim(),o=t?.settings.cache_enabled??e.cache_enabled,s=t?.install_state,c=o&&s&&!s.wp_cache_constant&&s.manual_snippet,l=[];o&&l.push(`Page cache`),e.minify_html&&l.push(`HTML minify`),e.minify_css&&l.push(`CSS minify`),e.minify_js&&l.push(`JS minify`),e.defer_js&&l.push(`Defer JS`),e.gzip_enabled&&l.push(`GZIP`),e.lazy_images&&l.push(`Lazy images`),e.browser_cache&&l.push(`Browser cache`);let u=e.cache_expiry>=168?`${Math.round(e.cache_expiry/168)}-week`:e.cache_expiry>=24?`${Math.round(e.cache_expiry/24)}-day`:`${e.cache_expiry}-hour`;return(0,I.jsxs)(Ro,{step:`done`,hero:(0,I.jsx)(zo,{icon:O,logo:a?(0,I.jsx)(Xt,{className:`w-8 h-8 rounded`}):void 0,title:`${i.name} is ready`,subtitle:o?`Caching is active. Your site is now faster for non-logged-in visitors.`:`Your preferences are saved. Enable cache from the dashboard whenever you are ready.`}),footer:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`span`,{}),(0,I.jsxs)(Bo,{onClick:r??n,children:[r?`Continue`:`Go to Dashboard`,(0,I.jsx)(w,{size:14})]})]}),children:[l.length>0&&(0,I.jsxs)(`div`,{className:`border border-line bg-paper rounded-card p-4 sm:p-5`,children:[(0,I.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 mb-3`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`text-[11px] uppercase tracking-wider text-muted font-medium`,children:`Optimizations active`}),(0,I.jsxs)(`div`,{className:`text-2xl font-semibold text-success tabular-nums mt-1`,children:[l.length,(0,I.jsxs)(`span`,{className:`text-faint text-[14px] font-normal`,children:[` / `,8]})]})]}),(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`text-[11px] uppercase tracking-wider text-muted font-medium`,children:`Cache lifetime`}),(0,I.jsx)(`div`,{className:`text-2xl font-semibold text-ink tabular-nums mt-1`,children:u})]})]}),(0,I.jsx)(`div`,{className:`text-[11px] uppercase tracking-wider text-muted font-medium mb-2`,children:`Enabled`}),(0,I.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:l.map(e=>(0,I.jsx)(`span`,{className:`text-[12px] px-2 py-0.5 rounded bg-success-tint text-success border border-line`,children:e},e))})]}),(0,I.jsx)(Ea,{compact:!0}),c&&(0,I.jsxs)(`div`,{className:`border border-line bg-warning-tint rounded-card p-4 sm:p-5`,children:[(0,I.jsx)(`div`,{className:`text-[13px] font-medium text-warning mb-1.5`,children:`One manual step`}),(0,I.jsxs)(`p`,{className:`text-[12px] text-warning mb-2`,children:[`Your `,(0,I.jsx)(`code`,{children:`wp-config.php`}),` isn't writable, so we couldn't set `,(0,I.jsx)(`code`,{children:`WP_CACHE`}),`. Add this line above the "That's all, stop editing!" comment:`]}),(0,I.jsx)(En,{content:s.manual_snippet,tone:`amber`})]}),o&&s?.nginx_server_block&&(0,I.jsxs)(`div`,{className:`space-y-3`,children:[(0,I.jsxs)(`div`,{className:`border border-line bg-info-tint rounded-card p-4 sm:p-5`,children:[(0,I.jsx)(`div`,{className:`text-[13px] font-medium text-info mb-1.5`,children:`nginx detected — one-time server config`}),(0,I.jsxs)(`p`,{className:`text-[12px] text-info`,children:[i.name,` can't write nginx config (it lives outside WordPress). Paste the snippet below into your site's `,(0,I.jsx)(`code`,{children:`server { }`}),` block, then reload nginx — cache hits will be served without booting PHP at all (~5-15ms TTFB). Without this you still get the PHP drop-in path (~85ms).`]})]}),(0,I.jsx)(la,{snippet:s.nginx_server_block})]}),(0,I.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 ${i.hide_help_links?`sm:grid-cols-1`:`sm:grid-cols-2`}`,children:[(0,I.jsx)(ns,{icon:tt,title:`Fine-tune performance`,body:`HTML/CSS/JS minify, lazy-load, browser cache.`,onClick:()=>n(`minify`)}),!i.hide_help_links&&(0,I.jsx)(ns,{icon:E,title:`Read the docs`,body:`Per-module guides, troubleshooting, conflict matrix.`,href:`https://xspeedcache.com/docs`})]})]})}function ns({icon:e,title:t,body:n,onClick:r,href:i}){let a=`text-left border border-line bg-paper rounded-card p-4 sm:p-5 hover:border-primary transition-colors block`,o=(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(e,{size:16,className:`text-primary mb-2`}),(0,I.jsx)(`div`,{className:`text-[13px] font-medium text-ink`,children:t}),(0,I.jsx)(`div`,{className:`text-[12px] text-muted mt-1`,children:n})]});return i?(0,I.jsx)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,className:a,children:o}):(0,I.jsx)(`button`,{type:`button`,onClick:r,className:a,children:o})}function rs(e,t){let n=e.conflicts.length>0,r={cache_enabled:!n,minify_html:!0,minify_css:!0,minify_js:!1,defer_js:!1,gzip_enabled:!0,lazy_images:!0,browser_cache:!0,resource_hints:!0,cache_expiry:24,usage_tracking:!0};if(!t)return r;let i={...r};return Object.keys(r).forEach(e=>{if(e===`usage_tracking`)return;let n=t[e];n!=null&&(i[e]=n)}),n&&(i.cache_enabled=!1),i}function is(){let e=window.XSpeedConfig,t=e.bootstrap?.env,n=e.bootstrap?.settings,r=e.bootstrap?.current??null,i=e.bootstrap?.hub??null,[a,o]=(0,y.useState)(()=>typeof window>`u`?`review`:new URL(window.location.href).searchParams.get(`xspeed_step`)===`connect`?`connect`:`review`),[s,c]=(0,y.useState)(()=>rs(t,r)),[l,u]=(0,y.useState)(null),[d,f]=(0,y.useState)(!1),[p,m]=(0,y.useState)(null),h=e.dashboardUrl||``,g=async e=>{try{await B.onboardingComplete()}catch{}h&&(window.location.href=e?`${h}#${e}`:h)};return!t||!n?(0,I.jsxs)(`div`,{className:`max-w-md mx-auto my-10 rounded-card border border-line bg-paper p-8 text-center`,children:[(0,I.jsx)(`div`,{className:`mx-auto mb-3 flex h-11 w-11 items-center justify-center rounded-full bg-panel text-muted`,children:(0,I.jsx)(Ve,{size:22})}),(0,I.jsx)(`h1`,{className:`font-display text-[18px] font-semibold text-ink`,children:L(`Onboarding data unavailable`)}),(0,I.jsx)(`p`,{className:`mt-1.5 text-[13px] text-muted`,children:L(`We couldn't load the setup wizard. Your site is unaffected — you can configure everything from the dashboard.`)}),(0,I.jsxs)(`a`,{href:h,className:`mt-5 inline-flex items-center gap-1.5 rounded-control bg-primary px-4 py-2 text-[13px] font-medium text-on-primary hover:bg-primary-hover transition-colors`,children:[L(`Go to the dashboard`),(0,I.jsx)(w,{size:14})]})]}):(0,I.jsxs)(I.Fragment,{children:[a===`review`&&(0,I.jsx)(Go,{env:t,onNext:()=>o(`configure`)}),a===`configure`&&(0,I.jsx)($o,{env:t,initial:s,current:r,onApply:async e=>{f(!0),m(null),c(e);try{u(await B.onboardingApply(e)),await B.onboardingComplete(),o(`done`)}catch(e){m(e instanceof Error?e.message:`Failed to apply settings`)}finally{f(!1)}},onSkip:async()=>{try{await B.onboardingComplete()}catch{}h&&(window.location.href=h)},onBack:()=>o(`review`),busy:d}),a===`done`&&(0,I.jsx)(ts,{choices:s,applyResult:l,onDashboard:g,onNext:i?.attached?void 0:()=>o(`connect`)}),a===`connect`&&(0,I.jsx)(Uo,{initialHub:i,onNext:g,onSkip:g}),p&&(0,I.jsx)(`div`,{className:`fixed bottom-6 left-1/2 -translate-x-1/2 bg-danger-tint border border-line text-danger text-[12px] px-4 py-2 rounded-full shadow-md z-50`,children:p})]})}window.React=y.default,window.ReactDOM=F,Bt();var as=document.getElementById(`xspeed-app`);if(as){let e=window.XSpeedConfig?.mode===`onboarding`||as.classList.contains(`xspeed-onboarding-host`);(0,xt.createRoot)(as).render((0,I.jsx)(y.StrictMode,{children:e?(0,I.jsx)(is,{}):(0,I.jsx)(Po,{})}))}})();