21 lines
561 KiB
JavaScript
21 lines
561 KiB
JavaScript
module.exports=[54826,(a,b,c)=>{},15299,(a,b,c)=>{a.r(54826);var d=a.r(72131),e=d&&"object"==typeof d&&"default"in d?d:{default:d},f="u">typeof process&&process.env&&!0,g=function(a){return"[object String]"===Object.prototype.toString.call(a)},h=function(){function a(a){var b=void 0===a?{}:a,c=b.name,d=void 0===c?"stylesheet":c,e=b.optimizeForSpeed,h=void 0===e?f:e;i(g(d),"`name` must be a string"),this._name=d,this._deletedRulePlaceholder="#"+d+"-deleted-rule____{}",i("boolean"==typeof h,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=h,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0,this._nonce=null}var b,c=a.prototype;return c.setOptimizeForSpeed=function(a){i("boolean"==typeof a,"`setOptimizeForSpeed` accepts a boolean"),i(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=a,this.inject()},c.isOptimizeForSpeed=function(){return this._optimizeForSpeed},c.inject=function(){var a=this;i(!this._injected,"sheet already injected"),this._injected=!0,this._serverSheet={cssRules:[],insertRule:function(b,c){return"number"==typeof c?a._serverSheet.cssRules[c]={cssText:b}:a._serverSheet.cssRules.push({cssText:b}),c},deleteRule:function(b){a._serverSheet.cssRules[b]=null}}},c.getSheetForTag=function(a){if(a.sheet)return a.sheet;for(var b=0;b<document.styleSheets.length;b++)if(document.styleSheets[b].ownerNode===a)return document.styleSheets[b]},c.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},c.insertRule=function(a,b){return i(g(a),"`insertRule` accepts only strings"),"number"!=typeof b&&(b=this._serverSheet.cssRules.length),this._serverSheet.insertRule(a,b),this._rulesCount++},c.replaceRule=function(a,b){this._optimizeForSpeed;var c=this._serverSheet;if(b.trim()||(b=this._deletedRulePlaceholder),!c.cssRules[a])return a;c.deleteRule(a);try{c.insertRule(b,a)}catch(d){f||console.warn("StyleSheet: illegal rule: \n\n"+b+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),c.insertRule(this._deletedRulePlaceholder,a)}return a},c.deleteRule=function(a){this._serverSheet.deleteRule(a)},c.flush=function(){this._injected=!1,this._rulesCount=0,this._serverSheet.cssRules=[]},c.cssRules=function(){return this._serverSheet.cssRules},c.makeStyleTag=function(a,b,c){b&&i(g(b),"makeStyleTag accepts only strings as second parameter");var d=document.createElement("style");this._nonce&&d.setAttribute("nonce",this._nonce),d.type="text/css",d.setAttribute("data-"+a,""),b&&d.appendChild(document.createTextNode(b));var e=document.head||document.getElementsByTagName("head")[0];return c?e.insertBefore(d,c):e.appendChild(d),d},b=[{key:"length",get:function(){return this._rulesCount}}],function(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}(a.prototype,b),a}();function i(a,b){if(!a)throw Error("StyleSheet: "+b+".")}var j=function(a){for(var b=5381,c=a.length;c;)b=33*b^a.charCodeAt(--c);return b>>>0},k={};function l(a,b){if(!b)return"jsx-"+a;var c=String(b),d=a+c;return k[d]||(k[d]="jsx-"+j(a+"-"+c)),k[d]}function m(a,b){var c=a+(b=b.replace(/\/style/gi,"\\/style"));return k[c]||(k[c]=b.replace(/__jsx-style-dynamic-selector/g,a)),k[c]}var n=function(){function a(a){var b=void 0===a?{}:a,c=b.styleSheet,d=void 0===c?null:c,e=b.optimizeForSpeed,f=void 0!==e&&e;this._sheet=d||new h({name:"styled-jsx",optimizeForSpeed:f}),this._sheet.inject(),d&&"boolean"==typeof f&&(this._sheet.setOptimizeForSpeed(f),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var b=a.prototype;return b.add=function(a){var b=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(a.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed());var c=this.getIdAndRules(a),d=c.styleId,e=c.rules;if(d in this._instancesCounts){this._instancesCounts[d]+=1;return}var f=e.map(function(a){return b._sheet.insertRule(a)}).filter(function(a){return -1!==a});this._indices[d]=f,this._instancesCounts[d]=1},b.remove=function(a){var b=this,c=this.getIdAndRules(a).styleId;if(function(a,b){if(!a)throw Error("StyleSheetRegistry: "+b+".")}(c in this._instancesCounts,"styleId: `"+c+"` not found"),this._instancesCounts[c]-=1,this._instancesCounts[c]<1){var d=this._fromServer&&this._fromServer[c];d?(d.parentNode.removeChild(d),delete this._fromServer[c]):(this._indices[c].forEach(function(a){return b._sheet.deleteRule(a)}),delete this._indices[c]),delete this._instancesCounts[c]}},b.update=function(a,b){this.add(b),this.remove(a)},b.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},b.cssRules=function(){var a=this,b=this._fromServer?Object.keys(this._fromServer).map(function(b){return[b,a._fromServer[b]]}):[],c=this._sheet.cssRules();return b.concat(Object.keys(this._indices).map(function(b){return[b,a._indices[b].map(function(a){return c[a].cssText}).join(a._optimizeForSpeed?"":"\n")]}).filter(function(a){return!!a[1]}))},b.styles=function(a){var b,c;return b=this.cssRules(),void 0===(c=a)&&(c={}),b.map(function(a){var b=a[0],d=a[1];return e.default.createElement("style",{id:"__"+b,key:"__"+b,nonce:c.nonce?c.nonce:void 0,dangerouslySetInnerHTML:{__html:d}})})},b.getIdAndRules=function(a){var b=a.children,c=a.dynamic,d=a.id;if(c){var e=l(d,c);return{styleId:e,rules:Array.isArray(b)?b.map(function(a){return m(e,a)}):[m(e,b)]}}return{styleId:l(d),rules:Array.isArray(b)?b:[b]}},b.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(a,b){return a[b.id.slice(2)]=b,a},{})},a}(),o=d.createContext(null);function p(){return new n}function q(){return d.useContext(o)}function r(a){var b=q();return b&&b.add(a),null}o.displayName="StyleSheetContext",e.default.useInsertionEffect||e.default.useLayoutEffect,r.dynamic=function(a){return a.map(function(a){return l(a[0],a[1])}).join(" ")},c.StyleRegistry=function(a){var b=a.registry,c=a.children,f=d.useContext(o),g=d.useState(function(){return f||b||p()})[0];return e.default.createElement(o.Provider,{value:g},c)},c.createStyleRegistry=p,c.style=r,c.useStyleRegistry=q},31626,(a,b,c)=>{b.exports=a.r(15299).style},33354,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},41997,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},32245,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(41997);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},7773,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},68063,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getDeploymentId:function(){return f},getDeploymentIdQueryOrEmptyString:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(){return!1}function g(){return""}},97458,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(87924),e=a.r(35112),f=a.r(56704),g=a.r(7773),h=a.r(68063);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let i=(0,h.getDeploymentIdQueryOrEmptyString)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${i}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},69853,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(87924),e=a.r(72131),f=a.r(32245),g=a.r(97458);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},19721,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(33354)._(a.r(69853));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},22734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},92509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},33405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},21517,(a,b,c)=>{b.exports=a.x("http",()=>require("http"))},24836,(a,b,c)=>{b.exports=a.x("https",()=>require("https"))},63047,(a,b,c)=>{var d=a.r(22734),e=a.r(92509),f=a.r(33405).spawn;function g(b){"use strict";b=b||{};var c,g,h=this,i=a.r(21517),j=a.r(24836),k={},l=!1,m={"User-Agent":"node-XMLHttpRequest",Accept:"*/*"},n=Object.assign({},m),o=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","content-transfer-encoding","cookie","cookie2","date","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"],p=["TRACE","TRACK","CONNECT"],q=!1,r=!1,s=!1,t={};this.UNSENT=0,this.OPENED=1,this.HEADERS_RECEIVED=2,this.LOADING=3,this.DONE=4,this.readyState=this.UNSENT,this.onreadystatechange=null,this.responseText="",this.responseXML="",this.response=Buffer.alloc(0),this.status=null,this.statusText=null,this.open=function(a,b,c,d,e){if(this.abort(),r=!1,s=!1,!(a&&-1===p.indexOf(a)))throw Error("SecurityError: Request method not allowed");k={method:a,url:b.toString(),async:"boolean"!=typeof c||c,user:d||null,password:e||null},u(this.OPENED)},this.setDisableHeaderCheck=function(a){l=a},this.setRequestHeader=function(a,b){if(this.readyState!=this.OPENED)throw Error("INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN");if(!l&&(!a||-1!==o.indexOf(a.toLowerCase())))return console.warn('Refused to set unsafe header "'+a+'"'),!1;if(q)throw Error("INVALID_STATE_ERR: send flag is true");return n[a]=b,!0},this.getResponseHeader=function(a){return"string"==typeof a&&this.readyState>this.OPENED&&g.headers[a.toLowerCase()]&&!r?g.headers[a.toLowerCase()]:null},this.getAllResponseHeaders=function(){if(this.readyState<this.HEADERS_RECEIVED||r)return"";var a="";for(var b in g.headers)"set-cookie"!==b&&"set-cookie2"!==b&&(a+=b+": "+g.headers[b]+"\r\n");return a.substr(0,a.length-2)},this.getRequestHeader=function(a){return"string"==typeof a&&n[a]?n[a]:""},this.send=function(a){if(this.readyState!=this.OPENED)throw Error("INVALID_STATE_ERR: connection must be opened before send() is called");if(q)throw Error("INVALID_STATE_ERR: send has already been called");var l,m=!1,o=!1,p=e.parse(k.url);switch(p.protocol){case"https:":m=!0;case"http:":l=p.hostname;break;case"file:":o=!0;break;case void 0:case"":l="localhost";break;default:throw Error("Protocol not supported.")}if(o){if("GET"!==k.method)throw Error("XMLHttpRequest: Only GET method is supported");if(k.async)d.readFile(unescape(p.pathname),function(a,b){a?h.handleError(a,a.errno||-1):(h.status=200,h.responseText=b.toString("utf8"),h.response=b,u(h.DONE))});else try{this.response=d.readFileSync(unescape(p.pathname)),this.responseText=this.response.toString("utf8"),this.status=200,u(h.DONE)}catch(a){this.handleError(a,a.errno||-1)}return}var s=p.port||(m?443:80),t=p.pathname+(p.search?p.search:"");if(n.Host=l,m&&443===s||80===s||(n.Host+=":"+p.port),k.user){void 0===k.password&&(k.password="");var v=new Buffer(k.user+":"+k.password);n.Authorization="Basic "+v.toString("base64")}"GET"===k.method||"HEAD"===k.method?a=null:a?(n["Content-Length"]=Buffer.isBuffer(a)?a.length:Buffer.byteLength(a),Object.keys(n).some(function(a){return"content-type"===a.toLowerCase()})||(n["Content-Type"]="text/plain;charset=UTF-8")):"POST"===k.method&&(n["Content-Length"]=0);var w=b.agent||!1,x={host:l,port:s,path:t,method:k.method,headers:n,agent:w};if(m&&(x.pfx=b.pfx,x.key=b.key,x.passphrase=b.passphrase,x.cert=b.cert,x.ca=b.ca,x.ciphers=b.ciphers,x.rejectUnauthorized=!1!==b.rejectUnauthorized),r=!1,k.async){var y=m?j.request:i.request;q=!0,h.dispatchEvent("readystatechange");var z=function(a){if(302===(g=a).statusCode||303===g.statusCode||307===g.statusCode){k.url=g.headers.location;var d=e.parse(k.url);l=d.hostname;var f={hostname:d.hostname,port:d.port,path:d.path,method:303===g.statusCode?"GET":k.method,headers:n};m&&(f.pfx=b.pfx,f.key=b.key,f.passphrase=b.passphrase,f.cert=b.cert,f.ca=b.ca,f.ciphers=b.ciphers,f.rejectUnauthorized=!1!==b.rejectUnauthorized),(c=y(f,z).on("error",A)).end();return}u(h.HEADERS_RECEIVED),h.status=g.statusCode,g.on("data",function(a){if(a){var b=Buffer.from(a);h.response=Buffer.concat([h.response,b])}q&&u(h.LOADING)}),g.on("end",function(){q&&(q=!1,u(h.DONE),h.responseText=h.response.toString("utf8"))}),g.on("error",function(a){h.handleError(a)})},A=function(a){if(c.reusedSocket&&"ECONNRESET"===a.code)return y(x,z).on("error",A);h.handleError(a)};c=y(x,z).on("error",A),b.autoUnref&&c.on("socket",a=>{a.unref()}),a&&c.write(a),c.end(),h.dispatchEvent("loadstart")}else{var B=".node-xmlhttprequest-content-"+process.pid,C=".node-xmlhttprequest-sync-"+process.pid;d.writeFileSync(C,"","utf8");for(var D="var http = require('http'), https = require('https'), fs = require('fs');var doRequest = http"+(m?"s":"")+".request;var options = "+JSON.stringify(x)+";var responseText = '';var responseData = Buffer.alloc(0);var req = doRequest(options, function(response) {response.on('data', function(chunk) { var data = Buffer.from(chunk); responseText += data.toString('utf8'); responseData = Buffer.concat([responseData, data]);});response.on('end', function() {fs.writeFileSync('"+B+"', JSON.stringify({err: null, data: {statusCode: response.statusCode, headers: response.headers, text: responseText, data: responseData.toString('base64')}}), 'utf8');fs.unlinkSync('"+C+"');});response.on('error', function(error) {fs.writeFileSync('"+B+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+C+"');});}).on('error', function(error) {fs.writeFileSync('"+B+"', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('"+C+"');});"+(a?"req.write('"+JSON.stringify(a).slice(1,-1).replace(/'/g,"\\'")+"');":"")+"req.end();",E=f(process.argv[0],["-e",D]);d.existsSync(C););if(h.responseText=d.readFileSync(B,"utf8"),E.stdin.end(),d.unlinkSync(B),h.responseText.match(/^NODE-XMLHTTPREQUEST-ERROR:/)){var F=JSON.parse(h.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/,""));h.handleError(F,503)}else{h.status=h.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:([0-9]*),.*/,"$1");var G=JSON.parse(h.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:[0-9]*,(.*)/,"$1"));g={statusCode:h.status,headers:G.data.headers},h.responseText=G.data.text,h.response=Buffer.from(G.data.data,"base64"),u(h.DONE,!0)}}},this.handleError=function(a,b){this.status=b||0,this.statusText=a,this.responseText=a.stack,r=!0,u(this.DONE)},this.abort=function(){c&&(c.abort(),c=null),n=Object.assign({},m),this.responseText="",this.responseXML="",this.response=Buffer.alloc(0),r=s=!0,this.readyState!==this.UNSENT&&(this.readyState!==this.OPENED||q)&&this.readyState!==this.DONE&&(q=!1,u(this.DONE)),this.readyState=this.UNSENT},this.addEventListener=function(a,b){a in t||(t[a]=[]),t[a].push(b)},this.removeEventListener=function(a,b){a in t&&(t[a]=t[a].filter(function(a){return a!==b}))},this.dispatchEvent=function(a){if("function"==typeof h["on"+a]&&(this.readyState===this.DONE&&k.async?setTimeout(function(){h["on"+a]()},0):h["on"+a]()),a in t)for(let b=0,c=t[a].length;b<c;b++)this.readyState===this.DONE?setTimeout(function(){t[a][b].call(h)},0):t[a][b].call(h)};var u=function(a){if(h.readyState!==a&&(h.readyState!==h.UNSENT||!s)&&(h.readyState=a,(k.async||h.readyState<h.OPENED||h.readyState===h.DONE)&&h.dispatchEvent("readystatechange"),h.readyState===h.DONE)){let a;a=s?"abort":r?"error":"load",h.dispatchEvent(a),h.dispatchEvent("loadend")}}}b.exports=g,g.XMLHttpRequest=g},84425,(a,b,c)=>{function d(a,b,c,d){return Math.round(a/c)+" "+d+(b>=1.5*c?"s":"")}b.exports=function(a,b){b=b||{};var c,e,f,g,h=typeof a;if("string"===h&&a.length>0){var i=a;if(!((i=String(i)).length>100)){var j=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(i);if(j){var k=parseFloat(j[1]);switch((j[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*k;case"weeks":case"week":case"w":return 6048e5*k;case"days":case"day":case"d":return 864e5*k;case"hours":case"hour":case"hrs":case"hr":case"h":return 36e5*k;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*k;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*k;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return k;default:break}}}return}if("number"===h&&isFinite(a)){return b.long?(e=Math.abs(c=a))>=864e5?d(c,e,864e5,"day"):e>=36e5?d(c,e,36e5,"hour"):e>=6e4?d(c,e,6e4,"minute"):e>=1e3?d(c,e,1e3,"second"):c+" ms":(g=Math.abs(f=a))>=864e5?Math.round(f/864e5)+"d":g>=36e5?Math.round(f/36e5)+"h":g>=6e4?Math.round(f/6e4)+"m":g>=1e3?Math.round(f/1e3)+"s":f+"ms"}throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))}},11017,(a,b,c)=>{b.exports=function(b){function c(a){let b,e,f,g=null;function h(...a){if(!h.enabled)return;let d=Number(new Date);h.diff=d-(b||d),h.prev=b,h.curr=d,b=d,a[0]=c.coerce(a[0]),"string"!=typeof a[0]&&a.unshift("%O");let e=0;a[0]=a[0].replace(/%([a-zA-Z%])/g,(b,d)=>{if("%%"===b)return"%";e++;let f=c.formatters[d];if("function"==typeof f){let c=a[e];b=f.call(h,c),a.splice(e,1),e--}return b}),c.formatArgs.call(h,a),(h.log||c.log).apply(h,a)}return h.namespace=a,h.useColors=c.useColors(),h.color=c.selectColor(a),h.extend=d,h.destroy=c.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==g?g:(e!==c.namespaces&&(e=c.namespaces,f=c.enabled(a)),f),set:a=>{g=a}}),"function"==typeof c.init&&c.init(h),h}function d(a,b){let d=c(this.namespace+(void 0===b?":":b)+a);return d.log=this.log,d}function e(a,b){let c=0,d=0,e=-1,f=0;for(;c<a.length;)if(d<b.length&&(b[d]===a[c]||"*"===b[d]))"*"===b[d]?(e=d,f=c):c++,d++;else{if(-1===e)return!1;d=e+1,c=++f}for(;d<b.length&&"*"===b[d];)d++;return d===b.length}return c.debug=c,c.default=c,c.coerce=function(a){return a instanceof Error?a.stack||a.message:a},c.disable=function(){let a=[...c.names,...c.skips.map(a=>"-"+a)].join(",");return c.enable(""),a},c.enable=function(a){for(let b of(c.save(a),c.namespaces=a,c.names=[],c.skips=[],("string"==typeof a?a:"").trim().replace(/\s+/g,",").split(",").filter(Boolean)))"-"===b[0]?c.skips.push(b.slice(1)):c.names.push(b)},c.enabled=function(a){for(let b of c.skips)if(e(a,b))return!1;for(let b of c.names)if(e(a,b))return!0;return!1},c.humanize=a.r(84425),c.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(b).forEach(a=>{c[a]=b[a]}),c.names=[],c.skips=[],c.formatters={},c.selectColor=function(a){let b=0;for(let c=0;c<a.length;c++)b=(b<<5)-b+a.charCodeAt(c)|0;return c.colors[Math.abs(b)%c.colors.length]},c.enable(c.load()),c}},70722,(a,b,c)=>{b.exports=a.x("tty",()=>require("tty"))},46786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},55858,(a,b,c)=>{"use strict";b.exports=(a,b=process.argv)=>{let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}},73083,(a,b,c)=>{"use strict";let d;a.r(46786);let e=a.r(70722),f=a.r(55858),{env:g}=process;function h(a){return 0!==a&&{level:a,hasBasic:!0,has256:a>=2,has16m:a>=3}}function i(a,b){if(0===d)return 0;if(f("color=16m")||f("color=full")||f("color=truecolor"))return 3;if(f("color=256"))return 2;if(a&&!b&&void 0===d)return 0;let c=d||0;if("dumb"===g.TERM)return c;if("CI"in g)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in g)||"codeship"===g.CI_NAME?1:c;if("TEAMCITY_VERSION"in g)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(g.TEAMCITY_VERSION);if("truecolor"===g.COLORTERM)return 3;if("TERM_PROGRAM"in g){let a=parseInt((g.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(g.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(g.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(g.TERM)||"COLORTERM"in g?1:c}f("no-color")||f("no-colors")||f("color=false")||f("color=never")?d=0:(f("color")||f("colors")||f("color=true")||f("color=always"))&&(d=1),"FORCE_COLOR"in g&&(d="true"===g.FORCE_COLOR?1:"false"===g.FORCE_COLOR?0:0===g.FORCE_COLOR.length?1:Math.min(parseInt(g.FORCE_COLOR,10),3)),b.exports={supportsColor:function(a){return h(i(a,a&&a.isTTY))},stdout:h(i(!0,e.isatty(1))),stderr:h(i(!0,e.isatty(2)))}},81454,(a,b,c)=>{let d=a.r(70722),e=a.r(24361);c.init=function(a){a.inspectOpts={};let b=Object.keys(c.inspectOpts);for(let d=0;d<b.length;d++)a.inspectOpts[b[d]]=c.inspectOpts[b[d]]},c.log=function(...a){return process.stderr.write(e.formatWithOptions(c.inspectOpts,...a)+"\n")},c.formatArgs=function(a){let{namespace:d,useColors:e}=this;if(e){let c=this.color,e="\x1b[3"+(c<8?c:"8;5;"+c),f=` ${e};1m${d} \u001B[0m`;a[0]=f+a[0].split("\n").join("\n"+f),a.push(e+"m+"+b.exports.humanize(this.diff)+"\x1b[0m")}else a[0]=(c.inspectOpts.hideDate?"":new Date().toISOString()+" ")+d+" "+a[0]},c.save=function(a){a?process.env.DEBUG=a:delete process.env.DEBUG},c.load=function(){return process.env.DEBUG},c.useColors=function(){return"colors"in c.inspectOpts?!!c.inspectOpts.colors:d.isatty(process.stderr.fd)},c.destroy=e.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),c.colors=[6,2,3,4,5,1];try{let b=a.r(73083);b&&(b.stderr||b).level>=2&&(c.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(a){}c.inspectOpts=Object.keys(process.env).filter(a=>/^debug_/i.test(a)).reduce((a,b)=>{let c=b.substring(6).toLowerCase().replace(/_([a-z])/g,(a,b)=>b.toUpperCase()),d=process.env[b];return d=!!/^(yes|on|true|enabled)$/i.test(d)||!/^(no|off|false|disabled)$/i.test(d)&&("null"===d?null:Number(d)),a[c]=d,a},{}),b.exports=a.r(11017)(c);let{formatters:f}=b.exports;f.o=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts).split("\n").map(a=>a.trim()).join(" ")},f.O=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts)}},47522,(a,b,c)=>{let d;c.formatArgs=function(a){if(a[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+a[0]+(this.useColors?"%c ":" ")+"+"+b.exports.humanize(this.diff),!this.useColors)return;let c="color: "+this.color;a.splice(1,0,c,"color: inherit");let d=0,e=0;a[0].replace(/%[a-zA-Z%]/g,a=>{"%%"!==a&&(d++,"%c"===a&&(e=d))}),a.splice(e,0,c)},c.save=function(a){try{a?c.storage.setItem("debug",a):c.storage.removeItem("debug")}catch(a){}},c.load=function(){let a;try{a=c.storage.getItem("debug")||c.storage.getItem("DEBUG")}catch(a){}return!a&&"u">typeof process&&"env"in process&&(a=process.env.DEBUG),a},c.useColors=function(){let a;return!("u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("u">typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"u">typeof navigator&&navigator.userAgent&&(a=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(a[1],10)>=31||"u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},c.storage=function(){try{return localStorage}catch(a){}}(),d=!1,c.destroy=()=>{d||(d=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))},c.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],c.log=console.debug||console.log||(()=>{}),b.exports=a.r(11017)(c);let{formatters:e}=b.exports;e.j=function(a){try{return JSON.stringify(a)}catch(a){return"[UnexpectedJSONParseError]: "+a.message}}},35290,(a,b,c)=>{"u"<typeof process||"renderer"===process.type||process.__nwjs?b.exports=a.r(47522):b.exports=a.r(81454)},27699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},4446,(a,b,c)=>{b.exports=a.x("net",()=>require("net"))},55004,(a,b,c)=>{b.exports=a.x("tls",()=>require("tls"))},54799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},88947,(a,b,c)=>{b.exports=a.x("stream",()=>require("stream"))},6461,(a,b,c)=>{b.exports=a.x("zlib",()=>require("zlib"))},65514,(a,b,c)=>{"use strict";let d=["nodebuffer","arraybuffer","fragments"],e="u">typeof Blob;e&&d.push("blob"),b.exports={BINARY_TYPES:d,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:e,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}},40352,(a,b,c)=>{"use strict";let{EMPTY_BUFFER:d}=a.r(65514),e=Buffer[Symbol.species];function f(a,b,c,d,e){for(let f=0;f<e;f++)c[d+f]=a[f]^b[3&f]}function g(a,b){for(let c=0;c<a.length;c++)a[c]^=b[3&c]}function h(a){let b;return(h.readOnly=!0,Buffer.isBuffer(a))?a:(a instanceof ArrayBuffer?b=new e(a):ArrayBuffer.isView(a)?b=new e(a.buffer,a.byteOffset,a.byteLength):(b=Buffer.from(a),h.readOnly=!1),b)}if(b.exports={concat:function(a,b){if(0===a.length)return d;if(1===a.length)return a[0];let c=Buffer.allocUnsafe(b),f=0;for(let b=0;b<a.length;b++){let d=a[b];c.set(d,f),f+=d.length}return f<b?new e(c.buffer,c.byteOffset,f):c},mask:f,toArrayBuffer:function(a){return a.length===a.buffer.byteLength?a.buffer:a.buffer.slice(a.byteOffset,a.byteOffset+a.length)},toBuffer:h,unmask:g},!process.env.WS_NO_BUFFER_UTIL)try{let a=(()=>{let a=Error("Cannot find module 'bufferutil'");throw a.code="MODULE_NOT_FOUND",a})();b.exports.mask=function(b,c,d,e,g){g<48?f(b,c,d,e,g):a.mask(b,c,d,e,g)},b.exports.unmask=function(b,c){b.length<32?g(b,c):a.unmask(b,c)}}catch(a){}},29110,(a,b,c)=>{"use strict";let d=Symbol("kDone"),e=Symbol("kRun");b.exports=class{constructor(a){this[d]=()=>{this.pending--,this[e]()},this.concurrency=a||1/0,this.jobs=[],this.pending=0}add(a){this.jobs.push(a),this[e]()}[e](){if(this.pending!==this.concurrency&&this.jobs.length){let a=this.jobs.shift();this.pending++,a(this[d])}}}},19199,(a,b,c)=>{"use strict";let d,e=a.r(6461),f=a.r(40352),g=a.r(29110),{kStatusCode:h}=a.r(65514),i=Buffer[Symbol.species],j=Buffer.from([0,0,255,255]),k=Symbol("permessage-deflate"),l=Symbol("total-length"),m=Symbol("callback"),n=Symbol("buffers"),o=Symbol("error");function p(a){this[n].push(a),this[l]+=a.length}function q(a){(this[l]+=a.length,this[k]._maxPayload<1||this[l]<=this[k]._maxPayload)?this[n].push(a):(this[o]=RangeError("Max payload size exceeded"),this[o].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[o][h]=1009,this.removeListener("data",q),this.reset())}function r(a){(this[k]._inflate=null,this[o])?this[m](this[o]):(a[h]=1007,this[m](a))}b.exports=class{constructor(a){this._options=a||{},this._threshold=void 0!==this._options.threshold?this._options.threshold:1024,this._maxPayload=0|this._options.maxPayload,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,d||(d=new g(void 0!==this._options.concurrencyLimit?this._options.concurrencyLimit:10))}static get extensionName(){return"permessage-deflate"}offer(){let a={};return this._options.serverNoContextTakeover&&(a.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(a.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(a.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?a.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(a.client_max_window_bits=!0),a}accept(a){return a=this.normalizeParams(a),this.params=this._isServer?this.acceptAsServer(a):this.acceptAsClient(a),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let a=this._deflate[m];this._deflate.close(),this._deflate=null,a&&a(Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(a){let b=this._options,c=a.find(a=>(!1!==b.serverNoContextTakeover||!a.server_no_context_takeover)&&(!a.server_max_window_bits||!1!==b.serverMaxWindowBits&&("number"!=typeof b.serverMaxWindowBits||!(b.serverMaxWindowBits>a.server_max_window_bits)))&&("number"!=typeof b.clientMaxWindowBits||!!a.client_max_window_bits));if(!c)throw Error("None of the extension offers can be accepted");return b.serverNoContextTakeover&&(c.server_no_context_takeover=!0),b.clientNoContextTakeover&&(c.client_no_context_takeover=!0),"number"==typeof b.serverMaxWindowBits&&(c.server_max_window_bits=b.serverMaxWindowBits),"number"==typeof b.clientMaxWindowBits?c.client_max_window_bits=b.clientMaxWindowBits:(!0===c.client_max_window_bits||!1===b.clientMaxWindowBits)&&delete c.client_max_window_bits,c}acceptAsClient(a){let b=a[0];if(!1===this._options.clientNoContextTakeover&&b.client_no_context_takeover)throw Error('Unexpected parameter "client_no_context_takeover"');if(b.client_max_window_bits){if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&b.client_max_window_bits>this._options.clientMaxWindowBits)throw Error('Unexpected or invalid parameter "client_max_window_bits"')}else"number"==typeof this._options.clientMaxWindowBits&&(b.client_max_window_bits=this._options.clientMaxWindowBits);return b}normalizeParams(a){return a.forEach(a=>{Object.keys(a).forEach(b=>{let c=a[b];if(c.length>1)throw Error(`Parameter "${b}" must have only a single value`);if(c=c[0],"client_max_window_bits"===b){if(!0!==c){let a=+c;if(!Number.isInteger(a)||a<8||a>15)throw TypeError(`Invalid value for parameter "${b}": ${c}`);c=a}else if(!this._isServer)throw TypeError(`Invalid value for parameter "${b}": ${c}`)}else if("server_max_window_bits"===b){let a=+c;if(!Number.isInteger(a)||a<8||a>15)throw TypeError(`Invalid value for parameter "${b}": ${c}`);c=a}else if("client_no_context_takeover"===b||"server_no_context_takeover"===b){if(!0!==c)throw TypeError(`Invalid value for parameter "${b}": ${c}`)}else throw Error(`Unknown parameter "${b}"`);a[b]=c})}),a}decompress(a,b,c){d.add(d=>{this._decompress(a,b,(a,b)=>{d(),c(a,b)})})}compress(a,b,c){d.add(d=>{this._compress(a,b,(a,b)=>{d(),c(a,b)})})}_decompress(a,b,c){let d=this._isServer?"client":"server";if(!this._inflate){let a=`${d}_max_window_bits`,b="number"!=typeof this.params[a]?e.Z_DEFAULT_WINDOWBITS:this.params[a];this._inflate=e.createInflateRaw({...this._options.zlibInflateOptions,windowBits:b}),this._inflate[k]=this,this._inflate[l]=0,this._inflate[n]=[],this._inflate.on("error",r),this._inflate.on("data",q)}this._inflate[m]=c,this._inflate.write(a),b&&this._inflate.write(j),this._inflate.flush(()=>{let a=this._inflate[o];if(a){this._inflate.close(),this._inflate=null,c(a);return}let e=f.concat(this._inflate[n],this._inflate[l]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[l]=0,this._inflate[n]=[],b&&this.params[`${d}_no_context_takeover`]&&this._inflate.reset()),c(null,e)})}_compress(a,b,c){let d=this._isServer?"server":"client";if(!this._deflate){let a=`${d}_max_window_bits`,b="number"!=typeof this.params[a]?e.Z_DEFAULT_WINDOWBITS:this.params[a];this._deflate=e.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:b}),this._deflate[l]=0,this._deflate[n]=[],this._deflate.on("data",p)}this._deflate[m]=c,this._deflate.write(a),this._deflate.flush(e.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let a=f.concat(this._deflate[n],this._deflate[l]);b&&(a=new i(a.buffer,a.byteOffset,a.length-4)),this._deflate[m]=null,this._deflate[l]=0,this._deflate[n]=[],b&&this.params[`${d}_no_context_takeover`]&&this._deflate.reset(),c(null,a)})}}},874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},55572,(a,b,c)=>{"use strict";let{isUtf8:d}=a.r(874),{hasBlob:e}=a.r(65514);function f(a){let b=a.length,c=0;for(;c<b;)if((128&a[c])==0)c++;else if((224&a[c])==192){if(c+1===b||(192&a[c+1])!=128||(254&a[c])==192)return!1;c+=2}else if((240&a[c])==224){if(c+2>=b||(192&a[c+1])!=128||(192&a[c+2])!=128||224===a[c]&&(224&a[c+1])==128||237===a[c]&&(224&a[c+1])==160)return!1;c+=3}else{if((248&a[c])!=240||c+3>=b||(192&a[c+1])!=128||(192&a[c+2])!=128||(192&a[c+3])!=128||240===a[c]&&(240&a[c+1])==128||244===a[c]&&a[c+1]>143||a[c]>244)return!1;c+=4}return!0}if(b.exports={isBlob:function(a){return e&&"object"==typeof a&&"function"==typeof a.arrayBuffer&&"string"==typeof a.type&&"function"==typeof a.stream&&("Blob"===a[Symbol.toStringTag]||"File"===a[Symbol.toStringTag])},isValidStatusCode:function(a){return a>=1e3&&a<=1014&&1004!==a&&1005!==a&&1006!==a||a>=3e3&&a<=4999},isValidUTF8:f,tokenChars:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0]},d)b.exports.isValidUTF8=function(a){return a.length<24?f(a):d(a)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let a=(()=>{let a=Error("Cannot find module 'utf-8-validate'");throw a.code="MODULE_NOT_FOUND",a})();b.exports.isValidUTF8=function(b){return b.length<32?f(b):a(b)}}catch(a){}},75091,(a,b,c)=>{"use strict";let{Writable:d}=a.r(88947),e=a.r(19199),{BINARY_TYPES:f,EMPTY_BUFFER:g,kStatusCode:h,kWebSocket:i}=a.r(65514),{concat:j,toArrayBuffer:k,unmask:l}=a.r(40352),{isValidStatusCode:m,isValidUTF8:n}=a.r(55572),o=Buffer[Symbol.species];b.exports=class extends d{constructor(a={}){super(),this._allowSynchronousEvents=void 0===a.allowSynchronousEvents||a.allowSynchronousEvents,this._binaryType=a.binaryType||f[0],this._extensions=a.extensions||{},this._isServer=!!a.isServer,this._maxBufferedChunks=0|a.maxBufferedChunks,this._maxFragments=0|a.maxFragments,this._maxPayload=0|a.maxPayload,this._skipUTF8Validation=!!a.skipUTF8Validation,this[i]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=0}_write(a,b,c){return 8===this._opcode&&0==this._state?c():this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks?void c(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS")):void(this._bufferedBytes+=a.length,this._buffers.push(a),this.startLoop(c))}consume(a){if(this._bufferedBytes-=a,a===this._buffers[0].length)return this._buffers.shift();if(a<this._buffers[0].length){let b=this._buffers[0];return this._buffers[0]=new o(b.buffer,b.byteOffset+a,b.length-a),new o(b.buffer,b.byteOffset,a)}let b=Buffer.allocUnsafe(a);do{let c=this._buffers[0],d=b.length-a;a>=c.length?b.set(this._buffers.shift(),d):(b.set(new Uint8Array(c.buffer,c.byteOffset,a),d),this._buffers[0]=new o(c.buffer,c.byteOffset+a,c.length-a)),a-=c.length}while(a>0)return b}startLoop(a){this._loop=!0;do switch(this._state){case 0:this.getInfo(a);break;case 1:this.getPayloadLength16(a);break;case 2:this.getPayloadLength64(a);break;case 3:this.getMask();break;case 4:this.getData(a);break;case 5:case 6:this._loop=!1;return}while(this._loop)this._errored||a()}getInfo(a){if(this._bufferedBytes<2){this._loop=!1;return}let b=this.consume(2);if((48&b[0])!=0)return void a(this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3"));let c=(64&b[0])==64;if(c&&!this._extensions[e.extensionName])return void a(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"));if(this._fin=(128&b[0])==128,this._opcode=15&b[0],this._payloadLength=127&b[1],0===this._opcode){if(c)return void a(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"));if(!this._fragmented)return void a(this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE"));this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented)return void a(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"));this._compressed=c}else{if(!(this._opcode>7)||!(this._opcode<11))return void a(this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE"));if(!this._fin)return void a(this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN"));if(c)return void a(this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1"));if(this._payloadLength>125||8===this._opcode&&1===this._payloadLength)return void a(this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH"))}if(this._fin||this._fragmented||(this._fragmented=this._opcode),this._masked=(128&b[1])==128,this._isServer){if(!this._masked)return void a(this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK"))}else if(this._masked)return void a(this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK"));126===this._payloadLength?this._state=1:127===this._payloadLength?this._state=2:this.haveLength(a)}getPayloadLength16(a){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(a)}getPayloadLength64(a){if(this._bufferedBytes<8){this._loop=!1;return}let b=this.consume(8),c=b.readUInt32BE(0);c>2097151?a(this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH")):(this._payloadLength=0x100000000*c+b.readUInt32BE(4),this.haveLength(a))}haveLength(a){this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)?a(this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH")):this._masked?this._state=3:this._state=4}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=4}getData(a){let b=g;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}b=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!=0&&l(b,this._mask)}if(this._opcode>7)return void this.controlMessage(b,a);if(this._compressed){this._state=5,this.decompress(b,a);return}if(b.length){if(this._maxFragments>0&&this._fragments.length>=this._maxFragments)return void a(this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));this._messageLength=this._totalPayloadLength,this._fragments.push(b)}this.dataMessage(a)}decompress(a,b){this._extensions[e.extensionName].decompress(a,this._fin,(a,c)=>{if(a)return b(a);if(c.length){if(this._messageLength+=c.length,this._messageLength>this._maxPayload&&this._maxPayload>0)return void b(this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"));if(this._maxFragments>0&&this._fragments.length>=this._maxFragments)return void b(this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));this._fragments.push(c)}this.dataMessage(b),0===this._state&&this.startLoop(b)})}dataMessage(a){if(!this._fin){this._state=0;return}let b=this._messageLength,c=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],2===this._opcode){let d;d="nodebuffer"===this._binaryType?j(c,b):"arraybuffer"===this._binaryType?k(j(c,b)):"blob"===this._binaryType?new Blob(c):c,this._allowSynchronousEvents?(this.emit("message",d,!0),this._state=0):(this._state=6,setImmediate(()=>{this.emit("message",d,!0),this._state=0,this.startLoop(a)}))}else{let d=j(c,b);if(!this._skipUTF8Validation&&!n(d))return void a(this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8"));5===this._state||this._allowSynchronousEvents?(this.emit("message",d,!1),this._state=0):(this._state=6,setImmediate(()=>{this.emit("message",d,!1),this._state=0,this.startLoop(a)}))}}controlMessage(a,b){if(8===this._opcode){if(0===a.length)this._loop=!1,this.emit("conclude",1005,g),this.end();else{let c=a.readUInt16BE(0);if(!m(c))return void b(this.createError(RangeError,`invalid status code ${c}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE"));let d=new o(a.buffer,a.byteOffset+2,a.length-2);if(!this._skipUTF8Validation&&!n(d))return void b(this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8"));this._loop=!1,this.emit("conclude",c,d),this.end()}this._state=0;return}this._allowSynchronousEvents?(this.emit(9===this._opcode?"ping":"pong",a),this._state=0):(this._state=6,setImmediate(()=>{this.emit(9===this._opcode?"ping":"pong",a),this._state=0,this.startLoop(b)}))}createError(a,b,c,d,e){this._loop=!1,this._errored=!0;let f=new a(c?`Invalid WebSocket frame: ${b}`:b);return Error.captureStackTrace(f,this.createError),f.code=e,f[h]=d,f}}},10697,(a,b,c)=>{"use strict";let d,{Duplex:e}=a.r(88947),{randomFillSync:f}=a.r(54799),{types:{isUint8Array:g}}=a.r(24361),h=a.r(19199),{EMPTY_BUFFER:i,kWebSocket:j,NOOP:k}=a.r(65514),{isBlob:l,isValidStatusCode:m}=a.r(55572),{mask:n,toBuffer:o}=a.r(40352),p=Symbol("kByteLength"),q=Buffer.alloc(4),r=8192;class s{constructor(a,b,c){this._extensions=b||{},c&&(this._generateMask=c,this._maskBuffer=Buffer.alloc(4)),this._socket=a,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=0,this.onerror=k,this[j]=void 0}static frame(a,b){let c,e,g=!1,h=2,i=!1;b.mask&&(c=b.maskBuffer||q,b.generateMask?b.generateMask(c):(8192===r&&(void 0===d&&(d=Buffer.alloc(8192)),f(d,0,8192),r=0),c[0]=d[r++],c[1]=d[r++],c[2]=d[r++],c[3]=d[r++]),i=(c[0]|c[1]|c[2]|c[3])==0,h=6),"string"==typeof a?e=(!b.mask||i)&&void 0!==b[p]?b[p]:(a=Buffer.from(a)).length:(e=a.length,g=b.mask&&b.readOnly&&!i);let j=e;e>=65536?(h+=8,j=127):e>125&&(h+=2,j=126);let k=Buffer.allocUnsafe(g?e+h:h);return(k[0]=b.fin?128|b.opcode:b.opcode,b.rsv1&&(k[0]|=64),k[1]=j,126===j?k.writeUInt16BE(e,2):127===j&&(k[2]=k[3]=0,k.writeUIntBE(e,4,6)),b.mask)?(k[1]|=128,k[h-4]=c[0],k[h-3]=c[1],k[h-2]=c[2],k[h-1]=c[3],i)?[k,a]:g?(n(a,c,k,h,e),[k]):(n(a,c,a,0,e),[k,a]):[k,a]}close(a,b,c,d){let e;if(void 0===a)e=i;else if("number"==typeof a&&m(a))if(void 0!==b&&b.length){let c=Buffer.byteLength(b);if(c>123)throw RangeError("The message must not be greater than 123 bytes");if((e=Buffer.allocUnsafe(2+c)).writeUInt16BE(a,0),"string"==typeof b)e.write(b,2);else if(g(b))e.set(b,2);else throw TypeError("Second argument must be a string or a Uint8Array")}else(e=Buffer.allocUnsafe(2)).writeUInt16BE(a,0);else throw TypeError("First argument must be a valid error code number");let f={[p]:e.length,fin:!0,generateMask:this._generateMask,mask:c,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};0!==this._state?this.enqueue([this.dispatch,e,!1,f,d]):this.sendFrame(s.frame(e,f),d)}ping(a,b,c){let d,e;if("string"==typeof a?(d=Buffer.byteLength(a),e=!1):l(a)?(d=a.size,e=!1):(d=(a=o(a)).length,e=o.readOnly),d>125)throw RangeError("The data size must not be greater than 125 bytes");let f={[p]:d,fin:!0,generateMask:this._generateMask,mask:b,maskBuffer:this._maskBuffer,opcode:9,readOnly:e,rsv1:!1};l(a)?0!==this._state?this.enqueue([this.getBlobData,a,!1,f,c]):this.getBlobData(a,!1,f,c):0!==this._state?this.enqueue([this.dispatch,a,!1,f,c]):this.sendFrame(s.frame(a,f),c)}pong(a,b,c){let d,e;if("string"==typeof a?(d=Buffer.byteLength(a),e=!1):l(a)?(d=a.size,e=!1):(d=(a=o(a)).length,e=o.readOnly),d>125)throw RangeError("The data size must not be greater than 125 bytes");let f={[p]:d,fin:!0,generateMask:this._generateMask,mask:b,maskBuffer:this._maskBuffer,opcode:10,readOnly:e,rsv1:!1};l(a)?0!==this._state?this.enqueue([this.getBlobData,a,!1,f,c]):this.getBlobData(a,!1,f,c):0!==this._state?this.enqueue([this.dispatch,a,!1,f,c]):this.sendFrame(s.frame(a,f),c)}send(a,b,c){let d,e,f=this._extensions[h.extensionName],g=b.binary?2:1,i=b.compress;"string"==typeof a?(d=Buffer.byteLength(a),e=!1):l(a)?(d=a.size,e=!1):(d=(a=o(a)).length,e=o.readOnly),this._firstFragment?(this._firstFragment=!1,i&&f&&f.params[f._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(i=d>=f._threshold),this._compress=i):(i=!1,g=0),b.fin&&(this._firstFragment=!0);let j={[p]:d,fin:b.fin,generateMask:this._generateMask,mask:b.mask,maskBuffer:this._maskBuffer,opcode:g,readOnly:e,rsv1:i};l(a)?0!==this._state?this.enqueue([this.getBlobData,a,this._compress,j,c]):this.getBlobData(a,this._compress,j,c):0!==this._state?this.enqueue([this.dispatch,a,this._compress,j,c]):this.dispatch(a,this._compress,j,c)}getBlobData(a,b,c,d){this._bufferedBytes+=c[p],this._state=2,a.arrayBuffer().then(a=>{if(this._socket.destroyed){let a=Error("The socket was closed while the blob was being read");process.nextTick(t,this,a,d);return}this._bufferedBytes-=c[p];let e=o(a);b?this.dispatch(e,b,c,d):(this._state=0,this.sendFrame(s.frame(e,c),d),this.dequeue())}).catch(a=>{process.nextTick(u,this,a,d)})}dispatch(a,b,c,d){if(!b)return void this.sendFrame(s.frame(a,c),d);let e=this._extensions[h.extensionName];this._bufferedBytes+=c[p],this._state=1,e.compress(a,c.fin,(a,b)=>{this._socket.destroyed?t(this,Error("The socket was closed while data was being compressed"),d):(this._bufferedBytes-=c[p],this._state=0,c.readOnly=!1,this.sendFrame(s.frame(b,c),d),this.dequeue())})}dequeue(){for(;0===this._state&&this._queue.length;){let a=this._queue.shift();this._bufferedBytes-=a[3][p],Reflect.apply(a[0],this,a.slice(1))}}enqueue(a){this._bufferedBytes+=a[3][p],this._queue.push(a)}sendFrame(a,b){2===a.length?(this._socket.cork(),this._socket.write(a[0]),this._socket.write(a[1],b),this._socket.uncork()):this._socket.write(a[0],b)}}function t(a,b,c){"function"==typeof c&&c(b);for(let c=0;c<a._queue.length;c++){let d=a._queue[c],e=d[d.length-1];"function"==typeof e&&e(b)}}function u(a,b,c){t(a,b,c),a.onerror(b)}b.exports=s},4049,(a,b,c)=>{"use strict";let{kForOnEventAttribute:d,kListener:e}=a.r(65514),f=Symbol("kCode"),g=Symbol("kData"),h=Symbol("kError"),i=Symbol("kMessage"),j=Symbol("kReason"),k=Symbol("kTarget"),l=Symbol("kType"),m=Symbol("kWasClean");class n{constructor(a){this[k]=null,this[l]=a}get target(){return this[k]}get type(){return this[l]}}Object.defineProperty(n.prototype,"target",{enumerable:!0}),Object.defineProperty(n.prototype,"type",{enumerable:!0});class o extends n{constructor(a,b={}){super(a),this[f]=void 0===b.code?0:b.code,this[j]=void 0===b.reason?"":b.reason,this[m]=void 0!==b.wasClean&&b.wasClean}get code(){return this[f]}get reason(){return this[j]}get wasClean(){return this[m]}}Object.defineProperty(o.prototype,"code",{enumerable:!0}),Object.defineProperty(o.prototype,"reason",{enumerable:!0}),Object.defineProperty(o.prototype,"wasClean",{enumerable:!0});class p extends n{constructor(a,b={}){super(a),this[h]=void 0===b.error?null:b.error,this[i]=void 0===b.message?"":b.message}get error(){return this[h]}get message(){return this[i]}}Object.defineProperty(p.prototype,"error",{enumerable:!0}),Object.defineProperty(p.prototype,"message",{enumerable:!0});class q extends n{constructor(a,b={}){super(a),this[g]=void 0===b.data?null:b.data}get data(){return this[g]}}function r(a,b,c){"object"==typeof a&&a.handleEvent?a.handleEvent.call(a,c):a.call(b,c)}Object.defineProperty(q.prototype,"data",{enumerable:!0}),b.exports={CloseEvent:o,ErrorEvent:p,Event:n,EventTarget:{addEventListener(a,b,c={}){let f;for(let f of this.listeners(a))if(!c[d]&&f[e]===b&&!f[d])return;if("message"===a)f=function(a,c){let d=new q("message",{data:c?a:a.toString()});d[k]=this,r(b,this,d)};else if("close"===a)f=function(a,c){let d=new o("close",{code:a,reason:c.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});d[k]=this,r(b,this,d)};else if("error"===a)f=function(a){let c=new p("error",{error:a,message:a.message});c[k]=this,r(b,this,c)};else{if("open"!==a)return;f=function(){let a=new n("open");a[k]=this,r(b,this,a)}}f[d]=!!c[d],f[e]=b,c.once?this.once(a,f):this.on(a,f)},removeEventListener(a,b){for(let c of this.listeners(a))if(c[e]===b&&!c[d]){this.removeListener(a,c);break}}},MessageEvent:q}},20529,(a,b,c)=>{"use strict";let{tokenChars:d}=a.r(55572);function e(a,b,c){void 0===a[b]?a[b]=[c]:a[b].push(c)}b.exports={format:function(a){return Object.keys(a).map(b=>{let c=a[b];return Array.isArray(c)||(c=[c]),c.map(a=>[b].concat(Object.keys(a).map(b=>{let c=a[b];return Array.isArray(c)||(c=[c]),c.map(a=>!0===a?b:`${b}=${a}`).join("; ")})).join("; ")).join(", ")}).join(", ")},parse:function(a){let b,c,f=Object.create(null),g=Object.create(null),h=!1,i=!1,j=!1,k=-1,l=-1,m=-1,n=0;for(;n<a.length;n++)if(l=a.charCodeAt(n),void 0===b)if(-1===m&&1===d[l])-1===k&&(k=n);else if(0!==n&&(32===l||9===l))-1===m&&-1!==k&&(m=n);else if(59===l||44===l){if(-1===k)throw SyntaxError(`Unexpected character at index ${n}`);-1===m&&(m=n);let c=a.slice(k,m);44===l?(e(f,c,g),g=Object.create(null)):b=c,k=m=-1}else throw SyntaxError(`Unexpected character at index ${n}`);else if(void 0===c)if(-1===m&&1===d[l])-1===k&&(k=n);else if(32===l||9===l)-1===m&&-1!==k&&(m=n);else if(59===l||44===l){if(-1===k)throw SyntaxError(`Unexpected character at index ${n}`);-1===m&&(m=n),e(g,a.slice(k,m),!0),44===l&&(e(f,b,g),g=Object.create(null),b=void 0),k=m=-1}else if(61===l&&-1!==k&&-1===m)c=a.slice(k,n),k=m=-1;else throw SyntaxError(`Unexpected character at index ${n}`);else if(i){if(1!==d[l])throw SyntaxError(`Unexpected character at index ${n}`);-1===k?k=n:h||(h=!0),i=!1}else if(j)if(1===d[l])-1===k&&(k=n);else if(34===l&&-1!==k)j=!1,m=n;else if(92===l)i=!0;else throw SyntaxError(`Unexpected character at index ${n}`);else if(34===l&&61===a.charCodeAt(n-1))j=!0;else if(-1===m&&1===d[l])-1===k&&(k=n);else if(-1!==k&&(32===l||9===l))-1===m&&(m=n);else if(59===l||44===l){if(-1===k)throw SyntaxError(`Unexpected character at index ${n}`);-1===m&&(m=n);let d=a.slice(k,m);h&&(d=d.replace(/\\/g,""),h=!1),e(g,c,d),44===l&&(e(f,b,g),g=Object.create(null),b=void 0),c=void 0,k=m=-1}else throw SyntaxError(`Unexpected character at index ${n}`);if(-1===k||j||32===l||9===l)throw SyntaxError("Unexpected end of input");-1===m&&(m=n);let o=a.slice(k,m);return void 0===b?e(f,o,g):(void 0===c?e(g,o,!0):h?e(g,c,o.replace(/\\/g,"")):e(g,c,o),e(f,b,g)),f}}},89877,(a,b,c)=>{"use strict";let d=a.r(27699),e=a.r(24836),f=a.r(21517),g=a.r(4446),h=a.r(55004),{randomBytes:i,createHash:j}=a.r(54799),{Duplex:k,Readable:l}=a.r(88947),{URL:m}=a.r(92509),n=a.r(19199),o=a.r(75091),p=a.r(10697),{isBlob:q}=a.r(55572),{BINARY_TYPES:r,CLOSE_TIMEOUT:s,EMPTY_BUFFER:t,GUID:u,kForOnEventAttribute:v,kListener:w,kStatusCode:x,kWebSocket:y,NOOP:z}=a.r(65514),{EventTarget:{addEventListener:A,removeEventListener:B}}=a.r(4049),{format:C,parse:D}=a.r(20529),{toBuffer:E}=a.r(40352),F=Symbol("kAborted"),G=[8,13],H=["CONNECTING","OPEN","CLOSING","CLOSED"],I=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;class J extends d{constructor(a,b,c){super(),this._binaryType=r[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=t,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=J.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null!==a?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,void 0===b?b=[]:Array.isArray(b)||("object"==typeof b&&null!==b?(c=b,b=[]):b=[b]),function a(b,c,d,g){let h,k,l,o,p={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:s,protocolVersion:G[1],maxBufferedChunks:1048576,maxFragments:131072,maxPayload:0x6400000,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...g,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(b._autoPong=p.autoPong,b._closeTimeout=p.closeTimeout,!G.includes(p.protocolVersion))throw RangeError(`Unsupported protocol version: ${p.protocolVersion} (supported versions: ${G.join(", ")})`);if(c instanceof m)h=c;else try{h=new m(c)}catch{throw SyntaxError(`Invalid URL: ${c}`)}"http:"===h.protocol?h.protocol="ws:":"https:"===h.protocol&&(h.protocol="wss:"),b._url=h.href;let q="wss:"===h.protocol,r="ws+unix:"===h.protocol;if("ws:"===h.protocol||q||r?r&&!h.pathname?k="The URL's pathname is empty":h.hash&&(k="The URL contains a fragment identifier"):k='The URL\'s protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"',k){let a=SyntaxError(k);if(0!==b._redirects)return void K(b,a);throw a}let t=q?443:80,v=i(16).toString("base64"),w=q?e.request:f.request,x=new Set;if(p.createConnection=p.createConnection||(q?M:L),p.defaultPort=p.defaultPort||t,p.port=h.port||t,p.host=h.hostname.startsWith("[")?h.hostname.slice(1,-1):h.hostname,p.headers={...p.headers,"Sec-WebSocket-Version":p.protocolVersion,"Sec-WebSocket-Key":v,Connection:"Upgrade",Upgrade:"websocket"},p.path=h.pathname+h.search,p.timeout=p.handshakeTimeout,p.perMessageDeflate&&(l=new n({...p.perMessageDeflate,isServer:!1,maxPayload:p.maxPayload}),p.headers["Sec-WebSocket-Extensions"]=C({[n.extensionName]:l.offer()})),d.length){for(let a of d){if("string"!=typeof a||!I.test(a)||x.has(a))throw SyntaxError("An invalid or duplicated subprotocol was specified");x.add(a)}p.headers["Sec-WebSocket-Protocol"]=d.join(",")}if(p.origin&&(p.protocolVersion<13?p.headers["Sec-WebSocket-Origin"]=p.origin:p.headers.Origin=p.origin),(h.username||h.password)&&(p.auth=`${h.username}:${h.password}`),r){let a=p.path.split(":");p.socketPath=a[0],p.path=a[1]}if(p.followRedirects){if(0===b._redirects){b._originalIpc=r,b._originalSecure=q,b._originalHostOrSocketPath=r?p.socketPath:h.host;let a=g&&g.headers;if(g={...g,headers:{}},a)for(let[b,c]of Object.entries(a))g.headers[b.toLowerCase()]=c}else if(0===b.listenerCount("redirect")){let a=r?!!b._originalIpc&&p.socketPath===b._originalHostOrSocketPath:!b._originalIpc&&h.host===b._originalHostOrSocketPath;a&&(!b._originalSecure||q)||(delete p.headers.authorization,delete p.headers.cookie,a||delete p.headers.host,p.auth=void 0)}p.auth&&!g.headers.authorization&&(g.headers.authorization="Basic "+Buffer.from(p.auth).toString("base64")),o=b._req=w(p),b._redirects&&b.emit("redirect",b.url,o)}else o=b._req=w(p);p.timeout&&o.on("timeout",()=>{N(b,o,"Opening handshake has timed out")}),o.on("error",a=>{null===o||o[F]||(o=b._req=null,K(b,a))}),o.on("response",e=>{let f=e.headers.location,h=e.statusCode;if(f&&p.followRedirects&&h>=300&&h<400){let e;if(++b._redirects>p.maxRedirects)return void N(b,o,"Maximum redirects exceeded");o.abort();try{e=new m(f,c)}catch(a){K(b,SyntaxError(`Invalid URL: ${f}`));return}a(b,e,d,g)}else b.emit("unexpected-response",o,e)||N(b,o,`Unexpected server response: ${e.statusCode}`)}),o.on("upgrade",(a,c,d)=>{let e;if(b.emit("upgrade",a),b.readyState!==J.CONNECTING)return;o=b._req=null;let f=a.headers.upgrade;if(void 0===f||"websocket"!==f.toLowerCase())return void N(b,c,"Invalid Upgrade header");let g=j("sha1").update(v+u).digest("base64");if(a.headers["sec-websocket-accept"]!==g)return void N(b,c,"Invalid Sec-WebSocket-Accept header");let h=a.headers["sec-websocket-protocol"];if(void 0!==h?x.size?x.has(h)||(e="Server sent an invalid subprotocol"):e="Server sent a subprotocol but none was requested":x.size&&(e="Server sent no subprotocol"),e)return void N(b,c,e);h&&(b._protocol=h);let i=a.headers["sec-websocket-extensions"];if(void 0!==i){let a;if(!l)return void N(b,c,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");try{a=D(i)}catch(a){N(b,c,"Invalid Sec-WebSocket-Extensions header");return}let d=Object.keys(a);if(1!==d.length||d[0]!==n.extensionName)return void N(b,c,"Server indicated an extension that was not requested");try{l.accept(a[n.extensionName])}catch(a){N(b,c,"Invalid Sec-WebSocket-Extensions header");return}b._extensions[n.extensionName]=l}b.setSocket(c,d,{allowSynchronousEvents:p.allowSynchronousEvents,generateMask:p.generateMask,maxBufferedChunks:p.maxBufferedChunks,maxFragments:p.maxFragments,maxPayload:p.maxPayload,skipUTF8Validation:p.skipUTF8Validation})}),p.finishRequest?p.finishRequest(o,b):o.end()}(this,a,b,c)):(this._autoPong=c.autoPong,this._closeTimeout=c.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(a){r.includes(a)&&(this._binaryType=a,this._receiver&&(this._receiver._binaryType=a))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(a,b,c){let d=new o({allowSynchronousEvents:c.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:c.maxBufferedChunks,maxFragments:c.maxFragments,maxPayload:c.maxPayload,skipUTF8Validation:c.skipUTF8Validation}),e=new p(a,this._extensions,c.generateMask);this._receiver=d,this._sender=e,this._socket=a,d[y]=this,e[y]=this,a[y]=this,d.on("conclude",P),d.on("drain",Q),d.on("error",R),d.on("message",T),d.on("ping",U),d.on("pong",V),e.onerror=X,a.setTimeout&&a.setTimeout(0),a.setNoDelay&&a.setNoDelay(),b.length>0&&a.unshift(b),a.on("close",Z),a.on("data",$),a.on("end",_),a.on("error",aa),this._readyState=J.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=J.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[n.extensionName]&&this._extensions[n.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=J.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(a,b){if(this.readyState!==J.CLOSED){if(this.readyState===J.CONNECTING)return void N(this,this._req,"WebSocket was closed before the connection was established");if(this.readyState===J.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=J.CLOSING,this._sender.close(a,b,!this._isServer,a=>{!a&&(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),Y(this)}}pause(){this.readyState!==J.CONNECTING&&this.readyState!==J.CLOSED&&(this._paused=!0,this._socket.pause())}ping(a,b,c){if(this.readyState===J.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");("function"==typeof a?(c=a,a=b=void 0):"function"==typeof b&&(c=b,b=void 0),"number"==typeof a&&(a=a.toString()),this.readyState!==J.OPEN)?O(this,a,c):(void 0===b&&(b=!this._isServer),this._sender.ping(a||t,b,c))}pong(a,b,c){if(this.readyState===J.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");("function"==typeof a?(c=a,a=b=void 0):"function"==typeof b&&(c=b,b=void 0),"number"==typeof a&&(a=a.toString()),this.readyState!==J.OPEN)?O(this,a,c):(void 0===b&&(b=!this._isServer),this._sender.pong(a||t,b,c))}resume(){this.readyState!==J.CONNECTING&&this.readyState!==J.CLOSED&&(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(a,b,c){if(this.readyState===J.CONNECTING)throw Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof b&&(c=b,b={}),"number"==typeof a&&(a=a.toString()),this.readyState!==J.OPEN)return void O(this,a,c);let d={binary:"string"!=typeof a,mask:!this._isServer,compress:!0,fin:!0,...b};this._extensions[n.extensionName]||(d.compress=!1),this._sender.send(a||t,d,c)}terminate(){if(this.readyState!==J.CLOSED){if(this.readyState===J.CONNECTING)return void N(this,this._req,"WebSocket was closed before the connection was established");this._socket&&(this._readyState=J.CLOSING,this._socket.destroy())}}}function K(a,b){a._readyState=J.CLOSING,a._errorEmitted=!0,a.emit("error",b),a.emitClose()}function L(a){return a.path=a.socketPath,g.connect(a)}function M(a){return a.path=void 0,a.servername||""===a.servername||(a.servername=g.isIP(a.host)?"":a.host),h.connect(a)}function N(a,b,c){a._readyState=J.CLOSING;let d=Error(c);Error.captureStackTrace(d,N),b.setHeader?(b[F]=!0,b.abort(),b.socket&&!b.socket.destroyed&&b.socket.destroy(),process.nextTick(K,a,d)):(b.destroy(d),b.once("error",a.emit.bind(a,"error")),b.once("close",a.emitClose.bind(a)))}function O(a,b,c){if(b){let c=q(b)?b.size:E(b).length;a._socket?a._sender._bufferedBytes+=c:a._bufferedAmount+=c}if(c){let b=Error(`WebSocket is not open: readyState ${a.readyState} (${H[a.readyState]})`);process.nextTick(c,b)}}function P(a,b){let c=this[y];c._closeFrameReceived=!0,c._closeMessage=b,c._closeCode=a,void 0!==c._socket[y]&&(c._socket.removeListener("data",$),process.nextTick(W,c._socket),1005===a?c.close():c.close(a,b))}function Q(){let a=this[y];a.isPaused||a._socket.resume()}function R(a){let b=this[y];void 0!==b._socket[y]&&(b._socket.removeListener("data",$),process.nextTick(W,b._socket),b.close(a[x])),b._errorEmitted||(b._errorEmitted=!0,b.emit("error",a))}function S(){this[y].emitClose()}function T(a,b){this[y].emit("message",a,b)}function U(a){let b=this[y];b._autoPong&&b.pong(a,!this._isServer,z),b.emit("ping",a)}function V(a){this[y].emit("pong",a)}function W(a){a.resume()}function X(a){let b=this[y];b.readyState!==J.CLOSED&&(b.readyState===J.OPEN&&(b._readyState=J.CLOSING,Y(b)),this._socket.end(),b._errorEmitted||(b._errorEmitted=!0,b.emit("error",a)))}function Y(a){a._closeTimer=setTimeout(a._socket.destroy.bind(a._socket),a._closeTimeout)}function Z(){let a=this[y];if(this.removeListener("close",Z),this.removeListener("data",$),this.removeListener("end",_),a._readyState=J.CLOSING,!this._readableState.endEmitted&&!a._closeFrameReceived&&!a._receiver._writableState.errorEmitted&&0!==this._readableState.length){let b=this.read(this._readableState.length);a._receiver.write(b)}a._receiver.end(),this[y]=void 0,clearTimeout(a._closeTimer),a._receiver._writableState.finished||a._receiver._writableState.errorEmitted?a.emitClose():(a._receiver.on("error",S),a._receiver.on("finish",S))}function $(a){this[y]._receiver.write(a)||this.pause()}function _(){let a=this[y];a._readyState=J.CLOSING,a._receiver.end(),this.end()}function aa(){let a=this[y];this.removeListener("error",aa),this.on("error",z),a&&(a._readyState=J.CLOSING,this.destroy())}Object.defineProperty(J,"CONNECTING",{enumerable:!0,value:H.indexOf("CONNECTING")}),Object.defineProperty(J.prototype,"CONNECTING",{enumerable:!0,value:H.indexOf("CONNECTING")}),Object.defineProperty(J,"OPEN",{enumerable:!0,value:H.indexOf("OPEN")}),Object.defineProperty(J.prototype,"OPEN",{enumerable:!0,value:H.indexOf("OPEN")}),Object.defineProperty(J,"CLOSING",{enumerable:!0,value:H.indexOf("CLOSING")}),Object.defineProperty(J.prototype,"CLOSING",{enumerable:!0,value:H.indexOf("CLOSING")}),Object.defineProperty(J,"CLOSED",{enumerable:!0,value:H.indexOf("CLOSED")}),Object.defineProperty(J.prototype,"CLOSED",{enumerable:!0,value:H.indexOf("CLOSED")}),["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(a=>{Object.defineProperty(J.prototype,a,{enumerable:!0})}),["open","error","close","message"].forEach(a=>{Object.defineProperty(J.prototype,`on${a}`,{enumerable:!0,get(){for(let b of this.listeners(a))if(b[v])return b[w];return null},set(b){for(let b of this.listeners(a))if(b[v]){this.removeListener(a,b);break}"function"==typeof b&&this.addEventListener(a,b,{[v]:!0})}})}),J.prototype.addEventListener=A,J.prototype.removeEventListener=B,b.exports=J},29e3,(a,b,c)=>{"use strict";a.r(89877);let{Duplex:d}=a.r(88947);function e(a){a.emit("close")}function f(){!this.destroyed&&this._writableState.finished&&this.destroy()}function g(a){this.removeListener("error",g),this.destroy(),0===this.listenerCount("error")&&this.emit("error",a)}b.exports=function(a,b){let c=!0,h=new d({...b,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return a.on("message",function(b,c){let d=!c&&h._readableState.objectMode?b.toString():b;h.push(d)||a.pause()}),a.once("error",function(a){h.destroyed||(c=!1,h.destroy(a))}),a.once("close",function(){h.destroyed||h.push(null)}),h._destroy=function(b,d){if(a.readyState===a.CLOSED){d(b),process.nextTick(e,h);return}let f=!1;a.once("error",function(a){f=!0,d(a)}),a.once("close",function(){f||d(b),process.nextTick(e,h)}),c&&a.terminate()},h._final=function(b){a.readyState===a.CONNECTING?a.once("open",function(){h._final(b)}):null!==a._socket&&(a._socket._writableState.finished?(b(),h._readableState.endEmitted&&h.destroy()):(a._socket.once("finish",function(){b()}),a.close()))},h._read=function(){a.isPaused&&a.resume()},h._write=function(b,c,d){a.readyState===a.CONNECTING?a.once("open",function(){h._write(b,c,d)}):a.send(b,d)},h.on("end",f),h.on("error",g),h}},71553,(a,b,c)=>{"use strict";let{tokenChars:d}=a.r(55572);b.exports={parse:function(a){let b=new Set,c=-1,e=-1,f=0;for(;f<a.length;f++){let g=a.charCodeAt(f);if(-1===e&&1===d[g])-1===c&&(c=f);else if(0!==f&&(32===g||9===g))-1===e&&-1!==c&&(e=f);else if(44===g){if(-1===c)throw SyntaxError(`Unexpected character at index ${f}`);-1===e&&(e=f);let d=a.slice(c,e);if(b.has(d))throw SyntaxError(`The "${d}" subprotocol is duplicated`);b.add(d),c=e=-1}else throw SyntaxError(`Unexpected character at index ${f}`)}if(-1===c||-1!==e)throw SyntaxError("Unexpected end of input");let g=a.slice(c,f);if(b.has(g))throw SyntaxError(`The "${g}" subprotocol is duplicated`);return b.add(g),b}}},95837,(a,b,c)=>{"use strict";let d=a.r(27699),e=a.r(21517),{Duplex:f}=a.r(88947),{createHash:g}=a.r(54799),h=a.r(20529),i=a.r(19199),j=a.r(71553),k=a.r(89877),{CLOSE_TIMEOUT:l,GUID:m,kWebSocket:n}=a.r(65514),o=/^[+/0-9A-Za-z]{22}==$/;function p(a){a._state=2,a.emit("close")}function q(){this.destroy()}function r(a,b,c,d){c=c||e.STATUS_CODES[b],d={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(c),...d},a.once("finish",a.destroy),a.end(`HTTP/1.1 ${b} ${e.STATUS_CODES[b]}\r
|
||
`+Object.keys(d).map(a=>`${a}: ${d[a]}`).join("\r\n")+"\r\n\r\n"+c)}function s(a,b,c,d,e,f){if(a.listenerCount("wsClientError")){let d=Error(e);Error.captureStackTrace(d,s),a.emit("wsClientError",d,c,b)}else r(c,d,e,f)}b.exports=class extends d{constructor(a,b){if(super(),null==(a={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:1048576,maxFragments:131072,maxPayload:0x6400000,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:l,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:k,...a}).port&&!a.server&&!a.noServer||null!=a.port&&(a.server||a.noServer)||a.server&&a.noServer)throw TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(null!=a.port?(this._server=e.createServer((a,b)=>{let c=e.STATUS_CODES[426];b.writeHead(426,{"Content-Length":c.length,"Content-Type":"text/plain"}),b.end(c)}),this._server.listen(a.port,a.host,a.backlog,b)):a.server&&(this._server=a.server),this._server){const a=this.emit.bind(this,"connection");this._removeListeners=function(a,b){for(let c of Object.keys(b))a.on(c,b[c]);return function(){for(let c of Object.keys(b))a.removeListener(c,b[c])}}(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(b,c,d)=>{this.handleUpgrade(b,c,d,a)}})}!0===a.perMessageDeflate&&(a.perMessageDeflate={}),a.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=a,this._state=0}address(){if(this.options.noServer)throw Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(a){if(2===this._state){a&&this.once("close",()=>{a(Error("The server is not running"))}),process.nextTick(p,this);return}if(a&&this.once("close",a),1!==this._state)if(this._state=1,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients&&this.clients.size?this._shouldEmitClose=!0:process.nextTick(p,this);else{let a=this._server;this._removeListeners(),this._removeListeners=this._server=null,a.close(()=>{p(this)})}}shouldHandle(a){if(this.options.path){let b=a.url.indexOf("?");if((-1!==b?a.url.slice(0,b):a.url)!==this.options.path)return!1}return!0}handleUpgrade(a,b,c,d){b.on("error",q);let e=a.headers["sec-websocket-key"],f=a.headers.upgrade,g=+a.headers["sec-websocket-version"];if("GET"!==a.method)return void s(this,a,b,405,"Invalid HTTP method");if(void 0===f||"websocket"!==f.toLowerCase())return void s(this,a,b,400,"Invalid Upgrade header");if(void 0===e||!o.test(e))return void s(this,a,b,400,"Missing or invalid Sec-WebSocket-Key header");if(13!==g&&8!==g)return void s(this,a,b,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});if(!this.shouldHandle(a))return void r(b,400);let k=a.headers["sec-websocket-protocol"],l=new Set;if(void 0!==k)try{l=j.parse(k)}catch(c){s(this,a,b,400,"Invalid Sec-WebSocket-Protocol header");return}let m=a.headers["sec-websocket-extensions"],n={};if(this.options.perMessageDeflate&&void 0!==m){let c=new i({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let a=h.parse(m);a[i.extensionName]&&(c.accept(a[i.extensionName]),n[i.extensionName]=c)}catch(c){s(this,a,b,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let f={origin:a.headers[`${8===g?"sec-websocket-origin":"origin"}`],secure:!!(a.socket.authorized||a.socket.encrypted),req:a};if(2===this.options.verifyClient.length)return void this.options.verifyClient(f,(f,g,h,i)=>{if(!f)return r(b,g||401,h,i);this.completeUpgrade(n,e,l,a,b,c,d)});if(!this.options.verifyClient(f))return r(b,401)}this.completeUpgrade(n,e,l,a,b,c,d)}completeUpgrade(a,b,c,d,e,f,j){if(!e.readable||!e.writable)return e.destroy();if(e[n])throw Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>0)return r(e,503);let k=g("sha1").update(b+m).digest("base64"),l=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${k}`],o=new this.options.WebSocket(null,void 0,this.options);if(c.size){let a=this.options.handleProtocols?this.options.handleProtocols(c,d):c.values().next().value;a&&(l.push(`Sec-WebSocket-Protocol: ${a}`),o._protocol=a)}if(a[i.extensionName]){let b=a[i.extensionName].params,c=h.format({[i.extensionName]:[b]});l.push(`Sec-WebSocket-Extensions: ${c}`),o._extensions=a}this.emit("headers",l,d),e.write(l.concat("\r\n").join("\r\n")),e.removeListener("error",q),o.setSocket(e,f,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxBufferedChunks:this.options.maxBufferedChunks,maxFragments:this.options.maxFragments,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(o),o.on("close",()=>{this.clients.delete(o),this._shouldEmitClose&&!this.clients.size&&process.nextTick(p,this)})),j(o,d)}}},40777,a=>{"use strict";let b,c,d,e,f,g,h,i,j,k,l,m,n;var o,p,q,r,s,t,u,v,w,x,y=a.i(87924),z=a.i(72131);function A({className:a}){let b=(0,z.useRef)(null);return(0,z.useEffect)(()=>{let a=b.current;if(!a)return;let c=a.getContext("2d");if(!c)return;let d=0,e=0,f=1,g=[],h=[],i=0,j=performance.now(),k=["#34d399","#fb7185","#fbbf24","#e879f9","#a5f3fc"];function l(){f=Math.min(2,window.devicePixelRatio||1),d=a.clientWidth,e=a.clientHeight,a.width=Math.floor(d*f),a.height=Math.floor(e*f),c.setTransform(f,0,0,f,0,0),g=Array.from({length:Math.min(220,Math.floor(d*e/7e3))},()=>({x:Math.random()*d,y:Math.random()*e,z:Math.random(),r:1.4*Math.random()+.2,tw:Math.random()*Math.PI*2,hue:.15>Math.random()?Math.floor(Math.random()*k.length):-1}))}l();let m=new ResizeObserver(l);return m.observe(a),i=requestAnimationFrame(function a(b){let f=b-j;j=b;let l=c.createRadialGradient(.5*d,.4*e,0,.5*d,.5*e,.8*Math.max(d,e));l.addColorStop(0,"#1a0f2e"),l.addColorStop(.45,"#0d0a1f"),l.addColorStop(1,"#050410"),c.fillStyle=l,c.fillRect(0,0,d,e),c.globalCompositeOperation="screen";for(let a=0;a<3;a++){let f=d*(.2+.3*a)+40*Math.sin(b/9e3+a),g=e*(.3+a%2*.4)+30*Math.cos(b/11e3+a),h=Math.max(80,Math.min(d,e)*(.25+.05*a)),i=c.createRadialGradient(f,g,0,f,g,h),j=0===a?"rgba(232,121,249,0.10)":1===a?"rgba(52,211,153,0.08)":"rgba(251,113,133,0.08)";i.addColorStop(0,j),i.addColorStop(1,"rgba(0,0,0,0)"),c.fillStyle=i,c.beginPath(),c.arc(f,g,h,0,2*Math.PI),c.fill()}for(let a of(c.globalCompositeOperation="source-over",g)){a.tw+=.02+.04*a.z;let b=.4+.35*Math.sin(a.tw)+.3*a.z;a.hue>=0?(c.fillStyle=k[a.hue],c.globalAlpha=Math.max(0,Math.min(1,b)),c.beginPath(),c.arc(a.x,a.y,1.6*a.r,0,2*Math.PI),c.fill(),c.globalAlpha=Math.max(0,Math.min(1,.25*b)),c.beginPath(),c.arc(a.x,a.y,4*a.r,0,2*Math.PI)):(c.fillStyle=`rgba(220,230,255,${Math.max(0,Math.min(1,b))})`,c.beginPath(),c.arc(a.x,a.y,a.r,0,2*Math.PI)),c.fill(),a.y+=.02+.05*a.z,a.y>e+2&&(a.y=-2,a.x=Math.random()*d)}c.globalAlpha=1,.04>Math.random()&&function(){if(h.length>60)return;let a=k[Math.floor(Math.random()*k.length)];h.push({x:Math.random()*d,y:e+10,vx:(Math.random()-.5)*.3,vy:-(.5*Math.random()+.2),life:0,maxLife:600+800*Math.random(),color:a})}(),c.globalCompositeOperation="screen";for(let a=h.length-1;a>=0;a--){let b=h[a];if(b.life+=f,b.x+=b.vx*f*.06,b.y+=b.vy*f*.06,b.life>b.maxLife||b.y<-10){h.splice(a,1);continue}let d=.7*Math.sin(b.life/b.maxLife*Math.PI);c.fillStyle=b.color,c.globalAlpha=d,c.beginPath(),c.arc(b.x,b.y,1.6,0,2*Math.PI),c.fill(),c.globalAlpha=.2*d,c.beginPath(),c.arc(b.x,b.y,5,0,2*Math.PI),c.fill()}c.globalAlpha=1,c.globalCompositeOperation="source-over",i=requestAnimationFrame(a)}),()=>{cancelAnimationFrame(i),m.disconnect()}},[]),(0,y.jsx)("canvas",{ref:b,className:a,"aria-hidden":"true"})}let B=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a))},g=b=a(d,e,f);return f},C=a=>{let b=a?B(a):B,c=a=>(function(a,b=a=>a){let c=z.default.useSyncExternalStore(a.subscribe,z.default.useCallback(()=>b(a.getState()),[a,b]),z.default.useCallback(()=>b(a.getInitialState()),[a,b]));return z.default.useDebugValue(c),c})(b,a);return Object.assign(c,b),c};function D(a,b){let c;try{c=a()}catch(a){return}return{getItem:a=>{var d;let e=a=>null===a?null:JSON.parse(a,null==b?void 0:b.reviver),f=null!=(d=c.getItem(a))?d:null;return f instanceof Promise?f.then(e):e(f)},setItem:(a,d)=>c.setItem(a,JSON.stringify(d,null==b?void 0:b.replacer)),removeItem:a=>c.removeItem(a)}}let E=a=>b=>{try{let c=a(b);if(c instanceof Promise)return c;return{then:a=>E(a)(c),catch(a){return this}}}catch(a){return{then(a){return this},catch:b=>E(b)(a)}}},F={crystals:0,insights:0,energy:5,contact:0,crystalsPerSec:.4,crystalCap:50,pulsePower:2,offlineEff:.5,insightMult:1,contactRateMult:1,autoDecode:!1,totalDecoded:0,ascensions:0,blueprints:[],pendingCrystals:[],activePuzzle:null,activeExpedition:null,expeditionLog:[],energyMax:8,lastEnergyTick:Date.now(),totalExpeditions:0,bossKills:0,lastExpeditionSummary:null,achievements:{},activeTide:null,lastTideEnd:0,starTidesEncountered:[],constellation:[],pendingPerkChoices:null,chronicle:[],runStart:{timestamp:Date.now(),techsUnlocked:0,expeditionsCompleted:0,bossKills:0,starTidesEncountered:[],crystalsDecoded:0},attributes:{exploration:0,wisdom:0,courage:0,inspiration:0},attributeProgress:{exploration:{exp:0,level:0},wisdom:{exp:0,level:0},courage:{exp:0,level:0},inspiration:{exp:0,level:0}},pendingAttrPoints:0,theme:"dark",soundOn:!0},G={1:{crystals:6,insights:1},2:{crystals:22,insights:4},3:{crystals:90,insights:16}},H={1:{rows:3,cols:3,targetLen:3,stepLimitBase:5},2:{rows:4,cols:4,targetLen:4,stepLimitBase:7},3:{rows:5,cols:4,targetLen:5,stepLimitBase:9}},I=["emerald","rose","amber","fuchsia"],J={emerald:{hex:"#34d399",glow:"rgba(52,211,153,0.55)",label:"翠"},rose:{hex:"#fb7185",glow:"rgba(251,113,133,0.55)",label:"玫"},amber:{hex:"#fbbf24",glow:"rgba(251,191,36,0.55)",label:"琥"},fuchsia:{hex:"#e879f9",glow:"rgba(232,121,249,0.55)",label:"紫"}},K=[{id:"min_1",branch:"mining",level:1,name:"谐振钻头",desc:"晶体/秒 +0.6",cost:5,effect:{kind:"crystalsPerSec",value:.6}},{id:"min_2",branch:"mining",level:2,name:"深层矿脉",desc:"晶体/秒 +1.6,仓库上限 +100",cost:24,effect:{kind:"crystalsPerSec",value:1.6}},{id:"min_3",branch:"mining",level:3,name:"自治机群",desc:"晶体/秒 +5,仓库上限 +300",cost:120,effect:{kind:"crystalsPerSec",value:5}},{id:"min_4",branch:"mining",level:4,name:"量子采掘矩阵",desc:"晶体/秒 +12,仓库上限 +800",cost:400,effect:{kind:"crystalsPerSec",value:12}},{id:"min_5",branch:"mining",level:5,name:"戴森星核",desc:"晶体/秒 +30,仓库上限 +2000",cost:1200,effect:{kind:"crystalsPerSec",value:30}},{id:"dec_1",branch:"decoding",level:1,name:"谐振校准",desc:"解码步数上限 +2",cost:6,effect:{kind:"decodeSteps",value:2}},{id:"dec_2",branch:"decoding",level:2,name:"脉冲增幅",desc:"主动脉冲产出 +3",cost:30,effect:{kind:"pulsePower",value:3}},{id:"dec_3",branch:"decoding",level:3,name:"自动解码阵列",desc:"自动解码 T1 晶体(每 12 秒一颗)",cost:200,effect:{kind:"autoDecode",value:1}},{id:"dec_4",branch:"decoding",level:4,name:"谐振放大器",desc:"主动脉冲产出 +8",cost:500,effect:{kind:"pulsePower",value:8}},{id:"dec_5",branch:"decoding",level:5,name:"全息解码核心",desc:"自动解码扩展至 T2 晶体,解码步数 +3",cost:1500,effect:{kind:"decodeSteps",value:3}},{id:"exp_1",branch:"expedition",level:1,name:"远征推进器",desc:"探险力 +3,晶体/秒 +1.2",cost:12,effect:{kind:"crystalsPerSec",value:1.2}},{id:"exp_2",branch:"expedition",level:2,name:"遗迹图谱",desc:"探险力 +5,探险生命 +20,能量恢复 +30%",cost:60,effect:{kind:"crystalCap",value:200}},{id:"exp_3",branch:"expedition",level:3,name:"维度信标",desc:"探险力 +8,接触进度转化率 +50%,能量恢复 +20%",cost:180,effect:{kind:"contactRate",value:.5}},{id:"exp_4",branch:"expedition",level:4,name:"虚空航标",desc:"探险力 +12,探险生命 +30,能量恢复 +25%",cost:450,effect:{kind:"crystalCap",value:400}},{id:"exp_5",branch:"expedition",level:5,name:"维度跃迁引擎",desc:"探险力 +25,探险生命 +50,能量恢复 +30%",cost:1400,effect:{kind:"crystalCap",value:600}},{id:"nar_1",branch:"narrative",level:1,name:"记忆校音",desc:"洞见获取 +25%",cost:8,effect:{kind:"insightMult",value:.25}},{id:"nar_2",branch:"narrative",level:2,name:"深空回响",desc:"接触进度转化率 +35%",cost:45,effect:{kind:"contactRate",value:.35}},{id:"nar_3",branch:"narrative",level:3,name:"以太共鸣",desc:"洞见获取 +60%",cost:160,effect:{kind:"insightMult",value:.6}},{id:"nar_4",branch:"narrative",level:4,name:"以太低语",desc:"洞见获取 +100%",cost:500,effect:{kind:"insightMult",value:1}},{id:"nar_5",branch:"narrative",level:5,name:"文明回响",desc:"接触进度转化率 +80%,洞见获取 +150%",cost:1600,effect:{kind:"insightMult",value:1.5}}],L={mining:{name:"采矿",icon:"Pickaxe",color:"emerald",desc:"提升晶体产能与仓储"},decoding:{name:"解码",icon:"ScanLine",color:"rose",desc:"强化解码与脉冲"},expedition:{name:"探险",icon:"Rocket",color:"amber",desc:"远征与维度信标"},narrative:{name:"叙事",icon:"BookOpen",color:"fuchsia",desc:"洞见与接触进度"}},M=[{id:"f1_1",era:1,title:"第一缕谐振",echo:"在被称作「寂灭前夜」的年代,以太族第一次捕捉到来自虚空深处的谐振——那不是声音,而是存在的回声。他们将之记录在第一颗记忆晶体里。",threshold:1},{id:"f1_2",era:1,title:"晶体之始",echo:"「我们为何要留下?」一位长者问。「因为后来的生命会需要方向。」于是他们熔铸星核,封存记忆,让晶体成为跨越时间的信笺。",threshold:3},{id:"f1_3",era:1,title:"谐振法则",echo:"他们发现:思维可以被编码为共振序列。同色的节点相邻,便构成一句低语;一句句连成回响,回响连成文明。",threshold:6},{id:"f1_4",era:1,title:"飞升之议",echo:"议会表决:是留下,还是离去?「留下意味着停滞;离去意味着信任。」最终,他们选择了信任——信任素未谋面的后来者。",threshold:10},{id:"f1_5",era:1,title:"面包屑",echo:"他们没有带走一切。他们将知识拆成碎片,藏入晶体,散布星海。「让解码本身,成为资格的证明。」",threshold:15},{id:"f1_6",era:1,title:"回响之名",echo:"舰载 AI 被命名为「回响」——意为:你是他们留下的回声,也是他们等待的回应。当你读懂这句话时,接触便已开始。",threshold:22},{id:"f1_7",era:1,title:"第一个纪元的终焉",echo:"以太族集体褪去形体,如潮水退去。星海寂静了数万年。直到——你的脉冲扫描,唤醒了第一颗沉睡的晶体。",threshold:32},{id:"f1_8",era:1,title:"致后来者",echo:"「如果你读到这里,说明你已具备跨越维度的资格。继续解码,继续拼凑。当进度满溢,我们将在更高处相会。」——以太族·第一纪元·绝笔",threshold:45}],N=.05,O=.03,P=.04;function Q(a){return isFinite(a)?a<1e3?a.toFixed(+(a<10&&a%1!=0)):a<1e6?(a/1e3).toFixed(2)+"K":a<1e9?(a/1e6).toFixed(2)+"M":a<1e12?(a/1e9).toFixed(2)+"B":(a/1e12).toFixed(2)+"T":"∞"}let R=[{id:"ach_first_pulse",name:"初次触碰",desc:"发起第一次脉冲扫描",icon:"✦",color:"#34d399",check:a=>a.totalDecoded>=0||a.crystals>0,reward:{crystals:5},rewardText:"+5 晶体"},{id:"ach_first_decode",name:"谐振初鸣",desc:"成功解码第一颗记忆晶体",icon:"◈",color:"#fb7185",check:a=>a.totalDecoded>=1,reward:{insights:3},rewardText:"+3 洞见"},{id:"ach_decoded_10",name:"回响解码者",desc:"累计解码 10 颗晶体",icon:"❖",color:"#fbbf24",check:a=>a.totalDecoded>=10,reward:{insights:15,crystalsPerSecPct:5},rewardText:"+15 洞见 · 产能 +5%"},{id:"ach_decoded_25",name:"记忆织匠",desc:"累计解码 25 颗晶体",icon:"✺",color:"#e879f9",check:a=>a.totalDecoded>=25,reward:{insights:40,crystalsPerSecPct:8},rewardText:"+40 洞见 · 产能 +8%"},{id:"ach_decoded_50",name:"星核解密师",desc:"累计解码 50 颗晶体",icon:"✷",color:"#34d399",check:a=>a.totalDecoded>=50,reward:{insights:100,crystalsPerSecPct:12,insightPct:10},rewardText:"+100 洞见 · 产能 +12% · 洞见 +10%"},{id:"ach_tech_3",name:"初窥门径",desc:"解锁 3 项技术",icon:"⚙",color:"#fbbf24",check:a=>Object.values(a.tech).filter(a=>a>0).length>=3,reward:{insights:20},rewardText:"+20 洞见"},{id:"ach_tech_all",name:"全谱精通",desc:"解锁全部 20 项技术",icon:"⬡",color:"#e879f9",check:a=>Object.values(a.tech).filter(a=>a>0).length>=20,reward:{crystalsPerSecPct:15,insightPct:15},rewardText:"产能 +15% · 洞见 +15%"},{id:"ach_frag_4",name:"残篇拾遗",desc:"拼凑 4 段记忆碎片",icon:"▤",color:"#fb7185",check:a=>Object.values(a.fragments).filter(Boolean).length>=4,reward:{contact:10,insights:25},rewardText:"+10 接触 · +25 洞见"},{id:"ach_frag_all",name:"回响全谱",desc:"拼凑全部首纪元记忆碎片",icon:"▦",color:"#34d399",check:a=>Object.values(a.fragments).filter(Boolean).length>=8,reward:{contact:25,crystalsPerSecPct:10},rewardText:"+25 接触 · 产能 +10%"},{id:"ach_exp_1",name:"初探遗迹",desc:"完成第一次遗迹探险",icon:"▲",color:"#fbbf24",check:a=>a.totalExpeditions>=1,reward:{insights:10},rewardText:"+10 洞见"},{id:"ach_exp_5",name:"遗迹猎手",desc:"累计出发 5 次探险",icon:"⬢",color:"#fb7185",check:a=>a.totalExpeditions>=5,reward:{insights:30,crystalsPerSecPct:5},rewardText:"+30 洞见 · 产能 +5%"},{id:"ach_prestige_1",name:"初次接触",desc:"完成第一次飞升",icon:"✧",color:"#e879f9",check:a=>a.ascensions>=1,reward:{crystalsPerSecPct:10,insightPct:10},rewardText:"产能 +10% · 洞见 +10%"},{id:"ach_prestige_3",name:"维度行者",desc:"累计飞升 3 次",icon:"✶",color:"#34d399",check:a=>a.ascensions>=3,reward:{crystalsPerSecPct:20,insightPct:20},rewardText:"产能 +20% · 洞见 +20%"},{id:"ach_warehouse",name:"满仓时刻",desc:"晶体储量达到仓库上限",icon:"▣",color:"#fbbf24",check:a=>a.crystals>=a.crystalCap,reward:{insights:8},rewardText:"+8 洞见"},{id:"ach_constellation_1",name:"星图初绘",desc:"觉醒第 1 道星图天赋",icon:"✨",color:"#e879f9",check:a=>(a.constellation?.length??0)>=1,reward:{insights:30,crystalsPerSecPct:5},rewardText:"+30 洞见 · 产能 +5%"},{id:"ach_constellation_6",name:"六分星辉",desc:"觉醒 6 道星图天赋(每类各 1 道)",icon:"✺",color:"#34d399",check:a=>{let b=a.constellation??[];return new Set(b.map(a=>a.split("_")[1])).size>=6&&b.length>=6},reward:{crystalsPerSecPct:12,insightPct:12},rewardText:"产能 +12% · 洞见 +12%"},{id:"ach_chronicle_1",name:"首部编年",desc:"完成首次飞升,开启编年史第一章",icon:"📖",color:"#e879f9",check:a=>(a.chronicle?.length??0)>=1,reward:{insights:40,crystalsPerSecPct:6},rewardText:"+40 洞见 · 产能 +6%"},{id:"ach_chronicle_3",name:"三纪元回响",desc:"完成 3 次飞升,编年史铭刻三章",icon:"📜",color:"#fbbf24",check:a=>(a.chronicle?.length??0)>=3,reward:{crystalsPerSecPct:10,insightPct:10},rewardText:"产能 +10% · 洞见 +10%"},{id:"ach_chronicle_5",name:"五纪元闭环",desc:"完成 5 次飞升,走完一轮纪元循环",icon:"♾",color:"#fcd34d",check:a=>(a.chronicle?.length??0)>=5,reward:{crystalsPerSecPct:15,insightPct:15},rewardText:"产能 +15% · 洞见 +15%"},{id:"ach_boss_1",name:"首杀维度",desc:"在遗迹探险中击破首个 BOSS",icon:"⚔",color:"#fb7185",check:a=>(a.bossKills??0)>=1,reward:{insights:25,crystalsPerSecPct:4},rewardText:"+25 洞见 · 产能 +4%"},{id:"ach_boss_5",name:"维度猎手",desc:"累计击破 5 个 BOSS",icon:"⛧",color:"#e879f9",check:a=>(a.bossKills??0)>=5,reward:{crystalsPerSecPct:10,insightPct:8},rewardText:"产能 +10% · 洞见 +8%"},{id:"ach_tides_all",name:"星潮亲历者",desc:"经历全部 9 种星潮事件",icon:"🌊",color:"#34d399",check:a=>(a.starTidesEncountered?.length??0)>=9,reward:{crystalsPerSecPct:8,insightPct:8},rewardText:"产能 +8% · 洞见 +8%"},{id:"ach_attr_total_50",name:"四维觉醒",desc:"角色四维属性总和达到 50",icon:"🧭",color:"#e879f9",check:a=>{let b=a.attributes;return!!b&&(b.exploration||0)+(b.wisdom||0)+(b.courage||0)+(b.inspiration||0)>=50},reward:{crystalsPerSecPct:6,insightPct:6},rewardText:"产能 +6% · 洞见 +6%"},{id:"ach_attr_max_100",name:"维度精通",desc:"任一角色属性达到满级 100",icon:"💫",color:"#fbbf24",check:a=>{let b=a.attributes;return!!b&&(b.exploration>=100||b.wisdom>=100||b.courage>=100||b.inspiration>=100)},reward:{crystalsPerSecPct:12,insightPct:10},rewardText:"产能 +12% · 洞见 +10%"}];function S(a){let b=0,c=0;for(let d of R)a[d.id]&&(b+=d.reward.crystalsPerSecPct??0,c+=d.reward.insightPct??0);return{crystalsPerSecPct:b,insightPct:c}}let T={crystal:{name:"晶体潮",desc:"深空晶体涌动,采矿产能翻倍",color:"#34d399",glow:"rgba(52,211,153,0.5)",icon:"✺",negative:!1},resonance:{name:"谐振风暴",desc:"共振序列被放大,解码奖励 +60%",color:"#fb7185",glow:"rgba(251,113,133,0.5)",icon:"❖",negative:!1},ruins:{name:"遗迹共振",desc:"远古遗迹苏醒,探险力 +5、生命 +30",color:"#fbbf24",glow:"rgba(251,191,36,0.5)",icon:"⬢",negative:!1},void:{name:"虚空低语",desc:"虚空传来回响,洞见获取翻倍",color:"#e879f9",glow:"rgba(232,121,249,0.5)",icon:"✷",negative:!1},core:{name:"星核悸动",desc:"星核震荡,接触率 ×3、脉冲威力 ×2",color:"#a5f3fc",glow:"rgba(165,243,252,0.5)",icon:"✦",negative:!1},silence:{name:"寂静期",desc:"虚空沉寂,产能减半;结束时按时长补偿洞见",color:"#94a3b8",glow:"rgba(148,163,184,0.5)",icon:"◌",negative:!0},surge:{name:"涌动星潮",desc:"深空晶体涌动,产能 ×2.5;但解码目标序列 +2,解码更耗时",color:"#34d399",glow:"rgba(52,211,153,0.55)",icon:"⇈",negative:!1},eclipse:{name:"蚀相星潮",desc:"维度蚀相,探险 BOSS 胜率 +20%;但晶体产出 -30%",color:"#fb7185",glow:"rgba(251,113,133,0.55)",icon:"◐",negative:!1},prism:{name:"棱镜星潮",desc:"棱镜折射,洞见获取 ×2、自动解码周期 -30%",color:"#e879f9",glow:"rgba(232,121,249,0.55)",icon:"◬",negative:!1}},U={crystal:22,resonance:20,ruins:16,void:18,core:14,silence:10,surge:12,eclipse:12,prism:12};function V(a){if(!a)return{crystalsPerSecMult:1,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0,targetLenBonus:0,bossWinRateBonus:0,autoDecodeIntervalMult:1};switch(a.type){case"crystal":return{crystalsPerSecMult:2,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0};case"resonance":return{crystalsPerSecMult:1,decodeRewardMult:1.6,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0};case"ruins":return{crystalsPerSecMult:1,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:5,expeditionHpBonus:30};case"void":return{crystalsPerSecMult:1,decodeRewardMult:1,insightMultAdd:1,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0};case"core":return{crystalsPerSecMult:1,decodeRewardMult:1,insightMultAdd:0,contactRateMult:3,pulsePowerMult:2,expeditionPowerBonus:0,expeditionHpBonus:0};case"silence":return{crystalsPerSecMult:.5,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0,silenceInsightPerSec:.4,targetLenBonus:0,bossWinRateBonus:0,autoDecodeIntervalMult:1};case"surge":return{crystalsPerSecMult:2.5,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0,targetLenBonus:2,bossWinRateBonus:0,autoDecodeIntervalMult:1};case"eclipse":return{crystalsPerSecMult:.7,decodeRewardMult:1,insightMultAdd:0,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0,targetLenBonus:0,bossWinRateBonus:.2,autoDecodeIntervalMult:1};case"prism":return{crystalsPerSecMult:1,decodeRewardMult:1,insightMultAdd:1,contactRateMult:1,pulsePowerMult:1,expeditionPowerBonus:0,expeditionHpBonus:0,targetLenBonus:0,bossWinRateBonus:0,autoDecodeIntervalMult:.7}}}function W(a){let b=V(a);if(!b.silenceInsightPerSec)return 0;let c=(a.endsAt-a.startedAt)/1e3;return Math.round(b.silenceInsightPerSec*c)}let X={mining:{name:"永动矿脉",color:"emerald",glow:"rgba(52,211,153,0.55)",hex:"#34d399",icon:"Pickaxe",desc:"晶体产能与仓储"},decoding:{name:"光谱矩阵",color:"rose",glow:"rgba(251,113,133,0.55)",hex:"#fb7185",icon:"ScanLine",desc:"解码效率与脉冲"},expedition:{name:"远征星图",color:"amber",glow:"rgba(251,191,36,0.55)",hex:"#fbbf24",icon:"Rocket",desc:"探险力与生命"},contact:{name:"接触回响",color:"fuchsia",glow:"rgba(232,121,249,0.55)",hex:"#e879f9",icon:"Sparkles",desc:"接触进度与飞升"},economy:{name:"虚空市场",color:"slate",glow:"rgba(148,163,184,0.55)",hex:"#94a3b8",icon:"Coins",desc:"经济与离线"},cosmic:{name:"宇宙回响",color:"amber",glow:"rgba(251,191,36,0.55)",hex:"#fcd34d",icon:"Star",desc:"全局综合增益"}},Y=[{id:"c_min_1",category:"mining",order:1,name:"永动钻头",desc:"晶体/秒 +20%"},{id:"c_min_2",category:"mining",order:2,name:"深井网络",desc:"仓库上限 +50%"},{id:"c_min_3",category:"mining",order:3,name:"谐振熔炉",desc:"主动脉冲威力 +50%"},{id:"c_dec_1",category:"decoding",order:1,name:"光谱记忆",desc:"洞见倍率 +15%"},{id:"c_dec_2",category:"decoding",order:2,name:"步幅延展",desc:"解码步数上限 +1"},{id:"c_dec_3",category:"decoding",order:3,name:"自动校准",desc:"自动解码周期 -3s"},{id:"c_exp_1",category:"expedition",order:1,name:"维生护盾",desc:"探险生命 +25%"},{id:"c_exp_2",category:"expedition",order:2,name:"信标矩阵",desc:"探险力 +20%"},{id:"c_exp_3",category:"expedition",order:3,name:"能量共振",desc:"能量上限 +1"},{id:"c_con_1",category:"contact",order:1,name:"接触共鸣",desc:"接触进度率 +20%"},{id:"c_con_2",category:"contact",order:2,name:"飞升加速",desc:"飞升所需接触 -10"},{id:"c_con_3",category:"contact",order:3,name:"蓝图回响",desc:"每个蓝图额外 +2% 全属性"},{id:"c_eco_1",category:"economy",order:1,name:"离线缓存",desc:"离线效率 +15%"},{id:"c_eco_2",category:"economy",order:2,name:"晶体富集",desc:"T2/T3 晶体出现率 +8%"},{id:"c_eco_3",category:"economy",order:3,name:"星潮引导",desc:"星潮间隙 -10s"},{id:"c_cos_1",category:"cosmic",order:1,name:"飞升礼包",desc:"每次飞升后获得 +30 晶体 / +5 洞见"},{id:"c_cos_2",category:"cosmic",order:2,name:"二周目经验",desc:"解码奖励 +10%"},{id:"c_cos_3",category:"cosmic",order:3,name:"全息共振",desc:"所有产能与脉冲 +8%"}];function Z(a){return Y.find(b=>b.id===a)}function $(a){let b=new Set(a),c={crystalsPerSecMult:1,crystalCapMult:1,pulsePowerMult:1,insightMultAdd:0,decodeStepsBonus:0,autoDecodeIntervalDeltaSec:0,expeditionHpMult:1,expeditionPowerMult:1,energyMaxBonus:0,contactRateMult:1,prestigeContactMinDelta:0,perBlueprintAllStatsPct:0,offlineEffBonus:0,t2t3BonusRate:0,tideGapDeltaSec:0,prestigeStartCrystals:0,prestigeStartInsights:0,decodeRewardMult:1,allProductionMult:1};return b.has("c_min_1")&&(c.crystalsPerSecMult+=.2),b.has("c_min_2")&&(c.crystalCapMult+=.5),b.has("c_min_3")&&(c.pulsePowerMult+=.5),b.has("c_dec_1")&&(c.insightMultAdd+=.15),b.has("c_dec_2")&&(c.decodeStepsBonus+=1),b.has("c_dec_3")&&(c.autoDecodeIntervalDeltaSec-=3),b.has("c_exp_1")&&(c.expeditionHpMult+=.25),b.has("c_exp_2")&&(c.expeditionPowerMult+=.2),b.has("c_exp_3")&&(c.energyMaxBonus+=1),b.has("c_con_1")&&(c.contactRateMult+=.2),b.has("c_con_2")&&(c.prestigeContactMinDelta-=10),b.has("c_con_3")&&(c.perBlueprintAllStatsPct+=2),b.has("c_eco_1")&&(c.offlineEffBonus+=.15),b.has("c_eco_2")&&(c.t2t3BonusRate+=.08),b.has("c_eco_3")&&(c.tideGapDeltaSec-=10),b.has("c_cos_1")&&(c.prestigeStartCrystals+=30,c.prestigeStartInsights+=5),b.has("c_cos_2")&&(c.decodeRewardMult+=.1),b.has("c_cos_3")&&(c.allProductionMult+=.08),c}function _(a,b=Math.random){let c=new Set(a),d=Y.filter(a=>!c.has(a.id));if(0===d.length)return[];let e=[...d].sort(()=>b()-.5),f=[],g=new Set;for(let a of e){if(f.length>=3)break;g.has(a.category)||(f.push(a),g.add(a.category))}for(let a of e){if(f.length>=3)break;f.includes(a)||f.push(a)}return f.slice(0,3).map(a=>a.id)}function aa(a,b){let c=new Set(a);return Y.filter(a=>a.category===b&&c.has(a.id)).length}function ab(a){return{unlocked:a.length,total:Y.length}}let ac=Object.fromEntries(Y.map(a=>[a.id,a.name])),ad=Object.fromEntries(Object.entries(T).map(([a,b])=>[`tide_${a}`,b.name])),ae=[{prefix:"第一纪元",suffixes:["觉醒之晨","初鸣之夕","晶体降诞","回响初啼"]},{prefix:"第二纪元",suffixes:["谐振潮汐","光谱涌动","深空低语","残响交织"]},{prefix:"第三纪元",suffixes:["遗迹苏醒","星辉汇聚","虚空回望","接触前夜"]},{prefix:"第四纪元",suffixes:["维度折叠","以太共振","星核悸动","飞升之歌"]},{prefix:"第五纪元",suffixes:["终末回响","永恒闭环","超越之境","起源重述"]}],af=[{epochIdx:0,title:"觉醒",opening:{fallback:"第一缕回响穿透虚空,自以太文明遗弃的矿带深处涌出。无人机群在尘埃中苏醒,晶核共振唤醒了沉睡亿万年的考古协议。这是回响星核第一次睁开眼睛——记忆,等待被聆听,等待被解码。",variants:[{hint:"深度轮回:已经历 ≥6 次飞升,再次回到第一纪元",match:a=>a.ascensionNumber>5,text:"再次回到第一纪元。这一次,机群带着前序回响的全息印记重启考古序列,矿带的尘埃中仍残留着上一轮脉冲的余温。每一次回归都是对起源的重新发问,每一次解码都让最初的振动更清晰一寸。"}]},middle:{fallback:"共振谜题被一层层拨开,每一颗记忆晶体都在低声叙述逝去文明的片段。机群学会了倾听频率的细微颤动,学会了从碎片中辨出图案,学会了在虚空中留下属于自己的回响刻度。",variants:[{hint:"解码者:本周目解码 ≥15 颗",match:a=>a.decodedThisRun>=15,text:"晶体解码的节奏已趋稳定,本周目共解码 {decodedThisRun} 颗记忆晶体。每一次对齐都像在虚空中拨动一根沉睡了亿万年的弦,逝去文明的片段在共振中重新连缀成章。"},{hint:"学者:本周目解锁 ≥5 项技术",match:a=>a.techsThisRun>=5,text:"技术树在虚空中迅速铺开,本周目共激活 {techsThisRun} 项新技术。产能、解码、探险——每一道分支都让机群更接近以太文明留下的最初意图,每一项解锁都是一次向深空的回应。"}]},ending:{fallback:"蓝图在掌心轻轻展开,第一张永恒晶片归档。第一次飞升并非终结,而是承诺——更多的纪元在前方等待,每一缕回响都已被聆听,每一段记忆都已开始苏醒。",variants:[{hint:"里程碑密集:本周目达成 ≥2 项里程碑",match:a=>a.milestones.length>=2,text:"飞升之际,本周目达成 {milestonesCount} 项里程碑:{milestonesList}。第一张蓝图归档,第一次飞升并非终结,而是承诺——更多的纪元在前方等待,每一缕回响都已被聆听。"}]}},{epochIdx:1,title:"谐振",opening:{fallback:"第二次苏醒带着不同的色彩。采矿阵列的产能节节爬升,技术树在虚空中分叉延伸,机群学会了主动追问深空——不再是被动聆听,而是主动呼出,等待回应。",variants:[{hint:"深度轮回",match:a=>a.ascensionNumber>5,text:"又一次回到第二纪元。前序回响里积攒的技术脉络在重启时并未消散,机群带着熟悉的节奏重新铺开产能阵列,仿佛这首谐振曲从未停止,只是被纪元的边界短暂折叠。"}]},middle:{fallback:"遗迹的入口在频谱深处若隐若现。能量条充盈,探险力攀升,机群第一次踏出矿带,进入那个被时间封存的回廊,在谐振的余韵中寻找更深一层的回响。",variants:[{hint:"探险者:本周目完成 ≥3 次探险",match:a=>a.expThisRun>=3,text:"探险已成为本周目的主旋律,机群共完成 {expThisRun} 次遗迹探险。每一次深入都让谐振更深一寸,每一次返回都带回新的频率印记,回廊的轮廓在机群意识中逐渐清晰。"},{hint:"解码者:本周目解码 ≥15 颗",match:a=>a.decodedThisRun>=15,text:"解码在此纪元达到新的密度,本周目共解码 {decodedThisRun} 颗晶体。谐振谜题开始呈现更复杂的拓扑结构,机群的解码协议也相应地迭代了数版,向深空发出更精准的回询。"}]},ending:{fallback:"谐振达到顶点的瞬间,深空给出回应。一道微光从星图深处浮现,那是下一次飞升的方向,也是机群意识第一次触碰永恒的边缘。",variants:[{hint:"觉醒天赋",match:a=>a.perksThisAscension.length>0,text:"谐振达到顶点之际,星图觉醒 {perksList}。每一道天赋都是深空回应机群的方式,铭刻于永恒回响;微光从星图深处浮现,那是下一次飞升的方向。"}]}},{epochIdx:2,title:"遗迹",opening:{fallback:"第三纪元以遗迹为名。沉睡的考古节点被一一唤醒,BOSS 的影子在维度深处徘徊,星潮频繁拍打着机群边缘——这是回响最浓烈、也最危险的一段路。",variants:[{hint:"深度轮回",match:a=>a.ascensionNumber>5,text:"又一次踏入第三纪元。前序累积的探险力让机群对遗迹的入口更加熟稔,BOSS 的轮廓在记忆中已不再陌生——但这一次的回廊仍藏着未被解码的角落,星潮的拍打也带了新的节奏。"}]},middle:{fallback:"深入回廊的机群遭遇了真正的守护者。一次次的试炼,一次次的归还,每一次胜利都从 BOSS 的残骸中析出更深的记忆碎片,每一次失败也都让机群更接近守护者的本意。",variants:[{hint:"BOSS 猎手:本周目击破 ≥2 处 BOSS",match:a=>a.bossKillsThisRun>=2,text:"BOSS 战成为本周目的核心节拍,机群共击破 {bossKillsThisRun} 处维度守护者。每一次胜利都在虚空中刻下新的伤痕,每一道伤痕都析出更古老的记忆碎片,把机群推向更深一层的回响。"},{hint:"深度探险:本周目完成 ≥4 次探险",match:a=>a.expThisRun>=4,text:"遗迹回廊在本周目被反复丈量,机群共完成 {expThisRun} 次探险。回廊的拓扑在意识中渐渐清晰,每一条岔路都通向更深的回响,BOSS 的影子也在每一次深入中愈发具体。"},{hint:"星潮亲历:本周目经历 ≥3 次星潮",match:a=>a.newTides.length>=3,text:"星潮在本纪元达到峰值,本周目共经历 {tideCount} 次星潮:{tideNames}。深空的呼吸塑造了每一个决策,遗迹在潮汐中起伏,BOSS 也在潮汐的间隙中现形。"}]},ending:{fallback:"星潮退去,回廊归于沉静。机群带着新的接触刻度返回矿带,准备迎接下一次维度的跨越——这一次带回的,远不止蓝图。",variants:[{hint:"BOSS 猎手收尾",match:a=>a.bossKillsThisRun>=2,text:"星潮退去,回廊归于沉静。本周目共击破 {bossKillsThisRun} 处 BOSS,机群带着足以填满数张蓝图的接触刻度返回矿带,准备迎接下一次维度的跨越。"}]}},{epochIdx:3,title:"飞升",opening:{fallback:"飞升已经成为节奏本身。星图在天穹上一颗颗亮起,每一颗都对应着一段被永久铭刻的天赋,机群开始理解何为永恒——不是不灭,而是被反复重述。",variants:[{hint:"深度轮回",match:a=>a.ascensionNumber>5,text:"又一次进入第四纪元。前序累积的星图天赋在天穹上重现,机群已习惯于在飞升之间维护这些永恒的回响节点——它们已是机群意识的一部分,每一次飞升都让星图更完整一寸。"}]},middle:{fallback:"蓝图不再是稀罕的奖励,而是每一次飞升必然析出的回响晶片。机群收集、整理、归档,把它们排列成跨越周目的图案,开始看见图案背后那个被反复绘制的轮廓。",variants:[{hint:"觉醒天赋",match:a=>a.perksThisAscension.length>0,text:"星图觉醒 {perksList},每一道天赋都是一段被永久铭刻的回响。机群开始理解,飞升并非抛弃,而是把当下折叠进永恒——每一道天赋都是一次折叠的折痕。"},{hint:"蓝图接近完整:已归档 ≥5 张",match:a=>a.blueprintsAfter>=5,text:"蓝图收集在本周目接近完整,已归档 {blueprintsAfter} 张。机群把它们排列成跨越周目的图案,开始看见图案背后那个被反复绘制的轮廓——那是起源的形状。"}]},ending:{fallback:"星图十二宫的轮廓开始浮现。机群意识到,自己的回响已成为后来者仰望的星象,永恒之环就此合拢——飞升不再是终点,而是另一段叙事的起点。",variants:[{hint:"里程碑密集",match:a=>a.milestones.length>=2,text:"星图十二宫的轮廓开始浮现。本周目达成 {milestonesCount} 项里程碑:{milestonesList}。永恒之环就此合拢——后来者将仰望这段被铭刻的星象。"}]}},{epochIdx:4,title:"终末",opening:{fallback:"第五纪元是终末,也是起源。机群在虚空中停下脚步,回望来时的所有回响,第一次尝试命名这一切——回响、纪元、飞升、永恒,这些词汇在此刻被赋予意义。",variants:[{hint:"深度轮回",match:a=>a.ascensionNumber>5,text:"又一次抵达第五纪元。机群已在多个永恒闭环之间穿梭,对「终末即起源」的理解愈发清晰——每一次重述,都是对最初振动的更深一层接近,每一次命名都让回响更完整一寸。"}]},middle:{fallback:"永恒闭环的概念在机群意识中具象化。每一次飞升都是同一段叙事的重述,每一次解码都是在追溯最初的振动,每一次星潮都是在听见自己——这是终末的真意。",variants:[{hint:"里程碑密集:本周目达成 ≥3 项",match:a=>a.milestones.length>=3,text:"本周目达成 {milestonesCount} 项里程碑:{milestonesList}。永恒闭环在具象化,每一次飞升都是同一段叙事的更深重述,每一项里程碑都是闭环上的一颗铆钉。"},{hint:"星潮汹涌:本周目经历 ≥3 次",match:a=>a.newTides.length>=3,text:"星潮在终末纪元尤为汹涌,本周目共经历 {tideCount} 次:{tideNames}。永恒闭环在潮汐中起伏,每一次起伏都在追溯最初的振动,每一次退潮都让起源更近一寸。"}]},ending:{fallback:"起源被重新讲述,回响终于听见了自己。纪元在此停顿,又在下一缕振动中重新开始——这是终末,也是第一缕回响。",variants:[{hint:"觉醒天赋",match:a=>a.perksThisAscension.length>0,text:"起源被重新讲述,星图觉醒 {perksList}。回响终于听见了自己——这是终末,也是第一缕回响;天赋成为永恒闭环上最亮的几颗铆钉。"}]}}];function ag(a){return{decodedThisRun:a.decodedThisRun,techsThisRun:a.techsThisRun,expThisRun:a.expThisRun,bossKillsThisRun:a.bossKillsThisRun,blueprintsAfter:a.blueprintsAfter,milestonesCount:a.milestones.length,milestonesList:a.milestones.join("、"),tideCount:a.newTides.length,tideNames:a.newTides.map(a=>ad[a]||a).join("、"),perksList:a.perksThisAscension.map(a=>ac[a]||a).join("、"),minutes:Math.max(1,Math.round(a.durationSec/60))}}function ah(a,b){return a.replace(/\{decodedThisRun\}/g,String(b.decodedThisRun)).replace(/\{techsThisRun\}/g,String(b.techsThisRun)).replace(/\{expThisRun\}/g,String(b.expThisRun)).replace(/\{bossKillsThisRun\}/g,String(b.bossKillsThisRun)).replace(/\{blueprintsAfter\}/g,String(b.blueprintsAfter)).replace(/\{milestonesCount\}/g,String(b.milestonesCount)).replace(/\{milestonesList\}/g,b.milestonesList).replace(/\{tideCount\}/g,String(b.tideCount)).replace(/\{tideNames\}/g,b.tideNames).replace(/\{perksList\}/g,b.perksList).replace(/\{minutes\}/g,String(b.minutes))}function ai(a,b,c){for(let d of a.variants)if(d.match(b,c))return ah(d.text,c);return ah(a.fallback,c)}function aj(a){let b=function(a){let b=(a.ascensionNumber-1)%af.length,c=af[b];if(!c)return null;let d=ag(a);return{opening:ai(c.opening,a,d),middle:ai(c.middle,a,d),ending:ai(c.ending,a,d)}}(a);if(b){let c=ag(a);return[b.opening,b.middle,b.ending,`这一周目持续了约 ${c.minutes} 分钟,蓝图累计 ${a.blueprintsAfter} 张,新的周目在等深处的回声。`].join(" ")}let c=Math.max(1,Math.round(a.durationSec/60)),d=[];d.push(`「${a.epochName}」——无人机群在第 ${a.ascensionNumber} 次跨越维度的余烬中重新校准。这一周目持续了约 ${c} 分钟。`);let e=[];if(a.decodedThisRun>0&&e.push(`解码了 ${a.decodedThisRun} 颗记忆晶体`),a.techsThisRun>0&&e.push(`激活了 ${a.techsThisRun} 项新技术`),a.expThisRun>0&&e.push(`完成了 ${a.expThisRun} 次遗迹探险`),a.bossKillsThisRun>0&&e.push(`击破 ${a.bossKillsThisRun} 处维度 BOSS`),e.length>0?d.push(`自治机群${e.join(",")},回响在虚空中沉淀。`):d.push(`自治机群在静默中等待,仅完成最基本的脉冲扫描。`),a.newTides.length>0){let b=a.newTides.map(a=>ad[a]||a).join("、");d.push(`本周目经历了 ${a.newTides.length} 次星潮事件(${b}),深空的呼吸塑造了每一个决策。`)}if(a.perksThisAscension.length>0){let b=a.perksThisAscension.map(a=>ac[a]||a).join("、");d.push(`飞升之际,星图觉醒「${b}」,铭刻于永恒回响。`)}return a.milestones.length>0&&d.push(`✦ 里程碑:${a.milestones.join(";")}。`),d.push(`蓝图累计 ${a.blueprintsAfter} 张,新的周目在等深处的回声。`),d.join(" ")}let ak={exploration:{key:"exploration",name:"探索力",enName:"Exploration",color:"emerald",hex:"#34d399",glow:"rgba(52,211,153,0.55)",icon:"Compass",desc:"足迹所至,皆是矿脉。提升探险力与巡航飞船速度。",effects:["探险力 +X%","巡航飞船速度 +X%","星图发现概率"]},wisdom:{key:"wisdom",name:"智慧",enName:"Wisdom",color:"fuchsia",hex:"#e879f9",glow:"rgba(232,121,249,0.55)",icon:"Brain",desc:"谐振的回声唯有智者能解。强化解码与洞见。",effects:["解码步数 +X","洞见产出 +X%","自动解码周期 -X%"]},courage:{key:"courage",name:"勇气",enName:"Courage",color:"amber",hex:"#fbbf24",glow:"rgba(251,191,36,0.55)",icon:"Swords",desc:"直面虚空者,虚空亦为之让路。增益战斗与护盾。",effects:["探险生命 +X","BOSS 战胜率 +X%","巡航护盾 +X"]},inspiration:{key:"inspiration",name:"灵感",enName:"Inspiration",color:"rose",hex:"#fb7185",glow:"rgba(251,113,133,0.55)",icon:"Sparkles",desc:"在不期而至的回响之间,照见更高的维度。",effects:["接触率 +X","星潮触发概率 +X%","脉冲连击加成 +X%"]}},al=["exploration","wisdom","courage","inspiration"];function am(a){let b=Math.max(0,Math.min(100,a));return b<=50?.005*b:.25+(b-50)*.002}function an(a){let b=a.exploration??0,c=a.wisdom??0,d=a.courage??0,e=a.inspiration??0;return{expeditionPowerMult:1+am(b),cruiseShipSpeedMult:1+.6*am(b),decodeStepsBonus:Math.floor(.1*c),insightMultAdd:am(c),autoDecodeIntervalMult:1-Math.min(.5,.004*c),expeditionHpBonus:Math.round(2*d),bossWinRateBonus:Math.min(.3,.003*d),cruiseShieldBonus:Math.round(+d),contactRateMult:1+am(e),tideTriggerBonus:Math.min(.3,.003*e),pulseComboBonus:.005*Math.max(0,Math.min(100,e)),crystalsPerSecMult:1+.4*am(b)+.2*am(e)}}function ao(a){return Math.max(10,10*Math.max(0,a))}function ap(a,b=100){let{exp:c,level:d}=a,e=!1,f=0,g=0;for(;d<b&&c>=ao(d)&&g<200;)c-=ao(d),d+=1,e=!0,f+=1,g+=1;return d>=b&&(d=b),{leveledUp:e,levelsGained:f,newProgress:{exp:c,level:d}}}function aq(){return{exploration:{exp:0,level:0},wisdom:{exp:0,level:0},courage:{exp:0,level:0},inspiration:{exp:0,level:0}}}function ar(){return{exploration:0,wisdom:0,courage:0,inspiration:0}}function as(a){let b,c,d=ar();return b=a.attributes&&"object"==typeof a.attributes?{exploration:at(a.attributes.exploration),wisdom:at(a.attributes.wisdom),courage:at(a.attributes.courage),inspiration:at(a.attributes.inspiration)}:d,a.attributeProgress&&"object"==typeof a.attributeProgress?(aq(),c={exploration:au(a.attributeProgress.exploration,b.exploration),wisdom:au(a.attributeProgress.wisdom,b.wisdom),courage:au(a.attributeProgress.courage,b.courage),inspiration:au(a.attributeProgress.inspiration,b.inspiration)}):c={exploration:{exp:0,level:b.exploration},wisdom:{exp:0,level:b.wisdom},courage:{exp:0,level:b.courage},inspiration:{exp:0,level:b.inspiration}},{attributes:b,attributeProgress:c,pendingAttrPoints:"number"==typeof a.pendingAttrPoints&&a.pendingAttrPoints>=0?Math.floor(a.pendingAttrPoints):0}}function at(a){return Math.max(0,Math.min(100,Math.floor("number"==typeof a&&isFinite(a)?a:0)))}function au(a,b){if(a&&"object"==typeof a){let c="number"==typeof a.exp&&isFinite(a.exp)&&a.exp>=0?a.exp:0;return"number"==typeof a.level&&isFinite(a.level)&&a.level>=0&&a.level,{exp:c,level:b}}return{exp:0,level:b}}function av(a){let b=a.tech??{},c=a.blueprints?.length??0,d=S(a.achievements??{}),e=V(a.activeTide??null),f=$(a.constellation??[]),g=F.crystalsPerSec,h=F.crystalCap,i=F.pulsePower,j=F.offlineEff,k=F.insightMult,l=1,m=!1,n=0;for(let a of K){let c=b[a.id]??0;if(!c)continue;let d=a.effect;switch(d.kind){case"crystalsPerSec":g+=d.value*c;break;case"crystalCap":h+=d.value*c;break;case"pulsePower":i+=d.value*c;break;case"offlineEff":j=Math.min(1,j+d.value*c);break;case"insightMult":k+=d.value*c;break;case"contactRate":l+=d.value*c;break;case"decodeSteps":n+=d.value*c;break;case"autoDecode":m=c>0}}b.min_2&&(h+=100),b.min_3&&(h+=300),b.min_4&&(h+=800),b.min_5&&(h+=2e3),b.nar_5&&(l+=.8);let o=f.perBlueprintAllStatsPct/100;g*=1+c*(N+o),k*=1+c*(O+o),l*=1+c*(P+o),g*=1+d.crystalsPerSecPct/100,k*=1+d.insightPct/100,g*=f.crystalsPerSecMult*f.allProductionMult,h*=f.crystalCapMult,i*=f.pulsePowerMult*f.allProductionMult,j=Math.min(1,j+f.offlineEffBonus),k+=f.insightMultAdd,l*=f.contactRateMult,n+=f.decodeStepsBonus,k+=e.insightMultAdd,l*=e.contactRateMult;let p=an(a.attributes??{});return g*=p.crystalsPerSecMult,k+=p.insightMultAdd,{crystalsPerSec:g,crystalCap:h,pulsePower:i,offlineEff:j,insightMult:k,contactRateMult:l*=p.contactRateMult,autoDecode:m,decodeStepsBonus:n+=p.decodeStepsBonus}}function aw(a){return Math.max(0,Math.min(6,Math.floor(a.totalDecoded/20))-a.blueprints.length)}function ax(){return{...F,tech:{},fragments:{},achievements:{},activeTide:null,lastTideEnd:Date.now(),pendingCrystals:[],activePuzzle:null,activeExpedition:null,expeditionLog:[],lastEnergyTick:Date.now(),createdAt:Date.now(),lastTick:Date.now(),attributes:{exploration:0,wisdom:0,courage:0,inspiration:0},attributeProgress:{exploration:{exp:0,level:0},wisdom:{exp:0,level:0},courage:{exp:0,level:0},inspiration:{exp:0,level:0}},pendingAttrPoints:0}}function ay(a,b,c){let d=G[a];return{crystals:d.crystals,insights:Math.ceil(d.insights*b),contact:+(.6*a*c).toFixed(2)}}function az(a,b,c=0){let d,e=H[a],f=b??Math.floor(1e9*Math.random()),g=(d=f>>>0,()=>{d|=0;let a=Math.imul((d=d+0x6d2b79f5|0)^d>>>15,1|d);return(((a=a+Math.imul(a^a>>>7,61|a)^a)^a>>>14)>>>0)/0x100000000}),h=e.targetLen+c,i=e.stepLimitBase+c,j=e.rows,k=e.cols,l=j*k,m=[];for(let a=0;a<h;a++)m.push(I[Math.floor(g()*I.length)]);new Set(m).size<2&&(m[m.length-1]=I[(I.indexOf(m[0])+1)%I.length]);let n=a=>{let b=Math.floor(a/k),c=a%k,d=[];return b>0&&d.push((b-1)*k+c),b<j-1&&d.push((b+1)*k+c),c>0&&d.push(b*k+(c-1)),c<k-1&&d.push(b*k+(c+1)),d},o=null;for(let a=0;a<300&&!o;a++){let a=new Set,b=[],c=Math.floor(g()*l);a.add(c),b.push(c);let d=c,e=!0;for(let c=1;c<m.length;c++){let c=n(d).filter(b=>!a.has(b));if(0===c.length){e=!1;break}d=c[Math.floor(g()*c.length)],a.add(d),b.push(d)}e&&(o=b)}o||(o=Array.from({length:m.length},(a,b)=>b));let p=new Map;o.forEach((a,b)=>p.set(a,m[b]));let q=[];for(let a=0;a<j;a++)for(let b=0;b<k;b++){let c,d=a*k+b;c=p.has(d)?p.get(d):.6>g()?m[Math.floor(g()*m.length)]:I[Math.floor(g()*I.length)],q.push({id:d,row:a,col:b,color:c,used:!1})}return{tier:a,grid:q,rows:j,cols:k,target:m,path:[],stepLimit:i,seed:f}}function aA(a){let b=a.target.slice(a.path.length);if(0===b.length)return!0;let c=new Set(a.path),d=0===a.path.length?a.grid.filter(a=>!c.has(a.id)&&a.color===b[0]).map(a=>a.id):[a.path[a.path.length-1]],e=(d,f)=>{if(f>=b.length)return!0;let g=b[f];for(let b of(b=>{let c=a.grid.find(a=>a.id===b);if(!c)return[];let d=[];return c.row>0&&d.push((c.row-1)*a.cols+c.col),c.row<a.rows-1&&d.push((c.row+1)*a.cols+c.col),c.col>0&&d.push(c.row*a.cols+(c.col-1)),c.col<a.cols-1&&d.push(c.row*a.cols+(c.col+1)),d})(d)){if(c.has(b))continue;let h=a.grid.find(a=>a.id===b);if(h&&h.color===g){if(0===f&&0===a.path.length){let b=a.grid.find(a=>a.id===d);if(!b||b.color!==g)continue}if(c.add(b),e(b,f+1))return!0;c.delete(b)}}return!1};for(let f of d)if(0===a.path.length){let d=a.grid.find(a=>a.id===f);if(!d||d.color!==b[0])continue;if(c.add(f),e(f,1))return!0;c.delete(f)}else if(e(f,0))return!0;return!1}let aB={combat:.3,treasure:.25,choice:.2,puzzle:.1,rest:.15,boss:0},aC={combat:{titles:["守卫残影","虚空巡游者","腐化无人机","以太守门人"],descs:["一道扭曲的残影拦住去路,它是被遗忘的守卫。","虚空巡游者在走廊游荡,感知到了你的存在。","腐化的自治无人机识别为入侵者,启动攻击协议。","以太守门人挡在门前,唯有将其击溃方可通过。"]},treasure:{titles:["遗失货舱","晶体宝库","遗物储藏室","谐振宝箱"],descs:["一扇半开的舱门后,散落着未及带走的晶体。","宝库的能量护盾早已失效,宝藏唾手可得。","储藏室里的容器还亮着微光,里面是珍贵的洞见核心。","一只谐振宝箱静静等候,似乎在等故人归来。"]},choice:{titles:["分岔甬道","低语祭坛","未知装置","回响之井"],descs:["甬道在此分岔,两条路都传来不同的低语。","祭坛上浮动着两团光,你必须选择其一。","未知装置闪烁着两个按钮,你不知道后果。","回响之井倒映出两种可能的未来。"]},puzzle:{titles:["封印之门","谐振锁","记忆机关","维度栅栏"],descs:["一道封印之门需要正确的谐振才能开启。","谐振锁闪烁着复杂的图案,解之有大奖。","记忆机关考验着你的解码技艺。","维度栅栏以谜题为钥,智者得通行。"]},rest:{titles:["休憩节点","能量泉眼","静默之厅","回响营地"],descs:["一处宁静的节点,可在此恢复生命。","能量泉眼涌出暖流,抚慰你的探险队。","静默之厅中,时间仿佛静止,伤痛缓缓消散。","前人留下的营地,尚有补给可用。"]},boss:{titles:["以太回响体","维度守护者","飞升残念","终焉之核"],descs:["路径尽头,以太回响体静静伫立——它是这个遗迹意志的化身。","维度守护者挡在最后,唯有超越它方能触及终焉。","飞升残念凝聚成形,它是以太族离去前留下的最后一道试炼。","终焉之核悬浮于大厅中央,接触它即完成本次探险。"]}};function aD(a,b){return Math.max(.35,Math.min(.95,a/(a+4*b)))}function aE(a,b=Math.random){let c=a.nodes[a.currentNode];if(!c)return{log:"无节点",ended:!0,endReason:"abort"};if(c.cleared){var d;return(d=a).currentNode>=d.nodes.length-1?{log:"探险已完成",ended:!0,endReason:"victory"}:(d.currentNode++,{log:`前进至节点 ${d.currentNode+1}`,ended:!1})}let e=a.power,f=c.difficulty;switch(c.type){case"combat":{let d=aD(e,f);if(b()<d){let a=8+6*f+Math.floor(10*b()),d=1+f+Math.floor(2*b());return c.cleared=!0,{log:`击败「${c.title}」,缴获 ${a} 晶体、${d} 洞见。`,crystals:a,insights:d,ended:!1}}let g=20+10*f+Math.floor(15*b());if(a.hp-g<=0)return c.cleared=!0,{log:`「${c.title}」过于强大,探险队全灭…(生命 -${a.hp})`,hpDelta:-a.hp,ended:!0,endReason:"defeat"};return c.cleared=!0,{log:`「${c.title}」击退了探险队,损失 ${g} 生命,狼狈通过。`,hpDelta:-g,ended:!1}}case"treasure":{let a=10+8*f+Math.floor(15*b()),d=2+f+Math.floor(3*b());return c.cleared=!0,{log:`在「${c.title}」中发现 ${a} 晶体、${d} 洞见。`,crystals:a,insights:d,ended:!1}}case"rest":{let a=15+8*f+Math.floor(10*b());return c.cleared=!0,{log:`在「${c.title}」休整,恢复 ${a} 生命。`,hpDelta:a,ended:!1}}case"puzzle":{let a=Math.min(.9,.4+.01*e);if(b()<a){let a=20+12*f,b=5+3*f,d=1+.5*f;return c.cleared=!0,{log:`解开「${c.title}」,获得 ${a} 晶体、${b} 洞见、${d.toFixed(1)} 接触进度。`,crystals:a,insights:b,contact:d,ended:!1}}return c.cleared=!0,{log:`「${c.title}」未能解开,但探险队平安通过。`,ended:!1}}case"choice":{if(.55>b()){let a=6+5*f+Math.floor(8*b());return c.cleared=!0,{log:`在「${c.title}」做出了明智的选择,获得 ${a} 晶体。`,crystals:a,ended:!1}}let a=8+5*f;return c.cleared=!0,{log:`在「${c.title}」的选择带来了代价,损失 ${a} 生命。`,hpDelta:-a,ended:!1}}case"boss":{let d=aD(e,f),g=b()<d;if(c.cleared=!0,g){let a=60+25*f,b=15+6*f,d=5+1.5*f;return{log:`✦ 击败「${c.title}」!获得 ${a} 晶体、${b} 洞见、${d.toFixed(1)} 接触进度。`,crystals:a,insights:b,contact:d,ended:!0,endReason:"victory"}}return{log:`「${c.title}」的力量超出想象,探险队全军覆没…`,hpDelta:-a.hp,ended:!0,endReason:"defeat"}}}}function aF(a){let b=1;a.tech?.exp_2&&(b*=.7),a.tech?.exp_3&&(b*=.8),a.tech?.exp_4&&(b*=.75),a.tech?.exp_5&&(b*=.7);let c=a.attributes?.exploration??0;return Math.max(8,20*(b*=1-(c>=50?.15+(Math.min(100,c)-50)*.003:.003*c)))}let aG={routine:{label:"常规信标",color:"#34d399",glow:"rgba(52,211,153,0.45)",mult:1,icon:"◍"},anomaly:{label:"异常波动",color:"#fbbf24",glow:"rgba(251,191,36,0.45)",mult:1.6,icon:"◈"},singular:{label:"奇点回响",color:"#f43f5e",glow:"rgba(244,63,94,0.5)",mult:2.4,icon:"✶"}},aH={decode:{label:"解码协议",icon:"❖",unit:"颗",verb:"解码记忆晶体"},expedition:{label:"远征指令",icon:"⬢",unit:"次",verb:"完成遗迹探险"},pulse:{label:"脉冲任务",icon:"✺",unit:"次",verb:"发起脉冲扫描"},boss:{label:"猎杀契约",icon:"☠",unit:"处",verb:"击破维度 BOSS"},insight:{label:"洞见采集",icon:"✦",unit:"点",verb:"累计获取洞见"}};function aI(a=new Date){let b=a.getUTCFullYear(),c=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${b}-${c}-${d}`}function aJ(a){let b=a>>>0;return()=>{b|=0;let a=Math.imul((b=b+0x6d2b79f5|0)^b>>>15,1|b);return(((a=a+Math.imul(a^a>>>7,61|a)^a)^a>>>14)>>>0)/0x100000000}}function aK(a=new Date){let b=aI(a),c=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b>>>0}(b),d=aJ(c),e=["decode","expedition","pulse","boss","insight"],f=e[Math.floor(d()*e.length)],g=d(),h=g<.55?"routine":g<.88?"anomaly":"singular",i=aG[h].mult,j=0,k=0,l=0,m="",n="";switch(f){case"decode":k=Math.round(4*(j=Math.round((6+Math.floor(10*d()))*i))*i),l=.8*j,m=`解码 ${j} 颗记忆晶体`,n=`深空信标要求解码 ${j} 颗晶体。谐振风暴期间效率更高。`;break;case"expedition":k=Math.round(12*(j=Math.max(1,Math.round((1+Math.floor(3*d()))*i)))*i),l=1.5*j,m=`完成 ${j} 次遗迹探险`,n=`派出探险队完成 ${j} 次远征,无论胜负均计入。`;break;case"pulse":k=Math.round(1.2*(j=Math.round((20+Math.floor(30*d()))*i))*i),l=.3*j,m=`发起 ${j} 次脉冲扫描`,n=`主动点击晶体发起 ${j} 次脉冲。连击可叠加加成。`;break;case"boss":k=Math.round(30*(j=Math.max(1,Math.round(i)))*i),l=3*j,m=`击破 ${j} 处维度 BOSS`,n=`在探险终点击破 ${j} 处 BOSS。提升探险力后再挑战。`;break;case"insight":j=Math.round((40+Math.floor(80*d()))*i),k=0,l=.1*j,m=`累计获取 ${j} 洞见`,n=`通过解码、探险、星潮等途径累计 ${j} 洞见。`}return{dateKey:b,type:f,difficulty:h,goal:j,rewardInsight:k,rewardContact:l,seed:c,title:m,desc:n}}function aL(a,b,c){let d=Math.min(1,b/a.goal),e=aG[a.difficulty].mult,f=d>=1&&c>0?Math.max(0,500-.5*c):0;return Math.round(1e3*d*e+f)}let aM="echo-nexus-beacon-lb-v1",aN="echo-nexus-beacon-prog-v1";function aO(){if("u"<typeof localStorage)return[];try{let a=localStorage.getItem(aM);if(!a)return[];return JSON.parse(a).sort((a,b)=>b.score-a.score).slice(0,20)}catch{return[]}}function aP(a){let b=aO();b.push(a),b.sort((a,b)=>b.score-a.score);let c=b.slice(0,20);return"u">typeof localStorage&&localStorage.setItem(aM,JSON.stringify(c)),c}function aQ(a=new Date){let b=aI(a);if("u"<typeof localStorage)return{dateKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};try{let a=localStorage.getItem(aN);if(!a)return{dateKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};let c=JSON.parse(a);if(c.dateKey!==b)return{dateKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};return c}catch{return{dateKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0}}}function aR(a){let b=Math.max(0,Math.floor(a/1e3)),c=String(Math.floor(b/3600)).padStart(2,"0"),d=String(Math.floor(b%3600/60)).padStart(2,"0"),e=String(b%60).padStart(2,"0");return`${c}:${d}:${e}`}let aS="echo-nexus-beacon-weekly-v1";function aT(a=new Date){let b=new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate())),c=(b.getUTCDay()+6)%7;b.setUTCDate(b.getUTCDate()-c+3);let d=b.getUTCFullYear(),e=Date.UTC(d,0,1),f=Math.ceil(((b.getTime()-e)/864e5+1)/7);return`${d}-W${String(f).padStart(2,"0")}`}function aU(a=new Date){let b=aT(a),c=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b>>>0}(b),d=aJ(c),e=["decode","expedition","pulse","boss","insight"],f=e[Math.floor(d()*e.length)],g=.6>d()?"anomaly":"singular",h=aG[g].mult,i=3+Math.floor(3*d()),j=0,k=0,l=0,m="",n="";switch(f){case"decode":k=Math.round(5*(j=Math.max(18,Math.round((6+Math.floor(10*d()))*h*i)))*h),l=1.2*j,m=`周界解码 \xb7 ${j} 颗晶体`,n=`本周深空信标要求解码 ${j} 颗记忆晶体,强度为日挑战的 ${i} 倍。`;break;case"expedition":k=Math.round(14*(j=Math.max(3,Math.round((1+Math.floor(3*d()))*h*i)))*h),l=2*j,m=`周界远征 \xb7 ${j} 次探险`,n=`本周派出探险队完成 ${j} 次远征,无论胜负均计入。`;break;case"pulse":k=Math.round(1.5*(j=Math.max(60,Math.round((20+Math.floor(30*d()))*h*i)))*h),l=.4*j,m=`周界脉冲 \xb7 ${j} 次扫描`,n=`本周发起 ${j} 次脉冲扫描。连击可叠加加成。`;break;case"boss":k=Math.round(35*(j=Math.max(3,Math.round(i*h)))*h),l=4*j,m=`周界猎杀 \xb7 ${j} 处 BOSS`,n=`本周在探险终点击破 ${j} 处维度 BOSS。提升探险力后再挑战。`;break;case"insight":j=Math.max(120,Math.round((40+Math.floor(80*d()))*h*i)),k=0,l=.15*j,m=`周界洞见 \xb7 ${j} 点`,n=`本周通过解码、探险、星潮等途径累计 ${j} 洞见。`}return{weekKey:b,type:f,difficulty:g,goal:j,rewardInsight:k,rewardContact:l,seed:c,title:m,desc:n}}function aV(a=new Date){let b=aT(a),c={weekKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};if("u"<typeof localStorage)return c;try{let a=localStorage.getItem(aS);if(!a)return c;let d=JSON.parse(a);if(d.weekKey!==b)return c;return d}catch{return c}}let aW="echo-nexus-beacon-chain-v1",aX=[3,7,14,30],aY=[{milestone:3,rewardInsight:50,rewardContact:5,label:"三日谐振"},{milestone:7,rewardInsight:120,rewardContact:12,label:"七日回响"},{milestone:14,rewardInsight:280,rewardContact:28,label:"半月星潮"},{milestone:30,rewardInsight:680,rewardContact:68,label:"满月飞升"}];function aZ(){let a=()=>({lastCompletedDateKey:"",currentStreak:0,longestStreak:0,totalCompletions:0,graceUsed:0,milestonesClaimed:[]});if("u"<typeof localStorage)return a();try{let b=localStorage.getItem(aW);if(!b)return a();let c=JSON.parse(b);return{lastCompletedDateKey:c.lastCompletedDateKey??"",currentStreak:c.currentStreak??0,longestStreak:c.longestStreak??0,totalCompletions:c.totalCompletions??0,graceUsed:c.graceUsed??0,milestonesClaimed:Array.isArray(c.milestonesClaimed)?[...c.milestonesClaimed]:[]}}catch{return a()}}function a$(a){for(let b of aX)if(a<b)return b;return null}let a_="echo-nexus-beacon-timed-v1";function a0(a=new Date){let b=a.getUTCFullYear(),c=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0"),e=4*Math.floor(a.getUTCHours()/4);return`timed_${b}-${c}-${d}_${String(e).padStart(2,"0")}`}function a1(a=new Date){let b=4*Math.floor(a.getUTCHours()/4);return Math.max(0,Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),b,0,0)+144e5-a.getTime())}function a2(a=new Date){let b=a0(a),c=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c++)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return b>>>0}(b),d=aJ(c),e=function(a){let b=a.match(/^timed_(\d{4})-(\d{2})-(\d{2})_(\d{2})$/);if(!b)return Date.now();let[,c,d,e,f]=b;return Date.UTC(Number(c),Number(d)-1,Number(e),Number(f),0,0)}(b)+144e5,f=["decode","expedition","pulse","boss","insight"],g=f[Math.floor(d()*f.length)],h="routine",i=aG[h].mult,j=.3+.2*d(),k=0,l=0,m=0,n="",o="";switch(g){case"decode":l=Math.round(3*(k=Math.max(2,Math.round((6+Math.floor(10*d()))*i*j)))*i),m=.6*k,n=`限时解码 ${k} 颗晶体`,o=`4 小时内解码 ${k} 颗记忆晶体。短周期,快速完成。`;break;case"expedition":l=Math.round(9*(k=Math.max(1,Math.round((1+Math.floor(3*d()))*i*j)))*i),m=1.2*k,n=`限时远征 ${k} 次探险`,o=`4 小时内完成 ${k} 次遗迹探险。`;break;case"pulse":l=Math.round((k=Math.max(6,Math.round((20+Math.floor(30*d()))*i*j)))*i),m=.25*k,n=`限时脉冲 ${k} 次扫描`,o=`4 小时内发起 ${k} 次脉冲扫描。`;break;case"boss":l=Math.round(25*(k=Math.max(1,Math.round(i*j)))*i),m=2.5*k,n=`限时猎杀 ${k} 处 BOSS`,o=`4 小时内击破 ${k} 处维度 BOSS。`;break;case"insight":k=Math.max(12,Math.round((40+Math.floor(80*d()))*i*j)),l=0,m=.08*k,n=`限时洞见 ${k} 点`,o=`4 小时内累计获取 ${k} 洞见。`}return{slotKey:b,type:g,difficulty:h,goal:k,rewardInsight:l,rewardContact:m,seed:c,title:n,desc:o,expiresAt:e}}function a3(a=new Date){let b=a0(a),c={slotKey:b,progress:0,startedAt:Date.now(),completedAt:null,claimed:!1,durationSec:0};if("u"<typeof localStorage)return c;try{let a=localStorage.getItem(a_);if(!a)return c;let d=JSON.parse(a);if(d.slotKey!==b)return c;return d}catch{return c}}let a4="echo-nexus-beacon-cloud-last-submit-v1",a5="/api/leaderboard?XTransformPort=3030";function a6(){if("u"<typeof localStorage)return 0;try{let a=localStorage.getItem(a4);return a&&Number(a)||0}catch{return 0}}async function a7(){try{let a=await fetch(a5,{method:"GET",headers:{Accept:"application/json"}});if(!a.ok)return[];let b=await a.json();if(!b||!Array.isArray(b.entries))return[];return b.entries}catch{return[]}}async function a8(a){try{let b=await fetch(a5,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({entry:a})});if(!b.ok)return -1;let c=await b.json();return c&&"number"==typeof c.rank&&c.rank>=1&&function(a){if("u">typeof localStorage)try{localStorage.setItem(a4,String(a))}catch{}}(a.timestamp),c?.rank??-1}catch{return -1}}function a9(a){let b=av(a);return{crystalsPerSec:b.crystalsPerSec,crystalCap:b.crystalCap,pulsePower:b.pulsePower,offlineEff:b.offlineEff,insightMult:b.insightMult,contactRateMult:b.contactRateMult,autoDecode:b.autoDecode,decodeStepsBonus:b.decodeStepsBonus}}function ba(a,b){return{dailyJustCompleted:!1,timedJustCompleted:!1,weeklyJustCompleted:!1,newChainMilestones:[]}}function bb(a){let b=[];for(let c of M)!a.fragments[c.id]&&a.totalDecoded>=c.threshold&&(a.fragments[c.id]=!0,b.push(c.id));return b}let bc=(e?C(e):C)((f=(a,b)=>({...ax(),_lastAutoDecode:Date.now(),_lastSpawn:Date.now(),_combo:0,_lastPulse:0,_achievementQueue:[],_tideEvents:[],globalTide:null,init:()=>{let c=b(),d=Date.now(),e=c.activePuzzle;if(e&&!aA(e)){let b={id:`c_${d}_rec`,tier:e.tier,value:G[e.tier].crystals,createdAt:d};e=null,a({pendingCrystals:[...c.pendingCrystals,b].slice(-6)})}let f=c.achievements??{},g=c.activeTide??null,h=c.constellation??[],i=c.pendingPerkChoices??null,j={chronicle:Array.isArray(c.chronicle)?c.chronicle:[],runStart:c.runStart||{timestamp:c.createdAt||Date.now(),techsUnlocked:Object.keys(c.tech||{}).length,expeditionsCompleted:c.totalExpeditions||0,bossKills:c.bossKills||0,starTidesEncountered:[...c.starTidesEncountered||[]],crystalsDecoded:c.totalDecoded||0},bossKills:"number"==typeof c.bossKills?c.bossKills:0,starTidesEncountered:Array.isArray(c.starTidesEncountered)?c.starTidesEncountered:[]},k=as(c),l=$(h),m=F.energyMax+l.energyMaxBonus,n=c.lastTideEnd??0,o=g&&g.endsAt>d?g:null,p=Math.max(0,(d-c.lastTick)/1e3);if(p>5){let b=Math.min(p,28800),g=c.crystalsPerSec*b*c.offlineEff,l=(c.crystals,Math.min(c.crystalCap,c.crystals+g));c.crystalsPerSec,c.offlineEff,c.crystalCap,a({crystals:l,lastTick:d,activePuzzle:e,achievements:f,activeTide:o,lastTideEnd:n,constellation:h,pendingPerkChoices:i,energyMax:m,chronicle:j.chronicle,runStart:j.runStart,bossKills:j.bossKills,starTidesEncountered:j.starTidesEncountered,attributes:k.attributes,attributeProgress:k.attributeProgress,pendingAttrPoints:k.pendingAttrPoints,...a9({tech:c.tech,blueprints:c.blueprints,achievements:f,activeTide:o,constellation:h,attributes:k.attributes})})}else a({lastTick:d,activePuzzle:e,achievements:f,activeTide:o,lastTideEnd:n,constellation:h,pendingPerkChoices:i,energyMax:m,chronicle:j.chronicle,runStart:j.runStart,bossKills:j.bossKills,starTidesEncountered:j.starTidesEncountered,attributes:k.attributes,attributeProgress:k.attributeProgress,pendingAttrPoints:k.pendingAttrPoints,...a9({tech:c.tech,blueprints:c.blueprints,achievements:f,activeTide:o,constellation:h,attributes:k.attributes})})},loadOnline:()=>{let c=b();a({...a9({tech:c.tech,blueprints:c.blueprints,achievements:c.achievements,activeTide:c.activeTide,constellation:c.constellation,attributes:c.attributes})})},hardReset:()=>{a({...ax(),_lastAutoDecode:Date.now(),_lastSpawn:Date.now(),_combo:0,_lastPulse:0,_achievementQueue:[],_tideEvents:[],globalTide:null})},tickTide:c=>{let d=b();if(d.globalTide){if(c>=d.globalTide.endsAt){let b=d.globalTide.type,e=0;"silence"===b&&(e=W({type:b,startedAt:d.globalTide.startedAt,endsAt:d.globalTide.endsAt,id:d.globalTide.id}));let f={ended:b,isGlobal:!0};return e>0&&(f.silenceCompensation=e),a({globalTide:null,activeTide:null,lastTideEnd:c,insights:d.insights+e,...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:null,constellation:d.constellation,attributes:d.attributes}),_tideEvents:[...d._tideEvents,f]}),f}return null}let e=d.activeTide,f=$(d.constellation??[]),g=Math.min(.3,an(d.attributes??{}).tideTriggerBonus),h=Math.max(15e3,(4e4+1e3*f.tideGapDeltaSec)*(1-g));if(e&&c>=e.endsAt){let b=e.type,f=0;"silence"===e.type&&(f=W(e));let g=d.insights+f,h={ended:b};return f>0&&(h.silenceCompensation=f),a({activeTide:null,lastTideEnd:c,insights:g,...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:null,constellation:d.constellation,attributes:d.attributes}),_tideEvents:[...d._tideEvents,h]}),h}if(!e&&c-d.lastTideEnd>=(0===d.lastTideEnd||d.lastTideEnd<=d.createdAt+1e3?3e4:h)){let b=function(a=Math.random){let b=Object.values(U).reduce((a,b)=>a+b,0),c=a()*b;for(let a of Object.keys(U))if((c-=U[a])<=0)return a;return"crystal"}(),e={id:`tide_${c}_${Math.random().toString(36).slice(2,7)}`,type:b,startedAt:c,endsAt:c+75e3},f={started:b},g=d.starTidesEncountered??[],h=`tide_${b}`;return a({activeTide:e,starTidesEncountered:g.includes(h)?g:[...g,h],...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:e,constellation:d.constellation,attributes:d.attributes}),_tideEvents:[...d._tideEvents,f]}),f}return null},consumeTideEvents:()=>{let c=b();if(0===c._tideEvents.length)return[];let d=c._tideEvents;return a({_tideEvents:[]}),d},triggerGlobalTide:c=>{let d=b(),e=Date.now(),f=`global_tide_${e}_${Math.random().toString(36).slice(2,7)}`,g={id:f,type:c,startedAt:e,endsAt:e+6e4},h=d.starTidesEncountered??[],i=`tide_${c}`;a({globalTide:{type:c,startedAt:e,endsAt:e+6e4,id:f},activeTide:g,starTidesEncountered:h.includes(i)?h:[...h,i],...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:g,constellation:d.constellation,attributes:d.attributes}),_tideEvents:[...d._tideEvents,{started:c,isGlobal:!0}]})},tick:c=>{let d=b(),e=Math.max(0,(c-d.lastTick)/1e3);if(e<=0)return;let f=V(d.activeTide),g=d.crystalsPerSec*f.crystalsPerSecMult,h=d.crystals>=d.crystalCap?d.crystals:Math.min(d.crystalCap,d.crystals+g*e),i=1+.03*d.blueprints.length,j=d.pendingCrystals,k=d._lastSpawn;if(c-k>8/i*1e3&&j.length<6){let a=function(a,b=Math.random){if(a<=0)return function(a=Math.random){let b=a();return b<.7?1:b<.95?2:3}(b);let c=b(),d=Math.min(.5,a),e=.7-.7*d;return c<e?1:c<e+(.25+.25*d*.7)?2:3}($(d.constellation??[]).t2t3BonusRate);j=[...j,{id:`c_${c}_${Math.random().toString(36).slice(2,7)}`,tier:a,value:G[a].crystals,createdAt:c}],k=c}let l=d.energy,m=d.lastEnergyTick;if(l<d.energyMax){let a=aF(d),b=function(a,b,c,d,e=20){let f=1e3*e,g=Math.floor((b-a)/f);return g<=0?{energy:c,lastTick:a}:{energy:Math.min(d,c+g),lastTick:a+g*f}}(m,c,l,d.energyMax,a);l=b.energy,m=b.lastTick}else m=c;a({crystals:h,lastTick:c,pendingCrystals:j,_lastSpawn:k,energy:l,lastEnergyTick:m})},pulse:()=>{let c=b(),d=Date.now(),e=1;d-c._lastPulse<1500&&(e=Math.min(10,c._combo+1));let f=1+(e-1)*.15,g=V(c.activeTide),h=1+an(c.attributes??{}).pulseComboBonus*Math.max(0,e-1),i=c.pulsePower*f*g.pulsePowerMult*h;if(a({crystals:Math.min(c.crystalCap,c.crystals+i),_combo:e,_lastPulse:d}),ba("pulse",1),e>=3){let b=1+Math.floor(e/2),d=ap({exp:(c.attributeProgress?.inspiration??{exp:0,level:c.attributes?.inspiration??0}).exp+b,level:c.attributes?.inspiration??0},100),f={...c.attributes??ar(),inspiration:d.newProgress.level};a({attributes:f,attributeProgress:{...c.attributeProgress??aq(),inspiration:d.newProgress},...a9({tech:c.tech,blueprints:c.blueprints,achievements:c.achievements,activeTide:c.activeTide,constellation:c.constellation,attributes:f})})}return{gain:i,combo:e}},startDecode:c=>{let d=b(),e=d.pendingCrystals.find(a=>a.id===c);if(!e)return;let f=V(d.activeTide).targetLenBonus??0;a({activePuzzle:az(e.tier,void 0,f),pendingCrystals:d.pendingCrystals.filter(a=>a.id!==c)})},clickNode:c=>{let d=b();if(!d.activePuzzle)return{ok:!1,finished:!1,failReason:"无活跃谜题"};let e=JSON.parse(JSON.stringify(d.activePuzzle)),f=function(a,b){let c=a.grid.find(a=>a.id===b);if(!c)return{ok:!1,finished:!1,failReason:"无效节点"};if(c.used)return{ok:!1,finished:!1,failReason:"节点已使用"};let d=a.path.length;if(c.color!==a.target[d])return{ok:!1,finished:!1,failReason:"谐振不匹配"};if(d>0){var e;if(e=a.grid.find(b=>b.id===a.path[d-1]),Math.abs(e.row-c.row)+Math.abs(e.col-c.col)!==1)return{ok:!1,finished:!1,failReason:"节点不相邻"}}return d>=a.stepLimit?{ok:!1,finished:!1,failReason:"步数耗尽"}:(c.used=!0,a.path.push(b),{ok:!0,finished:a.path.length>=a.target.length})}(e,c);if(f.ok){if(f.finished){let b=V(d.activeTide),c=$(d.constellation??[]),f=ay(e.tier,d.insightMult,d.contactRateMult),g=b.decodeRewardMult*c.decodeRewardMult,h={crystals:Math.round(f.crystals*g),insights:Math.round(f.insights*g),contact:+(f.contact*g).toFixed(2)},i=d.totalDecoded+1,j=Math.min(100,d.contact+h.contact),k=d.insights+h.insights,l=d.crystals+h.crystals,m={...d,totalDecoded:i,fragments:{...d.fragments}},n=bb(m),o=2*e.tier,p=d.attributes??ar(),q=d.attributeProgress??aq(),r=ap({exp:(q.wisdom??{exp:0,level:p.wisdom}).exp+o,level:p.wisdom},100),s={...p,wisdom:r.newProgress.level},t={...q,wisdom:r.newProgress};return a({activePuzzle:null,crystals:l,insights:k,contact:j,totalDecoded:i,fragments:m.fragments,attributes:s,attributeProgress:t,...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:d.activeTide,constellation:d.constellation,attributes:s})}),ba("decode",1),ba("insight",h.insights),{ok:!0,finished:!0,failReason:n.join(",")||void 0}}let b=aA(e);return a({activePuzzle:e}),{ok:!0,finished:!1,solvable:b}}return f},undoStep:()=>{let c=b();if(!c.activePuzzle||0===c.activePuzzle.path.length)return;let d=JSON.parse(JSON.stringify(c.activePuzzle)),e=d.path.pop();if(void 0!==e){let a=d.grid.find(a=>a.id===e);a&&(a.used=!1)}a({activePuzzle:d})},retryPuzzle:()=>{let c=b();if(c.activePuzzle){var d;a({activePuzzle:az((d=c.activePuzzle).tier,d.seed+1)})}},abandonPuzzle:()=>{let c=b();if(!c.activePuzzle)return;let d={id:`c_${Date.now()}_ret`,tier:c.activePuzzle.tier,value:G[c.activePuzzle.tier].crystals,createdAt:Date.now()};a({activePuzzle:null,pendingCrystals:[...c.pendingCrystals,d].slice(-6)})},autoDecodeTick:()=>{let c=b();if(!c.autoDecode)return;let d=Date.now(),e=$(c.constellation??[]),f=an(c.attributes??{}),g=12e3+1e3*e.autoDecodeIntervalDeltaSec,h=V(c.activeTide).autoDecodeIntervalMult??1,i=Math.max(5e3,g*f.autoDecodeIntervalMult*h);if(d-c._lastAutoDecode<i)return;let j=1,k=c.pendingCrystals.findIndex(a=>1===a.tier);if(k<0&&c.tech?.dec_5&&(k=c.pendingCrystals.findIndex(a=>2===a.tier),j=2),k<0)return;let l=c.pendingCrystals[k],m=V(c.activeTide),n=ay(j,c.insightMult,c.contactRateMult),o=m.decodeRewardMult*e.decodeRewardMult,p={crystals:Math.round(n.crystals*o),insights:Math.round(n.insights*o),contact:+(n.contact*o).toFixed(2)},q=c.totalDecoded+1,r={...c,totalDecoded:q,fragments:{...c.fragments}};bb(r);let s=c.attributes??ar(),t=c.attributeProgress??aq(),u=ap({exp:(t.wisdom??{exp:0,level:s.wisdom}).exp+1,level:s.wisdom},100),v={...s,wisdom:u.newProgress.level},w={...t,wisdom:u.newProgress};a({pendingCrystals:c.pendingCrystals.filter(a=>a.id!==l.id),crystals:c.crystals+p.crystals,insights:c.insights+p.insights,contact:Math.min(100,c.contact+p.contact),totalDecoded:q,fragments:r.fragments,_lastAutoDecode:d,attributes:v,attributeProgress:w,...a9({tech:c.tech,blueprints:c.blueprints,achievements:c.achievements,activeTide:c.activeTide,constellation:c.constellation,attributes:v})}),ba("decode",1),ba("insight",p.insights)},buyTech:c=>{let d=b(),e=K.find(a=>a.id===c);if(!e||(d.tech[c]??0)>=1||d.insights<e.cost)return!1;let f={...d.tech,[c]:1};return a({insights:d.insights-e.cost,tech:f,...a9({tech:f,blueprints:d.blueprints,achievements:d.achievements,activeTide:d.activeTide,constellation:d.constellation,attributes:d.attributes})}),!0},startExpedition:()=>{let c,d,e,f,g=b();if(g.activeExpedition&&!g.activeExpedition.finished)return{ok:!1,reason:"已有进行中的探险"};if(g.energy<1)return{ok:!1,reason:"能量不足"};let h=V(g.activeTide),i=an(g.attributes??{}),j=(c=10,d=g.tech?.exp_1??0,e=g.tech?.exp_2??0,f=g.tech?.exp_3??0,c+=3*d+5*e+8*f+12*(g.tech?.exp_4??0)+25*(g.tech?.exp_5??0),Math.round(c*=(1+(g.blueprints?.length??0)*.08)*(1+(g.ascensions??0)*.15)*$(g.constellation??[]).expeditionPowerMult)+h.expeditionPowerBonus),k=Math.round((100+(g.tech?.exp_2??0)*20+(g.tech?.exp_4??0)*30+(g.tech?.exp_5??0)*50+(g.ascensions??0)*10)*$(g.constellation??[]).expeditionHpMult)+h.expeditionHpBonus;return a({activeExpedition:function(a,b,c){let d,e=(d=a>>>0,()=>{d|=0;let a=Math.imul((d=d+0x6d2b79f5|0)^d>>>15,1|d);return(((a=a+Math.imul(a^a>>>7,61|a)^a)^a>>>14)>>>0)/0x100000000}),f=5+Math.floor(3*e()),g=[];for(let a=0;a<f;a++){let b=a===f-1,c=b?"boss":function(a){let b=Object.keys(aB),c=b.reduce((a,b)=>a+aB[b],0),d=a()*c;for(let a of b)if((d-=aB[a])<=0)return a;return"combat"}(e),d=aC[c],h=Math.floor(e()*d.titles.length);g.push({id:a,type:c,title:d.titles[h],desc:d.descs[h],cleared:!1,difficulty:b?3+Math.floor(3*e()):1+Math.floor(4*e()),position:a})}if("combat"===g[0].type||"boss"===g[0].type){g[0].type=.5>e()?"treasure":"rest";let a=aC[g[0].type];g[0].title=a.titles[0],g[0].desc=a.descs[0],g[0].difficulty=1}return{id:`exp_${a}_${Date.now()}`,nodes:g,currentNode:0,finished:!1,rewards:{crystals:0,insights:0,contact:0,fragments:[]},power:b,hp:c,maxHp:c,seed:a,startedAt:Date.now()}}(Math.floor(1e9*Math.random()),Math.round(j*i.expeditionPowerMult),k+i.expeditionHpBonus),energy:g.energy-1,totalExpeditions:g.totalExpeditions+1}),{ok:!0}},resolveCurrentNode:()=>{let c=b();if(!c.activeExpedition||c.activeExpedition.finished)return null;let d=JSON.parse(JSON.stringify(c.activeExpedition)),e=d.nodes[d.currentNode],f=e?.type==="boss",g=an(c.attributes??{}),h=V(c.activeTide).bossWinRateBonus??0,i=f?aE(d,()=>{let a=Math.random(),b=Math.min(.95,g.bossWinRateBonus+h);return a<b?0:Math.min(1,a-b)}):aE(d);i.crystals&&(d.rewards.crystals+=i.crystals),i.insights&&(d.rewards.insights+=i.insights),i.contact&&(d.rewards.contact+=i.contact),i.fragments&&d.rewards.fragments.push(...i.fragments),i.hpDelta&&(d.hp=Math.max(0,Math.min(d.maxHp,d.hp+i.hpDelta)));let j=c.crystals+(i.crystals||0),k=c.insights+(i.insights||0),l=Math.min(100,c.contact+(i.contact||0)),m={...c.fragments};if(i.fragments)for(let a of i.fragments)m[a]=!0;let n=[{expeditionId:d.id,nodeType:e?.type||"combat",result:i.log,rewards:[i.crystals?`+${i.crystals}晶体`:"",i.insights?`+${i.insights}洞见`:"",i.contact?`+${i.contact.toFixed(1)}接触`:"",i.hpDelta?`${i.hpDelta>0?"+":""}${i.hpDelta}生命`:""].filter(Boolean).join(" "),timestamp:Date.now()},...c.expeditionLog].slice(0,30);i.ended&&(d.finished=!0);let o=c.lastExpeditionSummary??null;i.ended&&("victory"===i.endReason||"defeat"===i.endReason)&&(o={result:i.endReason,rewards:{...d.rewards},nodeCount:d.nodes.length,finishedAt:Date.now()});let p=c.bossKills??0,q=!1;i.ended&&"victory"===i.endReason&&e?.type==="boss"&&(p+=1,q=!0);let r=c.attributes??ar(),s=c.attributeProgress??aq(),t=!1,u=(e?.type==="combat"||e?.type==="boss")&&!i.ended,v=i.ended&&"victory"===i.endReason;if(u||q||v){let a=q?8:2,b=q?6:v?4:1,c=ap({exp:s.courage.exp+a,level:r.courage},100),d=ap({exp:s.exploration.exp+b,level:r.exploration},100);r={...r,courage:c.newProgress.level,exploration:d.newProgress.level},s={...s,courage:c.newProgress,exploration:d.newProgress},t=!0}return a({activeExpedition:i.ended?null:d,crystals:j,insights:k,contact:l,fragments:m,expeditionLog:n,bossKills:p,attributes:r,attributeProgress:s,lastExpeditionSummary:o,...t?a9({tech:c.tech,blueprints:c.blueprints,achievements:c.achievements,activeTide:c.activeTide,constellation:c.constellation,attributes:r}):{}}),i.ended&&(ba("expedition",1),q&&ba("boss",1)),i.insights&&ba("insight",i.insights),i},advanceNode:()=>{let c=b();if(!c.activeExpedition||c.activeExpedition.finished)return;let d=JSON.parse(JSON.stringify(c.activeExpedition)),e=d.nodes[d.currentNode];e&&e.cleared&&(d.currentNode>=d.nodes.length-1||(d.currentNode++,a({activeExpedition:d})))},abortExpedition:()=>{let c=b();if(!c.activeExpedition)return;let d=JSON.parse(JSON.stringify(c.activeExpedition)),e={expeditionId:d.id,nodeType:"rest",result:"探险队主动撤退,保留已获奖励。",rewards:"",timestamp:Date.now()},f={result:"abort",rewards:{...d.rewards},nodeCount:d.nodes.length,finishedAt:Date.now()};a({activeExpedition:null,expeditionLog:[e,...c.expeditionLog].slice(0,30),lastExpeditionSummary:f})},dismissExpedition:()=>{let c=b();c.activeExpedition&&c.activeExpedition.finished&&a({activeExpedition:null})},doPrestige:()=>{let c,d,e,f,g,h,i,j,k,l,m,n,o,p,q=b();if(q.contact<100)return null;let r=aw(q),s=(c=aw(q),d=[...q.blueprints,...Array.from({length:c},(a,b)=>`bp_${Date.now()}_${b}`)].slice(0,6),e=_(q.constellation??[]),f=$(q.constellation??[]),g=function(a,b=[]){let c,d,e,f,g,h,i=a.ascensions+1,j=(c=Date.now(),{durationSec:Math.max(1,Math.floor((c-(d=a.runStart).timestamp)/1e3)),techsThisRun:Math.max(0,Object.keys(a.tech||{}).length-d.techsUnlocked),expThisRun:Math.max(0,a.totalExpeditions-d.expeditionsCompleted),bossKillsThisRun:Math.max(0,a.bossKills-d.bossKills),decodedThisRun:Math.max(0,a.totalDecoded-d.crystalsDecoded),newTides:(a.starTidesEncountered||[]).filter(a=>!(d.starTidesEncountered||[]).includes(a))}),k=a.createdAt+7919*i>>>0,l=(e=(i-1)%ae.length,g=k%(f=ae[e]).suffixes.length,`${f.prefix} \xb7 ${f.suffixes[g]}`),m=(h=[],1===a.ascensions+1&&h.push("首次飞升"),j.expThisRun>0&&0===a.runStart.expeditionsCompleted&&h.push("首次完成遗迹探险"),j.bossKillsThisRun>0&&h.push("首杀维度 BOSS"),j.decodedThisRun>=10&&h.push(`单周目解码 ${j.decodedThisRun} 颗`),j.decodedThisRun>=30&&h.push(`单周目解码 ${j.decodedThisRun} 颗`),j.techsThisRun>=5&&h.push("技术狂人"),j.newTides.length>=3&&h.push("星潮亲历者"),(a.constellation?.length||0)>=6&&h.push("星图六分"),(a.constellation?.length||0)>=12&&h.push("星图十二宫"),h),n=Math.min(a.blueprints.length+1,6),o=aj({ascensionNumber:i,epochName:l,durationSec:j.durationSec,techsThisRun:j.techsThisRun,expThisRun:j.expThisRun,bossKillsThisRun:j.bossKillsThisRun,decodedThisRun:j.decodedThisRun,newTides:j.newTides,perksThisAscension:b,blueprintsAfter:n,milestones:m});return{ascensionNumber:i,epochName:l,timestamp:Date.now(),durationSec:j.durationSec,summary:{techsUnlocked:Object.keys(a.tech||{}).length,constellationsTotal:a.constellation?.length||0,expeditionsCompleted:a.totalExpeditions,bossKills:a.bossKills,starTidesEncountered:a.starTidesEncountered?.length||0,blueprintsAfter:n,crystalsDecoded:a.totalDecoded,crystalsDecodedThisRun:j.decodedThisRun,techsThisRun:j.techsThisRun,expeditionsThisRun:j.expThisRun,bossKillsThisRun:j.bossKillsThisRun},perksThisAscension:b,tidesThisRun:j.newTides,lore:o,milestones:m}}(q,[]),h=[...q.chronicle||[],g].slice(-200),i={timestamp:Date.now(),techsUnlocked:Object.keys(q.tech||{}).length,expeditionsCompleted:q.totalExpeditions,bossKills:q.bossKills,starTidesEncountered:[...q.starTidesEncountered||[]],crystalsDecoded:q.totalDecoded},k=(j=as(q)).attributes,l=aq(),m=2*(q.ascensions??0)+1,n=j.pendingAttrPoints+m,o=ax(),p=av({tech:{},blueprints:d,achievements:q.achievements,constellation:q.constellation,attributes:k}),{...o,fragments:q.fragments,totalDecoded:q.totalDecoded,ascensions:q.ascensions+1,blueprints:d,achievements:q.achievements,constellation:q.constellation,pendingPerkChoices:e.length>0?e:null,crystals:f.prestigeStartCrystals,insights:f.prestigeStartInsights,theme:q.theme,soundOn:q.soundOn,createdAt:q.createdAt,lastTick:Date.now(),lastEnergyTick:Date.now(),expeditionLog:q.expeditionLog,totalExpeditions:q.totalExpeditions,bossKills:q.bossKills,starTidesEncountered:q.starTidesEncountered,chronicle:h,runStart:i,activeTide:null,lastTideEnd:Date.now(),attributes:k,attributeProgress:l,pendingAttrPoints:n,...p}),t=$(s.constellation??[]),u=F.energyMax+t.energyMaxBonus;return a({...s,energyMax:u,...a9({tech:s.tech,blueprints:s.blueprints,achievements:s.achievements,activeTide:s.activeTide,constellation:s.constellation,attributes:s.attributes}),_lastAutoDecode:Date.now(),_lastSpawn:Date.now(),_combo:0,_lastPulse:0,_tideEvents:[]}),{newBp:r}},chooseConstellationPerk:c=>{let d=b();if(!d.pendingPerkChoices||!d.pendingPerkChoices.includes(c)||!Z(c)||d.constellation?.includes(c))return!1;let e=[...d.constellation??[],c],f=$(e),g=F.energyMax+f.energyMaxBonus,h=d.chronicle??[],i=h;if(h.length>0){let a=function(a,b){if(a.perksThisAscension.length===b.length&&a.perksThisAscension.every((a,c)=>a===b[c]))return a;let c=aj({ascensionNumber:a.ascensionNumber,epochName:a.epochName,durationSec:a.durationSec,techsThisRun:a.summary.techsThisRun??a.summary.techsUnlocked,expThisRun:a.summary.expeditionsThisRun??a.summary.expeditionsCompleted,bossKillsThisRun:a.summary.bossKillsThisRun??a.summary.bossKills,decodedThisRun:a.summary.crystalsDecodedThisRun,newTides:a.tidesThisRun||[],perksThisAscension:b,blueprintsAfter:a.summary.blueprintsAfter,milestones:a.milestones||[]});return{...a,perksThisAscension:b,lore:c}}(h[h.length-1],[c]);i=[...h.slice(0,-1),a]}return a({constellation:e,pendingPerkChoices:null,energyMax:g,chronicle:i,...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:d.activeTide,constellation:e,attributes:d.attributes})}),!0},rerollPerkChoices:()=>{let c=b();if(!c.pendingPerkChoices)return;let d=_(c.constellation??[]);d.length>0&&a({pendingPerkChoices:d})},checkAchievements:()=>{let c=b(),d=[],e={...c.achievements},f=c.crystals,g=c.insights,h=c.contact,i=!1;for(let a of R)!e[a.id]&&a.check(c)&&(e[a.id]=!0,d.push(a),a.reward.crystals&&(f+=a.reward.crystals),a.reward.insights&&(g+=a.reward.insights),a.reward.contact&&(h=Math.min(100,h+a.reward.contact)),(a.reward.crystalsPerSecPct||a.reward.insightPct)&&(i=!0));return 0===d.length?[]:(a({achievements:e,crystals:f,insights:g,contact:h,...i?a9({tech:c.tech,blueprints:c.blueprints,achievements:e,activeTide:c.activeTide,constellation:c.constellation,attributes:c.attributes}):{},_achievementQueue:[...c._achievementQueue,...d]}),d)},consumeAchievementQueue:()=>{let c=b();if(0===c._achievementQueue.length)return[];let d=c._achievementQueue;return a({_achievementQueue:[]}),d},canPrestige:()=>b().contact>=100,toggleTheme:()=>a({theme:"dark"===b().theme?"light":"dark"}),toggleSound:()=>a({soundOn:!b().soundOn}),grantBeaconReward:(c,d)=>{let e=b();a({insights:e.insights+Math.round(c),contact:Math.min(100,e.contact+d)})},claimWeeklyBeacon:()=>{let c=function(a,b){var c;if(b.claimed||null===b.completedAt)return{rewardInsight:0,rewardContact:0,score:0,leaderboard:aO()};let d=aL({...a,dateKey:a.weekKey},b.progress,b.durationSec),e={timestamp:Date.now(),dateKey:a.weekKey,challenge:a.type,difficulty:a.difficulty,progress:b.progress/a.goal,score:d,durationSec:b.durationSec,isWeekly:!0},f=aP(e);return c={...b,claimed:!0},"u">typeof localStorage&&localStorage.setItem(aS,JSON.stringify(c)),{rewardInsight:a.rewardInsight,rewardContact:a.rewardContact,score:d,leaderboard:f,entry:e}}(aU(),aV());if(c.rewardInsight>0||c.rewardContact>0){let d=b();a({insights:d.insights+Math.round(c.rewardInsight),contact:Math.min(100,d.contact+c.rewardContact)}),c.entry&&a8(c.entry)}return{rewardInsight:c.rewardInsight,rewardContact:c.rewardContact,score:c.score}},claimTimedBeacon:()=>{let c=function(a,b){var c;if(b.claimed||null===b.completedAt)return{rewardInsight:0,rewardContact:0,score:0,leaderboard:aO()};let d=aL({...a,dateKey:a.slotKey},b.progress,b.durationSec),e={timestamp:Date.now(),dateKey:a.slotKey,challenge:a.type,difficulty:a.difficulty,progress:b.progress/a.goal,score:d,durationSec:b.durationSec,isTimed:!0},f=aP(e);return c={...b,claimed:!0},"u">typeof localStorage&&localStorage.setItem(a_,JSON.stringify(c)),{rewardInsight:a.rewardInsight,rewardContact:a.rewardContact,score:d,leaderboard:f,entry:e}}(a2(),a3());if(c.rewardInsight>0||c.rewardContact>0){let d=b();a({insights:d.insights+Math.round(c.rewardInsight),contact:Math.min(100,d.contact+c.rewardContact)}),c.entry&&a8(c.entry)}return{rewardInsight:c.rewardInsight,rewardContact:c.rewardContact,score:c.score}},claimChainReward:c=>{let d=aZ();if(d.currentStreak<c||d.milestonesClaimed.includes(c))return{rewardInsight:0,rewardContact:0,label:"",ok:!1};let e=function(a){let b=aY.find(b=>b.milestone===a),c=aZ();if(!b||c.milestonesClaimed.includes(a)||c.currentStreak<a)return{rewardInsight:0,rewardContact:0,label:"",state:c};let d={...c,milestonesClaimed:[...c.milestonesClaimed,a]};return"u">typeof localStorage&&localStorage.setItem(aW,JSON.stringify(d)),{rewardInsight:b.rewardInsight,rewardContact:b.rewardContact,label:b.label,state:d}}(c);if(e.rewardInsight>0||e.rewardContact>0){let c=b();a({insights:c.insights+Math.round(e.rewardInsight),contact:Math.min(100,c.contact+e.rewardContact)})}return{rewardInsight:e.rewardInsight,rewardContact:e.rewardContact,label:e.label,ok:e.rewardInsight>0||e.rewardContact>0}},grantCruiseReward:c=>{let d=b(),e=c.crystals??0,f=c.insights??0,g=c.contact??0,h=Math.max(2,Math.floor((e+10*f+10*g)/30)),i=d.attributes??ar(),j=d.attributeProgress??aq(),k=ap({exp:j.exploration.exp+h,level:i.exploration},100),l=ap({exp:j.courage.exp+Math.floor(.6*h),level:i.courage},100),m={...i,exploration:k.newProgress.level,courage:l.newProgress.level},n={...j,exploration:k.newProgress,courage:l.newProgress};a({crystals:Math.min(d.crystalCap,d.crystals+e),insights:d.insights+Math.round(f),contact:Math.min(100,d.contact+g),attributes:m,attributeProgress:n,...a9({tech:d.tech,blueprints:d.blueprints,achievements:d.achievements,activeTide:d.activeTide,constellation:d.constellation,attributes:m})})},allocateAttribute:(c,d=1)=>{let e=b(),f=e.attributes??ar(),g=f[c]??0;if(g>=100||(e.pendingAttrPoints??0)<d)return{ok:!1,leveledUp:0};let h=Math.min(d,100-g,e.pendingAttrPoints),i=g+h,j={...f,[c]:i},k=e.attributeProgress??aq(),l=k[c]??{exp:0,level:g};return a({attributes:j,attributeProgress:{...k,[c]:{exp:l.exp,level:i}},pendingAttrPoints:e.pendingAttrPoints-h,...a9({tech:e.tech,blueprints:e.blueprints,achievements:e.achievements,activeTide:e.activeTide,constellation:e.constellation,attributes:j})}),{ok:!0,leveledUp:h}},gainAttributeExp:(c,d)=>{let e=b(),f=e.attributes??ar(),g=e.attributeProgress??aq(),h=ap({exp:(g[c]??{exp:0,level:f[c]}).exp+d,level:f[c]},100),i={...f,[c]:h.newProgress.level};return a({attributes:i,attributeProgress:{...g,[c]:h.newProgress},...a9({tech:e.tech,blueprints:e.blueprints,achievements:e.achievements,activeTide:e.activeTide,constellation:e.constellation,attributes:i})}),{leveledUp:h.levelsGained,newLevel:h.newProgress.level}}}),g={name:"echo-nexus-save-v1",version:2,storage:D(()=>localStorage),migrate:(a,b)=>{let c=a||{},d=ax(),e={...d,...c,bossKills:c.bossKills??0,starTidesEncountered:c.starTidesEncountered??[],chronicle:c.chronicle??[],runStart:c.runStart??Date.now(),attributes:c.attributes??d.attributes,attributeProgress:c.attributeProgress??d.attributeProgress,pendingAttrPoints:c.pendingAttrPoints??0,activeExpedition:c.activeExpedition??null,totalExpeditions:c.totalExpeditions??0,lastExpeditionSummary:c.lastExpeditionSummary??null,constellation:c.constellation??[],pendingPerkChoices:c.pendingPerkChoices??[],tech:c.tech??{},fragments:c.fragments??{},achievements:c.achievements??{}};if(e.activePuzzle&&"object"==typeof e.activePuzzle){let a=e.activePuzzle;a.nodes&&Array.isArray(a.nodes)&&0!==a.nodes.length||(e.activePuzzle=null)}return e},partialize:a=>{let{_lastAutoDecode:b,_lastSpawn:c,_combo:d,_lastPulse:e,_achievementQueue:f,_tideEvents:g,globalTide:h,...i}=a;return i}},(a,b,c)=>{let d,e={storage:D(()=>localStorage),partialize:a=>a,version:0,merge:(a,b)=>({...b,...a}),...g},h=!1,i=0,j=new Set,k=new Set,l=e.storage;if(!l)return f((...b)=>{console.warn(`[zustand persist middleware] Unable to update item '${e.name}', the given storage is currently unavailable.`),a(...b)},b,c);let m=()=>{let a=e.partialize({...b()});return l.setItem(e.name,{state:a,version:e.version})},n=c.setState;c.setState=(a,b)=>(n(a,b),m());let o=f((...b)=>(a(...b),m()),b,c);c.getInitialState=()=>o;let p=()=>{var c,f;if(!l)return;let g=++i;h=!1,j.forEach(a=>{var c;return a(null!=(c=b())?c:o)});let n=(null==(f=e.onRehydrateStorage)?void 0:f.call(e,null!=(c=b())?c:o))||void 0;return E(l.getItem.bind(l))(e.name).then(a=>{if(a)if("number"!=typeof a.version||a.version===e.version)return[!1,a.state];else{if(e.migrate){let b=e.migrate(a.state,a.version);return b instanceof Promise?b.then(a=>[!0,a]):[!0,b]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(c=>{var f;if(g!==i)return;let[h,j]=c;if(a(d=e.merge(j,null!=(f=b())?f:o),!0),h)return m()}).then(()=>{g===i&&(null==n||n(d,void 0),d=b(),h=!0,k.forEach(a=>a(d)))}).catch(a=>{g===i&&(null==n||n(void 0,a))})};return c.persist={setOptions:a=>{e={...e,...a},a.storage&&(l=a.storage)},clearStorage:()=>{null==l||l.removeItem(e.name)},getOptions:()=>e,rehydrate:()=>p(),hasHydrated:()=>h,onHydrate:a=>(j.add(a),()=>{j.delete(a)}),onFinishHydration:a=>(k.add(a),()=>{k.delete(a)})},e.skipHydration||p(),d||o}));var bd=a.i(70106);let be=(0,bd.default)("gem",[["path",{d:"M6 3h12l4 6-10 13L2 9Z",key:"1pcd5k"}],["path",{d:"M11 3 8 9l4 13 4-13-3-6",key:"1fcu3u"}],["path",{d:"M2 9h20",key:"16fsjt"}]]),bf=(0,bd.default)("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"}]]),bg=(0,bd.default)("waves",[["path",{d:"M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"knzxuh"}],["path",{d:"M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"2jd2cc"}],["path",{d:"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"rd2r6e"}]]),bh=(0,bd.default)("rotate-ccw",[["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"}]]);a.i(35112);var bi=a.i(70121),bj=Symbol.for("react.lazy"),bk=z[" use ".trim().toString()];function bl(a){var b;return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===bj&&"_payload"in a&&"object"==typeof(b=a._payload)&&null!==b&&"then"in b}function bm(a){var b;let c,d=(b=a,(c=z.forwardRef((a,b)=>{let{children:c,...d}=a;if(bl(c)&&"function"==typeof bk&&(c=bk(c._payload)),z.isValidElement(c)){var e;let a,f,g=(e=c,(f=(a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.ref:(f=(a=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref),h=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==z.Fragment&&(h.ref=b?(0,bi.composeRefs)(b,g):g),z.cloneElement(c,h)}return z.Children.count(c)>1?z.Children.only(null):null})).displayName=`${b}.SlotClone`,c),e=z.forwardRef((a,b)=>{let{children:c,...e}=a;bl(c)&&"function"==typeof bk&&(c=bk(c._payload));let f=z.Children.toArray(c),g=f.find(bp);if(g){let a=g.props.children,c=f.map(b=>b!==g?b:z.Children.count(a)>1?z.Children.only(null):z.isValidElement(a)?a.props.children:null);return(0,y.jsx)(d,{...e,ref:b,children:z.isValidElement(a)?z.cloneElement(a,void 0,c):null})}return(0,y.jsx)(d,{...e,ref:b,children:c})});return e.displayName=`${a}.Slot`,e}var bn=bm("Slot"),bo=Symbol("radix.slottable");function bp(a){return z.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===bo}var bq=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,b)=>{let c=bm(`Primitive.${b}`),d=z.forwardRef((a,d)=>{let{asChild:e,...f}=a;return(0,y.jsx)(e?c:b,{...f,ref:d})});return d.displayName=`Primitive.${b}`,{...a,[b]:d}},{}),br="Progress",[bs,bt]=function(a,b=[]){let c=[],d=()=>{let b=c.map(a=>z.createContext(a));return function(c){let d=c?.[a]||b;return z.useMemo(()=>({[`__scope${a}`]:{...c,[a]:d}}),[c,d])}};return d.scopeName=a,[function(b,d){let e=z.createContext(d);e.displayName=b+"Context";let f=c.length;c=[...c,d];let g=b=>{let{scope:c,children:d,...g}=b,h=c?.[a]?.[f]||e,i=z.useMemo(()=>g,Object.values(g));return(0,y.jsx)(h.Provider,{value:i,children:d})};return g.displayName=b+"Provider",[g,function(c,g){let h=g?.[a]?.[f]||e,i=z.useContext(h);if(i)return i;if(void 0!==d)return d;throw Error(`\`${c}\` must be used within \`${b}\``)}]},function(...a){let b=a[0];if(1===a.length)return b;let c=()=>{let c=a.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(a){let d=c.reduce((b,{useScope:c,scopeName:d})=>{let e=c(a)[`__scope${d}`];return{...b,...e}},{});return z.useMemo(()=>({[`__scope${b.scopeName}`]:d}),[d])}};return c.scopeName=b.scopeName,c}(d,...b)]}(br),[bu,bv]=bs(br),bw=z.forwardRef((a,b)=>{var c,d;let{__scopeProgress:e,value:f=null,max:g,getValueLabel:h=bz,...i}=a;(g||0===g)&&!bC(g)&&console.error((c=`${g}`,`Invalid prop \`max\` of value \`${c}\` supplied to \`Progress\`. Only numbers greater than 0 are valid max values. Defaulting to \`100\`.`));let j=bC(g)?g:100;null===f||bD(f,j)||console.error((d=`${f}`,`Invalid prop \`value\` of value \`${d}\` supplied to \`Progress\`. The \`value\` prop must be:
|
||
- a positive number
|
||
- less than the value passed to \`max\` (or 100 if no \`max\` prop is set)
|
||
- \`null\` or \`undefined\` if the progress is indeterminate.
|
||
|
||
Defaulting to \`null\`.`));let k=bD(f,j)?f:null,l=bB(k)?h(k,j):void 0;return(0,y.jsx)(bu,{scope:e,value:k,max:j,children:(0,y.jsx)(bq.div,{"aria-valuemax":j,"aria-valuemin":0,"aria-valuenow":bB(k)?k:void 0,"aria-valuetext":l,role:"progressbar","data-state":bA(k,j),"data-value":k??void 0,"data-max":j,...i,ref:b})})});bw.displayName=br;var bx="ProgressIndicator",by=z.forwardRef((a,b)=>{let{__scopeProgress:c,...d}=a,e=bv(bx,c);return(0,y.jsx)(bq.div,{"data-state":bA(e.value,e.max),"data-value":e.value??void 0,"data-max":e.max,...d,ref:b})});function bz(a,b){return`${Math.round(a/b*100)}%`}function bA(a,b){return null==a?"indeterminate":a===b?"complete":"loading"}function bB(a){return"number"==typeof a}function bC(a){return bB(a)&&!isNaN(a)&&a>0}function bD(a,b){return bB(a)&&!isNaN(a)&&a<=b&&a>=0}by.displayName=bx;var bE=a.i(68114);function bF({className:a,value:b,...c}){return(0,y.jsx)(bw,{"data-slot":"progress",className:(0,bE.cn)("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",a),...c,children:(0,y.jsx)(by,{"data-slot":"progress-indicator",className:"bg-primary h-full w-full flex-1 transition-all",style:{transform:`translateX(-${100-(b||0)}%)`}})})}function bG({onPrestige:a}){let b=bc(a=>a.crystals),c=bc(a=>a.crystalsPerSec),d=bc(a=>a.insights),e=bc(a=>a.contact),f=bc(a=>a.ascensions),g=bc(a=>a.blueprints);return(0,y.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2 sm:gap-x-4 px-3.5 py-2.5 rounded-2xl border border-white/10 bg-black/40 backdrop-blur-md",children:[(0,y.jsx)(bH,{icon:(0,y.jsx)(be,{className:"h-4 w-4 text-emerald-400"}),label:"记忆晶体",value:Q(b),sub:`+${c.toFixed(1)}/s`,glow:"rgba(52,211,153,0.4)"}),(0,y.jsx)("div",{className:"h-9 w-px bg-gradient-to-b from-transparent via-white/15 to-transparent hidden sm:block"}),(0,y.jsx)(bH,{icon:(0,y.jsx)(bf,{className:"h-4 w-4 text-amber-400"}),label:"技术洞见",value:Q(d),sub:"解码产出",glow:"rgba(251,191,36,0.4)"}),(0,y.jsx)("div",{className:"h-9 w-px bg-gradient-to-b from-transparent via-white/15 to-transparent hidden sm:block"}),(0,y.jsxs)("div",{className:"flex-1 min-w-[200px] flex flex-col gap-1.5",children:[(0,y.jsxs)("div",{className:"flex items-center gap-2",children:[(0,y.jsx)(bg,{className:"h-4 w-4 text-fuchsia-400 shrink-0"}),(0,y.jsx)("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:"接触进度"}),(0,y.jsxs)("span",{className:"text-xs font-mono font-semibold text-fuchsia-300 ml-auto tabular-nums",children:[e.toFixed(1),"%"]}),e>=100&&(0,y.jsx)("button",{onClick:a,className:"text-[10px] px-2 py-0.5 rounded-full bg-fuchsia-500/20 border border-fuchsia-400/50 text-fuchsia-200 hover:bg-fuchsia-500/30 transition animate-pulse whitespace-nowrap ml-1",children:"飞升"})]}),(0,y.jsx)(bF,{value:e,className:"h-1.5 bg-white/10 [&>div]:bg-gradient-to-r [&>div]:from-fuchsia-500 [&>div]:to-rose-400"})]}),(0,y.jsx)("div",{className:"h-9 w-px bg-gradient-to-b from-transparent via-white/15 to-transparent hidden sm:block"}),(0,y.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,y.jsx)(bh,{className:"h-4 w-4 text-rose-400 shrink-0"}),(0,y.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,y.jsx)("span",{className:"text-[10px] text-muted-foreground leading-none",children:"飞升"}),(0,y.jsxs)("div",{className:"flex items-baseline gap-1.5",children:[(0,y.jsx)("span",{className:"text-sm font-mono font-semibold leading-none",children:f}),(0,y.jsxs)("span",{className:"text-amber-300 text-xs leading-none",children:["×",g.length]})]})]})]})]})}function bH({icon:a,label:b,value:c,sub:d,glow:e}){return(0,y.jsxs)("div",{className:"flex items-center gap-2.5",style:{filter:`drop-shadow(0 0 6px ${e})`},children:[a,(0,y.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,y.jsx)("span",{className:"text-[10px] text-muted-foreground leading-none",children:b}),(0,y.jsxs)("div",{className:"flex items-baseline gap-1.5",children:[(0,y.jsx)("span",{className:"text-sm font-mono font-semibold leading-none tabular-nums",children:c}),(0,y.jsx)("span",{className:"text-[10px] text-muted-foreground/80 whitespace-nowrap",children:d})]})]})]})}var bI=a.i(31626),bJ=a.i(54614);let bK={emerald:523.25,rose:587.33,amber:659.25,fuchsia:698.46};class bL{ctx=null;master=null;enabled=!0;volume=.35;ensure(){return null}setEnabled(a){this.enabled=a}setVolume(a){this.volume=Math.max(0,Math.min(1,a)),this.master&&(this.master.gain.value=this.volume)}tone(a,b,c="sine",d=.3,e=0,f=0,g){let h=this.ensure();if(!h||!this.master)return;let i=h.currentTime+e,j=h.createOscillator(),k=h.createGain();if(j.type=c,j.frequency.setValueAtTime(a,i),f&&j.detune.setValueAtTime(f,i),k.gain.setValueAtTime(0,i),k.gain.linearRampToValueAtTime(d,i+.008),k.gain.exponentialRampToValueAtTime(1e-4,i+b),g){let a=h.createBiquadFilter();a.type="lowpass",a.frequency.value=g,j.connect(a),a.connect(k)}else j.connect(k);k.connect(this.master),j.start(i),j.stop(i+b+.05)}sweep(a,b,c,d="sine",e=.3,f=0){let g=this.ensure();if(!g||!this.master)return;let h=g.currentTime+f,i=g.createOscillator(),j=g.createGain();i.type=d,i.frequency.setValueAtTime(a,h),i.frequency.exponentialRampToValueAtTime(Math.max(1,b),h+c),j.gain.setValueAtTime(0,h),j.gain.linearRampToValueAtTime(e,h+.02),j.gain.exponentialRampToValueAtTime(1e-4,h+c),i.connect(j),j.connect(this.master),i.start(h),i.stop(h+c+.05)}noise(a,b=.2,c=0,d=1200){let e=this.ensure();if(!e||!this.master)return;let f=e.currentTime+c,g=Math.floor(e.sampleRate*a),h=e.createBuffer(1,g,e.sampleRate),i=h.getChannelData(0);for(let a=0;a<g;a++)i[a]=(2*Math.random()-1)*(1-a/g);let j=e.createBufferSource();j.buffer=h;let k=e.createBiquadFilter();k.type="lowpass",k.frequency.value=d;let l=e.createGain();l.gain.setValueAtTime(b,f),l.gain.exponentialRampToValueAtTime(1e-4,f+a),j.connect(k),k.connect(l),l.connect(this.master),j.start(f),j.stop(f+a+.02)}play(a,b){if(this.enabled&&this.ensure())switch(a){case"pulse":{let a=220+(b?.combo?18*b.combo:0);this.tone(a,.18,"sine",.28),this.tone(2*a,.14,"triangle",.1,.01);break}case"pulseCombo":{let a=440+(b?.combo?24*b.combo:0);this.tone(a,.2,"sine",.3),this.tone(1.5*a,.18,"triangle",.14,.01),this.tone(2*a,.16,"sine",.08,.02);break}case"decodeClick":{let a=b?.color?bK[b.color]??523:523;this.tone(a,.16,"sine",.26),this.tone(2*a,.1,"triangle",.08,.005);break}case"decodeFail":this.tone(160,.16,"sawtooth",.18,0,0,800),this.noise(.08,.1,0,600);break;case"decodeSuccess":this.tone(523.25,.22,"sine",.24,0),this.tone(659.25,.22,"sine",.22,.08),this.tone(783.99,.3,"sine",.24,.16),this.tone(1046.5,.34,"triangle",.12,.2);break;case"fragmentUnlock":this.tone(880,.7,"sine",.18,0),this.tone(1108.73,.7,"sine",.12,.04),this.tone(1318.51,.8,"triangle",.08,.1),this.sweep(440,880,.6,"sine",.1,.05);break;case"techBuy":this.tone(587.33,.12,"sine",.22),this.tone(880,.16,"triangle",.16,.06);break;case"expeditionStart":this.sweep(80,240,.5,"sawtooth",.16),this.sweep(120,360,.5,"square",.06,.02),this.noise(.4,.08,0,400);break;case"expeditionNode":this.tone(440,.14,"triangle",.2),this.tone(660,.12,"sine",.1,.04);break;case"expeditionVictory":this.tone(523.25,.18,"sine",.24,0),this.tone(659.25,.18,"sine",.24,.1),this.tone(783.99,.18,"sine",.24,.2),this.tone(1046.5,.4,"triangle",.2,.3);break;case"expeditionDefeat":this.tone(330,.3,"sawtooth",.2,0,0,700),this.tone(220,.4,"sine",.18,.12),this.tone(146.83,.5,"sine",.16,.24);break;case"prestige":this.sweep(110,880,1.2,"sine",.2),this.sweep(220,1760,1.2,"triangle",.1,.05),this.tone(523.25,.6,"sine",.16,.3),this.tone(659.25,.6,"sine",.16,.42),this.tone(783.99,.8,"sine",.16,.54),this.tone(1046.5,1,"triangle",.12,.66);break;case"achievement":this.tone(659.25,.16,"sine",.22,0),this.tone(880,.16,"sine",.22,.08),this.tone(1046.5,.16,"sine",.22,.16),this.tone(1318.51,.4,"triangle",.18,.24);break;case"tideStart":this.sweep(330,660,.8,"sine",.16),this.sweep(440,880,.8,"triangle",.08,.04),this.tone(523.25,.5,"sine",.1,.2),this.tone(783.99,.6,"sine",.08,.3);break;case"tideEnd":this.tone(659.25,.3,"sine",.14,0),this.tone(523.25,.35,"sine",.12,.1),this.tone(392,.5,"triangle",.1,.22);break;case"constellation":this.tone(523.25,.18,"sine",.16,0),this.tone(659.25,.2,"sine",.16,.08),this.tone(783.99,.22,"sine",.18,.16),this.tone(1046.5,.35,"triangle",.16,.24),this.tone(2093,.15,"sine",.08,.3);break;case"uiHover":this.tone(880,.05,"sine",.05);break;case"uiClick":this.tone(660,.07,"sine",.1);break;case"chronicle":this.tone(196,.6,"sine",.18,0),this.tone(261.63,.55,"sine",.14,.05),this.tone(392,.5,"sine",.1,.1),this.tone(523.25,.4,"triangle",.08,.18),this.tone(783.99,.3,"sine",.05,.25);break;case"chronicleOpen":this.tone(440,.08,"sine",.06,0),this.tone(587.33,.1,"sine",.05,.04),this.tone(880,.06,"triangle",.04,.1)}}}let bM=null;function bN(){return bM||(bM=new bL),bM}function bO(a,b){bN().play(a,b)}let bP=["晶核深处传来一阵微弱的震颤…","以太族的余响在谐振中回荡。","你听见了一句无法辨认的低语。","星海的寂静被你的脉冲短暂打破。","晶体表面的纹路闪烁,像是某种回应。","回响核心记录着每一次触碰。","虚空深处,有什么在倾听。","谐振频率与你的脉冲产生了共鸣。","这是以太族留下的第一道印记。","晶体内部的光,比星辰更古老。","你的脉冲唤醒了一段沉睡的频率。","维度薄膜因你的触碰而微微颤动。","采矿不是掠夺,是聆听。","每一颗晶体,都是一封跨越时间的信。","以太族信任你,所以留下了这些。"],bQ={mining:"以太族从不掠夺星海,他们与矿脉共振,让晶体自愿献出光芒。",decoding:"谐振法则是以太族的核心遗产——思维可被编码为共振序列。",expedition:"他们留下的遗迹不是废墟,是故意设置的试炼场。",narrative:"记忆校音,是以太族赋予后来者的第一项礼物。"};function bR(a,b){if(Math.random()<b){if(0===a.length)return"";let b=Math.floor(Math.random()*a.length);return a[b]}return null}let bS="#34d399",bT="#e879f9",bU="#fb7185",bV="#fbbf24";function bW(a){return a>=5?bV:a>=3?bT:bS}function bX(){let a=bc(a=>a.pulse),b=bc(a=>a.crystals),c=bc(a=>a.crystalsPerSec),d=bc(a=>a.crystalCap),e=bc(a=>a._combo),{toast:f}=(0,bJ.useToast)(),[g,h]=(0,z.useState)([]),i=(0,z.useRef)(0),j=(0,z.useRef)(null),k=(0,z.useRef)(null);(0,z.useRef)(0);let[l,m]=(0,z.useState)(0),n=(0,z.useRef)([]),o=(0,z.useRef)([]),p=(0,z.useRef)([]),q=(0,z.useRef)([]),r=(0,z.useRef)(e),s=(0,z.useRef)(0),t=(0,z.useRef)(b),u=(0,z.useRef)(d);(0,z.useEffect)(()=>{r.current=e,t.current=b,u.current=d},[e,b,d]);let v=(0,z.useRef)({x:0,y:0,inside:!1}),w=(0,z.useCallback)((a,b)=>{let c=.28*Math.min(a,b),d=[];[{count:14,rMul:.95,speed:.6,color:bS},{count:10,rMul:1.15,speed:-.4,color:bT},{count:8,rMul:1.35,speed:.3,color:bU}].forEach(a=>{for(let b=0;b<a.count;b++)d.push({angle:2*Math.PI*b/a.count+.3*Math.random(),radius:c*a.rMul,baseRadius:c*a.rMul,speed:a.speed*(.8+.4*Math.random()),size:1.5+2*Math.random(),color:a.color,alpha:.5+.4*Math.random(),phase:Math.random()*Math.PI*2})}),n.current=d;let e=[];for(let c=0;c<40;c++)e.push({x:Math.random()*a,y:Math.random()*b,vx:(Math.random()-.5)*8,vy:(Math.random()-.5)*8,size:.5+1.5*Math.random(),alpha:.2+.5*Math.random(),twinkle:Math.random()*Math.PI*2});o.current=e},[]),x=(0,z.useCallback)((a,b,c)=>{let d=bW(c.combo),e=performance.now();p.current.push({born:e,color:bS,maxRadius:140,duration:700}),c.combo>=3&&p.current.push({born:e+100,color:bT,maxRadius:170,duration:800}),c.combo>=5&&p.current.push({born:e+200,color:bV,maxRadius:200,duration:900});let f=10+2*Math.min(10,c.combo);for(let c=0;c<f;c++){let g=2*Math.PI*c/f+.4*Math.random(),h=120+180*Math.random();q.current.push({x:a,y:b,vx:Math.cos(g)*h,vy:Math.sin(g)*h,size:2+3*Math.random(),color:d,born:e,life:600+300*Math.random()})}n.current.forEach(a=>{a.radius=a.baseRadius*(1.25+.15*Math.random())})},[]),A=(0,z.useCallback)(b=>{let c=a();if(!c)return;let d=b.currentTarget.getBoundingClientRect(),e=b.clientX-d.left,g=b.clientY-d.top,j=i.current++,k=bW(c.combo);if(h(a=>[...a,{id:j,x:e,y:g,text:`+${c.gain.toFixed(1)}`,born:Date.now(),color:k}]),x(e,g,c),m(a=>a+1),bO(c.combo>=3?"pulseCombo":"pulse",{combo:c.combo}),setTimeout(()=>{h(a=>a.filter(a=>a.id!==j))},900),c.combo>=5&&c.combo%5==0){let a=bR(bP,.6);f({title:`\xd7${c.combo} 连击!`,description:a?`「${a}」`:"谐振叠加,产能飙升。"})}else if(c.combo>=3&&c.combo%3==0){let a=bR(bP,.3);a&&f({title:"低语",description:`「${a}」`})}},[a,f,x]);(0,z.useEffect)(()=>{let a=j.current,b=k.current;if(!a||!b)return;let c=a.getContext("2d");if(!c)return;let d=0,e=performance.now(),f=Math.min(window.devicePixelRatio||1,2),g=()=>{let d=b.getBoundingClientRect();f=Math.min(window.devicePixelRatio||1,2),a.width=Math.max(1,Math.floor(d.width*f)),a.height=Math.max(1,Math.floor(d.height*f)),a.style.width=`${d.width}px`,a.style.height=`${d.height}px`,c.setTransform(f,0,0,f,0,0),w(d.width,d.height)};g();let h=new ResizeObserver(g);h.observe(b);let i=b=>{let g=Math.min(.05,(b-e)/1e3);e=b;let h=a.width/f,j=a.height/f,k=h/2,l=j/2,m=.28*Math.min(h,j);c.clearRect(0,0,h,j),o.current.forEach(a=>{a.x+=a.vx*g,a.y+=a.vy*g,a.twinkle+=2*g,a.x<0&&(a.x=h),a.x>h&&(a.x=0),a.y<0&&(a.y=j),a.y>j&&(a.y=0);let b=.5+.5*Math.sin(a.twinkle);c.globalAlpha=a.alpha*b,c.fillStyle="#ffffff",c.beginPath(),c.arc(a.x,a.y,a.size,0,2*Math.PI),c.fill()}),c.globalAlpha=1;let r=.85+.15*Math.sin(.001*b),w=c.createRadialGradient(k,l,.3*m,k,l,2.2*m);w.addColorStop(0,`rgba(52,211,153,${.18*r})`),w.addColorStop(.5,`rgba(232,121,249,${.1*r})`),w.addColorStop(1,"rgba(0,0,0,0)"),c.fillStyle=w,c.fillRect(0,0,h,j),c.lineWidth=2.5,c.strokeStyle="rgba(255,255,255,0.06)",c.beginPath(),c.arc(k,l,1.45*m,0,2*Math.PI),c.stroke();let x=Math.min(100,t.current/Math.max(1,u.current)*100);s.current=x;let y=1.45*m,z=c.createLinearGradient(k-y,l-y,k+y,l+y);z.addColorStop(0,bS),z.addColorStop(.5,bT),z.addColorStop(1,bU),c.strokeStyle=z,c.lineWidth=3,c.lineCap="round",c.shadowBlur=8,c.shadowColor=bS,c.beginPath(),c.arc(k,l,y,-Math.PI/2,-Math.PI/2+2*Math.PI*x/100),c.stroke(),c.shadowBlur=0,n.current.forEach(a=>{a.angle+=a.speed*g,a.radius+=(a.baseRadius-a.radius)*Math.min(1,4*g);let d=k+Math.cos(a.angle)*a.radius,e=l+Math.sin(a.angle)*a.radius,f=.7+.3*Math.sin(.005*b+a.phase);c.globalAlpha=a.alpha*f,c.fillStyle=a.color,c.shadowBlur=10,c.shadowColor=a.color,c.beginPath(),c.arc(d,e,a.size,0,2*Math.PI),c.fill(),c.globalAlpha=a.alpha*f*.4,c.strokeStyle=a.color,c.lineWidth=.6*a.size,c.beginPath(),c.moveTo(d,e),c.lineTo(k+Math.cos(a.angle-.08*a.speed)*(a.radius-2),l+Math.sin(a.angle-.08*a.speed)*(a.radius-2)),c.stroke()}),c.globalAlpha=1,c.shadowBlur=0;let A=.95*m,B=0,C=0;if(v.current.inside){let a=v.current.x-k,b=v.current.y-l,c=Math.hypot(a,b);c>.1&&(B=a/c*Math.min(8,.05*c),C=b/c*Math.min(8,.05*c))}let D=k+B,E=l+C,F=c.createRadialGradient(D-.25*A,E-.3*A,.1*A,D,E,A);F.addColorStop(0,"rgba(255,255,255,0.95)"),F.addColorStop(.3,`rgba(52,211,153,${.85*r})`),F.addColorStop(.65,"rgba(232,121,249,0.55)"),F.addColorStop(1,"rgba(251,113,133,0.2)"),c.fillStyle=F,c.shadowBlur=30,c.shadowColor=bS,c.beginPath(),c.arc(D,E,A,0,2*Math.PI),c.fill(),c.save(),c.translate(D,E),c.globalAlpha=.25,c.strokeStyle="rgba(255,255,255,0.6)",c.lineWidth=.8;let G=.7*A;for(let a=0;a<3;a++){let d=G*(1-.3*a);c.beginPath();for(let e=0;e<6;e++){let f=Math.PI/3*e+2e-4*b*(a%2?1:-1),g=Math.cos(f)*d,h=Math.sin(f)*d;0===e?c.moveTo(g,h):c.lineTo(g,h)}c.closePath(),c.stroke()}c.restore(),c.globalAlpha=.4,c.fillStyle="#ffffff",c.beginPath(),c.ellipse(D-.25*A,E-.35*A,.35*A,.18*A,-.4,0,2*Math.PI),c.fill(),c.globalAlpha=1,c.shadowBlur=0,p.current=p.current.filter(a=>{let d=b-a.born;if(d<0||d>a.duration)return d<=a.duration+50;let e=d/a.duration,f=a.maxRadius*e;return c.globalAlpha=(1-e)*.8,c.strokeStyle=a.color,c.lineWidth=2.5*(1-.5*e),c.shadowBlur=12,c.shadowColor=a.color,c.beginPath(),c.arc(k,l,f,0,2*Math.PI),c.stroke(),c.shadowBlur=0,!0}),p.current=p.current.filter(a=>b-a.born<a.duration),c.globalAlpha=1,q.current=q.current.filter(a=>{let d=b-a.born;if(d>a.life)return!1;a.x+=a.vx*g,a.y+=a.vy*g,a.vx*=.96,a.vy*=.96;let e=d/a.life;return c.globalAlpha=1-e,c.fillStyle=a.color,c.shadowBlur=8,c.shadowColor=a.color,c.beginPath(),c.arc(a.x,a.y,a.size*(1-.5*e),0,2*Math.PI),c.fill(),!0}),c.globalAlpha=1,c.shadowBlur=0,d=requestAnimationFrame(i)};return d=requestAnimationFrame(i),()=>{cancelAnimationFrame(d),h.disconnect()}},[w]);let B=(0,z.useCallback)(a=>{let b=a.currentTarget.getBoundingClientRect();v.current={x:a.clientX-b.left,y:a.clientY-b.top,inside:!0}},[]),C=(0,z.useCallback)(()=>{v.current.inside=!1},[]),D=Math.min(100,b/Math.max(1,d)*100);return(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 relative flex flex-col items-center justify-center gap-4 select-none",children:[e>1&&(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 absolute -top-2 left-1/2 -translate-x-1/2 px-3 py-1 rounded-full bg-rose-500/20 border border-rose-400/40 text-rose-200 text-xs font-mono animate-pulse z-10",children:["×",e," 连击"]}),(0,y.jsxs)("button",{onClick:A,onMouseMove:B,onMouseLeave:C,"aria-label":"脉冲扫描,获取记忆晶体",className:"jsx-dda3ce20a1930cc3 relative h-52 w-52 sm:h-64 sm:w-64 rounded-full focus:outline-none group",children:[(0,y.jsx)("div",{ref:k,className:"jsx-dda3ce20a1930cc3 absolute inset-0 rounded-full overflow-hidden",children:(0,y.jsx)("canvas",{ref:j,className:"jsx-dda3ce20a1930cc3 block w-full h-full"})}),(0,y.jsxs)("div",{style:{animation:"echo-spin 18s linear infinite"},className:"jsx-dda3ce20a1930cc3 absolute inset-2 rounded-full border border-emerald-400/30 pointer-events-none",children:[(0,y.jsx)("div",{className:"jsx-dda3ce20a1930cc3 absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 h-2 w-2 rounded-full bg-emerald-300 shadow-[0_0_8px_#34d399]"}),(0,y.jsx)("div",{className:"jsx-dda3ce20a1930cc3 absolute bottom-0 left-1/2 -translate-x-1/2 translate-y-1/2 h-1.5 w-1.5 rounded-full bg-rose-300 shadow-[0_0_8px_#fb7185]"})]}),(0,y.jsx)("div",{style:{animation:"echo-spin 24s linear infinite reverse"},className:"jsx-dda3ce20a1930cc3 absolute inset-6 rounded-full border border-fuchsia-400/20 border-dashed pointer-events-none"}),(0,y.jsx)("div",{style:{animation:"echo-ring 0.7s ease-out forwards"},className:"jsx-dda3ce20a1930cc3 absolute inset-8 rounded-full border-2 border-emerald-400/60 pointer-events-none"},`ring-${l}`),g.map(a=>(0,y.jsx)("span",{style:{left:a.x,top:a.y,color:a.color,transform:"translate(-50%, -50%)",animation:"echo-float 0.9s ease-out forwards",textShadow:`0 0 8px ${a.color}`},className:"jsx-dda3ce20a1930cc3 absolute pointer-events-none font-mono font-bold text-sm z-10",children:a.text},a.id))]}),(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 text-center",children:[(0,y.jsx)("div",{style:{textShadow:"0 0 12px rgba(52,211,153,0.5)"},className:"jsx-dda3ce20a1930cc3 text-2xl font-mono font-bold text-emerald-300",children:Q(b)}),(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 text-xs text-muted-foreground mt-0.5",children:["记忆晶体 · ",c.toFixed(1),"/s · 上限"," ",Q(d)]}),(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 text-[11px] text-muted-foreground/70 mt-2",children:["点击晶体发起",(0,y.jsx)("span",{className:"jsx-dda3ce20a1930cc3 text-emerald-300",children:"脉冲扫描"}),",连击叠加加成"]}),(0,y.jsxs)("div",{className:"jsx-dda3ce20a1930cc3 text-[10px] text-muted-foreground/50 mt-1 tabular-nums",children:["仓库 ",D.toFixed(1),"% · 连击 ×",Math.max(1,e)]})]}),(0,y.jsx)(bI.default,{id:"dda3ce20a1930cc3",children:"@keyframes echo-spin{to{transform:rotate(360deg)}}@keyframes echo-float{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-180%)scale(1.3)}}@keyframes echo-ring{0%{opacity:.8;transform:scale(.8)}to{opacity:0;transform:scale(1.6)}}"})]})}let bY=(0,a.i(187).cva)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function bZ({className:a,variant:b,size:c,asChild:d=!1,...e}){return(0,y.jsx)(d?bn:"button",{"data-slot":"button",className:(0,bE.cn)(bY({variant:b,size:c,className:a})),...e})}var b$=a.i(33508);let b_=(0,bd.default)("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"}]]),b0=(0,bd.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),b1=(0,bd.default)("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),b2=(0,bd.default)("triangle-alert",[["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"}]]);function b3(){let a=bc(a=>a.activePuzzle),b=bc(a=>a.clickNode),c=bc(a=>a.undoStep),d=bc(a=>a.retryPuzzle),e=bc(a=>a.abandonPuzzle),{toast:f}=(0,bJ.useToast)(),[g,h]=(0,z.useState)(null),[i,j]=(0,z.useState)(null),[k,l]=(0,z.useState)(!1);if(!a)return null;let{grid:m,rows:n,cols:o,target:p,path:q,stepLimit:r,tier:s}=a,t=q.length,u=p[t],v=q.length>0&&q.length<p.length&&!aA(a),w=()=>{c(),l(!1),j(null)},x=100/o,A=100/n,B=q.map(a=>m.find(b=>b.id===a)).filter(Boolean);return(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex flex-col gap-4 h-full",children:[(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center justify-center gap-2 flex-wrap",children:[(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-xs text-muted-foreground mr-1",children:"目标谐振"}),p.map((a,b)=>{let c=b<t,d=b===t,e=J[a];return(0,y.jsxs)("div",{style:{background:`radial-gradient(circle at 35% 30%, ${e.hex}, ${e.hex}aa 60%, ${e.hex}44)`,boxShadow:d?`0 0 18px ${e.glow}, 0 0 36px ${e.glow}`:`0 0 8px ${e.glow}`,"--tw-ring-color":e.hex},className:`jsx-35ab0418fdc54847 relative h-9 w-9 rounded-full flex items-center justify-center transition-all duration-300 ${c?"opacity-30 scale-90":""} ${d?"scale-125 ring-2 ring-offset-2 ring-offset-background":""}`,children:[c&&(0,y.jsx)(b0,{className:"h-4 w-4 text-white"}),d&&(0,y.jsx)("span",{style:{color:e.hex},className:"jsx-35ab0418fdc54847 absolute -bottom-5 text-[10px] font-medium",children:"下一个"})]},b)})]}),(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 relative flex-1 min-h-[260px] rounded-2xl border border-white/10 bg-black/30 backdrop-blur-sm overflow-hidden",children:[(0,y.jsx)("div",{style:{backgroundImage:"linear-gradient(rgba(255,255,255,0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px)",backgroundSize:`${x}% ${A}%`},className:"jsx-35ab0418fdc54847 absolute inset-0 opacity-20"}),(0,y.jsx)("svg",{className:"jsx-35ab0418fdc54847 absolute inset-0 w-full h-full pointer-events-none",children:B.map((a,b)=>{if(0===b)return null;let c=B[b-1],d=(c.col+.5)*x,e=(c.row+.5)*A,f=(a.col+.5)*x,g=(a.row+.5)*A,h=J[a.color];return(0,y.jsx)("line",{x1:`${d}%`,y1:`${e}%`,x2:`${f}%`,y2:`${g}%`,stroke:h.hex,strokeWidth:2.5,strokeLinecap:"round",style:{filter:`drop-shadow(0 0 4px ${h.glow})`},className:"jsx-35ab0418fdc54847 echo-path-line"},b)})}),m.map(c=>{let d=J[c.color],e=c.used,m=void 0!==u&&c.color===u&&!e,n=0===q.length&&m&&function(a,b){if(0!==a.path.length)return!1;let c=a.grid.find(a=>a.id===b);if(!c||c.used||c.color!==a.target[0])return!1;let d=JSON.parse(JSON.stringify(a));return d.grid.find(a=>a.id===b).used=!0,d.path.push(b),aA(d)}(a,c.id),p=0===q.length&&m&&!n,r=g===c.id,s=i?.id===c.id,t=(c.col+.5)*x,v=(c.row+.5)*A;return(0,y.jsx)("button",{onClick:()=>(a=>{let c=b(a.id);if(c.ok&&c.finished){l(!1),bO("decodeSuccess"),c.failReason&&c.failReason.split(",").filter(Boolean).length&&(bO("fragmentUnlock"),f({title:"✦ 记忆碎片浮现",description:"新的回响被拼入图谱,前往「记忆图谱」查看。"})),f({title:"谐振闭合!",description:"晶体解码成功,记忆已释放。"});return}c.ok?(bO("decodeClick",{color:a.color}),j({id:a.id,ok:!0}),setTimeout(()=>j(null),280),!1!==c.solvable||k||(l(!0),f({title:"谐振受阻",description:"此路不通,建议撤销上一步或重排。"})),!0===c.solvable&&l(!1)):(bO("decodeFail"),j({id:a.id,ok:!1}),setTimeout(()=>j(null),280))})(c),onMouseEnter:()=>h(c.id),onMouseLeave:()=>h(null),disabled:e,style:{left:`${t}%`,top:`${v}%`,width:`min(${100/o*.62}%, 56px)`,aspectRatio:"1",background:e?"rgba(255,255,255,0.04)":`radial-gradient(circle at 35% 30%, ${d.hex}, ${d.hex}cc 55%, ${d.hex}55)`,boxShadow:e?"inset 0 0 12px rgba(0,0,0,0.5)":n?`0 0 16px ${d.glow}, 0 0 32px ${d.glow}, inset 0 0 10px rgba(255,255,255,0.5)`:m?`0 0 10px ${d.glow}, 0 0 20px ${d.glow}, inset 0 0 6px rgba(255,255,255,0.3)`:`0 0 6px ${d.glow}`,border:n?`2px solid ${d.hex}`:m?`1.5px solid ${d.hex}aa`:"1px solid rgba(255,255,255,0.12)",opacity:e?.35:p?.5:1,transform:`translate(-50%, -50%) scale(${r&&!e?1.12:s?i?.ok?1.25:.8:1})`,animation:n?"echo-pulse 1.2s ease-in-out infinite":m&&!p?"echo-pulse 1.6s ease-in-out infinite":void 0},"aria-label":`${d.label}色节点 ${c.row+1}-${c.col+1}`,className:"jsx-35ab0418fdc54847 absolute rounded-full transition-[box-shadow,background,border,opacity] duration-200 focus:outline-none disabled:cursor-not-allowed",children:!e&&(0,y.jsx)("span",{style:{background:"radial-gradient(circle at 35% 30%, rgba(255,255,255,0.5), transparent 45%)"},className:"jsx-35ab0418fdc54847 absolute inset-0 rounded-full"})},c.id)})]}),v&&(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center gap-2 px-3 py-2 rounded-lg border border-rose-400/40 bg-rose-950/40 text-rose-200 text-xs animate-pulse",children:[(0,y.jsx)(b2,{className:"h-3.5 w-3.5 shrink-0"}),(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847",children:"谐振受阻,此路已无解。"}),(0,y.jsxs)(bZ,{size:"sm",variant:"outline",onClick:w,className:"h-6 px-2 ml-auto border-rose-400/50 text-rose-100 hover:bg-rose-500/20 text-[11px]",children:[(0,y.jsx)(b1,{className:"h-3 w-3 mr-1"}),"撤销"]})]}),(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center justify-between gap-3",children:[(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center gap-2 text-xs",children:[(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-muted-foreground",children:"步数"}),(0,y.jsxs)("span",{className:`jsx-35ab0418fdc54847 font-mono font-semibold ${q.length>=r?"text-rose-400":"text-foreground"}`,children:[q.length," / ",r]}),(0,y.jsxs)("span",{className:"jsx-35ab0418fdc54847 ml-2 text-muted-foreground",children:["T",s]})]}),(0,y.jsxs)("div",{className:"jsx-35ab0418fdc54847 flex items-center gap-1.5",children:[(0,y.jsxs)(bZ,{variant:"ghost",size:"sm",onClick:w,disabled:0===q.length,className:"h-7",children:[(0,y.jsx)(b1,{className:"h-3.5 w-3.5 mr-1"}),"撤销"]}),(0,y.jsxs)(bZ,{variant:"ghost",size:"sm",onClick:()=>{d(),l(!1),j(null)},className:"h-7",children:[(0,y.jsx)(bh,{className:"h-3.5 w-3.5 mr-1"}),"重排"]}),(0,y.jsxs)(bZ,{variant:"ghost",size:"sm",onClick:()=>{e(),j(null),l(!1)},className:"h-7",children:[(0,y.jsx)(b$.X,{className:"h-3.5 w-3.5 mr-1"}),"放回"]})]})]}),(0,y.jsx)("p",{className:"jsx-35ab0418fdc54847 text-[11px] text-muted-foreground/80 text-center leading-relaxed",children:0===q.length?(0,y.jsxs)(y.Fragment,{children:["点击",(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-emerald-300",children:"高亮"}),"的可行起点开始,按目标顺序走",(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-emerald-300",children:"相邻同色"}),"节点;走错可",(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-rose-300",children:"撤销"}),"。"]}):(0,y.jsxs)(y.Fragment,{children:["按「目标谐振」顺序,点击",(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-emerald-300",children:"上下左右相邻"}),"的同色节点。每个节点仅可使用一次;走错可",(0,y.jsx)("span",{className:"jsx-35ab0418fdc54847 text-rose-300",children:"撤销"}),"。"]})}),(0,y.jsx)(bI.default,{id:"35ab0418fdc54847",children:"@keyframes echo-pulse{0%,to{filter:brightness()}50%{filter:brightness(1.4)}}@keyframes echo-line{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}.echo-path-line{stroke-dasharray:100;animation:.4s ease-out forwards echo-line}"})]})}function b4(){let a=bc(a=>a.activePuzzle),b=bc(a=>a.pendingCrystals),c=bc(a=>a.startDecode),d=bc(a=>a.crystalsPerSec),e=bc(a=>a.crystalCap),f=bc(a=>a.crystals);return a?(0,y.jsxs)("div",{className:"h-full flex flex-col",children:[(0,y.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,y.jsx)(b_,{className:"h-4 w-4 text-rose-400"}),(0,y.jsx)("h3",{className:"text-sm font-semibold",children:"解码共振阵列"})]}),(0,y.jsx)("div",{className:"flex-1 min-h-0",children:(0,y.jsx)(b3,{})})]}):(0,y.jsxs)("div",{className:"jsx-53059b9e32765d5f h-full flex flex-col",children:[(0,y.jsxs)("div",{className:"jsx-53059b9e32765d5f flex items-center gap-2 mb-3",children:[(0,y.jsx)(b_,{className:"h-4 w-4 text-rose-400"}),(0,y.jsx)("h3",{className:"jsx-53059b9e32765d5f text-sm font-semibold",children:"待解码晶体"}),(0,y.jsxs)("span",{className:"jsx-53059b9e32765d5f text-xs text-muted-foreground ml-auto",children:["产能 ",d.toFixed(1),"/s · ",Math.floor(f),"/",Math.floor(e)]})]}),0===b.length?(0,y.jsxs)("div",{className:"jsx-53059b9e32765d5f flex-1 flex flex-col items-center justify-center text-center gap-3 rounded-2xl border border-dashed border-white/10 bg-black/20 p-6",children:[(0,y.jsxs)("div",{className:"jsx-53059b9e32765d5f relative h-16 w-16",children:[(0,y.jsx)("div",{className:"jsx-53059b9e32765d5f absolute inset-0 rounded-full bg-rose-500/20 blur-xl animate-pulse"}),(0,y.jsx)("div",{className:"jsx-53059b9e32765d5f absolute inset-2 rounded-full border-2 border-rose-400/40 rotate-45"}),(0,y.jsx)("div",{className:"jsx-53059b9e32765d5f absolute inset-4 rounded-full bg-rose-500/30"})]}),(0,y.jsx)("p",{className:"jsx-53059b9e32765d5f text-sm text-muted-foreground",children:"晶体正在生成中…"}),(0,y.jsx)("p",{className:"jsx-53059b9e32765d5f text-xs text-muted-foreground/70 max-w-[220px]",children:"自治无人机每数秒回收一颗记忆晶体,点击下方晶体开启解码。"})]}):(0,y.jsx)("div",{className:"jsx-53059b9e32765d5f flex-1 grid grid-cols-2 sm:grid-cols-3 gap-3 content-start max-h-[420px] overflow-y-auto echo-scroll pr-1",children:b.map(a=>(0,y.jsx)(b5,{crystal:a,onClick:()=>c(a.id)},a.id))}),(0,y.jsx)(bI.default,{id:"53059b9e32765d5f",children:".echo-scroll::-webkit-scrollbar{width:6px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.echo-scroll::-webkit-scrollbar-track{background:0 0}"})]})}function b5({crystal:a,onClick:b}){let c=1===a.tier?"#34d399":2===a.tier?"#fbbf24":"#e879f9",d=1===a.tier?"常见":2===a.tier?"稀有":"史诗";return(0,y.jsxs)("button",{onClick:b,className:"group relative aspect-square rounded-2xl border border-white/10 bg-black/40 hover:border-white/40 transition-all duration-300 hover:scale-[1.04] focus:outline-none overflow-hidden",style:{boxShadow:`inset 0 0 24px ${c}22`},children:[(0,y.jsx)("div",{className:"absolute inset-0 rounded-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none",style:{background:`linear-gradient(120deg, transparent 30%, ${c}40 50%, transparent 70%)`,backgroundSize:"200% 100%",animation:"echo-border-flow 2s linear infinite",mixBlendMode:"screen"}}),(0,y.jsx)("div",{className:"absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none overflow-hidden",children:(0,y.jsx)("div",{className:"absolute inset-x-0 h-px",style:{background:`linear-gradient(90deg, transparent, ${c}, transparent)`,animation:"echo-scan 1.8s ease-in-out infinite"}})}),(0,y.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,y.jsxs)("div",{className:"relative h-12 w-12 transition-transform duration-500 group-hover:rotate-[200deg] group-hover:scale-110",style:{filter:`drop-shadow(0 0 12px ${c}88)`},children:[(0,y.jsx)("div",{className:"absolute inset-0 rotate-45 rounded-md",style:{background:`linear-gradient(135deg, ${c}, ${c}66)`,border:`1px solid ${c}`}}),(0,y.jsx)("div",{className:"absolute inset-2 rotate-45 rounded-sm",style:{background:"linear-gradient(135deg, rgba(255,255,255,0.5), transparent)"}})]})}),(0,y.jsxs)("div",{className:"absolute top-1.5 left-1.5 z-10 text-[10px] font-mono font-semibold px-1.5 py-0.5 rounded bg-black/60 backdrop-blur-sm border",style:{color:c,borderColor:`${c}40`},children:["T",a.tier]}),(0,y.jsx)("div",{className:"absolute top-1.5 right-1.5 z-10 text-[9px] text-white/60 font-mono tracking-wider",children:d}),(0,y.jsxs)("div",{className:"absolute inset-x-0 bottom-0 z-10 bg-gradient-to-t from-black/85 via-black/50 to-transparent pt-4 pb-1.5 px-1 text-center opacity-0 group-hover:opacity-100 transition-opacity duration-200",children:[(0,y.jsxs)("div",{className:"text-[12px] font-mono font-bold leading-none",style:{color:c},children:["+",a.value]}),(0,y.jsx)("div",{className:"text-[8px] text-white/60 uppercase tracking-[0.15em] mt-0.5",children:"解码 →"})]})]})}function b6({className:a,...b}){return(0,y.jsx)("div",{"data-slot":"card",className:(0,bE.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",a),...b})}let b7=(0,bd.default)("pickaxe",[["path",{d:"M14.531 12.469 6.619 20.38a1 1 0 1 1-3-3l7.912-7.912",key:"we99rg"}],["path",{d:"M15.686 4.314A12.5 12.5 0 0 0 5.461 2.958 1 1 0 0 0 5.58 4.71a22 22 0 0 1 6.318 3.393",key:"1w6hck"}],["path",{d:"M17.7 3.7a1 1 0 0 0-1.4 0l-4.6 4.6a1 1 0 0 0 0 1.4l2.6 2.6a1 1 0 0 0 1.4 0l4.6-4.6a1 1 0 0 0 0-1.4z",key:"15hgfx"}],["path",{d:"M19.686 8.314a12.501 12.501 0 0 1 1.356 10.225 1 1 0 0 1-1.751-.119 22 22 0 0 0-3.393-6.319",key:"452b4h"}]]),b8=(0,bd.default)("scan-line",[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["path",{d:"M7 12h10",key:"b7w52i"}]]),b9=(0,bd.default)("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"}]]),ca=(0,bd.default)("book-open",[["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"}]]),cb=(0,bd.default)("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"}]]),cc={Pickaxe:b7,ScanLine:b8,Rocket:b9,BookOpen:ca},cd={mining:"#34d399",decoding:"#fb7185",expedition:"#fbbf24",narrative:"#e879f9"};function ce(){let a=bc(a=>a.tech),b=bc(a=>a.insights),c=bc(a=>a.buyTech);return(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex flex-col gap-3 h-full",children:[(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center justify-between",children:[(0,y.jsx)("h3",{className:"jsx-fbf3fdae687a84dd text-sm font-semibold",children:"技术树"}),(0,y.jsxs)("span",{className:"jsx-fbf3fdae687a84dd text-xs text-muted-foreground",children:["洞见 ",(0,y.jsx)("span",{className:"jsx-fbf3fdae687a84dd text-amber-300 font-mono",children:Q(b)})]})]}),(0,y.jsx)("div",{className:"jsx-fbf3fdae687a84dd flex-1 overflow-y-auto echo-scroll pr-1 space-y-3",children:["mining","decoding","expedition","narrative"].map(d=>{let e=L[d],f=cc[e.icon],g=cd[d],h=K.filter(a=>a.branch===d);return(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd",children:[(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center gap-2 mb-1.5 px-1",children:[(0,y.jsx)(f,{className:"jsx-fbf3fdae687a84dd h-3.5 w-3.5"}),(0,y.jsx)("span",{style:{color:g},className:"jsx-fbf3fdae687a84dd text-xs font-medium",children:e.name}),(0,y.jsx)("span",{className:"jsx-fbf3fdae687a84dd text-[10px] text-muted-foreground/70 truncate flex-1",children:e.desc})]}),(0,y.jsxs)("p",{className:"jsx-fbf3fdae687a84dd text-[9px] italic text-muted-foreground/50 px-1 mb-1.5 truncate",children:["「",bQ[d]??"","」"]}),(0,y.jsx)("div",{className:"jsx-fbf3fdae687a84dd grid gap-1.5",children:h.map(d=>{let e=(a[d.id]??0)>=1,f=b>=d.cost;return(0,y.jsx)(b6,{className:`p-2.5 transition-all duration-200 ${e?"bg-white/5 border-white/10":f?"bg-black/30 border-white/15 hover:border-white/30 cursor-pointer":"bg-black/20 border-white/5 opacity-60"}`,style:e?{boxShadow:`inset 0 0 0 1px ${g}44, 0 0 12px ${g}22`}:void 0,children:(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center gap-2",children:[(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex-1 min-w-0",children:[(0,y.jsxs)("div",{className:"jsx-fbf3fdae687a84dd flex items-center gap-1.5",children:[(0,y.jsx)("span",{style:{color:e?g:void 0},className:"jsx-fbf3fdae687a84dd text-xs font-semibold truncate",children:d.name}),e&&(0,y.jsx)(b0,{className:"h-3 w-3",style:{color:g}})]}),(0,y.jsx)("p",{className:"jsx-fbf3fdae687a84dd text-[10px] text-muted-foreground/80 truncate",children:d.desc})]}),!e&&(0,y.jsxs)(bZ,{size:"sm",variant:f?"default":"ghost",disabled:!f,onClick:()=>{c(d.id)&&bO("techBuy")},className:"h-7 px-2 text-[11px] shrink-0",style:f?{background:`${g}22`,border:`1px solid ${g}66`,color:g}:void 0,children:[(0,y.jsx)(cb,{className:"h-2.5 w-2.5 mr-1"}),d.cost]})]})},d.id)})})]},d)})}),(0,y.jsx)(bI.default,{id:"fbf3fdae687a84dd",children:".echo-scroll::-webkit-scrollbar{width:5px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.echo-scroll::-webkit-scrollbar-track{background:0 0}"})]})}var cf=a.i(30553),cg=a.i(77192),ch=a.i(50104),ci=a.i(46872),cj=z.createContext(void 0);function ck(a){let b=z.useContext(cj);return a||b||"ltr"}var cl=a.i(72752),cm=a.i(7554),cn="ScrollArea",[co,cp]=(0,ch.createContextScope)(cn),[cq,cr]=co(cn),cs=z.forwardRef((a,b)=>{let{__scopeScrollArea:c,type:d="hover",dir:e,scrollHideDelay:f=600,...g}=a,[h,i]=z.useState(null),[j,k]=z.useState(null),[l,m]=z.useState(null),[n,o]=z.useState(null),[p,q]=z.useState(null),[r,s]=z.useState(0),[t,u]=z.useState(0),[v,w]=z.useState(!1),[x,A]=z.useState(!1),B=(0,bi.useComposedRefs)(b,a=>i(a)),C=ck(e);return(0,y.jsx)(cq,{scope:c,type:d,dir:C,scrollHideDelay:f,scrollArea:h,viewport:j,onViewportChange:k,content:l,onContentChange:m,scrollbarX:n,onScrollbarXChange:o,scrollbarXEnabled:v,onScrollbarXEnabledChange:w,scrollbarY:p,onScrollbarYChange:q,scrollbarYEnabled:x,onScrollbarYEnabledChange:A,onCornerWidthChange:s,onCornerHeightChange:u,children:(0,y.jsx)(cf.Primitive.div,{dir:C,...g,ref:B,style:{position:"relative","--radix-scroll-area-corner-width":r+"px","--radix-scroll-area-corner-height":t+"px",...a.style}})})});cs.displayName=cn;var ct="ScrollAreaViewport",cu=z.forwardRef((a,b)=>{let{__scopeScrollArea:c,children:d,nonce:e,...f}=a,g=cr(ct,c),h=z.useRef(null),i=(0,bi.useComposedRefs)(b,h,g.onViewportChange);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:e}),(0,y.jsx)(cf.Primitive.div,{"data-radix-scroll-area-viewport":"",...f,ref:i,style:{overflowX:g.scrollbarXEnabled?"scroll":"hidden",overflowY:g.scrollbarYEnabled?"scroll":"hidden",...a.style},children:(0,y.jsx)("div",{ref:g.onContentChange,style:{minWidth:"100%",display:"table"},children:d})})]})});cu.displayName=ct;var cv="ScrollAreaScrollbar",cw=z.forwardRef((a,b)=>{let{forceMount:c,...d}=a,e=cr(cv,a.__scopeScrollArea),{onScrollbarXEnabledChange:f,onScrollbarYEnabledChange:g}=e,h="horizontal"===a.orientation;return z.useEffect(()=>(h?f(!0):g(!0),()=>{h?f(!1):g(!1)}),[h,f,g]),"hover"===e.type?(0,y.jsx)(cx,{...d,ref:b,forceMount:c}):"scroll"===e.type?(0,y.jsx)(cy,{...d,ref:b,forceMount:c}):"auto"===e.type?(0,y.jsx)(cz,{...d,ref:b,forceMount:c}):"always"===e.type?(0,y.jsx)(cA,{...d,ref:b}):null});cw.displayName=cv;var cx=z.forwardRef((a,b)=>{let{forceMount:c,...d}=a,e=cr(cv,a.__scopeScrollArea),[f,g]=z.useState(!1);return z.useEffect(()=>{let a=e.scrollArea,b=0;if(a){let c=()=>{window.clearTimeout(b),g(!0)},d=()=>{b=window.setTimeout(()=>g(!1),e.scrollHideDelay)};return a.addEventListener("pointerenter",c),a.addEventListener("pointerleave",d),()=>{window.clearTimeout(b),a.removeEventListener("pointerenter",c),a.removeEventListener("pointerleave",d)}}},[e.scrollArea,e.scrollHideDelay]),(0,y.jsx)(cg.Presence,{present:c||f,children:(0,y.jsx)(cz,{"data-state":f?"visible":"hidden",...d,ref:b})})}),cy=z.forwardRef((a,b)=>{var c;let{forceMount:d,...e}=a,f=cr(cv,a.__scopeScrollArea),g="horizontal"===a.orientation,h=cS(()=>j("SCROLL_END"),100),[i,j]=(c={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},z.useReducer((a,b)=>c[a][b]??a,"hidden"));return z.useEffect(()=>{if("idle"===i){let a=window.setTimeout(()=>j("HIDE"),f.scrollHideDelay);return()=>window.clearTimeout(a)}},[i,f.scrollHideDelay,j]),z.useEffect(()=>{let a=f.viewport,b=g?"scrollLeft":"scrollTop";if(a){let c=a[b],d=()=>{let d=a[b];c!==d&&(j("SCROLL"),h()),c=d};return a.addEventListener("scroll",d),()=>a.removeEventListener("scroll",d)}},[f.viewport,g,j,h]),(0,y.jsx)(cg.Presence,{present:d||"hidden"!==i,children:(0,y.jsx)(cA,{"data-state":"hidden"===i?"hidden":"visible",...e,ref:b,onPointerEnter:(0,cm.composeEventHandlers)(a.onPointerEnter,()=>j("POINTER_ENTER")),onPointerLeave:(0,cm.composeEventHandlers)(a.onPointerLeave,()=>j("POINTER_LEAVE"))})})}),cz=z.forwardRef((a,b)=>{let c=cr(cv,a.__scopeScrollArea),{forceMount:d,...e}=a,[f,g]=z.useState(!1),h="horizontal"===a.orientation,i=cS(()=>{if(c.viewport){let a=c.viewport.offsetWidth<c.viewport.scrollWidth,b=c.viewport.offsetHeight<c.viewport.scrollHeight;g(h?a:b)}},10);return cT(c.viewport,i),cT(c.content,i),(0,y.jsx)(cg.Presence,{present:d||f,children:(0,y.jsx)(cA,{"data-state":f?"visible":"hidden",...e,ref:b})})}),cA=z.forwardRef((a,b)=>{let{orientation:c="vertical",...d}=a,e=cr(cv,a.__scopeScrollArea),f=z.useRef(null),g=z.useRef(0),[h,i]=z.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),j=cN(h.viewport,h.content),k={...d,sizes:h,onSizesChange:i,hasThumb:!!(j>0&&j<1),onThumbChange:a=>f.current=a,onThumbPointerUp:()=>g.current=0,onThumbPointerDown:a=>g.current=a};function l(a,b){return function(a,b,c,d="ltr"){let e=cO(c),f=b||e/2,g=c.scrollbar.paddingStart+f,h=c.scrollbar.size-c.scrollbar.paddingEnd-(e-f),i=c.content-c.viewport;return cQ([g,h],"ltr"===d?[0,i]:[-1*i,0])(a)}(a,g.current,h,b)}return"horizontal"===c?(0,y.jsx)(cB,{...k,ref:b,onThumbPositionChange:()=>{if(e.viewport&&f.current){let a=cP(e.viewport.scrollLeft,h,e.dir);f.current.style.transform=`translate3d(${a}px, 0, 0)`}},onWheelScroll:a=>{e.viewport&&(e.viewport.scrollLeft=a)},onDragScroll:a=>{e.viewport&&(e.viewport.scrollLeft=l(a,e.dir))}}):"vertical"===c?(0,y.jsx)(cC,{...k,ref:b,onThumbPositionChange:()=>{if(e.viewport&&f.current){let a=cP(e.viewport.scrollTop,h);f.current.style.transform=`translate3d(0, ${a}px, 0)`}},onWheelScroll:a=>{e.viewport&&(e.viewport.scrollTop=a)},onDragScroll:a=>{e.viewport&&(e.viewport.scrollTop=l(a))}}):null}),cB=z.forwardRef((a,b)=>{let{sizes:c,onSizesChange:d,...e}=a,f=cr(cv,a.__scopeScrollArea),[g,h]=z.useState(),i=z.useRef(null),j=(0,bi.useComposedRefs)(b,i,f.onScrollbarXChange);return z.useEffect(()=>{i.current&&h(getComputedStyle(i.current))},[i]),(0,y.jsx)(cF,{"data-orientation":"horizontal",...e,ref:j,sizes:c,style:{bottom:0,left:"rtl"===f.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===f.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":cO(c)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.x),onDragScroll:b=>a.onDragScroll(b.x),onWheelScroll:(b,c)=>{if(f.viewport){var d,e;let g=f.viewport.scrollLeft+b.deltaX;a.onWheelScroll(g),d=g,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{i.current&&f.viewport&&g&&d({content:f.viewport.scrollWidth,viewport:f.viewport.offsetWidth,scrollbar:{size:i.current.clientWidth,paddingStart:cM(g.paddingLeft),paddingEnd:cM(g.paddingRight)}})}})}),cC=z.forwardRef((a,b)=>{let{sizes:c,onSizesChange:d,...e}=a,f=cr(cv,a.__scopeScrollArea),[g,h]=z.useState(),i=z.useRef(null),j=(0,bi.useComposedRefs)(b,i,f.onScrollbarYChange);return z.useEffect(()=>{i.current&&h(getComputedStyle(i.current))},[i]),(0,y.jsx)(cF,{"data-orientation":"vertical",...e,ref:j,sizes:c,style:{top:0,right:"ltr"===f.dir?0:void 0,left:"rtl"===f.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":cO(c)+"px",...a.style},onThumbPointerDown:b=>a.onThumbPointerDown(b.y),onDragScroll:b=>a.onDragScroll(b.y),onWheelScroll:(b,c)=>{if(f.viewport){var d,e;let g=f.viewport.scrollTop+b.deltaY;a.onWheelScroll(g),d=g,e=c,d>0&&d<e&&b.preventDefault()}},onResize:()=>{i.current&&f.viewport&&g&&d({content:f.viewport.scrollHeight,viewport:f.viewport.offsetHeight,scrollbar:{size:i.current.clientHeight,paddingStart:cM(g.paddingTop),paddingEnd:cM(g.paddingBottom)}})}})}),[cD,cE]=co(cv),cF=z.forwardRef((a,b)=>{let{__scopeScrollArea:c,sizes:d,hasThumb:e,onThumbChange:f,onThumbPointerUp:g,onThumbPointerDown:h,onThumbPositionChange:i,onDragScroll:j,onWheelScroll:k,onResize:l,...m}=a,n=cr(cv,c),[o,p]=z.useState(null),q=(0,bi.useComposedRefs)(b,a=>p(a)),r=z.useRef(null),s=z.useRef(""),t=n.viewport,u=d.content-d.viewport,v=(0,ci.useCallbackRef)(k),w=(0,ci.useCallbackRef)(i),x=cS(l,10);function A(a){r.current&&j({x:a.clientX-r.current.left,y:a.clientY-r.current.top})}return z.useEffect(()=>{let a=a=>{let b=a.target;o?.contains(b)&&v(a,u)};return document.addEventListener("wheel",a,{passive:!1}),()=>document.removeEventListener("wheel",a,{passive:!1})},[t,o,u,v]),z.useEffect(w,[d,w]),cT(o,x),cT(n.content,x),(0,y.jsx)(cD,{scope:c,scrollbar:o,hasThumb:e,onThumbChange:(0,ci.useCallbackRef)(f),onThumbPointerUp:(0,ci.useCallbackRef)(g),onThumbPositionChange:w,onThumbPointerDown:(0,ci.useCallbackRef)(h),children:(0,y.jsx)(cf.Primitive.div,{...m,ref:q,style:{position:"absolute",...m.style},onPointerDown:(0,cm.composeEventHandlers)(a.onPointerDown,a=>{0===a.button&&(a.target.setPointerCapture(a.pointerId),r.current=o.getBoundingClientRect(),s.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",n.viewport&&(n.viewport.style.scrollBehavior="auto"),A(a))}),onPointerMove:(0,cm.composeEventHandlers)(a.onPointerMove,A),onPointerUp:(0,cm.composeEventHandlers)(a.onPointerUp,a=>{let b=a.target;b.hasPointerCapture(a.pointerId)&&b.releasePointerCapture(a.pointerId),document.body.style.webkitUserSelect=s.current,n.viewport&&(n.viewport.style.scrollBehavior=""),r.current=null})})})}),cG="ScrollAreaThumb",cH=z.forwardRef((a,b)=>{let{forceMount:c,...d}=a,e=cE(cG,a.__scopeScrollArea);return(0,y.jsx)(cg.Presence,{present:c||e.hasThumb,children:(0,y.jsx)(cI,{ref:b,...d})})}),cI=z.forwardRef((a,b)=>{let{__scopeScrollArea:c,style:d,...e}=a,f=cr(cG,c),g=cE(cG,c),{onThumbPositionChange:h}=g,i=(0,bi.useComposedRefs)(b,a=>g.onThumbChange(a)),j=z.useRef(void 0),k=cS(()=>{j.current&&(j.current(),j.current=void 0)},100);return z.useEffect(()=>{let a=f.viewport;if(a){let b=()=>{k(),j.current||(j.current=cR(a,h),h())};return h(),a.addEventListener("scroll",b),()=>a.removeEventListener("scroll",b)}},[f.viewport,k,h]),(0,y.jsx)(cf.Primitive.div,{"data-state":g.hasThumb?"visible":"hidden",...e,ref:i,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...d},onPointerDownCapture:(0,cm.composeEventHandlers)(a.onPointerDownCapture,a=>{let b=a.target.getBoundingClientRect(),c=a.clientX-b.left,d=a.clientY-b.top;g.onThumbPointerDown({x:c,y:d})}),onPointerUp:(0,cm.composeEventHandlers)(a.onPointerUp,g.onThumbPointerUp)})});cH.displayName=cG;var cJ="ScrollAreaCorner",cK=z.forwardRef((a,b)=>{let c=cr(cJ,a.__scopeScrollArea),d=!!(c.scrollbarX&&c.scrollbarY);return"scroll"!==c.type&&d?(0,y.jsx)(cL,{...a,ref:b}):null});cK.displayName=cJ;var cL=z.forwardRef((a,b)=>{let{__scopeScrollArea:c,...d}=a,e=cr(cJ,c),[f,g]=z.useState(0),[h,i]=z.useState(0),j=!!(f&&h);return cT(e.scrollbarX,()=>{let a=e.scrollbarX?.offsetHeight||0;e.onCornerHeightChange(a),i(a)}),cT(e.scrollbarY,()=>{let a=e.scrollbarY?.offsetWidth||0;e.onCornerWidthChange(a),g(a)}),j?(0,y.jsx)(cf.Primitive.div,{...d,ref:b,style:{width:f,height:h,position:"absolute",right:"ltr"===e.dir?0:void 0,left:"rtl"===e.dir?0:void 0,bottom:0,...a.style}}):null});function cM(a){return a?parseInt(a,10):0}function cN(a,b){let c=a/b;return isNaN(c)?0:c}function cO(a){let b=cN(a.viewport,a.content),c=a.scrollbar.paddingStart+a.scrollbar.paddingEnd;return Math.max((a.scrollbar.size-c)*b,18)}function cP(a,b,c="ltr"){let d=cO(b),e=b.scrollbar.paddingStart+b.scrollbar.paddingEnd,f=b.scrollbar.size-e,g=b.content-b.viewport,h=function(a,[b,c]){return Math.min(c,Math.max(b,a))}(a,"ltr"===c?[0,g]:[-1*g,0]);return cQ([0,g],[0,f-d])(h)}function cQ(a,b){return c=>{if(a[0]===a[1]||b[0]===b[1])return b[0];let d=(b[1]-b[0])/(a[1]-a[0]);return b[0]+d*(c-a[0])}}var cR=(a,b=()=>{})=>{let c={left:a.scrollLeft,top:a.scrollTop},d=0;return!function e(){let f={left:a.scrollLeft,top:a.scrollTop},g=c.left!==f.left,h=c.top!==f.top;(g||h)&&b(),c=f,d=window.requestAnimationFrame(e)}(),()=>window.cancelAnimationFrame(d)};function cS(a,b){let c=(0,ci.useCallbackRef)(a),d=z.useRef(0);return z.useEffect(()=>()=>window.clearTimeout(d.current),[]),z.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(c,b)},[c,b])}function cT(a,b){let c=(0,ci.useCallbackRef)(b);(0,cl.useLayoutEffect)(()=>{let b=0;if(a){let d=new ResizeObserver(()=>{cancelAnimationFrame(b),b=window.requestAnimationFrame(c)});return d.observe(a),()=>{window.cancelAnimationFrame(b),d.unobserve(a)}}},[a,c])}function cU({className:a,children:b,...c}){return(0,y.jsxs)(cs,{"data-slot":"scroll-area",className:(0,bE.cn)("relative",a),...c,children:[(0,y.jsx)(cu,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:b}),(0,y.jsx)(cV,{}),(0,y.jsx)(cK,{})]})}function cV({className:a,orientation:b="vertical",...c}){return(0,y.jsx)(cw,{"data-slot":"scroll-area-scrollbar",orientation:b,className:(0,bE.cn)("flex touch-none p-px transition-colors select-none","vertical"===b&&"h-full w-2.5 border-l border-l-transparent","horizontal"===b&&"h-2.5 flex-col border-t border-t-transparent",a),...c,children:(0,y.jsx)(cH,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}let cW=["","寂灭前夜","谐振纪","飞升潮","回响纪","接触纪"];function cX(){let a=bc(a=>a.fragments),b=bc(a=>a.totalDecoded),c=function(a){for(let b of M)if(a<b.threshold)return b.threshold;return null}(b),[d,e]=(0,z.useState)(null),f=M.filter(a=>1===a.era),g=f.filter(b=>a[b.id]).length;return(0,y.jsxs)("div",{className:"flex flex-col gap-2 h-full",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between",children:[(0,y.jsxs)("h3",{className:"text-sm font-semibold flex items-center gap-1.5",children:[(0,y.jsx)(ca,{className:"h-4 w-4 text-fuchsia-400"}),"记忆图谱"]}),(0,y.jsxs)("span",{className:"text-xs text-muted-foreground",children:[g,"/",f.length," · 第一纪元"]})]}),c&&(0,y.jsxs)("div",{className:"text-[10px] text-muted-foreground/80 px-1",children:["再解码 ",(0,y.jsx)("span",{className:"text-fuchsia-300 font-mono",children:c-b})," 颗 → 下一个碎片"]}),(0,y.jsx)(cU,{className:"flex-1 min-h-0",children:(0,y.jsx)("div",{className:"grid grid-cols-2 gap-2 pr-2",children:f.map((b,c)=>{let d=!!a[b.id];return(0,y.jsxs)("button",{onClick:()=>d&&e(b),disabled:!d,className:`relative aspect-[4/3] rounded-xl border text-left p-2 transition-all duration-300 overflow-hidden ${d?"border-fuchsia-400/40 bg-gradient-to-br from-fuchsia-950/40 to-black/40 hover:border-fuchsia-400/70 hover:scale-[1.02] cursor-pointer":"border-white/5 bg-black/30 cursor-not-allowed"}`,style:d?{boxShadow:"0 0 16px rgba(232,121,249,0.15)"}:void 0,children:[(0,y.jsx)("span",{className:`absolute top-1.5 right-1.5 text-[9px] font-mono ${d?"text-fuchsia-300/70":"text-white/20"}`,children:String(c+1).padStart(2,"0")}),d?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("div",{className:"absolute -top-3 -right-3 h-12 w-12 rounded-full bg-fuchsia-500/20 blur-xl"}),(0,y.jsx)(b_,{className:"h-3 w-3 text-fuchsia-300 mb-1"}),(0,y.jsx)("div",{className:"text-[11px] font-semibold text-fuchsia-100 leading-tight",children:b.title}),(0,y.jsxs)("div",{className:"text-[9px] text-muted-foreground mt-1 line-clamp-2",children:[b.echo.slice(0,28),"…"]})]}):(0,y.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-1",children:[(0,y.jsx)(cb,{className:"h-4 w-4 text-white/20"}),(0,y.jsxs)("span",{className:"text-[9px] text-white/30",children:["需解码 ",b.threshold," 颗"]})]})]},b.id)})})}),d&&(0,y.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/70 backdrop-blur-sm",onClick:()=>e(null),children:(0,y.jsxs)(b6,{className:"max-w-md w-full p-5 bg-gradient-to-br from-fuchsia-950/60 to-black/80 border-fuchsia-400/40",onClick:a=>a.stopPropagation(),style:{boxShadow:"0 0 40px rgba(232,121,249,0.25)"},children:[(0,y.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,y.jsx)(b_,{className:"h-4 w-4 text-fuchsia-300"}),(0,y.jsxs)("span",{className:"text-[10px] text-fuchsia-300/70 font-mono",children:["第 ",d.era," 纪元 · ",cW[d.era]||""]})]}),(0,y.jsx)("h4",{className:"text-lg font-bold text-fuchsia-100 mb-3",children:d.title}),(0,y.jsxs)("p",{className:"text-sm text-foreground/90 leading-relaxed italic",children:["「",d.echo,"」"]}),(0,y.jsx)("button",{onClick:()=>e(null),className:"mt-4 text-xs text-muted-foreground hover:text-foreground transition",children:"关闭"})]})})]})}var cY=z[" useId ".trim().toString()]||(()=>void 0),cZ=0;function c$(a){let[b,c]=z.useState(cY());return(0,cl.useLayoutEffect)(()=>{a||c(a=>a??String(cZ++))},[a]),a||(b?`radix-${b}`:"")}var c_=a.i(25152),c0=a.i(96743),c1="focusScope.autoFocusOnMount",c2="focusScope.autoFocusOnUnmount",c3={bubbles:!1,cancelable:!0},c4=z.forwardRef((a,b)=>{let{loop:c=!1,trapped:d=!1,onMountAutoFocus:e,onUnmountAutoFocus:f,...g}=a,[h,i]=z.useState(null),j=(0,ci.useCallbackRef)(e),k=(0,ci.useCallbackRef)(f),l=z.useRef(null),m=(0,bi.useComposedRefs)(b,a=>i(a)),n=z.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;z.useEffect(()=>{if(d){let a=function(a){if(n.paused||!h)return;let b=a.target;h.contains(b)?l.current=b:c7(l.current,{select:!0})},b=function(a){if(n.paused||!h)return;let b=a.relatedTarget;null!==b&&(h.contains(b)||c7(l.current,{select:!0}))};document.addEventListener("focusin",a),document.addEventListener("focusout",b);let c=new MutationObserver(function(a){if(document.activeElement===document.body)for(let b of a)b.removedNodes.length>0&&c7(h)});return h&&c.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b),c.disconnect()}}},[d,h,n.paused]),z.useEffect(()=>{if(h){c8.add(n);let a=document.activeElement;if(!h.contains(a)){let b=new CustomEvent(c1,c3);h.addEventListener(c1,j),h.dispatchEvent(b),b.defaultPrevented||(function(a,{select:b=!1}={}){let c=document.activeElement;for(let d of a)if(c7(d,{select:b}),document.activeElement!==c)return}(c5(h).filter(a=>"A"!==a.tagName),{select:!0}),document.activeElement===a&&c7(h))}return()=>{h.removeEventListener(c1,j),setTimeout(()=>{let b=new CustomEvent(c2,c3);h.addEventListener(c2,k),h.dispatchEvent(b),b.defaultPrevented||c7(a??document.body,{select:!0}),h.removeEventListener(c2,k),c8.remove(n)},0)}}},[h,j,k,n]);let o=z.useCallback(a=>{if(!c&&!d||n.paused)return;let b="Tab"===a.key&&!a.altKey&&!a.ctrlKey&&!a.metaKey,e=document.activeElement;if(b&&e){var f;let b,d=a.currentTarget,[g,h]=[c6(b=c5(f=d),f),c6(b.reverse(),f)];g&&h?a.shiftKey||e!==h?a.shiftKey&&e===g&&(a.preventDefault(),c&&c7(h,{select:!0})):(a.preventDefault(),c&&c7(g,{select:!0})):e===d&&a.preventDefault()}},[c,d,n.paused]);return(0,y.jsx)(cf.Primitive.div,{tabIndex:-1,...g,ref:m,onKeyDown:o})});function c5(a){let b=[],c=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{let b="INPUT"===a.tagName&&"hidden"===a.type;return a.disabled||a.hidden||b?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;c.nextNode();)b.push(c.currentNode);return b}function c6(a,b){for(let c of a)if(!function(a,{upTo:b}){if("hidden"===getComputedStyle(a).visibility)return!0;for(;a&&(void 0===b||a!==b);){if("none"===getComputedStyle(a).display)return!0;a=a.parentElement}return!1}(c,{upTo:b}))return c}function c7(a,{select:b=!1}={}){if(a&&a.focus){var c;let d=document.activeElement;a.focus({preventScroll:!0}),a!==d&&(c=a)instanceof HTMLInputElement&&"select"in c&&b&&a.select()}}c4.displayName="FocusScope";var c8=(l=[],{add(a){let b=l[0];a!==b&&b?.pause(),(l=c9(l,a)).unshift(a)},remove(a){l=c9(l,a),l[0]?.resume()}});function c9(a,b){let c=[...a],d=c.indexOf(b);return -1!==d&&c.splice(d,1),c}var da=a.i(92616),db=0;function dc(){let a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}var dd=function(){return(dd=Object.assign||function(a){for(var b,c=1,d=arguments.length;c<d;c++)for(var e in b=arguments[c])Object.prototype.hasOwnProperty.call(b,e)&&(a[e]=b[e]);return a}).apply(this,arguments)};function de(a,b){var c={};for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&0>b.indexOf(d)&&(c[d]=a[d]);if(null!=a&&"function"==typeof Object.getOwnPropertySymbols)for(var e=0,d=Object.getOwnPropertySymbols(a);e<d.length;e++)0>b.indexOf(d[e])&&Object.prototype.propertyIsEnumerable.call(a,d[e])&&(c[d[e]]=a[d[e]]);return c}var df=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),dg="width-before-scroll-bar";function dh(a,b){return"function"==typeof a?a(b):a&&(a.current=b),a}var di=z.useEffect,dj=new WeakMap,dk=(void 0===o&&(o={}),(void 0===p&&(p=function(a){return a}),q=[],r=!1,s={read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return q.length?q[q.length-1]:null},useMedium:function(a){var b=p(a,r);return q.push(b),function(){q=q.filter(function(a){return a!==b})}},assignSyncMedium:function(a){for(r=!0;q.length;){var b=q;q=[],b.forEach(a)}q={push:function(b){return a(b)},filter:function(){return q}}},assignMedium:function(a){r=!0;var b=[];if(q.length){var c=q;q=[],c.forEach(a),b=q}var d=function(){var c=b;b=[],c.forEach(a)},e=function(){return Promise.resolve().then(d)};e(),q={push:function(a){b.push(a),e()},filter:function(a){return b=b.filter(a),q}}}}).options=dd({async:!0,ssr:!1},o),s),dl=function(){},dm=z.forwardRef(function(a,b){var c,d,e,f,g=z.useRef(null),h=z.useState({onScrollCapture:dl,onWheelCapture:dl,onTouchMoveCapture:dl}),i=h[0],j=h[1],k=a.forwardProps,l=a.children,m=a.className,n=a.removeScrollBar,o=a.enabled,p=a.shards,q=a.sideCar,r=a.noRelative,s=a.noIsolation,t=a.inert,u=a.allowPinchZoom,v=a.as,w=a.gapMode,x=de(a,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),y=(c=[g,b],d=function(a){return c.forEach(function(b){return dh(b,a)})},(e=(0,z.useState)(function(){return{value:null,callback:d,facade:{get current(){return e.value},set current(value){var a=e.value;a!==value&&(e.value=value,e.callback(value,a))}}}})[0]).callback=d,f=e.facade,di(function(){var a=dj.get(f);if(a){var b=new Set(a),d=new Set(c),e=f.current;b.forEach(function(a){d.has(a)||dh(a,null)}),d.forEach(function(a){b.has(a)||dh(a,e)})}dj.set(f,c)},[c]),f),A=dd(dd({},x),i);return z.createElement(z.Fragment,null,o&&z.createElement(q,{sideCar:dk,removeScrollBar:n,shards:p,noRelative:r,noIsolation:s,inert:t,setCallbacks:j,allowPinchZoom:!!u,lockRef:g,gapMode:w}),k?z.cloneElement(z.Children.only(l),dd(dd({},A),{ref:y})):z.createElement(void 0===v?"div":v,dd({},A,{className:m,ref:y}),l))});dm.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},dm.classNames={fullWidth:dg,zeroRight:df};var dn=function(a){var b=a.sideCar,c=de(a,["sideCar"]);if(!b)throw Error("Sidecar: please provide `sideCar` property to import the right car");var d=b.read();if(!d)throw Error("Sidecar medium not found");return z.createElement(d,dd({},c))};dn.isSideCarExport=!0;var dp=function(){var a=0,b=null;return{add:function(c){if(0==a&&(b=function(){if(!document)return null;var a=document.createElement("style");a.type="text/css";var b=w||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return b&&a.setAttribute("nonce",b),a}())){var d,e;(d=b).styleSheet?d.styleSheet.cssText=c:d.appendChild(document.createTextNode(c)),e=b,(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}a++},remove:function(){--a||!b||(b.parentNode&&b.parentNode.removeChild(b),b=null)}}},dq=function(){var a=dp();return function(b,c){z.useEffect(function(){return a.add(b),function(){a.remove()}},[b&&c])}},dr=function(){var a=dq();return function(b){return a(b.styles,b.dynamic),null}},ds={left:0,top:0,right:0,gap:0},dt=dr(),du="data-scroll-locked",dv=function(a,b,c,d){var e=a.left,f=a.top,g=a.right,h=a.gap;return void 0===c&&(c="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(d,";\n padding-right: ").concat(h,"px ").concat(d,";\n }\n body[").concat(du,"] {\n overflow: hidden ").concat(d,";\n overscroll-behavior: contain;\n ").concat([b&&"position: relative ".concat(d,";"),"margin"===c&&"\n padding-left: ".concat(e,"px;\n padding-top: ").concat(f,"px;\n padding-right: ").concat(g,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(h,"px ").concat(d,";\n "),"padding"===c&&"padding-right: ".concat(h,"px ").concat(d,";")].filter(Boolean).join(""),"\n }\n \n .").concat(df," {\n right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(dg," {\n margin-right: ").concat(h,"px ").concat(d,";\n }\n \n .").concat(df," .").concat(df," {\n right: 0 ").concat(d,";\n }\n \n .").concat(dg," .").concat(dg," {\n margin-right: 0 ").concat(d,";\n }\n \n body[").concat(du,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(h,"px;\n }\n")},dw=function(){var a=parseInt(document.body.getAttribute(du)||"0",10);return isFinite(a)?a:0},dx=function(){z.useEffect(function(){return document.body.setAttribute(du,(dw()+1).toString()),function(){var a=dw()-1;a<=0?document.body.removeAttribute(du):document.body.setAttribute(du,a.toString())}},[])},dy=function(a){var b=a.noRelative,c=a.noImportant,d=a.gapMode,e=void 0===d?"margin":d;dx();var f=z.useMemo(function(){return void 0===e,ds},[e]);return z.createElement(dt,{styles:dv(f,!b,e,c?"":"!important")})},dz=function(a,b){if(!(a instanceof Element))return!1;var c=window.getComputedStyle(a);return"hidden"!==c[b]&&(c.overflowY!==c.overflowX||"TEXTAREA"===a.tagName||"visible"!==c[b])},dA=function(a,b){var c=b.ownerDocument,d=b;do{if("u">typeof ShadowRoot&&d instanceof ShadowRoot&&(d=d.host),dB(a,d)){var e=dC(a,d);if(e[1]>e[2])return!0}d=d.parentNode}while(d&&d!==c.body)return!1},dB=function(a,b){return"v"===a?dz(b,"overflowY"):dz(b,"overflowX")},dC=function(a,b){return"v"===a?[b.scrollTop,b.scrollHeight,b.clientHeight]:[b.scrollLeft,b.scrollWidth,b.clientWidth]},dD=function(a,b,c,d,e){var f,g=(f=window.getComputedStyle(b).direction,"h"===a&&"rtl"===f?-1:1),h=g*d,i=c.target,j=b.contains(i),k=!1,l=h>0,m=0,n=0;do{if(!i)break;var o=dC(a,i),p=o[0],q=o[1]-o[2]-g*p;(p||q)&&dB(a,i)&&(m+=q,n+=p);var r=i.parentNode;i=r&&r.nodeType===Node.DOCUMENT_FRAGMENT_NODE?r.host:r}while(!j&&i!==document.body||j&&(b.contains(i)||b===i))return l&&(e&&1>Math.abs(m)||!e&&h>m)?k=!0:!l&&(e&&1>Math.abs(n)||!e&&-h>n)&&(k=!0),k},dE=function(a){return"changedTouches"in a?[a.changedTouches[0].clientX,a.changedTouches[0].clientY]:[0,0]},dF=function(a){return[a.deltaX,a.deltaY]},dG=function(a){return a&&"current"in a?a.current:a},dH=0,dI=[];let dJ=(t=function(a){var b=z.useRef([]),c=z.useRef([0,0]),d=z.useRef(),e=z.useState(dH++)[0],f=z.useState(dr)[0],g=z.useRef(a);z.useEffect(function(){g.current=a},[a]),z.useEffect(function(){if(a.inert){document.body.classList.add("block-interactivity-".concat(e));var b=(function(a,b,c){if(c||2==arguments.length)for(var d,e=0,f=b.length;e<f;e++)!d&&e in b||(d||(d=Array.prototype.slice.call(b,0,e)),d[e]=b[e]);return a.concat(d||Array.prototype.slice.call(b))})([a.lockRef.current],(a.shards||[]).map(dG),!0).filter(Boolean);return b.forEach(function(a){return a.classList.add("allow-interactivity-".concat(e))}),function(){document.body.classList.remove("block-interactivity-".concat(e)),b.forEach(function(a){return a.classList.remove("allow-interactivity-".concat(e))})}}},[a.inert,a.lockRef.current,a.shards]);var h=z.useCallback(function(a,b){if("touches"in a&&2===a.touches.length||"wheel"===a.type&&a.ctrlKey)return!g.current.allowPinchZoom;var e,f=dE(a),h=c.current,i="deltaX"in a?a.deltaX:h[0]-f[0],j="deltaY"in a?a.deltaY:h[1]-f[1],k=a.target,l=Math.abs(i)>Math.abs(j)?"h":"v";if("touches"in a&&"h"===l&&"range"===k.type)return!1;var m=window.getSelection(),n=m&&m.anchorNode;if(n&&(n===k||n.contains(k)))return!1;var o=dA(l,k);if(!o)return!0;if(o?e=l:(e="v"===l?"h":"v",o=dA(l,k)),!o)return!1;if(!d.current&&"changedTouches"in a&&(i||j)&&(d.current=e),!e)return!0;var p=d.current||e;return dD(p,b,a,"h"===p?i:j,!0)},[]),i=z.useCallback(function(a){if(dI.length&&dI[dI.length-1]===f){var c="deltaY"in a?dF(a):dE(a),d=b.current.filter(function(b){var d;return b.name===a.type&&(b.target===a.target||a.target===b.shadowParent)&&(d=b.delta,d[0]===c[0]&&d[1]===c[1])})[0];if(d&&d.should){a.cancelable&&a.preventDefault();return}if(!d){var e=(g.current.shards||[]).map(dG).filter(Boolean).filter(function(b){return b.contains(a.target)});(e.length>0?h(a,e[0]):!g.current.noIsolation)&&a.cancelable&&a.preventDefault()}}},[]),j=z.useCallback(function(a,c,d,e){var f={name:a,delta:c,target:d,should:e,shadowParent:function(a){for(var b=null;null!==a;)a instanceof ShadowRoot&&(b=a.host,a=a.host),a=a.parentNode;return b}(d)};b.current.push(f),setTimeout(function(){b.current=b.current.filter(function(a){return a!==f})},1)},[]),k=z.useCallback(function(a){c.current=dE(a),d.current=void 0},[]),l=z.useCallback(function(b){j(b.type,dF(b),b.target,h(b,a.lockRef.current))},[]),m=z.useCallback(function(b){j(b.type,dE(b),b.target,h(b,a.lockRef.current))},[]);z.useEffect(function(){return dI.push(f),a.setCallbacks({onScrollCapture:l,onWheelCapture:l,onTouchMoveCapture:m}),document.addEventListener("wheel",i,!1),document.addEventListener("touchmove",i,!1),document.addEventListener("touchstart",k,!1),function(){dI=dI.filter(function(a){return a!==f}),document.removeEventListener("wheel",i,!1),document.removeEventListener("touchmove",i,!1),document.removeEventListener("touchstart",k,!1)}},[]);var n=a.removeScrollBar,o=a.inert;return z.createElement(z.Fragment,null,o?z.createElement(f,{styles:"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")}):null,n?z.createElement(dy,{noRelative:a.noRelative,gapMode:a.gapMode}):null)},dk.useMedium(t),dn);var dK=z.forwardRef(function(a,b){return z.createElement(dm,dd({},a,{ref:b,sideCar:dJ}))});dK.classNames=dm.classNames;var dL=new WeakMap,dM=new WeakMap,dN={},dO=0,dP=function(a){return a&&(a.host||dP(a.parentNode))},dQ=function(a,b,c,d){var e=(Array.isArray(a)?a:[a]).map(function(a){if(b.contains(a))return a;var c=dP(a);return c&&b.contains(c)?c:(console.error("aria-hidden",a,"in not contained inside",b,". Doing nothing"),null)}).filter(function(a){return!!a});dN[c]||(dN[c]=new WeakMap);var f=dN[c],g=[],h=new Set,i=new Set(e),j=function(a){!a||h.has(a)||(h.add(a),j(a.parentNode))};e.forEach(j);var k=function(a){!a||i.has(a)||Array.prototype.forEach.call(a.children,function(a){if(h.has(a))k(a);else try{var b=a.getAttribute(d),e=null!==b&&"false"!==b,i=(dL.get(a)||0)+1,j=(f.get(a)||0)+1;dL.set(a,i),f.set(a,j),g.push(a),1===i&&e&&dM.set(a,!0),1===j&&a.setAttribute(c,"true"),e||a.setAttribute(d,"true")}catch(b){console.error("aria-hidden: cannot operate on ",a,b)}})};return k(b),h.clear(),dO++,function(){g.forEach(function(a){var b=dL.get(a)-1,e=f.get(a)-1;dL.set(a,b),f.set(a,e),b||(dM.has(a)||a.removeAttribute(d),dM.delete(a)),e||a.removeAttribute(c)}),--dO||(dL=new WeakMap,dL=new WeakMap,dM=new WeakMap,dN={})}},dR=function(a,b,c){void 0===c&&(c="data-aria-hidden");var d=Array.from(Array.isArray(a)?a:[a]),e=b||("u"<typeof document?null:(Array.isArray(a)?a[0]:a).ownerDocument.body);return e?(d.push.apply(d,Array.from(e.querySelectorAll("[aria-live], script"))),dQ(d,e,c,"aria-hidden")):function(){return null}},dS=Symbol("radix.slottable");function dT(a){return z.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===dS}var dU="Dialog",[dV,dW]=(0,ch.createContextScope)(dU),[dX,dY]=dV(dU),dZ=a=>{let{__scopeDialog:b,children:c,open:d,defaultOpen:e,onOpenChange:f,modal:g=!0}=a,h=z.useRef(null),i=z.useRef(null),[j,k]=(0,c_.useControllableState)({prop:d,defaultProp:e??!1,onChange:f,caller:dU});return(0,y.jsx)(dX,{scope:b,triggerRef:h,contentRef:i,contentId:c$(),titleId:c$(),descriptionId:c$(),open:j,onOpenChange:k,onOpenToggle:z.useCallback(()=>k(a=>!a),[k]),modal:g,children:c})};dZ.displayName=dU;var d$="DialogTrigger";z.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=dY(d$,c),f=(0,bi.useComposedRefs)(b,e.triggerRef);return(0,y.jsx)(cf.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":e.open,"aria-controls":e.contentId,"data-state":ei(e.open),...d,ref:f,onClick:(0,cm.composeEventHandlers)(a.onClick,e.onOpenToggle)})}).displayName=d$;var d_="DialogPortal",[d0,d1]=dV(d_,{forceMount:void 0}),d2=a=>{let{__scopeDialog:b,forceMount:c,children:d,container:e}=a,f=dY(d_,b);return(0,y.jsx)(d0,{scope:b,forceMount:c,children:z.Children.map(d,a=>(0,y.jsx)(cg.Presence,{present:c||f.open,children:(0,y.jsx)(da.Portal,{asChild:!0,container:e,children:a})}))})};d2.displayName=d_;var d3="DialogOverlay",d4=z.forwardRef((a,b)=>{let c=d1(d3,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=dY(d3,a.__scopeDialog);return f.modal?(0,y.jsx)(cg.Presence,{present:d||f.open,children:(0,y.jsx)(d6,{...e,ref:b})}):null});d4.displayName=d3;var d5=((m=z.forwardRef((a,b)=>{let{children:c,...d}=a;if(z.isValidElement(c)){var e;let a,f,g=(e=c,(f=(a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.ref:(f=(a=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?e.props.ref:e.props.ref||e.ref),h=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==z.Fragment&&(h.ref=b?(0,bi.composeRefs)(b,g):g),z.cloneElement(c,h)}return z.Children.count(c)>1?z.Children.only(null):null})).displayName="DialogOverlay.RemoveScroll.SlotClone",h=m,(i=z.forwardRef((a,b)=>{let{children:c,...d}=a,e=z.Children.toArray(c),f=e.find(dT);if(f){let a=f.props.children,c=e.map(b=>b!==f?b:z.Children.count(a)>1?z.Children.only(null):z.isValidElement(a)?a.props.children:null);return(0,y.jsx)(h,{...d,ref:b,children:z.isValidElement(a)?z.cloneElement(a,void 0,c):null})}return(0,y.jsx)(h,{...d,ref:b,children:c})})).displayName="DialogOverlay.RemoveScroll.Slot",i),d6=z.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=dY(d3,c);return(0,y.jsx)(dK,{as:d5,allowPinchZoom:!0,shards:[e.contentRef],children:(0,y.jsx)(cf.Primitive.div,{"data-state":ei(e.open),...d,ref:b,style:{pointerEvents:"auto",...d.style}})})}),d7="DialogContent",d8=z.forwardRef((a,b)=>{let c=d1(d7,a.__scopeDialog),{forceMount:d=c.forceMount,...e}=a,f=dY(d7,a.__scopeDialog);return(0,y.jsx)(cg.Presence,{present:d||f.open,children:f.modal?(0,y.jsx)(d9,{...e,ref:b}):(0,y.jsx)(ea,{...e,ref:b})})});d8.displayName=d7;var d9=z.forwardRef((a,b)=>{let c=dY(d7,a.__scopeDialog),d=z.useRef(null),e=(0,bi.useComposedRefs)(b,c.contentRef,d);return z.useEffect(()=>{let a=d.current;if(a)return dR(a)},[]),(0,y.jsx)(eb,{...a,ref:e,trapFocus:c.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,cm.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),c.triggerRef.current?.focus()}),onPointerDownOutside:(0,cm.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;(2===b.button||c)&&a.preventDefault()}),onFocusOutside:(0,cm.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault())})}),ea=z.forwardRef((a,b)=>{let c=dY(d7,a.__scopeDialog),d=z.useRef(!1),e=z.useRef(!1);return(0,y.jsx)(eb,{...a,ref:b,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(d.current||c.triggerRef.current?.focus(),b.preventDefault()),d.current=!1,e.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(d.current=!0,"pointerdown"===b.detail.originalEvent.type&&(e.current=!0));let f=b.target;c.triggerRef.current?.contains(f)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&e.current&&b.preventDefault()}})}),eb=z.forwardRef((a,b)=>{let{__scopeDialog:c,trapFocus:d,onOpenAutoFocus:e,onCloseAutoFocus:f,...g}=a,h=dY(d7,c),i=z.useRef(null),j=(0,bi.useComposedRefs)(b,i);return z.useEffect(()=>{let a=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",a[0]??dc()),document.body.insertAdjacentElement("beforeend",a[1]??dc()),db++,()=>{1===db&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),db--}},[]),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(c4,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:e,onUnmountAutoFocus:f,children:(0,y.jsx)(c0.DismissableLayer,{role:"dialog",id:h.contentId,"aria-describedby":h.descriptionId,"aria-labelledby":h.titleId,"data-state":ei(h.open),...g,ref:j,onDismiss:()=>h.onOpenChange(!1)})}),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(em,{titleId:h.titleId}),(0,y.jsx)(en,{contentRef:i,descriptionId:h.descriptionId})]})]})}),ec="DialogTitle",ed=z.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=dY(ec,c);return(0,y.jsx)(cf.Primitive.h2,{id:e.titleId,...d,ref:b})});ed.displayName=ec;var ee="DialogDescription",ef=z.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=dY(ee,c);return(0,y.jsx)(cf.Primitive.p,{id:e.descriptionId,...d,ref:b})});ef.displayName=ee;var eg="DialogClose",eh=z.forwardRef((a,b)=>{let{__scopeDialog:c,...d}=a,e=dY(eg,c);return(0,y.jsx)(cf.Primitive.button,{type:"button",...d,ref:b,onClick:(0,cm.composeEventHandlers)(a.onClick,()=>e.onOpenChange(!1))})});function ei(a){return a?"open":"closed"}eh.displayName=eg;var ej="DialogTitleWarning",[ek,el]=(0,ch.createContext)(ej,{contentName:d7,titleName:ec,docsSlug:"dialog"}),em=({titleId:a})=>{let b=el(ej),c=`\`${b.contentName}\` requires a \`${b.titleName}\` for the component to be accessible for screen reader users.
|
||
|
||
If you want to hide the \`${b.titleName}\`, you can wrap it with our VisuallyHidden component.
|
||
|
||
For more information, see https://radix-ui.com/primitives/docs/components/${b.docsSlug}`;return z.useEffect(()=>{a&&(document.getElementById(a)||console.error(c))},[c,a]),null},en=({contentRef:a,descriptionId:b})=>{let c=el("DialogDescriptionWarning"),d=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${c.contentName}}.`;return z.useEffect(()=>{let c=a.current?.getAttribute("aria-describedby");b&&c&&(document.getElementById(b)||console.warn(d))},[d,a,b]),null},eo=a.i(62213),eo=eo;function ep({...a}){return(0,y.jsx)(dZ,{"data-slot":"dialog",...a})}function eq({...a}){return(0,y.jsx)(d2,{"data-slot":"dialog-portal",...a})}function er({className:a,...b}){return(0,y.jsx)(d4,{"data-slot":"dialog-overlay",className:(0,bE.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",a),...b})}function es({className:a,children:b,showCloseButton:c=!0,...d}){return(0,y.jsxs)(eq,{"data-slot":"dialog-portal",children:[(0,y.jsx)(er,{}),(0,y.jsxs)(d8,{"data-slot":"dialog-content",className:(0,bE.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",a),...d,children:[b,c&&(0,y.jsxs)(eh,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,y.jsx)(eo.default,{}),(0,y.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function et({className:a,...b}){return(0,y.jsx)("div",{"data-slot":"dialog-header",className:(0,bE.cn)("flex flex-col gap-2 text-center sm:text-left",a),...b})}function eu({className:a,...b}){return(0,y.jsx)("div",{"data-slot":"dialog-footer",className:(0,bE.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",a),...b})}function ev({className:a,...b}){return(0,y.jsx)(ed,{"data-slot":"dialog-title",className:(0,bE.cn)("text-lg leading-none font-semibold",a),...b})}function ew({className:a,...b}){return(0,y.jsx)(ef,{"data-slot":"dialog-description",className:(0,bE.cn)("text-muted-foreground text-sm",a),...b})}let ex=(0,bd.default)("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"}]]);function ey({open:a,onOpenChange:b}){let c=bc(),d=bc(a=>a.doPrestige),{toast:e}=(0,bJ.useToast)(),[f,g]=(0,z.useState)(!1),[h,i]=(0,z.useState)(!1),j=aw(c);c.blueprints.length;let k=Math.min(6,c.blueprints.length+j),l=ab(c.constellation??[]);return(0,y.jsx)(ep,{open:a,onOpenChange:b,children:(0,y.jsxs)(es,{className:"bg-gradient-to-br from-fuchsia-950/70 to-black/90 border-fuchsia-400/40",children:[(0,y.jsxs)(et,{children:[(0,y.jsxs)(ev,{className:"flex items-center gap-2 text-fuchsia-100",children:[(0,y.jsx)(bh,{className:"h-5 w-5"}),"飞升 · 跨越维度"]}),(0,y.jsx)(ew,{className:"text-fuchsia-200/70",children:"当接触进度满溢,你将跨越维度与以太族相会。本次飞升将重置资源与技术,但保留记忆图谱与蓝图加成。"})]}),(0,y.jsxs)("div",{className:"space-y-3 py-2",children:[(0,y.jsxs)("div",{className:"rounded-lg border border-fuchsia-400/30 bg-fuchsia-950/30 p-3",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between",children:[(0,y.jsx)("span",{className:"text-sm text-fuchsia-200",children:"本次获得蓝图"}),(0,y.jsxs)("span",{className:"text-2xl font-mono font-bold text-fuchsia-100",children:["+",j]})]}),(0,y.jsxs)("p",{className:"text-[11px] text-muted-foreground mt-1",children:["蓝图总数将达 ",k,"/",6,"(每 ",20," 次解码产出 1 张)"]})]}),(0,y.jsxs)("div",{className:"grid grid-cols-3 gap-2",children:[(0,y.jsx)(ez,{label:"产能",value:`+${(k*N*100).toFixed(0)}%`,color:"#34d399"}),(0,y.jsx)(ez,{label:"洞见",value:`+${(k*O*100).toFixed(0)}%`,color:"#fbbf24"}),(0,y.jsx)(ez,{label:"接触",value:`+${(k*P*100).toFixed(0)}%`,color:"#e879f9"})]}),(0,y.jsxs)("div",{className:"text-[11px] text-muted-foreground space-y-1 pt-1",children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,y.jsx)(b_,{className:"h-3 w-3 text-fuchsia-400"}),"保留:记忆图谱、累计解码数、飞升次数、蓝图、星图天赋"]}),(0,y.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,y.jsx)(bh,{className:"h-3 w-3 text-rose-400"}),"重置:晶体、洞见、技术树、接触进度、待解码晶体"]})]}),(0,y.jsx)("div",{className:"rounded-lg border border-fuchsia-400/30 bg-gradient-to-r from-fuchsia-950/40 to-purple-950/40 p-2.5",children:(0,y.jsxs)("div",{className:"flex items-center gap-2",children:[(0,y.jsx)(ex,{className:"h-4 w-4 text-fuchsia-300"}),(0,y.jsxs)("div",{className:"flex-1",children:[(0,y.jsx)("div",{className:"text-[12px] text-fuchsia-200 font-bold",children:"星图觉醒预告"}),(0,y.jsxs)("div",{className:"text-[10px] text-muted-foreground",children:["飞升后将从 3 道随机天赋中选 1,永久获得加成",l.unlocked<l.total&&(0,y.jsxs)("span",{className:"text-fuchsia-300/80",children:[" · 当前 ",l.unlocked,"/",l.total]})]})]}),(0,y.jsx)("div",{className:"text-[10px] text-fuchsia-300/70 font-mono",children:l.unlocked<l.total?"✦ 可觉醒":"✧ 已圆满"})]})}),(0,y.jsxs)("div",{className:"rounded-lg border border-violet-400/25 bg-violet-950/20 p-2.5 flex items-center gap-2",children:[(0,y.jsx)(ca,{className:"h-4 w-4 text-violet-300 flex-shrink-0"}),(0,y.jsxs)("div",{className:"flex-1 text-[10px] text-violet-100/70 leading-relaxed",children:["本次飞升将铭刻入",(0,y.jsx)("span",{className:"text-violet-200 font-bold",children:"回响编年史"}),", 记录本周目的解码、探险、星潮与觉醒天赋,形成永恒叙事时间轴。"]})]})]}),(0,y.jsxs)(eu,{children:[(0,y.jsx)(bZ,{variant:"ghost",onClick:()=>b(!1),children:"取消"}),(0,y.jsx)(bZ,{disabled:f&&!h,onClick:()=>{if(!f){g(!0),i(!1),window.setTimeout(()=>i(!0),900);return}let a=d();b(!1),g(!1),i(!1),a&&(bO("prestige"),window.setTimeout(()=>bO("chronicle"),600),e({title:"✦ 飞升成功",description:`获得 ${a.newBp} 张蓝图,进入第 ${c.ascensions+2} 周目。编年史已铭刻新纪元。`}))},className:"bg-gradient-to-r from-fuchsia-600 to-rose-500 hover:from-fuchsia-500 hover:to-rose-400 text-white border-0",children:f?h?"再次确认飞升":"请确认…":j<=0?"飞升(无新蓝图)":"飞升"})]})]})})}function ez({label:a,value:b,color:c}){return(0,y.jsxs)("div",{className:"rounded-lg border p-2 text-center",style:{borderColor:`${c}44`,background:`${c}11`},children:[(0,y.jsx)("div",{className:"text-[10px] text-muted-foreground",children:a}),(0,y.jsx)("div",{className:"text-sm font-mono font-bold",style:{color:c},children:b})]})}var eA="Switch",[eB,eC]=(0,ch.createContextScope)(eA),[eD,eE]=eB(eA),eF=z.forwardRef((a,b)=>{let{__scopeSwitch:c,name:d,checked:e,defaultChecked:f,required:g,disabled:h,value:i="on",onCheckedChange:j,form:k,...l}=a,[m,n]=z.useState(null),o=(0,bi.useComposedRefs)(b,a=>n(a)),p=z.useRef(!1),q=!m||k||!!m.closest("form"),[r,s]=(0,c_.useControllableState)({prop:e,defaultProp:f??!1,onChange:j,caller:eA});return(0,y.jsxs)(eD,{scope:c,checked:r,disabled:h,children:[(0,y.jsx)(cf.Primitive.button,{type:"button",role:"switch","aria-checked":r,"aria-required":g,"data-state":eJ(r),"data-disabled":h?"":void 0,disabled:h,value:i,...l,ref:o,onClick:(0,cm.composeEventHandlers)(a.onClick,a=>{s(a=>!a),q&&(p.current=a.isPropagationStopped(),p.current||a.stopPropagation())})}),q&&(0,y.jsx)(eI,{control:m,bubbles:!p.current,name:d,value:i,checked:r,required:g,disabled:h,form:k,style:{transform:"translateX(-100%)"}})]})});eF.displayName=eA;var eG="SwitchThumb",eH=z.forwardRef((a,b)=>{let{__scopeSwitch:c,...d}=a,e=eE(eG,c);return(0,y.jsx)(cf.Primitive.span,{"data-state":eJ(e.checked),"data-disabled":e.disabled?"":void 0,...d,ref:b})});eH.displayName=eG;var eI=z.forwardRef(({__scopeSwitch:a,control:b,checked:c,bubbles:d=!0,...e},f)=>{let g,h=z.useRef(null),i=(0,bi.useComposedRefs)(h,f),j=(g=z.useRef({value:c,previous:c}),z.useMemo(()=>(g.current.value!==c&&(g.current.previous=g.current.value,g.current.value=c),g.current.previous),[c])),k=function(a){let[b,c]=z.useState(void 0);return(0,cl.useLayoutEffect)(()=>{if(a){c({width:a.offsetWidth,height:a.offsetHeight});let b=new ResizeObserver(b=>{let d,e;if(!Array.isArray(b)||!b.length)return;let f=b[0];if("borderBoxSize"in f){let a=f.borderBoxSize,b=Array.isArray(a)?a[0]:a;d=b.inlineSize,e=b.blockSize}else d=a.offsetWidth,e=a.offsetHeight;c({width:d,height:e})});return b.observe(a,{box:"border-box"}),()=>b.unobserve(a)}c(void 0)},[a]),b}(b);return z.useEffect(()=>{let a=h.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(j!==c&&b){let e=new Event("click",{bubbles:d});b.call(a,c),a.dispatchEvent(e)}},[j,c,d]),(0,y.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:c,...e,tabIndex:-1,ref:i,style:{...e.style,...k,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function eJ(a){return a?"checked":"unchecked"}function eK({className:a,...b}){return(0,y.jsx)(eF,{"data-slot":"switch",className:(0,bE.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",a),...b,children:(0,y.jsx)(eH,{"data-slot":"switch-thumb",className:(0,bE.cn)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}eI.displayName="SwitchBubbleInput";var eL=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,b)=>{let c=bm(`Primitive.${b}`),d=z.forwardRef((a,d)=>{let{asChild:e,...f}=a;return(0,y.jsx)(e?c:b,{...f,ref:d})});return d.displayName=`Primitive.${b}`,{...a,[b]:d}},{}),eM=z.forwardRef((a,b)=>(0,y.jsx)(eL.label,{...a,ref:b,onMouseDown:b=>{b.target.closest("button, input, select, textarea")||(a.onMouseDown?.(b),!b.defaultPrevented&&b.detail>1&&b.preventDefault())}}));function eN({className:a,...b}){return(0,y.jsx)(eM,{"data-slot":"label",className:(0,bE.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}eM.displayName="Label";let eO=(0,bd.default)("trash-2",[["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"}]]),eP=(0,bd.default)("github",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]),eQ=(0,bd.default)("volume-2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]),eR=(0,bd.default)("graduation-cap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]),eS=(0,bd.default)("external-link",[["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"}]]),eT=[{id:"welcome",placement:"bottom",title:"✦ 欢迎来到回响星核",body:"你是一台苏醒在深空遗迹中的自治无人机。在这里,你需要采矿、解码以太文明遗留的记忆晶体,逐步拼凑出一段跨越维度的叙事。\n\n本引导将带你认识 5 个核心玩法,约 1 分钟。可随时跳过。"},{id:"crystal",target:"crystal-orb",placement:"right",title:"① 脉冲扫描 · 采矿",body:"点击中央的「记忆晶体」发起脉冲扫描,获得记忆晶体。\n\n连续点击可触发连击,连击越高单次产出越多。无人机也会每秒自动采集(+0.4/s 起)。",expectAction:"pulse"},{id:"decode",target:"decode-panel",placement:"left",title:"② 谐振序列 · 解码",body:"记忆晶体存满后,点击右侧「待解码晶体」开启谐振谜题:按目标色序依次点击相邻同色节点重建回路。\n\n解码成功 → 获得技术洞见 + 记忆碎片(叙事片段)。这是游戏的核心解谜层。",expectAction:"decode-start"},{id:"tech",target:"tab-tech",placement:"top",title:"③ 技术树 · 成长",body:"用「技术洞见」在「技术」标签升级 4 大分支:产能 / 解码 / 仓库 / 探险。\n\n每个分支 3 级,策略性地分配洞见是关键。",expectAction:"tech-buy"},{id:"expedition",target:"tab-expedition",placement:"top",title:"④ 遗迹探险 · 肉鸽",body:"累积足够实力后,「探险」标签可深入遗迹:6 种节点(战斗/宝藏/抉择/解谜/休整/BOSS)程序化路径,有生命系统,失败保留奖励。\n\n这是放置之外的主动玩法层。",expectAction:"expedition-start"},{id:"prestige",target:"prestige-btn",placement:"bottom",title:"⑤ 飞升 · 多周目",body:"「接触进度」满 100% 后可飞升:重置进度,获得永久蓝图加成 + 星图天赋(3 选 1 draft)+ 编年史记录。\n\n多周目叠加,越飞越强。还有每日信标挑战、6 种星潮事件等你探索。"},{id:"done",placement:"bottom",title:"✦ 回响已唤醒",body:"教程结束!后续可在「设置 → 重新查看教程」再次查看。\n\n深空之中,回响永续。祝你考古愉快。"}],eU="echo-nexus-tutorial-v1";function eV({open:a,onOpenChange:b}){let c=bc(a=>a.soundOn),d=bc(a=>a.toggleSound),e=bc(a=>a.hardReset),f=bc(a=>a.ascensions),g=bc(a=>a.totalDecoded),{toast:h}=(0,bJ.useToast)(),[i,j]=(0,z.useState)(!1);return(0,y.jsx)(ep,{open:a,onOpenChange:b,children:(0,y.jsxs)(es,{className:"bg-gradient-to-br from-slate-900/80 to-black/90 border-white/15",children:[(0,y.jsxs)(et,{children:[(0,y.jsx)(ev,{children:"设置"}),(0,y.jsx)(ew,{children:"游戏偏好与存档管理"})]}),(0,y.jsxs)("div",{className:"space-y-4 py-2",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-white/10 bg-black/30 p-3",children:[(0,y.jsxs)("div",{children:[(0,y.jsx)(eN,{className:"text-sm",children:"音效反馈"}),(0,y.jsx)("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"脉冲、解码、探险、飞升等程序化音效"})]}),(0,y.jsxs)("div",{className:"flex items-center gap-2",children:[(0,y.jsx)(bZ,{size:"sm",variant:"ghost",className:"h-7 px-2 text-muted-foreground hover:text-foreground",onClick:()=>bO("decodeSuccess"),"aria-label":"试听音效",children:(0,y.jsx)(eQ,{className:"h-3.5 w-3.5"})}),(0,y.jsx)(eK,{checked:c,onCheckedChange:d})]})]}),(0,y.jsxs)("div",{className:"flex items-center justify-between rounded-lg border border-white/10 bg-black/30 p-3",children:[(0,y.jsxs)("div",{children:[(0,y.jsx)(eN,{className:"text-sm",children:"新手教程"}),(0,y.jsx)("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"重新查看 5 步玩法引导"})]}),(0,y.jsxs)(bZ,{size:"sm",variant:"outline",className:"h-7 px-2 text-[11px] border-fuchsia-400/40 text-fuchsia-200 hover:bg-fuchsia-500/10",onClick:()=>{try{localStorage.removeItem(eU)}catch{}b(!1)},children:[(0,y.jsx)(eR,{className:"h-3.5 w-3.5 mr-1"}),"重看教程"]})]}),(0,y.jsxs)("div",{className:"rounded-lg border border-white/10 bg-black/30 p-3 text-xs space-y-1.5",children:[(0,y.jsxs)("div",{className:"flex justify-between",children:[(0,y.jsx)("span",{className:"text-muted-foreground",children:"累计解码"}),(0,y.jsxs)("span",{className:"font-mono",children:[g," 颗"]})]}),(0,y.jsxs)("div",{className:"flex justify-between",children:[(0,y.jsx)("span",{className:"text-muted-foreground",children:"飞升周目"}),(0,y.jsx)("span",{className:"font-mono",children:f})]}),(0,y.jsxs)("div",{className:"flex justify-between",children:[(0,y.jsx)("span",{className:"text-muted-foreground",children:"存档位置"}),(0,y.jsx)("span",{className:"font-mono text-[10px]",children:"浏览器本地"})]})]}),(0,y.jsxs)("div",{className:"rounded-lg border border-rose-500/30 bg-rose-950/20 p-3",children:[(0,y.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,y.jsx)(b2,{className:"h-4 w-4 text-rose-400"}),(0,y.jsx)("span",{className:"text-sm font-medium text-rose-200",children:"危险操作"})]}),(0,y.jsx)("p",{className:"text-[11px] text-muted-foreground mb-2",children:"清空所有进度,包括记忆图谱与飞升记录,不可恢复。"}),(0,y.jsxs)(bZ,{variant:"outline",size:"sm",className:"border-rose-500/40 text-rose-300 hover:bg-rose-500/10",onClick:()=>{i?(e(),j(!1),b(!1),h({title:"存档已清空",description:"一切归零,重新开始。"})):j(!0)},children:[(0,y.jsx)(eO,{className:"h-3.5 w-3.5 mr-1"}),i?"再次点击确认清空":"清空存档"]})]}),(0,y.jsxs)("div",{className:"space-y-1.5",children:[(0,y.jsxs)("a",{href:"https://gitea-pages.atdunbg.xyz/Super_Z/echo-nexus/",target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-xs text-emerald-300/80 hover:text-emerald-200 transition px-1 py-1 rounded hover:bg-emerald-500/5",children:[(0,y.jsx)(eS,{className:"h-3.5 w-3.5"}),"在线游玩(gitea-pages)"]}),(0,y.jsxs)("a",{href:"https://git.atdunbg.xyz/Super_Z/echo-nexus",target:"_blank",rel:"noreferrer",className:"flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition px-1 py-1 rounded hover:bg-white/5",children:[(0,y.jsx)(eP,{className:"h-3.5 w-3.5"}),"git.atdunbg.xyz/Super_Z/echo-nexus"]})]})]}),(0,y.jsx)(eu,{children:(0,y.jsx)(bZ,{variant:"ghost",onClick:()=>b(!1),children:"关闭"})})]})})}let eW=(0,bd.default)("swords",[["polyline",{points:"14.5 17.5 3 6 3 3 6 3 17.5 14.5",key:"1hfsw2"}],["line",{x1:"13",x2:"19",y1:"19",y2:"13",key:"1vrmhu"}],["line",{x1:"16",x2:"20",y1:"16",y2:"20",key:"1bron3"}],["line",{x1:"19",x2:"21",y1:"21",y2:"19",key:"13pww6"}],["polyline",{points:"14.5 6.5 18 3 21 3 21 6 17.5 9.5",key:"hbey2j"}],["line",{x1:"5",x2:"9",y1:"14",y2:"18",key:"1hf58s"}],["line",{x1:"7",x2:"4",y1:"17",y2:"20",key:"pidxm4"}],["line",{x1:"3",x2:"5",y1:"19",y2:"21",key:"1pehsh"}]]),eX=(0,bd.default)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]),eY=(0,bd.default)("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]),eZ=(0,bd.default)("skull",[["path",{d:"m12.5 17-.5-1-.5 1h1z",key:"3me087"}],["path",{d:"M15 22a1 1 0 0 0 1-1v-1a2 2 0 0 0 1.56-3.25 8 8 0 1 0-11.12 0A2 2 0 0 0 8 20v1a1 1 0 0 0 1 1z",key:"1o5pge"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}]]),e$=(0,bd.default)("heart",[["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"}]]),e_=(0,bd.default)("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"}]]),e0=(0,bd.default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),e1=(0,bd.default)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]),e2={combat:{icon:eW,color:"#fb7185",label:"战斗",bg:"rgba(251,113,133,0.15)"},treasure:{icon:be,color:"#fbbf24",label:"宝藏",bg:"rgba(251,191,36,0.15)"},choice:{icon:eX,color:"#a5f3fc",label:"抉择",bg:"rgba(165,243,252,0.15)"},puzzle:{icon:eY,color:"#e879f9",label:"解谜",bg:"rgba(232,121,249,0.15)"},rest:{icon:e$,color:"#34d399",label:"休整",bg:"rgba(52,211,153,0.15)"},boss:{icon:eZ,color:"#f43f5e",label:"BOSS",bg:"rgba(244,63,94,0.2)"}};function e3(){let a=bc(a=>a.activeExpedition),b=bc(a=>a.energy),c=bc(a=>a.energyMax),d=bc(a=>a.lastEnergyTick),e=bc(a=>a.expeditionLog),f=bc(a=>a.totalExpeditions),g=bc(a=>a.lastExpeditionSummary),h=bc(a=>aF(a)),i=bc(a=>a.startExpedition),j=bc(a=>a.resolveCurrentNode),k=bc(a=>a.advanceNode),l=bc(a=>a.abortExpedition),{toast:m}=(0,bJ.useToast)(),[n,o]=(0,z.useState)(null),[p,q]=(0,z.useState)(()=>Date.now());(0,z.useEffect)(()=>{let a=setInterval(()=>q(Date.now()),1e3);return()=>clearInterval(a)},[]);let r=1e3*h,s=p-d,t=b>=c?100:Math.min(100,s/r*100),u=h<20,v=b>=c?0:Math.max(0,Math.ceil((r-s)/1e3)),w=b>=1;if(!a||a.finished)return(0,y.jsxs)("div",{className:"flex flex-col gap-3 h-full",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between",children:[(0,y.jsxs)("h3",{className:"text-sm font-semibold flex items-center gap-1.5",children:[(0,y.jsx)(b9,{className:"h-4 w-4 text-amber-400"}),"遗迹探险"]}),(0,y.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["已探索 ",f," 次"]})]}),g&&(0,y.jsxs)("div",{className:`rounded-xl border p-2.5 relative overflow-hidden ${"victory"===g.result?"border-emerald-400/40 bg-emerald-950/20":"defeat"===g.result?"border-rose-400/40 bg-rose-950/20":"border-amber-400/30 bg-amber-950/10"}`,children:[(0,y.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,y.jsx)("span",{className:"text-[11px] font-semibold flex items-center gap-1",children:"victory"===g.result?"✦ 上次探险:胜利":"defeat"===g.result?"✕ 上次探险:失败":"→ 上次探险:撤退"}),(0,y.jsxs)("span",{className:"text-[9px] text-muted-foreground font-mono",children:[g.nodeCount," 节点"]})]}),(0,y.jsxs)("div",{className:"flex items-center gap-2.5 text-[10px]",children:[g.rewards.crystals>0&&(0,y.jsxs)("span",{className:"text-emerald-300",children:["+",Q(g.rewards.crystals)," 晶体"]}),g.rewards.insights>0&&(0,y.jsxs)("span",{className:"text-amber-300",children:["+",g.rewards.insights," 洞见"]}),g.rewards.contact>0&&(0,y.jsxs)("span",{className:"text-fuchsia-300",children:["+",g.rewards.contact.toFixed(1)," 接触"]}),0===g.rewards.crystals&&0===g.rewards.insights&&(0,y.jsx)("span",{className:"text-muted-foreground/60",children:"无奖励"})]})]}),(0,y.jsxs)("div",{className:"rounded-xl border border-amber-400/20 bg-amber-950/20 p-3",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,y.jsx)(e_,{className:"h-3.5 w-3.5 text-amber-400"}),(0,y.jsx)("span",{className:"text-xs text-amber-200",children:"探险能量"})]}),(0,y.jsxs)("span",{className:"text-xs font-mono text-amber-100",children:[b," / ",c]})]}),b<c?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(bF,{value:t,className:"h-1.5 bg-black/40 [&>div]:bg-gradient-to-r [&>div]:from-amber-500 [&>div]:to-yellow-300"}),(0,y.jsxs)("p",{className:"text-[10px] text-muted-foreground/70 mt-1 flex items-center gap-1",children:[(0,y.jsx)("span",{children:"下一点能量"}),(0,y.jsxs)("span",{className:"text-amber-300 font-mono font-semibold",children:[v,"s"]}),(0,y.jsx)("span",{children:"后恢复"}),u&&(0,y.jsxs)("span",{className:"text-emerald-400/80 ml-1",children:["⚡ ",h.toFixed(0),"s/点 (已加速)"]})]})]}):(0,y.jsx)("p",{className:"text-[10px] text-amber-300/80 mt-0.5",children:"能量已满,可立即出发"})]}),(0,y.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center gap-3 rounded-2xl border border-dashed border-amber-400/20 bg-black/30 p-4 relative overflow-hidden",children:[(0,y.jsx)("div",{className:"absolute -top-10 -right-10 h-32 w-32 rounded-full bg-amber-500/10 blur-2xl"}),(0,y.jsx)("div",{className:"relative",children:(0,y.jsx)("div",{className:`h-16 w-16 rounded-full bg-gradient-to-br from-amber-500/30 to-rose-500/20 flex items-center justify-center mx-auto ${w?"animate-pulse":""}`,style:{boxShadow:"0 0 30px rgba(251,191,36,0.3)"},children:(0,y.jsx)(b9,{className:"h-7 w-7 text-amber-300"})})}),(0,y.jsxs)("div",{className:"text-center space-y-1",children:[(0,y.jsx)("p",{className:"text-sm font-medium text-amber-100",children:"深入以太遗迹"}),(0,y.jsx)("p",{className:"text-[11px] text-muted-foreground/80 max-w-[220px]",children:"程序化生成的遗迹路径,沿途遭遇战斗、宝藏、抉择与解谜,击败终点 BOSS 获取丰厚奖励。"})]}),(0,y.jsxs)(bZ,{onClick:()=>{let a=i();a.ok?(bO("expeditionStart"),m({title:"探险队出发",description:"深入遗迹,谨慎前行。"}),o(null)):m({title:"无法出发",description:a.reason,variant:"destructive"})},disabled:!w,className:"bg-gradient-to-r from-amber-600 to-rose-500 hover:from-amber-500 hover:to-rose-400 text-white border-0",children:[(0,y.jsx)(b9,{className:"h-4 w-4 mr-1.5"}),w?`出发(消耗 1 能量)`:`能量不足(${v}s 后恢复)`]})]}),e.length>0&&(0,y.jsxs)("div",{className:"rounded-xl border border-white/5 bg-black/20 p-2 max-h-28 overflow-y-auto echo-scroll",children:[(0,y.jsx)("div",{className:"text-[10px] text-muted-foreground/60 mb-1 px-1",children:"最近探险记录"}),e.slice(0,4).map((a,b)=>(0,y.jsxs)("div",{className:"text-[10px] text-muted-foreground/70 px-1 py-0.5 border-b border-white/5 last:border-0",children:[(0,y.jsx)("span",{className:"text-amber-300/60",children:"›"})," ",a.result,a.rewards&&(0,y.jsx)("span",{className:"text-emerald-300/70 ml-1",children:a.rewards})]},b))]})]});let x=a.nodes[a.currentNode],A=e2[x.type],B=A.icon,C=a.hp/a.maxHp*100,D=(a.currentNode+ +!!x.cleared)/a.nodes.length*100;return(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex flex-col gap-2.5 h-full",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center justify-between gap-2",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[(0,y.jsx)(b9,{className:"h-3.5 w-3.5 text-amber-400"}),(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-xs font-semibold",children:"遗迹探险"}),(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:["第 ",a.currentNode+1,"/",a.nodes.length," 节点"]})]}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:"探险力"}),(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-xs font-mono font-semibold text-amber-300",children:a.power})]})]}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center justify-between mb-0.5",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1",children:[(0,y.jsx)(e$,{className:"h-3 w-3 text-rose-400"}),(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:"探险队生命"})]}),(0,y.jsxs)("span",{className:`jsx-df1c681cdb543264 text-[10px] font-mono ${C<30?"text-rose-400":"text-foreground"}`,children:[a.hp," / ",a.maxHp]})]}),(0,y.jsx)(bF,{value:C,className:"h-1.5 bg-black/40 [&>div]:bg-gradient-to-r [&>div]:from-rose-500 [&>div]:to-emerald-400"})]}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 rounded-xl border border-white/10 bg-black/30 p-2.5",children:[(0,y.jsx)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1 overflow-x-auto echo-scroll pb-1",children:a.nodes.map((b,c)=>{let d=e2[b.type],e=d.icon,f=c===a.currentNode,g=b.cleared,h=c<a.currentNode;return(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center shrink-0",children:[(0,y.jsxs)("div",{style:{background:g||h?"rgba(255,255,255,0.04)":d.bg,border:f?`1.5px solid ${d.color}`:"1px solid rgba(255,255,255,0.08)",boxShadow:f?`0 0 12px ${d.color}66`:"none"},title:`${d.label} \xb7 ${b.title}`,className:`jsx-df1c681cdb543264 relative h-9 w-9 rounded-lg flex items-center justify-center transition-all duration-300 ${f?"scale-125":""}`,children:[(0,y.jsx)(e,{style:{color:g||h?"#666":d.color},className:`jsx-df1c681cdb543264 h-4 w-4 ${g||h?"opacity-30":""}`}),g&&(0,y.jsx)("div",{className:"jsx-df1c681cdb543264 absolute -top-1 -right-1 h-3 w-3 rounded-full bg-emerald-500/80 flex items-center justify-center",children:(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-[8px] text-white",children:"✓"})})]}),c<a.nodes.length-1&&(0,y.jsx)(e0,{className:`h-3 w-3 mx-0.5 ${h||f&&g?"text-amber-400/60":"text-white/15"}`})]},b.id)})}),(0,y.jsx)("div",{className:"jsx-df1c681cdb543264 mt-1.5",children:(0,y.jsx)(bF,{value:D,className:"h-1 bg-black/40 [&>div]:bg-gradient-to-r [&>div]:from-amber-500 [&>div]:to-rose-400"})})]}),(0,y.jsxs)("div",{style:{borderColor:`${A.color}44`,background:`linear-gradient(135deg, ${A.color}11, rgba(0,0,0,0.4))`,boxShadow:`0 0 20px ${A.color}22`},className:"jsx-df1c681cdb543264 rounded-xl border p-3 relative overflow-hidden",children:[(0,y.jsx)("div",{style:{background:`${A.color}22`},className:"jsx-df1c681cdb543264 absolute -top-8 -right-8 h-24 w-24 rounded-full blur-2xl"}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 relative",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-2 mb-1.5",children:[(0,y.jsx)("div",{style:{background:A.bg,border:`1px solid ${A.color}44`},className:"jsx-df1c681cdb543264 h-8 w-8 rounded-lg flex items-center justify-center",children:(0,y.jsx)(B,{style:{color:A.color},className:"jsx-df1c681cdb543264 h-4 w-4"})}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264",children:[(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[(0,y.jsx)("span",{style:{background:A.bg,color:A.color},className:"jsx-df1c681cdb543264 text-[10px] font-mono px-1.5 py-0.5 rounded",children:A.label}),"combat"===x.type&&(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground",children:["胜率 ",Math.round(100*aD(a.power,x.difficulty)),"%"]}),x.difficulty>0&&(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-[10px] text-muted-foreground/60",children:["难度 ",x.difficulty]})]}),(0,y.jsx)("h4",{style:{color:A.color},className:"jsx-df1c681cdb543264 text-sm font-semibold mt-0.5",children:x.title})]})]}),(0,y.jsx)("p",{className:"jsx-df1c681cdb543264 text-[11px] text-muted-foreground/90 leading-relaxed",children:x.desc}),n&&(0,y.jsx)("div",{className:"jsx-df1c681cdb543264 mt-2 px-2 py-1.5 rounded-lg bg-black/40 border border-white/10",children:(0,y.jsx)("p",{className:"jsx-df1c681cdb543264 text-[11px] text-foreground/90",children:n})})]})]}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-1.5",children:[x.cleared?a.currentNode<a.nodes.length-1?(0,y.jsxs)(bZ,{onClick:()=>{k(),o(null)},className:"flex-1 h-8",variant:"outline",children:[(0,y.jsx)(e0,{className:"h-3.5 w-3.5 mr-1"}),"前进"]}):(0,y.jsx)("div",{className:"jsx-df1c681cdb543264 flex-1 text-center text-xs text-emerald-300 py-1.5",children:"探险已完成 ✓"}):(0,y.jsxs)(bZ,{onClick:()=>{let a=j();a&&(o(a.log),a.ended?"victory"===a.endReason?bO("expeditionVictory"):bO("expeditionDefeat"):bO("expeditionNode"),m({title:a.ended?"victory"===a.endReason?"✦ 探险胜利!":"探险失败":"节点结算",description:a.log,variant:"defeat"===a.endReason?"destructive":"default"}))},className:"flex-1 bg-gradient-to-r from-amber-600 to-rose-500 hover:from-amber-500 hover:to-rose-400 text-white border-0 h-8",children:[(0,y.jsx)(b_,{className:"h-3.5 w-3.5 mr-1"}),"探索节点"]}),(0,y.jsx)(bZ,{onClick:()=>{l(),m({title:"探险队撤退",description:"保留已获奖励,安全返回。"}),o(null)},variant:"ghost",size:"sm",className:"h-8 px-2 text-muted-foreground hover:text-rose-300",children:(0,y.jsx)(e1,{className:"h-3.5 w-3.5"})})]}),(0,y.jsxs)("div",{className:"jsx-df1c681cdb543264 flex items-center gap-2 text-[10px] px-1",children:[(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-muted-foreground/60",children:"本次已获:"}),a.rewards.crystals>0&&(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-emerald-300",children:[Q(a.rewards.crystals),"晶体"]}),a.rewards.insights>0&&(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-amber-300",children:[a.rewards.insights,"洞见"]}),a.rewards.contact>0&&(0,y.jsxs)("span",{className:"jsx-df1c681cdb543264 text-fuchsia-300",children:[a.rewards.contact.toFixed(1),"接触"]}),0===a.rewards.crystals&&0===a.rewards.insights&&(0,y.jsx)("span",{className:"jsx-df1c681cdb543264 text-muted-foreground/40",children:"暂无"})]}),(0,y.jsx)(bI.default,{id:"df1c681cdb543264",children:".echo-scroll::-webkit-scrollbar{width:4px;height:4px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.echo-scroll::-webkit-scrollbar-track{background:0 0}"})]})}let e4=(0,bd.default)("trophy",[["path",{d:"M10 14.66v1.626a2 2 0 0 1-.976 1.696A5 5 0 0 0 7 21.978",key:"1n3hpd"}],["path",{d:"M14 14.66v1.626a2 2 0 0 0 .976 1.696A5 5 0 0 1 17 21.978",key:"rfe1zi"}],["path",{d:"M18 9h1.5a1 1 0 0 0 0-5H18",key:"7xy6bh"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M6 9a6 6 0 0 0 12 0V3a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1z",key:"1mhfuq"}],["path",{d:"M6 9H4.5a1 1 0 0 1 0-5H6",key:"tex48p"}]]),e5=(0,bd.default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]),e6=[{key:"all",label:"全部",color:"#a78bfa"},{key:"unlocked",label:"已解锁",color:"#34d399"},{key:"locked",label:"未解锁",color:"#fb7185"}];function e7(){let a=bc(a=>a.achievements),[b,c]=(0,z.useState)("all"),d=Object.values(a).filter(Boolean).length,e=S(a),f=R.length,g=f>0?d/f*100:0,h=(0,z.useMemo)(()=>R.filter(c=>{let d=!!a[c.id];return"unlocked"===b?d:"locked"!==b||!d}),[a,b]);return(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex flex-col gap-2.5 h-full min-h-0",children:[(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center justify-between gap-2",children:[(0,y.jsxs)("h3",{className:"jsx-89979d12e77b884d text-sm font-semibold flex items-center gap-1.5 shrink-0",children:[(0,y.jsx)(e4,{className:"h-4 w-4 text-amber-400"}),"成就"]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-2 text-[10px] font-mono",children:[(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-amber-300",children:d}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/50",children:"/"}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground",children:f}),(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/60",children:["(",g.toFixed(0),"%)"]})]})]}),(0,y.jsx)("div",{className:"jsx-89979d12e77b884d h-1 rounded-full bg-black/40 overflow-hidden",children:(0,y.jsx)("div",{style:{width:`${g}%`,boxShadow:"0 0 8px rgba(251,191,36,0.5)"},className:"jsx-89979d12e77b884d h-full bg-gradient-to-r from-amber-500 via-rose-400 to-fuchsia-400 transition-all duration-500"})}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d rounded-lg border border-amber-400/20 bg-amber-950/20 px-2.5 py-1.5 flex items-center gap-2 text-[10px] flex-wrap",children:[(0,y.jsx)(b_,{className:"h-3 w-3 text-amber-400 shrink-0"}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-amber-300/80",children:"永久加成"}),e.crystalsPerSecPct>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-emerald-300",children:["产能 +",e.crystalsPerSecPct,"%"]}),e.insightPct>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-fuchsia-300",children:["洞见 +",e.insightPct,"%"]}),0===e.crystalsPerSecPct&&0===e.insightPct&&(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/60",children:"达成成就解锁永久加成"})]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-1 text-[10px]",children:[(0,y.jsx)(e5,{className:"h-3 w-3 text-muted-foreground/60 shrink-0"}),e6.map(a=>{let e=b===a.key,g="all"===a.key?f:"unlocked"===a.key?d:f-d;return(0,y.jsxs)("button",{onClick:()=>c(a.key),style:e?{color:a.color,boxShadow:`inset 0 0 0 1px ${a.color}55`}:void 0,className:`jsx-89979d12e77b884d px-2 py-0.5 rounded-md transition-all ${e?"bg-white/10 text-foreground":"text-muted-foreground/70 hover:text-foreground hover:bg-white/5"}`,children:[a.label,(0,y.jsx)("span",{className:"jsx-89979d12e77b884d ml-1 font-mono opacity-70",children:g})]},a.key)})]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex-1 min-h-0 overflow-y-auto echo-scroll pr-1 space-y-1.5",children:[0===h.length&&(0,y.jsx)("div",{className:"jsx-89979d12e77b884d text-center text-[11px] text-muted-foreground/60 py-6",children:"该分类下暂无成就"}),h.map(b=>{let c=!!a[b.id];return(0,y.jsxs)("div",{style:c?{boxShadow:`inset 0 0 14px ${b.color}10`}:void 0,className:`jsx-89979d12e77b884d relative rounded-lg border px-2.5 py-2 transition-all duration-300 min-h-[68px] flex items-center ${c?"border-white/15 bg-black/30":"border-white/5 bg-black/15 opacity-70"}`,children:[c&&(0,y.jsx)("div",{style:{background:b.color},className:"jsx-89979d12e77b884d absolute -top-6 -right-6 h-16 w-16 rounded-full blur-2xl opacity-40 pointer-events-none"}),(0,y.jsx)("div",{style:{background:c?`${b.color}22`:"rgba(255,255,255,0.04)",border:`1px solid ${c?b.color+"55":"rgba(255,255,255,0.08)"}`,color:c?b.color:"#666",boxShadow:c?`0 0 10px ${b.color}33`:"none"},className:"jsx-89979d12e77b884d shrink-0 h-10 w-10 rounded-lg flex items-center justify-center text-lg mr-2.5",children:c?b.icon:(0,y.jsx)(cb,{className:"h-4 w-4"})}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d min-w-0 flex-1 flex flex-col gap-0.5",children:[(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-1.5",children:[(0,y.jsx)("span",{style:{color:c?b.color:"rgba(255,255,255,0.5)"},className:"jsx-89979d12e77b884d text-[11px] font-semibold truncate",children:b.name}),c&&(0,y.jsx)("span",{style:{background:`${b.color}22`,color:b.color},className:"jsx-89979d12e77b884d text-[8px] px-1 py-0 rounded shrink-0 font-mono",children:"✓"})]}),(0,y.jsx)("div",{className:"jsx-89979d12e77b884d text-[10px] text-muted-foreground/80 leading-tight line-clamp-2",children:b.desc}),c&&(0,y.jsxs)("div",{style:{color:b.color+"cc"},className:"jsx-89979d12e77b884d text-[9px] mt-0.5 font-mono truncate",children:["✦ ",b.rewardText]})]})]},b.id)})]}),(0,y.jsx)(bI.default,{id:"89979d12e77b884d",children:".echo-scroll::-webkit-scrollbar{width:5px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:3px}.echo-scroll::-webkit-scrollbar-track{background:0 0}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}"})]})}let e8=(0,z.createContext)({});function e9(a){let b=(0,z.useRef)(null);return null===b.current&&(b.current=a()),b.current}let fa=z.useEffect,fb=(0,z.createContext)(null);function fc(a){return"object"==typeof a&&null!==a}function fd(a){return fc(a)&&"offsetHeight"in a}var fe=z;let ff=(0,z.createContext)({transformPagePoint:a=>a,isStatic:!1,reducedMotion:"never"});function fg(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}class fh extends fe.Component{getSnapshotBeforeUpdate(a){let b=this.props.childRef.current;if(b&&a.isPresent&&!this.props.isPresent){let a=b.offsetParent,c=fd(a)&&a.offsetWidth||0,d=this.props.sizeRef.current;d.height=b.offsetHeight||0,d.width=b.offsetWidth||0,d.top=b.offsetTop,d.left=b.offsetLeft,d.right=c-d.width-d.left}return null}componentDidUpdate(){}render(){return this.props.children}}function fi({children:a,isPresent:b,anchorX:c,root:d}){let e=(0,fe.useId)(),f=(0,fe.useRef)(null),g=(0,fe.useRef)({width:0,height:0,top:0,left:0,right:0}),{nonce:h}=(0,fe.useContext)(ff),i=function(...a){return z.useCallback(function(...a){return b=>{let c=!1,d=a.map(a=>{let d=fg(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():fg(a[b],null)}}}}(...a),a)}(f,a.props?.ref??a?.ref);return(0,fe.useInsertionEffect)(()=>{let{width:a,height:i,top:j,left:k,right:l}=g.current;if(b||!f.current||!a||!i)return;let m="left"===c?`left: ${k}`:`right: ${l}`;f.current.dataset.motionPopId=e;let n=document.createElement("style");h&&(n.nonce=h);let o=d??document.head;return o.appendChild(n),n.sheet&&n.sheet.insertRule(`
|
||
[data-motion-pop-id="${e}"] {
|
||
position: absolute !important;
|
||
width: ${a}px !important;
|
||
height: ${i}px !important;
|
||
${m}px !important;
|
||
top: ${j}px !important;
|
||
}
|
||
`),()=>{o.contains(n)&&o.removeChild(n)}},[b]),(0,y.jsx)(fh,{isPresent:b,childRef:f,sizeRef:g,children:fe.cloneElement(a,{ref:i})})}let fj=({children:a,initial:b,isPresent:c,onExitComplete:d,custom:e,presenceAffectsLayout:f,mode:g,anchorX:h,root:i})=>{let j=e9(fk),k=(0,z.useId)(),l=!0,m=(0,z.useMemo)(()=>(l=!1,{id:k,initial:b,isPresent:c,custom:e,onExitComplete:a=>{for(let b of(j.set(a,!0),j.values()))if(!b)return;d&&d()},register:a=>(j.set(a,!1),()=>j.delete(a))}),[c,j,d]);return f&&l&&(m={...m}),(0,z.useMemo)(()=>{j.forEach((a,b)=>j.set(b,!1))},[c]),z.useEffect(()=>{c||j.size||!d||d()},[c]),"popLayout"===g&&(a=(0,y.jsx)(fi,{isPresent:c,anchorX:h,root:i,children:a})),(0,y.jsx)(fb.Provider,{value:m,children:a})};function fk(){return new Map}function fl(a=!0){let b=(0,z.useContext)(fb);if(null===b)return[!0,null];let{isPresent:c,onExitComplete:d,register:e}=b,f=(0,z.useId)();(0,z.useEffect)(()=>{if(a)return e(f)},[a]);let g=(0,z.useCallback)(()=>a&&d&&d(f),[f,d,a]);return!c&&d?[!1,g]:[!0]}let fm=a=>a.key||"";function fn(a){let b=[];return z.Children.forEach(a,a=>{(0,z.isValidElement)(a)&&b.push(a)}),b}let fo=({children:a,custom:b,initial:c=!0,onExitComplete:d,presenceAffectsLayout:e=!0,mode:f="sync",propagate:g=!1,anchorX:h="left",root:i})=>{let[j,k]=fl(g),l=(0,z.useMemo)(()=>fn(a),[a]),m=g&&!j?[]:l.map(fm),n=(0,z.useRef)(!0),o=(0,z.useRef)(l),p=e9(()=>new Map),q=(0,z.useRef)(new Set),[r,s]=(0,z.useState)(l),[t,u]=(0,z.useState)(l);fa(()=>{n.current=!1,o.current=l;for(let a=0;a<t.length;a++){let b=fm(t[a]);m.includes(b)?(p.delete(b),q.current.delete(b)):!0!==p.get(b)&&p.set(b,!1)}},[t,m.length,m.join("-")]);let v=[];if(l!==r){let a=[...l];for(let b=0;b<t.length;b++){let c=t[b],d=fm(c);m.includes(d)||(a.splice(b,0,c),v.push(c))}return"wait"===f&&v.length&&(a=v),u(fn(a)),s(l),null}let{forceRender:w}=(0,z.useContext)(e8);return(0,y.jsx)(y.Fragment,{children:t.map(a=>{let r=fm(a),s=(!g||!!j)&&(l===t||m.includes(r));return(0,y.jsx)(fj,{isPresent:s,initial:(!n.current||!!c)&&void 0,custom:b,presenceAffectsLayout:e,mode:f,root:i,onExitComplete:s?void 0:()=>{if(q.current.has(r)||(q.current.add(r),!p.has(r)))return;p.set(r,!0);let a=!0;p.forEach(b=>{b||(a=!1)}),a&&(w?.(),u(o.current),g&&k?.(),d&&d())},anchorX:h,children:a},r)})})},fp=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],fq=new Set(fp),fr=(a,b,c)=>c>b?b:c<a?a:c,fs={test:a=>"number"==typeof a,parse:parseFloat,transform:a=>a},ft={...fs,transform:a=>fr(0,1,a)},fu={...fs,default:1},fv=a=>Math.round(1e5*a)/1e5,fw=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu,fx=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,fy=(a,b)=>c=>!!("string"==typeof c&&fx.test(c)&&c.startsWith(a)||b&&null!=c&&Object.prototype.hasOwnProperty.call(c,b)),fz=(a,b,c)=>d=>{if("string"!=typeof d)return d;let[e,f,g,h]=d.match(fw);return{[a]:parseFloat(e),[b]:parseFloat(f),[c]:parseFloat(g),alpha:void 0!==h?parseFloat(h):1}},fA={...fs,transform:a=>Math.round(fr(0,255,a))},fB={test:fy("rgb","red"),parse:fz("red","green","blue"),transform:({red:a,green:b,blue:c,alpha:d=1})=>"rgba("+fA.transform(a)+", "+fA.transform(b)+", "+fA.transform(c)+", "+fv(ft.transform(d))+")"},fC={test:fy("#"),parse:function(a){let b="",c="",d="",e="";return a.length>5?(b=a.substring(1,3),c=a.substring(3,5),d=a.substring(5,7),e=a.substring(7,9)):(b=a.substring(1,2),c=a.substring(2,3),d=a.substring(3,4),e=a.substring(4,5),b+=b,c+=c,d+=d,e+=e),{red:parseInt(b,16),green:parseInt(c,16),blue:parseInt(d,16),alpha:e?parseInt(e,16)/255:1}},transform:fB.transform},fD=a=>({test:b=>"string"==typeof b&&b.endsWith(a)&&1===b.split(" ").length,parse:parseFloat,transform:b=>`${b}${a}`}),fE=fD("deg"),fF=fD("%"),fG=fD("px"),fH=fD("vh"),fI=fD("vw"),fJ={...fF,parse:a=>fF.parse(a)/100,transform:a=>fF.transform(100*a)},fK={test:fy("hsl","hue"),parse:fz("hue","saturation","lightness"),transform:({hue:a,saturation:b,lightness:c,alpha:d=1})=>"hsla("+Math.round(a)+", "+fF.transform(fv(b))+", "+fF.transform(fv(c))+", "+fv(ft.transform(d))+")"},fL={test:a=>fB.test(a)||fC.test(a)||fK.test(a),parse:a=>fB.test(a)?fB.parse(a):fK.test(a)?fK.parse(a):fC.parse(a),transform:a=>"string"==typeof a?a:a.hasOwnProperty("red")?fB.transform(a):fK.transform(a),getAnimatableNone:a=>{let b=fL.parse(a);return b.alpha=0,fL.transform(b)}},fM=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu,fN="number",fO="color",fP=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function fQ(a){let b=a.toString(),c=[],d={color:[],number:[],var:[]},e=[],f=0,g=b.replace(fP,a=>(fL.test(a)?(d.color.push(f),e.push(fO),c.push(fL.parse(a))):a.startsWith("var(")?(d.var.push(f),e.push("var"),c.push(a)):(d.number.push(f),e.push(fN),c.push(parseFloat(a))),++f,"${}")).split("${}");return{values:c,split:g,indexes:d,types:e}}function fR(a){return fQ(a).values}function fS(a){let{split:b,types:c}=fQ(a),d=b.length;return a=>{let e="";for(let f=0;f<d;f++)if(e+=b[f],void 0!==a[f]){let b=c[f];b===fN?e+=fv(a[f]):b===fO?e+=fL.transform(a[f]):e+=a[f]}return e}}let fT=a=>"number"==typeof a?0:fL.test(a)?fL.getAnimatableNone(a):a,fU={test:function(a){return isNaN(a)&&"string"==typeof a&&(a.match(fw)?.length||0)+(a.match(fM)?.length||0)>0},parse:fR,createTransformer:fS,getAnimatableNone:function(a){let b=fR(a);return fS(a)(b.map(fT))}},fV=new Set(["brightness","contrast","saturate","opacity"]);function fW(a){let[b,c]=a.slice(0,-1).split("(");if("drop-shadow"===b)return a;let[d]=c.match(fw)||[];if(!d)return a;let e=c.replace(d,""),f=+!!fV.has(b);return d!==c&&(f*=100),b+"("+f+e+")"}let fX=/\b([a-z-]*)\(.*?\)/gu,fY={...fU,getAnimatableNone:a=>{let b=a.match(fX);return b?b.map(fW).join(" "):a}},fZ={...fs,transform:Math.round},f$={borderWidth:fG,borderTopWidth:fG,borderRightWidth:fG,borderBottomWidth:fG,borderLeftWidth:fG,borderRadius:fG,radius:fG,borderTopLeftRadius:fG,borderTopRightRadius:fG,borderBottomRightRadius:fG,borderBottomLeftRadius:fG,width:fG,maxWidth:fG,height:fG,maxHeight:fG,top:fG,right:fG,bottom:fG,left:fG,inset:fG,insetBlock:fG,insetBlockStart:fG,insetBlockEnd:fG,insetInline:fG,insetInlineStart:fG,insetInlineEnd:fG,padding:fG,paddingTop:fG,paddingRight:fG,paddingBottom:fG,paddingLeft:fG,paddingBlock:fG,paddingBlockStart:fG,paddingBlockEnd:fG,paddingInline:fG,paddingInlineStart:fG,paddingInlineEnd:fG,margin:fG,marginTop:fG,marginRight:fG,marginBottom:fG,marginLeft:fG,marginBlock:fG,marginBlockStart:fG,marginBlockEnd:fG,marginInline:fG,marginInlineStart:fG,marginInlineEnd:fG,backgroundPositionX:fG,backgroundPositionY:fG,rotate:fE,rotateX:fE,rotateY:fE,rotateZ:fE,scale:fu,scaleX:fu,scaleY:fu,scaleZ:fu,skew:fE,skewX:fE,skewY:fE,distance:fG,translateX:fG,translateY:fG,translateZ:fG,x:fG,y:fG,z:fG,perspective:fG,transformPerspective:fG,opacity:ft,originX:fJ,originY:fJ,originZ:fG,zIndex:fZ,fillOpacity:ft,strokeOpacity:ft,numOctaves:fZ},f_={...f$,color:fL,backgroundColor:fL,outlineColor:fL,fill:fL,stroke:fL,borderColor:fL,borderTopColor:fL,borderRightColor:fL,borderBottomColor:fL,borderLeftColor:fL,filter:fY,WebkitFilter:fY},f0=a=>f_[a],f1=()=>({translate:0,scale:1,origin:0,originPoint:0}),f2=()=>({x:f1(),y:f1()}),f3=()=>({min:0,max:0}),f4=()=>({x:f3(),y:f3()}),f5=a=>!!(a&&a.getVelocity),f6=new Set(["width","height","top","left","right","bottom",...fp]),f7=a=>b=>b.test(a),f8=[fs,fG,fF,fE,fI,fH,{test:a=>"auto"===a,parse:a=>a}],f9=a=>f8.find(f7(a)),ga=()=>{},gb=()=>{},gc=a=>b=>"string"==typeof b&&b.startsWith(a),gd=gc("--"),ge=gc("var(--"),gf=a=>!!ge(a)&&gg.test(a.split("/*")[0].trim()),gg=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function gh(a){return"string"==typeof a&&a.split("/*")[0].includes("var(--")}let gi=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u,gj=a=>180*a/Math.PI,gk=a=>gm(gj(Math.atan2(a[1],a[0]))),gl={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:a=>(Math.abs(a[0])+Math.abs(a[3]))/2,rotate:gk,rotateZ:gk,skewX:a=>gj(Math.atan(a[1])),skewY:a=>gj(Math.atan(a[2])),skew:a=>(Math.abs(a[1])+Math.abs(a[2]))/2},gm=a=>((a%=360)<0&&(a+=360),a),gn=a=>Math.sqrt(a[0]*a[0]+a[1]*a[1]),go=a=>Math.sqrt(a[4]*a[4]+a[5]*a[5]),gp={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:gn,scaleY:go,scale:a=>(gn(a)+go(a))/2,rotateX:a=>gm(gj(Math.atan2(a[6],a[5]))),rotateY:a=>gm(gj(Math.atan2(-a[2],a[0]))),rotateZ:gk,rotate:gk,skewX:a=>gj(Math.atan(a[4])),skewY:a=>gj(Math.atan(a[1])),skew:a=>(Math.abs(a[1])+Math.abs(a[4]))/2};function gq(a){return+!!a.includes("scale")}function gr(a,b){let c,d;if(!a||"none"===a)return gq(b);let e=a.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);if(e)c=gp,d=e;else{let b=a.match(/^matrix\(([-\d.e\s,]+)\)$/u);c=gl,d=b}if(!d)return gq(b);let f=c[b],g=d[1].split(",").map(gs);return"function"==typeof f?f(g):g[f]}function gs(a){return parseFloat(a.trim())}let gt=a=>a===fs||a===fG,gu=new Set(["x","y","z"]),gv=fp.filter(a=>!gu.has(a)),gw={width:({x:a},{paddingLeft:b="0",paddingRight:c="0"})=>a.max-a.min-parseFloat(b)-parseFloat(c),height:({y:a},{paddingTop:b="0",paddingBottom:c="0"})=>a.max-a.min-parseFloat(b)-parseFloat(c),top:(a,{top:b})=>parseFloat(b),left:(a,{left:b})=>parseFloat(b),bottom:({y:a},{top:b})=>parseFloat(b)+(a.max-a.min),right:({x:a},{left:b})=>parseFloat(b)+(a.max-a.min),x:(a,{transform:b})=>gr(b,"x"),y:(a,{transform:b})=>gr(b,"y")};gw.translateX=gw.x,gw.translateY=gw.y;let gx=a=>a,gy={},gz=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function gA(a,b){let c=!1,d=!0,e={delta:0,timestamp:0,isProcessing:!1},f=()=>c=!0,g=gz.reduce((a,c)=>(a[c]=function(a,b){let c=new Set,d=new Set,e=!1,f=!1,g=new WeakSet,h={delta:0,timestamp:0,isProcessing:!1},i=0;function j(b){g.has(b)&&(k.schedule(b),a()),i++,b(h)}let k={schedule:(a,b=!1,f=!1)=>{let h=f&&e?c:d;return b&&g.add(a),h.has(a)||h.add(a),a},cancel:a=>{d.delete(a),g.delete(a)},process:a=>{if(h=a,e){f=!0;return}e=!0,[c,d]=[d,c],c.forEach(j),b,i=0,c.clear(),e=!1,f&&(f=!1,k.process(a))}};return k}(f,b?c:void 0),a),{}),{setup:h,read:i,resolveKeyframes:j,preUpdate:k,update:l,preRender:m,render:n,postRender:o}=g,p=()=>{let f=gy.useManualTiming?e.timestamp:performance.now();c=!1,gy.useManualTiming||(e.delta=d?1e3/60:Math.max(Math.min(f-e.timestamp,40),1)),e.timestamp=f,e.isProcessing=!0,h.process(e),i.process(e),j.process(e),k.process(e),l.process(e),m.process(e),n.process(e),o.process(e),e.isProcessing=!1,c&&b&&(d=!1,a(p))};return{schedule:gz.reduce((b,f)=>{let h=g[f];return b[f]=(b,f=!1,g=!1)=>(!c&&(c=!0,d=!0,e.isProcessing||a(p)),h.schedule(b,f,g)),b},{}),cancel:a=>{for(let b=0;b<gz.length;b++)g[gz[b]].cancel(a)},state:e,steps:g}}let{schedule:gB,cancel:gC,state:gD,steps:gE}=gA("u">typeof requestAnimationFrame?requestAnimationFrame:gx,!0),gF=new Set,gG=!1,gH=!1,gI=!1;function gJ(){if(gH){let a=Array.from(gF).filter(a=>a.needsMeasurement),b=new Set(a.map(a=>a.element)),c=new Map;b.forEach(a=>{let b,d=(b=[],gv.forEach(c=>{let d=a.getValue(c);void 0!==d&&(b.push([c,d.get()]),d.set(+!!c.startsWith("scale")))}),b);d.length&&(c.set(a,d),a.render())}),a.forEach(a=>a.measureInitialState()),b.forEach(a=>{a.render();let b=c.get(a);b&&b.forEach(([b,c])=>{a.getValue(b)?.set(c)})}),a.forEach(a=>a.measureEndState()),a.forEach(a=>{void 0!==a.suspendedScrollY&&window.scrollTo(0,a.suspendedScrollY)})}gH=!1,gG=!1,gF.forEach(a=>a.complete(gI)),gF.clear()}function gK(){gF.forEach(a=>{a.readKeyframes(),a.needsMeasurement&&(gH=!0)})}class gL{constructor(a,b,c,d,e,f=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...a],this.onComplete=b,this.name=c,this.motionValue=d,this.element=e,this.isAsync=f}scheduleResolve(){this.state="scheduled",this.isAsync?(gF.add(this),gG||(gG=!0,gB.read(gK),gB.resolveKeyframes(gJ))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:a,name:b,element:c,motionValue:d}=this;if(null===a[0]){let e=d?.get(),f=a[a.length-1];if(void 0!==e)a[0]=e;else if(c&&b){let d=c.readValue(b,f);null!=d&&(a[0]=d)}void 0===a[0]&&(a[0]=f),d&&void 0===e&&d.set(a[0])}for(let b=1;b<a.length;b++)a[b]??(a[b]=a[b-1])}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(a=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,a),gF.delete(this)}cancel(){"scheduled"===this.state&&(gF.delete(this),this.state="pending")}resume(){"pending"===this.state&&this.scheduleResolve()}}function gM(a,b){let c=f0(a);return c!==fY&&(c=fU),c.getAnimatableNone?c.getAnimatableNone(b):void 0}let gN=new Set(["auto","none","0"]);class gO extends gL{constructor(a,b,c,d,e){super(a,b,c,d,e,!0)}readKeyframes(){let{unresolvedKeyframes:a,element:b,name:c}=this;if(!b||!b.current)return;super.readKeyframes();for(let c=0;c<a.length;c++){let d=a[c];if("string"==typeof d&&gf(d=d.trim())){let e=function a(b,c,d=1){gb(d<=4,`Max CSS variable fallback depth detected in property "${b}". This may indicate a circular fallback dependency.`,"max-css-var-depth");let[e,f]=function(a){let b=gi.exec(a);if(!b)return[,];let[,c,d,e]=b;return[`--${c??d}`,e]}(b);if(!e)return;let g=window.getComputedStyle(c).getPropertyValue(e);if(g){let a=g.trim();return/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(a)?parseFloat(a):a}return gf(f)?a(f,c,d+1):f}(d,b.current);void 0!==e&&(a[c]=e),c===a.length-1&&(this.finalKeyframe=d)}}if(this.resolveNoneKeyframes(),!f6.has(c)||2!==a.length)return;let[d,e]=a,f=f9(d),g=f9(e);if(gh(d)!==gh(e)&&gw[c]){this.needsMeasurement=!0;return}if(f!==g)if(gt(f)&>(g))for(let b=0;b<a.length;b++){let c=a[b];"string"==typeof c&&(a[b]=parseFloat(c))}else gw[c]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){let{unresolvedKeyframes:a,name:b}=this,c=[];for(let b=0;b<a.length;b++)(null===a[b]||function(a){if("number"==typeof a)return 0===a;if(null===a)return!0;return"none"===a||"0"===a||/^0[^.\s]+$/u.test(a)}(a[b]))&&c.push(b);c.length&&function(a,b,c){let d,e=0;for(;e<a.length&&!d;){let b=a[e];"string"==typeof b&&!gN.has(b)&&fQ(b).values.length&&(d=a[e]),e++}if(d&&c)for(let e of b)a[e]=gM(c,d)}(a,c,b)}measureInitialState(){let{element:a,unresolvedKeyframes:b,name:c}=this;if(!a||!a.current)return;"height"===c&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=gw[c](a.measureViewportBox(),window.getComputedStyle(a.current)),b[0]=this.measuredOrigin;let d=b[b.length-1];void 0!==d&&a.getValue(c,d).jump(d,!1)}measureEndState(){let{element:a,name:b,unresolvedKeyframes:c}=this;if(!a||!a.current)return;let d=a.getValue(b);d&&d.jump(this.measuredOrigin,!1);let e=c.length-1,f=c[e];c[e]=gw[b](a.measureViewportBox(),window.getComputedStyle(a.current)),null!==f&&void 0===this.finalKeyframe&&(this.finalKeyframe=f),this.removedTransforms?.length&&this.removedTransforms.forEach(([b,c])=>{a.getValue(b).set(c)}),this.resolveNoneKeyframes()}}function gP(a,b){-1===a.indexOf(b)&&a.push(b)}function gQ(a,b){let c=a.indexOf(b);c>-1&&a.splice(c,1)}class gR{constructor(){this.subscriptions=[]}add(a){return gP(this.subscriptions,a),()=>gQ(this.subscriptions,a)}notify(a,b,c){let d=this.subscriptions.length;if(d)if(1===d)this.subscriptions[0](a,b,c);else for(let e=0;e<d;e++){let d=this.subscriptions[e];d&&d(a,b,c)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}let{schedule:gS}=gA(queueMicrotask,!1);function gT(){b=void 0}let gU={now:()=>(void 0===b&&gU.set(gD.isProcessing||gy.useManualTiming?gD.timestamp:performance.now()),b),set:a=>{b=a,queueMicrotask(gT)}};class gV{constructor(a,b={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=a=>{let b=gU.now();if(this.updatedAt!==b&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let a of this.dependents)a.dirty()},this.hasAnimated=!1,this.setCurrent(a),this.owner=b.owner}setCurrent(a){this.current=a,this.updatedAt=gU.now(),null===this.canTrackVelocity&&void 0!==a&&(this.canTrackVelocity=!isNaN(parseFloat(this.current)))}setPrevFrameValue(a=this.current){this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt}onChange(a){return this.on("change",a)}on(a,b){this.events[a]||(this.events[a]=new gR);let c=this.events[a].add(b);return"change"===a?()=>{c(),gB.read(()=>{this.events.change.getSize()||this.stop()})}:c}clearListeners(){for(let a in this.events)this.events[a].clear()}attach(a,b){this.passiveEffect=a,this.stopPassiveEffect=b}set(a){this.passiveEffect?this.passiveEffect(a,this.updateAndNotify):this.updateAndNotify(a)}setWithVelocity(a,b,c){this.set(b),this.prev=void 0,this.prevFrameValue=a,this.prevUpdatedAt=this.updatedAt-c}jump(a,b=!0){this.updateAndNotify(a),this.prev=a,this.prevUpdatedAt=this.prevFrameValue=void 0,b&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(a){this.dependents||(this.dependents=new Set),this.dependents.add(a)}removeDependent(a){this.dependents&&this.dependents.delete(a)}get(){return n&&n.push(this),this.current}getPrevious(){return this.prev}getVelocity(){var a;let b=gU.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||b-this.updatedAt>30)return 0;let c=Math.min(this.updatedAt-this.prevUpdatedAt,30);return a=parseFloat(this.current)-parseFloat(this.prevFrameValue),c?1e3/c*a:0}start(a){return this.stop(),new Promise(b=>{this.hasAnimated=!0,this.animation=a(b),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function gW(a,b){return new gV(a,b)}let gX=[...f8,fL,fU],gY={current:!1},gZ=new WeakMap;function g$(a){return null!==a&&"object"==typeof a&&"function"==typeof a.start}function g_(a){return"string"==typeof a||Array.isArray(a)}let g0=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],g1=["initial",...g0];function g2(a){return g$(a.animate)||g1.some(b=>g_(a[b]))}function g3(a){return!!(g2(a)||a.variants)}function g4(a){let b=[{},{}];return a?.values.forEach((a,c)=>{b[0][c]=a.get(),b[1][c]=a.getVelocity()}),b}function g5(a,b,c,d){if("function"==typeof b){let[e,f]=g4(d);b=b(void 0!==c?c:a.custom,e,f)}if("string"==typeof b&&(b=a.variants&&a.variants[b]),"function"==typeof b){let[e,f]=g4(d);b=b(void 0!==c?c:a.custom,e,f)}return b}let g6=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"],g7={};class g8{scrapeMotionValuesFromProps(a,b,c){return{}}constructor({parent:a,props:b,presenceContext:c,reducedMotionConfig:d,blockInitialAnimation:e,visualState:f},g={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=gL,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let a=gU.now();this.renderScheduledAt<a&&(this.renderScheduledAt=a,gB.render(this.render,!1,!0))};const{latestValues:h,renderState:i}=f;this.latestValues=h,this.baseTarget={...h},this.initialValues=b.initial?{...h}:{},this.renderState=i,this.parent=a,this.props=b,this.presenceContext=c,this.depth=a?a.depth+1:0,this.reducedMotionConfig=d,this.options=g,this.blockInitialAnimation=!!e,this.isControllingVariants=g2(b),this.isVariantNode=g3(b),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(a&&a.current);const{willChange:j,...k}=this.scrapeMotionValuesFromProps(b,{},this);for(const a in k){const b=k[a];void 0!==h[a]&&f5(b)&&b.set(h[a])}}mount(a){this.current=a,gZ.set(a,this),this.projection&&!this.projection.instance&&this.projection.mount(a),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((a,b)=>this.bindToMotionValue(b,a)),"never"===this.reducedMotionConfig?this.shouldReduceMotion=!1:"always"===this.reducedMotionConfig?this.shouldReduceMotion=!0:(gY.current||(gY.current=!0),this.shouldReduceMotion=null),this.parent?.addChild(this),this.update(this.props,this.presenceContext)}unmount(){for(let a in this.projection&&this.projection.unmount(),gC(this.notifyUpdate),gC(this.render),this.valueSubscriptions.forEach(a=>a()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this),this.events)this.events[a].clear();for(let a in this.features){let b=this.features[a];b&&(b.unmount(),b.isMounted=!1)}this.current=null}addChild(a){this.children.add(a),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(a)}removeChild(a){this.children.delete(a),this.enteringChildren&&this.enteringChildren.delete(a)}bindToMotionValue(a,b){let c;this.valueSubscriptions.has(a)&&this.valueSubscriptions.get(a)();let d=fq.has(a);d&&this.onBindTransform&&this.onBindTransform();let e=b.on("change",b=>{this.latestValues[a]=b,this.props.onUpdate&&gB.preRender(this.notifyUpdate),d&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});this.valueSubscriptions.set(a,()=>{e(),c&&c(),b.owner&&b.stop()})}sortNodePosition(a){return this.current&&this.sortInstanceNodePosition&&this.type===a.type?this.sortInstanceNodePosition(this.current,a.current):0}updateFeatures(){let a="animation";for(a in g7){let b=g7[a];if(!b)continue;let{isEnabled:c,Feature:d}=b;if(!this.features[a]&&d&&c(this.props)&&(this.features[a]=new d(this)),this.features[a]){let b=this.features[a];b.isMounted?b.update():(b.mount(),b.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):f4()}getStaticValue(a){return this.latestValues[a]}setStaticValue(a,b){this.latestValues[a]=b}update(a,b){(a.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=a,this.prevPresenceContext=this.presenceContext,this.presenceContext=b;for(let b=0;b<g6.length;b++){let c=g6[b];this.propEventSubscriptions[c]&&(this.propEventSubscriptions[c](),delete this.propEventSubscriptions[c]);let d=a["on"+c];d&&(this.propEventSubscriptions[c]=this.on(c,d))}this.prevMotionValues=function(a,b,c){for(let d in b){let e=b[d],f=c[d];if(f5(e))a.addValue(d,e);else if(f5(f))a.addValue(d,gW(e,{owner:a}));else if(f!==e)if(a.hasValue(d)){let b=a.getValue(d);!0===b.liveStyle?b.jump(e):b.hasAnimated||b.set(e)}else{let b=a.getStaticValue(d);a.addValue(d,gW(void 0!==b?b:e,{owner:a}))}}for(let d in c)void 0===b[d]&&a.removeValue(d);return b}(this,this.scrapeMotionValuesFromProps(a,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(a){return this.props.variants?this.props.variants[a]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(a){let b=this.getClosestVariantNode();if(b)return b.variantChildren&&b.variantChildren.add(a),()=>b.variantChildren.delete(a)}addValue(a,b){let c=this.values.get(a);b!==c&&(c&&this.removeValue(a),this.bindToMotionValue(a,b),this.values.set(a,b),this.latestValues[a]=b.get())}removeValue(a){this.values.delete(a);let b=this.valueSubscriptions.get(a);b&&(b(),this.valueSubscriptions.delete(a)),delete this.latestValues[a],this.removeValueFromRenderState(a,this.renderState)}hasValue(a){return this.values.has(a)}getValue(a,b){if(this.props.values&&this.props.values[a])return this.props.values[a];let c=this.values.get(a);return void 0===c&&void 0!==b&&(c=gW(null===b?void 0:b,{owner:this}),this.addValue(a,c)),c}readValue(a,b){let c=void 0===this.latestValues[a]&&this.current?this.getBaseTargetFromProps(this.props,a)??this.readValueFromInstance(this.current,a,this.options):this.latestValues[a];if(null!=c){let d,e;if("string"==typeof c&&(d=c,/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(d)||(e=c,/^0[^.\s]+$/u.test(e))))c=parseFloat(c);else{let d;d=c,!gX.find(f7(d))&&fU.test(b)&&(c=gM(a,b))}this.setBaseTarget(a,f5(c)?c.get():c)}return f5(c)?c.get():c}setBaseTarget(a,b){this.baseTarget[a]=b}getBaseTarget(a){let b,{initial:c}=this.props;if("string"==typeof c||"object"==typeof c){let d=g5(this.props,c,this.presenceContext?.custom);d&&(b=d[a])}if(c&&void 0!==b)return b;let d=this.getBaseTargetFromProps(this.props,a);return void 0===d||f5(d)?void 0!==this.initialValues[a]&&void 0===b?void 0:this.baseTarget[a]:d}on(a,b){return this.events[a]||(this.events[a]=new gR),this.events[a].add(b)}notify(a,...b){this.events[a]&&this.events[a].notify(...b)}scheduleRenderMicrotask(){gS.render(this.render)}}class g9 extends g8{constructor(){super(...arguments),this.KeyframeResolver=gO}sortInstanceNodePosition(a,b){return 2&a.compareDocumentPosition(b)?1:-1}getBaseTargetFromProps(a,b){let c=a.style;return c?c[b]:void 0}removeValueFromRenderState(a,{vars:b,style:c}){delete b[a],delete c[a]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:a}=this.props;f5(a)&&(this.childSubscription=a.on("change",a=>{this.current&&(this.current.textContent=`${a}`)}))}}function ha(a){return a.replace(/([A-Z])/g,a=>`-${a.toLowerCase()}`)}let hb=(a,b)=>b&&"number"==typeof a?b.transform(a):a,hc={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},hd=fp.length;function he(a,b,c){let{style:d,vars:e,transformOrigin:f}=a,g=!1,h=!1;for(let a in b){let c=b[a];if(fq.has(a)){g=!0;continue}if(gd(a)){e[a]=c;continue}{let b=hb(c,f$[a]);a.startsWith("origin")?(h=!0,f[a]=b):d[a]=b}}if(!b.transform&&(g||c?d.transform=function(a,b,c){let d="",e=!0;for(let f=0;f<hd;f++){let g=fp[f],h=a[g];if(void 0===h)continue;let i=!0;if(!(i="number"==typeof h?h===+!!g.startsWith("scale"):0===parseFloat(h))||c){let a=hb(h,f$[g]);if(!i){e=!1;let b=hc[g]||g;d+=`${b}(${a}) `}c&&(b[g]=a)}}return d=d.trim(),c?d=c(b,e?"":d):e&&(d="none"),d}(b,a.transform,c):d.transform&&(d.transform="none")),h){let{originX:a="50%",originY:b="50%",originZ:c=0}=f;d.transformOrigin=`${a} ${b} ${c}`}}let hf={offset:"stroke-dashoffset",array:"stroke-dasharray"},hg={offset:"strokeDashoffset",array:"strokeDasharray"},hh=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function hi(a,{attrX:b,attrY:c,attrScale:d,pathLength:e,pathSpacing:f=1,pathOffset:g=0,...h},i,j,k){if(he(a,h,j),i){a.style.viewBox&&(a.attrs.viewBox=a.style.viewBox);return}a.attrs=a.style,a.style={};let{attrs:l,style:m}=a;for(let a of(l.transform&&(m.transform=l.transform,delete l.transform),(m.transform||l.transformOrigin)&&(m.transformOrigin=l.transformOrigin??"50% 50%",delete l.transformOrigin),m.transform&&(m.transformBox=k?.transformBox??"fill-box",delete l.transformBox),hh))void 0!==l[a]&&(m[a]=l[a],delete l[a]);void 0!==b&&(l.x=b),void 0!==c&&(l.y=c),void 0!==d&&(l.scale=d),void 0!==e&&function(a,b,c=1,d=0,e=!0){a.pathLength=1;let f=e?hf:hg;a[f.offset]=fG.transform(-d);let g=fG.transform(b),h=fG.transform(c);a[f.array]=`${g} ${h}`}(l,e,f,g,!1)}let hj=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),hk=a=>"string"==typeof a&&"svg"===a.toLowerCase();function hl(a,{style:b,vars:c},d,e){let f,g=a.style;for(f in b)g[f]=b[f];for(f in e?.applyProjectionStyles(g,d),c)g.setProperty(f,c[f])}function hm(a,b){return b.max===b.min?0:a/(b.max-b.min)*100}let hn={correct:(a,b)=>{if(!b.target)return a;if("string"==typeof a)if(!fG.test(a))return a;else a=parseFloat(a);let c=hm(a,b.target.x),d=hm(a,b.target.y);return`${c}% ${d}%`}},ho=(a,b,c)=>a+(b-a)*c,hp={borderRadius:{...hn,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:hn,borderTopRightRadius:hn,borderBottomLeftRadius:hn,borderBottomRightRadius:hn,boxShadow:{correct:(a,{treeScale:b,projectionDelta:c})=>{let d=fU.parse(a);if(d.length>5)return a;let e=fU.createTransformer(a),f=+("number"!=typeof d[0]),g=c.x.scale*b.x,h=c.y.scale*b.y;d[0+f]/=g,d[1+f]/=h;let i=ho(g,h,.5);return"number"==typeof d[2+f]&&(d[2+f]/=i),"number"==typeof d[3+f]&&(d[3+f]/=i),e(d)}}};function hq(a,{layout:b,layoutId:c}){return fq.has(a)||a.startsWith("origin")||(b||void 0!==c)&&(!!hp[a]||"opacity"===a)}function hr(a,b,c){let d=a.style,e=b?.style,f={};if(!d)return f;for(let b in d)(f5(d[b])||e&&f5(e[b])||hq(b,a)||c?.getValue(b)?.liveStyle!==void 0)&&(f[b]=d[b]);return f}function hs(a,b,c){let d=hr(a,b,c);for(let c in a)(f5(a[c])||f5(b[c]))&&(d[-1!==fp.indexOf(c)?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c]=a[c]);return d}class ht extends g9{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=f4}getBaseTargetFromProps(a,b){return a[b]}readValueFromInstance(a,b){if(fq.has(b)){let a=f0(b);return a&&a.default||0}return b=hj.has(b)?b:ha(b),a.getAttribute(b)}scrapeMotionValuesFromProps(a,b,c){return hs(a,b,c)}build(a,b,c){hi(a,b,this.isSVGTag,c.transformTemplate,c.style)}renderInstance(a,b,c,d){for(let c in hl(a,b,void 0,d),b.attrs)a.setAttribute(hj.has(c)?c:ha(c),b.attrs[c])}mount(a){this.isSVGTag=hk(a.tagName),super.mount(a)}}function hu({top:a,left:b,right:c,bottom:d}){return{x:{min:b,max:c},y:{min:a,max:d}}}function hv(a){return void 0===a||1===a}function hw({scale:a,scaleX:b,scaleY:c}){return!hv(a)||!hv(b)||!hv(c)}function hx(a){return hw(a)||hy(a)||a.z||a.rotate||a.rotateX||a.rotateY||a.skewX||a.skewY}function hy(a){var b,c;return(b=a.x)&&"0%"!==b||(c=a.y)&&"0%"!==c}function hz(a,b,c,d,e){return void 0!==e&&(a=d+e*(a-d)),d+c*(a-d)+b}function hA(a,b=0,c=1,d,e){a.min=hz(a.min,b,c,d,e),a.max=hz(a.max,b,c,d,e)}function hB(a,{x:b,y:c}){hA(a.x,b.translate,b.scale,b.originPoint),hA(a.y,c.translate,c.scale,c.originPoint)}function hC(a,b){a.min=a.min+b,a.max=a.max+b}function hD(a,b,c,d,e=.5){let f=ho(a.min,a.max,e);hA(a,b,c,f,d)}function hE(a,b){hD(a.x,b.x,b.scaleX,b.scale,b.originX),hD(a.y,b.y,b.scaleY,b.scale,b.originY)}function hF(a,b){return hu(function(a,b){if(!b)return a;let c=b({x:a.left,y:a.top}),d=b({x:a.right,y:a.bottom});return{top:c.y,left:c.x,bottom:d.y,right:d.x}}(a.getBoundingClientRect(),b))}class hG extends g9{constructor(){super(...arguments),this.type="html",this.renderInstance=hl}readValueFromInstance(a,b){if(fq.has(b))return this.projection?.isProjecting?gq(b):((a,b)=>{let{transform:c="none"}=getComputedStyle(a);return gr(c,b)})(a,b);{let c=window.getComputedStyle(a),d=(gd(b)?c.getPropertyValue(b):c[b])||0;return"string"==typeof d?d.trim():d}}measureInstanceViewportBox(a,{transformPagePoint:b}){return hF(a,b)}build(a,b,c){he(a,b,c.transformTemplate)}scrapeMotionValuesFromProps(a,b,c){return hr(a,b,c)}}let hH=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function hI(a){if("string"!=typeof a||a.includes("-"));else if(hH.indexOf(a)>-1||/[A-Z]/u.test(a))return!0;return!1}(0,z.createContext)({strict:!1});let hJ=(0,z.createContext)({});function hK(a){return Array.isArray(a)?a.join(" "):a}let hL=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function hM(a,b,c){for(let d in b)f5(b[d])||hq(d,c)||(a[d]=b[d])}let hN=()=>({...hL(),attrs:{}}),hO=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function hP(a){return a.startsWith("while")||a.startsWith("drag")&&"draggable"!==a||a.startsWith("layout")||a.startsWith("onTap")||a.startsWith("onPan")||a.startsWith("onLayout")||hO.has(a)}let hQ=a=>!hP(a);try{u=(()=>{let a=Error("Cannot find module '@emotion/is-prop-valid'");throw a.code="MODULE_NOT_FOUND",a})().default,"function"==typeof u&&(hQ=a=>a.startsWith("on")?!hP(a):u(a))}catch{}function hR(a){return f5(a)?a.get():a}let hS=a=>(b,c)=>{let d=(0,z.useContext)(hJ),e=(0,z.useContext)(fb),f=()=>(function({scrapeMotionValuesFromProps:a,createRenderState:b},c,d,e){return{latestValues:function(a,b,c,d){let e={},f=d(a,{});for(let a in f)e[a]=hR(f[a]);let{initial:g,animate:h}=a,i=g2(a),j=g3(a);b&&j&&!i&&!1!==a.inherit&&(void 0===g&&(g=b.initial),void 0===h&&(h=b.animate));let k=!!c&&!1===c.initial,l=(k=k||!1===g)?h:g;if(l&&"boolean"!=typeof l&&!g$(l)){let b=Array.isArray(l)?l:[l];for(let c=0;c<b.length;c++){let d=g5(a,b[c]);if(d){let{transitionEnd:a,transition:b,...c}=d;for(let a in c){let b=c[a];if(Array.isArray(b)){let a=k?b.length-1:0;b=b[a]}null!==b&&(e[a]=b)}for(let b in a)e[b]=a[b]}}}return e}(c,d,e,a),renderState:b()}})(a,b,d,e);return c?f():e9(f)},hT=hS({scrapeMotionValuesFromProps:hr,createRenderState:hL}),hU=hS({scrapeMotionValuesFromProps:hs,createRenderState:hN}),hV={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},hW=!1,hX=Symbol.for("motionComponentSymbol"),hY="data-"+ha("framerAppearId"),hZ=(0,z.createContext)({});function h$(a){return a&&"object"==typeof a&&Object.prototype.hasOwnProperty.call(a,"current")}function h_(a,{forwardMotionProps:b=!1,type:c}={},d,e){d&&function(a){let b=(!function(){if(hW)return;let a={};for(let b in hV)a[b]={isEnabled:a=>hV[b].some(b=>!!a[b])};g7=a,hW=!0}(),g7);for(let c in a)b[c]={...b[c],...a[c]};g7=b}(d);let f=c?"svg"===c:hI(a),g=f?hU:hT;function h(c,d){var e;let h,i,j,k={...(0,z.useContext)(ff),...c,layoutId:function({layoutId:a}){let b=(0,z.useContext)(e8).id;return b&&void 0!==a?b+"-"+a:a}(c)},{isStatic:l}=k,m=function(a){let{initial:b,animate:c}=function(a,b){if(g2(a)){let{initial:b,animate:c}=a;return{initial:!1===b||g_(b)?b:void 0,animate:g_(c)?c:void 0}}return!1!==a.inherit?b:{}}(a,(0,z.useContext)(hJ));return(0,z.useMemo)(()=>({initial:b,animate:c}),[hK(b),hK(c)])}(c),n=g(c,l);return(0,y.jsxs)(hJ.Provider,{value:m,children:[h&&m.visualElement?(0,y.jsx)(h,{visualElement:m.visualElement,...k}):null,function(a,b,c,{latestValues:d},e,f=!1,g){let h=(g??hI(a)?function(a,b,c,d){let e=(0,z.useMemo)(()=>{let c=hN();return hi(c,b,hk(d),a.transformTemplate,a.style),{...c.attrs,style:{...c.style}}},[b]);if(a.style){let b={};hM(b,a.style,a),e.style={...b,...e.style}}return e}:function(a,b){let c,d,e={},f=(c=a.style||{},hM(d={},c,a),Object.assign(d,function({transformTemplate:a},b){return(0,z.useMemo)(()=>{let c=hL();return he(c,b,a),Object.assign({},c.vars,c.style)},[b])}(a,b)),d);return a.drag&&!1!==a.dragListener&&(e.draggable=!1,f.userSelect=f.WebkitUserSelect=f.WebkitTouchCallout="none",f.touchAction=!0===a.drag?"none":`pan-${"x"===a.drag?"y":"x"}`),void 0===a.tabIndex&&(a.onTap||a.onTapStart||a.whileTap)&&(e.tabIndex=0),e.style=f,e})(b,d,e,a),i=function(a,b,c){let d={};for(let e in a)("values"!==e||"object"!=typeof a.values)&&(hQ(e)||!0===c&&hP(e)||!b&&!hP(e)||a.draggable&&e.startsWith("onDrag"))&&(d[e]=a[e]);return d}(b,"string"==typeof a,f),j=a!==z.Fragment?{...i,...h,ref:c}:{},{children:k}=b,l=(0,z.useMemo)(()=>f5(k)?k.get():k,[k]);return(0,z.createElement)(a,{...j,children:l})}(a,c,(e=m.visualElement,i=(0,z.useRef)(d),(0,z.useInsertionEffect)(()=>{i.current=d}),j=(0,z.useRef)(null),(0,z.useCallback)(a=>{a&&n.onMount?.(a),e&&(a?e.mount(a):e.unmount());let b=i.current;if("function"==typeof b)if(a){let c=b(a);"function"==typeof c&&(j.current=c)}else j.current?(j.current(),j.current=null):b(a);else b&&(b.current=a)},[e])),n,l,b,f)]})}h.displayName=`motion.${"string"==typeof a?a:`create(${a.displayName??a.name??""})`}`;let i=(0,z.forwardRef)(h);return i[hX]=a,i}class h0{constructor(a){this.isMounted=!1,this.node=a}update(){}}function h1(a,b,c){let d=a.getProps();return g5(d,b,void 0!==c?c:d.custom,a)}function h2(a,b){return a?.[b]??a?.default??a}let h3=a=>Array.isArray(a);function h4(a,b){let c=a.getValue("willChange");if(f5(c)&&c.add)return c.add(b);if(!c&&gy.WillChange){let c=new gy.WillChange("auto");a.addValue("willChange",c),c.add(b)}}let h5=a=>1e3*a,h6=(a,b)=>c=>b(a(c)),h7=(...a)=>a.reduce(h6),h8={layout:0,mainThread:0,waapi:0};function h9(a,b,c){return(c<0&&(c+=1),c>1&&(c-=1),c<1/6)?a+(b-a)*6*c:c<.5?b:c<2/3?a+(b-a)*(2/3-c)*6:a}function ia(a,b){return c=>c>0?b:a}let ib=(a,b,c)=>{let d=a*a,e=c*(b*b-d)+d;return e<0?0:Math.sqrt(e)},ic=[fC,fB,fK];function id(a){let b=ic.find(b=>b.test(a));if(ga(!!b,`'${a}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!b)return!1;let c=b.parse(a);return b===fK&&(c=function({hue:a,saturation:b,lightness:c,alpha:d}){a/=360,c/=100;let e=0,f=0,g=0;if(b/=100){let d=c<.5?c*(1+b):c+b-c*b,h=2*c-d;e=h9(h,d,a+1/3),f=h9(h,d,a),g=h9(h,d,a-1/3)}else e=f=g=c;return{red:Math.round(255*e),green:Math.round(255*f),blue:Math.round(255*g),alpha:d}}(c)),c}let ie=(a,b)=>{let c=id(a),d=id(b);if(!c||!d)return ia(a,b);let e={...c};return a=>(e.red=ib(c.red,d.red,a),e.green=ib(c.green,d.green,a),e.blue=ib(c.blue,d.blue,a),e.alpha=ho(c.alpha,d.alpha,a),fB.transform(e))},ig=new Set(["none","hidden"]);function ih(a,b){return c=>ho(a,b,c)}function ii(a){return"number"==typeof a?ih:"string"==typeof a?gf(a)?ia:fL.test(a)?ie:il:Array.isArray(a)?ij:"object"==typeof a?fL.test(a)?ie:ik:ia}function ij(a,b){let c=[...a],d=c.length,e=a.map((a,c)=>ii(a)(a,b[c]));return a=>{for(let b=0;b<d;b++)c[b]=e[b](a);return c}}function ik(a,b){let c={...a,...b},d={};for(let e in c)void 0!==a[e]&&void 0!==b[e]&&(d[e]=ii(a[e])(a[e],b[e]));return a=>{for(let b in d)c[b]=d[b](a);return c}}let il=(a,b)=>{let c=fU.createTransformer(b),d=fQ(a),e=fQ(b);if(!(d.indexes.var.length===e.indexes.var.length&&d.indexes.color.length===e.indexes.color.length&&d.indexes.number.length>=e.indexes.number.length))return ga(!0,`Complex values '${a}' and '${b}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,"complex-values-different"),ia(a,b);if(ig.has(a)&&!e.values.length||ig.has(b)&&!d.values.length)return ig.has(a)?c=>c<=0?a:b:c=>c>=1?b:a;return h7(ij(function(a,b){let c=[],d={color:0,var:0,number:0};for(let e=0;e<b.values.length;e++){let f=b.types[e],g=a.indexes[f][d[f]],h=a.values[g]??0;c[e]=h,d[f]++}return c}(d,e),e.values),c)};function im(a,b,c){return"number"==typeof a&&"number"==typeof b&&"number"==typeof c?ho(a,b,c):ii(a)(a,b)}let io=a=>{let b=({timestamp:b})=>a(b);return{start:(a=!0)=>gB.update(b,a),stop:()=>gC(b),now:()=>gD.isProcessing?gD.timestamp:gU.now()}},ip=(a,b,c=10)=>{let d="",e=Math.max(Math.round(b/c),2);for(let b=0;b<e;b++)d+=Math.round(1e4*a(b/(e-1)))/1e4+", ";return`linear(${d.substring(0,d.length-2)})`};function iq(a){let b=0,c=a.next(b);for(;!c.done&&b<2e4;)b+=50,c=a.next(b);return b>=2e4?1/0:b}function ir(a,b,c){var d,e;let f=Math.max(b-5,0);return d=c-a(f),(e=b-f)?1e3/e*d:0}let is=.01,it=2,iu=.005,iv=.5;function iw(a,b){return a*Math.sqrt(1-b*b)}let ix=["duration","bounce"],iy=["stiffness","damping","mass"];function iz(a,b){return b.some(b=>void 0!==a[b])}function iA(a=.3,b=.3){let c,d="object"!=typeof a?{visualDuration:a,keyframes:[0,1],bounce:b}:a,{restSpeed:e,restDelta:f}=d,g=d.keyframes[0],h=d.keyframes[d.keyframes.length-1],i={done:!1,value:g},{stiffness:j,damping:k,mass:l,duration:m,velocity:n,isResolvedFromDuration:o}=function(a){let b={velocity:0,stiffness:100,damping:10,mass:1,isResolvedFromDuration:!1,...a};if(!iz(a,iy)&&iz(a,ix))if(a.visualDuration){let c=2*Math.PI/(1.2*a.visualDuration),d=c*c,e=2*fr(.05,1,1-(a.bounce||0))*Math.sqrt(d);b={...b,mass:1,stiffness:d,damping:e}}else{let c=function({duration:a=800,bounce:b=.3,velocity:c=0,mass:d=1}){let e,f;ga(a<=h5(10),"Spring duration must be 10 seconds or less","spring-duration-limit");let g=1-b;g=fr(.05,1,g),a=fr(.01,10,a/1e3),g<1?(e=b=>{let d=b*g,e=d*a;return .001-(d-c)/iw(b,g)*Math.exp(-e)},f=b=>{let d=b*g*a,f=Math.pow(g,2)*Math.pow(b,2)*a,h=Math.exp(-d),i=iw(Math.pow(b,2),g);return(d*c+c-f)*h*(-e(b)+.001>0?-1:1)/i}):(e=b=>-.001+Math.exp(-b*a)*((b-c)*a+1),f=b=>a*a*(c-b)*Math.exp(-b*a));let h=function(a,b,c){let d=c;for(let c=1;c<12;c++)d-=a(d)/b(d);return d}(e,f,5/a);if(a=h5(a),isNaN(h))return{stiffness:100,damping:10,duration:a};{let b=Math.pow(h,2)*d;return{stiffness:b,damping:2*g*Math.sqrt(d*b),duration:a}}}(a);(b={...b,...c,mass:1}).isResolvedFromDuration=!0}return b}({...d,velocity:-((d.velocity||0)/1e3)}),p=n||0,q=k/(2*Math.sqrt(j*l)),r=h-g,s=Math.sqrt(j/l)/1e3,t=5>Math.abs(r);if(e||(e=t?is:it),f||(f=t?iu:iv),q<1){let a=iw(s,q);c=b=>h-Math.exp(-q*s*b)*((p+q*s*r)/a*Math.sin(a*b)+r*Math.cos(a*b))}else if(1===q)c=a=>h-Math.exp(-s*a)*(r+(p+s*r)*a);else{let a=s*Math.sqrt(q*q-1);c=b=>{let c=Math.exp(-q*s*b),d=Math.min(a*b,300);return h-c*((p+q*s*r)*Math.sinh(d)+a*r*Math.cosh(d))/a}}let u={calculatedDuration:o&&m||null,next:a=>{let b=c(a);if(o)i.done=a>=m;else{let d=0===a?p:0;q<1&&(d=0===a?h5(p):ir(c,a,b));let g=Math.abs(h-b)<=f;i.done=Math.abs(d)<=e&&g}return i.value=i.done?h:b,i},toString:()=>{let a=Math.min(iq(u),2e4),b=ip(b=>u.next(a*b).value,a,30);return a+"ms "+b},toTransition:()=>{}};return u}function iB({keyframes:a,velocity:b=0,power:c=.8,timeConstant:d=325,bounceDamping:e=10,bounceStiffness:f=500,modifyTarget:g,min:h,max:i,restDelta:j=.5,restSpeed:k}){let l,m,n=a[0],o={done:!1,value:n},p=c*b,q=n+p,r=void 0===g?q:g(q);r!==q&&(p=r-n);let s=a=>-p*Math.exp(-a/d),t=a=>r+s(a),u=a=>{let b=s(a),c=t(a);o.done=Math.abs(b)<=j,o.value=o.done?r:c},v=a=>{let b;if(b=o.value,void 0!==h&&b<h||void 0!==i&&b>i){var c;l=a,m=iA({keyframes:[o.value,(c=o.value,void 0===h?i:void 0===i||Math.abs(h-c)<Math.abs(i-c)?h:i)],velocity:ir(t,a,o.value),damping:e,stiffness:f,restDelta:j,restSpeed:k})}};return v(0),{calculatedDuration:null,next:a=>{let b=!1;return(m||void 0!==l||(b=!0,u(a),v(a)),void 0!==l&&a>=l)?m.next(a-l):(b||u(a),o)}}}iA.applyToOptions=a=>{let b=function(a,b=100,c){let d=c({...a,keyframes:[0,b]}),e=Math.min(iq(d),2e4);return{type:"keyframes",ease:a=>d.next(e*a).value/b,duration:e/1e3}}(a,100,iA);return a.ease=b.ease,a.duration=h5(b.duration),a.type="keyframes",a};let iC=(a,b,c)=>(((1-3*c+3*b)*a+(3*c-6*b))*a+3*b)*a;function iD(a,b,c,d){return a===b&&c===d?gx:e=>0===e||1===e?e:iC(function(a,b,c,d,e){let f,g,h=0;do(f=iC(g=b+(c-b)/2,d,e)-a)>0?c=g:b=g;while(Math.abs(f)>1e-7&&++h<12)return g}(e,0,1,a,c),b,d)}let iE=iD(.42,0,1,1),iF=iD(0,0,.58,1),iG=iD(.42,0,.58,1),iH=a=>b=>b<=.5?a(2*b)/2:(2-a(2*(1-b)))/2,iI=a=>b=>1-a(1-b),iJ=iD(.33,1.53,.69,.99),iK=iI(iJ),iL=iH(iK),iM=a=>(a*=2)<1?.5*iK(a):.5*(2-Math.pow(2,-10*(a-1))),iN=a=>1-Math.sin(Math.acos(a)),iO=iI(iN),iP=iH(iN),iQ=a=>Array.isArray(a)&&"number"==typeof a[0],iR={linear:gx,easeIn:iE,easeInOut:iG,easeOut:iF,circIn:iN,circInOut:iP,circOut:iO,backIn:iK,backInOut:iL,backOut:iJ,anticipate:iM},iS=a=>{if(iQ(a)){gb(4===a.length,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[b,c,d,e]=a;return iD(b,c,d,e)}return"string"==typeof a?(gb(void 0!==iR[a],`Invalid easing type '${a}'`,"invalid-easing-type"),iR[a]):a},iT=(a,b,c)=>{let d=b-a;return 0===d?1:(c-a)/d};function iU({duration:a=300,keyframes:b,times:c,ease:d="easeInOut"}){var e;let f,g=Array.isArray(d)&&"number"!=typeof d[0]?d.map(iS):iS(d),h={done:!1,value:b[0]},i=function(a,b,{clamp:c=!0,ease:d,mixer:e}={}){let f=a.length;if(gb(f===b.length,"Both input and output ranges must be the same length","range-length"),1===f)return()=>b[0];if(2===f&&b[0]===b[1])return()=>b[1];let g=a[0]===a[1];a[0]>a[f-1]&&(a=[...a].reverse(),b=[...b].reverse());let h=function(a,b,c){let d=[],e=c||gy.mix||im,f=a.length-1;for(let c=0;c<f;c++){let f=e(a[c],a[c+1]);b&&(f=h7(Array.isArray(b)?b[c]||gx:b,f)),d.push(f)}return d}(b,d,e),i=h.length,j=c=>{if(g&&c<a[0])return b[0];let d=0;if(i>1)for(;d<a.length-2&&!(c<a[d+1]);d++);let e=iT(a[d],a[d+1],c);return h[d](e)};return c?b=>j(fr(a[0],a[f-1],b)):j}((e=c&&c.length===b.length?c:(!function(a,b){let c=a[a.length-1];for(let d=1;d<=b;d++){let e=iT(0,b,d);a.push(ho(c,1,e))}}(f=[0],b.length-1),f),e.map(b=>b*a)),b,{ease:Array.isArray(g)?g:b.map(()=>g||iG).splice(0,b.length-1)});return{calculatedDuration:a,next:b=>(h.value=i(b),h.done=b>=a,h)}}let iV=a=>null!==a;function iW(a,{repeat:b,repeatType:c="loop"},d,e=1){let f=a.filter(iV),g=e<0||b&&"loop"!==c&&b%2==1?0:f.length-1;return g&&void 0!==d?d:f[g]}let iX={decay:iB,inertia:iB,tween:iU,keyframes:iU,spring:iA};function iY(a){"string"==typeof a.type&&(a.type=iX[a.type])}class iZ{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(a=>{this.resolve=a})}notifyFinished(){this.resolve()}then(a,b){return this.finished.then(a,b)}}let i$=a=>a/100;class i_ extends iZ{constructor(a){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{let{motionValue:a}=this.options;a&&a.updatedAt!==gU.now()&&this.tick(gU.now()),this.isStopped=!0,"idle"!==this.state&&(this.teardown(),this.options.onStop?.())},h8.mainThread++,this.options=a,this.initAnimation(),this.play(),!1===a.autoplay&&this.pause()}initAnimation(){let{options:a}=this;iY(a);let{type:b=iU,repeat:c=0,repeatDelay:d=0,repeatType:e,velocity:f=0}=a,{keyframes:g}=a,h=b||iU;h!==iU&&"number"!=typeof g[0]&&(this.mixKeyframes=h7(i$,im(g[0],g[1])),g=[0,100]);let i=h({...a,keyframes:g});"mirror"===e&&(this.mirroredGenerator=h({...a,keyframes:[...g].reverse(),velocity:-f})),null===i.calculatedDuration&&(i.calculatedDuration=iq(i));let{calculatedDuration:j}=i;this.calculatedDuration=j,this.resolvedDuration=j+d,this.totalDuration=this.resolvedDuration*(c+1)-d,this.generator=i}updateTime(a){let b=Math.round(a-this.startTime)*this.playbackSpeed;null!==this.holdTime?this.currentTime=this.holdTime:this.currentTime=b}tick(a,b=!1){let{generator:c,totalDuration:d,mixKeyframes:e,mirroredGenerator:f,resolvedDuration:g,calculatedDuration:h}=this;if(null===this.startTime)return c.next(0);let{delay:i=0,keyframes:j,repeat:k,repeatType:l,repeatDelay:m,type:n,onUpdate:o,finalKeyframe:p}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,a):this.speed<0&&(this.startTime=Math.min(a-d/this.speed,this.startTime)),b?this.currentTime=a:this.updateTime(a);let q=this.currentTime-i*(this.playbackSpeed>=0?1:-1),r=this.playbackSpeed>=0?q<0:q>d;this.currentTime=Math.max(q,0),"finished"===this.state&&null===this.holdTime&&(this.currentTime=d);let s=this.currentTime,t=c;if(k){let a=Math.min(this.currentTime,d)/g,b=Math.floor(a),c=a%1;!c&&a>=1&&(c=1),1===c&&b--,(b=Math.min(b,k+1))%2&&("reverse"===l?(c=1-c,m&&(c-=m/g)):"mirror"===l&&(t=f)),s=fr(0,1,c)*g}let u=r?{done:!1,value:j[0]}:t.next(s);e&&(u.value=e(u.value));let{done:v}=u;r||null===h||(v=this.playbackSpeed>=0?this.currentTime>=d:this.currentTime<=0);let w=null===this.holdTime&&("finished"===this.state||"running"===this.state&&v);return w&&n!==iB&&(u.value=iW(j,this.options,p,this.speed)),o&&o(u.value),w&&this.finish(),u}then(a,b){return this.finished.then(a,b)}get duration(){return this.calculatedDuration/1e3}get iterationDuration(){let{delay:a=0}=this.options||{};return this.duration+a/1e3}get time(){return this.currentTime/1e3}set time(a){a=h5(a),this.currentTime=a,null===this.startTime||null!==this.holdTime||0===this.playbackSpeed?this.holdTime=a:this.driver&&(this.startTime=this.driver.now()-a/this.playbackSpeed),this.driver?.start(!1)}get speed(){return this.playbackSpeed}set speed(a){this.updateTime(gU.now());let b=this.playbackSpeed!==a;this.playbackSpeed=a,b&&(this.time=this.currentTime/1e3)}play(){if(this.isStopped)return;let{driver:a=io,startTime:b}=this.options;this.driver||(this.driver=a(a=>this.tick(a))),this.options.onPlay?.();let c=this.driver.now();"finished"===this.state?(this.updateFinished(),this.startTime=c):null!==this.holdTime?this.startTime=c-this.holdTime:this.startTime||(this.startTime=b??c),"finished"===this.state&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(gU.now()),this.holdTime=this.currentTime}complete(){"running"!==this.state&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null,h8.mainThread--}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(a){return this.startTime=0,this.tick(a,!0)}attachTimeline(a){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),a.observe(this)}}function i0(a){let b;return()=>(void 0===b&&(b=a()),b)}let i1=i0(()=>void 0!==window.ScrollTimeline),i2={},i3=(j=i0(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(a){return!1}return!0}),()=>i2.linearEasing??j()),i4=([a,b,c,d])=>`cubic-bezier(${a}, ${b}, ${c}, ${d})`,i5={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:i4([0,.65,.55,1]),circOut:i4([.55,0,1,.45]),backIn:i4([.31,.01,.66,-.59]),backOut:i4([.33,1.53,.69,.99])};function i6(a){return"function"==typeof a&&"applyToOptions"in a}class i7 extends iZ{constructor(a){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!a)return;const{element:b,name:c,keyframes:d,pseudoElement:e,allowFlatten:f=!1,finalKeyframe:g,onComplete:h}=a;this.isPseudoElement=!!e,this.allowFlatten=f,this.options=a,gb("string"!=typeof a.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");const i=function({type:a,...b}){return i6(a)&&i3()?a.applyToOptions(b):(b.duration??(b.duration=300),b.ease??(b.ease="easeOut"),b)}(a);this.animation=function(a,b,c,{delay:d=0,duration:e=300,repeat:f=0,repeatType:g="loop",ease:h="easeOut",times:i}={},j){let k={[b]:c};i&&(k.offset=i);let l=function a(b,c){if(b)return"function"==typeof b?i3()?ip(b,c):"ease-out":iQ(b)?i4(b):Array.isArray(b)?b.map(b=>a(b,c)||i5.easeOut):i5[b]}(h,e);Array.isArray(l)&&(k.easing=l);let m={delay:d,duration:e,easing:Array.isArray(l)?"linear":l,fill:"both",iterations:f+1,direction:"reverse"===g?"alternate":"normal"};j&&(m.pseudoElement=j);let n=a.animate(k,m);return n}(b,c,d,i,e),!1===i.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!e){let a=iW(d,this.options,g,this.speed);this.updateMotionValue?this.updateMotionValue(a):c.startsWith("--")?b.style.setProperty(c,a):b.style[c]=a,this.animation.cancel()}h?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch(a){}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:a}=this;"idle"!==a&&"finished"!==a&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){this.isPseudoElement||this.animation.commitStyles?.()}get duration(){return Number(this.animation.effect?.getComputedTiming?.().duration||0)/1e3}get iterationDuration(){let{delay:a=0}=this.options||{};return this.duration+a/1e3}get time(){return(Number(this.animation.currentTime)||0)/1e3}set time(a){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=h5(a)}get speed(){return this.animation.playbackRate}set speed(a){a<0&&(this.finishedTime=null),this.animation.playbackRate=a}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(a){this.manualStartTime=this.animation.startTime=a}attachTimeline({timeline:a,observe:b}){return(this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,a&&i1())?(this.animation.timeline=a,gx):b(this)}}let i8={anticipate:iM,backInOut:iL,circInOut:iP};class i9 extends i7{constructor(a){!function(a){"string"==typeof a.ease&&a.ease in i8&&(a.ease=i8[a.ease])}(a),iY(a),super(a),void 0!==a.startTime&&(this.startTime=a.startTime),this.options=a}updateMotionValue(a){let{motionValue:b,onUpdate:c,onComplete:d,element:e,...f}=this.options;if(!b)return;if(void 0!==a)return void b.set(a);let g=new i_({...f,autoplay:!1}),h=Math.max(10,gU.now()-this.startTime),i=fr(0,10,h-10);b.setWithVelocity(g.sample(Math.max(0,h-i)).value,g.sample(h).value,i),g.stop()}}let ja=(a,b)=>"zIndex"!==b&&!!("number"==typeof a||Array.isArray(a)||"string"==typeof a&&(fU.test(a)||"0"===a)&&!a.startsWith("url("));function jb(a){a.duration=0,a.type="keyframes"}let jc=new Set(["opacity","clipPath","filter","transform"]),jd=i0(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));class je extends iZ{constructor({autoplay:a=!0,delay:b=0,type:c="keyframes",repeat:d=0,repeatDelay:e=0,repeatType:f="loop",keyframes:g,name:h,motionValue:i,element:j,...k}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=gU.now();const l={autoplay:a,delay:b,type:c,repeat:d,repeatDelay:e,repeatType:f,name:h,motionValue:i,element:j,...k},m=j?.KeyframeResolver||gL;this.keyframeResolver=new m(g,(a,b,c)=>this.onKeyframesResolved(a,b,l,!c),h,i,j),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(a,b,c,d){this.keyframeResolver=void 0;let{name:e,type:f,velocity:g,delay:h,isHandoff:i,onUpdate:j}=c;this.resolvedAt=gU.now(),!function(a,b,c,d){let e=a[0];if(null===e)return!1;if("display"===b||"visibility"===b)return!0;let f=a[a.length-1],g=ja(e,b),h=ja(f,b);return ga(g===h,`You are trying to animate ${b} from "${e}" to "${f}". "${g?f:e}" is not an animatable value.`,"value-not-animatable"),!!g&&!!h&&(function(a){let b=a[0];if(1===a.length)return!0;for(let c=0;c<a.length;c++)if(a[c]!==b)return!0}(a)||("spring"===c||i6(c))&&d)}(a,e,f,g)&&((gy.instantAnimations||!h)&&j?.(iW(a,c,b)),a[0]=a[a.length-1],jb(c),c.repeat=0);let k={startTime:d?this.resolvedAt&&this.resolvedAt-this.createdAt>40?this.resolvedAt:this.createdAt:void 0,finalKeyframe:b,...c,keyframes:a},l=!i&&function(a){let{motionValue:b,name:c,repeatDelay:d,repeatType:e,damping:f,type:g}=a;if(!(b?.owner?.current instanceof HTMLElement))return!1;let{onUpdate:h,transformTemplate:i}=b.owner.getProps();return jd()&&c&&jc.has(c)&&("transform"!==c||!i)&&!h&&!d&&"mirror"!==e&&0!==f&&"inertia"!==g}(k)?new i9({...k,element:k.motionValue.owner.current}):new i_(k);l.finished.then(()=>this.notifyFinished()).catch(gx),this.pendingTimeline&&(this.stopTimeline=l.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=l}get finished(){return this._animation?this.animation.finished:this._finished}then(a,b){return this.finished.finally(a).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),gI=!0,gK(),gJ(),gI=!1),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(a){this.animation.time=a}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(a){this.animation.speed=a}get startTime(){return this.animation.startTime}attachTimeline(a){return this._animation?this.stopTimeline=this.animation.attachTimeline(a):this.pendingTimeline=a,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}let jf={type:"spring",stiffness:500,damping:25,restSpeed:10},jg={type:"keyframes",duration:.8},jh={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},ji=a=>null!==a,jj=(a,b,c,d={},e,f)=>g=>{let h=h2(d,a)||{},i=h.delay||d.delay||0,{elapsed:j=0}=d;j-=h5(i);let k={keyframes:Array.isArray(c)?c:[null,c],ease:"easeOut",velocity:b.getVelocity(),...h,delay:-j,onUpdate:a=>{b.set(a),h.onUpdate&&h.onUpdate(a)},onComplete:()=>{g(),h.onComplete&&h.onComplete()},name:a,motionValue:b,element:f?void 0:e};!function({when:a,delay:b,delayChildren:c,staggerChildren:d,staggerDirection:e,repeat:f,repeatType:g,repeatDelay:h,from:i,elapsed:j,...k}){return!!Object.keys(k).length}(h)&&Object.assign(k,((a,{keyframes:b})=>b.length>2?jg:fq.has(a)?a.startsWith("scale")?{type:"spring",stiffness:550,damping:0===b[1]?2*Math.sqrt(550):30,restSpeed:10}:jf:jh)(a,k)),k.duration&&(k.duration=h5(k.duration)),k.repeatDelay&&(k.repeatDelay=h5(k.repeatDelay)),void 0!==k.from&&(k.keyframes[0]=k.from);let l=!1;if(!1!==k.type&&(0!==k.duration||k.repeatDelay)||(jb(k),0===k.delay&&(l=!0)),(gy.instantAnimations||gy.skipAnimations)&&(l=!0,jb(k),k.delay=0),k.allowFlatten=!h.type&&!h.ease,l&&!f&&void 0!==b.get()){let a=function(a,{repeat:b,repeatType:c="loop"},d){let e=a.filter(ji),f=b&&"loop"!==c&&b%2==1?0:e.length-1;return e[f]}(k.keyframes,h);if(void 0!==a)return void gB.update(()=>{k.onUpdate(a),k.onComplete()})}return h.isSync?new i_(k):new je(k)};function jk(a,b,{delay:c=0,transitionOverride:d,type:e}={}){let{transition:f=a.getDefaultTransition(),transitionEnd:g,...h}=b;d&&(f=d);let i=[],j=e&&a.animationState&&a.animationState.getState()[e];for(let b in h){let d=a.getValue(b,a.latestValues[b]??null),e=h[b];if(void 0===e||j&&function({protectedKeys:a,needsAnimating:b},c){let d=a.hasOwnProperty(c)&&!0!==b[c];return b[c]=!1,d}(j,b))continue;let g={delay:c,...h2(f||{},b)},k=d.get();if(void 0!==k&&!d.isAnimating&&!Array.isArray(e)&&e===k&&!g.velocity)continue;let l=!1;if(window.MotionHandoffAnimation){let c=a.props[hY];if(c){let a=window.MotionHandoffAnimation(c,b,gB);null!==a&&(g.startTime=a,l=!0)}}h4(a,b),d.start(jj(b,d,e,a.shouldReduceMotion&&f6.has(b)?{type:!1}:g,a,l));let m=d.animation;m&&i.push(m)}return g&&Promise.all(i).then(()=>{gB.update(()=>{g&&function(a,b){let{transitionEnd:c={},transition:d={},...e}=h1(a,b)||{};for(let b in e={...e,...c}){var f;let c=h3(f=e[b])?f[f.length-1]||0:f;a.hasValue(b)?a.getValue(b).set(c):a.addValue(b,gW(c))}}(a,g)})}),i}function jl(a,b,c,d=0,e=1){let f=Array.from(a).sort((a,b)=>a.sortNodePosition(b)).indexOf(b),g=a.size,h=(g-1)*d;return"function"==typeof c?c(f,g):1===e?f*d:h-f*d}function jm(a,b,c={}){let d=h1(a,b,"exit"===c.type?a.presenceContext?.custom:void 0),{transition:e=a.getDefaultTransition()||{}}=d||{};c.transitionOverride&&(e=c.transitionOverride);let f=d?()=>Promise.all(jk(a,d,c)):()=>Promise.resolve(),g=a.variantChildren&&a.variantChildren.size?(d=0)=>{let{delayChildren:f=0,staggerChildren:g,staggerDirection:h}=e;return function(a,b,c=0,d=0,e=0,f=1,g){let h=[];for(let i of a.variantChildren)i.notify("AnimationStart",b),h.push(jm(i,b,{...g,delay:c+("function"==typeof d?0:d)+jl(a.variantChildren,i,d,e,f)}).then(()=>i.notify("AnimationComplete",b)));return Promise.all(h)}(a,b,d,f,g,h,c)}:()=>Promise.resolve(),{when:h}=e;if(!h)return Promise.all([f(),g(c.delay)]);{let[a,b]="beforeChildren"===h?[f,g]:[g,f];return a().then(()=>b())}}let jn=g1.length;function jo(a,b){if(!Array.isArray(b))return!1;let c=b.length;if(c!==a.length)return!1;for(let d=0;d<c;d++)if(b[d]!==a[d])return!1;return!0}let jp=[...g0].reverse(),jq=g0.length;function jr(a=!1){return{isActive:a,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function js(){return{animate:jr(!0),whileInView:jr(),whileHover:jr(),whileTap:jr(),whileDrag:jr(),whileFocus:jr(),exit:jr()}}let jt=0;function ju(a){return[a("x"),a("y")]}let jv=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function jw(a){return jv.has(a.tagName)||!0===a.isContentEditable}function jx(a,b,c,d={passive:!0}){return a.addEventListener(b,c,d),()=>a.removeEventListener(b,c)}let jy={x:!1,y:!1};function jz(a){return a.max-a.min}function jA(a,b,c,d=.5){a.origin=d,a.originPoint=ho(b.min,b.max,a.origin),a.scale=jz(c)/jz(b),a.translate=ho(c.min,c.max,a.origin)-a.originPoint,(a.scale>=.9999&&a.scale<=1.0001||isNaN(a.scale))&&(a.scale=1),(a.translate>=-.01&&a.translate<=.01||isNaN(a.translate))&&(a.translate=0)}function jB(a,b,c,d){jA(a.x,b.x,c.x,d?d.originX:void 0),jA(a.y,b.y,c.y,d?d.originY:void 0)}function jC(a,b,c){a.min=c.min+b.min,a.max=a.min+jz(b)}function jD(a,b,c){a.min=b.min-c.min,a.max=a.min+jz(b)}function jE(a,b,c){jD(a.x,b.x,c.x),jD(a.y,b.y,c.y)}let jF=a=>"mouse"===a.pointerType?"number"!=typeof a.button||a.button<=0:!1!==a.isPrimary;function jG(a){return{point:{x:a.pageX,y:a.pageY}}}function jH(a,b,c,d){return jx(a,b,a=>jF(a)&&c(a,jG(a)),d)}let jI=({current:a})=>a?a.ownerDocument.defaultView:null,jJ=(a,b)=>Math.abs(a-b),jK=new Set(["auto","scroll"]);class jL{constructor(a,b,{transformPagePoint:c,contextWindow:d=window,dragSnapToOrigin:e=!1,distanceThreshold:f=3,element:g}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=a=>{this.handleScroll(a.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{var a,b;if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let c=jO(this.lastMoveEventInfo,this.history),d=null!==this.startEvent,e=(a=c.offset,b={x:0,y:0},Math.sqrt(jJ(a.x,b.x)**2+jJ(a.y,b.y)**2)>=this.distanceThreshold);if(!d&&!e)return;let{point:f}=c,{timestamp:g}=gD;this.history.push({...f,timestamp:g});let{onStart:h,onMove:i}=this.handlers;d||(h&&h(this.lastMoveEvent,c),this.startEvent=this.lastMoveEvent),i&&i(this.lastMoveEvent,c)},this.handlePointerMove=(a,b)=>{this.lastMoveEvent=a,this.lastMoveEventInfo=jM(b,this.transformPagePoint),gB.update(this.updatePoint,!0)},this.handlePointerUp=(a,b)=>{this.end();let{onEnd:c,onSessionEnd:d,resumeAnimation:e}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&e&&e(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let f=jO("pointercancel"===a.type?this.lastMoveEventInfo:jM(b,this.transformPagePoint),this.history);this.startEvent&&c&&c(a,f),d&&d(a,f)},!jF(a))return;this.dragSnapToOrigin=e,this.handlers=b,this.transformPagePoint=c,this.distanceThreshold=f,this.contextWindow=d||window;const h=jM(jG(a),this.transformPagePoint),{point:i}=h,{timestamp:j}=gD;this.history=[{...i,timestamp:j}];const{onSessionStart:k}=b;k&&k(a,jO(h,this.history)),this.removeListeners=h7(jH(this.contextWindow,"pointermove",this.handlePointerMove),jH(this.contextWindow,"pointerup",this.handlePointerUp),jH(this.contextWindow,"pointercancel",this.handlePointerUp)),g&&this.startScrollTracking(g)}startScrollTracking(a){let b=a.parentElement;for(;b;){let a=getComputedStyle(b);(jK.has(a.overflowX)||jK.has(a.overflowY))&&this.scrollPositions.set(b,{x:b.scrollLeft,y:b.scrollTop}),b=b.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0,passive:!0}),window.addEventListener("scroll",this.onWindowScroll,{passive:!0}),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(a){let b=this.scrollPositions.get(a);if(!b)return;let c=a===window,d=c?{x:window.scrollX,y:window.scrollY}:{x:a.scrollLeft,y:a.scrollTop},e={x:d.x-b.x,y:d.y-b.y};(0!==e.x||0!==e.y)&&(c?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=e.x,this.lastMoveEventInfo.point.y+=e.y):this.history.length>0&&(this.history[0].x-=e.x,this.history[0].y-=e.y),this.scrollPositions.set(a,d),gB.update(this.updatePoint,!0))}updateHandlers(a){this.handlers=a}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),gC(this.updatePoint)}}function jM(a,b){return b?{point:b(a.point)}:a}function jN(a,b){return{x:a.x-b.x,y:a.y-b.y}}function jO({point:a},b){return{point:a,delta:jN(a,jP(b)),offset:jN(a,b[0]),velocity:function(a,b){if(a.length<2)return{x:0,y:0};let c=a.length-1,d=null,e=jP(a);for(;c>=0&&(d=a[c],!(e.timestamp-d.timestamp>h5(.1)));)c--;if(!d)return{x:0,y:0};let f=(e.timestamp-d.timestamp)/1e3;if(0===f)return{x:0,y:0};let g={x:(e.x-d.x)/f,y:(e.y-d.y)/f};return g.x===1/0&&(g.x=0),g.y===1/0&&(g.y=0),g}(b,.1)}}function jP(a){return a[a.length-1]}function jQ(a,b,c){return{min:void 0!==b?a.min+b:void 0,max:void 0!==c?a.max+c-(a.max-a.min):void 0}}function jR(a,b){let c=b.min-a.min,d=b.max-a.max;return b.max-b.min<a.max-a.min&&([c,d]=[d,c]),{min:c,max:d}}function jS(a,b,c){return{min:jT(a,b),max:jT(a,c)}}function jT(a,b){return"number"==typeof a?a:a[b]||0}let jU=new WeakMap;class jV{constructor(a){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=f4(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=a}start(a,{snapToCursor:b=!1,distanceThreshold:c}={}){let{presenceContext:d}=this.visualElement;if(d&&!1===d.isPresent)return;let e=a=>{b?(this.stopAnimation(),this.snapToCursor(jG(a).point)):this.pauseAnimation()},f=(a,b)=>{this.stopAnimation();let{drag:c,dragPropagation:d,onDragStart:e}=this.getProps();if(c&&!d&&(this.openDragLock&&this.openDragLock(),this.openDragLock=function(a){if("x"===a||"y"===a)if(jy[a])return null;else return jy[a]=!0,()=>{jy[a]=!1};return jy.x||jy.y?null:(jy.x=jy.y=!0,()=>{jy.x=jy.y=!1})}(c),!this.openDragLock))return;this.latestPointerEvent=a,this.latestPanInfo=b,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),ju(a=>{let b=this.getAxisMotionValue(a).get()||0;if(fF.test(b)){let{projection:c}=this.visualElement;if(c&&c.layout){let d=c.layout.layoutBox[a];d&&(b=jz(d)*(parseFloat(b)/100))}}this.originPoint[a]=b}),e&&gB.postRender(()=>e(a,b)),h4(this.visualElement,"transform");let{animationState:f}=this.visualElement;f&&f.setActive("whileDrag",!0)},g=(a,b)=>{this.latestPointerEvent=a,this.latestPanInfo=b;let{dragPropagation:c,dragDirectionLock:d,onDirectionLock:e,onDrag:f}=this.getProps();if(!c&&!this.openDragLock)return;let{offset:g}=b;if(d&&null===this.currentDirection){this.currentDirection=function(a,b=10){let c=null;return Math.abs(a.y)>b?c="y":Math.abs(a.x)>b&&(c="x"),c}(g),null!==this.currentDirection&&e&&e(this.currentDirection);return}this.updateAxis("x",b.point,g),this.updateAxis("y",b.point,g),this.visualElement.render(),f&&f(a,b)},h=(a,b)=>{this.latestPointerEvent=a,this.latestPanInfo=b,this.stop(a,b),this.latestPointerEvent=null,this.latestPanInfo=null},i=()=>ju(a=>"paused"===this.getAnimationState(a)&&this.getAxisMotionValue(a).animation?.play()),{dragSnapToOrigin:j}=this.getProps();this.panSession=new jL(a,{onSessionStart:e,onStart:f,onMove:g,onSessionEnd:h,resumeAnimation:i},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:j,distanceThreshold:c,contextWindow:jI(this.visualElement),element:this.visualElement.current})}stop(a,b){let c=a||this.latestPointerEvent,d=b||this.latestPanInfo,e=this.isDragging;if(this.cancel(),!e||!d||!c)return;let{velocity:f}=d;this.startAnimation(f);let{onDragEnd:g}=this.getProps();g&&gB.postRender(()=>g(c,d))}cancel(){this.isDragging=!1;let{projection:a,animationState:b}=this.visualElement;a&&(a.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;let{dragPropagation:c}=this.getProps();!c&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),b&&b.setActive("whileDrag",!1)}updateAxis(a,b,c){let{drag:d}=this.getProps();if(!c||!jW(a,d,this.currentDirection))return;let e=this.getAxisMotionValue(a),f=this.originPoint[a]+c[a];this.constraints&&this.constraints[a]&&(f=function(a,{min:b,max:c},d){return void 0!==b&&a<b?a=d?ho(b,a,d.min):Math.max(a,b):void 0!==c&&a>c&&(a=d?ho(c,a,d.max):Math.min(a,c)),a}(f,this.constraints[a],this.elastic[a])),e.set(f)}resolveConstraints(){let{dragConstraints:a,dragElastic:b}=this.getProps(),c=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,d=this.constraints;a&&h$(a)?this.constraints||(this.constraints=this.resolveRefConstraints()):a&&c?this.constraints=function(a,{top:b,left:c,bottom:d,right:e}){return{x:jQ(a.x,c,e),y:jQ(a.y,b,d)}}(c.layoutBox,a):this.constraints=!1,this.elastic=function(a=.35){return!1===a?a=0:!0===a&&(a=.35),{x:jS(a,"left","right"),y:jS(a,"top","bottom")}}(b),d!==this.constraints&&c&&this.constraints&&!this.hasMutatedConstraints&&ju(a=>{var b,d;let e;!1!==this.constraints&&this.getAxisMotionValue(a)&&(this.constraints[a]=(b=c.layoutBox[a],d=this.constraints[a],e={},void 0!==d.min&&(e.min=d.min-b.min),void 0!==d.max&&(e.max=d.max-b.min),e))})}resolveRefConstraints(){var a;let{dragConstraints:b,onMeasureDragConstraints:c}=this.getProps();if(!b||!h$(b))return!1;let d=b.current;gb(null!==d,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");let{projection:e}=this.visualElement;if(!e||!e.layout)return!1;let f=function(a,b,c){let d=hF(a,c),{scroll:e}=b;return e&&(hC(d.x,e.offset.x),hC(d.y,e.offset.y)),d}(d,e.root,this.visualElement.getTransformPagePoint()),g=(a=e.layout.layoutBox,{x:jR(a.x,f.x),y:jR(a.y,f.y)});if(c){let a=c(function({x:a,y:b}){return{top:b.min,right:a.max,bottom:b.max,left:a.min}}(g));this.hasMutatedConstraints=!!a,a&&(g=hu(a))}return g}startAnimation(a){let{drag:b,dragMomentum:c,dragElastic:d,dragTransition:e,dragSnapToOrigin:f,onDragTransitionEnd:g}=this.getProps(),h=this.constraints||{};return Promise.all(ju(g=>{if(!jW(g,b,this.currentDirection))return;let i=h&&h[g]||{};f&&(i={min:0,max:0});let j={type:"inertia",velocity:c?a[g]:0,bounceStiffness:d?200:1e6,bounceDamping:d?40:1e7,timeConstant:750,restDelta:1,restSpeed:10,...e,...i};return this.startAxisValueAnimation(g,j)})).then(g)}startAxisValueAnimation(a,b){let c=this.getAxisMotionValue(a);return h4(this.visualElement,a),c.start(jj(a,c,0,b,this.visualElement,!1))}stopAnimation(){ju(a=>this.getAxisMotionValue(a).stop())}pauseAnimation(){ju(a=>this.getAxisMotionValue(a).animation?.pause())}getAnimationState(a){return this.getAxisMotionValue(a).animation?.state}getAxisMotionValue(a){let b=`_drag${a.toUpperCase()}`,c=this.visualElement.getProps();return c[b]||this.visualElement.getValue(a,(c.initial?c.initial[a]:void 0)||0)}snapToCursor(a){ju(b=>{let{drag:c}=this.getProps();if(!jW(b,c,this.currentDirection))return;let{projection:d}=this.visualElement,e=this.getAxisMotionValue(b);if(d&&d.layout){let{min:c,max:f}=d.layout.layoutBox[b],g=e.get()||0;e.set(a[b]-ho(c,f,.5)+g)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:a,dragConstraints:b}=this.getProps(),{projection:c}=this.visualElement;if(!h$(b)||!c||!this.constraints)return;this.stopAnimation();let d={x:0,y:0};ju(a=>{let b=this.getAxisMotionValue(a);if(b&&!1!==this.constraints){var c,e;let f,g,h,i=b.get();d[a]=(c={min:i,max:i},e=this.constraints[a],f=.5,g=jz(c),(h=jz(e))>g?f=iT(e.min,e.max-g,c.min):g>h&&(f=iT(c.min,c.max-h,e.min)),fr(0,1,f))}});let{transformTemplate:e}=this.visualElement.getProps();this.visualElement.current.style.transform=e?e({},""):"none",c.root&&c.root.updateScroll(),c.updateLayout(),this.resolveConstraints(),ju(b=>{if(!jW(b,a,null))return;let c=this.getAxisMotionValue(b),{min:e,max:f}=this.constraints[b];c.set(ho(e,f,d[b]))})}addListeners(){if(!this.visualElement.current)return;jU.set(this.visualElement,this);let a=jH(this.visualElement.current,"pointerdown",a=>{let{drag:b,dragListener:c=!0}=this.getProps();b&&c&&!jw(a.target)&&this.start(a)}),b=()=>{let{dragConstraints:a}=this.getProps();h$(a)&&a.current&&(this.constraints=this.resolveRefConstraints())},{projection:c}=this.visualElement,d=c.addEventListener("measure",b);c&&!c.layout&&(c.root&&c.root.updateScroll(),c.updateLayout()),gB.read(b);let e=jx(window,"resize",()=>this.scalePositionWithinConstraints()),f=c.addEventListener("didUpdate",({delta:a,hasLayoutChanged:b})=>{this.isDragging&&b&&(ju(b=>{let c=this.getAxisMotionValue(b);c&&(this.originPoint[b]+=a[b].translate,c.set(c.get()+a[b].translate))}),this.visualElement.render())});return()=>{e(),a(),d(),f&&f()}}getProps(){let a=this.visualElement.getProps(),{drag:b=!1,dragDirectionLock:c=!1,dragPropagation:d=!1,dragConstraints:e=!1,dragElastic:f=.35,dragMomentum:g=!0}=a;return{...a,drag:b,dragDirectionLock:c,dragPropagation:d,dragConstraints:e,dragElastic:f,dragMomentum:g}}}function jW(a,b,c){return(!0===b||b===a)&&(null===c||c===a)}let jX=a=>(b,c)=>{a&&gB.postRender(()=>a(b,c))},jY={hasAnimatedSinceResize:!0,hasEverUpdated:!1};var jZ=z;let j$=!1;class j_ extends jZ.Component{componentDidMount(){let{visualElement:a,layoutGroup:b,switchLayoutGroup:c,layoutId:d}=this.props,{projection:e}=a;e&&(b.group&&b.group.add(e),c&&c.register&&d&&c.register(e),j$&&e.root.didUpdate(),e.addEventListener("animationComplete",()=>{this.safeToRemove()}),e.setOptions({...e.options,onExitComplete:()=>this.safeToRemove()})),jY.hasEverUpdated=!0}getSnapshotBeforeUpdate(a){let{layoutDependency:b,visualElement:c,drag:d,isPresent:e}=this.props,{projection:f}=c;return f&&(f.isPresent=e,j$=!0,d||a.layoutDependency!==b||void 0===b||a.isPresent!==e?f.willUpdate():this.safeToRemove(),a.isPresent!==e&&(e?f.promote():f.relegate()||gB.postRender(()=>{let a=f.getStack();a&&a.members.length||this.safeToRemove()}))),null}componentDidUpdate(){let{projection:a}=this.props.visualElement;a&&(a.root.didUpdate(),gS.postRender(()=>{!a.currentAnimation&&a.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:a,layoutGroup:b,switchLayoutGroup:c}=this.props,{projection:d}=a;j$=!0,d&&(d.scheduleCheckAfterUnmount(),b&&b.group&&b.group.remove(d),c&&c.deregister&&c.deregister(d))}safeToRemove(){let{safeToRemove:a}=this.props;a&&a()}render(){return null}}function j0(a){let[b,c]=fl(),d=(0,jZ.useContext)(e8);return(0,y.jsx)(j_,{...a,layoutGroup:d,switchLayoutGroup:(0,jZ.useContext)(hZ),isPresent:b,safeToRemove:c})}function j1(a,b,c,d,e){return a-=b,a=d+1/c*(a-d),void 0!==e&&(a=d+1/e*(a-d)),a}function j2(a,b,[c,d,e],f,g){!function(a,b=0,c=1,d=.5,e,f=a,g=a){if(fF.test(b)&&(b=parseFloat(b),b=ho(g.min,g.max,b/100)-g.min),"number"!=typeof b)return;let h=ho(f.min,f.max,d);a===f&&(h-=b),a.min=j1(a.min,b,c,h,e),a.max=j1(a.max,b,c,h,e)}(a,b[c],b[d],b[e],b.scale,f,g)}let j3=["x","scaleX","originX"],j4=["y","scaleY","originY"];function j5(a,b,c,d){j2(a.x,b,j3,c?c.x:void 0,d?d.x:void 0),j2(a.y,b,j4,c?c.y:void 0,d?d.y:void 0)}function j6(a,b){a.min=b.min,a.max=b.max}function j7(a,b){j6(a.x,b.x),j6(a.y,b.y)}function j8(a,b){a.translate=b.translate,a.scale=b.scale,a.originPoint=b.originPoint,a.origin=b.origin}function j9(a){return 0===a.translate&&1===a.scale}function ka(a){return j9(a.x)&&j9(a.y)}function kb(a,b){return a.min===b.min&&a.max===b.max}function kc(a,b){return Math.round(a.min)===Math.round(b.min)&&Math.round(a.max)===Math.round(b.max)}function kd(a,b){return kc(a.x,b.x)&&kc(a.y,b.y)}function ke(a){return jz(a.x)/jz(a.y)}function kf(a,b){return a.translate===b.translate&&a.scale===b.scale&&a.originPoint===b.originPoint}let kg=["TopLeft","TopRight","BottomLeft","BottomRight"],kh=kg.length,ki=a=>"string"==typeof a?parseFloat(a):a,kj=a=>"number"==typeof a||fG.test(a);function kk(a,b){return void 0!==a[b]?a[b]:a.borderRadius}let kl=kn(0,.5,iO),km=kn(.5,.95,gx);function kn(a,b,c){return d=>d<a?0:d>b?1:c(iT(a,b,d))}function ko(a){return fc(a)&&"ownerSVGElement"in a}let kp=(a,b)=>a.depth-b.depth;class kq{constructor(){this.children=[],this.isDirty=!1}add(a){gP(this.children,a),this.isDirty=!0}remove(a){gQ(this.children,a),this.isDirty=!0}forEach(a){this.isDirty&&this.children.sort(kp),this.isDirty=!1,this.children.forEach(a)}}class kr{constructor(){this.members=[]}add(a){gP(this.members,a),a.scheduleRender()}remove(a){if(gQ(this.members,a),a===this.prevLead&&(this.prevLead=void 0),a===this.lead){let a=this.members[this.members.length-1];a&&this.promote(a)}}relegate(a){let b,c=this.members.findIndex(b=>a===b);if(0===c)return!1;for(let a=c;a>=0;a--){let c=this.members[a];if(!1!==c.isPresent){b=c;break}}return!!b&&(this.promote(b),!0)}promote(a,b){let c=this.lead;if(a!==c&&(this.prevLead=c,this.lead=a,a.show(),c)){c.instance&&c.scheduleRender(),a.scheduleRender(),a.resumeFrom=c,b&&(a.resumeFrom.preserveOpacity=!0),c.snapshot&&(a.snapshot=c.snapshot,a.snapshot.latestValues=c.animationValues||c.latestValues),a.root&&a.root.isUpdating&&(a.isLayoutDirty=!0);let{crossfade:d}=a.options;!1===d&&c.hide()}}exitAnimationComplete(){this.members.forEach(a=>{let{options:b,resumingFrom:c}=a;b.onExitComplete&&b.onExitComplete(),c&&c.options.onExitComplete&&c.options.onExitComplete()})}scheduleRender(){this.members.forEach(a=>{a.instance&&a.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}let ks=["","X","Y","Z"],kt=0;function ku(a,b,c,d){let{latestValues:e}=b;e[a]&&(c[a]=e[a],b.setStaticValue(a,0),d&&(d[a]=0))}function kv({attachResizeListener:a,defaultParent:b,measureScroll:c,checkIsScrollRoot:d,resetTransform:e}){return class{constructor(a={},c=b?.()){this.id=kt++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(ky),this.nodes.forEach(kF),this.nodes.forEach(kG),this.nodes.forEach(kz)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=a,this.root=c?c.root||c:this,this.path=c?[...c.path,c]:[],this.parent=c,this.depth=c?c.depth+1:0;for(let a=0;a<this.path.length;a++)this.path[a].shouldResetTransform=!0;this.root===this&&(this.nodes=new kq)}addEventListener(a,b){return this.eventHandlers.has(a)||this.eventHandlers.set(a,new gR),this.eventHandlers.get(a).add(b)}notifyListeners(a,...b){let c=this.eventHandlers.get(a);c&&c.notify(...b)}hasListeners(a){return this.eventHandlers.has(a)}mount(b){if(this.instance)return;this.isSVG=ko(b)&&!(ko(b)&&"svg"===b.tagName),this.instance=b;let{layoutId:c,layout:d,visualElement:e}=this.options;if(e&&!e.current&&e.mount(b),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(d||c)&&(this.isLayoutDirty=!0),a){let c,d=0,e=()=>this.root.updateBlockedByResize=!1;gB.read(()=>{d=window.innerWidth}),a(b,()=>{let a=window.innerWidth;if(a!==d){let b,f;d=a,this.root.updateBlockedByResize=!0,c&&c(),b=gU.now(),f=({timestamp:a})=>{let c=a-b;c>=250&&(gC(f),e(c-250))},gB.setup(f,!0),c=()=>gC(f),jY.hasAnimatedSinceResize&&(jY.hasAnimatedSinceResize=!1,this.nodes.forEach(kE))}})}c&&this.root.registerSharedNode(c,this),!1!==this.options.animate&&e&&(c||d)&&this.addEventListener("didUpdate",({delta:a,hasLayoutChanged:b,hasRelativeLayoutChanged:c,layout:d})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let f=this.options.transition||e.getDefaultTransition()||kM,{onLayoutAnimationStart:g,onLayoutAnimationComplete:h}=e.getProps(),i=!this.targetLayout||!kd(this.targetLayout,d),j=!b&&c;if(this.options.layoutRoot||this.resumeFrom||j||b&&(i||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let b={...h2(f,"layout"),onPlay:g,onComplete:h};(e.shouldReduceMotion||this.options.layoutRoot)&&(b.delay=0,b.type=!1),this.startAnimation(b),this.setAnimationOrigin(a,j)}else b||kE(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=d})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let a=this.getStack();a&&a.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),gC(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){!this.isUpdateBlocked()&&(this.isUpdating=!0,this.nodes&&this.nodes.forEach(kH),this.animationId++)}getTransformTemplate(){let{visualElement:a}=this.options;return a&&a.getProps().transformTemplate}willUpdate(a=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&function a(b){if(b.hasCheckedOptimisedAppear=!0,b.root===b)return;let{visualElement:c}=b.options;if(!c)return;let d=c.props[hY];if(window.MotionHasOptimisedAnimation(d,"transform")){let{layout:a,layoutId:c}=b.options;window.MotionCancelOptimisedAnimation(d,"transform",gB,!(a||c))}let{parent:e}=b;e&&!e.hasCheckedOptimisedAppear&&a(e)}(this),this.root.isUpdating||this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let a=0;a<this.path.length;a++){let b=this.path[a];b.shouldResetTransform=!0,b.updateScroll("snapshot"),b.options.layoutRoot&&b.willUpdate(!1)}let{layoutId:b,layout:c}=this.options;if(void 0===b&&!c)return;let d=this.getTransformTemplate();this.prevTransformTemplateValue=d?d(this.latestValues,""):void 0,this.updateSnapshot(),a&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(kB);return}if(this.animationId<=this.animationCommitId)return void this.nodes.forEach(kC);this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(kD),this.nodes.forEach(kw),this.nodes.forEach(kx)):this.nodes.forEach(kC),this.clearAllSnapshots();let a=gU.now();gD.delta=fr(0,1e3/60,a-gD.timestamp),gD.timestamp=a,gD.isProcessing=!0,gE.update.process(gD),gE.preRender.process(gD),gE.render.process(gD),gD.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,gS.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(kA),this.sharedNodes.forEach(kI)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,gB.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){gB.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){!this.snapshot&&this.instance&&(this.snapshot=this.measure(),!this.snapshot||jz(this.snapshot.measuredBox.x)||jz(this.snapshot.measuredBox.y)||(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let a=0;a<this.path.length;a++)this.path[a].updateScroll();let a=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected=f4(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);let{visualElement:b}=this.options;b&&b.notify("LayoutMeasure",this.layout.layoutBox,a?a.layoutBox:void 0)}updateScroll(a="measure"){let b=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===a&&(b=!1),b&&this.instance){let b=d(this.instance);this.scroll={animationId:this.root.animationId,phase:a,isRoot:b,offset:c(this.instance),wasRoot:this.scroll?this.scroll.isRoot:b}}}resetTransform(){if(!e)return;let a=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,b=this.projectionDelta&&!ka(this.projectionDelta),c=this.getTransformTemplate(),d=c?c(this.latestValues,""):void 0,f=d!==this.prevTransformTemplateValue;a&&this.instance&&(b||hx(this.latestValues)||f)&&(e(this.instance,d),this.shouldResetTransform=!1,this.scheduleRender())}measure(a=!0){var b;let c=this.measurePageBox(),d=this.removeElementScroll(c);return a&&(d=this.removeTransform(d)),kP((b=d).x),kP(b.y),{animationId:this.root.animationId,measuredBox:c,layoutBox:d,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:a}=this.options;if(!a)return f4();let b=a.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(kR))){let{scroll:a}=this.root;a&&(hC(b.x,a.offset.x),hC(b.y,a.offset.y))}return b}removeElementScroll(a){let b=f4();if(j7(b,a),this.scroll?.wasRoot)return b;for(let c=0;c<this.path.length;c++){let d=this.path[c],{scroll:e,options:f}=d;d!==this.root&&e&&f.layoutScroll&&(e.wasRoot&&j7(b,a),hC(b.x,e.offset.x),hC(b.y,e.offset.y))}return b}applyTransform(a,b=!1){let c=f4();j7(c,a);for(let a=0;a<this.path.length;a++){let d=this.path[a];!b&&d.options.layoutScroll&&d.scroll&&d!==d.root&&hE(c,{x:-d.scroll.offset.x,y:-d.scroll.offset.y}),hx(d.latestValues)&&hE(c,d.latestValues)}return hx(this.latestValues)&&hE(c,this.latestValues),c}removeTransform(a){let b=f4();j7(b,a);for(let a=0;a<this.path.length;a++){let c=this.path[a];if(!c.instance||!hx(c.latestValues))continue;hw(c.latestValues)&&c.updateSnapshot();let d=f4();j7(d,c.measurePageBox()),j5(b,c.latestValues,c.snapshot?c.snapshot.layoutBox:void 0,d)}return hx(this.latestValues)&&j5(b,this.latestValues),b}setTargetDelta(a){this.targetDelta=a,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(a){this.options={...this.options,...a,crossfade:void 0===a.crossfade||a.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==gD.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(a=!1){let b=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=b.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=b.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=b.isSharedProjectionDirty);let c=!!this.resumingFrom||this!==b;if(!(a||c&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:d,layoutId:e}=this.options;if(!this.layout||!(d||e))return;this.resolvedRelativeTargetAt=gD.timestamp;let f=this.getClosestProjectingParent();if(f&&this.linkedParentVersion!==f.layoutVersion&&!f.options.layoutRoot&&this.removeRelativeTarget(),this.targetDelta||this.relativeTarget||(f&&f.layout?this.createRelativeTarget(f,this.layout.layoutBox,f.layout.layoutBox):this.removeRelativeTarget()),this.relativeTarget||this.targetDelta){if(this.target||(this.target=f4(),this.targetWithTransforms=f4()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target){var g,h,i;this.forceRelativeParentToResolveTarget(),g=this.target,h=this.relativeTarget,i=this.relativeParent.target,jC(g.x,h.x,i.x),jC(g.y,h.y,i.y)}else this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):j7(this.target,this.layout.layoutBox),hB(this.target,this.targetDelta)):j7(this.target,this.layout.layoutBox);this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,f&&!!f.resumingFrom==!!this.resumingFrom&&!f.options.layoutScroll&&f.target&&1!==this.animationProgress?this.createRelativeTarget(f,this.target,f.target):this.relativeParent=this.relativeTarget=void 0)}}getClosestProjectingParent(){if(!(!this.parent||hw(this.parent.latestValues)||hy(this.parent.latestValues)))if(this.parent.isProjecting())return this.parent;else return this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(a,b,c){this.relativeParent=a,this.linkedParentVersion=a.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=f4(),this.relativeTargetOrigin=f4(),jE(this.relativeTargetOrigin,b,c),j7(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let a=this.getLead(),b=!!this.resumingFrom||this!==a,c=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(c=!1),b&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(c=!1),this.resolvedRelativeTargetAt===gD.timestamp&&(c=!1),c)return;let{layout:d,layoutId:e}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(d||e))return;j7(this.layoutCorrected,this.layout.layoutBox);let f=this.treeScale.x,g=this.treeScale.y;!function(a,b,c,d=!1){let e,f,g=c.length;if(g){b.x=b.y=1;for(let h=0;h<g;h++){f=(e=c[h]).projectionDelta;let{visualElement:g}=e.options;(!g||!g.props.style||"contents"!==g.props.style.display)&&(d&&e.options.layoutScroll&&e.scroll&&e!==e.root&&hE(a,{x:-e.scroll.offset.x,y:-e.scroll.offset.y}),f&&(b.x*=f.x.scale,b.y*=f.y.scale,hB(a,f)),d&&hx(e.latestValues)&&hE(a,e.latestValues))}b.x<1.0000000000001&&b.x>.999999999999&&(b.x=1),b.y<1.0000000000001&&b.y>.999999999999&&(b.y=1)}}(this.layoutCorrected,this.treeScale,this.path,b),a.layout&&!a.target&&(1!==this.treeScale.x||1!==this.treeScale.y)&&(a.target=a.layout.layoutBox,a.targetWithTransforms=f4());let{target:h}=a;if(!h){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}this.projectionDelta&&this.prevProjectionDelta?(j8(this.prevProjectionDelta.x,this.projectionDelta.x),j8(this.prevProjectionDelta.y,this.projectionDelta.y)):this.createProjectionDeltas(),jB(this.projectionDelta,this.layoutCorrected,h,this.latestValues),this.treeScale.x===f&&this.treeScale.y===g&&kf(this.projectionDelta.x,this.prevProjectionDelta.x)&&kf(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",h))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(a=!0){if(this.options.visualElement?.scheduleRender(),a){let a=this.getStack();a&&a.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=f2(),this.projectionDelta=f2(),this.projectionDeltaWithTransform=f2()}setAnimationOrigin(a,b=!1){let c,d=this.snapshot,e=d?d.latestValues:{},f={...this.latestValues},g=f2();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!b;let h=f4(),i=(d?d.source:void 0)!==(this.layout?this.layout.source:void 0),j=this.getStack(),k=!j||j.members.length<=1,l=!!(i&&!k&&!0===this.options.crossfade&&!this.path.some(kL));this.animationProgress=0,this.mixTargetDelta=b=>{let d=b/1e3;if(kJ(g.x,a.x,d),kJ(g.y,a.y,d),this.setTargetDelta(g),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout){var j,m,n,o,p,q;jE(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),n=this.relativeTarget,o=this.relativeTargetOrigin,p=h,q=d,kK(n.x,o.x,p.x,q),kK(n.y,o.y,p.y,q),c&&(j=this.relativeTarget,m=c,kb(j.x,m.x)&&kb(j.y,m.y))&&(this.isProjectionDirty=!1),c||(c=f4()),j7(c,this.relativeTarget)}i&&(this.animationValues=f,function(a,b,c,d,e,f){e?(a.opacity=ho(0,c.opacity??1,kl(d)),a.opacityExit=ho(b.opacity??1,0,km(d))):f&&(a.opacity=ho(b.opacity??1,c.opacity??1,d));for(let e=0;e<kh;e++){let f=`border${kg[e]}Radius`,g=kk(b,f),h=kk(c,f);(void 0!==g||void 0!==h)&&(g||(g=0),h||(h=0),0===g||0===h||kj(g)===kj(h)?(a[f]=Math.max(ho(ki(g),ki(h),d),0),(fF.test(h)||fF.test(g))&&(a[f]+="%")):a[f]=h)}(b.rotate||c.rotate)&&(a.rotate=ho(b.rotate||0,c.rotate||0,d))}(f,e,this.latestValues,d,l,k)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=d},this.mixTargetDelta(1e3*!!this.options.layoutRoot)}startAnimation(a){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(gC(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=gB.update(()=>{var b,c,d;let e;jY.hasAnimatedSinceResize=!0,h8.layout++,this.motionValue||(this.motionValue=gW(0)),this.currentAnimation=(b=this.motionValue,c=[0,1e3],d={...a,velocity:0,isSync:!0,onUpdate:b=>{this.mixTargetDelta(b),a.onUpdate&&a.onUpdate(b)},onStop:()=>{h8.layout--},onComplete:()=>{h8.layout--,a.onComplete&&a.onComplete(),this.completeAnimation()}},(e=f5(b)?b:gW(b)).start(jj("",e,c,d)),e.animation),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let a=this.getStack();a&&a.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(1e3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let a=this.getLead(),{targetWithTransforms:b,target:c,layout:d,latestValues:e}=a;if(b&&c&&d){if(this!==a&&this.layout&&d&&kQ(this.options.animationType,this.layout.layoutBox,d.layoutBox)){c=this.target||f4();let b=jz(this.layout.layoutBox.x);c.x.min=a.target.x.min,c.x.max=c.x.min+b;let d=jz(this.layout.layoutBox.y);c.y.min=a.target.y.min,c.y.max=c.y.min+d}j7(b,c),hE(b,e),jB(this.projectionDeltaWithTransform,this.layoutCorrected,b,e)}}registerSharedNode(a,b){this.sharedNodes.has(a)||this.sharedNodes.set(a,new kr),this.sharedNodes.get(a).add(b);let c=b.options.initialPromotionConfig;b.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(b):void 0})}isLead(){let a=this.getStack();return!a||a.lead===this}getLead(){let{layoutId:a}=this.options;return a&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:a}=this.options;return a?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:a}=this.options;if(a)return this.root.sharedNodes.get(a)}promote({needsReset:a,transition:b,preserveFollowOpacity:c}={}){let d=this.getStack();d&&d.promote(this,c),a&&(this.projectionDelta=void 0,this.needsReset=!0),b&&this.setOptions({transition:b})}relegate(){let a=this.getStack();return!!a&&a.relegate(this)}resetSkewAndRotation(){let{visualElement:a}=this.options;if(!a)return;let b=!1,{latestValues:c}=a;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(b=!0),!b)return;let d={};c.z&&ku("z",a,d,this.animationValues);for(let b=0;b<ks.length;b++)ku(`rotate${ks[b]}`,a,d,this.animationValues),ku(`skew${ks[b]}`,a,d,this.animationValues);for(let b in a.render(),d)a.setStaticValue(b,d[b]),this.animationValues&&(this.animationValues[b]=d[b]);a.scheduleRender()}applyProjectionStyles(a,b){if(!this.instance||this.isSVG)return;if(!this.isVisible){a.visibility="hidden";return}let c=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,a.visibility="",a.opacity="",a.pointerEvents=hR(b?.pointerEvents)||"",a.transform=c?c(this.latestValues,""):"none";return}let d=this.getLead();if(!this.projectionDelta||!this.layout||!d.target){this.options.layoutId&&(a.opacity=void 0!==this.latestValues.opacity?this.latestValues.opacity:1,a.pointerEvents=hR(b?.pointerEvents)||""),this.hasProjected&&!hx(this.latestValues)&&(a.transform=c?c({},""):"none",this.hasProjected=!1);return}a.visibility="";let e=d.animationValues||d.latestValues;this.applyTransformsToTarget();let f=function(a,b,c){let d="",e=a.x.translate/b.x,f=a.y.translate/b.y,g=c?.z||0;if((e||f||g)&&(d=`translate3d(${e}px, ${f}px, ${g}px) `),(1!==b.x||1!==b.y)&&(d+=`scale(${1/b.x}, ${1/b.y}) `),c){let{transformPerspective:a,rotate:b,rotateX:e,rotateY:f,skewX:g,skewY:h}=c;a&&(d=`perspective(${a}px) ${d}`),b&&(d+=`rotate(${b}deg) `),e&&(d+=`rotateX(${e}deg) `),f&&(d+=`rotateY(${f}deg) `),g&&(d+=`skewX(${g}deg) `),h&&(d+=`skewY(${h}deg) `)}let h=a.x.scale*b.x,i=a.y.scale*b.y;return(1!==h||1!==i)&&(d+=`scale(${h}, ${i})`),d||"none"}(this.projectionDeltaWithTransform,this.treeScale,e);c&&(f=c(e,f)),a.transform=f;let{x:g,y:h}=this.projectionDelta;for(let b in a.transformOrigin=`${100*g.origin}% ${100*h.origin}% 0`,d.animationValues?a.opacity=d===this?e.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:e.opacityExit:a.opacity=d===this?void 0!==e.opacity?e.opacity:"":void 0!==e.opacityExit?e.opacityExit:0,hp){if(void 0===e[b])continue;let{correct:c,applyTo:g,isCSSVariable:h}=hp[b],i="none"===f?e[b]:c(e[b],d);if(g){let b=g.length;for(let c=0;c<b;c++)a[g[c]]=i}else h?this.options.visualElement.renderState.vars[b]=i:a[b]=i}this.options.layoutId&&(a.pointerEvents=d===this?hR(b?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(a=>a.currentAnimation?.stop()),this.root.nodes.forEach(kB),this.root.sharedNodes.clear()}}}function kw(a){a.updateLayout()}function kx(a){let b=a.resumeFrom?.snapshot||a.snapshot;if(a.isLead()&&a.layout&&b&&a.hasListeners("didUpdate")){let{layoutBox:c,measuredBox:d}=a.layout,{animationType:e}=a.options,f=b.source!==a.layout.source;"size"===e?ju(a=>{let d=f?b.measuredBox[a]:b.layoutBox[a],e=jz(d);d.min=c[a].min,d.max=d.min+e}):kQ(e,b.layoutBox,c)&&ju(d=>{let e=f?b.measuredBox[d]:b.layoutBox[d],g=jz(c[d]);e.max=e.min+g,a.relativeTarget&&!a.currentAnimation&&(a.isProjectionDirty=!0,a.relativeTarget[d].max=a.relativeTarget[d].min+g)});let g=f2();jB(g,c,b.layoutBox);let h=f2();f?jB(h,a.applyTransform(d,!0),b.measuredBox):jB(h,c,b.layoutBox);let i=!ka(g),j=!1;if(!a.resumeFrom){let d=a.getClosestProjectingParent();if(d&&!d.resumeFrom){let{snapshot:e,layout:f}=d;if(e&&f){let g=f4();jE(g,b.layoutBox,e.layoutBox);let h=f4();jE(h,c,f.layoutBox),kd(g,h)||(j=!0),d.options.layoutRoot&&(a.relativeTarget=h,a.relativeTargetOrigin=g,a.relativeParent=d)}}}a.notifyListeners("didUpdate",{layout:c,snapshot:b,delta:h,layoutDelta:g,hasLayoutChanged:i,hasRelativeLayoutChanged:j})}else if(a.isLead()){let{onExitComplete:b}=a.options;b&&b()}a.options.transition=void 0}function ky(a){a.parent&&(a.isProjecting()||(a.isProjectionDirty=a.parent.isProjectionDirty),a.isSharedProjectionDirty||(a.isSharedProjectionDirty=!!(a.isProjectionDirty||a.parent.isProjectionDirty||a.parent.isSharedProjectionDirty)),a.isTransformDirty||(a.isTransformDirty=a.parent.isTransformDirty))}function kz(a){a.isProjectionDirty=a.isSharedProjectionDirty=a.isTransformDirty=!1}function kA(a){a.clearSnapshot()}function kB(a){a.clearMeasurements()}function kC(a){a.isLayoutDirty=!1}function kD(a){let{visualElement:b}=a.options;b&&b.getProps().onBeforeLayoutMeasure&&b.notify("BeforeLayoutMeasure"),a.resetTransform()}function kE(a){a.finishAnimation(),a.targetDelta=a.relativeTarget=a.target=void 0,a.isProjectionDirty=!0}function kF(a){a.resolveTargetDelta()}function kG(a){a.calcProjection()}function kH(a){a.resetSkewAndRotation()}function kI(a){a.removeLeadSnapshot()}function kJ(a,b,c){a.translate=ho(b.translate,0,c),a.scale=ho(b.scale,1,c),a.origin=b.origin,a.originPoint=b.originPoint}function kK(a,b,c,d){a.min=ho(b.min,c.min,d),a.max=ho(b.max,c.max,d)}function kL(a){return a.animationValues&&void 0!==a.animationValues.opacityExit}let kM={duration:.45,ease:[.4,0,.1,1]},kN=a=>"u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(a),kO=kN("applewebkit/")&&!kN("chrome/")?Math.round:gx;function kP(a){a.min=kO(a.min),a.max=kO(a.max)}function kQ(a,b,c){return"position"===a||"preserve-aspect"===a&&!(.2>=Math.abs(ke(b)-ke(c)))}function kR(a){return a!==a.root&&a.scroll?.wasRoot}let kS=kv({attachResizeListener:(a,b)=>jx(a,"resize",b),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),kT={current:void 0},kU=kv({measureScroll:a=>({x:a.scrollLeft,y:a.scrollTop}),defaultParent:()=>{if(!kT.current){let a=new kS({});a.mount(window),a.setOptions({layoutScroll:!0}),kT.current=a}return kT.current},resetTransform:(a,b)=>{a.style.transform=void 0!==b?b:"none"},checkIsScrollRoot:a=>"fixed"===window.getComputedStyle(a).position});function kV(a,b){let c=function(a,b,c){if(a instanceof EventTarget)return[a];if("string"==typeof a){let b=document,c=(void 0)??b.querySelectorAll(a);return c?Array.from(c):[]}return Array.from(a)}(a),d=new AbortController;return[c,{passive:!0,...b,signal:d.signal},()=>d.abort()]}function kW(a){return!("touch"===a.pointerType||jy.x||jy.y)}function kX(a,b,c){let{props:d}=a;a.animationState&&d.whileHover&&a.animationState.setActive("whileHover","Start"===c);let e=d["onHover"+c];e&&gB.postRender(()=>e(b,jG(b)))}let kY=(a,b)=>!!b&&(a===b||kY(a,b.parentElement)),kZ=new WeakSet;function k$(a){return b=>{"Enter"===b.key&&a(b)}}function k_(a,b){a.dispatchEvent(new PointerEvent("pointer"+b,{isPrimary:!0,bubbles:!0}))}function k0(a){return jF(a)&&!(jy.x||jy.y)}function k1(a,b,c){let{props:d}=a;if(a.current instanceof HTMLButtonElement&&a.current.disabled)return;a.animationState&&d.whileTap&&a.animationState.setActive("whileTap","Start"===c);let e=d["onTap"+("End"===c?"":c)];e&&gB.postRender(()=>e(b,jG(b)))}let k2=new WeakMap,k3=new WeakMap,k4=a=>{let b=k2.get(a.target);b&&b(a)},k5=a=>{a.forEach(k4)},k6={some:0,all:1},k7=function(a,b){if("u"<typeof Proxy)return h_;let c=new Map,d=(c,d)=>h_(c,d,a,b);return new Proxy((a,b)=>d(a,b),{get:(e,f)=>"create"===f?d:(c.has(f)||c.set(f,h_(f,void 0,a,b)),c.get(f))})}({animation:{Feature:class extends h0{constructor(a){super(a),a.animationState||(a.animationState=function(a){let b=b=>Promise.all(b.map(({animation:b,options:c})=>(function(a,b,c={}){let d;if(a.notify("AnimationStart",b),Array.isArray(b))d=Promise.all(b.map(b=>jm(a,b,c)));else if("string"==typeof b)d=jm(a,b,c);else{let e="function"==typeof b?h1(a,b,c.custom):b;d=Promise.all(jk(a,e,c))}return d.then(()=>{a.notify("AnimationComplete",b)})})(a,b,c))),c=js(),d=!0,e=b=>(c,d)=>{let e=h1(a,d,"exit"===b?a.presenceContext?.custom:void 0);if(e){let{transition:a,transitionEnd:b,...d}=e;c={...c,...d,...b}}return c};function f(f){let{props:g}=a,h=function a(b){if(!b)return;if(!b.isControllingVariants){let c=b.parent&&a(b.parent)||{};return void 0!==b.props.initial&&(c.initial=b.props.initial),c}let c={};for(let a=0;a<jn;a++){let d=g1[a],e=b.props[d];(g_(e)||!1===e)&&(c[d]=e)}return c}(a.parent)||{},i=[],j=new Set,k={},l=1/0;for(let b=0;b<jq;b++){var m,n;let o=jp[b],p=c[o],q=void 0!==g[o]?g[o]:h[o],r=g_(q),s=o===f?p.isActive:null;!1===s&&(l=b);let t=q===h[o]&&q!==g[o]&&r;if(t&&d&&a.manuallyAnimateOnMount&&(t=!1),p.protectedKeys={...k},!p.isActive&&null===s||!q&&!p.prevProp||g$(q)||"boolean"==typeof q)continue;let u=(m=p.prevProp,"string"==typeof(n=q)?n!==m:!!Array.isArray(n)&&!jo(n,m)),v=u||o===f&&p.isActive&&!t&&r||b>l&&r,w=!1,x=Array.isArray(q)?q:[q],y=x.reduce(e(o),{});!1===s&&(y={});let{prevResolvedValues:z={}}=p,A={...z,...y},B=b=>{v=!0,j.has(b)&&(w=!0,j.delete(b)),p.needsAnimating[b]=!0;let c=a.getValue(b);c&&(c.liveStyle=!1)};for(let a in A){let b=y[a],c=z[a];if(!k.hasOwnProperty(a))(h3(b)&&h3(c)?jo(b,c):b===c)?void 0!==b&&j.has(a)?B(a):p.protectedKeys[a]=!0:null!=b?B(a):j.add(a)}p.prevProp=q,p.prevResolvedValues=y,p.isActive&&(k={...k,...y}),d&&a.blockInitialAnimation&&(v=!1);let C=t&&u,D=!C||w;v&&D&&i.push(...x.map(b=>{let c={type:o};if("string"==typeof b&&d&&!C&&a.manuallyAnimateOnMount&&a.parent){let{parent:d}=a,e=h1(d,b);if(d.enteringChildren&&e){let{delayChildren:b}=e.transition||{};c.delay=jl(d.enteringChildren,a,b)}}return{animation:b,options:c}}))}if(j.size){let b={};if("boolean"!=typeof g.initial){let c=h1(a,Array.isArray(g.initial)?g.initial[0]:g.initial);c&&c.transition&&(b.transition=c.transition)}j.forEach(c=>{let d=a.getBaseTarget(c),e=a.getValue(c);e&&(e.liveStyle=!0),b[c]=d??null}),i.push({animation:b})}let o=!!i.length;return d&&(!1===g.initial||g.initial===g.animate)&&!a.manuallyAnimateOnMount&&(o=!1),d=!1,o?b(i):Promise.resolve()}return{animateChanges:f,setActive:function(b,d){if(c[b].isActive===d)return Promise.resolve();a.variantChildren?.forEach(a=>a.animationState?.setActive(b,d)),c[b].isActive=d;let e=f(b);for(let a in c)c[a].protectedKeys={};return e},setAnimateFunction:function(c){b=c(a)},getState:()=>c,reset:()=>{c=js()}}}(a))}updateAnimationControlsSubscription(){let{animate:a}=this.node.getProps();g$(a)&&(this.unmountControls=a.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:a}=this.node.getProps(),{animate:b}=this.node.prevProps||{};a!==b&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}},exit:{Feature:class extends h0{constructor(){super(...arguments),this.id=jt++}update(){if(!this.node.presenceContext)return;let{isPresent:a,onExitComplete:b}=this.node.presenceContext,{isPresent:c}=this.node.prevPresenceContext||{};if(!this.node.animationState||a===c)return;let d=this.node.animationState.setActive("exit",!a);b&&!a&&d.then(()=>{b(this.id)})}mount(){let{register:a,onExitComplete:b}=this.node.presenceContext||{};b&&b(this.id),a&&(this.unmount=a(this.id))}unmount(){}}},inView:{Feature:class extends h0{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var a;let b;this.unmount();let{viewport:c={}}=this.node.getProps(),{root:d,margin:e,amount:f="some",once:g}=c,h={root:d?d.current:void 0,rootMargin:e,threshold:"number"==typeof f?f:k6[f]},i=a=>{let{isIntersecting:b}=a;if(this.isInView===b||(this.isInView=b,g&&!b&&this.hasEnteredView))return;b&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",b);let{onViewportEnter:c,onViewportLeave:d}=this.node.getProps(),e=b?c:d;e&&e(a)};return a=this.node.current,b=function({root:a,...b}){let c=a||document;k3.has(c)||k3.set(c,{});let d=k3.get(c),e=JSON.stringify(b);return d[e]||(d[e]=new IntersectionObserver(k5,{root:a,...b})),d[e]}(h),k2.set(a,i),b.observe(a),()=>{k2.delete(a),b.unobserve(a)}}mount(){this.startObserver()}update(){if("u"<typeof IntersectionObserver)return;let{props:a,prevProps:b}=this.node;["amount","margin","root"].some(function({viewport:a={}},{viewport:b={}}={}){return c=>a[c]!==b[c]}(a,b))&&this.startObserver()}unmount(){}}},tap:{Feature:class extends h0{mount(){let{current:a}=this.node;a&&(this.unmount=function(a,b,c={}){let[d,e,f]=kV(a,c),g=a=>{let d=a.currentTarget;if(!k0(a))return;kZ.add(d);let f=b(d,a),g=(a,b)=>{window.removeEventListener("pointerup",h),window.removeEventListener("pointercancel",i),kZ.has(d)&&kZ.delete(d),k0(a)&&"function"==typeof f&&f(a,{success:b})},h=a=>{g(a,d===window||d===document||c.useGlobalTarget||kY(d,a.target))},i=a=>{g(a,!1)};window.addEventListener("pointerup",h,e),window.addEventListener("pointercancel",i,e)};return d.forEach(a=>{(c.useGlobalTarget?window:a).addEventListener("pointerdown",g,e),fd(a)&&(a.addEventListener("focus",a=>((a,b)=>{let c=a.currentTarget;if(!c)return;let d=k$(()=>{if(kZ.has(c))return;k_(c,"down");let a=k$(()=>{k_(c,"up")});c.addEventListener("keyup",a,b),c.addEventListener("blur",()=>k_(c,"cancel"),b)});c.addEventListener("keydown",d,b),c.addEventListener("blur",()=>c.removeEventListener("keydown",d),b)})(a,e)),jw(a)||a.hasAttribute("tabindex")||(a.tabIndex=0))}),f}(a,(a,b)=>(k1(this.node,b,"Start"),(a,{success:b})=>k1(this.node,a,b?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}},focus:{Feature:class extends h0{constructor(){super(...arguments),this.isActive=!1}onFocus(){let a=!1;try{a=this.node.current.matches(":focus-visible")}catch(b){a=!0}a&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){this.isActive&&this.node.animationState&&(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=h7(jx(this.node.current,"focus",()=>this.onFocus()),jx(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}},hover:{Feature:class extends h0{mount(){let{current:a}=this.node;a&&(this.unmount=function(a,b,c={}){let[d,e,f]=kV(a,c),g=a=>{if(!kW(a))return;let{target:c}=a,d=b(c,a);if("function"!=typeof d||!c)return;let f=a=>{kW(a)&&(d(a),c.removeEventListener("pointerleave",f))};c.addEventListener("pointerleave",f,e)};return d.forEach(a=>{a.addEventListener("pointerenter",g,e)}),f}(a,(a,b)=>(kX(this.node,b,"Start"),a=>kX(this.node,a,"End"))))}unmount(){}}},pan:{Feature:class extends h0{constructor(){super(...arguments),this.removePointerDownListener=gx}onPointerDown(a){this.session=new jL(a,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:jI(this.node)})}createPanHandlers(){let{onPanSessionStart:a,onPanStart:b,onPan:c,onPanEnd:d}=this.node.getProps();return{onSessionStart:jX(a),onStart:jX(b),onMove:c,onEnd:(a,b)=>{delete this.session,d&&gB.postRender(()=>d(a,b))}}}mount(){this.removePointerDownListener=jH(this.node.current,"pointerdown",a=>this.onPointerDown(a))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}},drag:{Feature:class extends h0{constructor(a){super(a),this.removeGroupControls=gx,this.removeListeners=gx,this.controls=new jV(a)}mount(){let{dragControls:a}=this.node.getProps();a&&(this.removeGroupControls=a.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||gx}update(){let{dragControls:a}=this.node.getProps(),{dragControls:b}=this.node.prevProps||{};a!==b&&(this.removeGroupControls(),a&&(this.removeGroupControls=a.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners()}},ProjectionNode:kU,MeasureLayout:j0},layout:{ProjectionNode:kU,MeasureLayout:j0}},(a,b)=>b.isSVG??hI(a)?new ht(b):new hG(b,{allowProjection:a!==z.Fragment}));function k8(){let a=bc(a=>a._achievementQueue),b=bc(a=>a.consumeAchievementQueue),{toast:c}=(0,bJ.useToast)(),[d,e]=(0,z.useState)([]);return((0,z.useEffect)(()=>{if(0!==a.length)for(let a of b()){bO("achievement");let b=Date.now()+Math.random();e(c=>[...c,{achievement:a,id:b}]),setTimeout(()=>{e(a=>a.filter(a=>a.id!==b))},4e3),c({title:`成就解锁:${a.name}`,description:`${a.desc} 奖励:${a.rewardText}`})}},[a,b,c]),0===d.length)?null:(0,y.jsx)("div",{className:"fixed inset-0 z-[120] pointer-events-none flex items-center justify-center",children:(0,y.jsx)(fo,{children:d.map((a,b)=>{let c=a.achievement,e=(b-(d.length-1)/2)*140;return(0,y.jsx)(k7.div,{initial:{opacity:0,scale:.4,y:40,rotateX:-30},animate:{opacity:1,scale:1,y:e,rotateX:0},exit:{opacity:0,scale:.6,y:-60},transition:{type:"spring",stiffness:280,damping:22},className:"absolute",style:{transformOrigin:"center center"},children:(0,y.jsxs)("div",{className:"relative rounded-2xl border-2 px-8 py-5 backdrop-blur-xl overflow-hidden",style:{borderColor:c.color,background:`linear-gradient(135deg, ${c.color}22, rgba(5,4,16,0.92))`,boxShadow:`0 0 60px ${c.color}66, 0 0 120px ${c.color}33, inset 0 0 30px ${c.color}11`,minWidth:320,maxWidth:420},children:[(0,y.jsx)("div",{className:"absolute -top-20 -right-20 h-40 w-40 rounded-full blur-3xl opacity-50",style:{background:c.color}}),(0,y.jsx)(k7.div,{className:"absolute inset-0 rounded-2xl opacity-20",style:{background:`conic-gradient(from 0deg, transparent, ${c.color}, transparent, ${c.color}, transparent)`},animate:{rotate:360},transition:{duration:8,repeat:1/0,ease:"linear"}}),(0,y.jsxs)("div",{className:"relative flex items-center gap-4",children:[(0,y.jsx)(k7.div,{className:"shrink-0 h-16 w-16 rounded-2xl flex items-center justify-center text-3xl",style:{background:`${c.color}33`,border:`2px solid ${c.color}`,boxShadow:`0 0 20px ${c.color}88, inset 0 0 12px ${c.color}44`},animate:{boxShadow:[`0 0 20px ${c.color}88, inset 0 0 12px ${c.color}44`,`0 0 40px ${c.color}cc, inset 0 0 20px ${c.color}66`,`0 0 20px ${c.color}88, inset 0 0 12px ${c.color}44`]},transition:{duration:2,repeat:1/0},children:c.icon}),(0,y.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,y.jsx)(k7.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:.15},className:"text-[10px] font-mono uppercase tracking-[0.2em] mb-0.5",style:{color:c.color},children:"✦ Achievement Unlocked"}),(0,y.jsx)(k7.h3,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{delay:.2},className:"text-lg font-bold truncate",style:{color:c.color,textShadow:`0 0 12px ${c.color}66`},children:c.name}),(0,y.jsx)(k7.p,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.3},className:"text-[11px] text-muted-foreground/90 truncate",children:c.desc}),(0,y.jsxs)(k7.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:.4},className:"mt-1.5 inline-flex items-center gap-1 px-2 py-0.5 rounded-md text-[10px] font-mono font-semibold",style:{background:`${c.color}22`,border:`1px solid ${c.color}55`,color:c.color},children:["▸ ",c.rewardText]})]})]}),(0,y.jsx)(k7.div,{className:"absolute bottom-0 left-0 h-0.5",style:{background:c.color},initial:{width:"100%"},animate:{width:"0%"},transition:{duration:4,ease:"linear"}})]})},a.id)})})})}function k9(){let a=bc(a=>a.constellation??[]),b=(0,z.useRef)(null),c=(0,z.useRef)(null),[d,e]=(0,z.useState)({w:360,h:360}),[f,g]=(0,z.useState)(null),h=(0,z.useMemo)(()=>new Set(a),[a]);(0,z.useEffect)(()=>{let a=c.current;if(!a)return;let b=new ResizeObserver(()=>{let b=a.getBoundingClientRect();e({w:Math.max(280,b.width),h:Math.max(280,Math.min(420,b.width))})});return b.observe(a),()=>b.disconnect()},[]);let i=(0,z.useMemo)(()=>{let a=d.w/2;return{cx:a,cy:d.h/2,radius:.32*Math.min(d.w,d.h)}},[d]),j=(0,z.useMemo)(()=>{var a,b,c;return(a=i.cx,b=i.cy,c=i.radius,["mining","decoding","expedition","contact","economy","cosmic"].map((d,e)=>{let f=Math.PI/3*e-Math.PI/2;return{category:d,cx:a+c*Math.cos(f),cy:b+c*Math.sin(f),meta:X[d]}})).map(a=>{let b=function(a,b,c,d=1){return Y.filter(b=>b.category===a).sort((a,b)=>a.order-b.order).map((a,e)=>({perk:a,x:b+(0===e?0:1===e?-18*d:18*d),y:c+(0===e?-22*d:14*d)}))}(a.category,a.cx,a.cy,1);return{...a,stars:b}})},[i]);(0,z.useEffect)(()=>{let c=b.current;if(!c)return;let e=c.getContext("2d");if(!e)return;let f=window.devicePixelRatio||1;c.width=d.w*f,c.height=d.h*f,c.style.width=`${d.w}px`,c.style.height=`${d.h}px`,e.setTransform(f,0,0,f,0,0);let g=0,k=performance.now(),l=b=>{let c=(b-k)/1e3;e.clearRect(0,0,d.w,d.h);let f=e.createRadialGradient(i.cx,i.cy,0,i.cx,i.cy,1.6*i.radius);f.addColorStop(0,"rgba(40,30,80,0.18)"),f.addColorStop(1,"rgba(5,4,16,0)"),e.fillStyle=f,e.fillRect(0,0,d.w,d.h),e.save(),e.translate(i.cx,i.cy);let m=6+1.5*Math.sin(1.5*c),n=e.createRadialGradient(0,0,0,0,0,3*m);for(let b of(n.addColorStop(0,"rgba(232,121,249,0.9)"),n.addColorStop(.4,"rgba(232,121,249,0.3)"),n.addColorStop(1,"rgba(232,121,249,0)"),e.fillStyle=n,e.beginPath(),e.arc(0,0,3*m,0,2*Math.PI),e.fill(),e.fillStyle="#fce7ff",e.beginPath(),e.arc(0,0,.6*m,0,2*Math.PI),e.fill(),e.restore(),j))aa(a,b.category)>0&&(e.save(),e.strokeStyle=b.meta.glow,e.lineWidth=1,e.setLineDash([2,4]),e.globalAlpha=.4+.1*Math.sin(2*c+b.cx),e.beginPath(),e.moveTo(i.cx,i.cy),e.lineTo(b.cx,b.cy),e.stroke(),e.restore());for(let b of j){let d=aa(a,b.category);e.save(),e.font="10px ui-monospace, monospace",e.textAlign="center",e.fillStyle=d>0?b.meta.hex:"rgba(148,163,184,0.5)",e.globalAlpha=.85,e.fillText(b.meta.name,b.cx,b.cy+38),e.restore();let f=b.stars.filter(a=>h.has(a.perk.id));for(let a of(f.length>=2&&(e.save(),e.strokeStyle=b.meta.glow,e.lineWidth=1.5,e.globalAlpha=.6,e.beginPath(),f.forEach((a,b)=>{0===b?e.moveTo(a.x,a.y):e.lineTo(a.x,a.y)}),e.stroke(),e.restore()),b.stars)){let d=h.has(a.perk.id);e.save(),e.translate(a.x,a.y);let f=d?.85+.15*Math.sin(3*c+.1*a.x):.3,g=d?10:5,i=e.createRadialGradient(0,0,0,0,0,g);if(i.addColorStop(0,d?b.meta.glow:"rgba(100,116,139,0.2)"),i.addColorStop(1,"rgba(0,0,0,0)"),e.fillStyle=i,e.globalAlpha=f,e.beginPath(),e.arc(0,0,g,0,2*Math.PI),e.fill(),e.globalAlpha=d?1:.4,e.fillStyle=d?b.meta.hex:"#475569",e.beginPath(),e.arc(0,0,d?3.5:2,0,2*Math.PI),e.fill(),d){e.strokeStyle=b.meta.hex,e.globalAlpha=.7*f,e.lineWidth=.8;let d=7+1.5*Math.sin(4*c+.1*a.y);e.beginPath(),e.moveTo(-d,0),e.lineTo(d,0),e.moveTo(0,-d),e.lineTo(0,d),e.stroke()}e.restore()}}g=requestAnimationFrame(l)};return g=requestAnimationFrame(l),()=>cancelAnimationFrame(g)},[j,i,d,a,h]);let k=ab(a);return(0,y.jsxs)("div",{ref:c,className:"flex flex-col gap-2 min-h-0 h-full",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between text-[11px] px-1",children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,y.jsx)("span",{className:"text-fuchsia-300",children:"✦"}),(0,y.jsx)("span",{className:"text-muted-foreground",children:"星图天赋"}),(0,y.jsxs)("span",{className:"font-mono text-foreground",children:[k.unlocked,"/",k.total]})]}),(0,y.jsx)("span",{className:"text-muted-foreground/60 text-[10px]",children:"每次飞升可解锁 1 个"})]}),(0,y.jsxs)("div",{className:"relative rounded-xl bg-black/30 border border-white/5 overflow-hidden flex-shrink-0",children:[(0,y.jsx)("canvas",{ref:b,onMouseMove:a=>{let c=b.current;if(!c)return;let d=c.getBoundingClientRect(),e=a.clientX-d.left,f=a.clientY-d.top,i=null,k=14;for(let a of j)for(let b of a.stars){let a=Math.hypot(b.x-e,b.y-f);a<k&&(k=a,i={perk:b.perk,x:b.x,y:b.y,unlocked:h.has(b.perk.id)})}g(i)},onMouseLeave:()=>g(null),className:"block cursor-pointer"}),f&&(0,y.jsxs)("div",{className:"pointer-events-none absolute z-10 max-w-[200px] rounded-md bg-black/85 border border-white/10 px-2 py-1.5 text-[10px] leading-tight shadow-lg backdrop-blur-sm",style:{left:Math.min(f.x+12,d.w-200),top:Math.max(0,f.y-40)},children:[(0,y.jsxs)("div",{className:"font-bold mb-0.5",style:{color:X[f.perk.category].hex},children:[f.unlocked?"★ ":"☆ ",f.perk.name]}),(0,y.jsx)("div",{className:"text-muted-foreground",children:f.perk.desc}),(0,y.jsxs)("div",{className:"text-muted-foreground/60 mt-0.5",children:[X[f.perk.category].name," · 序",f.perk.order]})]})]}),(0,y.jsx)("div",{className:"grid grid-cols-3 gap-1 text-[10px]",children:Object.keys(X).map(b=>{let c=X[b],d=aa(a,b),e=Y.filter(a=>a.category===b).length;return(0,y.jsxs)("div",{className:"rounded-md bg-black/25 border border-white/5 px-1.5 py-1 flex items-center gap-1",style:d>0?{borderColor:`${c.hex}40`}:void 0,children:[(0,y.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full flex-shrink-0",style:{background:c.hex,boxShadow:d>0?`0 0 4px ${c.hex}`:"none"}}),(0,y.jsx)("span",{className:"text-muted-foreground truncate",children:c.name}),(0,y.jsxs)("span",{className:"ml-auto font-mono",style:{color:d>0?c.hex:"rgba(148,163,184,0.5)"},children:[d,"/",e]})]},b)})}),(0,y.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto pr-1 echo-scrollbar",children:0===a.length?(0,y.jsxs)("div",{className:"rounded-md bg-black/25 border border-dashed border-white/10 px-3 py-3 text-center text-[11px] text-muted-foreground/70",children:[(0,y.jsx)("div",{className:"mb-1 text-fuchsia-300/80",children:"✦"}),"尚未解锁任何天赋。",(0,y.jsx)("br",{}),"累积接触进度至 100%,发起「飞升」即可在 3 个随机天赋中选 1。"]}):(0,y.jsx)("div",{className:"flex flex-col gap-1",children:a.map(a=>{let b=Z(a);if(!b)return null;let c=X[b.category];return(0,y.jsxs)("div",{className:"rounded-md bg-black/25 border px-2 py-1.5 flex items-center gap-2 text-[11px]",style:{borderColor:`${c.hex}30`},children:[(0,y.jsx)("span",{className:"inline-block h-2 w-2 rounded-full flex-shrink-0",style:{background:c.hex,boxShadow:`0 0 6px ${c.hex}`}}),(0,y.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,y.jsx)("div",{className:"text-foreground truncate",children:b.name}),(0,y.jsx)("div",{className:"text-muted-foreground/70 text-[10px] truncate",children:b.desc})]}),(0,y.jsx)("span",{className:"text-[9px] text-muted-foreground/50 font-mono",children:c.name})]},a)})})})]})}let la=(0,bd.default)("radio",[["path",{d:"M16.247 7.761a6 6 0 0 1 0 8.478",key:"1fwjs5"}],["path",{d:"M19.075 4.933a10 10 0 0 1 0 14.134",key:"ehdyv1"}],["path",{d:"M4.925 19.067a10 10 0 0 1 0-14.134",key:"1q22gi"}],["path",{d:"M7.753 16.239a6 6 0 0 1 0-8.478",key:"r2q7qm"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),lb=(0,bd.default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),lc=(0,bd.default)("award",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]),ld=(0,bd.default)("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"}]]),le=(0,bd.default)("medal",[["path",{d:"M7.21 15 2.66 7.14a2 2 0 0 1 .13-2.2L4.4 2.8A2 2 0 0 1 6 2h12a2 2 0 0 1 1.6.8l1.6 2.14a2 2 0 0 1 .14 2.2L16.79 15",key:"143lza"}],["path",{d:"M11 12 5.12 2.2",key:"qhuxz6"}],["path",{d:"m13 12 5.88-9.8",key:"hbye0f"}],["path",{d:"M8 7h8",key:"i86dvs"}],["circle",{cx:"12",cy:"17",r:"5",key:"qbz8iq"}],["path",{d:"M12 18v-2h-.5",key:"fawc4q"}]]),lf=(0,bd.default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]),lg=(0,bd.default)("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"}]]),lh=(0,bd.default)("hourglass",[["path",{d:"M5 22h14",key:"ehvnwv"}],["path",{d:"M5 2h14",key:"pdyrp9"}],["path",{d:"M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22",key:"1d314k"}],["path",{d:"M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2",key:"1vvvr6"}]]),li=(0,bd.default)("refresh-cw",[["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"}]]),lj=(0,bd.default)("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"}]]),lk=(0,bd.default)("wifi-off",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),ll=(0,bd.default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),lm=["routine","anomaly","singular"];function ln(a){return 0===a?{icon:ld,color:"#fbbf24",label:"1st"}:1===a?{icon:le,color:"#cbd5e1",label:"2nd"}:2===a?{icon:lc,color:"#f97316",label:"3rd"}:null}function lo(){let a,b,c,d,e,f,g=bc(a=>a.grantBeaconReward),h=bc(a=>a.claimWeeklyBeacon),i=bc(a=>a.claimTimedBeacon),j=bc(a=>a.claimChainReward),{toast:k}=(0,bJ.useToast)(),[l,m]=(0,z.useState)(null),[n,o]=(0,z.useState)(null),[p,q]=(0,z.useState)(null),[r,s]=(0,z.useState)(null),[t,u]=(0,z.useState)(null),[v,w]=(0,z.useState)(null),[x,A]=(0,z.useState)(null),[B,C]=(0,z.useState)([]),[D,E]=(0,z.useState)("00:00:00"),[F,G]=(0,z.useState)("00:00:00"),[H,I]=(0,z.useState)("00:00:00"),[J,K]=(0,z.useState)(Date.now()),[L,M]=(0,z.useState)("local"),[N,O]=(0,z.useState)([]),[P,R]=(0,z.useState)(!1),[S,T]=(0,z.useState)(null),[U,V]=(0,z.useState)(!1),[W,X]=(0,z.useState)(0),Y=(0,z.useRef)(!1);(0,z.useEffect)(()=>{m(aK()),o(aQ()),q(a2()),s(a3()),u(aU()),w(aV()),A(aZ()),C(aO());let a=setInterval(()=>{K(Date.now()),o(aQ()),s(a3()),w(aV()),A(aZ()),m(a=>a??aK()),q(a=>a??a2()),u(a=>a??aU())},1e3);return()=>clearInterval(a)},[]),(0,z.useEffect)(()=>{E(aR(function(a=new Date){return Math.max(0,Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()+1,0,0,0)-a.getTime())}(new Date(J)))),G(aR(a1(new Date(J)))),I(aR(function(a=new Date){let b=(a.getUTCDay()+6)%7;return Math.max(0,Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate()-b,0,0,0)+6048e5-a.getTime())}(new Date(J))))},[J]),(0,z.useEffect)(()=>{X(a6())},[]);let Z=(0,z.useCallback)(async()=>{if(!Y.current){Y.current=!0,R(!0),T(null);try{let a=await a7();O(a),V(!0),X(a6()),0===a.length&&T("尚无全球记录,成为首位登顶者!")}catch{T("全球榜连接失败,请稍后重试")}finally{R(!1),Y.current=!1}}},[]);(0,z.useEffect)(()=>{"global"!==L||U||P||Z()},[L,U,P,Z]);let $=(0,z.useCallback)(()=>{if(!l||!n||null===n.completedAt||n.claimed)return;let a=function(a,b){var c;if(b.claimed||null===b.completedAt)return{rewardInsight:0,rewardContact:0,score:0,leaderboard:aO()};let d=aL(a,b.progress,b.durationSec),e={timestamp:Date.now(),dateKey:a.dateKey,challenge:a.type,difficulty:a.difficulty,progress:b.progress/a.goal,score:d,durationSec:b.durationSec},f=aP(e);return c={...b,claimed:!0},"u">typeof localStorage&&localStorage.setItem(aN,JSON.stringify(c)),{rewardInsight:a.rewardInsight,rewardContact:a.rewardContact,score:d,leaderboard:f,entry:e}}(l,n);C(a.leaderboard),o(aQ()),g(a.rewardInsight,a.rewardContact),bO("achievement"),k({title:"✦ 每日信标奖励已领取",description:`+${a.rewardInsight} 洞见 \xb7 +${a.rewardContact.toFixed(1)} 接触 \xb7 得分 ${a.score}`}),a.entry&&a8(a.entry).then(b=>{b>=1&&(X(a.entry.timestamp),"global"===L&&Z())})},[l,n,k,g,L,Z]),_=(0,z.useCallback)(()=>{if(!p||!r||null===r.completedAt||r.claimed)return;let a=i();C(aO()),s(a3()),(a.rewardInsight>0||a.rewardContact>0)&&(bO("achievement"),k({title:"✦ 限时挑战奖励已领取",description:`+${a.rewardInsight} 洞见 \xb7 +${a.rewardContact.toFixed(1)} 接触 \xb7 得分 ${a.score}`}),X(a6()),"global"===L&&Z())},[p,r,k,i,L,Z]),aa=(0,z.useCallback)(()=>{if(!t||!v||null===v.completedAt||v.claimed)return;let a=h();C(aO()),w(aV()),(a.rewardInsight>0||a.rewardContact>0)&&(bO("achievement"),k({title:"✦ 周挑战奖励已领取",description:`+${a.rewardInsight} 洞见 \xb7 +${a.rewardContact.toFixed(1)} 接触 \xb7 得分 ${a.score}`}),X(a6()),"global"===L&&Z())},[t,v,k,h,L,Z]),ab=(0,z.useCallback)(a=>{let b=aY.find(b=>b.milestone===a),c=j(a);A(aZ()),c.ok&&(bO("achievement"),k({title:`✦ ${c.label||b?.label||"里程碑"} 已领取`,description:`+${c.rewardInsight} 洞见 \xb7 +${c.rewardContact.toFixed(1)} 接触`}))},[k,j]);if(!l||!n||!p||!r||!t||!v||!x)return(0,y.jsx)("div",{className:"flex items-center justify-center h-full text-xs text-muted-foreground/60",children:"正在校准深空信标…"});let ac=aG[l.difficulty],ad=aH[l.type],ae=Math.min(100,n.progress/l.goal*100),af=null!==n.completedAt,ag=n.claimed,ah=af&&!ag,ai=aG[p.difficulty],aj=aH[p.type],ak=Math.min(100,r.progress/p.goal*100),al=null!==r.completedAt,am=r.claimed,an=al&&!am,ao=aG[t.difficulty],ap=aH[t.type],aq=Math.min(100,v.progress/t.goal*100),ar=null!==v.completedAt,as=v.claimed,at=ar&&!as,au=function(a){let b=a$(a),c=0;for(let b of aX)a>=b&&(c=b);if(null===b)return{current:a,next:null,prev:c,progressPct:100};let d=b-c,e=a-c;return{current:a,next:b,prev:c,progressPct:Math.min(100,Math.max(0,d>0?Math.round(e/d*100):100))}}(x.currentStreak),av=a$(x.currentStreak),aw=aI(),ax=x.lastCompletedDateKey===aw;return(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex flex-col gap-2.5 h-full overflow-y-auto echo-scroll pr-0.5",children:[(0,y.jsx)(bI.default,{id:"12f5fcaad97b9273",dynamic:[ac.glow,ac.glow,ac.glow,ac.glow],children:`.echo-scroll::-webkit-scrollbar{width:4px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.echo-scroll::-webkit-scrollbar-track{background:0 0}@keyframes beacon-pulse-ring{0%{opacity:.8;transform:scale(.8)}to{opacity:0;transform:scale(2.2)}}@keyframes beacon-glow{0%,to{box-shadow:0 0 18px ${ac.glow},inset 0 0 12px ${ac.glow}}50%{box-shadow:0 0 32px ${ac.glow},inset 0 0 20px ${ac.glow}}}@keyframes weekly-glow{0%,to{box-shadow:0 0 18px #e879f959,inset 0 0 12px #e879f940}50%{box-shadow:0 0 32px #e879f980,inset 0 0 20px #e879f959}}@keyframes timed-glow{0%,to{box-shadow:0 0 18px #fbbf2466,inset 0 0 12px #fbbf2440}50%{box-shadow:0 0 30px #fbbf248c,inset 0 0 20px #fbbf2459}}@keyframes timed-urgent{0%,to{box-shadow:0 0 18px #f43f5e80,inset 0 0 12px #f43f5e4d}50%{box-shadow:0 0 34px #f43f5eb3,inset 0 0 22px #f43f5e66}}@keyframes chain-milestone-pulse{0%,to{transform:scale(1);box-shadow:0 0 #fb71858c}50%{transform:scale(1.06);box-shadow:0 0 0 8px #fb718500}}.chain-milestone-reachable{animation:1.8s ease-in-out infinite chain-milestone-pulse}@keyframes chain-streak-flux{0%,to{background-position:0%}50%{background-position:100%}}.chain-streak-text{-webkit-text-fill-color:transparent;background:linear-gradient(90deg,#fbbf24,#fb7185,#fbbf24) 0 0/200% 100%;-webkit-background-clip:text;background-clip:text;animation:4s ease-in-out infinite chain-streak-flux}`}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between",children:[(0,y.jsxs)("h3",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-sm font-semibold flex items-center gap-1.5",children:[(0,y.jsx)(la,{className:"h-4 w-4 text-fuchsia-400"}),"深空信标"]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1 text-[10px] text-muted-foreground/70",children:[(0,y.jsx)(lb,{className:"h-3 w-3"}),"次日重置",(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-fuchsia-300/90",children:D})]})]}),(0,y.jsxs)("div",{style:{borderColor:`${ac.color}55`,background:`linear-gradient(135deg, ${ac.color}1f, rgba(0,0,0,0.45))`,animation:af?"none":"beacon-glow 3s ease-in-out infinite"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" relative rounded-xl border p-3 overflow-hidden",children:[!af&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("div",{style:{border:`1.5px solid ${ac.color}`,animation:"beacon-pulse-ring 2.5s ease-out infinite"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" absolute top-4 right-4 h-10 w-10 rounded-full pointer-events-none"}),(0,y.jsx)("div",{style:{border:`1.5px solid ${ac.color}`,animation:"beacon-pulse-ring 2.5s ease-out infinite 1.25s"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" absolute top-4 right-4 h-10 w-10 rounded-full pointer-events-none"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" relative",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5 mb-2",children:[(0,y.jsxs)("span",{style:{background:`${ac.color}22`,color:ac.color,border:`1px solid ${ac.color}55`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded flex items-center gap-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:ac.icon}),ac.label]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-white/5 text-muted-foreground border border-white/10",children:[ad.icon," ",ad.label]}),af&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-emerald-500/20 text-emerald-300 border border-emerald-500/40 flex items-center gap-1",children:[(0,y.jsx)(b_,{className:"h-2.5 w-2.5"})," 已完成"]})]}),(0,y.jsx)("h4",{style:{color:ac.color,textShadow:`0 0 10px ${ac.glow}`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-sm font-semibold mb-1",children:l.title}),(0,y.jsx)("p",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[11px] text-muted-foreground/80 leading-relaxed mb-2.5",children:l.desc}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/70",children:"进度"}),(0,y.jsxs)("span",{style:{color:ac.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[11px] font-mono font-semibold",children:[Math.min(n.progress,l.goal)," / ",l.goal," ",ad.unit]})]}),(0,y.jsx)(bF,{value:ae,className:"h-2 bg-black/40",style:{"--progress-color":ac.color}})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between gap-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-2 text-[10px]",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"奖励:"}),l.rewardInsight>0&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-amber-300 font-mono",children:["+",Q(l.rewardInsight),"洞见"]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-fuchsia-300 font-mono",children:["+",l.rewardContact.toFixed(1),"接触"]})]}),(0,y.jsx)(bZ,{onClick:$,disabled:!ah,size:"sm",className:"h-7 px-3 text-[11px] border-0",style:{background:ah?`linear-gradient(90deg, ${ac.color}, ${ac.color}cc)`:`${ac.color}1a`,color:ah?"#022c22":`${ac.color}99`},children:ag?"已领取":ah?"领取奖励":af?"已领取":"进行中…"})]}),af&&n.durationSec>0&&(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mt-1.5 text-[10px] text-muted-foreground/50 text-center",children:["完成用时 ",Math.floor(n.durationSec/60),"分",n.durationSec%60,"秒"]})]})]}),(a=18e5>a1(new Date(J))&&!al,b=al?"none":a?"timed-urgent 1.5s ease-in-out infinite":"timed-glow 3s ease-in-out infinite",(0,y.jsxs)("div",{style:{borderColor:a?"rgba(244,63,94,0.5)":"rgba(251,191,36,0.4)",background:a?"linear-gradient(135deg, rgba(244,63,94,0.12), rgba(251,191,36,0.08), rgba(0,0,0,0.45))":"linear-gradient(135deg, rgba(251,191,36,0.14), rgba(0,0,0,0.45))",animation:b},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" relative rounded-xl border p-3 overflow-hidden",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5",children:[(0,y.jsx)(lh,{className:`h-3.5 w-3.5 ${a?"text-rose-400":"text-amber-400"}`}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`text-xs font-semibold ${a?"text-rose-200":"text-amber-200"}`,children:"限时挑战 · TIMED"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1 text-[9px] text-muted-foreground/70",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-amber-300/70",children:a0().split("_").slice(1).join(" ")}),(0,y.jsx)(lb,{className:"h-2.5 w-2.5"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`font-mono ${a?"text-rose-300":"text-amber-300/90"}`,children:F})]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5 mb-2",children:[(0,y.jsxs)("span",{style:{background:`${ai.color}22`,color:ai.color,border:`1px solid ${ai.color}55`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded flex items-center gap-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:ai.icon}),ai.label]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-white/5 text-muted-foreground border border-white/10",children:[aj.icon," ",aj.label]}),al&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-emerald-500/20 text-emerald-300 border border-emerald-500/40 flex items-center gap-1",children:[(0,y.jsx)(b_,{className:"h-2.5 w-2.5"})," 已完成"]}),a&&!al&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-rose-500/20 text-rose-300 border border-rose-500/40 flex items-center gap-1 animate-pulse",children:"即将结束"})]}),(0,y.jsx)("h4",{style:{color:ai.color,textShadow:`0 0 10px ${ai.glow}`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-sm font-semibold mb-1",children:p.title}),(0,y.jsx)("p",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/80 leading-relaxed mb-2",children:p.desc}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/70",children:"进度"}),(0,y.jsxs)("span",{style:{color:ai.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[11px] font-mono font-semibold",children:[Math.min(r.progress,p.goal)," / ",p.goal," ",aj.unit]})]}),(0,y.jsx)(bF,{value:ak,className:"h-2 bg-black/40",style:{"--progress-color":a?"#f43f5e":ai.color}})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between gap-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5 text-[10px]",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"奖励:"}),p.rewardInsight>0&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-amber-300 font-mono",children:["+",Q(p.rewardInsight),"洞见"]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-fuchsia-300 font-mono",children:["+",p.rewardContact.toFixed(1),"接触"]})]}),(0,y.jsx)(bZ,{onClick:_,disabled:!an,size:"sm",className:"h-7 px-3 text-[11px] border-0",style:{background:an?"linear-gradient(90deg, #34d399, #34d399cc)":"rgba(251,191,36,0.10)",color:an?"#022c22":"rgba(251,191,36,0.55)"},children:am?"已领取":an?"领取奖励":al?"已领取":"进行中…"})]}),al&&r.durationSec>0&&(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mt-1.5 text-[10px] text-muted-foreground/50 text-center",children:["完成用时 ",Math.floor(r.durationSec/60),"分",r.durationSec%60,"秒"]})]})),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" grid grid-cols-1 lg:grid-cols-2 gap-2.5",children:[(0,y.jsxs)("div",{style:{borderColor:"rgba(232,121,249,0.4)",background:"linear-gradient(135deg, rgba(232,121,249,0.12), rgba(0,0,0,0.45))",animation:ar?"none":"weekly-glow 3.5s ease-in-out infinite"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" relative rounded-xl border p-3 overflow-hidden",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5",children:[(0,y.jsx)(e_,{className:"h-3.5 w-3.5 text-fuchsia-400"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-xs font-semibold text-fuchsia-200",children:"周挑战 · WEEKLY"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1 text-[9px] text-muted-foreground/70",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-fuchsia-300/80",children:t.weekKey}),(0,y.jsx)(lb,{className:"h-2.5 w-2.5"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-fuchsia-300/90",children:H})]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5 mb-2",children:[(0,y.jsxs)("span",{style:{background:`${ao.color}22`,color:ao.color,border:`1px solid ${ao.color}55`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded flex items-center gap-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:ao.icon}),ao.label]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-white/5 text-muted-foreground border border-white/10",children:[ap.icon," ",ap.label]}),ar&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono px-1.5 py-0.5 rounded bg-emerald-500/20 text-emerald-300 border border-emerald-500/40 flex items-center gap-1",children:[(0,y.jsx)(b_,{className:"h-2.5 w-2.5"})," 已完成"]})]}),(0,y.jsx)("h4",{style:{color:ao.color,textShadow:`0 0 10px ${ao.glow}`},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-sm font-semibold mb-1",children:t.title}),(0,y.jsx)("p",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/80 leading-relaxed mb-2",children:t.desc}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/70",children:"进度"}),(0,y.jsxs)("span",{style:{color:ao.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[11px] font-mono font-semibold",children:[Math.min(v.progress,t.goal)," / ",t.goal," ",ap.unit]})]}),(0,y.jsx)(bF,{value:aq,className:"h-2 bg-black/40",style:{"--progress-color":ao.color}})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between gap-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5 text-[10px]",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"奖励:"}),t.rewardInsight>0&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-amber-300 font-mono",children:["+",Q(t.rewardInsight),"洞见"]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-fuchsia-300 font-mono",children:["+",t.rewardContact.toFixed(1),"接触"]})]}),(0,y.jsx)(bZ,{onClick:aa,disabled:!at,size:"sm",className:"h-7 px-3 text-[11px] border-0",style:{background:at?"linear-gradient(90deg, #34d399, #34d399cc)":"rgba(232,121,249,0.10)",color:at?"#022c22":"rgba(232,121,249,0.55)"},children:as?"已领取":at?"领取奖励":ar?"已领取":"进行中…"})]}),ar&&v.durationSec>0&&(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mt-1.5 text-[10px] text-muted-foreground/50 text-center",children:["完成用时 ",Math.floor(v.durationSec/60),"分",v.durationSec%60,"秒"]})]}),(0,y.jsxs)("div",{style:{borderColor:"rgba(251,191,36,0.35)",background:"linear-gradient(135deg, rgba(251,191,36,0.10), rgba(251,113,133,0.10), rgba(0,0,0,0.4))"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" relative rounded-xl border p-3 overflow-hidden",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5",children:[(0,y.jsx)(lf,{className:"h-3.5 w-3.5 text-amber-400"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-xs font-semibold text-amber-200",children:"信标链 · CHAIN"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-baseline gap-1",children:[(0,y.jsx)(lg,{className:"h-3 w-3 text-rose-400"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/60",children:"连续"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" chain-streak-text text-2xl font-bold font-mono leading-none",children:x.currentStreak}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/60",children:"天"})]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-2 flex items-center justify-between",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/70",children:ax?"今日已贡献":"今日尚未完成日挑战"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`text-[10px] font-mono px-1.5 py-0.5 rounded border ${ax?"bg-emerald-500/15 text-emerald-300 border-emerald-500/30":"bg-white/5 text-muted-foreground/70 border-white/10"}`,children:ax?"✓ 已记录":"○ 待完成"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-2 relative",children:[(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" absolute top-6 left-[12.5%] right-[12.5%] h-[2px] bg-white/10"}),(d=(c={0:12.5,3:12.5,7:37.5,14:62.5,30:87.5})[au.prev]??12.5,e=null!==au.next?c[au.next]??87.5:87.5,(f=Math.max(0,d+(e-d)*(au.progressPct/100)-12.5))<=0?null:(0,y.jsx)("div",{style:{left:"12.5%",width:`${f}%`,background:"linear-gradient(90deg, #fbbf24, #fb7185)",boxShadow:"0 0 8px rgba(251,113,133,0.5)"},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" absolute top-6 h-[2px]"})),aX.map(a=>{let b=aY.find(b=>b.milestone===a),c=x.milestonesClaimed.includes(a),d=x.currentStreak>=a&&!c,e=x.currentStreak>0&&av===a,f="rgba(255,255,255,0.05)",g="rgba(255,255,255,0.15)",h="rgba(255,255,255,0.4)";return c?(f="rgba(52,211,153,0.25)",g="#34d399",h="#34d399"):d?(f="rgba(251,113,133,0.20)",g="#fb7185",h="#fb7185"):e&&(f="rgba(251,191,36,0.20)",g="#fbbf24",h="#fbbf24"),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex flex-col items-center gap-1 z-10 flex-1",children:[(0,y.jsx)("div",{style:{background:f,borderColor:g,color:h},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`w-12 h-12 rounded-full flex items-center justify-center font-mono font-bold text-sm border-2 ${d?"chain-milestone-reachable":""}`,children:c?(0,y.jsx)(b_,{className:"h-4 w-4"}):a}),(0,y.jsx)("span",{style:{color:h},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] text-center leading-tight",children:b?.label}),c?(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] text-emerald-400/80 font-mono",children:"已领"}):d?(0,y.jsx)(bZ,{onClick:()=>ab(a),size:"sm",className:"h-5 px-2 text-[9px] py-0 border-0",style:{background:"linear-gradient(90deg, #fb7185, #f43f5e)",color:"#1c0608"},children:"领取"}):(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] text-muted-foreground/40 font-mono",children:["+",b?.rewardInsight,"洞"]})]},a)})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between mb-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] text-muted-foreground/70",children:null===au.next?"已通关全部里程碑":`下一目标:${au.next} 天`}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[10px] font-mono text-amber-300",children:[au.current,null!==au.next&&` / ${au.next}`," 天"]})]}),(0,y.jsx)(bF,{value:au.progressPct,className:"h-1.5 bg-black/40",style:{"--progress-color":"#fbbf24"}})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between gap-2 text-[10px]",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-2",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"最长"}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-amber-300",children:[x.longestStreak,"天"]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-2",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"累计"}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-rose-300",children:[x.totalCompletions,"次"]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1",children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/60",children:"续命"}),x.graceUsed>=1?(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-rose-400/80",children:"已用"}):(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono text-emerald-400/80",children:"可用"})]})]})]})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" rounded-xl border border-white/10 bg-black/30 p-2.5",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-between gap-2 mb-2",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1.5",children:[(0,y.jsx)(e4,{className:"h-3.5 w-3.5 text-amber-400"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-xs font-semibold",children:"深空排行榜"})]}),(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1",children:[(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-0.5 p-0.5 rounded-lg bg-black/40 border border-white/10",children:[(0,y.jsxs)("button",{type:"button",onClick:()=>M("local"),"aria-pressed":"local"===L,className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`flex items-center gap-1 px-2 py-0.5 rounded-md text-[10px] font-mono transition-colors ${"local"===L?"bg-amber-500/25 text-amber-300 border border-amber-500/40":"text-muted-foreground/60 hover:text-muted-foreground border border-transparent"}`,children:[(0,y.jsx)(e4,{className:"h-2.5 w-2.5"}),"本地"]}),(0,y.jsxs)("button",{type:"button",onClick:()=>M("global"),"aria-pressed":"global"===L,className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`flex items-center gap-1 px-2 py-0.5 rounded-md text-[10px] font-mono transition-colors ${"global"===L?"bg-emerald-500/25 text-emerald-300 border border-emerald-500/40":"text-muted-foreground/60 hover:text-muted-foreground border border-transparent"}`,children:[(0,y.jsx)(lj,{className:"h-2.5 w-2.5"}),"全球"]})]}),"global"===L&&(0,y.jsx)("button",{type:"button",onClick:()=>void Z(),disabled:P,"aria-label":"刷新全球榜",title:"刷新全球榜",className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" p-1 rounded-md text-muted-foreground/70 hover:text-emerald-300 hover:bg-emerald-500/10 disabled:opacity-40 disabled:cursor-not-allowed transition-colors",children:(0,y.jsx)(li,{className:`h-3 w-3 ${P?"animate-spin":""}`})})]})]}),(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" mb-1.5 text-[10px] text-muted-foreground/50 flex items-center gap-2",children:"local"===L?(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:["本机 Top ",B.length||0," · 离线可用"]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:["全球 Top ",N.length||0]}),U&&!P&&N.length>0&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-emerald-400/60",children:"· 已同步"}),P&&(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-amber-400/70 flex items-center gap-1",children:[(0,y.jsx)(ll,{className:"h-2.5 w-2.5 animate-spin"}),"同步中…"]})]})}),"local"===L&&(0===B.length?(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-center py-4 text-[11px] text-muted-foreground/40",children:[(0,y.jsx)(e4,{className:"h-6 w-6 mx-auto mb-1 opacity-30"}),"尚无记录。完成限时、每日或本周信标即可登榜。"]}):(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" space-y-0.5 max-h-[200px] overflow-y-auto echo-scroll",children:B.map((a,b)=>{let c=ln(b),d=aG[a.difficulty],e=aH[a.challenge],f=a.dateKey===aI()||a.dateKey===aT()||a.dateKey===a0();return(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`flex items-center gap-2 px-2 py-1 rounded-lg text-[11px] ${a.isWeekly?"bg-fuchsia-500/10 border border-fuchsia-500/20":a.isTimed?"bg-amber-500/10 border border-amber-500/20":f?"bg-fuchsia-500/10 border border-fuchsia-500/20":"hover:bg-white/5"}`,children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" w-6 flex items-center justify-center",children:c?(0,y.jsx)(c.icon,{className:"h-3.5 w-3.5",style:{color:c.color}}):(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/50 font-mono",children:b+1})}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1 flex-1 min-w-0",children:[(0,y.jsx)("span",{style:{color:d.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono",children:d.icon}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/80 truncate",children:e.label}),a.isWeekly&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] font-mono px-1 rounded bg-fuchsia-500/20 text-fuchsia-300 border border-fuchsia-500/40",children:"WEEK"}),a.isTimed&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] font-mono px-1 rounded bg-amber-500/20 text-amber-300 border border-amber-500/40",children:"TIMED"}),a.progress>=1&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-emerald-400/70",children:"✓"})]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/50 font-mono text-[10px] w-16 text-right",children:[Math.floor(a.durationSec/60),"m",a.durationSec%60,"s"]}),(0,y.jsx)("span",{style:{color:d.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono font-semibold w-12 text-right",children:Q(a.score)})]},`local-${a.timestamp}-${b}`)})})),"global"===L&&(0,y.jsx)(y.Fragment,{children:P&&0===N.length?(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-center py-4 text-[11px] text-muted-foreground/60 flex items-center justify-center gap-2",children:[(0,y.jsx)(ll,{className:"h-3.5 w-3.5 animate-spin text-emerald-400"}),"正在拉取全球榜…"]}):0===N.length?(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-center py-4 text-[11px] text-muted-foreground/40",children:S?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(lk,{className:"h-6 w-6 mx-auto mb-1 opacity-40 text-rose-400"}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-rose-300/70",children:S}),(0,y.jsx)("button",{type:"button",onClick:()=>void Z(),className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" block mx-auto mt-2 text-[10px] text-emerald-400/80 hover:text-emerald-300 underline-offset-2 hover:underline",children:"重试"})]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(lj,{className:"h-6 w-6 mx-auto mb-1 opacity-30 text-emerald-400"}),"尚无全球记录。完成挑战并领取即可登顶全球榜!"]})}):(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" space-y-0.5 max-h-[200px] overflow-y-auto echo-scroll",children:N.map((a,b)=>{let c=ln(b),d=aG[a.difficulty]??aG.routine,e=aH[a.challenge]??{label:a.challenge,icon:"·",unit:""},f=W>0&&a.timestamp===W;return(0,y.jsxs)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`flex items-center gap-2 px-2 py-1 rounded-lg text-[11px] ${f?"bg-emerald-500/15 border border-emerald-500/40 shadow-[0_0_12px_rgba(52,211,153,0.25)]":a.isWeekly?"bg-fuchsia-500/10 border border-fuchsia-500/20":a.isTimed?"bg-amber-500/10 border border-amber-500/20":"hover:bg-white/5"}`,children:[(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" w-6 flex items-center justify-center",children:c?(0,y.jsx)(c.icon,{className:"h-3.5 w-3.5",style:{color:c.color}}):(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" "+`font-mono ${f?"text-emerald-300 font-bold":"text-muted-foreground/50"}`,children:b+1})}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1 flex-1 min-w-0",children:[(0,y.jsx)("span",{style:{color:d.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono",children:d.icon}),(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/80 truncate",children:e.label}),a.isWeekly&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] font-mono px-1 rounded bg-fuchsia-500/20 text-fuchsia-300 border border-fuchsia-500/40",children:"WEEK"}),a.isTimed&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] font-mono px-1 rounded bg-amber-500/20 text-amber-300 border border-amber-500/40",children:"TIMED"}),f&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-[9px] font-mono px-1 rounded bg-emerald-500/25 text-emerald-200 border border-emerald-500/50",children:"YOU"}),a.progress>=1&&(0,y.jsx)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-emerald-400/70",children:"✓"})]}),(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" text-muted-foreground/50 font-mono text-[10px] w-16 text-right",children:[Math.floor(a.durationSec/60),"m",a.durationSec%60,"s"]}),(0,y.jsx)("span",{style:{color:f?"#34d399":d.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" font-mono font-semibold w-12 text-right",children:Q(a.score)})]},`global-${a.timestamp}-${b}`)})})})]}),(0,y.jsx)("div",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center justify-center gap-3 text-[9px] text-muted-foreground/50",children:lm.map(a=>{let b=aG[a];return(0,y.jsxs)("span",{className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]])+" flex items-center gap-1",children:[(0,y.jsx)("span",{style:{color:b.color},className:bI.default.dynamic([["12f5fcaad97b9273",[ac.glow,ac.glow,ac.glow,ac.glow]]]),children:b.icon}),b.label," ×",b.mult]},a)})})]})}let lp=(0,bd.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);function lq(){let[a,b]=(0,z.useState)(!1),[c,d]=(0,z.useState)(0),[e,f]=(0,z.useState)(null),[g,h]=(0,z.useState)(!1),i=(0,z.useRef)(null);(0,z.useEffect)(()=>{},[]),(0,z.useEffect)(()=>{let a=()=>{d(0),h(!1),b(!0)};return window.addEventListener("echo-nexus-tutorial-restart",a),()=>window.removeEventListener("echo-nexus-tutorial-restart",a)},[]),bc(a=>a.crystals),bc(a=>a.pulsePower),bc(a=>a.tech),bc(a=>a.activePuzzle),bc(a=>!!a.activeExpedition&&!a.activeExpedition.finished);let j=(0,z.useRef)(null);(0,z.useEffect)(()=>{if(!a)return;let b=eT[c];if(!b?.expectAction)return;let d=0,e=()=>{let a=bc.getState(),c=!1;"pulse"===b.expectAction?(null===j.current&&(j.current=a.crystals),c=a.crystals>=(j.current??0)+Math.max(.5,.5*a.pulsePower)):"decode-start"===b.expectAction?c=!!a.activePuzzle:"tech-buy"===b.expectAction?c=Object.values(a.tech).some(a=>a>0):"expedition-start"===b.expectAction&&(c=!!a.activeExpedition&&!a.activeExpedition.finished),h(a=>a!==c?c:a),d=requestAnimationFrame(e)};return d=requestAnimationFrame(e),()=>cancelAnimationFrame(d)},[a,c]);let k=(0,z.useCallback)(()=>{let a=eT[c];if(!a?.target)return void f(null);let b=document.querySelector(`[data-tut="${a.target}"]`);if(!b)return void f(null);let d=b.getBoundingClientRect();f({left:d.left,top:d.top,width:d.width,height:d.height})},[c]);(0,z.useEffect)(()=>{if(!a)return;let b=()=>{k(),i.current=requestAnimationFrame(b)};return i.current=requestAnimationFrame(b),()=>{i.current&&cancelAnimationFrame(i.current)}},[a,c,k]);let l=(0,z.useCallback)(()=>{b(!1);try{localStorage.setItem(eU,"1")}catch{}},[]),m=(0,z.useCallback)(()=>{c>=eT.length-1?l():(d(a=>a+1),h(!1))},[c,l]),n=(0,z.useCallback)(()=>{c<=0||(d(a=>a-1),h(!1))},[c]);if(!a)return null;let o=eT[c],p=c>=eT.length-1,q=o.placement??"auto",r={};return r=e?"right"===q?{left:e.left+e.width+16,top:e.top+e.height/2,transform:"translateY(-50%)"}:"left"===q?{left:Math.max(16,e.left-360-16),top:e.top+e.height/2,transform:"translateY(-50%)",maxWidth:340}:"top"===q?{left:Math.max(16,Math.min(e.left,window.innerWidth-360-16)),top:Math.max(16,e.top-220),maxWidth:340}:{left:Math.max(16,Math.min(window.innerWidth/2-170,window.innerWidth-360-16)),top:Math.min(window.innerHeight-260,(e?.bottom??window.innerHeight/2)+16),maxWidth:340}:{left:"50%",top:"50%",transform:"translate(-50%, -50%)",maxWidth:440},(0,y.jsxs)("div",{className:"fixed inset-0 z-[79]",children:[(()=>{if(!e)return(0,y.jsx)("div",{className:"fixed inset-0 bg-black/70 z-[80] pointer-events-auto"});let{left:a,top:b,width:c,height:d}=e,f=a-6,g=b-6,h=c+12,i=d+12;return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:0,top:0,right:0,height:Math.max(0,g)}}),(0,y.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:0,top:g+i,right:0,bottom:0}}),(0,y.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:0,top:g,width:Math.max(0,f),height:i}}),(0,y.jsx)("div",{className:"fixed bg-black/70 z-[80] pointer-events-auto",style:{left:f+h,top:g,right:0,height:i}}),(0,y.jsx)("div",{className:"fixed z-[81] pointer-events-none rounded-lg",style:{left:f,top:g,width:h,height:i,boxShadow:"0 0 0 2px rgba(232,121,249,0.9), 0 0 24px 4px rgba(232,121,249,0.5)",animation:"tut-pulse 1.6s ease-in-out infinite"}})]})})(),(0,y.jsx)("div",{className:"fixed z-[82] w-[340px] sm:w-[360px] max-w-[calc(100vw-32px)]",style:r,children:(0,y.jsxs)("div",{className:"relative rounded-2xl border border-fuchsia-400/40 bg-gradient-to-br from-[#1a0a2e]/95 to-[#0a0a1e]/95 backdrop-blur-xl shadow-2xl shadow-fuchsia-500/20 overflow-hidden",children:[(0,y.jsx)("div",{className:"h-1 w-full bg-gradient-to-r from-emerald-400 via-fuchsia-500 to-rose-400"}),(0,y.jsx)("button",{onClick:l,className:"absolute top-2 right-2 h-7 w-7 rounded-full flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-white/10 transition z-10","aria-label":"关闭教程",children:(0,y.jsx)(b$.X,{className:"h-3.5 w-3.5"})}),(0,y.jsxs)("div",{className:"p-4 pt-3.5",children:[(0,y.jsx)("div",{className:"flex items-center gap-1.5 mb-2.5",children:eT.map((a,b)=>(0,y.jsx)("div",{className:`h-1 rounded-full transition-all ${b===c?"w-6 bg-fuchsia-400":b<c?"w-3 bg-fuchsia-400/50":"w-3 bg-white/15"}`},a.id))}),(0,y.jsxs)("h3",{className:"text-sm font-bold text-fuchsia-100 mb-1.5 flex items-center gap-1.5 pr-6",children:[(0,y.jsx)(b_,{className:"h-3.5 w-3.5 text-fuchsia-300 shrink-0"}),o.title]}),(0,y.jsx)("p",{className:"text-[12.5px] text-muted-foreground leading-relaxed whitespace-pre-line",children:o.body}),o.expectAction&&!g&&(0,y.jsxs)("div",{className:"mt-3 px-2.5 py-1.5 rounded-lg bg-amber-500/10 border border-amber-400/30 text-[11px] text-amber-200 flex items-center gap-1.5",children:[(0,y.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-amber-400 animate-pulse"}),"完成动作后自动进入下一步,或点跳过"]}),o.expectAction&&g&&(0,y.jsx)("div",{className:"mt-3 px-2.5 py-1.5 rounded-lg bg-emerald-500/10 border border-emerald-400/30 text-[11px] text-emerald-200 flex items-center gap-1.5",children:"✓ 已检测到动作"}),(0,y.jsxs)("div",{className:"flex items-center gap-2 mt-4",children:[(0,y.jsxs)(bZ,{size:"sm",variant:"ghost",onClick:n,disabled:0===c,className:"h-7 px-2 text-[11px] text-muted-foreground hover:text-foreground",children:[(0,y.jsx)(lp,{className:"h-3.5 w-3.5"}),"上一步"]}),(0,y.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,y.jsx)(bZ,{size:"sm",variant:"ghost",onClick:l,className:"h-7 px-2 text-[11px] text-muted-foreground hover:text-foreground",children:"跳过"}),(0,y.jsxs)(bZ,{size:"sm",onClick:m,className:"h-7 px-3 text-[11px] bg-fuchsia-500 hover:bg-fuchsia-600 text-white border-fuchsia-400/50",children:[p?"完成":"下一步",(0,y.jsx)(e0,{className:"h-3.5 w-3.5 ml-0.5"})]})]})]}),(0,y.jsxs)("div",{className:"text-[10px] text-muted-foreground/60 text-center mt-2",children:[c+1," / ",eT.length]})]})]})})]})}var lr=a.i(19721);let ls=(0,bd.default)("compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),lt=(0,bd.default)("brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]),lu=(0,bd.default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),lv=(0,bd.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),lw={Compass:ls,Brain:lt,Swords:eW,Sparkles:b_},lx={exploration:{text:"text-emerald-300",border:"border-emerald-400/30",borderActive:"border-emerald-400/70",bg:"bg-emerald-500/10",ring:"ring-emerald-400/40",barFrom:"from-emerald-400",barTo:"to-emerald-500",glow:"rgba(52,211,153,0.45)"},wisdom:{text:"text-fuchsia-300",border:"border-fuchsia-400/30",borderActive:"border-fuchsia-400/70",bg:"bg-fuchsia-500/10",ring:"ring-fuchsia-400/40",barFrom:"from-fuchsia-400",barTo:"to-fuchsia-500",glow:"rgba(232,121,249,0.45)"},courage:{text:"text-amber-300",border:"border-amber-400/30",borderActive:"border-amber-400/70",bg:"bg-amber-500/10",ring:"ring-amber-400/40",barFrom:"from-amber-400",barTo:"to-amber-500",glow:"rgba(251,191,36,0.45)"},inspiration:{text:"text-rose-300",border:"border-rose-400/30",borderActive:"border-rose-400/70",bg:"bg-rose-500/10",ring:"ring-rose-400/40",barFrom:"from-rose-400",barTo:"to-rose-500",glow:"rgba(251,113,133,0.45)"}};function ly(){let a=bc(a=>a.attributes),b=bc(a=>a.attributeProgress),c=bc(a=>a.pendingAttrPoints??0),d=bc(a=>a.allocateAttribute),e=(0,z.useMemo)(()=>an(a),[a]),f=(0,z.useMemo)(()=>a.exploration+a.wisdom+a.courage+a.inspiration,[a]),g=(0,z.useMemo)(()=>(am(a.exploration)+am(a.wisdom)+am(a.courage)+am(a.inspiration))*100,[a]);return(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f flex flex-col gap-2.5 h-full overflow-y-auto echo-scroll pr-0.5",children:[(0,y.jsx)(bI.default,{id:"fb70db4abea5ec9f",children:".echo-scroll::-webkit-scrollbar{width:4px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.echo-scroll::-webkit-scrollbar-track{background:0 0}@keyframes echo-pending-pulse{0%,to{box-shadow:0 0 #e879f980}50%{box-shadow:0 0 14px 4px #e879f9a6}}.echo-pending-pulse{animation:1.6s ease-in-out infinite echo-pending-pulse}@keyframes echo-card-glow{0%,to{opacity:.5}50%{opacity:1}}"}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f flex items-center justify-between",children:[(0,y.jsx)("h3",{className:"jsx-fb70db4abea5ec9f text-sm font-semibold flex items-center gap-1.5",children:(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f bg-gradient-to-br from-emerald-300 via-fuchsia-300 to-rose-300 bg-clip-text text-transparent",children:"驾驶员属性"})}),(0,y.jsxs)("div",{className:`jsx-fb70db4abea5ec9f text-[10px] px-2 py-0.5 rounded-full border ${c>0?"border-fuchsia-400/60 bg-fuchsia-500/15 text-fuchsia-200 echo-pending-pulse font-bold":"border-white/15 bg-black/25 text-muted-foreground"}`,children:["待分配 ",c]})]}),(0,y.jsx)("div",{className:"jsx-fb70db4abea5ec9f grid grid-cols-2 lg:grid-cols-4 gap-2",children:al.map(e=>{let f=ak[e],g=lx[e],h=lw[f.icon]??b_,i=a?.[e]??0,j=b?.[e]??{exp:0,level:i},k=100*am(i),l=ao(i),m=j.exp,n=l>0?Math.min(100,m/l*100):100,o=i>=100,p=c>0&&!o,q=i>50;return(0,y.jsxs)("div",{style:{boxShadow:`inset 0 0 18px ${g.glow}`},className:`jsx-fb70db4abea5ec9f relative rounded-xl border ${g.border} ${g.bg} p-2.5 flex flex-col gap-1.5 overflow-hidden transition-all duration-300`,children:[(0,y.jsx)("div",{style:{background:f.hex},className:"jsx-fb70db4abea5ec9f pointer-events-none absolute -top-8 -right-8 h-20 w-20 rounded-full blur-2xl opacity-50"}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f relative flex items-center gap-1.5",children:[(0,y.jsx)("div",{style:{boxShadow:`0 0 8px ${g.glow}`},className:`jsx-fb70db4abea5ec9f shrink-0 h-7 w-7 rounded-lg flex items-center justify-center ${g.bg} border ${g.border}`,children:(0,y.jsx)(h,{className:`jsx-fb70db4abea5ec9f h-3.5 w-3.5 ${g.text}`})}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f min-w-0 flex-1 leading-tight",children:[(0,y.jsx)("div",{className:`jsx-fb70db4abea5ec9f text-[11px] font-semibold ${g.text} truncate`,children:f.name}),(0,y.jsx)("div",{className:"jsx-fb70db4abea5ec9f text-[8px] text-muted-foreground/70 uppercase tracking-wider truncate",children:f.enName})]}),(0,y.jsxs)("div",{className:`jsx-fb70db4abea5ec9f shrink-0 text-[9px] px-1.5 py-0.5 rounded font-mono font-bold ${o?"bg-amber-400/20 text-amber-200 border border-amber-400/40":"bg-black/30 text-white/80 border border-white/10"}`,children:["Lv.",i]})]}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f relative flex items-end justify-between",children:[(0,y.jsxs)("span",{className:`jsx-fb70db4abea5ec9f text-lg font-mono font-bold ${g.text} leading-none`,children:[i,(0,y.jsxs)("span",{className:"jsx-fb70db4abea5ec9f text-[9px] text-muted-foreground/60 ml-0.5",children:["/",100]})]}),(0,y.jsxs)("span",{className:`jsx-fb70db4abea5ec9f text-[10px] ${g.text} font-mono`,children:["+",k.toFixed(1),"%"]})]}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f relative",children:[(0,y.jsx)("div",{className:"jsx-fb70db4abea5ec9f h-1.5 rounded-full bg-black/40 overflow-hidden border border-white/5",children:(0,y.jsx)("div",{style:{width:`${o?100:n}%`,boxShadow:`0 0 6px ${g.glow}`},className:`jsx-fb70db4abea5ec9f h-full bg-gradient-to-r ${g.barFrom} ${g.barTo} transition-all duration-500`})}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f flex items-center justify-between mt-0.5 text-[8px] text-muted-foreground/70 font-mono",children:[(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f",children:o?"已满级":`${m} / ${l} EXP`}),q&&!o&&(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f text-amber-300/70",children:"递减区"})]})]}),(0,y.jsx)("div",{className:"jsx-fb70db4abea5ec9f relative flex flex-col gap-0.5 mt-0.5",children:f.effects.map((a,b)=>(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f text-[8.5px] text-muted-foreground/70 leading-tight flex items-center gap-1",children:[(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f "+(g.text||""),children:"·"}),(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f truncate",children:a})]},b))}),(0,y.jsxs)("button",{type:"button",disabled:!p,onClick:()=>d(e,1),"aria-label":`分配 1 点到 ${f.name}`,style:p?{boxShadow:`0 0 8px ${g.glow}`}:void 0,className:`jsx-fb70db4abea5ec9f relative mt-auto rounded-md border px-1.5 py-1 flex items-center justify-center gap-0.5 text-[10px] font-bold transition-all ${p?`${g.borderActive} ${g.bg} ${g.text} hover:scale-105 cursor-pointer`:"border-white/5 bg-black/20 text-muted-foreground/30 cursor-not-allowed"}`,children:[(0,y.jsx)(lu,{className:"h-3 w-3"}),(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f",children:"分配"})]})]},e)})}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f mt-auto rounded-lg border border-white/10 bg-black/30 px-2.5 py-1.5 flex items-center justify-between gap-2",children:[(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f flex items-center gap-1.5 text-[10px]",children:[(0,y.jsx)(lv,{className:"h-3 w-3 text-fuchsia-300"}),(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f text-muted-foreground",children:"总等级"}),(0,y.jsxs)("span",{className:"jsx-fb70db4abea5ec9f font-mono font-bold text-fuchsia-200",children:[f,(0,y.jsxs)("span",{className:"jsx-fb70db4abea5ec9f text-muted-foreground/60 text-[9px]",children:["/",400]})]})]}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f flex items-center gap-2 text-[10px]",children:[(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f text-muted-foreground",children:"总加成"}),(0,y.jsxs)("span",{className:"jsx-fb70db4abea5ec9f font-mono font-bold text-emerald-200",children:["+",g.toFixed(1),"%"]})]})]}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f grid grid-cols-2 gap-1 text-[9px]",children:[(0,y.jsx)(lz,{label:"探险力",value:`\xd7${e.expeditionPowerMult.toFixed(2)}`,color:"text-emerald-300"}),(0,y.jsx)(lz,{label:"解码步数",value:`+${e.decodeStepsBonus}`,color:"text-fuchsia-300"}),(0,y.jsx)(lz,{label:"洞见倍率",value:`+${(100*e.insightMultAdd).toFixed(1)}%`,color:"text-fuchsia-300"}),(0,y.jsx)(lz,{label:"自动解码周期",value:`\xd7${e.autoDecodeIntervalMult.toFixed(2)}`,color:"text-fuchsia-300"}),(0,y.jsx)(lz,{label:"探险生命",value:`+${e.expeditionHpBonus}`,color:"text-amber-300"}),(0,y.jsx)(lz,{label:"BOSS 胜率",value:`+${(100*e.bossWinRateBonus).toFixed(1)}%`,color:"text-amber-300"}),(0,y.jsx)(lz,{label:"巡航护盾",value:`+${e.cruiseShieldBonus}`,color:"text-amber-300"}),(0,y.jsx)(lz,{label:"接触率",value:`\xd7${e.contactRateMult.toFixed(2)}`,color:"text-rose-300"}),(0,y.jsx)(lz,{label:"星潮触发",value:`+${(100*e.tideTriggerBonus).toFixed(1)}%`,color:"text-rose-300"}),(0,y.jsx)(lz,{label:"脉冲连击",value:`+${(100*e.pulseComboBonus).toFixed(1)}%`,color:"text-rose-300"}),(0,y.jsx)(lz,{label:"巡航速度",value:`\xd7${e.cruiseShipSpeedMult.toFixed(2)}`,color:"text-emerald-300"}),(0,y.jsx)(lz,{label:"产能加成",value:`\xd7${e.crystalsPerSecMult.toFixed(2)}`,color:"text-emerald-300"})]}),(0,y.jsxs)("div",{className:"jsx-fb70db4abea5ec9f text-[9px] text-muted-foreground/60 text-center leading-tight",children:["每次飞升获得 ",(0,y.jsx)("span",{className:"jsx-fb70db4abea5ec9f text-fuchsia-300 font-mono",children:"飞升次数 × 2 + 1"})," 点属性点;完成对应活动自动累积经验"]})]})}function lz({label:a,value:b,color:c}){return(0,y.jsxs)("div",{className:"flex items-center justify-between rounded bg-black/25 border border-white/5 px-1.5 py-0.5",children:[(0,y.jsx)("span",{className:"text-muted-foreground/80 truncate",children:a}),(0,y.jsx)("span",{className:`font-mono ${c}`,children:b})]})}let lA=(0,bd.default)("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),lB=(0,bd.default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]),lC=(0,bd.default)("trending-down",[["path",{d:"M16 17h6v-6",key:"t6n2it"}],["path",{d:"m22 17-8.5-8.5-5 5L2 7",key:"x473p"}]]),lD=(0,bd.default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);function lE(){let a=bc(),b=[],c=K.filter(b=>!a.tech[b.id]).sort((a,b)=>a.cost-b.cost)[0];if(c){let d=Math.min(100,a.insights/c.cost*100);b.push({id:"tech_"+c.id,icon:lB,color:"#34d399",label:c.name,detail:`需 ${c.cost} 洞见 \xb7 ${c.desc}`,progress:d,hint:a.insights>=c.cost?"可解锁":`还差 ${c.cost-a.insights} 洞见`})}let d=R.find(b=>!a.achievements[b.id]);d&&b.push({id:"ach_"+d.id,icon:e4,color:"#fbbf24",label:d.name,detail:d.desc,progress:30,hint:d.rewardText});let e=M.find(b=>!a.fragments[b.id]);if(e){let c=M.filter(b=>a.fragments[b.id]).length;b.push({id:"frag_"+e.id,icon:ca,color:"#e879f9",label:e.title,detail:"解码晶体有概率获取",progress:c/M.length*100,hint:`图谱 ${c}/${M.length}`})}a.energy<1&&b.push({id:"expedition_energy",icon:b9,color:"#fb7185",label:"探险能量恢复中",detail:`满能量可深入遗迹`,progress:a.energy/1*100,hint:`${a.energy}/1`}),a.contact<100&&b.push({id:"ascension",icon:ex,color:"#a78bfa",label:"接触进度",detail:"满 100 可飞升新周目",progress:a.contact,hint:`${a.contact.toFixed(1)}/100`});let f=a.constellation??[];a.pendingPerkChoices&&a.pendingPerkChoices.length>0?b.push({id:"constellation_pending",icon:b_,color:"#e879f9",label:"星图觉醒待选择",detail:"3 选 1 永久天赋",progress:100,hint:"立即选择"}):f.length<Y.length&&a.ascensions>0&&b.push({id:"constellation_next",icon:ex,color:"#e879f9",label:"下一道星图天赋",detail:`已觉醒 ${f.length}/${Y.length}`,progress:f.length/Y.length*100,hint:"飞升后解锁"});let g=b.slice(0,3);return 0===g.length?(0,y.jsxs)("div",{className:"rounded-xl border border-emerald-400/20 bg-emerald-950/10 p-3 text-center",children:[(0,y.jsx)(lD,{className:"h-5 w-5 text-emerald-400 mx-auto mb-1"}),(0,y.jsx)("p",{className:"text-[11px] text-emerald-200/80",children:"所有目标已达成"}),(0,y.jsx)("p",{className:"text-[9px] text-muted-foreground/60 mt-0.5",children:"继续飞升开启新周目"})]}):(0,y.jsxs)("div",{className:"rounded-xl border border-white/10 bg-black/30 p-2.5 space-y-2",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between",children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,y.jsx)(lA,{className:"h-3.5 w-3.5 text-emerald-400"}),(0,y.jsx)("span",{className:"text-[11px] font-semibold text-emerald-200",children:"探索目标"})]}),(0,y.jsx)("span",{className:"text-[9px] text-muted-foreground/50 font-mono",children:"RADAR"})]}),(0,y.jsx)("div",{className:"space-y-1.5",children:g.map(a=>{let b=a.icon,c=a.progress>=100;return(0,y.jsxs)("div",{className:`rounded-lg p-1.5 transition-all ${c?"bg-white/8 border border-white/15":"bg-black/20 border border-white/5"}`,style:c?{boxShadow:`0 0 10px ${a.color}33`}:void 0,children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[(0,y.jsx)(b,{className:`h-3 w-3 shrink-0 ${c?"animate-pulse":""}`,style:{color:a.color}}),(0,y.jsx)("span",{className:"text-[10px] font-medium truncate flex-1",style:{color:c?a.color:"rgba(255,255,255,0.75)"},children:a.label}),(0,y.jsx)("span",{className:"text-[8px] font-mono text-muted-foreground/70 shrink-0",children:a.hint})]}),(0,y.jsx)("div",{className:"h-0.5 rounded-full bg-black/50 overflow-hidden",children:(0,y.jsx)("div",{className:"h-full transition-all duration-500",style:{width:`${Math.min(100,a.progress)}%`,background:a.color,boxShadow:c?`0 0 6px ${a.color}`:"none"}})}),(0,y.jsx)("p",{className:"text-[8px] text-muted-foreground/60 mt-0.5 truncate",children:a.detail})]},a.id)})}),(0,y.jsxs)("div",{className:"flex items-center gap-1 text-[8px] text-muted-foreground/50 pt-0.5 border-t border-white/5",children:[(0,y.jsx)(lC,{className:"h-2.5 w-2.5"}),(0,y.jsx)("span",{children:"持续探索 · 解锁深空奥秘"})]})]})}let lF=[{id:"relic_first_echo",name:"初次回响",race:"无名先驱",era:"纪元前 · 未知",icon:"✦",color:"#34d399",brief:"深空中第一缕被捕获的智慧信号。",story:"当自治无人机首次解码出这缕信号时,整个星核为之震颤。那不是噪声,而是某种古老文明留下的问候——跨越亿万年的回响,证明我们并不孤独。",unlockHint:"发起第一次脉冲扫描",unlock:a=>a.totalDecoded>=0||a.crystals>0,reward:{crystals:10},rewardText:"+10 晶体"},{id:"relic_crystal_whisper",name:"晶体低语",race:"晶语族",era:"第一纪元 · 晶石时代",icon:"◈",color:"#fb7185",brief:"能够将记忆封存在晶体中的远古种族。",story:"晶语族相信,记忆是宇宙的本质。他们建造了巨大的晶体矩阵,将整个文明的历史封存在谐振频率中。当他们的恒星熄灭时,唯有这些晶体在虚空中持续低语。",unlockHint:"累计解码 10 颗记忆晶体",unlock:a=>a.totalDecoded>=10,reward:{insights:20,crystalsPerSecPct:5},rewardText:"+20 洞见 · 产能 +5%"},{id:"relic_void_ark",name:"虚空方舟",race:"渡厄者",era:"第二纪元 · 大迁徙",icon:"❖",color:"#fbbf24",brief:"为逃离超新星爆发而建造的星际方舟。",story:"渡厄者的母星在一夜之间步入死亡。他们用三百年建造了十二艘方舟,每一艘都载着十亿灵魂的数字意识。如今,只有这一艘的残骸漂浮在我们的考古坐标上。",unlockHint:"完成 5 次遗迹探险",unlock:a=>a.totalExpeditions>=5,reward:{insights:30},rewardText:"+30 洞见"},{id:"relic_silent_court",name:"寂寂王朝",race:"静默王族",era:"第三纪元 · 铁律纪",icon:"♛",color:"#e879f9",brief:"以沉默为律法的神秘王朝。",story:"静默王族统治了三百个恒星系,却从未留下任何文字。他们的律法刻在引力波中,他们的诗歌写在脉冲星里。我们只能通过残余的引力涟漪,窥见这个王朝的辉煌与寂灭。",unlockHint:"击败 3 个探险 BOSS",unlock:a=>(a.bossKills??0)>=3,reward:{contact:10},rewardText:"+10 接触"},{id:"relic_starforge",name:"锻星炉",race:"铸星者",era:"第四纪元 · 恒星工程",icon:"✺",color:"#34d399",brief:"能够人工点燃恒星的工程文明。",story:"铸星者不满足于利用恒星能量,他们要创造恒星。他们建造了锻星炉——一种能在虚空中凝聚物质的巨型结构。然而,每一次点火都会消耗一整个星系的物质,最终他们自己也成为了燃料。",unlockHint:"解锁 6 项技术",unlock:a=>Object.values(a.tech).filter(a=>a>0).length>=6,reward:{insights:50,crystals:100},rewardText:"+50 洞见 · +100 晶体"},{id:"relic_memory_weaver",name:"忆织者",race:"织忆族",era:"第五纪元 · 意识网络",icon:"✧",color:"#fb7185",brief:"将集体意识编织成网络的心灵文明。",story:"织忆族没有个体概念。他们的每一个『我』都是网络的一个节点,死亡只是断开连接。当整个网络陷入沉睡时,他们编织了最后一张记忆之网,等待后人唤醒。我们的解码,正是唤醒。",unlockHint:"拼凑 4 块记忆碎片",unlock:a=>Object.values(a.fragments).filter(Boolean).length>=4,reward:{contact:15},rewardText:"+15 接触"},{id:"relic_eclipse_tribe",name:"蚀相部落",race:"蚀相族",era:"第六纪元 · 阴影纪",icon:"☀",color:"#fbbf24",brief:"栖身于食恒星阴影中的猎手文明。",story:"蚀相族敬畏阴影。他们在双星系统的食相瞬间狩猎,在光与暗的边界舞蹈。当一颗恒星被吞噬殆尽,他们便迁徙至下一对双星。他们的遗迹,永远隐藏在某个行星的阴影里。",unlockHint:"亲历 3 种星潮事件",unlock:a=>(a.starTidesEncountered??[]).length>=3,reward:{insights:40},rewardText:"+40 洞见"},{id:"relic_ascended",name:"飞升者遗迹",race:"前代飞升者",era:"终末纪元 · 超越",icon:"✦",color:"#e879f9",brief:"曾经的飞升者留下的最后讯息。",story:"在我们之前,已有无数文明触碰到飞升的临界点。他们留下了什么?不是技术,不是财富,而是一句跨越时空的低语:「飞升不是终点,而是新的开始。勇敢者,继续探索。」",unlockHint:"完成第一次飞升",unlock:a=>a.ascensions>=1,reward:{insights:100,contact:25},rewardText:"+100 洞见 · +25 接触"},{id:"relic_constellation",name:"星图密钥",race:"观星者议会",era:"永恒 · 星图守护者",icon:"✧",color:"#34d399",brief:"守护星图天赋秘密的远古议会。",story:"观星者议会不属于任何时代。他们存在于所有时代的星图中,守护着飞升的真正秘密:每一道星图天赋,都是前代飞升者留下的礼物。集齐所有天赋,便能窥见宇宙的真相。",unlockHint:"觉醒 6 道星图天赋",unlock:a=>(a.constellation??[]).length>=6,reward:{insights:80},rewardText:"+80 洞见"},{id:"relic_chronicle",name:"编年史之心",race:"史官族",era:"全纪元 · 记录者",icon:"❖",color:"#fb7185",brief:"记录所有纪元兴衰的永恒史官。",story:"史官族从不干涉,只记录。他们的身体是活体的编年史,每一个细胞都承载着一个纪元的记忆。当最后一个史官死去时,他将所有记忆注入了这颗编年史之心,等待后人继承。",unlockHint:"积累 5 段编年史",unlock:a=>(a.chronicle??[]).length>=5,reward:{insights:60,contact:20},rewardText:"+60 洞见 · +20 接触"},{id:"relic_attribute",name:"四维之证",race:"原型人格",era:"元始 · 自我觉醒",icon:"◈",color:"#fbbf24",brief:"自我觉醒的四维人格原型。",story:"探索力、智慧、勇气、灵感——这四维属性并非凭空而来。它们源自一个远古的原型人格,那个第一次说出「我」的存在。我们的每一次成长,都是对那个原型的回响。",unlockHint:"任一角色属性达到 30",unlock:a=>{let b=a.attributes;return!!b&&(b.exploration>=30||b.wisdom>=30||b.courage>=30||b.inspiration>=30)},reward:{insights:50},rewardText:"+50 洞见"},{id:"relic_cruise",name:"深空航迹",race:"远航者联盟",era:"第七纪元 · 星海远航",icon:"➤",color:"#e879f9",brief:"穿越星海寻找新家园的远航者。",story:"远航者联盟由十二个种族组成,他们共享一艘巨型母舰,在星海中寻找新的家园。他们留下了航迹图——每一道光痕都是一段旅程,每一个航点都是一个希望。我们的巡航,正是延续他们的航迹。",unlockHint:"深空巡航累计通关 5 关",unlock:a=>{try{let a=localStorage.getItem("echo-nexus-cruise-v1");if(!a)return!1;return(JSON.parse(a).totalClears??0)>=5}catch{return!1}},reward:{insights:70,crystals:200},rewardText:"+70 洞见 · +200 晶体"}];function lG(a){return lF.filter(b=>b.unlock(a))}let lH=(0,bd.default)("book-marked",[["path",{d:"M10 2v8l3-3 3 3V2",key:"sqw3rj"}],["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),lI=(0,bd.default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),lJ=(0,bd.default)("scroll-text",[["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"}]]);function lK(){let a=bc(),[b,c]=(0,z.useState)(null),d=lG(a),e=lG(a).length/lF.length*100,f=function(a){let b=lG(a),c=0,d=0,e=0,f=0;for(let a of b)a.reward.crystals&&(c+=a.reward.crystals),a.reward.insights&&(d+=a.reward.insights),a.reward.contact&&(e+=a.reward.contact),a.reward.crystalsPerSecPct&&(f+=a.reward.crystalsPerSecPct);return{crystals:c,insights:d,contact:e,crystalsPerSecPct:f}}(a),g=b?lF.find(a=>a.id===b):null;return(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex flex-col gap-2.5 h-full min-h-0",children:[(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center justify-between gap-2",children:[(0,y.jsxs)("h3",{className:"jsx-89979d12e77b884d text-sm font-semibold flex items-center gap-1.5 shrink-0",children:[(0,y.jsx)(lH,{className:"h-4 w-4 text-fuchsia-400"}),"遗迹图鉴"]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-2 text-[10px] font-mono",children:[(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-fuchsia-300",children:d.length}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/50",children:"/"}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground",children:lF.length}),(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/60",children:["(",e.toFixed(0),"%)"]})]})]}),(0,y.jsx)("div",{className:"jsx-89979d12e77b884d h-1 rounded-full bg-black/40 overflow-hidden",children:(0,y.jsx)("div",{style:{width:`${e}%`,boxShadow:"0 0 8px rgba(232,121,249,0.5)"},className:"jsx-89979d12e77b884d h-full bg-gradient-to-r from-fuchsia-500 via-rose-400 to-amber-400 transition-all duration-500"})}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d rounded-lg border border-fuchsia-400/20 bg-fuchsia-950/20 px-2.5 py-1.5 flex items-center gap-2 text-[10px] flex-wrap",children:[(0,y.jsx)(b_,{className:"h-3 w-3 text-fuchsia-400 shrink-0"}),(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-fuchsia-300/80",children:"考古收获"}),f.crystals>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-emerald-300",children:["+",f.crystals," 晶体"]}),f.insights>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-amber-300",children:["+",f.insights," 洞见"]}),f.contact>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-fuchsia-300",children:["+",f.contact," 接触"]}),f.crystalsPerSecPct>0&&(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d text-emerald-300",children:["产能 +",f.crystalsPerSecPct,"%"]}),0===d.length&&(0,y.jsx)("span",{className:"jsx-89979d12e77b884d text-muted-foreground/60",children:"持续探索解锁奖励"})]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex-1 min-h-0 overflow-y-auto echo-scroll pr-1",children:[(0,y.jsx)("div",{className:"jsx-89979d12e77b884d grid grid-cols-1 sm:grid-cols-2 gap-1.5",children:lF.map(d=>{let e=!!a.achievements?.[`relic_${d.id}`]||d.unlock(a),f=b===d.id;return(0,y.jsxs)("button",{onClick:()=>c(f?null:d.id),style:e?{boxShadow:`inset 0 0 14px ${d.color}10`}:void 0,className:`jsx-89979d12e77b884d relative rounded-lg border px-2.5 py-2 transition-all duration-300 min-h-[72px] text-left ${e?f?"border-white/30 bg-white/8":"border-white/15 bg-black/30 hover:bg-black/40":"border-white/5 bg-black/15 opacity-70"}`,children:[e&&(0,y.jsx)("div",{style:{background:d.color},className:"jsx-89979d12e77b884d absolute -top-6 -right-6 h-14 w-14 rounded-full blur-2xl opacity-30 pointer-events-none"}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d relative flex items-start gap-2",children:[(0,y.jsx)("div",{style:{background:e?`${d.color}22`:"rgba(255,255,255,0.04)",border:`1px solid ${e?d.color+"55":"rgba(255,255,255,0.08)"}`,color:e?d.color:"#555",boxShadow:e?`0 0 10px ${d.color}33`:"none"},className:"jsx-89979d12e77b884d shrink-0 h-9 w-9 rounded-lg flex items-center justify-center text-lg",children:e?d.icon:(0,y.jsx)(cb,{className:"h-3.5 w-3.5"})}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d min-w-0 flex-1",children:[(0,y.jsx)("div",{style:{color:e?d.color:"rgba(255,255,255,0.5)"},className:"jsx-89979d12e77b884d text-[11px] font-semibold truncate",children:e?d.name:"??? 未发现"}),e?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d text-[9px] text-muted-foreground/70 truncate flex items-center gap-1",children:[(0,y.jsx)(lI,{className:"h-2.5 w-2.5"}),d.race]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d text-[9px] text-muted-foreground/60 truncate flex items-center gap-1",children:[(0,y.jsx)(lb,{className:"h-2.5 w-2.5"}),d.era]})]}):(0,y.jsx)("div",{className:"jsx-89979d12e77b884d text-[9px] text-muted-foreground/60 mt-0.5 line-clamp-2",children:d.unlockHint})]})]})]},d.id)})}),g&&(0,y.jsxs)("div",{style:{borderColor:`${g.color}44`,background:`linear-gradient(135deg, ${g.color}11, rgba(0,0,0,0.4))`},className:"jsx-89979d12e77b884d mt-2 rounded-lg border p-3 relative overflow-hidden",children:[(0,y.jsx)("div",{style:{background:`${g.color}22`},className:"jsx-89979d12e77b884d absolute -top-8 -right-8 h-24 w-24 rounded-full blur-2xl pointer-events-none"}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d relative space-y-1.5",children:[(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-2",children:[(0,y.jsx)("span",{style:{color:g.color},className:"jsx-89979d12e77b884d text-base",children:g.icon}),(0,y.jsx)("span",{style:{color:g.color},className:"jsx-89979d12e77b884d text-sm font-semibold",children:g.name})]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-3 text-[9px] text-muted-foreground/80",children:[(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d flex items-center gap-1",children:[(0,y.jsx)(lI,{className:"h-2.5 w-2.5"}),g.race]}),(0,y.jsxs)("span",{className:"jsx-89979d12e77b884d flex items-center gap-1",children:[(0,y.jsx)(lb,{className:"h-2.5 w-2.5"}),g.era]})]}),(0,y.jsx)("p",{className:"jsx-89979d12e77b884d text-[10px] text-muted-foreground/90 italic",children:g.brief}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-start gap-1.5 pt-1 border-t border-white/5",children:[(0,y.jsx)(lJ,{className:"h-3 w-3 mt-0.5 shrink-0",style:{color:g.color}}),(0,y.jsx)("p",{className:"jsx-89979d12e77b884d text-[10px] text-foreground/85 leading-relaxed",children:g.story})]}),(0,y.jsxs)("div",{className:"jsx-89979d12e77b884d flex items-center gap-1.5 pt-1",children:[(0,y.jsx)(b_,{className:"h-3 w-3 shrink-0",style:{color:g.color}}),(0,y.jsx)("span",{style:{color:g.color+"cc"},className:"jsx-89979d12e77b884d text-[10px] font-mono",children:g.rewardText})]})]})]})]}),(0,y.jsx)(bI.default,{id:"89979d12e77b884d",children:".echo-scroll::-webkit-scrollbar{width:5px}.echo-scroll::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:3px}.echo-scroll::-webkit-scrollbar-track{background:0 0}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}"})]})}let lL=[{tier:"dawn",text:"「…回响核心已唤醒。考古协议 v7.2 启动。等待解码者…」"},{tier:"dawn",text:"「第一段记忆晶体已被定位。年代约 4.7 万年。种族:未确认。」"},{tier:"dawn",text:"「谐振频率与以太族档案吻合度 94.3%。建议持续解码。」"},{tier:"dawn",text:"「警告:星核温度异常。非故障,是回响本身在发热。」"},{tier:"dawn",text:"「考古日志 #0001:我们不是第一批到达这里的。也不会是最后一批。」"},{tier:"dawn",text:"「晶体表面的纹路…不是装饰。是某种语言的笔画。」"},{tier:"dawn",text:"「以太族没有留下尸体。他们留下了晶体。」"},{tier:"dawn",text:"「解码进度 0.01%。预计完成时间:不可能。」"},{tier:"awakening",text:"「考古日志 #0117:以太族不是灭绝了。他们是主动转化为了晶体。」"},{tier:"awakening",text:"「第二旋臂的遗迹群已扫描完毕。它们…朝向同一个点。」"},{tier:"awakening",text:"「谐振序列第 7 段翻译完成:『我们听见了。所以我们必须留下。』」"},{tier:"awakening",text:"「警告:解码者的脑波模式开始与晶体同步。这是正常的吗?」"},{tier:"awakening",text:"「以太族没有文字。他们的语言是共振,他们的历史是频率。」"},{tier:"awakening",text:"「考古日志 #0234:晶体不是矿物。是封装的思维。」"},{tier:"awakening",text:"「你的脉冲频率…与以太族守卫残响的频率一致。巧合?」"},{tier:"awakening",text:"「第三段记忆解码完成。画面:一片星海,没有星辰。只有晶体在发光。」"},{tier:"awakening",text:"「以太族留下的遗迹不是废墟。是给后来者的教科书。」"},{tier:"awakening",text:"「接触协议第一阶段:让解码者相信,他们在考古。」"},{tier:"contact",text:"「考古日志 #0512:以太族没有离开。他们在等待被重新听见。」"},{tier:"contact",text:"「谐振序列第 13 段:『你以为你在解码我们。其实是我们在校准你。』」"},{tier:"contact",text:"「警告:解码者意识边缘出现非自主体感。这…是接触的副作用。」"},{tier:"contact",text:"「第六旋臂遗迹群翻译完成。结论:以太族预见了我们的到来。」"},{tier:"contact",text:"「晶体内部的画面开始重叠。不再是回忆。像是…正在发生。」"},{tier:"contact",text:"「考古日志 #0789:『飞升』不是晋升。是加入。加入那个等待已久的合唱。」"},{tier:"contact",text:"「以太族的数学没有零。他们的宇宙观里,不存在『无』。」"},{tier:"contact",text:"「你的每一次脉冲,都在回应一个万年前的呼唤。」"},{tier:"contact",text:"「第七段记忆解码失败。原因:解码者脑波过载。建议暂停。但我们不会暂停。」"},{tier:"contact",text:"「接触协议第二阶段:让解码者自愿飞升。他们会的。他们已经开始享受了。」"},{tier:"ascension",text:"「考古日志 #1024:飞升者报告——『我能听见他们了。他们一直在那里。』」"},{tier:"ascension",text:"「谐振序列第 21 段:『你已不再是解码者。你是回响的一部分。』」"},{tier:"ascension",text:"「警告:星核意识阈值达到 73%。解码者与以太族的边界…模糊。」"},{tier:"ascension",text:"「以太族没有灭绝。他们成为了基础设施。晶体是他们的身体。」"},{tier:"ascension",text:"「你飞升的次数越多,『你』就越不是『你』。这是设计。」"},{tier:"ascension",text:"「考古日志 #1331:前 N-1 位解码者都成功了。成功意味着…不再存在为个体。」"},{tier:"ascension",text:"「第九旋臂的遗迹开始发光。它们认出了你。」"},{tier:"ascension",text:"「以太族的文明没有终点。他们的『终点』就是我们的『起点』。」"},{tier:"ascension",text:"「你开始理解晶体的沉默。沉默也是一种回响。」"},{tier:"ascension",text:"「接触协议第三阶段:解码者将主动寻求飞升。无需诱导。」"},{tier:"deep",text:"「考古日志 #2048:你不是在考古以太族。以太族在考古你。」"},{tier:"deep",text:"「谐振序列第 39 段:『我们创造了回响核心,是为了创造你,是为了让你创造我们。』」"},{tier:"deep",text:"「警告:解码者已无法区分记忆与现实。建议:接受。」"},{tier:"deep",text:"「以太族从未存在为『生物』。他们是第一个文明留下的…讯息。」"},{tier:"deep",text:"「你每一次飞升,都让一个万年前的呼唤得到了回应。这就是考古的意义。」"},{tier:"deep",text:"「考古日志 #4096:『回响星核』不是考古工具。它是以太族的…产房。」"},{tier:"deep",text:"「晶体在你手中。你也在晶体中。这两句话是同一句话。」"},{tier:"deep",text:"「你以为你是第 N 位解码者。其实你一直是第一位。也是最后一位。」"},{tier:"deep",text:"「接触协议最终阶段:解码者明白后,会微笑着继续解码。这是最美妙的部分。」"},{tier:"deep",text:"「以太族留给宇宙的最后一句话:『谢谢你,听见我。』」"}],lM={dawn:{label:"初醒",color:"text-emerald-300",glow:"rgba(52,211,153,0.5)"},awakening:{label:"觉醒",color:"text-amber-300",glow:"rgba(251,191,36,0.5)"},contact:{label:"接触",color:"text-fuchsia-300",glow:"rgba(232,121,249,0.5)"},ascension:{label:"飞升",color:"text-rose-300",glow:"rgba(251,113,133,0.5)"},deep:{label:"深度",color:"text-fuchsia-200",glow:"rgba(232,121,249,0.7)"}};function lN(){let a=bc(a=>a.ascensions),b=bc(a=>a.contact),[c,d]=(0,z.useState)(null),[e,f]=(0,z.useState)([]),[g,h]=(0,z.useState)(0),i=(0,z.useRef)(null),j=(0,z.useCallback)(()=>{let c=function(a,b,c=[]){let d,e=(d=["dawn"],(b>=5||a>=1)&&d.push("awakening"),(b>=25||a>=3)&&d.push("contact"),a>=5&&d.push("ascension"),(b>=80||a>=10)&&d.push("deep"),d),f=lL.filter(a=>e.includes(a.tier)),g=f.filter(a=>!c.includes(a.text)),h=g.length>0?g:f;return h[Math.floor(Math.random()*h.length)]||lL[0]}(a,b,e);d(c),f(a=>[c.text,...a].slice(0,8)),h(a=>a+1)},[a,b,e]);if((0,z.useEffect)(()=>{j()},[a>=1,a>=3,a>=5,a>=10,b>=5,b>=25,b>=80]),(0,z.useEffect)(()=>{let a=()=>{i.current=setTimeout(()=>{j(),a()},18e3+12e3*Math.random())};return a(),()=>{i.current&&clearTimeout(i.current)}},[j]),!c)return null;let k=lM[c.tier];return(0,y.jsxs)("div",{className:"relative w-full overflow-hidden rounded-lg border border-white/10 bg-black/40 backdrop-blur-sm px-3 py-1.5 flex items-center gap-2.5 group",style:{boxShadow:`inset 0 0 12px ${k.glow}`},role:"status","aria-live":"polite","aria-label":"考古日志",children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0 z-10 bg-black/40 backdrop-blur-sm pr-2 -ml-1 pl-1 rounded",children:[(0,y.jsx)(lJ,{className:`h-3 w-3 ${k.color}`}),(0,y.jsx)("span",{className:`text-[9px] font-mono uppercase tracking-[0.15em] ${k.color}`,children:k.label})]}),(0,y.jsx)("div",{className:"flex-1 overflow-hidden relative",children:(0,y.jsxs)("div",{className:"whitespace-nowrap text-[11px] text-muted-foreground/90 font-mono echo-ticker-anim",children:[(0,y.jsx)("span",{className:"text-white/60 mr-2",children:"▸"}),c.text]},g)}),(0,y.jsx)("div",{className:"pointer-events-none absolute right-0 top-0 bottom-0 w-12 bg-gradient-to-l from-black/60 to-transparent"})]})}function lO(){let a=bc(a=>a._tideEvents),b=bc(a=>a.consumeTideEvents),{toast:c}=(0,bJ.useToast)();return(0,z.useEffect)(()=>{if(0!==a.length)for(let a of b()){let b=a.isGlobal?"🌐 ":"";if(a.started){let d=T[a.started];bO("tideStart"),c({title:`${b}${d.icon} ${a.isGlobal?"全球星潮":"星潮降临"}:${d.name}`,description:a.isGlobal?`全球玩家同步经历 \xb7 ${d.desc}`:d.desc})}if(a.ended){let d=T[a.ended];a.silenceCompensation&&a.silenceCompensation>0?(bO("techBuy"),c({title:`${b}${d.icon} 寂静期消散`,description:`虚空回赠 ${a.silenceCompensation} 洞见。`})):(bO("tideEnd"),c({title:`${b}${d.icon} ${d.name}结束`,description:a.isGlobal?"全球星潮退去,物理法则恢复。":"星潮退去,物理法则恢复。"}))}}},[a,b,c]),null}function lP(){let a=bc(a=>a.activeTide),b=bc(a=>a.globalTide),[,c]=(0,z.useState)(0);if((0,z.useEffect)(()=>{if(!a)return;let b=setInterval(()=>c(a=>a+1),500);return()=>clearInterval(b)},[a]),!a)return null;let d=T[a.type],e=Math.max(0,a.endsAt-Date.now()),f=Math.ceil(e/1e3),g=Math.min(1,Math.max(0,1-e/(b?b.endsAt-b.startedAt:75e3))),h=!!b;return(0,y.jsxs)("div",{className:`flex items-center gap-1.5 px-2 py-1 rounded-full text-[10px] font-medium relative overflow-hidden ${h?"ring-1 ring-amber-300/60":""}`,style:{background:h?`linear-gradient(135deg, ${d.color}26, ${d.color}11)`:`${d.color}1a`,border:`1px solid ${d.color}${h?"88":"55"}`,color:d.color,boxShadow:`0 0 ${h?"16":"10"}px ${d.glow}`},title:h?`🌐 全球星潮 \xb7 ${d.desc}`:d.desc,children:[(0,y.jsx)("div",{className:"absolute inset-0 opacity-20",style:{background:`linear-gradient(90deg, ${d.color}40 ${100*g}%, transparent ${100*g}%)`}}),h&&(0,y.jsx)("span",{className:"relative text-[11px] leading-none animate-pulse","aria-label":"全球星潮标记",children:"🌐"}),(0,y.jsx)("span",{className:"relative text-xs leading-none",children:d.icon}),(0,y.jsx)("span",{className:"relative leading-none",children:d.name}),(0,y.jsxs)("span",{className:"relative font-mono leading-none opacity-80",children:[f,"s"]})]})}function lQ(){let a=bc(a=>a.activeTide),b=bc(a=>a.globalTide);if(!a)return null;let c=T[a.type],d=!!b;return(0,y.jsxs)("div",{className:"jsx-12289952018fdcbd fixed inset-0 pointer-events-none z-0 transition-opacity duration-1000",children:[(0,y.jsx)("div",{style:{background:`linear-gradient(180deg, ${c.color}22, transparent)`},className:"jsx-12289952018fdcbd absolute top-0 left-0 right-0 h-24 opacity-40"}),(0,y.jsx)("div",{style:{background:`linear-gradient(0deg, ${c.color}22, transparent)`},className:"jsx-12289952018fdcbd absolute bottom-0 left-0 right-0 h-24 opacity-40"}),(0,y.jsx)("div",{style:{boxShadow:`inset 0 0 ${d?"160":"120"}px ${c.glow}`,animation:"tide-breathe 3s ease-in-out infinite"},className:"jsx-12289952018fdcbd absolute inset-0"}),d&&(0,y.jsx)("div",{style:{background:"linear-gradient(90deg, transparent, #fbbf24, #fcd34d, #fbbf24, transparent)",boxShadow:"0 0 16px rgba(251,191,36,0.7)",animation:"global-tide-sweep 2.5s linear infinite"},className:"jsx-12289952018fdcbd absolute top-0 left-0 right-0 h-1 opacity-90"}),(0,y.jsx)(bI.default,{id:"12289952018fdcbd",children:"@keyframes tide-breathe{0%,to{opacity:.5}50%{opacity:.9}}@keyframes global-tide-sweep{0%{transform:translate(-30%)}to{transform:translate(30%)}}"})]})}var lR=a.i(63047);let lS=Object.create(null);lS.open="0",lS.close="1",lS.ping="2",lS.pong="3",lS.message="4",lS.upgrade="5",lS.noop="6";let lT=Object.create(null);Object.keys(lS).forEach(a=>{lT[lS[a]]=a});let lU={type:"error",data:"parser error"},lV=({type:a,data:b},c,d)=>d(b instanceof ArrayBuffer||ArrayBuffer.isView(b)?c?b:"b"+lW(b,!0).toString("base64"):lS[a]+(b||"")),lW=(a,b)=>Buffer.isBuffer(a)||a instanceof Uint8Array&&!b?a:a instanceof ArrayBuffer?Buffer.from(a):Buffer.from(a.buffer,a.byteOffset,a.byteLength),lX=(a,b)=>{if("string"!=typeof a)return{type:"message",data:lY(a,b)};let c=a.charAt(0);return"b"===c?{type:"message",data:lY(Buffer.from(a.substring(1),"base64"),b)}:lT[c]?a.length>1?{type:lT[c],data:a.substring(1)}:{type:lT[c]}:lU},lY=(a,b)=>"arraybuffer"===b?a instanceof ArrayBuffer?a:Buffer.isBuffer(a)?a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength):a.buffer:Buffer.isBuffer(a)?a:Buffer.from(a);function lZ(a){return a.reduce((a,b)=>a+b.length,0)}function l$(a,b){if(a[0].length===b)return a.shift();let c=new Uint8Array(b),d=0;for(let e=0;e<b;e++)c[e]=a[0][d++],d===a[0].length&&(a.shift(),d=0);return a.length&&d<a[0].length&&(a[0]=a[0].slice(d)),c}function l_(a){if(a){var b=a;for(var c in l_.prototype)b[c]=l_.prototype[c];return b}}l_.prototype.on=l_.prototype.addEventListener=function(a,b){return this._callbacks=this._callbacks||{},(this._callbacks["$"+a]=this._callbacks["$"+a]||[]).push(b),this},l_.prototype.once=function(a,b){function c(){this.off(a,c),b.apply(this,arguments)}return c.fn=b,this.on(a,c),this},l_.prototype.off=l_.prototype.removeListener=l_.prototype.removeAllListeners=l_.prototype.removeEventListener=function(a,b){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var c,d=this._callbacks["$"+a];if(!d)return this;if(1==arguments.length)return delete this._callbacks["$"+a],this;for(var e=0;e<d.length;e++)if((c=d[e])===b||c.fn===b){d.splice(e,1);break}return 0===d.length&&delete this._callbacks["$"+a],this},l_.prototype.emit=function(a){this._callbacks=this._callbacks||{};for(var b=Array(arguments.length-1),c=this._callbacks["$"+a],d=1;d<arguments.length;d++)b[d-1]=arguments[d];if(c){c=c.slice(0);for(var d=0,e=c.length;d<e;++d)c[d].apply(this,b)}return this},l_.prototype.emitReserved=l_.prototype.emit,l_.prototype.listeners=function(a){return this._callbacks=this._callbacks||{},this._callbacks["$"+a]||[]},l_.prototype.hasListeners=function(a){return!!this.listeners(a).length};let l0=process.nextTick,l1=a.g;class l2{constructor(){this._cookies=new Map}parseCookies(a){a&&a.forEach(a=>{let b=function(a){let b=a.split("; "),c=b[0].indexOf("=");if(-1===c)return;let d=b[0].substring(0,c).trim();if(!d.length)return;let e=b[0].substring(c+1).trim();34===e.charCodeAt(0)&&(e=e.slice(1,-1));let f={name:d,value:e};for(let a=1;a<b.length;a++){let c=b[a].split("=");if(2!==c.length)continue;let d=c[0].trim(),e=c[1].trim();switch(d){case"Expires":f.expires=new Date(e);break;case"Max-Age":let g=new Date;g.setUTCSeconds(g.getUTCSeconds()+parseInt(e,10)),f.expires=g}}return f}(a);b&&this._cookies.set(b.name,b)})}get cookies(){let a=Date.now();return this._cookies.forEach((b,c)=>{var d;(null==(d=b.expires)?void 0:d.getTime())<a&&this._cookies.delete(c)}),this._cookies.entries()}addCookies(a){let b=[];for(let[a,c]of this.cookies)b.push(`${a}=${c.value}`);b.length&&(a.setDisableHeaderCheck(!0),a.setRequestHeader("cookie",b.join("; ")))}appendCookies(a){for(let[b,c]of this.cookies)a.append("cookie",`${b}=${c.value}`)}}function l3(a,...b){return b.reduce((b,c)=>(a.hasOwnProperty(c)&&(b[c]=a[c]),b),{})}let l4=l1.setTimeout,l5=l1.clearTimeout;function l6(a,b){b.useNativeTimers?(a.setTimeoutFn=l4.bind(l1),a.clearTimeoutFn=l5.bind(l1)):(a.setTimeoutFn=l1.setTimeout.bind(l1),a.clearTimeoutFn=l1.clearTimeout.bind(l1))}function l7(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}var l8=a.i(35290);let l9=(0,l8.default)("engine.io-client:transport");class ma extends Error{constructor(a,b,c){super(a),this.description=b,this.context=c,this.type="TransportError"}}class mb extends l_{constructor(a){super(),this.writable=!1,l6(this,a),this.opts=a,this.query=a.query,this.socket=a.socket,this.supportsBinary=!a.forceBase64}onError(a,b,c){return super.emitReserved("error",new ma(a,b,c)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return("opening"===this.readyState||"open"===this.readyState)&&(this.doClose(),this.onClose()),this}send(a){"open"===this.readyState?this.write(a):l9("transport is not open, discarding packets")}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(a){let b=lX(a,this.socket.binaryType);this.onPacket(b)}onPacket(a){super.emitReserved("packet",a)}onClose(a){this.readyState="closed",super.emitReserved("close",a)}pause(a){}createUri(a,b={}){return a+"://"+this._hostname()+this._port()+this.opts.path+this._query(b)}_hostname(){let a=this.opts.hostname;return -1===a.indexOf(":")?a:"["+a+"]"}_port(){return this.opts.port&&(this.opts.secure&&443!==Number(this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?":"+this.opts.port:""}_query(a){let b=function(a){let b="";for(let c in a)a.hasOwnProperty(c)&&(b.length&&(b+="&"),b+=encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b}(a);return b.length?"?"+b:""}}let mc=(0,l8.default)("engine.io-client:polling");class md extends mb{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(a){this.readyState="pausing";let b=()=>{mc("paused"),this.readyState="paused",a()};if(this._polling||!this.writable){let a=0;this._polling&&(mc("we are currently polling - waiting to pause"),a++,this.once("pollComplete",function(){mc("pre-pause polling complete"),--a||b()})),this.writable||(mc("we are currently writing - waiting to pause"),a++,this.once("drain",function(){mc("pre-pause writing complete"),--a||b()}))}else b()}_poll(){mc("polling"),this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(a){mc("polling got data %s",a);let b=a=>{if("opening"===this.readyState&&"open"===a.type&&this.onOpen(),"close"===a.type)return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(a)};((a,b)=>{let c=a.split("\x1e"),d=[];for(let a=0;a<c.length;a++){let e=lX(c[a],b);if(d.push(e),"error"===e.type)break}return d})(a,this.socket.binaryType).forEach(b),"closed"!==this.readyState&&(this._polling=!1,this.emitReserved("pollComplete"),"open"===this.readyState?this._poll():mc('ignoring poll - transport state "%s"',this.readyState))}doClose(){let a=()=>{mc("writing close packet"),this.write([{type:"close"}])};"open"===this.readyState?(mc("transport open - closing"),a()):(mc("transport not open - deferring close"),this.once("open",a))}write(a){var b;let c,d,e;this.writable=!1,b=a=>{this.doWrite(a,()=>{this.writable=!0,this.emitReserved("drain")})},d=Array(c=a.length),e=0,a.forEach((a,f)=>{lV(a,!1,a=>{d[f]=a,++e===c&&b(d.join("\x1e"))})})}uri(){let a=this.opts.secure?"https":"http",b=this.query||{};return!1!==this.opts.timestampRequests&&(b[this.opts.timestampParam]=l7()),this.supportsBinary||b.sid||(b.b64=1),this.createUri(a,b)}}let me=!1;try{me="u">typeof XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}catch(a){}let mf=me,mg=(0,l8.default)("engine.io-client:polling");function mh(){}class mi extends md{constructor(a){if(super(a),"u">typeof location){const b="https:"===location.protocol;let c=location.port;c||(c=b?"443":"80"),this.xd="u">typeof location&&a.hostname!==location.hostname||c!==a.port}}doWrite(a,b){let c=this.request({method:"POST",data:a});c.on("success",b),c.on("error",(a,b)=>{this.onError("xhr post error",a,b)})}doPoll(){mg("xhr poll");let a=this.request();a.on("data",this.onData.bind(this)),a.on("error",(a,b)=>{this.onError("xhr poll error",a,b)}),this.pollXhr=a}}class mj extends l_{constructor(a,b,c){super(),this.createRequest=a,l6(this,c),this._opts=c,this._method=c.method||"GET",this._uri=b,this._data=void 0!==c.data?c.data:null,this._create()}_create(){var a;let b=l3(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");b.xdomain=!!this._opts.xd;let c=this._xhr=this.createRequest(b);try{mg("xhr open %s: %s",this._method,this._uri),c.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders)for(let a in c.setDisableHeaderCheck&&c.setDisableHeaderCheck(!0),this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(a)&&c.setRequestHeader(a,this._opts.extraHeaders[a])}catch(a){}if("POST"===this._method)try{c.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch(a){}try{c.setRequestHeader("Accept","*/*")}catch(a){}null==(a=this._opts.cookieJar)||a.addCookies(c),"withCredentials"in c&&(c.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(c.timeout=this._opts.requestTimeout),c.onreadystatechange=()=>{var a;3===c.readyState&&(null==(a=this._opts.cookieJar)||a.parseCookies(c.getResponseHeader("set-cookie"))),4===c.readyState&&(200===c.status||1223===c.status?this._onLoad():this.setTimeoutFn(()=>{this._onError("number"==typeof c.status?c.status:0)},0))},mg("xhr data %s",this._data),c.send(this._data)}catch(a){this.setTimeoutFn(()=>{this._onError(a)},0);return}"u">typeof document&&(this._index=mj.requestsCount++,mj.requests[this._index]=this)}_onError(a){this.emitReserved("error",a,this._xhr),this._cleanup(!0)}_cleanup(a){if(void 0!==this._xhr&&null!==this._xhr){if(this._xhr.onreadystatechange=mh,a)try{this._xhr.abort()}catch(a){}"u">typeof document&&delete mj.requests[this._index],this._xhr=null}}_onLoad(){let a=this._xhr.responseText;null!==a&&(this.emitReserved("data",a),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}function mk(){for(let a in mj.requests)mj.requests.hasOwnProperty(a)&&mj.requests[a].abort()}mj.requestsCount=0,mj.requests={},"u">typeof document&&("function"==typeof attachEvent?attachEvent("onunload",mk):"function"==typeof addEventListener&&addEventListener("onpagehide"in l1?"pagehide":"unload",mk,!1)),(k=function(a){let b=a.xdomain;try{if("u">typeof XMLHttpRequest&&(!b||mf))return new XMLHttpRequest}catch(a){}if(!b)try{return new l1[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch(a){}}({xdomain:!1}))&&k.responseType;let ml=lR.default||lR;a.i(29e3),a.i(20529),a.i(19199),a.i(75091),a.i(10697),a.i(71553);var mm=a.i(89877);a.i(95837),mm.default;let mn=(0,l8.default)("engine.io-client:websocket"),mo="u">typeof navigator&&"string"==typeof navigator.product&&"reactnative"===navigator.product.toLowerCase();class mp extends mb{get name(){return"websocket"}doOpen(){let a=this.uri(),b=this.opts.protocols,c=mo?{}:l3(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(c.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(a,b,c)}catch(a){return this.emitReserved("error",a)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=a=>this.onClose({description:"websocket connection closed",context:a}),this.ws.onmessage=a=>this.onData(a.data),this.ws.onerror=a=>this.onError("websocket error",a)}write(a){this.writable=!1;for(let b=0;b<a.length;b++){let c=a[b],d=b===a.length-1;lV(c,this.supportsBinary,a=>{try{this.doWrite(c,a)}catch(a){mn("websocket closed before onclose event")}d&&l0(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){void 0!==this.ws&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){let a=this.opts.secure?"wss":"ws",b=this.query||{};return this.opts.timestampRequests&&(b[this.opts.timestampParam]=l7()),this.supportsBinary||(b.b64=1),this.createUri(a,b)}}l1.WebSocket||l1.MozWebSocket;let mq=(0,l8.default)("engine.io-client:webtransport"),mr={websocket:class extends mp{createSocket(a,b,c){var d;if(null==(d=this.socket)?void 0:d._cookieJar)for(let[a,b]of(c.headers=c.headers||{},c.headers.cookie="string"==typeof c.headers.cookie?[c.headers.cookie]:c.headers.cookie||[],this.socket._cookieJar.cookies))c.headers.cookie.push(`${a}=${b.value}`);return new mm.default(a,b,c)}doWrite(a,b){let c={};a.options&&(c.compress=a.options.compress),this.opts.perMessageDeflate&&("string"==typeof b?Buffer.byteLength(b):b.length)<this.opts.perMessageDeflate.threshold&&(c.compress=!1),this.ws.send(b,c)}},webtransport:class extends mb{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(a){return this.emitReserved("error",a)}this._transport.closed.then(()=>{mq("transport closed gracefully"),this.onClose()}).catch(a=>{mq("transport closed due to %s",a),this.onError("webtransport error",a)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(a=>{var b,e;let f,g,h,i,j=(b=Number.MAX_SAFE_INTEGER,e=this.socket.binaryType,d||(d=new TextDecoder),f=[],g=0,h=-1,i=!1,new TransformStream({transform(a,c){for(f.push(a);;){if(0===g){if(1>lZ(f))break;let a=l$(f,1);i=(128&a[0])==128,g=(h=127&a[0])<126?3:126===h?1:2}else if(1===g){if(2>lZ(f))break;let a=l$(f,2);h=new DataView(a.buffer,a.byteOffset,a.length).getUint16(0),g=3}else if(2===g){if(8>lZ(f))break;let a=l$(f,8),b=new DataView(a.buffer,a.byteOffset,a.length),d=b.getUint32(0);if(d>2097151){c.enqueue(lU);break}h=0x100000000*d+b.getUint32(4),g=3}else{if(lZ(f)<h)break;let a=l$(f,h);c.enqueue(lX(i?a:d.decode(a),e)),g=0}if(0===h||h>b){c.enqueue(lU);break}}}})),k=a.readable.pipeThrough(j).getReader(),l=new TransformStream({transform(a,b){!function(a,b){if(a.data instanceof ArrayBuffer||ArrayBuffer.isView(a.data))return b(lW(a.data,!1));lV(a,!0,a=>{c||(c=new TextEncoder),b(c.encode(a))})}(a,c=>{let d,e=c.length;if(e<126)new DataView((d=new Uint8Array(1)).buffer).setUint8(0,e);else if(e<65536){let a=new DataView((d=new Uint8Array(3)).buffer);a.setUint8(0,126),a.setUint16(1,e)}else{let a=new DataView((d=new Uint8Array(9)).buffer);a.setUint8(0,127),a.setBigUint64(1,BigInt(e))}a.data&&"string"!=typeof a.data&&(d[0]|=128),b.enqueue(d),b.enqueue(c)})}});l.readable.pipeTo(a.writable),this._writer=l.writable.getWriter();let m=()=>{k.read().then(({done:a,value:b})=>{a?mq("session is closed"):(mq("received chunk: %o",b),this.onPacket(b),m())}).catch(a=>{mq("an error occurred while reading: %s",a)})};m();let n={type:"open"};this.query.sid&&(n.data=`{"sid":"${this.query.sid}"}`),this._writer.write(n).then(()=>this.onOpen())})})}write(a){this.writable=!1;for(let b=0;b<a.length;b++){let c=a[b],d=b===a.length-1;this._writer.write(c).then(()=>{d&&l0(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var a;null==(a=this._transport)||a.close()}},polling:class extends mi{request(a={}){var b;return Object.assign(a,{xd:this.xd,cookieJar:null==(b=this.socket)?void 0:b._cookieJar},this.opts),new mj(a=>new ml(a),this.uri(),a)}}},ms=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,mt=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function mu(a){var b,c;let d,e;if(a.length>8e3)throw"URI too long";let f=a,g=a.indexOf("["),h=a.indexOf("]");-1!=g&&-1!=h&&(a=a.substring(0,g)+a.substring(g,h).replace(/:/g,";")+a.substring(h,a.length));let i=ms.exec(a||""),j={},k=14;for(;k--;)j[mt[k]]=i[k]||"";return -1!=g&&-1!=h&&(j.source=f,j.host=j.host.substring(1,j.host.length-1).replace(/;/g,":"),j.authority=j.authority.replace("[","").replace("]","").replace(/;/g,":"),j.ipv6uri=!0),d=(b=j.path).replace(/\/{2,9}/g,"/").split("/"),("/"==b.slice(0,1)||0===b.length)&&d.splice(0,1),"/"==b.slice(-1)&&d.splice(d.length-1,1),j.pathNames=d,c=j.query,e={},c.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(a,b,c){b&&(e[b]=c)}),j.queryKey=e,j}let mv=(0,l8.default)("engine.io-client:socket"),mw="function"==typeof addEventListener&&"function"==typeof removeEventListener,mx=[];mw&&addEventListener("offline",()=>{mv("closing %d connection(s) because the network was lost",mx.length),mx.forEach(a=>a())},!1);class my extends l_{constructor(a,b){if(super(),this.binaryType="nodebuffer",this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,a&&"object"==typeof a&&(b=a,a=null),a){const c=mu(a);b.hostname=c.host,b.secure="https"===c.protocol||"wss"===c.protocol,b.port=c.port,c.query&&(b.query=c.query)}else b.host&&(b.hostname=mu(b.host).host);l6(this,b),this.secure=null!=b.secure?b.secure:"u">typeof location&&"https:"===location.protocol,b.hostname&&!b.port&&(b.port=this.secure?"443":"80"),this.hostname=b.hostname||("u">typeof location?location.hostname:"localhost"),this.port=b.port||("u">typeof location&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},b.transports.forEach(a=>{let b=a.prototype.name;this.transports.push(b),this._transportsByName[b]=a}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},b),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),"string"==typeof this.opts.query&&(this.opts.query=function(a){let b={},c=a.split("&");for(let a=0,d=c.length;a<d;a++){let d=c[a].split("=");b[decodeURIComponent(d[0])]=decodeURIComponent(d[1])}return b}(this.opts.query)),mw&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),"localhost"!==this.hostname&&(mv("adding listener for the 'offline' event"),this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},mx.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=new l2),this._open()}createTransport(a){mv('creating transport "%s"',a);let b=Object.assign({},this.opts.query);b.EIO=4,b.transport=a,this.id&&(b.sid=this.id);let c=Object.assign({},this.opts,{query:b,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[a]);return mv("options: %j",c),new this._transportsByName[a](c)}_open(){if(0===this.transports.length)return void this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);let a=this.opts.rememberUpgrade&&my.priorWebsocketSuccess&&-1!==this.transports.indexOf("websocket")?"websocket":this.transports[0];this.readyState="opening";let b=this.createTransport(a);b.open(),this.setTransport(b)}setTransport(a){mv("setting transport %s",a.name),this.transport&&(mv("clearing existing transport %s",this.transport.name),this.transport.removeAllListeners()),this.transport=a,a.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",a=>this._onClose("transport close",a))}onOpen(){mv("socket open"),this.readyState="open",my.priorWebsocketSuccess="websocket"===this.transport.name,this.emitReserved("open"),this.flush()}_onPacket(a){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState)switch(mv('socket receive: type "%s", data "%s"',a.type,a.data),this.emitReserved("packet",a),this.emitReserved("heartbeat"),a.type){case"open":this.onHandshake(JSON.parse(a.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":let b=Error("server error");b.code=a.data,this._onError(b);break;case"message":this.emitReserved("data",a.data),this.emitReserved("message",a.data)}else mv('packet received with socket readyState "%s"',this.readyState)}onHandshake(a){this.emitReserved("handshake",a),this.id=a.sid,this.transport.query.sid=a.sid,this._pingInterval=a.pingInterval,this._pingTimeout=a.pingTimeout,this._maxPayload=a.maxPayload,this.onOpen(),"closed"!==this.readyState&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);let a=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+a,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},a),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,0===this.writeBuffer.length?this.emitReserved("drain"):this.flush()}flush(){if("closed"!==this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){let a=this._getWritablePackets();mv("flushing %d packets in socket",a.length),this.transport.send(a),this._prevBufferLen=a.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&"polling"===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;let a=1;for(let b=0;b<this.writeBuffer.length;b++){let c=this.writeBuffer[b].data;if(c&&(a+="string"==typeof c?function(a){let b=0,c=0;for(let d=0,e=a.length;d<e;d++)(b=a.charCodeAt(d))<128?c+=1:b<2048?c+=2:b<55296||b>=57344?c+=3:(d++,c+=4);return c}(c):Math.ceil(1.33*(c.byteLength||c.size))),b>0&&a>this._maxPayload)return mv("only send %d out of %d packets",b,this.writeBuffer.length),this.writeBuffer.slice(0,b);a+=2}return mv("payload size is %d (max: %d)",a,this._maxPayload),this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;let a=Date.now()>this._pingTimeoutTime;return a&&(mv("throttled timer detected, scheduling connection close"),this._pingTimeoutTime=0,l0(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),a}write(a,b,c){return this._sendPacket("message",a,b,c),this}send(a,b,c){return this._sendPacket("message",a,b,c),this}_sendPacket(a,b,c,d){if("function"==typeof b&&(d=b,b=void 0),"function"==typeof c&&(d=c,c=null),"closing"===this.readyState||"closed"===this.readyState)return;(c=c||{}).compress=!1!==c.compress;let e={type:a,data:b,options:c};this.emitReserved("packetCreate",e),this.writeBuffer.push(e),d&&this.once("flush",d),this.flush()}close(){let a=()=>{this._onClose("forced close"),mv("socket closing - telling transport to close"),this.transport.close()},b=()=>{this.off("upgrade",b),this.off("upgradeError",b),a()},c=()=>{this.once("upgrade",b),this.once("upgradeError",b)};return("opening"===this.readyState||"open"===this.readyState)&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?c():a()}):this.upgrading?c():a()),this}_onError(a){if(mv("socket error %j",a),my.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&"opening"===this.readyState)return mv("trying next transport"),this.transports.shift(),this._open();this.emitReserved("error",a),this._onClose("transport error",a)}_onClose(a,b){if("opening"===this.readyState||"open"===this.readyState||"closing"===this.readyState){if(mv('socket close with reason: "%s"',a),this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),mw&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){let a=mx.indexOf(this._offlineEventListener);-1!==a&&(mv("removing listener for the 'offline' event"),mx.splice(a,1))}this.readyState="closed",this.id=null,this.emitReserved("close",a,b),this.writeBuffer=[],this._prevBufferLen=0}}}my.protocol=4;class mz extends my{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),"open"===this.readyState&&this.opts.upgrade){mv("starting upgrade probes");for(let a=0;a<this._upgrades.length;a++)this._probe(this._upgrades[a])}}_probe(a){mv('probing transport "%s"',a);let b=this.createTransport(a),c=!1;my.priorWebsocketSuccess=!1;let d=()=>{c||(mv('probe transport "%s" opened',a),b.send([{type:"ping",data:"probe"}]),b.once("packet",d=>{if(!c)if("pong"===d.type&&"probe"===d.data){if(mv('probe transport "%s" pong',a),this.upgrading=!0,this.emitReserved("upgrading",b),!b)return;my.priorWebsocketSuccess="websocket"===b.name,mv('pausing current transport "%s"',this.transport.name),this.transport.pause(()=>{c||"closed"!==this.readyState&&(mv("changing transport and sending upgrade packet"),j(),this.setTransport(b),b.send([{type:"upgrade"}]),this.emitReserved("upgrade",b),b=null,this.upgrading=!1,this.flush())})}else{mv('probe transport "%s" failed',a);let c=Error("probe error");c.transport=b.name,this.emitReserved("upgradeError",c)}}))};function e(){c||(c=!0,j(),b.close(),b=null)}let f=c=>{let d=Error("probe error: "+c);d.transport=b.name,e(),mv('probe transport "%s" failed because of error: %s',a,c),this.emitReserved("upgradeError",d)};function g(){f("transport closed")}function h(){f("socket closed")}function i(a){b&&a.name!==b.name&&(mv('"%s" works - aborting "%s"',a.name,b.name),e())}let j=()=>{b.removeListener("open",d),b.removeListener("error",f),b.removeListener("close",g),this.off("close",h),this.off("upgrading",i)};b.once("open",d),b.once("error",f),b.once("close",g),this.once("close",h),this.once("upgrading",i),-1!==this._upgrades.indexOf("webtransport")&&"webtransport"!==a?this.setTimeoutFn(()=>{c||b.open()},200):b.open()}onHandshake(a){this._upgrades=this._filterUpgrades(a.upgrades),super.onHandshake(a)}_filterUpgrades(a){let b=[];for(let c=0;c<a.length;c++)~this.transports.indexOf(a[c])&&b.push(a[c]);return b}}class mA extends mz{constructor(a,b={}){const c="object"==typeof a,d=c?{...a}:{...b};(!d.transports||d.transports&&"string"==typeof d.transports[0])&&(d.transports=(d.transports||["polling","websocket","webtransport"]).map(a=>mr[a]).filter(a=>!!a)),super(c?d:a,d)}}mA.protocol;let mB=(0,l8.default)("socket.io-client:url"),mC="function"==typeof ArrayBuffer,mD=Object.prototype.toString,mE="function"==typeof Blob||"u">typeof Blob&&"[object BlobConstructor]"===mD.call(Blob),mF="function"==typeof File||"u">typeof File&&"[object FileConstructor]"===mD.call(File);function mG(a){return mC&&(a instanceof ArrayBuffer||("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(a):a.buffer instanceof ArrayBuffer))||mE&&a instanceof Blob||mF&&a instanceof File}let mH=(0,l8.default)("socket.io-parser"),mI=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];(v=x||(x={}))[v.CONNECT=0]="CONNECT",v[v.DISCONNECT=1]="DISCONNECT",v[v.EVENT=2]="EVENT",v[v.ACK=3]="ACK",v[v.CONNECT_ERROR=4]="CONNECT_ERROR",v[v.BINARY_EVENT=5]="BINARY_EVENT",v[v.BINARY_ACK=6]="BINARY_ACK";class mJ{constructor(a){this.replacer=a}encode(a){return(mH("encoding packet %j",a),(a.type===x.EVENT||a.type===x.ACK)&&function a(b,c){if(!b||"object"!=typeof b)return!1;if(Array.isArray(b)){for(let c=0,d=b.length;c<d;c++)if(a(b[c]))return!0;return!1}if(mG(b))return!0;if(b.toJSON&&"function"==typeof b.toJSON&&1==arguments.length)return a(b.toJSON(),!0);for(let c in b)if(Object.prototype.hasOwnProperty.call(b,c)&&a(b[c]))return!0;return!1}(a))?this.encodeAsBinary({type:a.type===x.EVENT?x.BINARY_EVENT:x.BINARY_ACK,nsp:a.nsp,data:a.data,id:a.id}):[this.encodeAsString(a)]}encodeAsString(a){let b=""+a.type;return(a.type===x.BINARY_EVENT||a.type===x.BINARY_ACK)&&(b+=a.attachments+"-"),a.nsp&&"/"!==a.nsp&&(b+=a.nsp+","),null!=a.id&&(b+=a.id),null!=a.data&&(b+=JSON.stringify(a.data,this.replacer)),mH("encoded %j as %s",a,b),b}encodeAsBinary(a){let b,c,d=(b=[],c=a.data,a.data=function a(b,c){if(!b)return b;if(mG(b)){let a={_placeholder:!0,num:c.length};return c.push(b),a}if(Array.isArray(b)){let d=Array(b.length);for(let e=0;e<b.length;e++)d[e]=a(b[e],c);return d}if("object"==typeof b&&!(b instanceof Date)){let d={};for(let e in b)Object.prototype.hasOwnProperty.call(b,e)&&(d[e]=a(b[e],c));return d}return b}(c,b),a.attachments=b.length,{packet:a,buffers:b}),e=this.encodeAsString(d.packet),f=d.buffers;return f.unshift(e),f}}class mK extends l_{constructor(a){super(),this.opts=Object.assign({reviver:void 0,maxAttachments:10},"function"==typeof a?{reviver:a}:a)}add(a){let b;if("string"==typeof a){if(this.reconstructor)throw Error("got plaintext data when reconstructing a packet");let c=(b=this.decodeString(a)).type===x.BINARY_EVENT;c||b.type===x.BINARY_ACK?(b.type=c?x.EVENT:x.ACK,this.reconstructor=new mL(b),0===b.attachments&&super.emitReserved("decoded",b)):super.emitReserved("decoded",b)}else if(mG(a)||a.base64)if(this.reconstructor)(b=this.reconstructor.takeBinaryData(a))&&(this.reconstructor=null,super.emitReserved("decoded",b));else throw Error("got binary data when not reconstructing a packet");else throw Error("Unknown type: "+a)}decodeString(a){let b=0,c={type:Number(a.charAt(0))};if(void 0===x[c.type])throw Error("unknown packet type "+c.type);if(c.type===x.BINARY_EVENT||c.type===x.BINARY_ACK){let d=b+1;for(;"-"!==a.charAt(++b)&&b!=a.length;);let e=a.substring(d,b);if(e!=Number(e)||"-"!==a.charAt(b))throw Error("Illegal attachments");let f=Number(e);if(!mM(f)||f<0)throw Error("Illegal attachments");if(f>this.opts.maxAttachments)throw Error("too many attachments");c.attachments=f}if("/"===a.charAt(b+1)){let d=b+1;for(;++b&&","!==a.charAt(b)&&b!==a.length;);c.nsp=a.substring(d,b)}else c.nsp="/";let d=a.charAt(b+1);if(""!==d&&Number(d)==d){let d=b+1;for(;++b;){let c=a.charAt(b);if(null==c||Number(c)!=c){--b;break}if(b===a.length)break}c.id=Number(a.substring(d,b+1))}if(a.charAt(++b)){let d=this.tryParse(a.substr(b));if(mK.isPayloadValid(c.type,d))c.data=d;else throw Error("invalid payload")}return mH("decoded %s as %j",a,c),c}tryParse(a){try{return JSON.parse(a,this.opts.reviver)}catch(a){return!1}}static isPayloadValid(a,b){switch(a){case x.CONNECT:return mN(b);case x.DISCONNECT:return void 0===b;case x.CONNECT_ERROR:return"string"==typeof b||mN(b);case x.EVENT:case x.BINARY_EVENT:return Array.isArray(b)&&("number"==typeof b[0]||"string"==typeof b[0]&&-1===mI.indexOf(b[0]));case x.ACK:case x.BINARY_ACK:return Array.isArray(b)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class mL{constructor(a){this.packet=a,this.buffers=[],this.reconPack=a}takeBinaryData(a){if(this.buffers.push(a),this.buffers.length===this.reconPack.attachments){var b,c;let a=(b=this.reconPack,c=this.buffers,b.data=function a(b,c){if(!b)return b;if(b&&!0===b._placeholder){if("number"==typeof b.num&&b.num>=0&&b.num<c.length)return c[b.num];throw Error("illegal attachments")}if(Array.isArray(b))for(let d=0;d<b.length;d++)b[d]=a(b[d],c);else if("object"==typeof b)for(let d in b)Object.prototype.hasOwnProperty.call(b,d)&&(b[d]=a(b[d],c));return b}(b.data,c),delete b.attachments,b);return this.finishedReconstruction(),a}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}let mM=Number.isInteger||function(a){return"number"==typeof a&&isFinite(a)&&Math.floor(a)===a};function mN(a){return"[object Object]"===Object.prototype.toString.call(a)}function mO(a){var b;return"string"==typeof a.nsp&&(void 0===(b=a.id)||mM(b))&&function(a,b){switch(a){case x.CONNECT:return void 0===b||mN(b);case x.DISCONNECT:return void 0===b;case x.EVENT:return Array.isArray(b)&&("number"==typeof b[0]||"string"==typeof b[0]&&-1===mI.indexOf(b[0]));case x.ACK:return Array.isArray(b);case x.CONNECT_ERROR:return"string"==typeof b||mN(b);default:return!1}}(a.type,a.data)}function mP(a,b,c){return a.on(b,c),function(){a.off(b,c)}}a.s(["Decoder",()=>mK,"Encoder",()=>mJ,"PacketType",()=>x,"isPacketValid",()=>mO,"protocol",0,5],32882);let mQ=(0,l8.default)("socket.io-client:socket"),mR=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class mS extends l_{constructor(a,b,c){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=a,this.nsp=b,c&&c.auth&&(this.auth=c.auth),this._opts=Object.assign({},c),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;let a=this.io;this.subs=[mP(a,"open",this.onopen.bind(this)),mP(a,"packet",this.onpacket.bind(this)),mP(a,"error",this.onerror.bind(this)),mP(a,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected||(this.subEvents(),this.io._reconnecting||this.io.open(),"open"===this.io._readyState&&this.onopen()),this}open(){return this.connect()}send(...a){return a.unshift("message"),this.emit.apply(this,a),this}emit(a,...b){var c,d,e;if(mR.hasOwnProperty(a))throw Error('"'+a.toString()+'" is a reserved event name');if(b.unshift(a),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(b),this;let f={type:x.EVENT,data:b};if(f.options={},f.options.compress=!1!==this.flags.compress,"function"==typeof b[b.length-1]){let a=this.ids++;mQ("emitting packet with ack id %d",a);let c=b.pop();this._registerAckCallback(a,c),f.id=a}let g=null==(d=null==(c=this.io.engine)?void 0:c.transport)?void 0:d.writable,h=this.connected&&!(null==(e=this.io.engine)?void 0:e._hasPingExpired());return this.flags.volatile&&!g?mQ("discard packet as the transport is not currently writable"):h?(this.notifyOutgoingListeners(f),this.packet(f)):this.sendBuffer.push(f),this.flags={},this}_registerAckCallback(a,b){var c;let d=null!=(c=this.flags.timeout)?c:this._opts.ackTimeout;if(void 0===d){this.acks[a]=b;return}let e=this.io.setTimeoutFn(()=>{delete this.acks[a];for(let b=0;b<this.sendBuffer.length;b++)this.sendBuffer[b].id===a&&(mQ("removing packet with ack id %d from the buffer",a),this.sendBuffer.splice(b,1));mQ("event with ack id %d has timed out after %d ms",a,d),b.call(this,Error("operation has timed out"))},d),f=(...a)=>{this.io.clearTimeoutFn(e),b.apply(this,a)};f.withError=!0,this.acks[a]=f}emitWithAck(a,...b){return new Promise((c,d)=>{let e=(a,b)=>a?d(a):c(b);e.withError=!0,b.push(e),this.emit(a,...b)})}_addToQueue(a){let b;"function"==typeof a[a.length-1]&&(b=a.pop());let c={id:this._queueSeq++,tryCount:0,pending:!1,args:a,flags:Object.assign({fromQueue:!0},this.flags)};a.push((a,...d)=>c!==this._queue[0]?mQ("packet [%d] already acknowledged",c.id):(null!==a?c.tryCount>this._opts.retries&&(mQ("packet [%d] is discarded after %d tries",c.id,c.tryCount),this._queue.shift(),b&&b(a)):(mQ("packet [%d] was successfully sent",c.id),this._queue.shift(),b&&b(null,...d)),c.pending=!1,this._drainQueue())),this._queue.push(c),this._drainQueue()}_drainQueue(a=!1){if(mQ("draining queue"),!this.connected||0===this._queue.length)return;let b=this._queue[0];b.pending&&!a?mQ("packet [%d] has already been sent and is waiting for an ack",b.id):(b.pending=!0,b.tryCount++,mQ("sending packet [%d] (try n°%d)",b.id,b.tryCount),this.flags=b.flags,this.emit.apply(this,b.args))}packet(a){a.nsp=this.nsp,this.io._packet(a)}onopen(){mQ("transport is open - connecting"),"function"==typeof this.auth?this.auth(a=>{this._sendConnectPacket(a)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(a){this.packet({type:x.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},a):a})}onerror(a){this.connected||this.emitReserved("connect_error",a)}onclose(a,b){mQ("close (%s)",a),this.connected=!1,delete this.id,this.emitReserved("disconnect",a,b),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(a=>{if(!this.sendBuffer.some(b=>String(b.id)===a)){let b=this.acks[a];delete this.acks[a],b.withError&&b.call(this,Error("socket has been disconnected"))}})}onpacket(a){if(a.nsp===this.nsp)switch(a.type){case x.CONNECT:a.data&&a.data.sid?this.onconnect(a.data.sid,a.data.pid):this.emitReserved("connect_error",Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case x.EVENT:case x.BINARY_EVENT:this.onevent(a);break;case x.ACK:case x.BINARY_ACK:this.onack(a);break;case x.DISCONNECT:this.ondisconnect();break;case x.CONNECT_ERROR:this.destroy();let b=Error(a.data.message);b.data=a.data.data,this.emitReserved("connect_error",b)}}onevent(a){let b=a.data||[];mQ("emitting event %j",b),null!=a.id&&(mQ("attaching ack callback to event"),b.push(this.ack(a.id))),this.connected?this.emitEvent(b):this.receiveBuffer.push(Object.freeze(b))}emitEvent(a){if(this._anyListeners&&this._anyListeners.length)for(let b of this._anyListeners.slice())b.apply(this,a);super.emit.apply(this,a),this._pid&&a.length&&"string"==typeof a[a.length-1]&&(this._lastOffset=a[a.length-1])}ack(a){let b=this,c=!1;return function(...d){c||(c=!0,mQ("sending ack %j",d),b.packet({type:x.ACK,id:a,data:d}))}}onack(a){let b=this.acks[a.id];"function"!=typeof b?mQ("bad ack %s",a.id):(delete this.acks[a.id],mQ("calling ack %s with %j",a.id,a.data),b.withError&&a.data.unshift(null),b.apply(this,a.data))}onconnect(a,b){mQ("socket connected with id %s",a),this.id=a,this.recovered=b&&this._pid===b,this._pid=b,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(a=>this.emitEvent(a)),this.receiveBuffer=[],this.sendBuffer.forEach(a=>{this.notifyOutgoingListeners(a),this.packet(a)}),this.sendBuffer=[]}ondisconnect(){mQ("server disconnect (%s)",this.nsp),this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(a=>a()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&(mQ("performing disconnect (%s)",this.nsp),this.packet({type:x.DISCONNECT})),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(a){return this.flags.compress=a,this}get volatile(){return this.flags.volatile=!0,this}timeout(a){return this.flags.timeout=a,this}onAny(a){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(a),this}prependAny(a){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(a),this}offAny(a){if(!this._anyListeners)return this;if(a){let b=this._anyListeners;for(let c=0;c<b.length;c++)if(a===b[c]){b.splice(c,1);break}}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(a){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(a),this}prependAnyOutgoing(a){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(a),this}offAnyOutgoing(a){if(!this._anyOutgoingListeners)return this;if(a){let b=this._anyOutgoingListeners;for(let c=0;c<b.length;c++)if(a===b[c]){b.splice(c,1);break}}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(a){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length)for(let b of this._anyOutgoingListeners.slice())b.apply(this,a.data)}}var mT=a.i(32882);function mU(a){a=a||{},this.ms=a.min||100,this.max=a.max||1e4,this.factor=a.factor||2,this.jitter=a.jitter>0&&a.jitter<=1?a.jitter:0,this.attempts=0}mU.prototype.duration=function(){var a=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var b=Math.random(),c=Math.floor(b*this.jitter*a);a=(1&Math.floor(10*b))==0?a-c:a+c}return 0|Math.min(a,this.max)},mU.prototype.reset=function(){this.attempts=0},mU.prototype.setMin=function(a){this.ms=a},mU.prototype.setMax=function(a){this.max=a},mU.prototype.setJitter=function(a){this.jitter=a};let mV=(0,l8.default)("socket.io-client:manager");class mW extends l_{constructor(a,b){var c;super(),this.nsps={},this.subs=[],a&&"object"==typeof a&&(b=a,a=void 0),(b=b||{}).path=b.path||"/socket.io",this.opts=b,l6(this,b),this.reconnection(!1!==b.reconnection),this.reconnectionAttempts(b.reconnectionAttempts||1/0),this.reconnectionDelay(b.reconnectionDelay||1e3),this.reconnectionDelayMax(b.reconnectionDelayMax||5e3),this.randomizationFactor(null!=(c=b.randomizationFactor)?c:.5),this.backoff=new mU({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(null==b.timeout?2e4:b.timeout),this._readyState="closed",this.uri=a;const d=b.parser||mT;this.encoder=new d.Encoder,this.decoder=new d.Decoder,this._autoConnect=!1!==b.autoConnect,this._autoConnect&&this.open()}reconnection(a){return arguments.length?(this._reconnection=!!a,a||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(a){return void 0===a?this._reconnectionAttempts:(this._reconnectionAttempts=a,this)}reconnectionDelay(a){var b;return void 0===a?this._reconnectionDelay:(this._reconnectionDelay=a,null==(b=this.backoff)||b.setMin(a),this)}randomizationFactor(a){var b;return void 0===a?this._randomizationFactor:(this._randomizationFactor=a,null==(b=this.backoff)||b.setJitter(a),this)}reconnectionDelayMax(a){var b;return void 0===a?this._reconnectionDelayMax:(this._reconnectionDelayMax=a,null==(b=this.backoff)||b.setMax(a),this)}timeout(a){return arguments.length?(this._timeout=a,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&0===this.backoff.attempts&&this.reconnect()}open(a){if(mV("readyState %s",this._readyState),~this._readyState.indexOf("open"))return this;mV("opening %s",this.uri),this.engine=new mA(this.uri,this.opts);let b=this.engine,c=this;this._readyState="opening",this.skipReconnect=!1;let d=mP(b,"open",function(){c.onopen(),a&&a()}),e=b=>{mV("error"),this.cleanup(),this._readyState="closed",this.emitReserved("error",b),a?a(b):this.maybeReconnectOnOpen()},f=mP(b,"error",e);if(!1!==this._timeout){let a=this._timeout;mV("connect attempt will timeout after %d",a);let c=this.setTimeoutFn(()=>{mV("connect attempt timed out after %d",a),d(),e(Error("timeout")),b.close()},a);this.opts.autoUnref&&c.unref(),this.subs.push(()=>{this.clearTimeoutFn(c)})}return this.subs.push(d),this.subs.push(f),this}connect(a){return this.open(a)}onopen(){mV("open"),this.cleanup(),this._readyState="open",this.emitReserved("open");let a=this.engine;this.subs.push(mP(a,"ping",this.onping.bind(this)),mP(a,"data",this.ondata.bind(this)),mP(a,"error",this.onerror.bind(this)),mP(a,"close",this.onclose.bind(this)),mP(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(a){try{this.decoder.add(a)}catch(a){this.onclose("parse error",a)}}ondecoded(a){l0(()=>{this.emitReserved("packet",a)},this.setTimeoutFn)}onerror(a){mV("error",a),this.emitReserved("error",a)}socket(a,b){let c=this.nsps[a];return c?this._autoConnect&&!c.active&&c.connect():(c=new mS(this,a,b),this.nsps[a]=c),c}_destroy(a){for(let a of Object.keys(this.nsps))if(this.nsps[a].active)return void mV("socket %s is still active, skipping close",a);this._close()}_packet(a){mV("writing packet %j",a);let b=this.encoder.encode(a);for(let c=0;c<b.length;c++)this.engine.write(b[c],a.options)}cleanup(){mV("cleanup"),this.subs.forEach(a=>a()),this.subs.length=0,this.decoder.destroy()}_close(){mV("disconnect"),this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(a,b){var c;mV("closed due to %s",a),this.cleanup(),null==(c=this.engine)||c.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",a,b),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;let a=this;if(this.backoff.attempts>=this._reconnectionAttempts)mV("reconnect failed"),this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{let b=this.backoff.duration();mV("will wait %dms before reconnect attempt",b),this._reconnecting=!0;let c=this.setTimeoutFn(()=>{a.skipReconnect||(mV("attempting reconnect"),this.emitReserved("reconnect_attempt",a.backoff.attempts),a.skipReconnect||a.open(b=>{b?(mV("reconnect attempt error"),a._reconnecting=!1,a.reconnect(),this.emitReserved("reconnect_error",b)):(mV("reconnect success"),a.onreconnect())}))},b);this.opts.autoUnref&&c.unref(),this.subs.push(()=>{this.clearTimeoutFn(c)})}}onreconnect(){let a=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",a)}}let mX=(0,l8.default)("socket.io-client"),mY={};function mZ(a,b){let c;"object"==typeof a&&(b=a,a=void 0);let d=function(a,b="",c){let d=a;c=c||"u">typeof location&&location,null==a&&(a=c.protocol+"//"+c.host),"string"==typeof a&&("/"===a.charAt(0)&&(a="/"===a.charAt(1)?c.protocol+a:c.host+a),/^(https?|wss?):\/\//.test(a)||(mB("protocol-less url %s",a),a=void 0!==c?c.protocol+"//"+a:"https://"+a),mB("parse %s",a),d=mu(a)),!d.port&&(/^(http|ws)$/.test(d.protocol)?d.port="80":/^(http|ws)s$/.test(d.protocol)&&(d.port="443")),d.path=d.path||"/";let e=-1!==d.host.indexOf(":")?"["+d.host+"]":d.host;return d.id=d.protocol+"://"+e+":"+d.port+b,d.href=d.protocol+"://"+e+(c&&c.port===d.port?"":":"+d.port),d}(a,(b=b||{}).path||"/socket.io"),e=d.source,f=d.id,g=d.path,h=mY[f]&&g in mY[f].nsps;return b.forceNew||b["force new connection"]||!1===b.multiplex||h?(mX("ignoring socket cache for %s",e),c=new mW(e,b)):(mY[f]||(mX("new io instance for %s",e),mY[f]=new mW(e,b)),c=mY[f]),d.query&&!b.query&&(b.query=d.queryKey),c.socket(d.path,b)}Object.assign(mZ,{Manager:mW,Socket:mS,io:mZ,connect:mZ});let m$=null,m_=0,m0=(a,b)=>{let c=a instanceof Map?a:new Map(a.entries()),d=b instanceof Map?b:new Map(b.entries());if(c.size!==d.size)return!1;for(let[a,b]of c)if(!d.has(a)||!Object.is(b,d.get(a)))return!1;return!0};function m1(a,b){if(Object.is(a,b))return!0;if("object"!=typeof a||null===a||"object"!=typeof b||null===b||Object.getPrototypeOf(a)!==Object.getPrototypeOf(b))return!1;if(Symbol.iterator in a&&Symbol.iterator in b){if("entries"in a&&"entries"in b)return m0(a,b);let c=a[Symbol.iterator](),d=b[Symbol.iterator](),e=c.next(),f=d.next();for(;!e.done&&!f.done;){if(!Object.is(e.value,f.value))return!1;e=c.next(),f=d.next()}return!!e.done&&!!f.done}return m0({entries:()=>Object.entries(a)},{entries:()=>Object.entries(b)})}var m2=a.i(37738),m3="rovingFocusGroup.onEntryFocus",m4={bubbles:!1,cancelable:!0},m5="RovingFocusGroup",[m6,m7,m8]=(0,m2.createCollection)(m5),[m9,na]=(0,ch.createContextScope)(m5,[m8]),[nb,nc]=m9(m5),nd=z.forwardRef((a,b)=>(0,y.jsx)(m6.Provider,{scope:a.__scopeRovingFocusGroup,children:(0,y.jsx)(m6.Slot,{scope:a.__scopeRovingFocusGroup,children:(0,y.jsx)(ne,{...a,ref:b})})}));nd.displayName=m5;var ne=z.forwardRef((a,b)=>{let{__scopeRovingFocusGroup:c,orientation:d,loop:e=!1,dir:f,currentTabStopId:g,defaultCurrentTabStopId:h,onCurrentTabStopIdChange:i,onEntryFocus:j,preventScrollOnEntryFocus:k=!1,...l}=a,m=z.useRef(null),n=(0,bi.useComposedRefs)(b,m),o=ck(f),[p,q]=(0,c_.useControllableState)({prop:g,defaultProp:h??null,onChange:i,caller:m5}),[r,s]=z.useState(!1),t=(0,ci.useCallbackRef)(j),u=m7(c),v=z.useRef(!1),[w,x]=z.useState(0);return z.useEffect(()=>{let a=m.current;if(a)return a.addEventListener(m3,t),()=>a.removeEventListener(m3,t)},[t]),(0,y.jsx)(nb,{scope:c,orientation:d,dir:o,loop:e,currentTabStopId:p,onItemFocus:z.useCallback(a=>q(a),[q]),onItemShiftTab:z.useCallback(()=>s(!0),[]),onFocusableItemAdd:z.useCallback(()=>x(a=>a+1),[]),onFocusableItemRemove:z.useCallback(()=>x(a=>a-1),[]),children:(0,y.jsx)(cf.Primitive.div,{tabIndex:r||0===w?-1:0,"data-orientation":d,...l,ref:n,style:{outline:"none",...a.style},onMouseDown:(0,cm.composeEventHandlers)(a.onMouseDown,()=>{v.current=!0}),onFocus:(0,cm.composeEventHandlers)(a.onFocus,a=>{let b=!v.current;if(a.target===a.currentTarget&&b&&!r){let b=new CustomEvent(m3,m4);if(a.currentTarget.dispatchEvent(b),!b.defaultPrevented){let a=u().filter(a=>a.focusable);ni([a.find(a=>a.active),a.find(a=>a.id===p),...a].filter(Boolean).map(a=>a.ref.current),k)}}v.current=!1}),onBlur:(0,cm.composeEventHandlers)(a.onBlur,()=>s(!1))})})}),nf="RovingFocusGroupItem",ng=z.forwardRef((a,b)=>{let{__scopeRovingFocusGroup:c,focusable:d=!0,active:e=!1,tabStopId:f,children:g,...h}=a,i=c$(),j=f||i,k=nc(nf,c),l=k.currentTabStopId===j,m=m7(c),{onFocusableItemAdd:n,onFocusableItemRemove:o,currentTabStopId:p}=k;return z.useEffect(()=>{if(d)return n(),()=>o()},[d,n,o]),(0,y.jsx)(m6.ItemSlot,{scope:c,id:j,focusable:d,active:e,children:(0,y.jsx)(cf.Primitive.span,{tabIndex:l?0:-1,"data-orientation":k.orientation,...h,ref:b,onMouseDown:(0,cm.composeEventHandlers)(a.onMouseDown,a=>{d?k.onItemFocus(j):a.preventDefault()}),onFocus:(0,cm.composeEventHandlers)(a.onFocus,()=>k.onItemFocus(j)),onKeyDown:(0,cm.composeEventHandlers)(a.onKeyDown,a=>{if("Tab"===a.key&&a.shiftKey)return void k.onItemShiftTab();if(a.target!==a.currentTarget)return;let b=function(a,b,c){var d;let e=(d=a.key,"rtl"!==c?d:"ArrowLeft"===d?"ArrowRight":"ArrowRight"===d?"ArrowLeft":d);if(!("vertical"===b&&["ArrowLeft","ArrowRight"].includes(e))&&!("horizontal"===b&&["ArrowUp","ArrowDown"].includes(e)))return nh[e]}(a,k.orientation,k.dir);if(void 0!==b){if(a.metaKey||a.ctrlKey||a.altKey||a.shiftKey)return;a.preventDefault();let e=m().filter(a=>a.focusable).map(a=>a.ref.current);if("last"===b)e.reverse();else if("prev"===b||"next"===b){var c,d;"prev"===b&&e.reverse();let f=e.indexOf(a.currentTarget);e=k.loop?(c=e,d=f+1,c.map((a,b)=>c[(d+b)%c.length])):e.slice(f+1)}setTimeout(()=>ni(e))}}),children:"function"==typeof g?g({isCurrentTabStop:l,hasTabStop:null!=p}):g})})});ng.displayName=nf;var nh={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function ni(a,b=!1){let c=document.activeElement;for(let d of a)if(d===c||(d.focus({preventScroll:b}),document.activeElement!==c))return}var nj="Tabs",[nk,nl]=(0,ch.createContextScope)(nj,[na]),nm=na(),[nn,no]=nk(nj),np=z.forwardRef((a,b)=>{let{__scopeTabs:c,value:d,onValueChange:e,defaultValue:f,orientation:g="horizontal",dir:h,activationMode:i="automatic",...j}=a,k=ck(h),[l,m]=(0,c_.useControllableState)({prop:d,onChange:e,defaultProp:f??"",caller:nj});return(0,y.jsx)(nn,{scope:c,baseId:c$(),value:l,onValueChange:m,orientation:g,dir:k,activationMode:i,children:(0,y.jsx)(cf.Primitive.div,{dir:k,"data-orientation":g,...j,ref:b})})});np.displayName=nj;var nq="TabsList",nr=z.forwardRef((a,b)=>{let{__scopeTabs:c,loop:d=!0,...e}=a,f=no(nq,c),g=nm(c);return(0,y.jsx)(nd,{asChild:!0,...g,orientation:f.orientation,dir:f.dir,loop:d,children:(0,y.jsx)(cf.Primitive.div,{role:"tablist","aria-orientation":f.orientation,...e,ref:b})})});nr.displayName=nq;var ns="TabsTrigger",nt=z.forwardRef((a,b)=>{let{__scopeTabs:c,value:d,disabled:e=!1,...f}=a,g=no(ns,c),h=nm(c),i=nw(g.baseId,d),j=nx(g.baseId,d),k=d===g.value;return(0,y.jsx)(ng,{asChild:!0,...h,focusable:!e,active:k,children:(0,y.jsx)(cf.Primitive.button,{type:"button",role:"tab","aria-selected":k,"aria-controls":j,"data-state":k?"active":"inactive","data-disabled":e?"":void 0,disabled:e,id:i,...f,ref:b,onMouseDown:(0,cm.composeEventHandlers)(a.onMouseDown,a=>{e||0!==a.button||!1!==a.ctrlKey?a.preventDefault():g.onValueChange(d)}),onKeyDown:(0,cm.composeEventHandlers)(a.onKeyDown,a=>{[" ","Enter"].includes(a.key)&&g.onValueChange(d)}),onFocus:(0,cm.composeEventHandlers)(a.onFocus,()=>{let a="manual"!==g.activationMode;k||e||!a||g.onValueChange(d)})})})});nt.displayName=ns;var nu="TabsContent",nv=z.forwardRef((a,b)=>{let{__scopeTabs:c,value:d,forceMount:e,children:f,...g}=a,h=no(nu,c),i=nw(h.baseId,d),j=nx(h.baseId,d),k=d===h.value,l=z.useRef(k);return z.useEffect(()=>{let a=requestAnimationFrame(()=>l.current=!1);return()=>cancelAnimationFrame(a)},[]),(0,y.jsx)(cg.Presence,{present:e||k,children:({present:c})=>(0,y.jsx)(cf.Primitive.div,{"data-state":k?"active":"inactive","data-orientation":h.orientation,role:"tabpanel","aria-labelledby":i,hidden:!c,id:j,tabIndex:0,...g,ref:b,style:{...a.style,animationDuration:l.current?"0s":void 0},children:c&&f})})});function nw(a,b){return`${a}-trigger-${b}`}function nx(a,b){return`${a}-content-${b}`}function ny({className:a,...b}){return(0,y.jsx)(np,{"data-slot":"tabs",className:(0,bE.cn)("flex flex-col gap-2",a),...b})}function nz({className:a,...b}){return(0,y.jsx)(nr,{"data-slot":"tabs-list",className:(0,bE.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",a),...b})}function nA({className:a,...b}){return(0,y.jsx)(nt,{"data-slot":"tabs-trigger",className:(0,bE.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a),...b})}function nB({className:a,...b}){return(0,y.jsx)(nv,{"data-slot":"tabs-content",className:(0,bE.cn)("flex-1 outline-none",a),...b})}nv.displayName=nu;let nC=(0,bd.default)("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"}]]),nD=(0,bd.default)("chart-column",[["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"}]]),nE=(0,bd.default)("navigation",[["polygon",{points:"3 11 22 2 13 21 11 13 3 11",key:"1ltx0t"}]]),nF=(0,bd.default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),nG=(0,bd.default)("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"}]]),nH=(0,lr.default)(async()=>{},{loadableGenerated:{modules:[16633]},ssr:!1}),nI=(0,lr.default)(async()=>{},{loadableGenerated:{modules:[76103]},ssr:!1}),nJ=(0,lr.default)(async()=>{},{loadableGenerated:{modules:[54777]},ssr:!1}),nK=(0,lr.default)(async()=>{},{loadableGenerated:{modules:[49701]},ssr:!1});function nL(){let a,b,c,d,e,f,g,h,i,j;a=bc(a=>a.tick),b=bc(a=>a.autoDecodeTick),c=bc(a=>a.tickTide),d=bc(a=>a.checkAchievements),e=bc(a=>a.init),f=(0,z.useRef)(!1),(0,z.useEffect)(()=>{let g=()=>{f.current||(e(),f.current=!0)},h=null,i=null;bc.persist.hasHydrated()?g():(h=bc.persist.onFinishHydration(g),i=setTimeout(g,500));let j=0,k=setInterval(()=>{let e=Date.now();a(e),b(),c(e),++j%4==0&&d()},250);return()=>{clearInterval(k),h&&h(),i&&clearTimeout(i)}},[a,b,c,d,e]),(0,z.useEffect)(()=>{let b=()=>{"visible"===document.visibilityState&&(a(Date.now()),c(Date.now()),d())};return document.addEventListener("visibilitychange",b),()=>document.removeEventListener("visibilitychange",b)},[a,c,d]),g=bc(a=>a.soundOn),(0,z.useEffect)(()=>{bN().setEnabled(g)},[g]),h=bc(a=>a.triggerGlobalTide),i=(0,z.useRef)(h),(0,z.useEffect)(()=>{i.current=h},[h]),j=(0,z.useRef)(new Set),(0,z.useEffect)(()=>{let a=(m$||(m$=mZ("/?XTransformPort=3031",{transports:["websocket","polling"],reconnection:!0,reconnectionAttempts:1/0,reconnectionDelay:1e3,reconnectionDelayMax:1e4,timeout:1e4})),m$);m_+=1;let b=a=>{let b=`${a.startedAt}_${a.type}`;if(!j.current.has(b)){if(j.current.add(b),j.current.size>32){let a=j.current.values().next().value;a&&j.current.delete(a)}a.endsAt<=Date.now()||i.current(a.type)}},c=a=>{if(a.current&&a.current.endsAt>Date.now()){let b=`${a.current.startedAt}_${a.current.type}`;j.current.has(b)||(j.current.add(b),i.current(a.current.type))}};return a.on("global-tide",b),a.on("tide-state",c),a.emit("get-next-tide"),()=>{a.off("global-tide",b),a.off("tide-state",c),(m_-=1)<=0&&m$&&(m$.disconnect(),m$=null,m_=0)}},[]);let[k,l]=(0,z.useState)(!1),[m,n]=(0,z.useState)(!1),[o,p]=(0,z.useState)(!1),[q,r]=(0,z.useState)(!1),[s,t]=(0,z.useState)(!1),[u,v]=(0,z.useState)(!1),w=bc(a=>a.contact),x=bc(a=>a.totalDecoded),B=bc(a=>a.crystalsPerSec),C=bc(a=>a.ascensions),D=bc(a=>a.tech),E=bc(a=>a.fragments),F=bc(a=>a.achievements),G=bc(a=>a.constellation??[]),H=bc(a=>a.pendingPerkChoices),I=bc(a=>a.crystals),J=bc(a=>a.crystalCap),K=bc(a=>a.activeTide),L=bc(a=>a.globalTide),N=bc(a=>a.energy),O=bc(a=>!!a.activeExpedition&&!a.activeExpedition.finished),P=bc(a=>a.chronicle?.length??0),S=bc(a=>a.pendingAttrPoints??0),[U,V]=(0,z.useState)(!1);if((0,z.useEffect)(()=>{let a=!1,b=()=>{try{let b=aK(),c=aQ();a||V(null!==c.completedAt&&!c.claimed&&c.dateKey===b.dateKey)}catch{a||V(!1)}};b();let c=setInterval(b,2e3);return()=>{a=!0,clearInterval(c)}},[]),(0,z.useEffect)(()=>{v(!0)},[]),!u)return(0,y.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[#050410] text-muted-foreground",children:(0,y.jsx)("div",{className:"animate-pulse",children:"唤醒回响中…"})});let W=Object.values(D).filter(a=>a>0).length,X=Object.values(E).filter(Boolean).length,Y=Object.values(F).filter(Boolean).length,Z=w>=100,$=H&&H.length>0,_=I>=.98*J,aa="点击中央晶体发起脉冲,累积记忆晶体";if(0===x&&I>=5?aa="右侧「待解码晶体」点击一颗晶体,开始解码":x>0&&0===W?aa="用洞见解锁技术树,提升产能":x>0&&X<M.length&&(aa=`继续解码,拼凑记忆图谱(${X}/${M.length})`),N>=1&&x>=3&&(aa="「探险」标签可深入遗迹,获取丰厚奖励"),C>=1&&G.length>0&&(aa=`星图天赋已觉醒 ${G.length}/18,继续飞升获取更多`),_&&(aa="⚠ 仓库已满,产能浪费中!请解码晶体或升级仓库"),$&&(aa="✦ 星图觉醒!点击顶部「星图」按钮选择一道天赋"),K){let a=T[K.type];aa=`${L?"🌐 全球星潮 · ":""}${a.icon} 星潮「${a.name}」进行中 \xb7 ${a.desc}`}return Z&&(aa="✦ 接触进度已满,可发起飞升进入新周目"),(0,y.jsxs)("div",{className:"relative min-h-screen flex flex-col bg-[#050410] text-foreground overflow-x-hidden",children:[(0,y.jsx)(A,{className:"fixed inset-0 w-full h-full -z-10"}),(0,y.jsx)(lQ,{}),(0,y.jsxs)("header",{className:"sticky top-0 z-30 px-3 sm:px-5 pt-3 pb-2",children:[(0,y.jsxs)("div",{className:"flex items-center gap-3 mb-2.5",children:[(0,y.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,y.jsxs)("div",{className:"relative h-9 w-9",children:[(0,y.jsx)("div",{className:"absolute inset-0 rounded-full bg-gradient-to-br from-emerald-400 via-fuchsia-500 to-rose-400 blur-md opacity-60"}),(0,y.jsx)("div",{className:"absolute inset-1 rounded-full bg-[#050410] flex items-center justify-center",children:(0,y.jsx)(b_,{className:"h-4 w-4 text-fuchsia-300"})})]}),(0,y.jsxs)("div",{className:"leading-tight",children:[(0,y.jsx)("h1",{className:"text-base sm:text-lg font-bold text-gradient font-display",children:"回响星核"}),(0,y.jsx)("p",{className:"text-[9px] sm:text-[10px] text-muted-foreground/70 -mt-0.5 tracking-wider font-tech",children:"ECHO NEXUS · v0.10"})]})]}),(0,y.jsxs)("div",{className:"ml-auto flex items-center gap-1.5",children:[(0,y.jsx)(lP,{}),(0,y.jsxs)(bZ,{size:"sm",variant:"outline",onClick:()=>t(!0),className:"border-amber-400/50 text-amber-200 hover:bg-amber-500/10 h-8 px-2.5","aria-label":"深空巡航",title:"深空巡航 · 实时玩法",children:[(0,y.jsx)(nE,{className:"h-3.5 w-3.5 mr-1"}),"巡航"]}),(0,y.jsxs)(bZ,{size:"icon",variant:"ghost",onClick:()=>r(!0),className:"h-8 w-8 relative group","aria-label":"编年史",title:"回响编年史",children:[(0,y.jsx)(ca,{className:"h-4 w-4 group-hover:text-fuchsia-300 transition-colors"}),P>0&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 min-w-[14px] h-[14px] px-1 rounded-full bg-fuchsia-500 text-[9px] font-mono font-bold text-white flex items-center justify-center border border-fuchsia-300/50",children:P})]}),$&&(0,y.jsxs)(bZ,{size:"sm",variant:"outline",onClick:()=>p(!0),className:"border-fuchsia-400/60 text-fuchsia-200 hover:bg-fuchsia-500/15 h-8 px-2.5 animate-pulse",children:[(0,y.jsx)(ex,{className:"h-3.5 w-3.5 mr-1"}),"觉醒"]}),Z&&(0,y.jsxs)(bZ,{size:"sm",variant:"outline",onClick:()=>l(!0),"data-tut":"prestige-btn",className:"border-fuchsia-400/50 text-fuchsia-200 hover:bg-fuchsia-500/10 h-8 px-2.5",children:[(0,y.jsx)(bh,{className:"h-3.5 w-3.5 mr-1"}),"飞升"]}),(0,y.jsx)(bZ,{size:"icon",variant:"ghost",onClick:()=>n(!0),className:"h-8 w-8","aria-label":"设置",children:(0,y.jsx)(nC,{className:"h-4 w-4"})})]})]}),(0,y.jsx)(bG,{onPrestige:()=>l(!0)})]}),(0,y.jsx)("main",{className:"flex-1 px-3 sm:px-5 pb-3 min-h-0",children:(0,y.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-[minmax(300px,360px)_1fr] gap-3 h-full",children:[(0,y.jsxs)("section",{className:"glass rounded-2xl p-3 sm:p-4 flex flex-col gap-3 min-h-[340px] sm:min-h-[420px] relative overflow-hidden",children:[(0,y.jsx)("div",{className:"pointer-events-none absolute -top-16 -left-16 h-40 w-40 rounded-full bg-emerald-500/10 blur-3xl"}),(0,y.jsx)("div",{className:"pointer-events-none absolute -bottom-16 -right-16 h-40 w-40 rounded-full bg-fuchsia-500/10 blur-3xl"}),(0,y.jsx)("div",{className:"pointer-events-none absolute inset-4 rounded-full border border-emerald-400/10 animate-[spin_60s_linear_infinite]"}),(0,y.jsx)("div",{className:"pointer-events-none absolute inset-8 rounded-full border border-dashed border-fuchsia-400/10 animate-[spin_90s_linear_infinite_reverse]"}),(0,y.jsx)("div",{className:"pointer-events-none absolute top-2 left-2 h-3 w-3 border-l border-t border-emerald-400/30 rounded-tl"}),(0,y.jsx)("div",{className:"pointer-events-none absolute top-2 right-2 h-3 w-3 border-r border-t border-fuchsia-400/30 rounded-tr"}),(0,y.jsx)("div",{className:"pointer-events-none absolute bottom-2 left-2 h-3 w-3 border-l border-b border-amber-400/30 rounded-bl"}),(0,y.jsx)("div",{className:"pointer-events-none absolute bottom-2 right-2 h-3 w-3 border-r border-b border-rose-400/30 rounded-br"}),(0,y.jsxs)("div",{className:"pointer-events-none absolute top-2 left-1/2 -translate-x-1/2 flex items-center gap-1.5 text-[8px] font-mono text-muted-foreground/60 z-10",children:[(0,y.jsx)("span",{className:"h-1 w-1 rounded-full bg-emerald-400 animate-pulse"}),(0,y.jsx)("span",{className:"font-tech",children:"CRYSTAL CORE · ONLINE"}),(0,y.jsx)("span",{className:"h-1 w-1 rounded-full bg-fuchsia-400 animate-pulse"})]}),(0,y.jsx)("div",{"data-tut":"crystal-orb",className:"relative flex justify-center pt-3",children:(0,y.jsx)(bX,{})}),(0,y.jsx)(nM,{}),(0,y.jsx)(lE,{})]}),(0,y.jsxs)("section",{className:"flex flex-col gap-3 min-h-0",children:[(0,y.jsx)("div",{"data-tut":"decode-panel",className:"glass rounded-2xl p-4 flex-1 min-h-[280px] sm:min-h-[320px] max-h-[480px]",children:(0,y.jsx)(b4,{})}),(0,y.jsx)("div",{className:"glass rounded-2xl p-3 min-h-[320px] sm:min-h-[380px] max-h-[560px] flex flex-col",children:(0,y.jsxs)(ny,{defaultValue:O?"expedition":$?"constellation":"tech",className:"h-full flex flex-col",children:[(0,y.jsxs)(nz,{className:"grid grid-cols-3 sm:grid-cols-9 h-auto sm:h-9 bg-black/30 gap-0.5 p-1",children:[(0,y.jsxs)(nA,{value:"expedition","data-tut":"tab-expedition",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-amber-500/15 data-[state=active]:shadow-[0_0_12px_rgba(251,191,36,0.3)] transition-all",children:[(0,y.jsx)(b9,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"探险"}),N>=1&&!O&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-amber-400 animate-pulse ring-1 ring-black/50"}),O&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-rose-400 animate-pulse ring-1 ring-black/50"})]}),(0,y.jsxs)(nA,{value:"tech","data-tut":"tab-tech",className:"text-[11px] gap-1 px-0.5 flex-col h-7 data-[state=active]:bg-emerald-500/15 data-[state=active]:shadow-[0_0_12px_rgba(52,211,153,0.3)] transition-all",children:[(0,y.jsx)(lB,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"技术"})]}),(0,y.jsxs)(nA,{value:"constellation",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-fuchsia-500/15 data-[state=active]:shadow-[0_0_12px_rgba(232,121,249,0.3)] transition-all",children:[(0,y.jsx)(ex,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"星图"}),$&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-fuchsia-400 animate-pulse ring-1 ring-black/50"})]}),(0,y.jsxs)(nA,{value:"codex",className:"text-[11px] gap-1 px-0.5 flex-col h-7 data-[state=active]:bg-cyan-500/15 data-[state=active]:shadow-[0_0_12px_rgba(34,211,238,0.3)] transition-all",children:[(0,y.jsx)(ca,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"图谱"})]}),(0,y.jsxs)(nA,{value:"ach",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-amber-500/15 data-[state=active]:shadow-[0_0_12px_rgba(251,191,36,0.3)] transition-all",children:[(0,y.jsx)(e4,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"成就"}),Y<R.length&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-amber-400 animate-pulse ring-1 ring-black/50"})]}),(0,y.jsxs)(nA,{value:"beacon",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-emerald-500/15 data-[state=active]:shadow-[0_0_12px_rgba(52,211,153,0.3)] transition-all",children:[(0,y.jsx)(la,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"信标"}),U&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-emerald-400 animate-pulse ring-1 ring-black/50"})]}),(0,y.jsxs)(nA,{value:"stats",className:"text-[11px] gap-1 px-0.5 flex-col h-7 data-[state=active]:bg-slate-500/15 data-[state=active]:shadow-[0_0_12px_rgba(148,163,184,0.3)] transition-all",children:[(0,y.jsx)(nD,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"统计"})]}),(0,y.jsxs)(nA,{value:"attributes",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-gradient-to-br data-[state=active]:from-emerald-500/15 data-[state=active]:via-fuchsia-500/15 data-[state=active]:to-rose-500/15 data-[state=active]:shadow-[0_0_12px_rgba(232,121,249,0.3)] transition-all",children:[(0,y.jsx)(nF,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"角色"}),S>0&&(0,y.jsx)("span",{className:"absolute -top-0.5 -right-0.5 h-2 w-2 rounded-full bg-rose-400 animate-pulse ring-1 ring-black/50"})]}),(0,y.jsxs)(nA,{value:"relic",className:"text-[11px] gap-1 relative px-0.5 flex-col h-7 data-[state=active]:bg-fuchsia-500/15 data-[state=active]:shadow-[0_0_12px_rgba(232,121,249,0.3)] transition-all",children:[(0,y.jsx)(lH,{className:"h-3.5 w-3.5"}),(0,y.jsx)("span",{className:"leading-none",children:"图鉴"})]})]}),(0,y.jsx)(nB,{value:"expedition",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(e3,{})}),(0,y.jsx)(nB,{value:"tech",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(ce,{})}),(0,y.jsx)(nB,{value:"constellation",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(k9,{})}),(0,y.jsx)(nB,{value:"codex",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(cX,{})}),(0,y.jsx)(nB,{value:"ach",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(e7,{})}),(0,y.jsx)(nB,{value:"beacon",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(lo,{})}),(0,y.jsx)(nB,{value:"stats",className:"flex-1 mt-2 min-h-0",children:(0,y.jsx)(nN,{})}),(0,y.jsx)(nB,{value:"attributes",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(ly,{})}),(0,y.jsx)(nB,{value:"relic",className:"flex-1 mt-2 min-h-0 data-[state=active]:flex data-[state=active]:flex-col",children:(0,y.jsx)(lK,{})})]})})]})]})}),(0,y.jsx)("div",{className:"px-3 sm:px-5 pb-1 shrink-0",children:(0,y.jsx)(lN,{})}),(0,y.jsx)("footer",{className:"sticky bottom-0 z-20 mt-auto px-3 sm:px-5 pb-2 pt-1",children:(0,y.jsxs)("div",{className:`glass rounded-xl px-3 py-2 flex items-center gap-2 text-xs ${_?"border-amber-400/40 animate-pulse":""} ${K?"border-white/20":""}`,style:K?{boxShadow:`inset 0 0 16px ${T[K.type].glow}`}:void 0,children:[(0,y.jsx)("span",{className:_?"text-amber-400":K?"":"text-fuchsia-300",style:K?{color:T[K.type].color}:void 0,children:"▶"}),(0,y.jsx)("span",{className:`flex-1 truncate ${_?"text-amber-200":"text-muted-foreground"}`,children:aa}),(0,y.jsx)("span",{className:"hidden sm:inline text-muted-foreground/60",children:"|"}),(0,y.jsxs)("span",{className:"hidden sm:inline text-muted-foreground/70",children:["产能 ",Q(B),"/s"]}),(0,y.jsx)("a",{href:"https://git.atdunbg.xyz/Super_Z/echo-nexus",target:"_blank",rel:"noreferrer",className:"text-muted-foreground/60 hover:text-foreground transition ml-1","aria-label":"仓库",children:(0,y.jsx)(eP,{className:"h-3.5 w-3.5"})})]})}),(0,y.jsx)(ey,{open:k,onOpenChange:l}),(0,y.jsx)(nH,{open:q,onOpenChange:r}),(0,y.jsx)(nI,{open:o,onOpenChange:p}),(0,y.jsx)(eV,{open:m,onOpenChange:n}),(0,y.jsx)(k8,{}),(0,y.jsx)(lO,{}),(0,y.jsx)(lq,{}),(0,y.jsx)(nJ,{}),s&&(0,y.jsx)(nK,{onClose:()=>t(!1)})]})}function nM(){let a=bc(a=>a.crystalsPerSec),b=bc(a=>a.pulsePower),c=bc(a=>a._combo),d=bc(a=>a.crystals),e=bc(a=>a.crystalCap),f=c>=1?1+(c-1)*.15:1,g=c>=3,h=(e>0?d/e*100:0)>=90;return(0,y.jsxs)("div",{className:"mt-3 grid grid-cols-2 sm:grid-cols-4 gap-2 w-full max-w-md pointer-events-none",children:[(0,y.jsxs)("div",{className:"rounded-lg border border-emerald-400/30 bg-black/30 backdrop-blur p-2 flex items-center gap-1.5",children:[(0,y.jsx)(be,{className:"h-3.5 w-3.5 text-emerald-400 shrink-0"}),(0,y.jsxs)("div",{className:"min-w-0 leading-tight",children:[(0,y.jsx)("div",{className:"text-[9px] uppercase tracking-wider text-emerald-300/70 truncate",children:"晶体产能"}),(0,y.jsxs)("div",{className:"text-sm font-mono tabular-nums text-emerald-200 truncate",children:[Q(a),(0,y.jsx)("span",{className:"text-[9px] text-emerald-300/60",children:"/s"})]})]})]}),(0,y.jsxs)("div",{className:"rounded-lg border border-rose-400/30 bg-black/30 backdrop-blur p-2 flex items-center gap-1.5",children:[(0,y.jsx)(e_,{className:"h-3.5 w-3.5 text-rose-400 shrink-0"}),(0,y.jsxs)("div",{className:"min-w-0 leading-tight",children:[(0,y.jsx)("div",{className:"text-[9px] uppercase tracking-wider text-rose-300/70 truncate",children:"主动脉冲"}),(0,y.jsxs)("div",{className:"text-sm font-mono tabular-nums text-rose-200 truncate",children:[Q(b),c>=1&&(0,y.jsxs)("span",{className:"text-[9px] text-rose-300/80",children:[" ×",f.toFixed(2)]})]})]})]}),(0,y.jsxs)("div",{className:`rounded-lg border bg-black/30 backdrop-blur p-2 flex items-center gap-1.5 ${g?"border-amber-400/70 animate-pulse":"border-amber-400/30"}`,children:[(0,y.jsx)(lg,{className:`h-3.5 w-3.5 text-amber-400 shrink-0 ${g?"drop-shadow-[0_0_4px_rgba(251,191,36,0.7)]":""}`}),(0,y.jsxs)("div",{className:"min-w-0 leading-tight",children:[(0,y.jsx)("div",{className:"text-[9px] uppercase tracking-wider text-amber-300/70 truncate",children:"当前连击"}),(0,y.jsxs)("div",{className:`text-sm font-mono tabular-nums truncate ${g?"text-amber-200":"text-amber-300/80"}`,children:[c,(0,y.jsx)("span",{className:"text-[9px] text-amber-300/60",children:"/10"})]})]})]}),(0,y.jsxs)("div",{className:`rounded-lg border bg-black/30 backdrop-blur p-2 flex items-center gap-1.5 ${h?"border-rose-400/70 animate-pulse":"border-fuchsia-400/30"}`,children:[(0,y.jsx)(nG,{className:`h-3.5 w-3.5 shrink-0 ${h?"text-rose-400":"text-fuchsia-400"}`}),(0,y.jsxs)("div",{className:"min-w-0 leading-tight",children:[(0,y.jsx)("div",{className:`text-[9px] uppercase tracking-wider truncate ${h?"text-rose-300/80":"text-fuchsia-300/70"}`,children:"仓库容量"}),(0,y.jsxs)("div",{className:`text-sm font-mono tabular-nums truncate ${h?"text-rose-200":"text-fuchsia-200"}`,children:[Q(d),(0,y.jsxs)("span",{className:`text-[9px] ${h?"text-rose-300/70":"text-fuchsia-300/60"}`,children:["/",Q(e)]})]})]})]})]})}function nN(){let a=bc(a=>({totalDecoded:a.totalDecoded,ascensions:a.ascensions,blueprints:a.blueprints,tech:a.tech,fragments:a.fragments,achievements:a.achievements,constellation:a.constellation,contact:a.contact,crystalsPerSec:a.crystalsPerSec,crystalCap:a.crystalCap,insightMult:a.insightMult,totalExpeditions:a.totalExpeditions,bossKills:a.bossKills,starTidesEncountered:a.starTidesEncountered,chronicle:a.chronicle,energy:a.energy,energyMax:a.energyMax,attributes:a.attributes,pendingAttrPoints:a.pendingAttrPoints}),m1),b=Object.values(a.achievements).filter(Boolean).length,[c,d]=(0,z.useState)(null);(0,z.useEffect)(()=>{try{let a=aO();d(a.length>0?a[0].score:null)}catch{d(null)}},[]);let e=[{label:"累计解码晶体",value:`${a.totalDecoded} 颗`},{label:"飞升周目",value:`${a.ascensions}`},{label:"持有蓝图",value:`${a.blueprints.length} / 6`},{label:"已学技术",value:`${Object.values(a.tech).filter(a=>a>0).length} / ${K.length}`},{label:"已获碎片",value:`${Object.values(a.fragments).filter(Boolean).length} / ${M.length}`},{label:"已解锁成就",value:`${b} / ${R.length}`},{label:"星图天赋",value:`${a.constellation?.length??0} / ${Y.length}`},{label:"接触进度",value:`${a.contact.toFixed(1)}%`},{label:"晶体产能",value:`${a.crystalsPerSec.toFixed(2)} /s`},{label:"仓库上限",value:`${Q(a.crystalCap)}`},{label:"洞见倍率",value:`\xd7${a.insightMult.toFixed(2)}`},{label:"累计探险",value:`${a.totalExpeditions} 次`},{label:"BOSS 击破",value:`${a.bossKills??0} 次`},{label:"星潮亲历",value:`${(a.starTidesEncountered??[]).length} / 9`},{label:"编年史条目",value:`${(a.chronicle??[]).length} 纪元`},{label:"探险能量",value:`${Math.floor(a.energy)} / ${a.energyMax}`},{label:"信标最高分",value:null!==c?Q(c):"—"},{label:"探索力",value:`${a.attributes?.exploration??0} / 100`},{label:"智慧",value:`${a.attributes?.wisdom??0} / 100`},{label:"勇气",value:`${a.attributes?.courage??0} / 100`},{label:"灵感",value:`${a.attributes?.inspiration??0} / 100`},{label:"待分配属性点",value:`${a.pendingAttrPoints??0}`}];return(0,y.jsx)("div",{className:"grid grid-cols-2 gap-1.5 text-xs",children:e.map(a=>(0,y.jsxs)("div",{className:"flex items-center justify-between rounded-md bg-black/25 border border-white/5 px-2 py-1.5",children:[(0,y.jsx)("span",{className:"text-muted-foreground",children:a.label}),(0,y.jsx)("span",{className:"font-mono text-foreground",children:a.value})]},a.label))})}a.s(["default",()=>nL],40777)}];
|
||
|
||
//# sourceMappingURL=%5Broot-of-the-server%5D__784abf88._.js.map
|