From 94db64fc620c2bb271f8ec3054b424402d1838f1 Mon Sep 17 00:00:00 2001 From: Jack Kingsman Date: Thu, 15 Jan 2026 11:01:08 -0800 Subject: [PATCH] Add + as indicator unreads matching length of conversation fetch --- .../{index-DkHyTtP0.js => index-CG0iOYhX.js} | 66 +++++++++---------- frontend/dist/assets/index-CG0iOYhX.js.map | 1 + frontend/dist/assets/index-DkHyTtP0.js.map | 1 - frontend/dist/index.html | 2 +- frontend/src/api.ts | 5 +- frontend/src/components/Sidebar.tsx | 10 ++- frontend/src/hooks/useUnreadCounts.ts | 4 +- 7 files changed, 49 insertions(+), 40 deletions(-) rename frontend/dist/assets/{index-DkHyTtP0.js => index-CG0iOYhX.js} (74%) create mode 100644 frontend/dist/assets/index-CG0iOYhX.js.map delete mode 100644 frontend/dist/assets/index-DkHyTtP0.js.map diff --git a/frontend/dist/assets/index-DkHyTtP0.js b/frontend/dist/assets/index-CG0iOYhX.js similarity index 74% rename from frontend/dist/assets/index-DkHyTtP0.js rename to frontend/dist/assets/index-CG0iOYhX.js index 3d1e443..eca6af1 100644 --- a/frontend/dist/assets/index-DkHyTtP0.js +++ b/frontend/dist/assets/index-CG0iOYhX.js @@ -1,4 +1,4 @@ -var pv=Object.defineProperty;var mv=(r,a,s)=>a in r?pv(r,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[a]=s;var Fo=(r,a,s)=>mv(r,typeof a!="symbol"?a+"":a,s);function Av(r,a){for(var s=0;sl[f]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))l(f);new MutationObserver(f=>{for(const d of f)if(d.type==="childList")for(const m of d.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&l(m)}).observe(document,{childList:!0,subtree:!0});function s(f){const d={};return f.integrity&&(d.integrity=f.integrity),f.referrerPolicy&&(d.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?d.credentials="include":f.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function l(f){if(f.ep)return;f.ep=!0;const d=s(f);fetch(f.href,d)}})();var yf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Us(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function xA(r){if(Object.prototype.hasOwnProperty.call(r,"__esModule"))return r;var a=r.default;if(typeof a=="function"){var s=function l(){return this instanceof l?Reflect.construct(a,arguments,this.constructor):a.apply(this,arguments)};s.prototype=a.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(r).forEach(function(l){var f=Object.getOwnPropertyDescriptor(r,l);Object.defineProperty(s,l,f.get?f:{enumerable:!0,get:function(){return r[l]}})}),s}var _f={exports:{}},Ma={},wf={exports:{}},st={};/** +var Av=Object.defineProperty;var gv=(r,a,s)=>a in r?Av(r,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[a]=s;var Fo=(r,a,s)=>gv(r,typeof a!="symbol"?a+"":a,s);function xv(r,a){for(var s=0;sl[f]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))l(f);new MutationObserver(f=>{for(const d of f)if(d.type==="childList")for(const m of d.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&l(m)}).observe(document,{childList:!0,subtree:!0});function s(f){const d={};return f.integrity&&(d.integrity=f.integrity),f.referrerPolicy&&(d.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?d.credentials="include":f.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function l(f){if(f.ep)return;f.ep=!0;const d=s(f);fetch(f.href,d)}})();var yf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Us(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function yA(r){if(Object.prototype.hasOwnProperty.call(r,"__esModule"))return r;var a=r.default;if(typeof a=="function"){var s=function l(){return this instanceof l?Reflect.construct(a,arguments,this.constructor):a.apply(this,arguments)};s.prototype=a.prototype}else s={};return Object.defineProperty(s,"__esModule",{value:!0}),Object.keys(r).forEach(function(l){var f=Object.getOwnPropertyDescriptor(r,l);Object.defineProperty(s,l,f.get?f:{enumerable:!0,get:function(){return r[l]}})}),s}var _f={exports:{}},Ma={},wf={exports:{}},st={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ var pv=Object.defineProperty;var mv=(r,a,s)=>a in r?pv(r,a,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var dp;function gv(){if(dp)return st;dp=1;var r=Symbol.for("react.element"),a=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),d=Symbol.for("react.provider"),m=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),x=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),v=Symbol.iterator;function w(D){return D===null||typeof D!="object"?null:(D=v&&D[v]||D["@@iterator"],typeof D=="function"?D:null)}var S={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},T=Object.assign,C={};function E(D,Z,K){this.props=D,this.context=Z,this.refs=C,this.updater=K||S}E.prototype.isReactComponent={},E.prototype.setState=function(D,Z){if(typeof D!="object"&&typeof D!="function"&&D!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,D,Z,"setState")},E.prototype.forceUpdate=function(D){this.updater.enqueueForceUpdate(this,D,"forceUpdate")};function P(){}P.prototype=E.prototype;function B(D,Z,K){this.props=D,this.context=Z,this.refs=C,this.updater=K||S}var k=B.prototype=new P;k.constructor=B,T(k,E.prototype),k.isPureReactComponent=!0;var N=Array.isArray,I=Object.prototype.hasOwnProperty,z={current:null},j={key:!0,ref:!0,__self:!0,__source:!0};function H(D,Z,K){var X,fe={},he=null,ke=null;if(Z!=null)for(X in Z.ref!==void 0&&(ke=Z.ref),Z.key!==void 0&&(he=""+Z.key),Z)I.call(Z,X)&&!j.hasOwnProperty(X)&&(fe[X]=Z[X]);var Ae=arguments.length-2;if(Ae===1)fe.children=K;else if(1a in r?pv(r,a,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var hp;function xv(){if(hp)return Ma;hp=1;var r=r0(),a=Symbol.for("react.element"),s=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,f=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,d={key:!0,ref:!0,__self:!0,__source:!0};function m(h,x,p){var y,v={},w=null,S=null;p!==void 0&&(w=""+p),x.key!==void 0&&(w=""+x.key),x.ref!==void 0&&(S=x.ref);for(y in x)l.call(x,y)&&!d.hasOwnProperty(y)&&(v[y]=x[y]);if(h&&h.defaultProps)for(y in x=h.defaultProps,x)v[y]===void 0&&(v[y]=x[y]);return{$$typeof:a,type:h,key:w,ref:S,props:v,_owner:f.current}}return Ma.Fragment=s,Ma.jsx=m,Ma.jsxs=m,Ma}var pp;function vv(){return pp||(pp=1,_f.exports=xv()),_f.exports}var F=vv(),R=r0();const be=Us(R),i0=Av({__proto__:null,default:be},[R]);var wu={},bf={exports:{}},Hn={},Cf={exports:{}},Ef={};/** + */var pp;function yv(){if(pp)return Ma;pp=1;var r=r0(),a=Symbol.for("react.element"),s=Symbol.for("react.fragment"),l=Object.prototype.hasOwnProperty,f=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,d={key:!0,ref:!0,__self:!0,__source:!0};function m(h,x,p){var y,v={},w=null,S=null;p!==void 0&&(w=""+p),x.key!==void 0&&(w=""+x.key),x.ref!==void 0&&(S=x.ref);for(y in x)l.call(x,y)&&!d.hasOwnProperty(y)&&(v[y]=x[y]);if(h&&h.defaultProps)for(y in x=h.defaultProps,x)v[y]===void 0&&(v[y]=x[y]);return{$$typeof:a,type:h,key:w,ref:S,props:v,_owner:f.current}}return Ma.Fragment=s,Ma.jsx=m,Ma.jsxs=m,Ma}var mp;function _v(){return mp||(mp=1,_f.exports=yv()),_f.exports}var F=_v(),R=r0();const Ce=Us(R),i0=xv({__proto__:null,default:Ce},[R]);var wu={},Cf={exports:{}},Hn={},bf={exports:{}},Ef={};/** * @license React * scheduler.production.min.js * @@ -22,7 +22,7 @@ var pv=Object.defineProperty;var mv=(r,a,s)=>a in r?pv(r,a,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var mp;function yv(){return mp||(mp=1,(function(r){function a(q,ge){var ne=q.length;q.push(ge);e:for(;0>>1,Z=q[D];if(0>>1;Df(fe,ne))hef(ke,fe)?(q[D]=ke,q[he]=ne,D=he):(q[D]=fe,q[X]=ne,D=X);else if(hef(ke,ne))q[D]=ke,q[he]=ne,D=he;else break e}}return ge}function f(q,ge){var ne=q.sortIndex-ge.sortIndex;return ne!==0?ne:q.id-ge.id}if(typeof performance=="object"&&typeof performance.now=="function"){var d=performance;r.unstable_now=function(){return d.now()}}else{var m=Date,h=m.now();r.unstable_now=function(){return m.now()-h}}var x=[],p=[],y=1,v=null,w=3,S=!1,T=!1,C=!1,E=typeof setTimeout=="function"?setTimeout:null,P=typeof clearTimeout=="function"?clearTimeout:null,B=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function k(q){for(var ge=s(p);ge!==null;){if(ge.callback===null)l(p);else if(ge.startTime<=q)l(p),ge.sortIndex=ge.expirationTime,a(x,ge);else break;ge=s(p)}}function N(q){if(C=!1,k(q),!T)if(s(x)!==null)T=!0,se(I);else{var ge=s(p);ge!==null&&de(N,ge.startTime-q)}}function I(q,ge){T=!1,C&&(C=!1,P(H),H=-1),S=!0;var ne=w;try{for(k(ge),v=s(x);v!==null&&(!(v.expirationTime>ge)||q&&!G());){var D=v.callback;if(typeof D=="function"){v.callback=null,w=v.priorityLevel;var Z=D(v.expirationTime<=ge);ge=r.unstable_now(),typeof Z=="function"?v.callback=Z:v===s(x)&&l(x),k(ge)}else l(x);v=s(x)}if(v!==null)var K=!0;else{var X=s(p);X!==null&&de(N,X.startTime-ge),K=!1}return K}finally{v=null,w=ne,S=!1}}var z=!1,j=null,H=-1,$=5,U=-1;function G(){return!(r.unstable_now()-U<$)}function re(){if(j!==null){var q=r.unstable_now();U=q;var ge=!0;try{ge=j(!0,q)}finally{ge?V():(z=!1,j=null)}}else z=!1}var V;if(typeof B=="function")V=function(){B(re)};else if(typeof MessageChannel<"u"){var J=new MessageChannel,le=J.port2;J.port1.onmessage=re,V=function(){le.postMessage(null)}}else V=function(){E(re,0)};function se(q){j=q,z||(z=!0,V())}function de(q,ge){H=E(function(){q(r.unstable_now())},ge)}r.unstable_IdlePriority=5,r.unstable_ImmediatePriority=1,r.unstable_LowPriority=4,r.unstable_NormalPriority=3,r.unstable_Profiling=null,r.unstable_UserBlockingPriority=2,r.unstable_cancelCallback=function(q){q.callback=null},r.unstable_continueExecution=function(){T||S||(T=!0,se(I))},r.unstable_forceFrameRate=function(q){0>q||125D?(q.sortIndex=ne,a(p,q),s(x)===null&&q===s(p)&&(C?(P(H),H=-1):C=!0,de(N,ne-D))):(q.sortIndex=Z,a(x,q),T||S||(T=!0,se(I))),q},r.unstable_shouldYield=G,r.unstable_wrapCallback=function(q){var ge=w;return function(){var ne=w;w=ge;try{return q.apply(this,arguments)}finally{w=ne}}}})(Ef)),Ef}var Ap;function _v(){return Ap||(Ap=1,Cf.exports=yv()),Cf.exports}/** + */var Ap;function wv(){return Ap||(Ap=1,(function(r){function a(q,ge){var ne=q.length;q.push(ge);e:for(;0>>1,Z=q[D];if(0>>1;Df(fe,ne))hef(ke,fe)?(q[D]=ke,q[he]=ne,D=he):(q[D]=fe,q[X]=ne,D=X);else if(hef(ke,ne))q[D]=ke,q[he]=ne,D=he;else break e}}return ge}function f(q,ge){var ne=q.sortIndex-ge.sortIndex;return ne!==0?ne:q.id-ge.id}if(typeof performance=="object"&&typeof performance.now=="function"){var d=performance;r.unstable_now=function(){return d.now()}}else{var m=Date,h=m.now();r.unstable_now=function(){return m.now()-h}}var x=[],p=[],y=1,v=null,w=3,S=!1,T=!1,b=!1,E=typeof setTimeout=="function"?setTimeout:null,P=typeof clearTimeout=="function"?clearTimeout:null,B=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function k(q){for(var ge=s(p);ge!==null;){if(ge.callback===null)l(p);else if(ge.startTime<=q)l(p),ge.sortIndex=ge.expirationTime,a(x,ge);else break;ge=s(p)}}function N(q){if(b=!1,k(q),!T)if(s(x)!==null)T=!0,se(I);else{var ge=s(p);ge!==null&&de(N,ge.startTime-q)}}function I(q,ge){T=!1,b&&(b=!1,P(H),H=-1),S=!0;var ne=w;try{for(k(ge),v=s(x);v!==null&&(!(v.expirationTime>ge)||q&&!G());){var D=v.callback;if(typeof D=="function"){v.callback=null,w=v.priorityLevel;var Z=D(v.expirationTime<=ge);ge=r.unstable_now(),typeof Z=="function"?v.callback=Z:v===s(x)&&l(x),k(ge)}else l(x);v=s(x)}if(v!==null)var K=!0;else{var X=s(p);X!==null&&de(N,X.startTime-ge),K=!1}return K}finally{v=null,w=ne,S=!1}}var z=!1,j=null,H=-1,$=5,U=-1;function G(){return!(r.unstable_now()-U<$)}function re(){if(j!==null){var q=r.unstable_now();U=q;var ge=!0;try{ge=j(!0,q)}finally{ge?V():(z=!1,j=null)}}else z=!1}var V;if(typeof B=="function")V=function(){B(re)};else if(typeof MessageChannel<"u"){var J=new MessageChannel,le=J.port2;J.port1.onmessage=re,V=function(){le.postMessage(null)}}else V=function(){E(re,0)};function se(q){j=q,z||(z=!0,V())}function de(q,ge){H=E(function(){q(r.unstable_now())},ge)}r.unstable_IdlePriority=5,r.unstable_ImmediatePriority=1,r.unstable_LowPriority=4,r.unstable_NormalPriority=3,r.unstable_Profiling=null,r.unstable_UserBlockingPriority=2,r.unstable_cancelCallback=function(q){q.callback=null},r.unstable_continueExecution=function(){T||S||(T=!0,se(I))},r.unstable_forceFrameRate=function(q){0>q||125D?(q.sortIndex=ne,a(p,q),s(x)===null&&q===s(p)&&(b?(P(H),H=-1):b=!0,de(N,ne-D))):(q.sortIndex=Z,a(x,q),T||S||(T=!0,se(I))),q},r.unstable_shouldYield=G,r.unstable_wrapCallback=function(q){var ge=w;return function(){var ne=w;w=ge;try{return q.apply(this,arguments)}finally{w=ne}}}})(Ef)),Ef}var gp;function Cv(){return gp||(gp=1,bf.exports=wv()),bf.exports}/** * @license React * react-dom.production.min.js * @@ -30,56 +30,56 @@ var pv=Object.defineProperty;var mv=(r,a,s)=>a in r?pv(r,a,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var gp;function wv(){if(gp)return Hn;gp=1;var r=r0(),a=_v();function s(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,o=1;o"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),x=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,y={},v={};function w(e){return x.call(v,e)?!0:x.call(y,e)?!1:p.test(e)?v[e]=!0:(y[e]=!0,!1)}function S(e,n,o,c){if(o!==null&&o.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return c?!1:o!==null?!o.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function T(e,n,o,c){if(n===null||typeof n>"u"||S(e,n,o,c))return!0;if(c)return!1;if(o!==null)switch(o.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function C(e,n,o,c,g,_,M){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=c,this.attributeNamespace=g,this.mustUseProperty=o,this.propertyName=e,this.type=n,this.sanitizeURL=_,this.removeEmptyString=M}var E={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){E[e]=new C(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];E[n]=new C(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){E[e]=new C(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){E[e]=new C(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){E[e]=new C(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){E[e]=new C(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){E[e]=new C(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){E[e]=new C(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){E[e]=new C(e,5,!1,e.toLowerCase(),null,!1,!1)});var P=/[\-:]([a-z])/g;function B(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(P,B);E[n]=new C(n,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(P,B);E[n]=new C(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(P,B);E[n]=new C(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){E[e]=new C(e,1,!1,e.toLowerCase(),null,!1,!1)}),E.xlinkHref=new C("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){E[e]=new C(e,1,!1,e.toLowerCase(),null,!0,!0)});function k(e,n,o,c){var g=E.hasOwnProperty(n)?E[n]:null;(g!==null?g.type!==0:c||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),x=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,y={},v={};function w(e){return x.call(v,e)?!0:x.call(y,e)?!1:p.test(e)?v[e]=!0:(y[e]=!0,!1)}function S(e,n,o,c){if(o!==null&&o.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return c?!1:o!==null?!o.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function T(e,n,o,c){if(n===null||typeof n>"u"||S(e,n,o,c))return!0;if(c)return!1;if(o!==null)switch(o.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function b(e,n,o,c,g,_,M){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=c,this.attributeNamespace=g,this.mustUseProperty=o,this.propertyName=e,this.type=n,this.sanitizeURL=_,this.removeEmptyString=M}var E={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){E[e]=new b(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];E[n]=new b(n,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){E[e]=new b(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){E[e]=new b(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){E[e]=new b(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){E[e]=new b(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){E[e]=new b(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){E[e]=new b(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){E[e]=new b(e,5,!1,e.toLowerCase(),null,!1,!1)});var P=/[\-:]([a-z])/g;function B(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(P,B);E[n]=new b(n,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(P,B);E[n]=new b(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(P,B);E[n]=new b(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){E[e]=new b(e,1,!1,e.toLowerCase(),null,!1,!1)}),E.xlinkHref=new b("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){E[e]=new b(e,1,!1,e.toLowerCase(),null,!0,!0)});function k(e,n,o,c){var g=E.hasOwnProperty(n)?E[n]:null;(g!==null?g.type!==0:c||!(2W||g[M]!==_[W]){var Y=` -`+g[M].replace(" at new "," at ");return e.displayName&&Y.includes("")&&(Y=Y.replace("",e.displayName)),Y}while(1<=M&&0<=W);break}}}finally{K=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?Z(e):""}function fe(e){switch(e.tag){case 5:return Z(e.type);case 16:return Z("Lazy");case 13:return Z("Suspense");case 19:return Z("SuspenseList");case 0:case 2:case 15:return e=X(e.type,!1),e;case 11:return e=X(e.type.render,!1),e;case 1:return e=X(e.type,!0),e;default:return""}}function he(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case j:return"Fragment";case z:return"Portal";case $:return"Profiler";case H:return"StrictMode";case V:return"Suspense";case J:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case G:return(e.displayName||"Context")+".Consumer";case U:return(e._context.displayName||"Context")+".Provider";case re:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case le:return n=e.displayName||null,n!==null?n:he(e.type)||"Memo";case se:n=e._payload,e=e._init;try{return he(e(n))}catch{}}return null}function ke(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return he(n);case 8:return n===H?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function Ae(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function qe(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Ye(e){var n=qe(e)?"checked":"value",o=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),c=""+e[n];if(!e.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var g=o.get,_=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return g.call(this)},set:function(M){c=""+M,_.call(this,M)}}),Object.defineProperty(e,n,{enumerable:o.enumerable}),{getValue:function(){return c},setValue:function(M){c=""+M},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Et(e){e._valueTracker||(e._valueTracker=Ye(e))}function ht(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var o=n.getValue(),c="";return e&&(c=qe(e)?e.checked?"true":"false":e.value),e=c,e!==o?(n.setValue(e),!0):!1}function Se(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ve(e,n){var o=n.checked;return ne({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??e._wrapperState.initialChecked})}function dt(e,n){var o=n.defaultValue==null?"":n.defaultValue,c=n.checked!=null?n.checked:n.defaultChecked;o=Ae(n.value!=null?n.value:o),e._wrapperState={initialChecked:c,initialValue:o,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function Mt(e,n){n=n.checked,n!=null&&k(e,"checked",n,!1)}function vt(e,n){Mt(e,n);var o=Ae(n.value),c=n.type;if(o!=null)c==="number"?(o===0&&e.value===""||e.value!=o)&&(e.value=""+o):e.value!==""+o&&(e.value=""+o);else if(c==="submit"||c==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?Qe(e,n.type,o):n.hasOwnProperty("defaultValue")&&Qe(e,n.type,Ae(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function ot(e,n,o){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var c=n.type;if(!(c!=="submit"&&c!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,o||n===e.value||(e.value=n),e.defaultValue=n}o=e.name,o!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,o!==""&&(e.name=o)}function Qe(e,n,o){(n!=="number"||Se(e.ownerDocument)!==e)&&(o==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}var Xe=Array.isArray;function et(e,n,o,c){if(e=e.options,n){n={};for(var g=0;g"+n.valueOf().toString()+"",n=fn.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Ut(e,n){if(n){var o=e.firstChild;if(o&&o===e.lastChild&&o.nodeType===3){o.nodeValue=n;return}}e.textContent=n}var St={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Zt=["Webkit","ms","Moz","O"];Object.keys(St).forEach(function(e){Zt.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),St[n]=St[e]})});function Zn(e,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||St.hasOwnProperty(e)&&St[e]?(""+n).trim():n+"px"}function xn(e,n){e=e.style;for(var o in n)if(n.hasOwnProperty(o)){var c=o.indexOf("--")===0,g=Zn(o,n[o],c);o==="float"&&(o="cssFloat"),c?e.setProperty(o,g):e[o]=g}}var pe=ne({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function we(e,n){if(n){if(pe[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(s(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(s(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(s(61))}if(n.style!=null&&typeof n.style!="object")throw Error(s(62))}}function te(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var me=null;function Ee(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var He=null,ze=null,nt=null;function hn(e){if(e=li(e)){if(typeof He!="function")throw Error(s(280));var n=e.stateNode;n&&(n=xs(n),He(e.stateNode,e.type,n))}}function je(e){ze?nt?nt.push(e):nt=[e]:ze=e}function pt(){if(ze){var e=ze,n=nt;if(nt=ze=null,hn(e),n)for(e=0;e>>=0,e===0?32:31-(Tt(e)/$o|0)|0}var vr=64,Ei=4194304;function $e(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Bt(e,n){var o=e.pendingLanes;if(o===0)return 0;var c=0,g=e.suspendedLanes,_=e.pingedLanes,M=o&268435455;if(M!==0){var W=M&~g;W!==0?c=$e(W):(_&=M,_!==0&&(c=$e(_)))}else M=o&~g,M!==0?c=$e(M):_!==0&&(c=$e(_));if(c===0)return 0;if(n!==0&&n!==c&&(n&g)===0&&(g=c&-c,_=n&-n,g>=_||g===16&&(_&4194240)!==0))return n;if((c&4)!==0&&(c|=o&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=c;0o;o++)n.push(e);return n}function Gn(e,n,o){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-Je(n),e[n]=o}function qt(e,n){var o=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var c=e.eventTimes;for(e=e.expirationTimes;0=Ao),ii=" ",kl=!1;function Ri(e,n){switch(e){case"keyup":return Yn.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ca(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var br=!1;function cd(e,n){switch(e){case"compositionend":return ca(n);case"keypress":return n.which!==32?null:(kl=!0,ii);case"textInput":return e=n.data,e===ii&&kl?null:e;default:return null}}function Or(e,n){if(br)return e==="compositionend"||!Ir&&Ri(e,n)?(e=ta(),Mr=Bn=Lr=null,br=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:o,offset:n-e};e=c}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=Pl(o)}}function Tl(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Tl(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function ha(){for(var e=window,n=Se();n instanceof e.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)e=n.contentWindow;else break;n=Se(e.document)}return n}function pa(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function lr(e){var n=ha(),o=e.focusedElem,c=e.selectionRange;if(n!==o&&o&&o.ownerDocument&&Tl(o.ownerDocument.documentElement,o)){if(c!==null&&pa(o)){if(n=c.start,e=c.end,e===void 0&&(e=n),"selectionStart"in o)o.selectionStart=n,o.selectionEnd=Math.min(e,o.value.length);else if(e=(n=o.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var g=o.textContent.length,_=Math.min(c.start,g);c=c.end===void 0?_:Math.min(c.end,g),!e.extend&&_>c&&(g=c,c=_,_=g),g=fa(o,_);var M=fa(o,c);g&&M&&(e.rangeCount!==1||e.anchorNode!==g.node||e.anchorOffset!==g.offset||e.focusNode!==M.node||e.focusOffset!==M.offset)&&(n=n.createRange(),n.setStart(g.node,g.offset),e.removeAllRanges(),_>c?(e.addRange(n),e.extend(M.node,M.offset)):(n.setEnd(M.node,M.offset),e.addRange(n)))}}for(n=[],e=o;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o=document.documentMode,Li=null,Mi=null,vo=null,As=!1;function Dl(e,n,o){var c=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;As||Li==null||Li!==Se(c)||(c=Li,"selectionStart"in c&&pa(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}),vo&&zr(vo,c)||(vo=c,c=u(Mi,"onSelect"),0vs||(e.current=Ad[vs],Ad[vs]=null,vs--)}function Pt(e,n){vs++,Ad[vs]=e.current,e.current=n}var Wi={},wn=Zi(Wi),Mn=Zi(!1),wo=Wi;function ys(e,n){var o=e.type.contextTypes;if(!o)return Wi;var c=e.stateNode;if(c&&c.__reactInternalMemoizedUnmaskedChildContext===n)return c.__reactInternalMemoizedMaskedChildContext;var g={},_;for(_ in o)g[_]=n[_];return c&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=g),g}function In(e){return e=e.childContextTypes,e!=null}function Ol(){Dt(Mn),Dt(wn)}function F0(e,n,o){if(wn.current!==Wi)throw Error(s(168));Pt(wn,n),Pt(Mn,o)}function N0(e,n,o){var c=e.stateNode;if(n=n.childContextTypes,typeof c.getChildContext!="function")return o;c=c.getChildContext();for(var g in c)if(!(g in n))throw Error(s(108,ke(e)||"Unknown",g));return ne({},o,c)}function zl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Wi,wo=wn.current,Pt(wn,e),Pt(Mn,Mn.current),!0}function L0(e,n,o){var c=e.stateNode;if(!c)throw Error(s(169));o?(e=N0(e,n,wo),c.__reactInternalMemoizedMergedChildContext=e,Dt(Mn),Dt(wn),Pt(wn,e)):Dt(Mn),Pt(Mn,o)}var ci=null,jl=!1,gd=!1;function M0(e){ci===null?ci=[e]:ci.push(e)}function Fx(e){jl=!0,M0(e)}function qi(){if(!gd&&ci!==null){gd=!0;var e=0,n=ft;try{var o=ci;for(ft=1;e>=M,g-=M,di=1<<32-Je(n)+g|o<Ke?(un=We,We=null):un=We.sibling;var xt=ve(oe,We,ae[Ke],Ce);if(xt===null){We===null&&(We=un);break}e&&We&&xt.alternate===null&&n(oe,We),ee=_(xt,ee,Ke),Ze===null?Ie=xt:Ze.sibling=xt,Ze=xt,We=un}if(Ke===ae.length)return o(oe,We),Nt&&Co(oe,Ke),Ie;if(We===null){for(;KeKe?(un=We,We=null):un=We.sibling;var to=ve(oe,We,xt.value,Ce);if(to===null){We===null&&(We=un);break}e&&We&&to.alternate===null&&n(oe,We),ee=_(to,ee,Ke),Ze===null?Ie=to:Ze.sibling=to,Ze=to,We=un}if(xt.done)return o(oe,We),Nt&&Co(oe,Ke),Ie;if(We===null){for(;!xt.done;Ke++,xt=ae.next())xt=_e(oe,xt.value,Ce),xt!==null&&(ee=_(xt,ee,Ke),Ze===null?Ie=xt:Ze.sibling=xt,Ze=xt);return Nt&&Co(oe,Ke),Ie}for(We=c(oe,We);!xt.done;Ke++,xt=ae.next())xt=Te(We,oe,Ke,xt.value,Ce),xt!==null&&(e&&xt.alternate!==null&&We.delete(xt.key===null?Ke:xt.key),ee=_(xt,ee,Ke),Ze===null?Ie=xt:Ze.sibling=xt,Ze=xt);return e&&We.forEach(function(hv){return n(oe,hv)}),Nt&&Co(oe,Ke),Ie}function Qt(oe,ee,ae,Ce){if(typeof ae=="object"&&ae!==null&&ae.type===j&&ae.key===null&&(ae=ae.props.children),typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case I:e:{for(var Ie=ae.key,Ze=ee;Ze!==null;){if(Ze.key===Ie){if(Ie=ae.type,Ie===j){if(Ze.tag===7){o(oe,Ze.sibling),ee=g(Ze,ae.props.children),ee.return=oe,oe=ee;break e}}else if(Ze.elementType===Ie||typeof Ie=="object"&&Ie!==null&&Ie.$$typeof===se&&V0(Ie)===Ze.type){o(oe,Ze.sibling),ee=g(Ze,ae.props),ee.ref=wa(oe,Ze,ae),ee.return=oe,oe=ee;break e}o(oe,Ze);break}else n(oe,Ze);Ze=Ze.sibling}ae.type===j?(ee=Ro(ae.props.children,oe.mode,Ce,ae.key),ee.return=oe,oe=ee):(Ce=pu(ae.type,ae.key,ae.props,null,oe.mode,Ce),Ce.ref=wa(oe,ee,ae),Ce.return=oe,oe=Ce)}return M(oe);case z:e:{for(Ze=ae.key;ee!==null;){if(ee.key===Ze)if(ee.tag===4&&ee.stateNode.containerInfo===ae.containerInfo&&ee.stateNode.implementation===ae.implementation){o(oe,ee.sibling),ee=g(ee,ae.children||[]),ee.return=oe,oe=ee;break e}else{o(oe,ee);break}else n(oe,ee);ee=ee.sibling}ee=mf(ae,oe.mode,Ce),ee.return=oe,oe=ee}return M(oe);case se:return Ze=ae._init,Qt(oe,ee,Ze(ae._payload),Ce)}if(Xe(ae))return Re(oe,ee,ae,Ce);if(ge(ae))return Me(oe,ee,ae,Ce);Zl(oe,ae)}return typeof ae=="string"&&ae!==""||typeof ae=="number"?(ae=""+ae,ee!==null&&ee.tag===6?(o(oe,ee.sibling),ee=g(ee,ae),ee.return=oe,oe=ee):(o(oe,ee),ee=pf(ae,oe.mode,Ce),ee.return=oe,oe=ee),M(oe)):o(oe,ee)}return Qt}var Cs=U0(!0),Z0=U0(!1),Wl=Zi(null),ql=null,Es=null,bd=null;function Cd(){bd=Es=ql=null}function Ed(e){var n=Wl.current;Dt(Wl),e._currentValue=n}function kd(e,n,o){for(;e!==null;){var c=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,c!==null&&(c.childLanes|=n)):c!==null&&(c.childLanes&n)!==n&&(c.childLanes|=n),e===o)break;e=e.return}}function ks(e,n){ql=e,bd=Es=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(On=!0),e.firstContext=null)}function hr(e){var n=e._currentValue;if(bd!==e)if(e={context:e,memoizedValue:n,next:null},Es===null){if(ql===null)throw Error(s(308));Es=e,ql.dependencies={lanes:0,firstContext:e}}else Es=Es.next=e;return n}var Eo=null;function Sd(e){Eo===null?Eo=[e]:Eo.push(e)}function W0(e,n,o,c){var g=n.interleaved;return g===null?(o.next=o,Sd(n)):(o.next=g.next,g.next=o),n.interleaved=o,hi(e,c)}function hi(e,n){e.lanes|=n;var o=e.alternate;for(o!==null&&(o.lanes|=n),o=e,e=e.return;e!==null;)e.childLanes|=n,o=e.alternate,o!==null&&(o.childLanes|=n),o=e,e=e.return;return o.tag===3?o.stateNode:null}var Gi=!1;function Bd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function q0(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function pi(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function Qi(e,n,o){var c=e.updateQueue;if(c===null)return null;if(c=c.shared,(At&2)!==0){var g=c.pending;return g===null?n.next=n:(n.next=g.next,g.next=n),c.pending=n,hi(e,o)}return g=c.interleaved,g===null?(n.next=n,Sd(c)):(n.next=g.next,g.next=n),c.interleaved=n,hi(e,o)}function Gl(e,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194240)!==0)){var c=n.lanes;c&=e.pendingLanes,o|=c,n.lanes=o,yr(e,o)}}function G0(e,n){var o=e.updateQueue,c=e.alternate;if(c!==null&&(c=c.updateQueue,o===c)){var g=null,_=null;if(o=o.firstBaseUpdate,o!==null){do{var M={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};_===null?g=_=M:_=_.next=M,o=o.next}while(o!==null);_===null?g=_=n:_=_.next=n}else g=_=n;o={baseState:c.baseState,firstBaseUpdate:g,lastBaseUpdate:_,shared:c.shared,effects:c.effects},e.updateQueue=o;return}e=o.lastBaseUpdate,e===null?o.firstBaseUpdate=n:e.next=n,o.lastBaseUpdate=n}function Ql(e,n,o,c){var g=e.updateQueue;Gi=!1;var _=g.firstBaseUpdate,M=g.lastBaseUpdate,W=g.shared.pending;if(W!==null){g.shared.pending=null;var Y=W,ce=Y.next;Y.next=null,M===null?_=ce:M.next=ce,M=Y;var ye=e.alternate;ye!==null&&(ye=ye.updateQueue,W=ye.lastBaseUpdate,W!==M&&(W===null?ye.firstBaseUpdate=ce:W.next=ce,ye.lastBaseUpdate=Y))}if(_!==null){var _e=g.baseState;M=0,ye=ce=Y=null,W=_;do{var ve=W.lane,Te=W.eventTime;if((c&ve)===ve){ye!==null&&(ye=ye.next={eventTime:Te,lane:0,tag:W.tag,payload:W.payload,callback:W.callback,next:null});e:{var Re=e,Me=W;switch(ve=n,Te=o,Me.tag){case 1:if(Re=Me.payload,typeof Re=="function"){_e=Re.call(Te,_e,ve);break e}_e=Re;break e;case 3:Re.flags=Re.flags&-65537|128;case 0:if(Re=Me.payload,ve=typeof Re=="function"?Re.call(Te,_e,ve):Re,ve==null)break e;_e=ne({},_e,ve);break e;case 2:Gi=!0}}W.callback!==null&&W.lane!==0&&(e.flags|=64,ve=g.effects,ve===null?g.effects=[W]:ve.push(W))}else Te={eventTime:Te,lane:ve,tag:W.tag,payload:W.payload,callback:W.callback,next:null},ye===null?(ce=ye=Te,Y=_e):ye=ye.next=Te,M|=ve;if(W=W.next,W===null){if(W=g.shared.pending,W===null)break;ve=W,W=ve.next,ve.next=null,g.lastBaseUpdate=ve,g.shared.pending=null}}while(!0);if(ye===null&&(Y=_e),g.baseState=Y,g.firstBaseUpdate=ce,g.lastBaseUpdate=ye,n=g.shared.interleaved,n!==null){g=n;do M|=g.lane,g=g.next;while(g!==n)}else _===null&&(g.shared.lanes=0);Bo|=M,e.lanes=M,e.memoizedState=_e}}function Q0(e,n,o){if(e=n.effects,n.effects=null,e!==null)for(n=0;no?o:4,e(!0);var c=Fd.transition;Fd.transition={};try{e(!1),n()}finally{ft=o,Fd.transition=c}}function hh(){return pr().memoizedState}function Ix(e,n,o){var c=Xi(e);if(o={lane:c,action:o,hasEagerState:!1,eagerState:null,next:null},ph(e))mh(n,o);else if(o=W0(e,n,o,c),o!==null){var g=Rn();Pr(o,e,c,g),Ah(o,n,c)}}function Ox(e,n,o){var c=Xi(e),g={lane:c,action:o,hasEagerState:!1,eagerState:null,next:null};if(ph(e))mh(n,g);else{var _=e.alternate;if(e.lanes===0&&(_===null||_.lanes===0)&&(_=n.lastRenderedReducer,_!==null))try{var M=n.lastRenderedState,W=_(M,o);if(g.hasEagerState=!0,g.eagerState=W,Xn(W,M)){var Y=n.interleaved;Y===null?(g.next=g,Sd(n)):(g.next=Y.next,Y.next=g),n.interleaved=g;return}}catch{}finally{}o=W0(e,n,g,c),o!==null&&(g=Rn(),Pr(o,e,c,g),Ah(o,n,c))}}function ph(e){var n=e.alternate;return e===Ht||n!==null&&n===Ht}function mh(e,n){ka=Yl=!0;var o=e.pending;o===null?n.next=n:(n.next=o.next,o.next=n),e.pending=n}function Ah(e,n,o){if((o&4194240)!==0){var c=n.lanes;c&=e.pendingLanes,o|=c,n.lanes=o,yr(e,o)}}var eu={readContext:hr,useCallback:bn,useContext:bn,useEffect:bn,useImperativeHandle:bn,useInsertionEffect:bn,useLayoutEffect:bn,useMemo:bn,useReducer:bn,useRef:bn,useState:bn,useDebugValue:bn,useDeferredValue:bn,useTransition:bn,useMutableSource:bn,useSyncExternalStore:bn,useId:bn,unstable_isNewReconciler:!1},zx={readContext:hr,useCallback:function(e,n){return Zr().memoizedState=[e,n===void 0?null:n],e},useContext:hr,useEffect:oh,useImperativeHandle:function(e,n,o){return o=o!=null?o.concat([e]):null,Xl(4194308,4,lh.bind(null,n,e),o)},useLayoutEffect:function(e,n){return Xl(4194308,4,e,n)},useInsertionEffect:function(e,n){return Xl(4,2,e,n)},useMemo:function(e,n){var o=Zr();return n=n===void 0?null:n,e=e(),o.memoizedState=[e,n],e},useReducer:function(e,n,o){var c=Zr();return n=o!==void 0?o(n):n,c.memoizedState=c.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},c.queue=e,e=e.dispatch=Ix.bind(null,Ht,e),[c.memoizedState,e]},useRef:function(e){var n=Zr();return e={current:e},n.memoizedState=e},useState:rh,useDebugValue:jd,useDeferredValue:function(e){return Zr().memoizedState=e},useTransition:function(){var e=rh(!1),n=e[0];return e=Mx.bind(null,e[1]),Zr().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,o){var c=Ht,g=Zr();if(Nt){if(o===void 0)throw Error(s(407));o=o()}else{if(o=n(),ln===null)throw Error(s(349));(So&30)!==0||X0(c,n,o)}g.memoizedState=o;var _={value:o,getSnapshot:n};return g.queue=_,oh(eh.bind(null,c,_,e),[e]),c.flags|=2048,Pa(9,J0.bind(null,c,_,o,n),void 0,null),o},useId:function(){var e=Zr(),n=ln.identifierPrefix;if(Nt){var o=fi,c=di;o=(c&~(1<<32-Je(c)-1)).toString(32)+o,n=":"+n+"R"+o,o=Sa++,0")&&(Y=Y.replace("",e.displayName)),Y}while(1<=M&&0<=W);break}}}finally{K=!1,Error.prepareStackTrace=o}return(e=e?e.displayName||e.name:"")?Z(e):""}function fe(e){switch(e.tag){case 5:return Z(e.type);case 16:return Z("Lazy");case 13:return Z("Suspense");case 19:return Z("SuspenseList");case 0:case 2:case 15:return e=X(e.type,!1),e;case 11:return e=X(e.type.render,!1),e;case 1:return e=X(e.type,!0),e;default:return""}}function he(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case j:return"Fragment";case z:return"Portal";case $:return"Profiler";case H:return"StrictMode";case V:return"Suspense";case J:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case G:return(e.displayName||"Context")+".Consumer";case U:return(e._context.displayName||"Context")+".Provider";case re:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case le:return n=e.displayName||null,n!==null?n:he(e.type)||"Memo";case se:n=e._payload,e=e._init;try{return he(e(n))}catch{}}return null}function ke(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return he(n);case 8:return n===H?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function Ae(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function qe(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Ye(e){var n=qe(e)?"checked":"value",o=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),c=""+e[n];if(!e.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var g=o.get,_=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return g.call(this)},set:function(M){c=""+M,_.call(this,M)}}),Object.defineProperty(e,n,{enumerable:o.enumerable}),{getValue:function(){return c},setValue:function(M){c=""+M},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function Et(e){e._valueTracker||(e._valueTracker=Ye(e))}function ht(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var o=n.getValue(),c="";return e&&(c=qe(e)?e.checked?"true":"false":e.value),e=c,e!==o?(n.setValue(e),!0):!1}function Se(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ve(e,n){var o=n.checked;return ne({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:o??e._wrapperState.initialChecked})}function dt(e,n){var o=n.defaultValue==null?"":n.defaultValue,c=n.checked!=null?n.checked:n.defaultChecked;o=Ae(n.value!=null?n.value:o),e._wrapperState={initialChecked:c,initialValue:o,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function Mt(e,n){n=n.checked,n!=null&&k(e,"checked",n,!1)}function vt(e,n){Mt(e,n);var o=Ae(n.value),c=n.type;if(o!=null)c==="number"?(o===0&&e.value===""||e.value!=o)&&(e.value=""+o):e.value!==""+o&&(e.value=""+o);else if(c==="submit"||c==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?Qe(e,n.type,o):n.hasOwnProperty("defaultValue")&&Qe(e,n.type,Ae(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function ot(e,n,o){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var c=n.type;if(!(c!=="submit"&&c!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,o||n===e.value||(e.value=n),e.defaultValue=n}o=e.name,o!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,o!==""&&(e.name=o)}function Qe(e,n,o){(n!=="number"||Se(e.ownerDocument)!==e)&&(o==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+o&&(e.defaultValue=""+o))}var Xe=Array.isArray;function et(e,n,o,c){if(e=e.options,n){n={};for(var g=0;g"+n.valueOf().toString()+"",n=fn.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Ut(e,n){if(n){var o=e.firstChild;if(o&&o===e.lastChild&&o.nodeType===3){o.nodeValue=n;return}}e.textContent=n}var St={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Zt=["Webkit","ms","Moz","O"];Object.keys(St).forEach(function(e){Zt.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),St[n]=St[e]})});function Zn(e,n,o){return n==null||typeof n=="boolean"||n===""?"":o||typeof n!="number"||n===0||St.hasOwnProperty(e)&&St[e]?(""+n).trim():n+"px"}function xn(e,n){e=e.style;for(var o in n)if(n.hasOwnProperty(o)){var c=o.indexOf("--")===0,g=Zn(o,n[o],c);o==="float"&&(o="cssFloat"),c?e.setProperty(o,g):e[o]=g}}var pe=ne({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function we(e,n){if(n){if(pe[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(s(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(s(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(s(61))}if(n.style!=null&&typeof n.style!="object")throw Error(s(62))}}function te(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var me=null;function Ee(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var He=null,ze=null,nt=null;function hn(e){if(e=li(e)){if(typeof He!="function")throw Error(s(280));var n=e.stateNode;n&&(n=xs(n),He(e.stateNode,e.type,n))}}function je(e){ze?nt?nt.push(e):nt=[e]:ze=e}function pt(){if(ze){var e=ze,n=nt;if(nt=ze=null,hn(e),n)for(e=0;e>>=0,e===0?32:31-(Tt(e)/$o|0)|0}var vr=64,Ei=4194304;function $e(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Bt(e,n){var o=e.pendingLanes;if(o===0)return 0;var c=0,g=e.suspendedLanes,_=e.pingedLanes,M=o&268435455;if(M!==0){var W=M&~g;W!==0?c=$e(W):(_&=M,_!==0&&(c=$e(_)))}else M=o&~g,M!==0?c=$e(M):_!==0&&(c=$e(_));if(c===0)return 0;if(n!==0&&n!==c&&(n&g)===0&&(g=c&-c,_=n&-n,g>=_||g===16&&(_&4194240)!==0))return n;if((c&4)!==0&&(c|=o&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=c;0o;o++)n.push(e);return n}function Gn(e,n,o){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-Je(n),e[n]=o}function qt(e,n){var o=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var c=e.eventTimes;for(e=e.expirationTimes;0=Ao),ii=" ",kl=!1;function Ri(e,n){switch(e){case"keyup":return Yn.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ca(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Cr=!1;function cd(e,n){switch(e){case"compositionend":return ca(n);case"keypress":return n.which!==32?null:(kl=!0,ii);case"textInput":return e=n.data,e===ii&&kl?null:e;default:return null}}function Or(e,n){if(Cr)return e==="compositionend"||!Ir&&Ri(e,n)?(e=ta(),Mr=Bn=Lr=null,Cr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:o,offset:n-e};e=c}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=Pl(o)}}function Tl(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Tl(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function ha(){for(var e=window,n=Se();n instanceof e.HTMLIFrameElement;){try{var o=typeof n.contentWindow.location.href=="string"}catch{o=!1}if(o)e=n.contentWindow;else break;n=Se(e.document)}return n}function pa(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function lr(e){var n=ha(),o=e.focusedElem,c=e.selectionRange;if(n!==o&&o&&o.ownerDocument&&Tl(o.ownerDocument.documentElement,o)){if(c!==null&&pa(o)){if(n=c.start,e=c.end,e===void 0&&(e=n),"selectionStart"in o)o.selectionStart=n,o.selectionEnd=Math.min(e,o.value.length);else if(e=(n=o.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var g=o.textContent.length,_=Math.min(c.start,g);c=c.end===void 0?_:Math.min(c.end,g),!e.extend&&_>c&&(g=c,c=_,_=g),g=fa(o,_);var M=fa(o,c);g&&M&&(e.rangeCount!==1||e.anchorNode!==g.node||e.anchorOffset!==g.offset||e.focusNode!==M.node||e.focusOffset!==M.offset)&&(n=n.createRange(),n.setStart(g.node,g.offset),e.removeAllRanges(),_>c?(e.addRange(n),e.extend(M.node,M.offset)):(n.setEnd(M.node,M.offset),e.addRange(n)))}}for(n=[],e=o;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof o.focus=="function"&&o.focus(),o=0;o=document.documentMode,Li=null,Mi=null,vo=null,As=!1;function Dl(e,n,o){var c=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;As||Li==null||Li!==Se(c)||(c=Li,"selectionStart"in c&&pa(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}),vo&&zr(vo,c)||(vo=c,c=u(Mi,"onSelect"),0vs||(e.current=Ad[vs],Ad[vs]=null,vs--)}function Pt(e,n){vs++,Ad[vs]=e.current,e.current=n}var Wi={},wn=Zi(Wi),Mn=Zi(!1),wo=Wi;function ys(e,n){var o=e.type.contextTypes;if(!o)return Wi;var c=e.stateNode;if(c&&c.__reactInternalMemoizedUnmaskedChildContext===n)return c.__reactInternalMemoizedMaskedChildContext;var g={},_;for(_ in o)g[_]=n[_];return c&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=g),g}function In(e){return e=e.childContextTypes,e!=null}function Ol(){Dt(Mn),Dt(wn)}function N0(e,n,o){if(wn.current!==Wi)throw Error(s(168));Pt(wn,n),Pt(Mn,o)}function L0(e,n,o){var c=e.stateNode;if(n=n.childContextTypes,typeof c.getChildContext!="function")return o;c=c.getChildContext();for(var g in c)if(!(g in n))throw Error(s(108,ke(e)||"Unknown",g));return ne({},o,c)}function zl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Wi,wo=wn.current,Pt(wn,e),Pt(Mn,Mn.current),!0}function M0(e,n,o){var c=e.stateNode;if(!c)throw Error(s(169));o?(e=L0(e,n,wo),c.__reactInternalMemoizedMergedChildContext=e,Dt(Mn),Dt(wn),Pt(wn,e)):Dt(Mn),Pt(Mn,o)}var ci=null,jl=!1,gd=!1;function I0(e){ci===null?ci=[e]:ci.push(e)}function Lx(e){jl=!0,I0(e)}function qi(){if(!gd&&ci!==null){gd=!0;var e=0,n=ft;try{var o=ci;for(ft=1;e>=M,g-=M,di=1<<32-Je(n)+g|o<Ke?(un=We,We=null):un=We.sibling;var xt=ve(oe,We,ae[Ke],be);if(xt===null){We===null&&(We=un);break}e&&We&&xt.alternate===null&&n(oe,We),ee=_(xt,ee,Ke),Ze===null?Ie=xt:Ze.sibling=xt,Ze=xt,We=un}if(Ke===ae.length)return o(oe,We),Nt&&bo(oe,Ke),Ie;if(We===null){for(;KeKe?(un=We,We=null):un=We.sibling;var to=ve(oe,We,xt.value,be);if(to===null){We===null&&(We=un);break}e&&We&&to.alternate===null&&n(oe,We),ee=_(to,ee,Ke),Ze===null?Ie=to:Ze.sibling=to,Ze=to,We=un}if(xt.done)return o(oe,We),Nt&&bo(oe,Ke),Ie;if(We===null){for(;!xt.done;Ke++,xt=ae.next())xt=_e(oe,xt.value,be),xt!==null&&(ee=_(xt,ee,Ke),Ze===null?Ie=xt:Ze.sibling=xt,Ze=xt);return Nt&&bo(oe,Ke),Ie}for(We=c(oe,We);!xt.done;Ke++,xt=ae.next())xt=Te(We,oe,Ke,xt.value,be),xt!==null&&(e&&xt.alternate!==null&&We.delete(xt.key===null?Ke:xt.key),ee=_(xt,ee,Ke),Ze===null?Ie=xt:Ze.sibling=xt,Ze=xt);return e&&We.forEach(function(mv){return n(oe,mv)}),Nt&&bo(oe,Ke),Ie}function Qt(oe,ee,ae,be){if(typeof ae=="object"&&ae!==null&&ae.type===j&&ae.key===null&&(ae=ae.props.children),typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case I:e:{for(var Ie=ae.key,Ze=ee;Ze!==null;){if(Ze.key===Ie){if(Ie=ae.type,Ie===j){if(Ze.tag===7){o(oe,Ze.sibling),ee=g(Ze,ae.props.children),ee.return=oe,oe=ee;break e}}else if(Ze.elementType===Ie||typeof Ie=="object"&&Ie!==null&&Ie.$$typeof===se&&U0(Ie)===Ze.type){o(oe,Ze.sibling),ee=g(Ze,ae.props),ee.ref=wa(oe,Ze,ae),ee.return=oe,oe=ee;break e}o(oe,Ze);break}else n(oe,Ze);Ze=Ze.sibling}ae.type===j?(ee=Ro(ae.props.children,oe.mode,be,ae.key),ee.return=oe,oe=ee):(be=pu(ae.type,ae.key,ae.props,null,oe.mode,be),be.ref=wa(oe,ee,ae),be.return=oe,oe=be)}return M(oe);case z:e:{for(Ze=ae.key;ee!==null;){if(ee.key===Ze)if(ee.tag===4&&ee.stateNode.containerInfo===ae.containerInfo&&ee.stateNode.implementation===ae.implementation){o(oe,ee.sibling),ee=g(ee,ae.children||[]),ee.return=oe,oe=ee;break e}else{o(oe,ee);break}else n(oe,ee);ee=ee.sibling}ee=mf(ae,oe.mode,be),ee.return=oe,oe=ee}return M(oe);case se:return Ze=ae._init,Qt(oe,ee,Ze(ae._payload),be)}if(Xe(ae))return Re(oe,ee,ae,be);if(ge(ae))return Me(oe,ee,ae,be);Zl(oe,ae)}return typeof ae=="string"&&ae!==""||typeof ae=="number"?(ae=""+ae,ee!==null&&ee.tag===6?(o(oe,ee.sibling),ee=g(ee,ae),ee.return=oe,oe=ee):(o(oe,ee),ee=pf(ae,oe.mode,be),ee.return=oe,oe=ee),M(oe)):o(oe,ee)}return Qt}var bs=Z0(!0),W0=Z0(!1),Wl=Zi(null),ql=null,Es=null,Cd=null;function bd(){Cd=Es=ql=null}function Ed(e){var n=Wl.current;Dt(Wl),e._currentValue=n}function kd(e,n,o){for(;e!==null;){var c=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,c!==null&&(c.childLanes|=n)):c!==null&&(c.childLanes&n)!==n&&(c.childLanes|=n),e===o)break;e=e.return}}function ks(e,n){ql=e,Cd=Es=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&n)!==0&&(On=!0),e.firstContext=null)}function hr(e){var n=e._currentValue;if(Cd!==e)if(e={context:e,memoizedValue:n,next:null},Es===null){if(ql===null)throw Error(s(308));Es=e,ql.dependencies={lanes:0,firstContext:e}}else Es=Es.next=e;return n}var Eo=null;function Sd(e){Eo===null?Eo=[e]:Eo.push(e)}function q0(e,n,o,c){var g=n.interleaved;return g===null?(o.next=o,Sd(n)):(o.next=g.next,g.next=o),n.interleaved=o,hi(e,c)}function hi(e,n){e.lanes|=n;var o=e.alternate;for(o!==null&&(o.lanes|=n),o=e,e=e.return;e!==null;)e.childLanes|=n,o=e.alternate,o!==null&&(o.childLanes|=n),o=e,e=e.return;return o.tag===3?o.stateNode:null}var Gi=!1;function Bd(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function G0(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function pi(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function Qi(e,n,o){var c=e.updateQueue;if(c===null)return null;if(c=c.shared,(At&2)!==0){var g=c.pending;return g===null?n.next=n:(n.next=g.next,g.next=n),c.pending=n,hi(e,o)}return g=c.interleaved,g===null?(n.next=n,Sd(c)):(n.next=g.next,g.next=n),c.interleaved=n,hi(e,o)}function Gl(e,n,o){if(n=n.updateQueue,n!==null&&(n=n.shared,(o&4194240)!==0)){var c=n.lanes;c&=e.pendingLanes,o|=c,n.lanes=o,yr(e,o)}}function Q0(e,n){var o=e.updateQueue,c=e.alternate;if(c!==null&&(c=c.updateQueue,o===c)){var g=null,_=null;if(o=o.firstBaseUpdate,o!==null){do{var M={eventTime:o.eventTime,lane:o.lane,tag:o.tag,payload:o.payload,callback:o.callback,next:null};_===null?g=_=M:_=_.next=M,o=o.next}while(o!==null);_===null?g=_=n:_=_.next=n}else g=_=n;o={baseState:c.baseState,firstBaseUpdate:g,lastBaseUpdate:_,shared:c.shared,effects:c.effects},e.updateQueue=o;return}e=o.lastBaseUpdate,e===null?o.firstBaseUpdate=n:e.next=n,o.lastBaseUpdate=n}function Ql(e,n,o,c){var g=e.updateQueue;Gi=!1;var _=g.firstBaseUpdate,M=g.lastBaseUpdate,W=g.shared.pending;if(W!==null){g.shared.pending=null;var Y=W,ce=Y.next;Y.next=null,M===null?_=ce:M.next=ce,M=Y;var ye=e.alternate;ye!==null&&(ye=ye.updateQueue,W=ye.lastBaseUpdate,W!==M&&(W===null?ye.firstBaseUpdate=ce:W.next=ce,ye.lastBaseUpdate=Y))}if(_!==null){var _e=g.baseState;M=0,ye=ce=Y=null,W=_;do{var ve=W.lane,Te=W.eventTime;if((c&ve)===ve){ye!==null&&(ye=ye.next={eventTime:Te,lane:0,tag:W.tag,payload:W.payload,callback:W.callback,next:null});e:{var Re=e,Me=W;switch(ve=n,Te=o,Me.tag){case 1:if(Re=Me.payload,typeof Re=="function"){_e=Re.call(Te,_e,ve);break e}_e=Re;break e;case 3:Re.flags=Re.flags&-65537|128;case 0:if(Re=Me.payload,ve=typeof Re=="function"?Re.call(Te,_e,ve):Re,ve==null)break e;_e=ne({},_e,ve);break e;case 2:Gi=!0}}W.callback!==null&&W.lane!==0&&(e.flags|=64,ve=g.effects,ve===null?g.effects=[W]:ve.push(W))}else Te={eventTime:Te,lane:ve,tag:W.tag,payload:W.payload,callback:W.callback,next:null},ye===null?(ce=ye=Te,Y=_e):ye=ye.next=Te,M|=ve;if(W=W.next,W===null){if(W=g.shared.pending,W===null)break;ve=W,W=ve.next,ve.next=null,g.lastBaseUpdate=ve,g.shared.pending=null}}while(!0);if(ye===null&&(Y=_e),g.baseState=Y,g.firstBaseUpdate=ce,g.lastBaseUpdate=ye,n=g.shared.interleaved,n!==null){g=n;do M|=g.lane,g=g.next;while(g!==n)}else _===null&&(g.shared.lanes=0);Bo|=M,e.lanes=M,e.memoizedState=_e}}function K0(e,n,o){if(e=n.effects,n.effects=null,e!==null)for(n=0;no?o:4,e(!0);var c=Fd.transition;Fd.transition={};try{e(!1),n()}finally{ft=o,Fd.transition=c}}function ph(){return pr().memoizedState}function zx(e,n,o){var c=Xi(e);if(o={lane:c,action:o,hasEagerState:!1,eagerState:null,next:null},mh(e))Ah(n,o);else if(o=q0(e,n,o,c),o!==null){var g=Rn();Pr(o,e,c,g),gh(o,n,c)}}function jx(e,n,o){var c=Xi(e),g={lane:c,action:o,hasEagerState:!1,eagerState:null,next:null};if(mh(e))Ah(n,g);else{var _=e.alternate;if(e.lanes===0&&(_===null||_.lanes===0)&&(_=n.lastRenderedReducer,_!==null))try{var M=n.lastRenderedState,W=_(M,o);if(g.hasEagerState=!0,g.eagerState=W,Xn(W,M)){var Y=n.interleaved;Y===null?(g.next=g,Sd(n)):(g.next=Y.next,Y.next=g),n.interleaved=g;return}}catch{}finally{}o=q0(e,n,g,c),o!==null&&(g=Rn(),Pr(o,e,c,g),gh(o,n,c))}}function mh(e){var n=e.alternate;return e===Ht||n!==null&&n===Ht}function Ah(e,n){ka=Yl=!0;var o=e.pending;o===null?n.next=n:(n.next=o.next,o.next=n),e.pending=n}function gh(e,n,o){if((o&4194240)!==0){var c=n.lanes;c&=e.pendingLanes,o|=c,n.lanes=o,yr(e,o)}}var eu={readContext:hr,useCallback:Cn,useContext:Cn,useEffect:Cn,useImperativeHandle:Cn,useInsertionEffect:Cn,useLayoutEffect:Cn,useMemo:Cn,useReducer:Cn,useRef:Cn,useState:Cn,useDebugValue:Cn,useDeferredValue:Cn,useTransition:Cn,useMutableSource:Cn,useSyncExternalStore:Cn,useId:Cn,unstable_isNewReconciler:!1},Hx={readContext:hr,useCallback:function(e,n){return Zr().memoizedState=[e,n===void 0?null:n],e},useContext:hr,useEffect:sh,useImperativeHandle:function(e,n,o){return o=o!=null?o.concat([e]):null,Xl(4194308,4,uh.bind(null,n,e),o)},useLayoutEffect:function(e,n){return Xl(4194308,4,e,n)},useInsertionEffect:function(e,n){return Xl(4,2,e,n)},useMemo:function(e,n){var o=Zr();return n=n===void 0?null:n,e=e(),o.memoizedState=[e,n],e},useReducer:function(e,n,o){var c=Zr();return n=o!==void 0?o(n):n,c.memoizedState=c.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},c.queue=e,e=e.dispatch=zx.bind(null,Ht,e),[c.memoizedState,e]},useRef:function(e){var n=Zr();return e={current:e},n.memoizedState=e},useState:ih,useDebugValue:jd,useDeferredValue:function(e){return Zr().memoizedState=e},useTransition:function(){var e=ih(!1),n=e[0];return e=Ox.bind(null,e[1]),Zr().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,o){var c=Ht,g=Zr();if(Nt){if(o===void 0)throw Error(s(407));o=o()}else{if(o=n(),ln===null)throw Error(s(349));(So&30)!==0||J0(c,n,o)}g.memoizedState=o;var _={value:o,getSnapshot:n};return g.queue=_,sh(th.bind(null,c,_,e),[e]),c.flags|=2048,Pa(9,eh.bind(null,c,_,o,n),void 0,null),o},useId:function(){var e=Zr(),n=ln.identifierPrefix;if(Nt){var o=fi,c=di;o=(c&~(1<<32-Je(c)-1)).toString(32)+o,n=":"+n+"R"+o,o=Sa++,0<\/script>",e=e.removeChild(e.firstChild)):typeof c.is=="string"?e=M.createElement(o,{is:c.is}):(e=M.createElement(o),o==="select"&&(M=e,c.multiple?M.multiple=!0:c.size&&(M.size=c.size))):e=M.createElementNS(e,o),e[cr]=n,e[Vi]=c,Mh(e,n,!1,!1),n.stateNode=e;e:{switch(M=te(o,c),o){case"dialog":Ct("cancel",e),Ct("close",e),g=c;break;case"iframe":case"object":case"embed":Ct("load",e),g=c;break;case"video":case"audio":for(g=0;gDs&&(n.flags|=128,c=!0,Ta(_,!1),n.lanes=4194304)}else{if(!c)if(e=Kl(M),e!==null){if(n.flags|=128,c=!0,o=e.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),Ta(_,!0),_.tail===null&&_.tailMode==="hidden"&&!M.alternate&&!Nt)return Cn(n),null}else 2*Ot()-_.renderingStartTime>Ds&&o!==1073741824&&(n.flags|=128,c=!0,Ta(_,!1),n.lanes=4194304);_.isBackwards?(M.sibling=n.child,n.child=M):(o=_.last,o!==null?o.sibling=M:n.child=M,_.last=M)}return _.tail!==null?(n=_.tail,_.rendering=n,_.tail=n.sibling,_.renderingStartTime=Ot(),n.sibling=null,o=jt.current,Pt(jt,c?o&1|2:o&1),n):(Cn(n),null);case 22:case 23:return df(),c=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==c&&(n.flags|=8192),c&&(n.mode&1)!==0?(nr&1073741824)!==0&&(Cn(n),n.subtreeFlags&6&&(n.flags|=8192)):Cn(n),null;case 24:return null;case 25:return null}throw Error(s(156,n.tag))}function Gx(e,n){switch(vd(n),n.tag){case 1:return In(n.type)&&Ol(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Ss(),Dt(Mn),Dt(wn),Rd(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 5:return Td(n),null;case 13:if(Dt(jt),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(s(340));bs()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return Dt(jt),null;case 4:return Ss(),null;case 10:return Ed(n.type._context),null;case 22:case 23:return df(),null;case 24:return null;default:return null}}var iu=!1,En=!1,Qx=typeof WeakSet=="function"?WeakSet:Set,De=null;function Ps(e,n){var o=e.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(c){Gt(e,n,c)}else o.current=null}function Xd(e,n,o){try{o()}catch(c){Gt(e,n,c)}}var zh=!1;function Kx(e,n){if(Be=po,e=ha(),pa(e)){if("selectionStart"in e)var o={start:e.selectionStart,end:e.selectionEnd};else e:{o=(o=e.ownerDocument)&&o.defaultView||window;var c=o.getSelection&&o.getSelection();if(c&&c.rangeCount!==0){o=c.anchorNode;var g=c.anchorOffset,_=c.focusNode;c=c.focusOffset;try{o.nodeType,_.nodeType}catch{o=null;break e}var M=0,W=-1,Y=-1,ce=0,ye=0,_e=e,ve=null;t:for(;;){for(var Te;_e!==o||g!==0&&_e.nodeType!==3||(W=M+g),_e!==_||c!==0&&_e.nodeType!==3||(Y=M+c),_e.nodeType===3&&(M+=_e.nodeValue.length),(Te=_e.firstChild)!==null;)ve=_e,_e=Te;for(;;){if(_e===e)break t;if(ve===o&&++ce===g&&(W=M),ve===_&&++ye===c&&(Y=M),(Te=_e.nextSibling)!==null)break;_e=ve,ve=_e.parentNode}_e=Te}o=W===-1||Y===-1?null:{start:W,end:Y}}else o=null}o=o||{start:0,end:0}}else o=null;for(Ue={focusedElem:e,selectionRange:o},po=!1,De=n;De!==null;)if(n=De,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,De=e;else for(;De!==null;){n=De;try{var Re=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(Re!==null){var Me=Re.memoizedProps,Qt=Re.memoizedState,oe=n.stateNode,ee=oe.getSnapshotBeforeUpdate(n.elementType===n.type?Me:kr(n.type,Me),Qt);oe.__reactInternalSnapshotBeforeUpdate=ee}break;case 3:var ae=n.stateNode.containerInfo;ae.nodeType===1?ae.textContent="":ae.nodeType===9&&ae.documentElement&&ae.removeChild(ae.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(Ce){Gt(n,n.return,Ce)}if(e=n.sibling,e!==null){e.return=n.return,De=e;break}De=n.return}return Re=zh,zh=!1,Re}function Da(e,n,o){var c=n.updateQueue;if(c=c!==null?c.lastEffect:null,c!==null){var g=c=c.next;do{if((g.tag&e)===e){var _=g.destroy;g.destroy=void 0,_!==void 0&&Xd(n,o,_)}g=g.next}while(g!==c)}}function ou(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var c=o.create;o.destroy=c()}o=o.next}while(o!==n)}}function Jd(e){var n=e.ref;if(n!==null){var o=e.stateNode;switch(e.tag){case 5:e=o;break;default:e=o}typeof n=="function"?n(e):n.current=e}}function jh(e){var n=e.alternate;n!==null&&(e.alternate=null,jh(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[cr],delete n[Vi],delete n[Ui],delete n[pd],delete n[md])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Hh(e){return e.tag===5||e.tag===3||e.tag===4}function Vh(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Hh(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ef(e,n,o){var c=e.tag;if(c===5||c===6)e=e.stateNode,n?o.nodeType===8?o.parentNode.insertBefore(e,n):o.insertBefore(e,n):(o.nodeType===8?(n=o.parentNode,n.insertBefore(e,o)):(n=o,n.appendChild(e)),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=xe));else if(c!==4&&(e=e.child,e!==null))for(ef(e,n,o),e=e.sibling;e!==null;)ef(e,n,o),e=e.sibling}function tf(e,n,o){var c=e.tag;if(c===5||c===6)e=e.stateNode,n?o.insertBefore(e,n):o.appendChild(e);else if(c!==4&&(e=e.child,e!==null))for(tf(e,n,o),e=e.sibling;e!==null;)tf(e,n,o),e=e.sibling}var pn=null,Sr=!1;function Ki(e,n,o){for(o=o.child;o!==null;)Uh(e,n,o),o=o.sibling}function Uh(e,n,o){if(qn&&typeof qn.onCommitFiberUnmount=="function")try{qn.onCommitFiberUnmount(ao,o)}catch{}switch(o.tag){case 5:En||Ps(o,n);case 6:var c=pn,g=Sr;pn=null,Ki(e,n,o),pn=c,Sr=g,pn!==null&&(Sr?(e=pn,o=o.stateNode,e.nodeType===8?e.parentNode.removeChild(o):e.removeChild(o)):pn.removeChild(o.stateNode));break;case 18:pn!==null&&(Sr?(e=pn,o=o.stateNode,e.nodeType===8?_a(e.parentNode,o):e.nodeType===1&&_a(e,o),Kn(e)):_a(pn,o.stateNode));break;case 4:c=pn,g=Sr,pn=o.stateNode.containerInfo,Sr=!0,Ki(e,n,o),pn=c,Sr=g;break;case 0:case 11:case 14:case 15:if(!En&&(c=o.updateQueue,c!==null&&(c=c.lastEffect,c!==null))){g=c=c.next;do{var _=g,M=_.destroy;_=_.tag,M!==void 0&&((_&2)!==0||(_&4)!==0)&&Xd(o,n,M),g=g.next}while(g!==c)}Ki(e,n,o);break;case 1:if(!En&&(Ps(o,n),c=o.stateNode,typeof c.componentWillUnmount=="function"))try{c.props=o.memoizedProps,c.state=o.memoizedState,c.componentWillUnmount()}catch(W){Gt(o,n,W)}Ki(e,n,o);break;case 21:Ki(e,n,o);break;case 22:o.mode&1?(En=(c=En)||o.memoizedState!==null,Ki(e,n,o),En=c):Ki(e,n,o);break;default:Ki(e,n,o)}}function Zh(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var o=e.stateNode;o===null&&(o=e.stateNode=new Qx),n.forEach(function(c){var g=iv.bind(null,e,c);o.has(c)||(o.add(c),c.then(g,g))})}}function Br(e,n){var o=n.deletions;if(o!==null)for(var c=0;cg&&(g=M),c&=~_}if(c=g,c=Ot()-c,c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3e3>c?3e3:4320>c?4320:1960*Yx(c/1960))-c,10e?16:e,Yi===null)var c=!1;else{if(e=Yi,Yi=null,cu=0,(At&6)!==0)throw Error(s(331));var g=At;for(At|=4,De=e.current;De!==null;){var _=De,M=_.child;if((De.flags&16)!==0){var W=_.deletions;if(W!==null){for(var Y=0;YOt()-of?To(e,0):rf|=o),jn(e,n)}function rp(e,n){n===0&&((e.mode&1)===0?n=1:(n=Ei,Ei<<=1,(Ei&130023424)===0&&(Ei=4194304)));var o=Rn();e=hi(e,n),e!==null&&(Gn(e,n,o),jn(e,o))}function rv(e){var n=e.memoizedState,o=0;n!==null&&(o=n.retryLane),rp(e,o)}function iv(e,n){var o=0;switch(e.tag){case 13:var c=e.stateNode,g=e.memoizedState;g!==null&&(o=g.retryLane);break;case 19:c=e.stateNode;break;default:throw Error(s(314))}c!==null&&c.delete(n),rp(e,o)}var ip;ip=function(e,n,o){if(e!==null)if(e.memoizedProps!==n.pendingProps||Mn.current)On=!0;else{if((e.lanes&o)===0&&(n.flags&128)===0)return On=!1,Wx(e,n,o);On=(e.flags&131072)!==0}else On=!1,Nt&&(n.flags&1048576)!==0&&I0(n,Vl,n.index);switch(n.lanes=0,n.tag){case 2:var c=n.type;ru(e,n),e=n.pendingProps;var g=ys(n,wn.current);ks(n,o),g=Ld(null,n,c,e,g,o);var _=Md();return n.flags|=1,typeof g=="object"&&g!==null&&typeof g.render=="function"&&g.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,In(c)?(_=!0,zl(n)):_=!1,n.memoizedState=g.state!==null&&g.state!==void 0?g.state:null,Bd(n),g.updater=tu,n.stateNode=g,g._reactInternals=n,Vd(n,c,e,o),n=qd(null,n,c,!0,_,o)):(n.tag=0,Nt&&_&&xd(n),Dn(null,n,g,o),n=n.child),n;case 16:c=n.elementType;e:{switch(ru(e,n),e=n.pendingProps,g=c._init,c=g(c._payload),n.type=c,g=n.tag=sv(c),e=kr(c,e),g){case 0:n=Wd(null,n,c,e,o);break e;case 1:n=Th(null,n,c,e,o);break e;case 11:n=Eh(null,n,c,e,o);break e;case 14:n=kh(null,n,c,kr(c.type,e),o);break e}throw Error(s(306,c,""))}return n;case 0:return c=n.type,g=n.pendingProps,g=n.elementType===c?g:kr(c,g),Wd(e,n,c,g,o);case 1:return c=n.type,g=n.pendingProps,g=n.elementType===c?g:kr(c,g),Th(e,n,c,g,o);case 3:e:{if(Dh(n),e===null)throw Error(s(387));c=n.pendingProps,_=n.memoizedState,g=_.element,q0(e,n),Ql(n,c,null,o);var M=n.memoizedState;if(c=M.element,_.isDehydrated)if(_={element:c,isDehydrated:!1,cache:M.cache,pendingSuspenseBoundaries:M.pendingSuspenseBoundaries,transitions:M.transitions},n.updateQueue.baseState=_,n.memoizedState=_,n.flags&256){g=Bs(Error(s(423)),n),n=Rh(e,n,c,o,g);break e}else if(c!==g){g=Bs(Error(s(424)),n),n=Rh(e,n,c,o,g);break e}else for(tr=Vr(n.stateNode.containerInfo.firstChild),er=n,Nt=!0,Er=null,o=Z0(n,null,c,o),n.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(bs(),c===g){n=mi(e,n,o);break e}Dn(e,n,c,o)}n=n.child}return n;case 5:return K0(n),e===null&&_d(n),c=n.type,g=n.pendingProps,_=e!==null?e.memoizedProps:null,M=g.children,tt(c,g)?M=null:_!==null&&tt(c,_)&&(n.flags|=32),Ph(e,n),Dn(e,n,M,o),n.child;case 6:return e===null&&_d(n),null;case 13:return Fh(e,n,o);case 4:return Pd(n,n.stateNode.containerInfo),c=n.pendingProps,e===null?n.child=Cs(n,null,c,o):Dn(e,n,c,o),n.child;case 11:return c=n.type,g=n.pendingProps,g=n.elementType===c?g:kr(c,g),Eh(e,n,c,g,o);case 7:return Dn(e,n,n.pendingProps,o),n.child;case 8:return Dn(e,n,n.pendingProps.children,o),n.child;case 12:return Dn(e,n,n.pendingProps.children,o),n.child;case 10:e:{if(c=n.type._context,g=n.pendingProps,_=n.memoizedProps,M=g.value,Pt(Wl,c._currentValue),c._currentValue=M,_!==null)if(Xn(_.value,M)){if(_.children===g.children&&!Mn.current){n=mi(e,n,o);break e}}else for(_=n.child,_!==null&&(_.return=n);_!==null;){var W=_.dependencies;if(W!==null){M=_.child;for(var Y=W.firstContext;Y!==null;){if(Y.context===c){if(_.tag===1){Y=pi(-1,o&-o),Y.tag=2;var ce=_.updateQueue;if(ce!==null){ce=ce.shared;var ye=ce.pending;ye===null?Y.next=Y:(Y.next=ye.next,ye.next=Y),ce.pending=Y}}_.lanes|=o,Y=_.alternate,Y!==null&&(Y.lanes|=o),kd(_.return,o,n),W.lanes|=o;break}Y=Y.next}}else if(_.tag===10)M=_.type===n.type?null:_.child;else if(_.tag===18){if(M=_.return,M===null)throw Error(s(341));M.lanes|=o,W=M.alternate,W!==null&&(W.lanes|=o),kd(M,o,n),M=_.sibling}else M=_.child;if(M!==null)M.return=_;else for(M=_;M!==null;){if(M===n){M=null;break}if(_=M.sibling,_!==null){_.return=M.return,M=_;break}M=M.return}_=M}Dn(e,n,g.children,o),n=n.child}return n;case 9:return g=n.type,c=n.pendingProps.children,ks(n,o),g=hr(g),c=c(g),n.flags|=1,Dn(e,n,c,o),n.child;case 14:return c=n.type,g=kr(c,n.pendingProps),g=kr(c.type,g),kh(e,n,c,g,o);case 15:return Sh(e,n,n.type,n.pendingProps,o);case 17:return c=n.type,g=n.pendingProps,g=n.elementType===c?g:kr(c,g),ru(e,n),n.tag=1,In(c)?(e=!0,zl(n)):e=!1,ks(n,o),xh(n,c,g),Vd(n,c,g,o),qd(null,n,c,!0,e,o);case 19:return Lh(e,n,o);case 22:return Bh(e,n,o)}throw Error(s(156,n.tag))};function op(e,n){return hl(e,n)}function ov(e,n,o,c){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=c,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ar(e,n,o,c){return new ov(e,n,o,c)}function hf(e){return e=e.prototype,!(!e||!e.isReactComponent)}function sv(e){if(typeof e=="function")return hf(e)?1:0;if(e!=null){if(e=e.$$typeof,e===re)return 11;if(e===le)return 14}return 2}function eo(e,n){var o=e.alternate;return o===null?(o=Ar(e.tag,n,e.key,e.mode),o.elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=n,o.type=e.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=e.flags&14680064,o.childLanes=e.childLanes,o.lanes=e.lanes,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,n=e.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o}function pu(e,n,o,c,g,_){var M=2;if(c=e,typeof e=="function")hf(e)&&(M=1);else if(typeof e=="string")M=5;else e:switch(e){case j:return Ro(o.children,g,_,n);case H:M=8,g|=8;break;case $:return e=Ar(12,o,n,g|2),e.elementType=$,e.lanes=_,e;case V:return e=Ar(13,o,n,g),e.elementType=V,e.lanes=_,e;case J:return e=Ar(19,o,n,g),e.elementType=J,e.lanes=_,e;case de:return mu(o,g,_,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case U:M=10;break e;case G:M=9;break e;case re:M=11;break e;case le:M=14;break e;case se:M=16,c=null;break e}throw Error(s(130,e==null?e:typeof e,""))}return n=Ar(M,o,n,g),n.elementType=e,n.type=c,n.lanes=_,n}function Ro(e,n,o,c){return e=Ar(7,e,c,n),e.lanes=o,e}function mu(e,n,o,c){return e=Ar(22,e,c,n),e.elementType=de,e.lanes=o,e.stateNode={isHidden:!1},e}function pf(e,n,o){return e=Ar(6,e,null,n),e.lanes=o,e}function mf(e,n,o){return n=Ar(4,e.children!==null?e.children:[],e.key,n),n.lanes=o,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function av(e,n,o,c,g){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ki(0),this.expirationTimes=ki(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ki(0),this.identifierPrefix=c,this.onRecoverableError=g,this.mutableSourceEagerHydrationData=null}function Af(e,n,o,c,g,_,M,W,Y){return e=new av(e,n,o,W,Y),n===1?(n=1,_===!0&&(n|=8)):n=0,_=Ar(3,null,null,n),e.current=_,_.stateNode=e,_.memoizedState={element:c,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},Bd(_),e}function lv(e,n,o){var c=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(a){console.error(a)}}return r(),bf.exports=wv(),bf.exports}var vp;function bv(){if(vp)return wu;vp=1;var r=vA();return wu.createRoot=r.createRoot,wu.hydrateRoot=r.hydrateRoot,wu}var Cv=bv();const Ev="/api";async function gt(r,a){const s=await fetch(`${Ev}${r}`,{...a,headers:{"Content-Type":"application/json",...a==null?void 0:a.headers}});if(!s.ok){const l=await s.text();throw new Error(l||s.statusText)}return s.json()}const at={getHealth:()=>gt("/health"),getRadioConfig:()=>gt("/radio/config"),updateRadioConfig:r=>gt("/radio/config",{method:"PATCH",body:JSON.stringify(r)}),setPrivateKey:r=>gt("/radio/private-key",{method:"PUT",body:JSON.stringify({private_key:r})}),sendAdvertisement:(r=!0)=>gt(`/radio/advertise?flood=${r}`,{method:"POST"}),rebootRadio:()=>gt("/radio/reboot",{method:"POST"}),reconnectRadio:()=>gt("/radio/reconnect",{method:"POST"}),getContacts:(r=100,a=0)=>gt(`/contacts?limit=${r}&offset=${a}`),getContact:r=>gt(`/contacts/${r}`),syncContacts:()=>gt("/contacts/sync",{method:"POST"}),addContactToRadio:r=>gt(`/contacts/${r}/add-to-radio`,{method:"POST"}),removeContactFromRadio:r=>gt(`/contacts/${r}/remove-from-radio`,{method:"POST"}),deleteContact:r=>gt(`/contacts/${r}`,{method:"DELETE"}),markContactRead:r=>gt(`/contacts/${r}/mark-read`,{method:"POST"}),requestTelemetry:(r,a)=>gt(`/contacts/${r}/telemetry`,{method:"POST",body:JSON.stringify({password:a})}),sendRepeaterCommand:(r,a)=>gt(`/contacts/${r}/command`,{method:"POST",body:JSON.stringify({command:a})}),getChannels:()=>gt("/channels"),getChannel:r=>gt(`/channels/${r}`),createChannel:(r,a)=>gt("/channels",{method:"POST",body:JSON.stringify({name:r,key:a})}),syncChannels:()=>gt("/channels/sync",{method:"POST"}),deleteChannel:r=>gt(`/channels/${r}`,{method:"DELETE"}),markChannelRead:r=>gt(`/channels/${r}/mark-read`,{method:"POST"}),getMessages:r=>{const a=new URLSearchParams;r!=null&&r.limit&&a.set("limit",r.limit.toString()),r!=null&&r.offset&&a.set("offset",r.offset.toString()),r!=null&&r.type&&a.set("type",r.type),r!=null&&r.conversation_key&&a.set("conversation_key",r.conversation_key);const s=a.toString();return gt(`/messages${s?`?${s}`:""}`)},getMessagesBulk:(r,a=100)=>gt(`/messages/bulk?limit_per_conversation=${a}`,{method:"POST",body:JSON.stringify(r)}),sendDirectMessage:(r,a)=>gt("/messages/direct",{method:"POST",body:JSON.stringify({destination:r,text:a})}),sendChannelMessage:(r,a)=>gt("/messages/channel",{method:"POST",body:JSON.stringify({channel_key:r,text:a})}),getUndecryptedPacketCount:()=>gt("/packets/undecrypted/count"),decryptHistoricalPackets:r=>gt("/packets/decrypt/historical",{method:"POST",body:JSON.stringify(r)}),runMaintenance:r=>gt("/packets/maintenance",{method:"POST",body:JSON.stringify({prune_undecrypted_days:r})}),deduplicatePackets:()=>gt("/packets/dedup",{method:"POST"}),markAllRead:()=>gt("/read-state/mark-all-read",{method:"POST"}),getSettings:()=>gt("/settings"),updateSettings:r=>gt("/settings",{method:"PATCH",body:JSON.stringify(r)})};function kv(r){const a=R.useRef(null),s=R.useRef(null),[l,f]=R.useState(!1),d=R.useCallback(()=>{const m=window.location.protocol==="https:"?"wss:":"ws:",x=window.location.port==="5173"?"ws://localhost:8000/api/ws":`${m}//${window.location.host}/api/ws`,p=new WebSocket(x);p.onopen=()=>{console.log("WebSocket connected"),f(!0)},p.onclose=()=>{console.log("WebSocket disconnected"),f(!1),a.current=null,s.current=window.setTimeout(()=>{console.log("Attempting WebSocket reconnect..."),d()},3e3)},p.onerror=y=>{console.error("WebSocket error:",y)},p.onmessage=y=>{var v,w,S,T,C,E,P,B;try{const k=JSON.parse(y.data);switch(k.type){case"health":(v=r.onHealth)==null||v.call(r,k.data);break;case"contacts":(w=r.onContacts)==null||w.call(r,k.data);break;case"channels":(S=r.onChannels)==null||S.call(r,k.data);break;case"message":(T=r.onMessage)==null||T.call(r,k.data);break;case"contact":(C=r.onContact)==null||C.call(r,k.data);break;case"raw_packet":(E=r.onRawPacket)==null||E.call(r,k.data);break;case"message_acked":{const N=k.data;(P=r.onMessageAcked)==null||P.call(r,N.message_id,N.ack_count);break}case"error":(B=r.onError)==null||B.call(r,k.data);break;case"pong":break;default:console.log("Unknown WebSocket message type:",k.type)}}catch(k){console.error("Failed to parse WebSocket message:",k)}},a.current=p},[r]);return R.useEffect(()=>{d();const m=setInterval(()=>{var h;((h=a.current)==null?void 0:h.readyState)===WebSocket.OPEN&&a.current.send("ping")},3e4);return()=>{clearInterval(m),s.current&&clearTimeout(s.current),a.current&&a.current.close()}},[d]),{connected:l}}const o0=2;function Ru(r){if(r<60)return`${r}s`;const a=Math.floor(r/86400),s=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return a>0?s>0&&l>0?`${a}d${s}h${l}m`:s>0?`${a}d${s}h`:l>0?`${a}d${l}m`:`${a}d`:s>0?l>0?`${s}h${l}m`:`${s}h`:`${l}m`}function Sv(r){return["Telemetry",`Battery Voltage: ${r.battery_volts.toFixed(3)}V`,`Uptime: ${Ru(r.uptime_seconds)}`,`TX Airtime: ${Ru(r.airtime_seconds)}`,`RX Airtime: ${Ru(r.rx_airtime_seconds)}`,"",`Noise Floor: ${r.noise_floor_dbm} dBm`,`Last RSSI: ${r.last_rssi_dbm} dBm`,`Last SNR: ${r.last_snr_db.toFixed(1)} dB`,"",`Packets: ${r.packets_received.toLocaleString()} rx / ${r.packets_sent.toLocaleString()} tx`,`Flood: ${r.recv_flood.toLocaleString()} rx / ${r.sent_flood.toLocaleString()} tx`,`Direct: ${r.recv_direct.toLocaleString()} rx / ${r.sent_direct.toLocaleString()} tx`,`Duplicates: ${r.flood_dups.toLocaleString()} flood / ${r.direct_dups.toLocaleString()} direct`,"",`TX Queue: ${r.tx_queue_len}`,`Debug Flags: ${r.full_events}`].join(` -`)}function Bv(r){if(r.length===0)return`Neighbors +`+_.stack}return{value:e,source:n,stack:g,digest:null}}function Ud(e,n,o){return{value:e,source:null,stack:o??null,digest:n??null}}function Zd(e,n){try{console.error(n.value)}catch(o){setTimeout(function(){throw o})}}var Zx=typeof WeakMap=="function"?WeakMap:Map;function _h(e,n,o){o=pi(-1,o),o.tag=3,o.payload={element:null};var c=n.value;return o.callback=function(){lu||(lu=!0,sf=c),Zd(e,n)},o}function wh(e,n,o){o=pi(-1,o),o.tag=3;var c=e.type.getDerivedStateFromError;if(typeof c=="function"){var g=n.value;o.payload=function(){return c(g)},o.callback=function(){Zd(e,n)}}var _=e.stateNode;return _!==null&&typeof _.componentDidCatch=="function"&&(o.callback=function(){Zd(e,n),typeof c!="function"&&($i===null?$i=new Set([this]):$i.add(this));var M=n.stack;this.componentDidCatch(n.value,{componentStack:M!==null?M:""})}),o}function Ch(e,n,o){var c=e.pingCache;if(c===null){c=e.pingCache=new Zx;var g=new Set;c.set(n,g)}else g=c.get(n),g===void 0&&(g=new Set,c.set(n,g));g.has(o)||(g.add(o),e=iv.bind(null,e,n,o),n.then(e,e))}function bh(e){do{var n;if((n=e.tag===13)&&(n=e.memoizedState,n=n!==null?n.dehydrated!==null:!0),n)return e;e=e.return}while(e!==null);return null}function Eh(e,n,o,c,g){return(e.mode&1)===0?(e===n?e.flags|=65536:(e.flags|=128,o.flags|=131072,o.flags&=-52805,o.tag===1&&(o.alternate===null?o.tag=17:(n=pi(-1,1),n.tag=2,Qi(o,n,1))),o.lanes|=1),e):(e.flags|=65536,e.lanes=g,e)}var Wx=N.ReactCurrentOwner,On=!1;function Dn(e,n,o,c){n.child=e===null?W0(n,null,o,c):bs(n,e.child,o,c)}function kh(e,n,o,c,g){o=o.render;var _=n.ref;return ks(n,g),c=Ld(e,n,o,c,_,g),o=Md(),e!==null&&!On?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~g,mi(e,n,g)):(Nt&&o&&xd(n),n.flags|=1,Dn(e,n,c,g),n.child)}function Sh(e,n,o,c,g){if(e===null){var _=o.type;return typeof _=="function"&&!hf(_)&&_.defaultProps===void 0&&o.compare===null&&o.defaultProps===void 0?(n.tag=15,n.type=_,Bh(e,n,_,c,g)):(e=pu(o.type,null,c,n,n.mode,g),e.ref=n.ref,e.return=n,n.child=e)}if(_=e.child,(e.lanes&g)===0){var M=_.memoizedProps;if(o=o.compare,o=o!==null?o:zr,o(M,c)&&e.ref===n.ref)return mi(e,n,g)}return n.flags|=1,e=eo(_,c),e.ref=n.ref,e.return=n,n.child=e}function Bh(e,n,o,c,g){if(e!==null){var _=e.memoizedProps;if(zr(_,c)&&e.ref===n.ref)if(On=!1,n.pendingProps=c=_,(e.lanes&g)!==0)(e.flags&131072)!==0&&(On=!0);else return n.lanes=e.lanes,mi(e,n,g)}return Wd(e,n,o,c,g)}function Ph(e,n,o){var c=n.pendingProps,g=c.children,_=e!==null?e.memoizedState:null;if(c.mode==="hidden")if((n.mode&1)===0)n.memoizedState={baseLanes:0,cachePool:null,transitions:null},Pt(Ts,nr),nr|=o;else{if((o&1073741824)===0)return e=_!==null?_.baseLanes|o:o,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,Pt(Ts,nr),nr|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},c=_!==null?_.baseLanes:o,Pt(Ts,nr),nr|=c}else _!==null?(c=_.baseLanes|o,n.memoizedState=null):c=o,Pt(Ts,nr),nr|=c;return Dn(e,n,g,o),n.child}function Th(e,n){var o=n.ref;(e===null&&o!==null||e!==null&&e.ref!==o)&&(n.flags|=512,n.flags|=2097152)}function Wd(e,n,o,c,g){var _=In(o)?wo:wn.current;return _=ys(n,_),ks(n,g),o=Ld(e,n,o,c,_,g),c=Md(),e!==null&&!On?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~g,mi(e,n,g)):(Nt&&c&&xd(n),n.flags|=1,Dn(e,n,o,g),n.child)}function Dh(e,n,o,c,g){if(In(o)){var _=!0;zl(n)}else _=!1;if(ks(n,g),n.stateNode===null)ru(e,n),vh(n,o,c),Vd(n,o,c,g),c=!0;else if(e===null){var M=n.stateNode,W=n.memoizedProps;M.props=W;var Y=M.context,ce=o.contextType;typeof ce=="object"&&ce!==null?ce=hr(ce):(ce=In(o)?wo:wn.current,ce=ys(n,ce));var ye=o.getDerivedStateFromProps,_e=typeof ye=="function"||typeof M.getSnapshotBeforeUpdate=="function";_e||typeof M.UNSAFE_componentWillReceiveProps!="function"&&typeof M.componentWillReceiveProps!="function"||(W!==c||Y!==ce)&&yh(n,M,c,ce),Gi=!1;var ve=n.memoizedState;M.state=ve,Ql(n,c,M,g),Y=n.memoizedState,W!==c||ve!==Y||Mn.current||Gi?(typeof ye=="function"&&(Hd(n,o,ye,c),Y=n.memoizedState),(W=Gi||xh(n,o,W,c,ve,Y,ce))?(_e||typeof M.UNSAFE_componentWillMount!="function"&&typeof M.componentWillMount!="function"||(typeof M.componentWillMount=="function"&&M.componentWillMount(),typeof M.UNSAFE_componentWillMount=="function"&&M.UNSAFE_componentWillMount()),typeof M.componentDidMount=="function"&&(n.flags|=4194308)):(typeof M.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=c,n.memoizedState=Y),M.props=c,M.state=Y,M.context=ce,c=W):(typeof M.componentDidMount=="function"&&(n.flags|=4194308),c=!1)}else{M=n.stateNode,G0(e,n),W=n.memoizedProps,ce=n.type===n.elementType?W:kr(n.type,W),M.props=ce,_e=n.pendingProps,ve=M.context,Y=o.contextType,typeof Y=="object"&&Y!==null?Y=hr(Y):(Y=In(o)?wo:wn.current,Y=ys(n,Y));var Te=o.getDerivedStateFromProps;(ye=typeof Te=="function"||typeof M.getSnapshotBeforeUpdate=="function")||typeof M.UNSAFE_componentWillReceiveProps!="function"&&typeof M.componentWillReceiveProps!="function"||(W!==_e||ve!==Y)&&yh(n,M,c,Y),Gi=!1,ve=n.memoizedState,M.state=ve,Ql(n,c,M,g);var Re=n.memoizedState;W!==_e||ve!==Re||Mn.current||Gi?(typeof Te=="function"&&(Hd(n,o,Te,c),Re=n.memoizedState),(ce=Gi||xh(n,o,ce,c,ve,Re,Y)||!1)?(ye||typeof M.UNSAFE_componentWillUpdate!="function"&&typeof M.componentWillUpdate!="function"||(typeof M.componentWillUpdate=="function"&&M.componentWillUpdate(c,Re,Y),typeof M.UNSAFE_componentWillUpdate=="function"&&M.UNSAFE_componentWillUpdate(c,Re,Y)),typeof M.componentDidUpdate=="function"&&(n.flags|=4),typeof M.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof M.componentDidUpdate!="function"||W===e.memoizedProps&&ve===e.memoizedState||(n.flags|=4),typeof M.getSnapshotBeforeUpdate!="function"||W===e.memoizedProps&&ve===e.memoizedState||(n.flags|=1024),n.memoizedProps=c,n.memoizedState=Re),M.props=c,M.state=Re,M.context=Y,c=ce):(typeof M.componentDidUpdate!="function"||W===e.memoizedProps&&ve===e.memoizedState||(n.flags|=4),typeof M.getSnapshotBeforeUpdate!="function"||W===e.memoizedProps&&ve===e.memoizedState||(n.flags|=1024),c=!1)}return qd(e,n,o,c,_,g)}function qd(e,n,o,c,g,_){Th(e,n);var M=(n.flags&128)!==0;if(!c&&!M)return g&&M0(n,o,!1),mi(e,n,_);c=n.stateNode,Wx.current=n;var W=M&&typeof o.getDerivedStateFromError!="function"?null:c.render();return n.flags|=1,e!==null&&M?(n.child=bs(n,e.child,null,_),n.child=bs(n,null,W,_)):Dn(e,n,W,_),n.memoizedState=c.state,g&&M0(n,o,!0),n.child}function Rh(e){var n=e.stateNode;n.pendingContext?N0(e,n.pendingContext,n.pendingContext!==n.context):n.context&&N0(e,n.context,!1),Pd(e,n.containerInfo)}function Fh(e,n,o,c,g){return Cs(),wd(g),n.flags|=256,Dn(e,n,o,c),n.child}var Gd={dehydrated:null,treeContext:null,retryLane:0};function Qd(e){return{baseLanes:e,cachePool:null,transitions:null}}function Nh(e,n,o){var c=n.pendingProps,g=jt.current,_=!1,M=(n.flags&128)!==0,W;if((W=M)||(W=e!==null&&e.memoizedState===null?!1:(g&2)!==0),W?(_=!0,n.flags&=-129):(e===null||e.memoizedState!==null)&&(g|=1),Pt(jt,g&1),e===null)return _d(n),e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((n.mode&1)===0?n.lanes=1:e.data==="$!"?n.lanes=8:n.lanes=1073741824,null):(M=c.children,e=c.fallback,_?(c=n.mode,_=n.child,M={mode:"hidden",children:M},(c&1)===0&&_!==null?(_.childLanes=0,_.pendingProps=M):_=mu(M,c,0,null),e=Ro(e,c,o,null),_.return=n,e.return=n,_.sibling=e,n.child=_,n.child.memoizedState=Qd(o),n.memoizedState=Gd,e):Kd(n,M));if(g=e.memoizedState,g!==null&&(W=g.dehydrated,W!==null))return qx(e,n,M,c,W,g,o);if(_){_=c.fallback,M=n.mode,g=e.child,W=g.sibling;var Y={mode:"hidden",children:c.children};return(M&1)===0&&n.child!==g?(c=n.child,c.childLanes=0,c.pendingProps=Y,n.deletions=null):(c=eo(g,Y),c.subtreeFlags=g.subtreeFlags&14680064),W!==null?_=eo(W,_):(_=Ro(_,M,o,null),_.flags|=2),_.return=n,c.return=n,c.sibling=_,n.child=c,c=_,_=n.child,M=e.child.memoizedState,M=M===null?Qd(o):{baseLanes:M.baseLanes|o,cachePool:null,transitions:M.transitions},_.memoizedState=M,_.childLanes=e.childLanes&~o,n.memoizedState=Gd,c}return _=e.child,e=_.sibling,c=eo(_,{mode:"visible",children:c.children}),(n.mode&1)===0&&(c.lanes=o),c.return=n,c.sibling=null,e!==null&&(o=n.deletions,o===null?(n.deletions=[e],n.flags|=16):o.push(e)),n.child=c,n.memoizedState=null,c}function Kd(e,n){return n=mu({mode:"visible",children:n},e.mode,0,null),n.return=e,e.child=n}function nu(e,n,o,c){return c!==null&&wd(c),bs(n,e.child,null,o),e=Kd(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function qx(e,n,o,c,g,_,M){if(o)return n.flags&256?(n.flags&=-257,c=Ud(Error(s(422))),nu(e,n,M,c)):n.memoizedState!==null?(n.child=e.child,n.flags|=128,null):(_=c.fallback,g=n.mode,c=mu({mode:"visible",children:c.children},g,0,null),_=Ro(_,g,M,null),_.flags|=2,c.return=n,_.return=n,c.sibling=_,n.child=c,(n.mode&1)!==0&&bs(n,e.child,null,M),n.child.memoizedState=Qd(M),n.memoizedState=Gd,_);if((n.mode&1)===0)return nu(e,n,M,null);if(g.data==="$!"){if(c=g.nextSibling&&g.nextSibling.dataset,c)var W=c.dgst;return c=W,_=Error(s(419)),c=Ud(_,c,void 0),nu(e,n,M,c)}if(W=(M&e.childLanes)!==0,On||W){if(c=ln,c!==null){switch(M&-M){case 4:g=2;break;case 16:g=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:g=32;break;case 536870912:g=268435456;break;default:g=0}g=(g&(c.suspendedLanes|M))!==0?0:g,g!==0&&g!==_.retryLane&&(_.retryLane=g,hi(e,g),Pr(c,e,g,-1))}return ff(),c=Ud(Error(s(421))),nu(e,n,M,c)}return g.data==="$?"?(n.flags|=128,n.child=e.child,n=ov.bind(null,e),g._reactRetry=n,null):(e=_.treeContext,tr=Vr(g.nextSibling),er=n,Nt=!0,Er=null,e!==null&&(dr[fr++]=di,dr[fr++]=fi,dr[fr++]=Co,di=e.id,fi=e.overflow,Co=n),n=Kd(n,c.children),n.flags|=4096,n)}function Lh(e,n,o){e.lanes|=n;var c=e.alternate;c!==null&&(c.lanes|=n),kd(e.return,n,o)}function $d(e,n,o,c,g){var _=e.memoizedState;_===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:c,tail:o,tailMode:g}:(_.isBackwards=n,_.rendering=null,_.renderingStartTime=0,_.last=c,_.tail=o,_.tailMode=g)}function Mh(e,n,o){var c=n.pendingProps,g=c.revealOrder,_=c.tail;if(Dn(e,n,c.children,o),c=jt.current,(c&2)!==0)c=c&1|2,n.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Lh(e,o,n);else if(e.tag===19)Lh(e,o,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}c&=1}if(Pt(jt,c),(n.mode&1)===0)n.memoizedState=null;else switch(g){case"forwards":for(o=n.child,g=null;o!==null;)e=o.alternate,e!==null&&Kl(e)===null&&(g=o),o=o.sibling;o=g,o===null?(g=n.child,n.child=null):(g=o.sibling,o.sibling=null),$d(n,!1,g,o,_);break;case"backwards":for(o=null,g=n.child,n.child=null;g!==null;){if(e=g.alternate,e!==null&&Kl(e)===null){n.child=g;break}e=g.sibling,g.sibling=o,o=g,g=e}$d(n,!0,o,null,_);break;case"together":$d(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function ru(e,n){(n.mode&1)===0&&e!==null&&(e.alternate=null,n.alternate=null,n.flags|=2)}function mi(e,n,o){if(e!==null&&(n.dependencies=e.dependencies),Bo|=n.lanes,(o&n.childLanes)===0)return null;if(e!==null&&n.child!==e.child)throw Error(s(153));if(n.child!==null){for(e=n.child,o=eo(e,e.pendingProps),n.child=o,o.return=n;e.sibling!==null;)e=e.sibling,o=o.sibling=eo(e,e.pendingProps),o.return=n;o.sibling=null}return n.child}function Gx(e,n,o){switch(n.tag){case 3:Rh(n),Cs();break;case 5:$0(n);break;case 1:In(n.type)&&zl(n);break;case 4:Pd(n,n.stateNode.containerInfo);break;case 10:var c=n.type._context,g=n.memoizedProps.value;Pt(Wl,c._currentValue),c._currentValue=g;break;case 13:if(c=n.memoizedState,c!==null)return c.dehydrated!==null?(Pt(jt,jt.current&1),n.flags|=128,null):(o&n.child.childLanes)!==0?Nh(e,n,o):(Pt(jt,jt.current&1),e=mi(e,n,o),e!==null?e.sibling:null);Pt(jt,jt.current&1);break;case 19:if(c=(o&n.childLanes)!==0,(e.flags&128)!==0){if(c)return Mh(e,n,o);n.flags|=128}if(g=n.memoizedState,g!==null&&(g.rendering=null,g.tail=null,g.lastEffect=null),Pt(jt,jt.current),c)break;return null;case 22:case 23:return n.lanes=0,Ph(e,n,o)}return mi(e,n,o)}var Ih,Yd,Oh,zh;Ih=function(e,n){for(var o=n.child;o!==null;){if(o.tag===5||o.tag===6)e.appendChild(o.stateNode);else if(o.tag!==4&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===n)break;for(;o.sibling===null;){if(o.return===null||o.return===n)return;o=o.return}o.sibling.return=o.return,o=o.sibling}},Yd=function(){},Oh=function(e,n,o,c){var g=e.memoizedProps;if(g!==c){e=n.stateNode,ko(Ur.current);var _=null;switch(o){case"input":g=Ve(e,g),c=Ve(e,c),_=[];break;case"select":g=ne({},g,{value:void 0}),c=ne({},c,{value:void 0}),_=[];break;case"textarea":g=Oe(e,g),c=Oe(e,c),_=[];break;default:typeof g.onClick!="function"&&typeof c.onClick=="function"&&(e.onclick=xe)}we(o,c);var M;o=null;for(ce in g)if(!c.hasOwnProperty(ce)&&g.hasOwnProperty(ce)&&g[ce]!=null)if(ce==="style"){var W=g[ce];for(M in W)W.hasOwnProperty(M)&&(o||(o={}),o[M]="")}else ce!=="dangerouslySetInnerHTML"&&ce!=="children"&&ce!=="suppressContentEditableWarning"&&ce!=="suppressHydrationWarning"&&ce!=="autoFocus"&&(f.hasOwnProperty(ce)?_||(_=[]):(_=_||[]).push(ce,null));for(ce in c){var Y=c[ce];if(W=g!=null?g[ce]:void 0,c.hasOwnProperty(ce)&&Y!==W&&(Y!=null||W!=null))if(ce==="style")if(W){for(M in W)!W.hasOwnProperty(M)||Y&&Y.hasOwnProperty(M)||(o||(o={}),o[M]="");for(M in Y)Y.hasOwnProperty(M)&&W[M]!==Y[M]&&(o||(o={}),o[M]=Y[M])}else o||(_||(_=[]),_.push(ce,o)),o=Y;else ce==="dangerouslySetInnerHTML"?(Y=Y?Y.__html:void 0,W=W?W.__html:void 0,Y!=null&&W!==Y&&(_=_||[]).push(ce,Y)):ce==="children"?typeof Y!="string"&&typeof Y!="number"||(_=_||[]).push(ce,""+Y):ce!=="suppressContentEditableWarning"&&ce!=="suppressHydrationWarning"&&(f.hasOwnProperty(ce)?(Y!=null&&ce==="onScroll"&&bt("scroll",e),_||W===Y||(_=[])):(_=_||[]).push(ce,Y))}o&&(_=_||[]).push("style",o);var ce=_;(n.updateQueue=ce)&&(n.flags|=4)}},zh=function(e,n,o,c){o!==c&&(n.flags|=4)};function Ta(e,n){if(!Nt)switch(e.tailMode){case"hidden":n=e.tail;for(var o=null;n!==null;)n.alternate!==null&&(o=n),n=n.sibling;o===null?e.tail=null:o.sibling=null;break;case"collapsed":o=e.tail;for(var c=null;o!==null;)o.alternate!==null&&(c=o),o=o.sibling;c===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:c.sibling=null}}function bn(e){var n=e.alternate!==null&&e.alternate.child===e.child,o=0,c=0;if(n)for(var g=e.child;g!==null;)o|=g.lanes|g.childLanes,c|=g.subtreeFlags&14680064,c|=g.flags&14680064,g.return=e,g=g.sibling;else for(g=e.child;g!==null;)o|=g.lanes|g.childLanes,c|=g.subtreeFlags,c|=g.flags,g.return=e,g=g.sibling;return e.subtreeFlags|=c,e.childLanes=o,n}function Qx(e,n,o){var c=n.pendingProps;switch(vd(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return bn(n),null;case 1:return In(n.type)&&Ol(),bn(n),null;case 3:return c=n.stateNode,Ss(),Dt(Mn),Dt(wn),Rd(),c.pendingContext&&(c.context=c.pendingContext,c.pendingContext=null),(e===null||e.child===null)&&(Ul(n)?n.flags|=4:e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,Er!==null&&(uf(Er),Er=null))),Yd(e,n),bn(n),null;case 5:Td(n);var g=ko(Ea.current);if(o=n.type,e!==null&&n.stateNode!=null)Oh(e,n,o,c,g),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!c){if(n.stateNode===null)throw Error(s(166));return bn(n),null}if(e=ko(Ur.current),Ul(n)){c=n.stateNode,o=n.type;var _=n.memoizedProps;switch(c[cr]=n,c[Vi]=_,e=(n.mode&1)!==0,o){case"dialog":bt("cancel",c),bt("close",c);break;case"iframe":case"object":case"embed":bt("load",c);break;case"video":case"audio":for(g=0;g<\/script>",e=e.removeChild(e.firstChild)):typeof c.is=="string"?e=M.createElement(o,{is:c.is}):(e=M.createElement(o),o==="select"&&(M=e,c.multiple?M.multiple=!0:c.size&&(M.size=c.size))):e=M.createElementNS(e,o),e[cr]=n,e[Vi]=c,Ih(e,n,!1,!1),n.stateNode=e;e:{switch(M=te(o,c),o){case"dialog":bt("cancel",e),bt("close",e),g=c;break;case"iframe":case"object":case"embed":bt("load",e),g=c;break;case"video":case"audio":for(g=0;gDs&&(n.flags|=128,c=!0,Ta(_,!1),n.lanes=4194304)}else{if(!c)if(e=Kl(M),e!==null){if(n.flags|=128,c=!0,o=e.updateQueue,o!==null&&(n.updateQueue=o,n.flags|=4),Ta(_,!0),_.tail===null&&_.tailMode==="hidden"&&!M.alternate&&!Nt)return bn(n),null}else 2*Ot()-_.renderingStartTime>Ds&&o!==1073741824&&(n.flags|=128,c=!0,Ta(_,!1),n.lanes=4194304);_.isBackwards?(M.sibling=n.child,n.child=M):(o=_.last,o!==null?o.sibling=M:n.child=M,_.last=M)}return _.tail!==null?(n=_.tail,_.rendering=n,_.tail=n.sibling,_.renderingStartTime=Ot(),n.sibling=null,o=jt.current,Pt(jt,c?o&1|2:o&1),n):(bn(n),null);case 22:case 23:return df(),c=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==c&&(n.flags|=8192),c&&(n.mode&1)!==0?(nr&1073741824)!==0&&(bn(n),n.subtreeFlags&6&&(n.flags|=8192)):bn(n),null;case 24:return null;case 25:return null}throw Error(s(156,n.tag))}function Kx(e,n){switch(vd(n),n.tag){case 1:return In(n.type)&&Ol(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Ss(),Dt(Mn),Dt(wn),Rd(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 5:return Td(n),null;case 13:if(Dt(jt),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(s(340));Cs()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return Dt(jt),null;case 4:return Ss(),null;case 10:return Ed(n.type._context),null;case 22:case 23:return df(),null;case 24:return null;default:return null}}var iu=!1,En=!1,$x=typeof WeakSet=="function"?WeakSet:Set,De=null;function Ps(e,n){var o=e.ref;if(o!==null)if(typeof o=="function")try{o(null)}catch(c){Gt(e,n,c)}else o.current=null}function Xd(e,n,o){try{o()}catch(c){Gt(e,n,c)}}var jh=!1;function Yx(e,n){if(Be=po,e=ha(),pa(e)){if("selectionStart"in e)var o={start:e.selectionStart,end:e.selectionEnd};else e:{o=(o=e.ownerDocument)&&o.defaultView||window;var c=o.getSelection&&o.getSelection();if(c&&c.rangeCount!==0){o=c.anchorNode;var g=c.anchorOffset,_=c.focusNode;c=c.focusOffset;try{o.nodeType,_.nodeType}catch{o=null;break e}var M=0,W=-1,Y=-1,ce=0,ye=0,_e=e,ve=null;t:for(;;){for(var Te;_e!==o||g!==0&&_e.nodeType!==3||(W=M+g),_e!==_||c!==0&&_e.nodeType!==3||(Y=M+c),_e.nodeType===3&&(M+=_e.nodeValue.length),(Te=_e.firstChild)!==null;)ve=_e,_e=Te;for(;;){if(_e===e)break t;if(ve===o&&++ce===g&&(W=M),ve===_&&++ye===c&&(Y=M),(Te=_e.nextSibling)!==null)break;_e=ve,ve=_e.parentNode}_e=Te}o=W===-1||Y===-1?null:{start:W,end:Y}}else o=null}o=o||{start:0,end:0}}else o=null;for(Ue={focusedElem:e,selectionRange:o},po=!1,De=n;De!==null;)if(n=De,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,De=e;else for(;De!==null;){n=De;try{var Re=n.alternate;if((n.flags&1024)!==0)switch(n.tag){case 0:case 11:case 15:break;case 1:if(Re!==null){var Me=Re.memoizedProps,Qt=Re.memoizedState,oe=n.stateNode,ee=oe.getSnapshotBeforeUpdate(n.elementType===n.type?Me:kr(n.type,Me),Qt);oe.__reactInternalSnapshotBeforeUpdate=ee}break;case 3:var ae=n.stateNode.containerInfo;ae.nodeType===1?ae.textContent="":ae.nodeType===9&&ae.documentElement&&ae.removeChild(ae.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(be){Gt(n,n.return,be)}if(e=n.sibling,e!==null){e.return=n.return,De=e;break}De=n.return}return Re=jh,jh=!1,Re}function Da(e,n,o){var c=n.updateQueue;if(c=c!==null?c.lastEffect:null,c!==null){var g=c=c.next;do{if((g.tag&e)===e){var _=g.destroy;g.destroy=void 0,_!==void 0&&Xd(n,o,_)}g=g.next}while(g!==c)}}function ou(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var o=n=n.next;do{if((o.tag&e)===e){var c=o.create;o.destroy=c()}o=o.next}while(o!==n)}}function Jd(e){var n=e.ref;if(n!==null){var o=e.stateNode;switch(e.tag){case 5:e=o;break;default:e=o}typeof n=="function"?n(e):n.current=e}}function Hh(e){var n=e.alternate;n!==null&&(e.alternate=null,Hh(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[cr],delete n[Vi],delete n[Ui],delete n[pd],delete n[md])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Vh(e){return e.tag===5||e.tag===3||e.tag===4}function Uh(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Vh(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ef(e,n,o){var c=e.tag;if(c===5||c===6)e=e.stateNode,n?o.nodeType===8?o.parentNode.insertBefore(e,n):o.insertBefore(e,n):(o.nodeType===8?(n=o.parentNode,n.insertBefore(e,o)):(n=o,n.appendChild(e)),o=o._reactRootContainer,o!=null||n.onclick!==null||(n.onclick=xe));else if(c!==4&&(e=e.child,e!==null))for(ef(e,n,o),e=e.sibling;e!==null;)ef(e,n,o),e=e.sibling}function tf(e,n,o){var c=e.tag;if(c===5||c===6)e=e.stateNode,n?o.insertBefore(e,n):o.appendChild(e);else if(c!==4&&(e=e.child,e!==null))for(tf(e,n,o),e=e.sibling;e!==null;)tf(e,n,o),e=e.sibling}var pn=null,Sr=!1;function Ki(e,n,o){for(o=o.child;o!==null;)Zh(e,n,o),o=o.sibling}function Zh(e,n,o){if(qn&&typeof qn.onCommitFiberUnmount=="function")try{qn.onCommitFiberUnmount(ao,o)}catch{}switch(o.tag){case 5:En||Ps(o,n);case 6:var c=pn,g=Sr;pn=null,Ki(e,n,o),pn=c,Sr=g,pn!==null&&(Sr?(e=pn,o=o.stateNode,e.nodeType===8?e.parentNode.removeChild(o):e.removeChild(o)):pn.removeChild(o.stateNode));break;case 18:pn!==null&&(Sr?(e=pn,o=o.stateNode,e.nodeType===8?_a(e.parentNode,o):e.nodeType===1&&_a(e,o),Kn(e)):_a(pn,o.stateNode));break;case 4:c=pn,g=Sr,pn=o.stateNode.containerInfo,Sr=!0,Ki(e,n,o),pn=c,Sr=g;break;case 0:case 11:case 14:case 15:if(!En&&(c=o.updateQueue,c!==null&&(c=c.lastEffect,c!==null))){g=c=c.next;do{var _=g,M=_.destroy;_=_.tag,M!==void 0&&((_&2)!==0||(_&4)!==0)&&Xd(o,n,M),g=g.next}while(g!==c)}Ki(e,n,o);break;case 1:if(!En&&(Ps(o,n),c=o.stateNode,typeof c.componentWillUnmount=="function"))try{c.props=o.memoizedProps,c.state=o.memoizedState,c.componentWillUnmount()}catch(W){Gt(o,n,W)}Ki(e,n,o);break;case 21:Ki(e,n,o);break;case 22:o.mode&1?(En=(c=En)||o.memoizedState!==null,Ki(e,n,o),En=c):Ki(e,n,o);break;default:Ki(e,n,o)}}function Wh(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var o=e.stateNode;o===null&&(o=e.stateNode=new $x),n.forEach(function(c){var g=sv.bind(null,e,c);o.has(c)||(o.add(c),c.then(g,g))})}}function Br(e,n){var o=n.deletions;if(o!==null)for(var c=0;cg&&(g=M),c&=~_}if(c=g,c=Ot()-c,c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3e3>c?3e3:4320>c?4320:1960*Jx(c/1960))-c,10e?16:e,Yi===null)var c=!1;else{if(e=Yi,Yi=null,cu=0,(At&6)!==0)throw Error(s(331));var g=At;for(At|=4,De=e.current;De!==null;){var _=De,M=_.child;if((De.flags&16)!==0){var W=_.deletions;if(W!==null){for(var Y=0;YOt()-of?To(e,0):rf|=o),jn(e,n)}function ip(e,n){n===0&&((e.mode&1)===0?n=1:(n=Ei,Ei<<=1,(Ei&130023424)===0&&(Ei=4194304)));var o=Rn();e=hi(e,n),e!==null&&(Gn(e,n,o),jn(e,o))}function ov(e){var n=e.memoizedState,o=0;n!==null&&(o=n.retryLane),ip(e,o)}function sv(e,n){var o=0;switch(e.tag){case 13:var c=e.stateNode,g=e.memoizedState;g!==null&&(o=g.retryLane);break;case 19:c=e.stateNode;break;default:throw Error(s(314))}c!==null&&c.delete(n),ip(e,o)}var op;op=function(e,n,o){if(e!==null)if(e.memoizedProps!==n.pendingProps||Mn.current)On=!0;else{if((e.lanes&o)===0&&(n.flags&128)===0)return On=!1,Gx(e,n,o);On=(e.flags&131072)!==0}else On=!1,Nt&&(n.flags&1048576)!==0&&O0(n,Vl,n.index);switch(n.lanes=0,n.tag){case 2:var c=n.type;ru(e,n),e=n.pendingProps;var g=ys(n,wn.current);ks(n,o),g=Ld(null,n,c,e,g,o);var _=Md();return n.flags|=1,typeof g=="object"&&g!==null&&typeof g.render=="function"&&g.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,In(c)?(_=!0,zl(n)):_=!1,n.memoizedState=g.state!==null&&g.state!==void 0?g.state:null,Bd(n),g.updater=tu,n.stateNode=g,g._reactInternals=n,Vd(n,c,e,o),n=qd(null,n,c,!0,_,o)):(n.tag=0,Nt&&_&&xd(n),Dn(null,n,g,o),n=n.child),n;case 16:c=n.elementType;e:{switch(ru(e,n),e=n.pendingProps,g=c._init,c=g(c._payload),n.type=c,g=n.tag=lv(c),e=kr(c,e),g){case 0:n=Wd(null,n,c,e,o);break e;case 1:n=Dh(null,n,c,e,o);break e;case 11:n=kh(null,n,c,e,o);break e;case 14:n=Sh(null,n,c,kr(c.type,e),o);break e}throw Error(s(306,c,""))}return n;case 0:return c=n.type,g=n.pendingProps,g=n.elementType===c?g:kr(c,g),Wd(e,n,c,g,o);case 1:return c=n.type,g=n.pendingProps,g=n.elementType===c?g:kr(c,g),Dh(e,n,c,g,o);case 3:e:{if(Rh(n),e===null)throw Error(s(387));c=n.pendingProps,_=n.memoizedState,g=_.element,G0(e,n),Ql(n,c,null,o);var M=n.memoizedState;if(c=M.element,_.isDehydrated)if(_={element:c,isDehydrated:!1,cache:M.cache,pendingSuspenseBoundaries:M.pendingSuspenseBoundaries,transitions:M.transitions},n.updateQueue.baseState=_,n.memoizedState=_,n.flags&256){g=Bs(Error(s(423)),n),n=Fh(e,n,c,o,g);break e}else if(c!==g){g=Bs(Error(s(424)),n),n=Fh(e,n,c,o,g);break e}else for(tr=Vr(n.stateNode.containerInfo.firstChild),er=n,Nt=!0,Er=null,o=W0(n,null,c,o),n.child=o;o;)o.flags=o.flags&-3|4096,o=o.sibling;else{if(Cs(),c===g){n=mi(e,n,o);break e}Dn(e,n,c,o)}n=n.child}return n;case 5:return $0(n),e===null&&_d(n),c=n.type,g=n.pendingProps,_=e!==null?e.memoizedProps:null,M=g.children,tt(c,g)?M=null:_!==null&&tt(c,_)&&(n.flags|=32),Th(e,n),Dn(e,n,M,o),n.child;case 6:return e===null&&_d(n),null;case 13:return Nh(e,n,o);case 4:return Pd(n,n.stateNode.containerInfo),c=n.pendingProps,e===null?n.child=bs(n,null,c,o):Dn(e,n,c,o),n.child;case 11:return c=n.type,g=n.pendingProps,g=n.elementType===c?g:kr(c,g),kh(e,n,c,g,o);case 7:return Dn(e,n,n.pendingProps,o),n.child;case 8:return Dn(e,n,n.pendingProps.children,o),n.child;case 12:return Dn(e,n,n.pendingProps.children,o),n.child;case 10:e:{if(c=n.type._context,g=n.pendingProps,_=n.memoizedProps,M=g.value,Pt(Wl,c._currentValue),c._currentValue=M,_!==null)if(Xn(_.value,M)){if(_.children===g.children&&!Mn.current){n=mi(e,n,o);break e}}else for(_=n.child,_!==null&&(_.return=n);_!==null;){var W=_.dependencies;if(W!==null){M=_.child;for(var Y=W.firstContext;Y!==null;){if(Y.context===c){if(_.tag===1){Y=pi(-1,o&-o),Y.tag=2;var ce=_.updateQueue;if(ce!==null){ce=ce.shared;var ye=ce.pending;ye===null?Y.next=Y:(Y.next=ye.next,ye.next=Y),ce.pending=Y}}_.lanes|=o,Y=_.alternate,Y!==null&&(Y.lanes|=o),kd(_.return,o,n),W.lanes|=o;break}Y=Y.next}}else if(_.tag===10)M=_.type===n.type?null:_.child;else if(_.tag===18){if(M=_.return,M===null)throw Error(s(341));M.lanes|=o,W=M.alternate,W!==null&&(W.lanes|=o),kd(M,o,n),M=_.sibling}else M=_.child;if(M!==null)M.return=_;else for(M=_;M!==null;){if(M===n){M=null;break}if(_=M.sibling,_!==null){_.return=M.return,M=_;break}M=M.return}_=M}Dn(e,n,g.children,o),n=n.child}return n;case 9:return g=n.type,c=n.pendingProps.children,ks(n,o),g=hr(g),c=c(g),n.flags|=1,Dn(e,n,c,o),n.child;case 14:return c=n.type,g=kr(c,n.pendingProps),g=kr(c.type,g),Sh(e,n,c,g,o);case 15:return Bh(e,n,n.type,n.pendingProps,o);case 17:return c=n.type,g=n.pendingProps,g=n.elementType===c?g:kr(c,g),ru(e,n),n.tag=1,In(c)?(e=!0,zl(n)):e=!1,ks(n,o),vh(n,c,g),Vd(n,c,g,o),qd(null,n,c,!0,e,o);case 19:return Mh(e,n,o);case 22:return Ph(e,n,o)}throw Error(s(156,n.tag))};function sp(e,n){return hl(e,n)}function av(e,n,o,c){this.tag=e,this.key=o,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=c,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ar(e,n,o,c){return new av(e,n,o,c)}function hf(e){return e=e.prototype,!(!e||!e.isReactComponent)}function lv(e){if(typeof e=="function")return hf(e)?1:0;if(e!=null){if(e=e.$$typeof,e===re)return 11;if(e===le)return 14}return 2}function eo(e,n){var o=e.alternate;return o===null?(o=Ar(e.tag,n,e.key,e.mode),o.elementType=e.elementType,o.type=e.type,o.stateNode=e.stateNode,o.alternate=e,e.alternate=o):(o.pendingProps=n,o.type=e.type,o.flags=0,o.subtreeFlags=0,o.deletions=null),o.flags=e.flags&14680064,o.childLanes=e.childLanes,o.lanes=e.lanes,o.child=e.child,o.memoizedProps=e.memoizedProps,o.memoizedState=e.memoizedState,o.updateQueue=e.updateQueue,n=e.dependencies,o.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},o.sibling=e.sibling,o.index=e.index,o.ref=e.ref,o}function pu(e,n,o,c,g,_){var M=2;if(c=e,typeof e=="function")hf(e)&&(M=1);else if(typeof e=="string")M=5;else e:switch(e){case j:return Ro(o.children,g,_,n);case H:M=8,g|=8;break;case $:return e=Ar(12,o,n,g|2),e.elementType=$,e.lanes=_,e;case V:return e=Ar(13,o,n,g),e.elementType=V,e.lanes=_,e;case J:return e=Ar(19,o,n,g),e.elementType=J,e.lanes=_,e;case de:return mu(o,g,_,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case U:M=10;break e;case G:M=9;break e;case re:M=11;break e;case le:M=14;break e;case se:M=16,c=null;break e}throw Error(s(130,e==null?e:typeof e,""))}return n=Ar(M,o,n,g),n.elementType=e,n.type=c,n.lanes=_,n}function Ro(e,n,o,c){return e=Ar(7,e,c,n),e.lanes=o,e}function mu(e,n,o,c){return e=Ar(22,e,c,n),e.elementType=de,e.lanes=o,e.stateNode={isHidden:!1},e}function pf(e,n,o){return e=Ar(6,e,null,n),e.lanes=o,e}function mf(e,n,o){return n=Ar(4,e.children!==null?e.children:[],e.key,n),n.lanes=o,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function uv(e,n,o,c,g){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ki(0),this.expirationTimes=ki(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ki(0),this.identifierPrefix=c,this.onRecoverableError=g,this.mutableSourceEagerHydrationData=null}function Af(e,n,o,c,g,_,M,W,Y){return e=new uv(e,n,o,W,Y),n===1?(n=1,_===!0&&(n|=8)):n=0,_=Ar(3,null,null,n),e.current=_,_.stateNode=e,_.memoizedState={element:c,isDehydrated:o,cache:null,transitions:null,pendingSuspenseBoundaries:null},Bd(_),e}function cv(e,n,o){var c=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(a){console.error(a)}}return r(),Cf.exports=bv(),Cf.exports}var yp;function Ev(){if(yp)return wu;yp=1;var r=_A();return wu.createRoot=r.createRoot,wu.hydrateRoot=r.hydrateRoot,wu}var kv=Ev();const Sv="/api",o0=100;async function gt(r,a){const s=await fetch(`${Sv}${r}`,{...a,headers:{"Content-Type":"application/json",...a==null?void 0:a.headers}});if(!s.ok){const l=await s.text();throw new Error(l||s.statusText)}return s.json()}const at={getHealth:()=>gt("/health"),getRadioConfig:()=>gt("/radio/config"),updateRadioConfig:r=>gt("/radio/config",{method:"PATCH",body:JSON.stringify(r)}),setPrivateKey:r=>gt("/radio/private-key",{method:"PUT",body:JSON.stringify({private_key:r})}),sendAdvertisement:(r=!0)=>gt(`/radio/advertise?flood=${r}`,{method:"POST"}),rebootRadio:()=>gt("/radio/reboot",{method:"POST"}),reconnectRadio:()=>gt("/radio/reconnect",{method:"POST"}),getContacts:(r=100,a=0)=>gt(`/contacts?limit=${r}&offset=${a}`),getContact:r=>gt(`/contacts/${r}`),syncContacts:()=>gt("/contacts/sync",{method:"POST"}),addContactToRadio:r=>gt(`/contacts/${r}/add-to-radio`,{method:"POST"}),removeContactFromRadio:r=>gt(`/contacts/${r}/remove-from-radio`,{method:"POST"}),deleteContact:r=>gt(`/contacts/${r}`,{method:"DELETE"}),markContactRead:r=>gt(`/contacts/${r}/mark-read`,{method:"POST"}),requestTelemetry:(r,a)=>gt(`/contacts/${r}/telemetry`,{method:"POST",body:JSON.stringify({password:a})}),sendRepeaterCommand:(r,a)=>gt(`/contacts/${r}/command`,{method:"POST",body:JSON.stringify({command:a})}),getChannels:()=>gt("/channels"),getChannel:r=>gt(`/channels/${r}`),createChannel:(r,a)=>gt("/channels",{method:"POST",body:JSON.stringify({name:r,key:a})}),syncChannels:()=>gt("/channels/sync",{method:"POST"}),deleteChannel:r=>gt(`/channels/${r}`,{method:"DELETE"}),markChannelRead:r=>gt(`/channels/${r}/mark-read`,{method:"POST"}),getMessages:r=>{const a=new URLSearchParams;r!=null&&r.limit&&a.set("limit",r.limit.toString()),r!=null&&r.offset&&a.set("offset",r.offset.toString()),r!=null&&r.type&&a.set("type",r.type),r!=null&&r.conversation_key&&a.set("conversation_key",r.conversation_key);const s=a.toString();return gt(`/messages${s?`?${s}`:""}`)},getMessagesBulk:(r,a=o0)=>gt(`/messages/bulk?limit_per_conversation=${a}`,{method:"POST",body:JSON.stringify(r)}),sendDirectMessage:(r,a)=>gt("/messages/direct",{method:"POST",body:JSON.stringify({destination:r,text:a})}),sendChannelMessage:(r,a)=>gt("/messages/channel",{method:"POST",body:JSON.stringify({channel_key:r,text:a})}),getUndecryptedPacketCount:()=>gt("/packets/undecrypted/count"),decryptHistoricalPackets:r=>gt("/packets/decrypt/historical",{method:"POST",body:JSON.stringify(r)}),runMaintenance:r=>gt("/packets/maintenance",{method:"POST",body:JSON.stringify({prune_undecrypted_days:r})}),deduplicatePackets:()=>gt("/packets/dedup",{method:"POST"}),markAllRead:()=>gt("/read-state/mark-all-read",{method:"POST"}),getSettings:()=>gt("/settings"),updateSettings:r=>gt("/settings",{method:"PATCH",body:JSON.stringify(r)})};function Bv(r){const a=R.useRef(null),s=R.useRef(null),[l,f]=R.useState(!1),d=R.useCallback(()=>{const m=window.location.protocol==="https:"?"wss:":"ws:",x=window.location.port==="5173"?"ws://localhost:8000/api/ws":`${m}//${window.location.host}/api/ws`,p=new WebSocket(x);p.onopen=()=>{console.log("WebSocket connected"),f(!0)},p.onclose=()=>{console.log("WebSocket disconnected"),f(!1),a.current=null,s.current=window.setTimeout(()=>{console.log("Attempting WebSocket reconnect..."),d()},3e3)},p.onerror=y=>{console.error("WebSocket error:",y)},p.onmessage=y=>{var v,w,S,T,b,E,P,B;try{const k=JSON.parse(y.data);switch(k.type){case"health":(v=r.onHealth)==null||v.call(r,k.data);break;case"contacts":(w=r.onContacts)==null||w.call(r,k.data);break;case"channels":(S=r.onChannels)==null||S.call(r,k.data);break;case"message":(T=r.onMessage)==null||T.call(r,k.data);break;case"contact":(b=r.onContact)==null||b.call(r,k.data);break;case"raw_packet":(E=r.onRawPacket)==null||E.call(r,k.data);break;case"message_acked":{const N=k.data;(P=r.onMessageAcked)==null||P.call(r,N.message_id,N.ack_count);break}case"error":(B=r.onError)==null||B.call(r,k.data);break;case"pong":break;default:console.log("Unknown WebSocket message type:",k.type)}}catch(k){console.error("Failed to parse WebSocket message:",k)}},a.current=p},[r]);return R.useEffect(()=>{d();const m=setInterval(()=>{var h;((h=a.current)==null?void 0:h.readyState)===WebSocket.OPEN&&a.current.send("ping")},3e4);return()=>{clearInterval(m),s.current&&clearTimeout(s.current),a.current&&a.current.close()}},[d]),{connected:l}}const s0=2;function Ru(r){if(r<60)return`${r}s`;const a=Math.floor(r/86400),s=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return a>0?s>0&&l>0?`${a}d${s}h${l}m`:s>0?`${a}d${s}h`:l>0?`${a}d${l}m`:`${a}d`:s>0?l>0?`${s}h${l}m`:`${s}h`:`${l}m`}function Pv(r){return["Telemetry",`Battery Voltage: ${r.battery_volts.toFixed(3)}V`,`Uptime: ${Ru(r.uptime_seconds)}`,`TX Airtime: ${Ru(r.airtime_seconds)}`,`RX Airtime: ${Ru(r.rx_airtime_seconds)}`,"",`Noise Floor: ${r.noise_floor_dbm} dBm`,`Last RSSI: ${r.last_rssi_dbm} dBm`,`Last SNR: ${r.last_snr_db.toFixed(1)} dB`,"",`Packets: ${r.packets_received.toLocaleString()} rx / ${r.packets_sent.toLocaleString()} tx`,`Flood: ${r.recv_flood.toLocaleString()} rx / ${r.sent_flood.toLocaleString()} tx`,`Direct: ${r.recv_direct.toLocaleString()} rx / ${r.sent_direct.toLocaleString()} tx`,`Duplicates: ${r.flood_dups.toLocaleString()} flood / ${r.direct_dups.toLocaleString()} direct`,"",`TX Queue: ${r.tx_queue_len}`,`Debug Flags: ${r.full_events}`].join(` +`)}function Tv(r){if(r.length===0)return`Neighbors No neighbors reported`;const a=[...r].sort((l,f)=>f.snr-l.snr),s=[`Neighbors (${a.length})`];for(const l of a){const f=l.name||l.pubkey_prefix,d=l.snr>=0?`+${l.snr.toFixed(1)}`:l.snr.toFixed(1);s.push(`${f}, ${d} dB [${Ru(l.last_heard_seconds)} ago]`)}return s.join(` -`)}function Pv(r){if(r.length===0)return`ACL +`)}function Dv(r){if(r.length===0)return`ACL No ACL entries`;const a=[`ACL (${r.length})`];for(const s of r){const l=s.name||s.pubkey_prefix;a.push(`${l}: ${s.permission_name}`)}return a.join(` -`)}function No(r,a,s,l=0){const f=Math.floor(Date.now()/1e3);return{id:-Date.now()-l,type:"PRIV",conversation_key:r,text:a,sender_timestamp:f,received_at:f,path_len:null,txt_type:0,signature:null,outgoing:s,acked:1}}function Tv(r,a,s){const[l,f]=R.useState(!1);R.useEffect(()=>{f(!1)},[r==null?void 0:r.id]);const d=R.useMemo(()=>{if(!r||r.type!=="contact")return!1;const x=a.find(p=>p.public_key===r.id);return(x==null?void 0:x.type)===o0},[r,a]),m=R.useCallback(async x=>{if(!(!r||r.type!=="contact")&&d)try{const p=await at.requestTelemetry(r.id,x),y=No(r.id,Sv(p),!1,0),v=No(r.id,Bv(p.neighbors),!1,1),w=No(r.id,Pv(p.acl),!1,2);s(S=>[...S,y,v,w]),f(!0)}catch(p){const y=No(r.id,`Telemetry request failed: ${p instanceof Error?p.message:"Unknown error"}`,!1,0);s(v=>[...v,y])}},[r,d,s]),h=R.useCallback(async x=>{if(!r||r.type!=="contact"||!d||!l)return;const p=No(r.id,`> ${x}`,!0,0);s(y=>[...y,p]);try{const y=await at.sendRepeaterCommand(r.id,x),v=No(r.id,y.response,!1,1);y.sender_timestamp&&(v.sender_timestamp=y.sender_timestamp),s(w=>[...w,v])}catch(y){const v=No(r.id,`Command failed: ${y instanceof Error?y.message:"Unknown error"}`,!1,1);s(w=>[...w,v])}},[r,d,l,s]);return{repeaterLoggedIn:l,activeContactIsRepeater:d,handleTelemetryRequest:m,handleRepeaterCommand:h}}const Dv=12;function js(r){return r.slice(0,Dv)}function yA(r,a){return!r||!a?!1:js(r)===js(a)}function Vo(r,a){return r||js(a)}const Vf="remoteterm-lastMessageTime";function _A(r){try{const a=localStorage.getItem(r);return a?JSON.parse(a):{}}catch{return{}}}function Rv(r,a){try{localStorage.setItem(r,JSON.stringify(a))}catch{}}function yp(){return _A(Vf)}function kf(r,a){const s=_A(Vf);return(!s[r]||a>s[r])&&(s[r]=a,Rv(Vf,s)),s}function Dr(r,a){return r==="channel"?`channel-${a}`:`contact-${js(a)}`}function _p(r,a){if(!a)return!1;const s=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`@\\[${s}\\]`,"i").test(r)}function Fv(r,a,s,l=null){const[f,d]=R.useState({}),[m,h]=R.useState({}),[x,p]=R.useState(yp),y=R.useRef(l);R.useEffect(()=>{y.current=l},[l]);const v=R.useRef(new Set),w=R.useRef(new Set);R.useEffect(()=>{const P=r.filter(N=>!v.current.has(N.key)),B=a.filter(N=>N.public_key&&!w.current.has(N.public_key));if(P.length===0&&B.length===0)return;P.forEach(N=>v.current.add(N.key)),B.forEach(N=>w.current.add(N.public_key)),(async()=>{const N=[...P.map(I=>({type:"CHAN",conversation_key:I.key})),...B.map(I=>({type:"PRIV",conversation_key:I.public_key}))];if(N.length!==0)try{const I=await at.getMessagesBulk(N,100),z={},j={},H={};for(const $ of P){const U=I[`CHAN:${$.key}`]||[];if(U.length>0){const G=Dr("channel",$.key),re=$.last_read_at||0,V=U.filter(le=>!le.outgoing&&le.received_at>re);V.length>0&&(z[G]=V.length,V.some(le=>_p(le.text,y.current))&&(j[G]=!0));const J=Math.max(...U.map(le=>le.received_at));H[G]=J,kf(G,J)}}for(const $ of B){const U=I[`PRIV:${$.public_key}`]||[];if(U.length>0){const G=Dr("contact",$.public_key),re=$.last_read_at||0,V=U.filter(le=>!le.outgoing&&le.received_at>re);V.length>0&&(z[G]=V.length,V.some(le=>_p(le.text,y.current))&&(j[G]=!0));const J=Math.max(...U.map(le=>le.received_at));H[G]=J,kf(G,J)}}Object.keys(z).length>0&&d($=>({...$,...z})),Object.keys(j).length>0&&h($=>({...$,...j})),p(yp())}catch(I){console.error("Failed to fetch messages bulk:",I)}})()},[r,a]),R.useEffect(()=>{if(s&&s.type!=="raw"&&s.type!=="map"){const P=Dr(s.type,s.id);d(B=>{if(B[P]){const k={...B};return delete k[P],k}return B}),h(B=>{if(B[P]){const k={...B};return delete k[P],k}return B}),s.type==="channel"?at.markChannelRead(s.id).catch(B=>{console.error("Failed to mark channel as read on server:",B)}):s.type==="contact"&&at.markContactRead(s.id).catch(B=>{console.error("Failed to mark contact as read on server:",B)})}},[s]);const S=R.useCallback((P,B)=>{d(k=>({...k,[P]:(k[P]||0)+1})),B&&h(k=>({...k,[P]:!0}))},[]),T=R.useCallback(()=>{d({}),h({}),at.markAllRead().catch(P=>{console.error("Failed to mark all as read on server:",P)})},[]),C=R.useCallback(P=>{if(P.type==="raw"||P.type==="map")return;const B=Dr(P.type,P.id);d(k=>{if(k[B]){const N={...k};return delete N[B],N}return k}),h(k=>{if(k[B]){const N={...k};return delete N[B],N}return k}),P.type==="channel"?at.markChannelRead(P.id).catch(k=>{console.error("Failed to mark channel as read on server:",k)}):P.type==="contact"&&at.markContactRead(P.id).catch(k=>{console.error("Failed to mark contact as read on server:",k)})},[]),E=R.useCallback(P=>{let B=null;if(P.type==="CHAN"&&P.conversation_key?B=Dr("channel",P.conversation_key):P.type==="PRIV"&&P.conversation_key&&(B=Dr("contact",P.conversation_key)),B){const k=P.received_at||Math.floor(Date.now()/1e3),N=kf(B,k);p(N)}},[]);return{unreadCounts:f,mentions:m,lastMessageTimes:x,incrementUnread:S,markAllRead:T,markConversationRead:C,trackNewMessage:E}}var s0=vA();const wA=Us(s0);function Nv(r){if(typeof document>"u")return;let a=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",a.appendChild(s),s.styleSheet?s.styleSheet.cssText=r:s.appendChild(document.createTextNode(r))}const Lv=r=>{switch(r){case"success":return Ov;case"info":return jv;case"warning":return zv;case"error":return Hv;default:return null}},Mv=Array(12).fill(0),Iv=({visible:r,className:a})=>be.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":r},be.createElement("div",{className:"sonner-spinner"},Mv.map((s,l)=>be.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${l}`})))),Ov=be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},be.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),zv=be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},be.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),jv=be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},be.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),Hv=be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},be.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Vv=be.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},be.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),be.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Uv=()=>{const[r,a]=be.useState(document.hidden);return be.useEffect(()=>{const s=()=>{a(document.hidden)};return document.addEventListener("visibilitychange",s),()=>window.removeEventListener("visibilitychange",s)},[]),r};let Uf=1;class Zv{constructor(){this.subscribe=a=>(this.subscribers.push(a),()=>{const s=this.subscribers.indexOf(a);this.subscribers.splice(s,1)}),this.publish=a=>{this.subscribers.forEach(s=>s(a))},this.addToast=a=>{this.publish(a),this.toasts=[...this.toasts,a]},this.create=a=>{var s;const{message:l,...f}=a,d=typeof(a==null?void 0:a.id)=="number"||((s=a.id)==null?void 0:s.length)>0?a.id:Uf++,m=this.toasts.find(x=>x.id===d),h=a.dismissible===void 0?!0:a.dismissible;return this.dismissedToasts.has(d)&&this.dismissedToasts.delete(d),m?this.toasts=this.toasts.map(x=>x.id===d?(this.publish({...x,...a,id:d,title:l}),{...x,...a,id:d,dismissible:h,title:l}):x):this.addToast({title:l,...f,dismissible:h,id:d}),d},this.dismiss=a=>(a?(this.dismissedToasts.add(a),requestAnimationFrame(()=>this.subscribers.forEach(s=>s({id:a,dismiss:!0})))):this.toasts.forEach(s=>{this.subscribers.forEach(l=>l({id:s.id,dismiss:!0}))}),a),this.message=(a,s)=>this.create({...s,message:a}),this.error=(a,s)=>this.create({...s,message:a,type:"error"}),this.success=(a,s)=>this.create({...s,type:"success",message:a}),this.info=(a,s)=>this.create({...s,type:"info",message:a}),this.warning=(a,s)=>this.create({...s,type:"warning",message:a}),this.loading=(a,s)=>this.create({...s,type:"loading",message:a}),this.promise=(a,s)=>{if(!s)return;let l;s.loading!==void 0&&(l=this.create({...s,promise:a,type:"loading",message:s.loading,description:typeof s.description!="function"?s.description:void 0}));const f=Promise.resolve(a instanceof Function?a():a);let d=l!==void 0,m;const h=f.then(async p=>{if(m=["resolve",p],be.isValidElement(p))d=!1,this.create({id:l,type:"default",message:p});else if(qv(p)&&!p.ok){d=!1;const v=typeof s.error=="function"?await s.error(`HTTP error! status: ${p.status}`):s.error,w=typeof s.description=="function"?await s.description(`HTTP error! status: ${p.status}`):s.description,T=typeof v=="object"&&!be.isValidElement(v)?v:{message:v};this.create({id:l,type:"error",description:w,...T})}else if(p instanceof Error){d=!1;const v=typeof s.error=="function"?await s.error(p):s.error,w=typeof s.description=="function"?await s.description(p):s.description,T=typeof v=="object"&&!be.isValidElement(v)?v:{message:v};this.create({id:l,type:"error",description:w,...T})}else if(s.success!==void 0){d=!1;const v=typeof s.success=="function"?await s.success(p):s.success,w=typeof s.description=="function"?await s.description(p):s.description,T=typeof v=="object"&&!be.isValidElement(v)?v:{message:v};this.create({id:l,type:"success",description:w,...T})}}).catch(async p=>{if(m=["reject",p],s.error!==void 0){d=!1;const y=typeof s.error=="function"?await s.error(p):s.error,v=typeof s.description=="function"?await s.description(p):s.description,S=typeof y=="object"&&!be.isValidElement(y)?y:{message:y};this.create({id:l,type:"error",description:v,...S})}}).finally(()=>{d&&(this.dismiss(l),l=void 0),s.finally==null||s.finally.call(s)}),x=()=>new Promise((p,y)=>h.then(()=>m[0]==="reject"?y(m[1]):p(m[1])).catch(y));return typeof l!="string"&&typeof l!="number"?{unwrap:x}:Object.assign(l,{unwrap:x})},this.custom=(a,s)=>{const l=(s==null?void 0:s.id)||Uf++;return this.create({jsx:a(l),id:l,...s}),l},this.getActiveToasts=()=>this.toasts.filter(a=>!this.dismissedToasts.has(a.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const Vn=new Zv,Wv=(r,a)=>{const s=(a==null?void 0:a.id)||Uf++;return Vn.addToast({title:r,...a,id:s}),s},qv=r=>r&&typeof r=="object"&&"ok"in r&&typeof r.ok=="boolean"&&"status"in r&&typeof r.status=="number",Gv=Wv,Qv=()=>Vn.toasts,Kv=()=>Vn.getActiveToasts(),Lt=Object.assign(Gv,{success:Vn.success,info:Vn.info,warning:Vn.warning,error:Vn.error,custom:Vn.custom,message:Vn.message,promise:Vn.promise,dismiss:Vn.dismiss,loading:Vn.loading},{getHistory:Qv,getToasts:Kv});Nv("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function bu(r){return r.label!==void 0}const $v=3,Yv="24px",Xv="16px",wp=4e3,Jv=356,ey=14,ty=45,ny=200;function qr(...r){return r.filter(Boolean).join(" ")}function ry(r){const[a,s]=r.split("-"),l=[];return a&&l.push(a),s&&l.push(s),l}const iy=r=>{var a,s,l,f,d,m,h,x,p;const{invert:y,toast:v,unstyled:w,interacting:S,setHeights:T,visibleToasts:C,heights:E,index:P,toasts:B,expanded:k,removeToast:N,defaultRichColors:I,closeButton:z,style:j,cancelButtonStyle:H,actionButtonStyle:$,className:U="",descriptionClassName:G="",duration:re,position:V,gap:J,expandByDefault:le,classNames:se,icons:de,closeButtonAriaLabel:q="Close toast"}=r,[ge,ne]=be.useState(null),[D,Z]=be.useState(null),[K,X]=be.useState(!1),[fe,he]=be.useState(!1),[ke,Ae]=be.useState(!1),[qe,Ye]=be.useState(!1),[Et,ht]=be.useState(!1),[Se,Ve]=be.useState(0),[dt,Mt]=be.useState(0),vt=be.useRef(v.duration||re||wp),ot=be.useRef(null),Qe=be.useRef(null),Xe=P===0,et=P+1<=C,Oe=v.type,_t=v.dismissible!==!1,$t=v.className||"",Un=v.descriptionClassName||"",It=be.useMemo(()=>E.findIndex(je=>je.toastId===v.id)||0,[E,v.id]),Jt=be.useMemo(()=>{var je;return(je=v.closeButton)!=null?je:z},[v.closeButton,z]),fn=be.useMemo(()=>v.duration||re||wp,[v.duration,re]),Sn=be.useRef(0),Ut=be.useRef(0),St=be.useRef(0),Zt=be.useRef(null),[Zn,xn]=V.split("-"),pe=be.useMemo(()=>E.reduce((je,pt,kt)=>kt>=It?je:je+pt.height,0),[E,It]),we=Uv(),te=v.invert||y,me=Oe==="loading";Ut.current=be.useMemo(()=>It*J+pe,[It,pe]),be.useEffect(()=>{vt.current=fn},[fn]),be.useEffect(()=>{X(!0)},[]),be.useEffect(()=>{const je=Qe.current;if(je){const pt=je.getBoundingClientRect().height;return Mt(pt),T(kt=>[{toastId:v.id,height:pt,position:v.position},...kt]),()=>T(kt=>kt.filter(Rt=>Rt.toastId!==v.id))}},[T,v.id]),be.useLayoutEffect(()=>{if(!K)return;const je=Qe.current,pt=je.style.height;je.style.height="auto";const kt=je.getBoundingClientRect().height;je.style.height=pt,Mt(kt),T(Rt=>Rt.find(rt=>rt.toastId===v.id)?Rt.map(rt=>rt.toastId===v.id?{...rt,height:kt}:rt):[{toastId:v.id,height:kt,position:v.position},...Rt])},[K,v.title,v.description,T,v.id,v.jsx,v.action,v.cancel]);const Ee=be.useCallback(()=>{he(!0),Ve(Ut.current),T(je=>je.filter(pt=>pt.toastId!==v.id)),setTimeout(()=>{N(v)},ny)},[v,N,T,Ut]);be.useEffect(()=>{if(v.promise&&Oe==="loading"||v.duration===1/0||v.type==="loading")return;let je;return k||S||we?(()=>{if(St.current{vt.current!==1/0&&(Sn.current=new Date().getTime(),je=setTimeout(()=>{v.onAutoClose==null||v.onAutoClose.call(v,v),Ee()},vt.current))})(),()=>clearTimeout(je)},[k,S,v,Oe,we,Ee]),be.useEffect(()=>{v.delete&&(Ee(),v.onDismiss==null||v.onDismiss.call(v,v))},[Ee,v.delete]);function He(){var je;if(de!=null&&de.loading){var pt;return be.createElement("div",{className:qr(se==null?void 0:se.loader,v==null||(pt=v.classNames)==null?void 0:pt.loader,"sonner-loader"),"data-visible":Oe==="loading"},de.loading)}return be.createElement(Iv,{className:qr(se==null?void 0:se.loader,v==null||(je=v.classNames)==null?void 0:je.loader),visible:Oe==="loading"})}const ze=v.icon||(de==null?void 0:de[Oe])||Lv(Oe);var nt,hn;return be.createElement("li",{tabIndex:0,ref:Qe,className:qr(U,$t,se==null?void 0:se.toast,v==null||(a=v.classNames)==null?void 0:a.toast,se==null?void 0:se.default,se==null?void 0:se[Oe],v==null||(s=v.classNames)==null?void 0:s[Oe]),"data-sonner-toast":"","data-rich-colors":(nt=v.richColors)!=null?nt:I,"data-styled":!(v.jsx||v.unstyled||w),"data-mounted":K,"data-promise":!!v.promise,"data-swiped":Et,"data-removed":fe,"data-visible":et,"data-y-position":Zn,"data-x-position":xn,"data-index":P,"data-front":Xe,"data-swiping":ke,"data-dismissible":_t,"data-type":Oe,"data-invert":te,"data-swipe-out":qe,"data-swipe-direction":D,"data-expanded":!!(k||le&&K),"data-testid":v.testId,style:{"--index":P,"--toasts-before":P,"--z-index":B.length-P,"--offset":`${fe?Se:Ut.current}px`,"--initial-height":le?"auto":`${dt}px`,...j,...v.style},onDragEnd:()=>{Ae(!1),ne(null),Zt.current=null},onPointerDown:je=>{je.button!==2&&(me||!_t||(ot.current=new Date,Ve(Ut.current),je.target.setPointerCapture(je.pointerId),je.target.tagName!=="BUTTON"&&(Ae(!0),Zt.current={x:je.clientX,y:je.clientY})))},onPointerUp:()=>{var je,pt,kt;if(qe||!_t)return;Zt.current=null;const Rt=Number(((je=Qe.current)==null?void 0:je.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Fn=Number(((pt=Qe.current)==null?void 0:pt.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),rt=new Date().getTime()-((kt=ot.current)==null?void 0:kt.getTime()),wt=ge==="x"?Rt:Fn,Wn=Math.abs(wt)/rt;if(Math.abs(wt)>=ty||Wn>.11){Ve(Ut.current),v.onDismiss==null||v.onDismiss.call(v,v),Z(ge==="x"?Rt>0?"right":"left":Fn>0?"down":"up"),Ee(),Ye(!0);return}else{var mt,Ft;(mt=Qe.current)==null||mt.style.setProperty("--swipe-amount-x","0px"),(Ft=Qe.current)==null||Ft.style.setProperty("--swipe-amount-y","0px")}ht(!1),Ae(!1),ne(null)},onPointerMove:je=>{var pt,kt,Rt;if(!Zt.current||!_t||((pt=window.getSelection())==null?void 0:pt.toString().length)>0)return;const rt=je.clientY-Zt.current.y,wt=je.clientX-Zt.current.x;var Wn;const mt=(Wn=r.swipeDirections)!=null?Wn:ry(V);!ge&&(Math.abs(wt)>1||Math.abs(rt)>1)&&ne(Math.abs(wt)>Math.abs(rt)?"x":"y");let Ft={x:0,y:0};const Wt=Pe=>1/(1.5+Math.abs(Pe)/20);if(ge==="y"){if(mt.includes("top")||mt.includes("bottom"))if(mt.includes("top")&&rt<0||mt.includes("bottom")&&rt>0)Ft.y=rt;else{const Pe=rt*Wt(rt);Ft.y=Math.abs(Pe)0)Ft.x=wt;else{const Pe=wt*Wt(wt);Ft.x=Math.abs(Pe)0||Math.abs(Ft.y)>0)&&ht(!0),(kt=Qe.current)==null||kt.style.setProperty("--swipe-amount-x",`${Ft.x}px`),(Rt=Qe.current)==null||Rt.style.setProperty("--swipe-amount-y",`${Ft.y}px`)}},Jt&&!v.jsx&&Oe!=="loading"?be.createElement("button",{"aria-label":q,"data-disabled":me,"data-close-button":!0,onClick:me||!_t?()=>{}:()=>{Ee(),v.onDismiss==null||v.onDismiss.call(v,v)},className:qr(se==null?void 0:se.closeButton,v==null||(l=v.classNames)==null?void 0:l.closeButton)},(hn=de==null?void 0:de.close)!=null?hn:Vv):null,(Oe||v.icon||v.promise)&&v.icon!==null&&((de==null?void 0:de[Oe])!==null||v.icon)?be.createElement("div",{"data-icon":"",className:qr(se==null?void 0:se.icon,v==null||(f=v.classNames)==null?void 0:f.icon)},v.promise||v.type==="loading"&&!v.icon?v.icon||He():null,v.type!=="loading"?ze:null):null,be.createElement("div",{"data-content":"",className:qr(se==null?void 0:se.content,v==null||(d=v.classNames)==null?void 0:d.content)},be.createElement("div",{"data-title":"",className:qr(se==null?void 0:se.title,v==null||(m=v.classNames)==null?void 0:m.title)},v.jsx?v.jsx:typeof v.title=="function"?v.title():v.title),v.description?be.createElement("div",{"data-description":"",className:qr(G,Un,se==null?void 0:se.description,v==null||(h=v.classNames)==null?void 0:h.description)},typeof v.description=="function"?v.description():v.description):null),be.isValidElement(v.cancel)?v.cancel:v.cancel&&bu(v.cancel)?be.createElement("button",{"data-button":!0,"data-cancel":!0,style:v.cancelButtonStyle||H,onClick:je=>{bu(v.cancel)&&_t&&(v.cancel.onClick==null||v.cancel.onClick.call(v.cancel,je),Ee())},className:qr(se==null?void 0:se.cancelButton,v==null||(x=v.classNames)==null?void 0:x.cancelButton)},v.cancel.label):null,be.isValidElement(v.action)?v.action:v.action&&bu(v.action)?be.createElement("button",{"data-button":!0,"data-action":!0,style:v.actionButtonStyle||$,onClick:je=>{bu(v.action)&&(v.action.onClick==null||v.action.onClick.call(v.action,je),!je.defaultPrevented&&Ee())},className:qr(se==null?void 0:se.actionButton,v==null||(p=v.classNames)==null?void 0:p.actionButton)},v.action.label):null)};function bp(){if(typeof window>"u"||typeof document>"u")return"ltr";const r=document.documentElement.getAttribute("dir");return r==="auto"||!r?window.getComputedStyle(document.documentElement).direction:r}function oy(r,a){const s={};return[r,a].forEach((l,f)=>{const d=f===1,m=d?"--mobile-offset":"--offset",h=d?Xv:Yv;function x(p){["top","right","bottom","left"].forEach(y=>{s[`${m}-${y}`]=typeof p=="number"?`${p}px`:p})}typeof l=="number"||typeof l=="string"?x(l):typeof l=="object"?["top","right","bottom","left"].forEach(p=>{l[p]===void 0?s[`${m}-${p}`]=h:s[`${m}-${p}`]=typeof l[p]=="number"?`${l[p]}px`:l[p]}):x(h)}),s}const sy=be.forwardRef(function(a,s){const{id:l,invert:f,position:d="bottom-right",hotkey:m=["altKey","KeyT"],expand:h,closeButton:x,className:p,offset:y,mobileOffset:v,theme:w="light",richColors:S,duration:T,style:C,visibleToasts:E=$v,toastOptions:P,dir:B=bp(),gap:k=ey,icons:N,containerAriaLabel:I="Notifications"}=a,[z,j]=be.useState([]),H=be.useMemo(()=>l?z.filter(K=>K.toasterId===l):z.filter(K=>!K.toasterId),[z,l]),$=be.useMemo(()=>Array.from(new Set([d].concat(H.filter(K=>K.position).map(K=>K.position)))),[H,d]),[U,G]=be.useState([]),[re,V]=be.useState(!1),[J,le]=be.useState(!1),[se,de]=be.useState(w!=="system"?w:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),q=be.useRef(null),ge=m.join("+").replace(/Key/g,"").replace(/Digit/g,""),ne=be.useRef(null),D=be.useRef(!1),Z=be.useCallback(K=>{j(X=>{var fe;return(fe=X.find(he=>he.id===K.id))!=null&&fe.delete||Vn.dismiss(K.id),X.filter(({id:he})=>he!==K.id)})},[]);return be.useEffect(()=>Vn.subscribe(K=>{if(K.dismiss){requestAnimationFrame(()=>{j(X=>X.map(fe=>fe.id===K.id?{...fe,delete:!0}:fe))});return}setTimeout(()=>{wA.flushSync(()=>{j(X=>{const fe=X.findIndex(he=>he.id===K.id);return fe!==-1?[...X.slice(0,fe),{...X[fe],...K},...X.slice(fe+1)]:[K,...X]})})})}),[z]),be.useEffect(()=>{if(w!=="system"){de(w);return}if(w==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?de("dark"):de("light")),typeof window>"u")return;const K=window.matchMedia("(prefers-color-scheme: dark)");try{K.addEventListener("change",({matches:X})=>{de(X?"dark":"light")})}catch{K.addListener(({matches:fe})=>{try{de(fe?"dark":"light")}catch(he){console.error(he)}})}},[w]),be.useEffect(()=>{z.length<=1&&V(!1)},[z]),be.useEffect(()=>{const K=X=>{var fe;if(m.every(Ae=>X[Ae]||X.code===Ae)){var ke;V(!0),(ke=q.current)==null||ke.focus()}X.code==="Escape"&&(document.activeElement===q.current||(fe=q.current)!=null&&fe.contains(document.activeElement))&&V(!1)};return document.addEventListener("keydown",K),()=>document.removeEventListener("keydown",K)},[m]),be.useEffect(()=>{if(q.current)return()=>{ne.current&&(ne.current.focus({preventScroll:!0}),ne.current=null,D.current=!1)}},[q.current]),be.createElement("section",{ref:s,"aria-label":`${I} ${ge}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},$.map((K,X)=>{var fe;const[he,ke]=K.split("-");return H.length?be.createElement("ol",{key:K,dir:B==="auto"?bp():B,tabIndex:-1,ref:q,className:p,"data-sonner-toaster":!0,"data-sonner-theme":se,"data-y-position":he,"data-x-position":ke,style:{"--front-toast-height":`${((fe=U[0])==null?void 0:fe.height)||0}px`,"--width":`${Jv}px`,"--gap":`${k}px`,...C,...oy(y,v)},onBlur:Ae=>{D.current&&!Ae.currentTarget.contains(Ae.relatedTarget)&&(D.current=!1,ne.current&&(ne.current.focus({preventScroll:!0}),ne.current=null))},onFocus:Ae=>{Ae.target instanceof HTMLElement&&Ae.target.dataset.dismissible==="false"||D.current||(D.current=!0,ne.current=Ae.relatedTarget)},onMouseEnter:()=>V(!0),onMouseMove:()=>V(!0),onMouseLeave:()=>{J||V(!1)},onDragEnd:()=>V(!1),onPointerDown:Ae=>{Ae.target instanceof HTMLElement&&Ae.target.dataset.dismissible==="false"||le(!0)},onPointerUp:()=>le(!1)},H.filter(Ae=>!Ae.position&&X===0||Ae.position===K).map((Ae,qe)=>{var Ye,Et;return be.createElement(iy,{key:Ae.id,icons:N,index:qe,toast:Ae,defaultRichColors:S,duration:(Ye=P==null?void 0:P.duration)!=null?Ye:T,className:P==null?void 0:P.className,descriptionClassName:P==null?void 0:P.descriptionClassName,invert:f,visibleToasts:E,closeButton:(Et=P==null?void 0:P.closeButton)!=null?Et:x,interacting:J,position:K,style:P==null?void 0:P.style,unstyled:P==null?void 0:P.unstyled,classNames:P==null?void 0:P.classNames,cancelButtonStyle:P==null?void 0:P.cancelButtonStyle,actionButtonStyle:P==null?void 0:P.actionButtonStyle,closeButtonAriaLabel:P==null?void 0:P.closeButtonAriaLabel,removeToast:Z,toasts:H.filter(ht=>ht.position==Ae.position),heights:U.filter(ht=>ht.position==Ae.position),setHeights:G,expandByDefault:h,gap:k,expanded:re,swipeDirections:a.swipeDirections})})):null}))}),ay=({...r})=>F.jsx(sy,{theme:"dark",className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-card group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",error:"group-[.toaster]:bg-[#2a1a1a] group-[.toaster]:text-[#e8a0a0] group-[.toaster]:border-[#4a2a2a] [&_[data-description]]:text-[#b08080]"}},...r}),Cu=200;function Fu(r){return`${r.type}-${r.conversation_key}-${r.text}-${r.sender_timestamp}`}function ly(r){const[a,s]=R.useState([]),[l,f]=R.useState(!1),[d,m]=R.useState(!1),[h,x]=R.useState(!1),p=R.useRef(new Set),y=R.useCallback(async(T=!1)=>{if(!r||r.type==="raw"){s([]),x(!1);return}T&&(f(!0),s([]));try{const C=await at.getMessages({type:r.type==="channel"?"CHAN":"PRIV",conversation_key:r.id,limit:Cu});s(C),p.current.clear();for(const E of C)p.current.add(Fu(E));x(C.length>=Cu)}catch(C){console.error("Failed to fetch messages:",C),Lt.error("Failed to load messages",{description:C instanceof Error?C.message:"Check your connection"})}finally{T&&f(!1)}},[r]),v=R.useCallback(async()=>{if(!(!r||r.type==="raw"||d||!h)){m(!0);try{const T=await at.getMessages({type:r.type==="channel"?"CHAN":"PRIV",conversation_key:r.id,limit:Cu,offset:a.length});if(T.length>0){s(C=>[...C,...T]);for(const C of T)p.current.add(Fu(C))}x(T.length>=Cu)}catch(T){console.error("Failed to fetch older messages:",T),Lt.error("Failed to load older messages",{description:T instanceof Error?T.message:"Check your connection"})}finally{m(!1)}}},[r,d,h,a.length]);R.useEffect(()=>{y(!0)},[y]);const w=R.useCallback(T=>{const C=Fu(T);if(p.current.has(C))return console.debug("Duplicate message content ignored:",C.slice(0,50)),!1;if(p.current.add(C),p.current.size>1e3){const E=Array.from(p.current);p.current=new Set(E.slice(-500))}return s(E=>E.some(P=>P.id===T.id)?E:[...E,T]),!0},[]),S=R.useCallback((T,C)=>{s(E=>{const P=E.findIndex(B=>B.id===T);if(P>=0){const B=[...E];return B[P]={...E[P],acked:C},B}return E})},[]);return{messages:a,messagesLoading:l,loadingOlder:d,hasOlderMessages:h,setMessages:s,fetchMessages:y,fetchOlderMessages:v,addMessageIfNew:w,updateMessageAck:S}}/** +`)}function No(r,a,s,l=0){const f=Math.floor(Date.now()/1e3);return{id:-Date.now()-l,type:"PRIV",conversation_key:r,text:a,sender_timestamp:f,received_at:f,path_len:null,txt_type:0,signature:null,outgoing:s,acked:1}}function Rv(r,a,s){const[l,f]=R.useState(!1);R.useEffect(()=>{f(!1)},[r==null?void 0:r.id]);const d=R.useMemo(()=>{if(!r||r.type!=="contact")return!1;const x=a.find(p=>p.public_key===r.id);return(x==null?void 0:x.type)===s0},[r,a]),m=R.useCallback(async x=>{if(!(!r||r.type!=="contact")&&d)try{const p=await at.requestTelemetry(r.id,x),y=No(r.id,Pv(p),!1,0),v=No(r.id,Tv(p.neighbors),!1,1),w=No(r.id,Dv(p.acl),!1,2);s(S=>[...S,y,v,w]),f(!0)}catch(p){const y=No(r.id,`Telemetry request failed: ${p instanceof Error?p.message:"Unknown error"}`,!1,0);s(v=>[...v,y])}},[r,d,s]),h=R.useCallback(async x=>{if(!r||r.type!=="contact"||!d||!l)return;const p=No(r.id,`> ${x}`,!0,0);s(y=>[...y,p]);try{const y=await at.sendRepeaterCommand(r.id,x),v=No(r.id,y.response,!1,1);y.sender_timestamp&&(v.sender_timestamp=y.sender_timestamp),s(w=>[...w,v])}catch(y){const v=No(r.id,`Command failed: ${y instanceof Error?y.message:"Unknown error"}`,!1,1);s(w=>[...w,v])}},[r,d,l,s]);return{repeaterLoggedIn:l,activeContactIsRepeater:d,handleTelemetryRequest:m,handleRepeaterCommand:h}}const Fv=12;function js(r){return r.slice(0,Fv)}function wA(r,a){return!r||!a?!1:js(r)===js(a)}function Vo(r,a){return r||js(a)}const Vf="remoteterm-lastMessageTime";function CA(r){try{const a=localStorage.getItem(r);return a?JSON.parse(a):{}}catch{return{}}}function Nv(r,a){try{localStorage.setItem(r,JSON.stringify(a))}catch{}}function _p(){return CA(Vf)}function kf(r,a){const s=CA(Vf);return(!s[r]||a>s[r])&&(s[r]=a,Nv(Vf,s)),s}function Dr(r,a){return r==="channel"?`channel-${a}`:`contact-${js(a)}`}function wp(r,a){if(!a)return!1;const s=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`@\\[${s}\\]`,"i").test(r)}function Lv(r,a,s,l=null){const[f,d]=R.useState({}),[m,h]=R.useState({}),[x,p]=R.useState(_p),y=R.useRef(l);R.useEffect(()=>{y.current=l},[l]);const v=R.useRef(new Set),w=R.useRef(new Set);R.useEffect(()=>{const P=r.filter(N=>!v.current.has(N.key)),B=a.filter(N=>N.public_key&&!w.current.has(N.public_key));if(P.length===0&&B.length===0)return;P.forEach(N=>v.current.add(N.key)),B.forEach(N=>w.current.add(N.public_key)),(async()=>{const N=[...P.map(I=>({type:"CHAN",conversation_key:I.key})),...B.map(I=>({type:"PRIV",conversation_key:I.public_key}))];if(N.length!==0)try{const I=await at.getMessagesBulk(N,o0),z={},j={},H={};for(const $ of P){const U=I[`CHAN:${$.key}`]||[];if(U.length>0){const G=Dr("channel",$.key),re=$.last_read_at||0,V=U.filter(le=>!le.outgoing&&le.received_at>re);V.length>0&&(z[G]=V.length,V.some(le=>wp(le.text,y.current))&&(j[G]=!0));const J=Math.max(...U.map(le=>le.received_at));H[G]=J,kf(G,J)}}for(const $ of B){const U=I[`PRIV:${$.public_key}`]||[];if(U.length>0){const G=Dr("contact",$.public_key),re=$.last_read_at||0,V=U.filter(le=>!le.outgoing&&le.received_at>re);V.length>0&&(z[G]=V.length,V.some(le=>wp(le.text,y.current))&&(j[G]=!0));const J=Math.max(...U.map(le=>le.received_at));H[G]=J,kf(G,J)}}Object.keys(z).length>0&&d($=>({...$,...z})),Object.keys(j).length>0&&h($=>({...$,...j})),p(_p())}catch(I){console.error("Failed to fetch messages bulk:",I)}})()},[r,a]),R.useEffect(()=>{if(s&&s.type!=="raw"&&s.type!=="map"){const P=Dr(s.type,s.id);d(B=>{if(B[P]){const k={...B};return delete k[P],k}return B}),h(B=>{if(B[P]){const k={...B};return delete k[P],k}return B}),s.type==="channel"?at.markChannelRead(s.id).catch(B=>{console.error("Failed to mark channel as read on server:",B)}):s.type==="contact"&&at.markContactRead(s.id).catch(B=>{console.error("Failed to mark contact as read on server:",B)})}},[s]);const S=R.useCallback((P,B)=>{d(k=>({...k,[P]:(k[P]||0)+1})),B&&h(k=>({...k,[P]:!0}))},[]),T=R.useCallback(()=>{d({}),h({}),at.markAllRead().catch(P=>{console.error("Failed to mark all as read on server:",P)})},[]),b=R.useCallback(P=>{if(P.type==="raw"||P.type==="map")return;const B=Dr(P.type,P.id);d(k=>{if(k[B]){const N={...k};return delete N[B],N}return k}),h(k=>{if(k[B]){const N={...k};return delete N[B],N}return k}),P.type==="channel"?at.markChannelRead(P.id).catch(k=>{console.error("Failed to mark channel as read on server:",k)}):P.type==="contact"&&at.markContactRead(P.id).catch(k=>{console.error("Failed to mark contact as read on server:",k)})},[]),E=R.useCallback(P=>{let B=null;if(P.type==="CHAN"&&P.conversation_key?B=Dr("channel",P.conversation_key):P.type==="PRIV"&&P.conversation_key&&(B=Dr("contact",P.conversation_key)),B){const k=P.received_at||Math.floor(Date.now()/1e3),N=kf(B,k);p(N)}},[]);return{unreadCounts:f,mentions:m,lastMessageTimes:x,incrementUnread:S,markAllRead:T,markConversationRead:b,trackNewMessage:E}}var a0=_A();const bA=Us(a0);function Mv(r){if(typeof document>"u")return;let a=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",a.appendChild(s),s.styleSheet?s.styleSheet.cssText=r:s.appendChild(document.createTextNode(r))}const Iv=r=>{switch(r){case"success":return jv;case"info":return Vv;case"warning":return Hv;case"error":return Uv;default:return null}},Ov=Array(12).fill(0),zv=({visible:r,className:a})=>Ce.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":r},Ce.createElement("div",{className:"sonner-spinner"},Ov.map((s,l)=>Ce.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${l}`})))),jv=Ce.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Ce.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),Hv=Ce.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},Ce.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),Vv=Ce.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Ce.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),Uv=Ce.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Ce.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Zv=Ce.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},Ce.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),Ce.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Wv=()=>{const[r,a]=Ce.useState(document.hidden);return Ce.useEffect(()=>{const s=()=>{a(document.hidden)};return document.addEventListener("visibilitychange",s),()=>window.removeEventListener("visibilitychange",s)},[]),r};let Uf=1;class qv{constructor(){this.subscribe=a=>(this.subscribers.push(a),()=>{const s=this.subscribers.indexOf(a);this.subscribers.splice(s,1)}),this.publish=a=>{this.subscribers.forEach(s=>s(a))},this.addToast=a=>{this.publish(a),this.toasts=[...this.toasts,a]},this.create=a=>{var s;const{message:l,...f}=a,d=typeof(a==null?void 0:a.id)=="number"||((s=a.id)==null?void 0:s.length)>0?a.id:Uf++,m=this.toasts.find(x=>x.id===d),h=a.dismissible===void 0?!0:a.dismissible;return this.dismissedToasts.has(d)&&this.dismissedToasts.delete(d),m?this.toasts=this.toasts.map(x=>x.id===d?(this.publish({...x,...a,id:d,title:l}),{...x,...a,id:d,dismissible:h,title:l}):x):this.addToast({title:l,...f,dismissible:h,id:d}),d},this.dismiss=a=>(a?(this.dismissedToasts.add(a),requestAnimationFrame(()=>this.subscribers.forEach(s=>s({id:a,dismiss:!0})))):this.toasts.forEach(s=>{this.subscribers.forEach(l=>l({id:s.id,dismiss:!0}))}),a),this.message=(a,s)=>this.create({...s,message:a}),this.error=(a,s)=>this.create({...s,message:a,type:"error"}),this.success=(a,s)=>this.create({...s,type:"success",message:a}),this.info=(a,s)=>this.create({...s,type:"info",message:a}),this.warning=(a,s)=>this.create({...s,type:"warning",message:a}),this.loading=(a,s)=>this.create({...s,type:"loading",message:a}),this.promise=(a,s)=>{if(!s)return;let l;s.loading!==void 0&&(l=this.create({...s,promise:a,type:"loading",message:s.loading,description:typeof s.description!="function"?s.description:void 0}));const f=Promise.resolve(a instanceof Function?a():a);let d=l!==void 0,m;const h=f.then(async p=>{if(m=["resolve",p],Ce.isValidElement(p))d=!1,this.create({id:l,type:"default",message:p});else if(Qv(p)&&!p.ok){d=!1;const v=typeof s.error=="function"?await s.error(`HTTP error! status: ${p.status}`):s.error,w=typeof s.description=="function"?await s.description(`HTTP error! status: ${p.status}`):s.description,T=typeof v=="object"&&!Ce.isValidElement(v)?v:{message:v};this.create({id:l,type:"error",description:w,...T})}else if(p instanceof Error){d=!1;const v=typeof s.error=="function"?await s.error(p):s.error,w=typeof s.description=="function"?await s.description(p):s.description,T=typeof v=="object"&&!Ce.isValidElement(v)?v:{message:v};this.create({id:l,type:"error",description:w,...T})}else if(s.success!==void 0){d=!1;const v=typeof s.success=="function"?await s.success(p):s.success,w=typeof s.description=="function"?await s.description(p):s.description,T=typeof v=="object"&&!Ce.isValidElement(v)?v:{message:v};this.create({id:l,type:"success",description:w,...T})}}).catch(async p=>{if(m=["reject",p],s.error!==void 0){d=!1;const y=typeof s.error=="function"?await s.error(p):s.error,v=typeof s.description=="function"?await s.description(p):s.description,S=typeof y=="object"&&!Ce.isValidElement(y)?y:{message:y};this.create({id:l,type:"error",description:v,...S})}}).finally(()=>{d&&(this.dismiss(l),l=void 0),s.finally==null||s.finally.call(s)}),x=()=>new Promise((p,y)=>h.then(()=>m[0]==="reject"?y(m[1]):p(m[1])).catch(y));return typeof l!="string"&&typeof l!="number"?{unwrap:x}:Object.assign(l,{unwrap:x})},this.custom=(a,s)=>{const l=(s==null?void 0:s.id)||Uf++;return this.create({jsx:a(l),id:l,...s}),l},this.getActiveToasts=()=>this.toasts.filter(a=>!this.dismissedToasts.has(a.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const Vn=new qv,Gv=(r,a)=>{const s=(a==null?void 0:a.id)||Uf++;return Vn.addToast({title:r,...a,id:s}),s},Qv=r=>r&&typeof r=="object"&&"ok"in r&&typeof r.ok=="boolean"&&"status"in r&&typeof r.status=="number",Kv=Gv,$v=()=>Vn.toasts,Yv=()=>Vn.getActiveToasts(),Lt=Object.assign(Kv,{success:Vn.success,info:Vn.info,warning:Vn.warning,error:Vn.error,custom:Vn.custom,message:Vn.message,promise:Vn.promise,dismiss:Vn.dismiss,loading:Vn.loading},{getHistory:$v,getToasts:Yv});Mv("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Cu(r){return r.label!==void 0}const Xv=3,Jv="24px",ey="16px",Cp=4e3,ty=356,ny=14,ry=45,iy=200;function qr(...r){return r.filter(Boolean).join(" ")}function oy(r){const[a,s]=r.split("-"),l=[];return a&&l.push(a),s&&l.push(s),l}const sy=r=>{var a,s,l,f,d,m,h,x,p;const{invert:y,toast:v,unstyled:w,interacting:S,setHeights:T,visibleToasts:b,heights:E,index:P,toasts:B,expanded:k,removeToast:N,defaultRichColors:I,closeButton:z,style:j,cancelButtonStyle:H,actionButtonStyle:$,className:U="",descriptionClassName:G="",duration:re,position:V,gap:J,expandByDefault:le,classNames:se,icons:de,closeButtonAriaLabel:q="Close toast"}=r,[ge,ne]=Ce.useState(null),[D,Z]=Ce.useState(null),[K,X]=Ce.useState(!1),[fe,he]=Ce.useState(!1),[ke,Ae]=Ce.useState(!1),[qe,Ye]=Ce.useState(!1),[Et,ht]=Ce.useState(!1),[Se,Ve]=Ce.useState(0),[dt,Mt]=Ce.useState(0),vt=Ce.useRef(v.duration||re||Cp),ot=Ce.useRef(null),Qe=Ce.useRef(null),Xe=P===0,et=P+1<=b,Oe=v.type,_t=v.dismissible!==!1,$t=v.className||"",Un=v.descriptionClassName||"",It=Ce.useMemo(()=>E.findIndex(je=>je.toastId===v.id)||0,[E,v.id]),Jt=Ce.useMemo(()=>{var je;return(je=v.closeButton)!=null?je:z},[v.closeButton,z]),fn=Ce.useMemo(()=>v.duration||re||Cp,[v.duration,re]),Sn=Ce.useRef(0),Ut=Ce.useRef(0),St=Ce.useRef(0),Zt=Ce.useRef(null),[Zn,xn]=V.split("-"),pe=Ce.useMemo(()=>E.reduce((je,pt,kt)=>kt>=It?je:je+pt.height,0),[E,It]),we=Wv(),te=v.invert||y,me=Oe==="loading";Ut.current=Ce.useMemo(()=>It*J+pe,[It,pe]),Ce.useEffect(()=>{vt.current=fn},[fn]),Ce.useEffect(()=>{X(!0)},[]),Ce.useEffect(()=>{const je=Qe.current;if(je){const pt=je.getBoundingClientRect().height;return Mt(pt),T(kt=>[{toastId:v.id,height:pt,position:v.position},...kt]),()=>T(kt=>kt.filter(Rt=>Rt.toastId!==v.id))}},[T,v.id]),Ce.useLayoutEffect(()=>{if(!K)return;const je=Qe.current,pt=je.style.height;je.style.height="auto";const kt=je.getBoundingClientRect().height;je.style.height=pt,Mt(kt),T(Rt=>Rt.find(rt=>rt.toastId===v.id)?Rt.map(rt=>rt.toastId===v.id?{...rt,height:kt}:rt):[{toastId:v.id,height:kt,position:v.position},...Rt])},[K,v.title,v.description,T,v.id,v.jsx,v.action,v.cancel]);const Ee=Ce.useCallback(()=>{he(!0),Ve(Ut.current),T(je=>je.filter(pt=>pt.toastId!==v.id)),setTimeout(()=>{N(v)},iy)},[v,N,T,Ut]);Ce.useEffect(()=>{if(v.promise&&Oe==="loading"||v.duration===1/0||v.type==="loading")return;let je;return k||S||we?(()=>{if(St.current{vt.current!==1/0&&(Sn.current=new Date().getTime(),je=setTimeout(()=>{v.onAutoClose==null||v.onAutoClose.call(v,v),Ee()},vt.current))})(),()=>clearTimeout(je)},[k,S,v,Oe,we,Ee]),Ce.useEffect(()=>{v.delete&&(Ee(),v.onDismiss==null||v.onDismiss.call(v,v))},[Ee,v.delete]);function He(){var je;if(de!=null&&de.loading){var pt;return Ce.createElement("div",{className:qr(se==null?void 0:se.loader,v==null||(pt=v.classNames)==null?void 0:pt.loader,"sonner-loader"),"data-visible":Oe==="loading"},de.loading)}return Ce.createElement(zv,{className:qr(se==null?void 0:se.loader,v==null||(je=v.classNames)==null?void 0:je.loader),visible:Oe==="loading"})}const ze=v.icon||(de==null?void 0:de[Oe])||Iv(Oe);var nt,hn;return Ce.createElement("li",{tabIndex:0,ref:Qe,className:qr(U,$t,se==null?void 0:se.toast,v==null||(a=v.classNames)==null?void 0:a.toast,se==null?void 0:se.default,se==null?void 0:se[Oe],v==null||(s=v.classNames)==null?void 0:s[Oe]),"data-sonner-toast":"","data-rich-colors":(nt=v.richColors)!=null?nt:I,"data-styled":!(v.jsx||v.unstyled||w),"data-mounted":K,"data-promise":!!v.promise,"data-swiped":Et,"data-removed":fe,"data-visible":et,"data-y-position":Zn,"data-x-position":xn,"data-index":P,"data-front":Xe,"data-swiping":ke,"data-dismissible":_t,"data-type":Oe,"data-invert":te,"data-swipe-out":qe,"data-swipe-direction":D,"data-expanded":!!(k||le&&K),"data-testid":v.testId,style:{"--index":P,"--toasts-before":P,"--z-index":B.length-P,"--offset":`${fe?Se:Ut.current}px`,"--initial-height":le?"auto":`${dt}px`,...j,...v.style},onDragEnd:()=>{Ae(!1),ne(null),Zt.current=null},onPointerDown:je=>{je.button!==2&&(me||!_t||(ot.current=new Date,Ve(Ut.current),je.target.setPointerCapture(je.pointerId),je.target.tagName!=="BUTTON"&&(Ae(!0),Zt.current={x:je.clientX,y:je.clientY})))},onPointerUp:()=>{var je,pt,kt;if(qe||!_t)return;Zt.current=null;const Rt=Number(((je=Qe.current)==null?void 0:je.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Fn=Number(((pt=Qe.current)==null?void 0:pt.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),rt=new Date().getTime()-((kt=ot.current)==null?void 0:kt.getTime()),wt=ge==="x"?Rt:Fn,Wn=Math.abs(wt)/rt;if(Math.abs(wt)>=ry||Wn>.11){Ve(Ut.current),v.onDismiss==null||v.onDismiss.call(v,v),Z(ge==="x"?Rt>0?"right":"left":Fn>0?"down":"up"),Ee(),Ye(!0);return}else{var mt,Ft;(mt=Qe.current)==null||mt.style.setProperty("--swipe-amount-x","0px"),(Ft=Qe.current)==null||Ft.style.setProperty("--swipe-amount-y","0px")}ht(!1),Ae(!1),ne(null)},onPointerMove:je=>{var pt,kt,Rt;if(!Zt.current||!_t||((pt=window.getSelection())==null?void 0:pt.toString().length)>0)return;const rt=je.clientY-Zt.current.y,wt=je.clientX-Zt.current.x;var Wn;const mt=(Wn=r.swipeDirections)!=null?Wn:oy(V);!ge&&(Math.abs(wt)>1||Math.abs(rt)>1)&&ne(Math.abs(wt)>Math.abs(rt)?"x":"y");let Ft={x:0,y:0};const Wt=Pe=>1/(1.5+Math.abs(Pe)/20);if(ge==="y"){if(mt.includes("top")||mt.includes("bottom"))if(mt.includes("top")&&rt<0||mt.includes("bottom")&&rt>0)Ft.y=rt;else{const Pe=rt*Wt(rt);Ft.y=Math.abs(Pe)0)Ft.x=wt;else{const Pe=wt*Wt(wt);Ft.x=Math.abs(Pe)0||Math.abs(Ft.y)>0)&&ht(!0),(kt=Qe.current)==null||kt.style.setProperty("--swipe-amount-x",`${Ft.x}px`),(Rt=Qe.current)==null||Rt.style.setProperty("--swipe-amount-y",`${Ft.y}px`)}},Jt&&!v.jsx&&Oe!=="loading"?Ce.createElement("button",{"aria-label":q,"data-disabled":me,"data-close-button":!0,onClick:me||!_t?()=>{}:()=>{Ee(),v.onDismiss==null||v.onDismiss.call(v,v)},className:qr(se==null?void 0:se.closeButton,v==null||(l=v.classNames)==null?void 0:l.closeButton)},(hn=de==null?void 0:de.close)!=null?hn:Zv):null,(Oe||v.icon||v.promise)&&v.icon!==null&&((de==null?void 0:de[Oe])!==null||v.icon)?Ce.createElement("div",{"data-icon":"",className:qr(se==null?void 0:se.icon,v==null||(f=v.classNames)==null?void 0:f.icon)},v.promise||v.type==="loading"&&!v.icon?v.icon||He():null,v.type!=="loading"?ze:null):null,Ce.createElement("div",{"data-content":"",className:qr(se==null?void 0:se.content,v==null||(d=v.classNames)==null?void 0:d.content)},Ce.createElement("div",{"data-title":"",className:qr(se==null?void 0:se.title,v==null||(m=v.classNames)==null?void 0:m.title)},v.jsx?v.jsx:typeof v.title=="function"?v.title():v.title),v.description?Ce.createElement("div",{"data-description":"",className:qr(G,Un,se==null?void 0:se.description,v==null||(h=v.classNames)==null?void 0:h.description)},typeof v.description=="function"?v.description():v.description):null),Ce.isValidElement(v.cancel)?v.cancel:v.cancel&&Cu(v.cancel)?Ce.createElement("button",{"data-button":!0,"data-cancel":!0,style:v.cancelButtonStyle||H,onClick:je=>{Cu(v.cancel)&&_t&&(v.cancel.onClick==null||v.cancel.onClick.call(v.cancel,je),Ee())},className:qr(se==null?void 0:se.cancelButton,v==null||(x=v.classNames)==null?void 0:x.cancelButton)},v.cancel.label):null,Ce.isValidElement(v.action)?v.action:v.action&&Cu(v.action)?Ce.createElement("button",{"data-button":!0,"data-action":!0,style:v.actionButtonStyle||$,onClick:je=>{Cu(v.action)&&(v.action.onClick==null||v.action.onClick.call(v.action,je),!je.defaultPrevented&&Ee())},className:qr(se==null?void 0:se.actionButton,v==null||(p=v.classNames)==null?void 0:p.actionButton)},v.action.label):null)};function bp(){if(typeof window>"u"||typeof document>"u")return"ltr";const r=document.documentElement.getAttribute("dir");return r==="auto"||!r?window.getComputedStyle(document.documentElement).direction:r}function ay(r,a){const s={};return[r,a].forEach((l,f)=>{const d=f===1,m=d?"--mobile-offset":"--offset",h=d?ey:Jv;function x(p){["top","right","bottom","left"].forEach(y=>{s[`${m}-${y}`]=typeof p=="number"?`${p}px`:p})}typeof l=="number"||typeof l=="string"?x(l):typeof l=="object"?["top","right","bottom","left"].forEach(p=>{l[p]===void 0?s[`${m}-${p}`]=h:s[`${m}-${p}`]=typeof l[p]=="number"?`${l[p]}px`:l[p]}):x(h)}),s}const ly=Ce.forwardRef(function(a,s){const{id:l,invert:f,position:d="bottom-right",hotkey:m=["altKey","KeyT"],expand:h,closeButton:x,className:p,offset:y,mobileOffset:v,theme:w="light",richColors:S,duration:T,style:b,visibleToasts:E=Xv,toastOptions:P,dir:B=bp(),gap:k=ny,icons:N,containerAriaLabel:I="Notifications"}=a,[z,j]=Ce.useState([]),H=Ce.useMemo(()=>l?z.filter(K=>K.toasterId===l):z.filter(K=>!K.toasterId),[z,l]),$=Ce.useMemo(()=>Array.from(new Set([d].concat(H.filter(K=>K.position).map(K=>K.position)))),[H,d]),[U,G]=Ce.useState([]),[re,V]=Ce.useState(!1),[J,le]=Ce.useState(!1),[se,de]=Ce.useState(w!=="system"?w:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),q=Ce.useRef(null),ge=m.join("+").replace(/Key/g,"").replace(/Digit/g,""),ne=Ce.useRef(null),D=Ce.useRef(!1),Z=Ce.useCallback(K=>{j(X=>{var fe;return(fe=X.find(he=>he.id===K.id))!=null&&fe.delete||Vn.dismiss(K.id),X.filter(({id:he})=>he!==K.id)})},[]);return Ce.useEffect(()=>Vn.subscribe(K=>{if(K.dismiss){requestAnimationFrame(()=>{j(X=>X.map(fe=>fe.id===K.id?{...fe,delete:!0}:fe))});return}setTimeout(()=>{bA.flushSync(()=>{j(X=>{const fe=X.findIndex(he=>he.id===K.id);return fe!==-1?[...X.slice(0,fe),{...X[fe],...K},...X.slice(fe+1)]:[K,...X]})})})}),[z]),Ce.useEffect(()=>{if(w!=="system"){de(w);return}if(w==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?de("dark"):de("light")),typeof window>"u")return;const K=window.matchMedia("(prefers-color-scheme: dark)");try{K.addEventListener("change",({matches:X})=>{de(X?"dark":"light")})}catch{K.addListener(({matches:fe})=>{try{de(fe?"dark":"light")}catch(he){console.error(he)}})}},[w]),Ce.useEffect(()=>{z.length<=1&&V(!1)},[z]),Ce.useEffect(()=>{const K=X=>{var fe;if(m.every(Ae=>X[Ae]||X.code===Ae)){var ke;V(!0),(ke=q.current)==null||ke.focus()}X.code==="Escape"&&(document.activeElement===q.current||(fe=q.current)!=null&&fe.contains(document.activeElement))&&V(!1)};return document.addEventListener("keydown",K),()=>document.removeEventListener("keydown",K)},[m]),Ce.useEffect(()=>{if(q.current)return()=>{ne.current&&(ne.current.focus({preventScroll:!0}),ne.current=null,D.current=!1)}},[q.current]),Ce.createElement("section",{ref:s,"aria-label":`${I} ${ge}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},$.map((K,X)=>{var fe;const[he,ke]=K.split("-");return H.length?Ce.createElement("ol",{key:K,dir:B==="auto"?bp():B,tabIndex:-1,ref:q,className:p,"data-sonner-toaster":!0,"data-sonner-theme":se,"data-y-position":he,"data-x-position":ke,style:{"--front-toast-height":`${((fe=U[0])==null?void 0:fe.height)||0}px`,"--width":`${ty}px`,"--gap":`${k}px`,...b,...ay(y,v)},onBlur:Ae=>{D.current&&!Ae.currentTarget.contains(Ae.relatedTarget)&&(D.current=!1,ne.current&&(ne.current.focus({preventScroll:!0}),ne.current=null))},onFocus:Ae=>{Ae.target instanceof HTMLElement&&Ae.target.dataset.dismissible==="false"||D.current||(D.current=!0,ne.current=Ae.relatedTarget)},onMouseEnter:()=>V(!0),onMouseMove:()=>V(!0),onMouseLeave:()=>{J||V(!1)},onDragEnd:()=>V(!1),onPointerDown:Ae=>{Ae.target instanceof HTMLElement&&Ae.target.dataset.dismissible==="false"||le(!0)},onPointerUp:()=>le(!1)},H.filter(Ae=>!Ae.position&&X===0||Ae.position===K).map((Ae,qe)=>{var Ye,Et;return Ce.createElement(sy,{key:Ae.id,icons:N,index:qe,toast:Ae,defaultRichColors:S,duration:(Ye=P==null?void 0:P.duration)!=null?Ye:T,className:P==null?void 0:P.className,descriptionClassName:P==null?void 0:P.descriptionClassName,invert:f,visibleToasts:E,closeButton:(Et=P==null?void 0:P.closeButton)!=null?Et:x,interacting:J,position:K,style:P==null?void 0:P.style,unstyled:P==null?void 0:P.unstyled,classNames:P==null?void 0:P.classNames,cancelButtonStyle:P==null?void 0:P.cancelButtonStyle,actionButtonStyle:P==null?void 0:P.actionButtonStyle,closeButtonAriaLabel:P==null?void 0:P.closeButtonAriaLabel,removeToast:Z,toasts:H.filter(ht=>ht.position==Ae.position),heights:U.filter(ht=>ht.position==Ae.position),setHeights:G,expandByDefault:h,gap:k,expanded:re,swipeDirections:a.swipeDirections})})):null}))}),uy=({...r})=>F.jsx(ly,{theme:"dark",className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-card group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",error:"group-[.toaster]:bg-[#2a1a1a] group-[.toaster]:text-[#e8a0a0] group-[.toaster]:border-[#4a2a2a] [&_[data-description]]:text-[#b08080]"}},...r}),bu=200;function Fu(r){return`${r.type}-${r.conversation_key}-${r.text}-${r.sender_timestamp}`}function cy(r){const[a,s]=R.useState([]),[l,f]=R.useState(!1),[d,m]=R.useState(!1),[h,x]=R.useState(!1),p=R.useRef(new Set),y=R.useCallback(async(T=!1)=>{if(!r||r.type==="raw"){s([]),x(!1);return}T&&(f(!0),s([]));try{const b=await at.getMessages({type:r.type==="channel"?"CHAN":"PRIV",conversation_key:r.id,limit:bu});s(b),p.current.clear();for(const E of b)p.current.add(Fu(E));x(b.length>=bu)}catch(b){console.error("Failed to fetch messages:",b),Lt.error("Failed to load messages",{description:b instanceof Error?b.message:"Check your connection"})}finally{T&&f(!1)}},[r]),v=R.useCallback(async()=>{if(!(!r||r.type==="raw"||d||!h)){m(!0);try{const T=await at.getMessages({type:r.type==="channel"?"CHAN":"PRIV",conversation_key:r.id,limit:bu,offset:a.length});if(T.length>0){s(b=>[...b,...T]);for(const b of T)p.current.add(Fu(b))}x(T.length>=bu)}catch(T){console.error("Failed to fetch older messages:",T),Lt.error("Failed to load older messages",{description:T instanceof Error?T.message:"Check your connection"})}finally{m(!1)}}},[r,d,h,a.length]);R.useEffect(()=>{y(!0)},[y]);const w=R.useCallback(T=>{const b=Fu(T);if(p.current.has(b))return console.debug("Duplicate message content ignored:",b.slice(0,50)),!1;if(p.current.add(b),p.current.size>1e3){const E=Array.from(p.current);p.current=new Set(E.slice(-500))}return s(E=>E.some(P=>P.id===T.id)?E:[...E,T]),!0},[]),S=R.useCallback((T,b)=>{s(E=>{const P=E.findIndex(B=>B.id===T);if(P>=0){const B=[...E];return B[P]={...E[P],acked:b},B}return E})},[]);return{messages:a,messagesLoading:l,loadingOlder:d,hasOlderMessages:h,setMessages:s,fetchMessages:y,fetchOlderMessages:v,addMessageIfNew:w,updateMessageAck:S}}/** * @license lucide-react v0.562.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const uy=r=>r.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),cy=r=>r.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,s,l)=>l?l.toUpperCase():s.toLowerCase()),Cp=r=>{const a=cy(r);return a.charAt(0).toUpperCase()+a.slice(1)},bA=(...r)=>r.filter((a,s,l)=>!!a&&a.trim()!==""&&l.indexOf(a)===s).join(" ").trim(),dy=r=>{for(const a in r)if(a.startsWith("aria-")||a==="role"||a==="title")return!0};/** + */const dy=r=>r.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),fy=r=>r.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,s,l)=>l?l.toUpperCase():s.toLowerCase()),Ep=r=>{const a=fy(r);return a.charAt(0).toUpperCase()+a.slice(1)},EA=(...r)=>r.filter((a,s,l)=>!!a&&a.trim()!==""&&l.indexOf(a)===s).join(" ").trim(),hy=r=>{for(const a in r)if(a.startsWith("aria-")||a==="role"||a==="title")return!0};/** * @license lucide-react v0.562.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */var fy={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + */var py={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** * @license lucide-react v0.562.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const hy=R.forwardRef(({color:r="currentColor",size:a=24,strokeWidth:s=2,absoluteStrokeWidth:l,className:f="",children:d,iconNode:m,...h},x)=>R.createElement("svg",{ref:x,...fy,width:a,height:a,stroke:r,strokeWidth:l?Number(s)*24/Number(a):s,className:bA("lucide",f),...!d&&!dy(h)&&{"aria-hidden":"true"},...h},[...m.map(([p,y])=>R.createElement(p,y)),...Array.isArray(d)?d:[d]]));/** + */const my=R.forwardRef(({color:r="currentColor",size:a=24,strokeWidth:s=2,absoluteStrokeWidth:l,className:f="",children:d,iconNode:m,...h},x)=>R.createElement("svg",{ref:x,...py,width:a,height:a,stroke:r,strokeWidth:l?Number(s)*24/Number(a):s,className:EA("lucide",f),...!d&&!hy(h)&&{"aria-hidden":"true"},...h},[...m.map(([p,y])=>R.createElement(p,y)),...Array.isArray(d)?d:[d]]));/** * @license lucide-react v0.562.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const a0=(r,a)=>{const s=R.forwardRef(({className:l,...f},d)=>R.createElement(hy,{ref:d,iconNode:a,className:bA(`lucide-${uy(Cp(r))}`,`lucide-${r}`,l),...f}));return s.displayName=Cp(r),s};/** + */const l0=(r,a)=>{const s=R.forwardRef(({className:l,...f},d)=>R.createElement(my,{ref:d,iconNode:a,className:EA(`lucide-${dy(Ep(r))}`,`lucide-${r}`,l),...f}));return s.displayName=Ep(r),s};/** * @license lucide-react v0.562.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const py=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],my=a0("check",py);/** + */const Ay=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],gy=l0("check",Ay);/** * @license lucide-react v0.562.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const Ay=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],gy=a0("menu",Ay);/** + */const xy=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],vy=l0("menu",xy);/** * @license lucide-react v0.562.0 - ISC * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const xy=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],CA=a0("x",xy);function vy({health:r,config:a,onConfigClick:s,onMaintenanceClick:l,onAdvertise:f,onMenuClick:d}){const m=(r==null?void 0:r.radio_connected)??!1,[h,x]=R.useState(!1),p=async()=>{x(!0);try{const y=await at.reconnectRadio();y.connected&&Lt.success("Reconnected",{description:y.message})}catch(y){Lt.error("Reconnection failed",{description:y instanceof Error?y.message:"Check radio connection and power"})}finally{x(!1)}};return F.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-[#252525] border-b border-[#333] text-xs",children:[d&&F.jsx("button",{onClick:d,className:"md:hidden p-1 bg-transparent border-none text-[#e0e0e0] cursor-pointer","aria-label":"Open menu",children:F.jsx(gy,{className:"h-5 w-5"})}),F.jsx("h1",{className:"hidden lg:block text-base font-semibold mr-auto",children:"RemoteTerm"}),F.jsxs("div",{className:"flex items-center gap-1 text-[#888]",children:[F.jsx("div",{className:`w-2 h-2 rounded-full ${m?"bg-[#4caf50]":"bg-[#666]"}`}),F.jsx("span",{className:"hidden lg:inline text-[#e0e0e0]",children:m?"Connected":"Disconnected"})]}),(r==null?void 0:r.serial_port)&&F.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["Port: ",F.jsx("span",{className:"text-[#e0e0e0]",children:r.serial_port})]}),a&&F.jsxs(F.Fragment,{children:[F.jsx("div",{className:"hidden lg:flex items-center gap-1 text-[#888]",children:F.jsx("span",{className:"text-[#e0e0e0]",children:a.name||"Unnamed"})}),F.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:[a.radio.freq," MHz/SF",a.radio.sf,"/CR",a.radio.cr,"/",a.tx_power,"dBm"]})]}),F.jsx("div",{className:"flex-1 lg:hidden"}),!m&&F.jsx("button",{onClick:p,disabled:h,className:"px-3 py-1 bg-[#4a3000] border border-[#6b4500] text-[#ffa500] rounded text-xs cursor-pointer hover:bg-[#5a3a00] disabled:opacity-50 disabled:cursor-not-allowed",children:h?"Reconnecting...":"Reconnect"}),F.jsx("button",{onClick:f,disabled:!m,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444] disabled:bg-[#333] disabled:text-[#666] disabled:cursor-not-allowed",children:"Advertise"}),F.jsx("button",{onClick:l,className:"px-2 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",title:"Database Maintenance",children:F.jsx("span",{role:"img","aria-label":"Settings",children:"⚙️"})}),F.jsxs("button",{onClick:s,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",children:[F.jsx("span",{role:"img","aria-label":"Radio",children:"📻"})," ","Config"]})]})}const Zf=2,yy={text:"🛜",background:"#444444",textColor:"#ffffff"};function _y(r){let a=0;for(let s=0;s>8)%30,f=35+(a>>16)%20,d=`hsl(${s}, ${l}%, ${f}%)`,m=f<45?"#ffffff":"#000000";return{background:d,text:m}}function Ey(r,a,s){if(s===Zf)return yy;const l=by(r,a),f=Cy(a);return{text:l,background:f.background,textColor:f.text}}function EA({name:r,publicKey:a,size:s=28,contactType:l}){const f=Ey(r,a,l);return F.jsx("div",{className:"flex items-center justify-center rounded-full font-semibold flex-shrink-0 select-none",style:{backgroundColor:f.background,color:f.textColor,width:s,height:s,fontSize:s*.45},children:f.text})}function kA(r){var a,s,l="";if(typeof r=="string"||typeof r=="number")l+=r;else if(typeof r=="object")if(Array.isArray(r)){var f=r.length;for(a=0;a{const s=new Array(r.length+a.length);for(let l=0;l({classGroupId:r,validator:a}),BA=(r=new Map,a=null,s)=>({nextPart:r,validators:a,classGroupId:s}),bc="-",Ep=[],By="arbitrary..",Py=r=>{const a=Dy(r),{conflictingClassGroups:s,conflictingClassGroupModifiers:l}=r;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return Ty(m);const h=m.split(bc),x=h[0]===""&&h.length>1?1:0;return PA(h,x,a)},getConflictingClassGroupIds:(m,h)=>{if(h){const x=l[m],p=s[m];return x?p?ky(p,x):x:p||Ep}return s[m]||Ep}}},PA=(r,a,s)=>{if(r.length-a===0)return s.classGroupId;const f=r[a],d=s.nextPart.get(f);if(d){const p=PA(r,a+1,d);if(p)return p}const m=s.validators;if(m===null)return;const h=a===0?r.join(bc):r.slice(a).join(bc),x=m.length;for(let p=0;pr.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=r.slice(1,-1),s=a.indexOf(":"),l=a.slice(0,s);return l?By+l:void 0})(),Dy=r=>{const{theme:a,classGroups:s}=r;return Ry(s,a)},Ry=(r,a)=>{const s=BA();for(const l in r){const f=r[l];l0(f,s,l,a)}return s},l0=(r,a,s,l)=>{const f=r.length;for(let d=0;d{if(typeof r=="string"){Ny(r,a,s);return}if(typeof r=="function"){Ly(r,a,s,l);return}My(r,a,s,l)},Ny=(r,a,s)=>{const l=r===""?a:TA(a,r);l.classGroupId=s},Ly=(r,a,s,l)=>{if(Iy(r)){l0(r(l),a,s,l);return}a.validators===null&&(a.validators=[]),a.validators.push(Sy(s,r))},My=(r,a,s,l)=>{const f=Object.entries(r),d=f.length;for(let m=0;m{let s=r;const l=a.split(bc),f=l.length;for(let d=0;d"isThemeGetter"in r&&r.isThemeGetter===!0,Oy=r=>{if(r<1)return{get:()=>{},set:()=>{}};let a=0,s=Object.create(null),l=Object.create(null);const f=(d,m)=>{s[d]=m,a++,a>r&&(a=0,l=s,s=Object.create(null))};return{get(d){let m=s[d];if(m!==void 0)return m;if((m=l[d])!==void 0)return f(d,m),m},set(d,m){d in s?s[d]=m:f(d,m)}}},Wf="!",kp=":",zy=[],Sp=(r,a,s,l,f)=>({modifiers:r,hasImportantModifier:a,baseClassName:s,maybePostfixModifierPosition:l,isExternal:f}),jy=r=>{const{prefix:a,experimentalParseClassName:s}=r;let l=f=>{const d=[];let m=0,h=0,x=0,p;const y=f.length;for(let C=0;Cx?p-x:void 0;return Sp(d,S,w,T)};if(a){const f=a+kp,d=l;l=m=>m.startsWith(f)?d(m.slice(f.length)):Sp(zy,!1,m,void 0,!0)}if(s){const f=l;l=d=>s({className:d,parseClassName:f})}return l},Hy=r=>{const a=new Map;return r.orderSensitiveModifiers.forEach((s,l)=>{a.set(s,1e6+l)}),s=>{const l=[];let f=[];for(let d=0;d0&&(f.sort(),l.push(...f),f=[]),l.push(m)):f.push(m)}return f.length>0&&(f.sort(),l.push(...f)),l}},Vy=r=>({cache:Oy(r.cacheSize),parseClassName:jy(r),sortModifiers:Hy(r),...Py(r)}),Uy=/\s+/,Zy=(r,a)=>{const{parseClassName:s,getClassGroupId:l,getConflictingClassGroupIds:f,sortModifiers:d}=a,m=[],h=r.trim().split(Uy);let x="";for(let p=h.length-1;p>=0;p-=1){const y=h[p],{isExternal:v,modifiers:w,hasImportantModifier:S,baseClassName:T,maybePostfixModifierPosition:C}=s(y);if(v){x=y+(x.length>0?" "+x:x);continue}let E=!!C,P=l(E?T.substring(0,C):T);if(!P){if(!E){x=y+(x.length>0?" "+x:x);continue}if(P=l(T),!P){x=y+(x.length>0?" "+x:x);continue}E=!1}const B=w.length===0?"":w.length===1?w[0]:d(w).join(":"),k=S?B+Wf:B,N=k+P;if(m.indexOf(N)>-1)continue;m.push(N);const I=f(P,E);for(let z=0;z0?" "+x:x)}return x},Wy=(...r)=>{let a=0,s,l,f="";for(;a{if(typeof r=="string")return r;let a,s="";for(let l=0;l{let s,l,f,d;const m=x=>{const p=a.reduce((y,v)=>v(y),r());return s=Vy(p),l=s.cache.get,f=s.cache.set,d=h,h(x)},h=x=>{const p=l(x);if(p)return p;const y=Zy(x,s);return f(x,y),y};return d=m,(...x)=>d(Wy(...x))},Gy=[],on=r=>{const a=s=>s[r]||Gy;return a.isThemeGetter=!0,a},RA=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,FA=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Qy=/^\d+\/\d+$/,Ky=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,$y=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Yy=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Xy=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Jy=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Fs=r=>Qy.test(r),it=r=>!!r&&!Number.isNaN(Number(r)),no=r=>!!r&&Number.isInteger(Number(r)),Sf=r=>r.endsWith("%")&&it(r.slice(0,-1)),gi=r=>Ky.test(r),e_=()=>!0,t_=r=>$y.test(r)&&!Yy.test(r),NA=()=>!1,n_=r=>Xy.test(r),r_=r=>Jy.test(r),i_=r=>!Fe(r)&&!Ne(r),o_=r=>Zs(r,IA,NA),Fe=r=>RA.test(r),Lo=r=>Zs(r,OA,t_),Bf=r=>Zs(r,c_,it),Bp=r=>Zs(r,LA,NA),s_=r=>Zs(r,MA,r_),Eu=r=>Zs(r,zA,n_),Ne=r=>FA.test(r),Ia=r=>Ws(r,OA),a_=r=>Ws(r,d_),Pp=r=>Ws(r,LA),l_=r=>Ws(r,IA),u_=r=>Ws(r,MA),ku=r=>Ws(r,zA,!0),Zs=(r,a,s)=>{const l=RA.exec(r);return l?l[1]?a(l[1]):s(l[2]):!1},Ws=(r,a,s=!1)=>{const l=FA.exec(r);return l?l[1]?a(l[1]):s:!1},LA=r=>r==="position"||r==="percentage",MA=r=>r==="image"||r==="url",IA=r=>r==="length"||r==="size"||r==="bg-size",OA=r=>r==="length",c_=r=>r==="number",d_=r=>r==="family-name",zA=r=>r==="shadow",f_=()=>{const r=on("color"),a=on("font"),s=on("text"),l=on("font-weight"),f=on("tracking"),d=on("leading"),m=on("breakpoint"),h=on("container"),x=on("spacing"),p=on("radius"),y=on("shadow"),v=on("inset-shadow"),w=on("text-shadow"),S=on("drop-shadow"),T=on("blur"),C=on("perspective"),E=on("aspect"),P=on("ease"),B=on("animate"),k=()=>["auto","avoid","all","avoid-page","page","left","right","column"],N=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],I=()=>[...N(),Ne,Fe],z=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],H=()=>[Ne,Fe,x],$=()=>[Fs,"full","auto",...H()],U=()=>[no,"none","subgrid",Ne,Fe],G=()=>["auto",{span:["full",no,Ne,Fe]},no,Ne,Fe],re=()=>[no,"auto",Ne,Fe],V=()=>["auto","min","max","fr",Ne,Fe],J=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],le=()=>["start","end","center","stretch","center-safe","end-safe"],se=()=>["auto",...H()],de=()=>[Fs,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...H()],q=()=>[r,Ne,Fe],ge=()=>[...N(),Pp,Bp,{position:[Ne,Fe]}],ne=()=>["no-repeat",{repeat:["","x","y","space","round"]}],D=()=>["auto","cover","contain",l_,o_,{size:[Ne,Fe]}],Z=()=>[Sf,Ia,Lo],K=()=>["","none","full",p,Ne,Fe],X=()=>["",it,Ia,Lo],fe=()=>["solid","dashed","dotted","double"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ke=()=>[it,Sf,Pp,Bp],Ae=()=>["","none",T,Ne,Fe],qe=()=>["none",it,Ne,Fe],Ye=()=>["none",it,Ne,Fe],Et=()=>[it,Ne,Fe],ht=()=>[Fs,"full",...H()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[gi],breakpoint:[gi],color:[e_],container:[gi],"drop-shadow":[gi],ease:["in","out","in-out"],font:[i_],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[gi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[gi],shadow:[gi],spacing:["px",it],text:[gi],"text-shadow":[gi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Fs,Fe,Ne,E]}],container:["container"],columns:[{columns:[it,Fe,Ne,h]}],"break-after":[{"break-after":k()}],"break-before":[{"break-before":k()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:I()}],overflow:[{overflow:z()}],"overflow-x":[{"overflow-x":z()}],"overflow-y":[{"overflow-y":z()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:$()}],"inset-x":[{"inset-x":$()}],"inset-y":[{"inset-y":$()}],start:[{start:$()}],end:[{end:$()}],top:[{top:$()}],right:[{right:$()}],bottom:[{bottom:$()}],left:[{left:$()}],visibility:["visible","invisible","collapse"],z:[{z:[no,"auto",Ne,Fe]}],basis:[{basis:[Fs,"full","auto",h,...H()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[it,Fs,"auto","initial","none",Fe]}],grow:[{grow:["",it,Ne,Fe]}],shrink:[{shrink:["",it,Ne,Fe]}],order:[{order:[no,"first","last","none",Ne,Fe]}],"grid-cols":[{"grid-cols":U()}],"col-start-end":[{col:G()}],"col-start":[{"col-start":re()}],"col-end":[{"col-end":re()}],"grid-rows":[{"grid-rows":U()}],"row-start-end":[{row:G()}],"row-start":[{"row-start":re()}],"row-end":[{"row-end":re()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:H()}],"gap-x":[{"gap-x":H()}],"gap-y":[{"gap-y":H()}],"justify-content":[{justify:[...J(),"normal"]}],"justify-items":[{"justify-items":[...le(),"normal"]}],"justify-self":[{"justify-self":["auto",...le()]}],"align-content":[{content:["normal",...J()]}],"align-items":[{items:[...le(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...le(),{baseline:["","last"]}]}],"place-content":[{"place-content":J()}],"place-items":[{"place-items":[...le(),"baseline"]}],"place-self":[{"place-self":["auto",...le()]}],p:[{p:H()}],px:[{px:H()}],py:[{py:H()}],ps:[{ps:H()}],pe:[{pe:H()}],pt:[{pt:H()}],pr:[{pr:H()}],pb:[{pb:H()}],pl:[{pl:H()}],m:[{m:se()}],mx:[{mx:se()}],my:[{my:se()}],ms:[{ms:se()}],me:[{me:se()}],mt:[{mt:se()}],mr:[{mr:se()}],mb:[{mb:se()}],ml:[{ml:se()}],"space-x":[{"space-x":H()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":H()}],"space-y-reverse":["space-y-reverse"],size:[{size:de()}],w:[{w:[h,"screen",...de()]}],"min-w":[{"min-w":[h,"screen","none",...de()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[m]},...de()]}],h:[{h:["screen","lh",...de()]}],"min-h":[{"min-h":["screen","lh","none",...de()]}],"max-h":[{"max-h":["screen","lh",...de()]}],"font-size":[{text:["base",s,Ia,Lo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[l,Ne,Bf]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Sf,Fe]}],"font-family":[{font:[a_,Fe,a]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[f,Ne,Fe]}],"line-clamp":[{"line-clamp":[it,"none",Ne,Bf]}],leading:[{leading:[d,...H()]}],"list-image":[{"list-image":["none",Ne,Fe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Ne,Fe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:q()}],"text-color":[{text:q()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...fe(),"wavy"]}],"text-decoration-thickness":[{decoration:[it,"from-font","auto",Ne,Lo]}],"text-decoration-color":[{decoration:q()}],"underline-offset":[{"underline-offset":[it,"auto",Ne,Fe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:H()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ne,Fe]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Ne,Fe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ge()}],"bg-repeat":[{bg:ne()}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},no,Ne,Fe],radial:["",Ne,Fe],conic:[no,Ne,Fe]},u_,s_]}],"bg-color":[{bg:q()}],"gradient-from-pos":[{from:Z()}],"gradient-via-pos":[{via:Z()}],"gradient-to-pos":[{to:Z()}],"gradient-from":[{from:q()}],"gradient-via":[{via:q()}],"gradient-to":[{to:q()}],rounded:[{rounded:K()}],"rounded-s":[{"rounded-s":K()}],"rounded-e":[{"rounded-e":K()}],"rounded-t":[{"rounded-t":K()}],"rounded-r":[{"rounded-r":K()}],"rounded-b":[{"rounded-b":K()}],"rounded-l":[{"rounded-l":K()}],"rounded-ss":[{"rounded-ss":K()}],"rounded-se":[{"rounded-se":K()}],"rounded-ee":[{"rounded-ee":K()}],"rounded-es":[{"rounded-es":K()}],"rounded-tl":[{"rounded-tl":K()}],"rounded-tr":[{"rounded-tr":K()}],"rounded-br":[{"rounded-br":K()}],"rounded-bl":[{"rounded-bl":K()}],"border-w":[{border:X()}],"border-w-x":[{"border-x":X()}],"border-w-y":[{"border-y":X()}],"border-w-s":[{"border-s":X()}],"border-w-e":[{"border-e":X()}],"border-w-t":[{"border-t":X()}],"border-w-r":[{"border-r":X()}],"border-w-b":[{"border-b":X()}],"border-w-l":[{"border-l":X()}],"divide-x":[{"divide-x":X()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":X()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...fe(),"hidden","none"]}],"divide-style":[{divide:[...fe(),"hidden","none"]}],"border-color":[{border:q()}],"border-color-x":[{"border-x":q()}],"border-color-y":[{"border-y":q()}],"border-color-s":[{"border-s":q()}],"border-color-e":[{"border-e":q()}],"border-color-t":[{"border-t":q()}],"border-color-r":[{"border-r":q()}],"border-color-b":[{"border-b":q()}],"border-color-l":[{"border-l":q()}],"divide-color":[{divide:q()}],"outline-style":[{outline:[...fe(),"none","hidden"]}],"outline-offset":[{"outline-offset":[it,Ne,Fe]}],"outline-w":[{outline:["",it,Ia,Lo]}],"outline-color":[{outline:q()}],shadow:[{shadow:["","none",y,ku,Eu]}],"shadow-color":[{shadow:q()}],"inset-shadow":[{"inset-shadow":["none",v,ku,Eu]}],"inset-shadow-color":[{"inset-shadow":q()}],"ring-w":[{ring:X()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:q()}],"ring-offset-w":[{"ring-offset":[it,Lo]}],"ring-offset-color":[{"ring-offset":q()}],"inset-ring-w":[{"inset-ring":X()}],"inset-ring-color":[{"inset-ring":q()}],"text-shadow":[{"text-shadow":["none",w,ku,Eu]}],"text-shadow-color":[{"text-shadow":q()}],opacity:[{opacity:[it,Ne,Fe]}],"mix-blend":[{"mix-blend":[...he(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":he()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[it]}],"mask-image-linear-from-pos":[{"mask-linear-from":ke()}],"mask-image-linear-to-pos":[{"mask-linear-to":ke()}],"mask-image-linear-from-color":[{"mask-linear-from":q()}],"mask-image-linear-to-color":[{"mask-linear-to":q()}],"mask-image-t-from-pos":[{"mask-t-from":ke()}],"mask-image-t-to-pos":[{"mask-t-to":ke()}],"mask-image-t-from-color":[{"mask-t-from":q()}],"mask-image-t-to-color":[{"mask-t-to":q()}],"mask-image-r-from-pos":[{"mask-r-from":ke()}],"mask-image-r-to-pos":[{"mask-r-to":ke()}],"mask-image-r-from-color":[{"mask-r-from":q()}],"mask-image-r-to-color":[{"mask-r-to":q()}],"mask-image-b-from-pos":[{"mask-b-from":ke()}],"mask-image-b-to-pos":[{"mask-b-to":ke()}],"mask-image-b-from-color":[{"mask-b-from":q()}],"mask-image-b-to-color":[{"mask-b-to":q()}],"mask-image-l-from-pos":[{"mask-l-from":ke()}],"mask-image-l-to-pos":[{"mask-l-to":ke()}],"mask-image-l-from-color":[{"mask-l-from":q()}],"mask-image-l-to-color":[{"mask-l-to":q()}],"mask-image-x-from-pos":[{"mask-x-from":ke()}],"mask-image-x-to-pos":[{"mask-x-to":ke()}],"mask-image-x-from-color":[{"mask-x-from":q()}],"mask-image-x-to-color":[{"mask-x-to":q()}],"mask-image-y-from-pos":[{"mask-y-from":ke()}],"mask-image-y-to-pos":[{"mask-y-to":ke()}],"mask-image-y-from-color":[{"mask-y-from":q()}],"mask-image-y-to-color":[{"mask-y-to":q()}],"mask-image-radial":[{"mask-radial":[Ne,Fe]}],"mask-image-radial-from-pos":[{"mask-radial-from":ke()}],"mask-image-radial-to-pos":[{"mask-radial-to":ke()}],"mask-image-radial-from-color":[{"mask-radial-from":q()}],"mask-image-radial-to-color":[{"mask-radial-to":q()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":N()}],"mask-image-conic-pos":[{"mask-conic":[it]}],"mask-image-conic-from-pos":[{"mask-conic-from":ke()}],"mask-image-conic-to-pos":[{"mask-conic-to":ke()}],"mask-image-conic-from-color":[{"mask-conic-from":q()}],"mask-image-conic-to-color":[{"mask-conic-to":q()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ge()}],"mask-repeat":[{mask:ne()}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Ne,Fe]}],filter:[{filter:["","none",Ne,Fe]}],blur:[{blur:Ae()}],brightness:[{brightness:[it,Ne,Fe]}],contrast:[{contrast:[it,Ne,Fe]}],"drop-shadow":[{"drop-shadow":["","none",S,ku,Eu]}],"drop-shadow-color":[{"drop-shadow":q()}],grayscale:[{grayscale:["",it,Ne,Fe]}],"hue-rotate":[{"hue-rotate":[it,Ne,Fe]}],invert:[{invert:["",it,Ne,Fe]}],saturate:[{saturate:[it,Ne,Fe]}],sepia:[{sepia:["",it,Ne,Fe]}],"backdrop-filter":[{"backdrop-filter":["","none",Ne,Fe]}],"backdrop-blur":[{"backdrop-blur":Ae()}],"backdrop-brightness":[{"backdrop-brightness":[it,Ne,Fe]}],"backdrop-contrast":[{"backdrop-contrast":[it,Ne,Fe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",it,Ne,Fe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[it,Ne,Fe]}],"backdrop-invert":[{"backdrop-invert":["",it,Ne,Fe]}],"backdrop-opacity":[{"backdrop-opacity":[it,Ne,Fe]}],"backdrop-saturate":[{"backdrop-saturate":[it,Ne,Fe]}],"backdrop-sepia":[{"backdrop-sepia":["",it,Ne,Fe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":H()}],"border-spacing-x":[{"border-spacing-x":H()}],"border-spacing-y":[{"border-spacing-y":H()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Ne,Fe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[it,"initial",Ne,Fe]}],ease:[{ease:["linear","initial",P,Ne,Fe]}],delay:[{delay:[it,Ne,Fe]}],animate:[{animate:["none",B,Ne,Fe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[C,Ne,Fe]}],"perspective-origin":[{"perspective-origin":I()}],rotate:[{rotate:qe()}],"rotate-x":[{"rotate-x":qe()}],"rotate-y":[{"rotate-y":qe()}],"rotate-z":[{"rotate-z":qe()}],scale:[{scale:Ye()}],"scale-x":[{"scale-x":Ye()}],"scale-y":[{"scale-y":Ye()}],"scale-z":[{"scale-z":Ye()}],"scale-3d":["scale-3d"],skew:[{skew:Et()}],"skew-x":[{"skew-x":Et()}],"skew-y":[{"skew-y":Et()}],transform:[{transform:[Ne,Fe,"","none","gpu","cpu"]}],"transform-origin":[{origin:I()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ht()}],"translate-x":[{"translate-x":ht()}],"translate-y":[{"translate-y":ht()}],"translate-z":[{"translate-z":ht()}],"translate-none":["translate-none"],accent:[{accent:q()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:q()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Ne,Fe]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":H()}],"scroll-mx":[{"scroll-mx":H()}],"scroll-my":[{"scroll-my":H()}],"scroll-ms":[{"scroll-ms":H()}],"scroll-me":[{"scroll-me":H()}],"scroll-mt":[{"scroll-mt":H()}],"scroll-mr":[{"scroll-mr":H()}],"scroll-mb":[{"scroll-mb":H()}],"scroll-ml":[{"scroll-ml":H()}],"scroll-p":[{"scroll-p":H()}],"scroll-px":[{"scroll-px":H()}],"scroll-py":[{"scroll-py":H()}],"scroll-ps":[{"scroll-ps":H()}],"scroll-pe":[{"scroll-pe":H()}],"scroll-pt":[{"scroll-pt":H()}],"scroll-pr":[{"scroll-pr":H()}],"scroll-pb":[{"scroll-pb":H()}],"scroll-pl":[{"scroll-pl":H()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Ne,Fe]}],fill:[{fill:["none",...q()]}],"stroke-w":[{stroke:[it,Ia,Lo,Bf]}],stroke:[{stroke:["none",...q()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},h_=qy(f_);function lt(...r){return h_(SA(r))}const Kt=R.forwardRef(({className:r,type:a,...s},l)=>F.jsx("input",{type:a,className:lt("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",r),ref:l,...s}));Kt.displayName="Input";function Tp(r,a){if(typeof r=="function")return r(a);r!=null&&(r.current=a)}function ol(...r){return a=>{let s=!1;const l=r.map(f=>{const d=Tp(f,a);return!s&&typeof d=="function"&&(s=!0),d});if(s)return()=>{for(let f=0;f{let{children:d,...m}=l;jA(d)&&typeof Cc=="function"&&(d=Cc(d._payload));const h=R.Children.toArray(d),x=h.find(v_);if(x){const p=x.props.children,y=h.map(v=>v===x?R.Children.count(p)>1?R.Children.only(null):R.isValidElement(p)?p.props.children:null:v);return F.jsx(a,{...m,ref:f,children:R.isValidElement(p)?R.cloneElement(p,void 0,y):null})}return F.jsx(a,{...m,ref:f,children:d})});return s.displayName=`${r}.Slot`,s}var A_=u0("Slot");function g_(r){const a=R.forwardRef((s,l)=>{let{children:f,...d}=s;if(jA(f)&&typeof Cc=="function"&&(f=Cc(f._payload)),R.isValidElement(f)){const m=__(f),h=y_(d,f.props);return f.type!==R.Fragment&&(h.ref=l?ol(l,m):m),R.cloneElement(f,h)}return R.Children.count(f)>1?R.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var x_=Symbol("radix.slottable");function v_(r){return R.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===x_}function y_(r,a){const s={...a};for(const l in a){const f=r[l],d=a[l];/^on[A-Z]/.test(l)?f&&d?s[l]=(...h)=>{const x=d(...h);return f(...h),x}:f&&(s[l]=f):l==="style"?s[l]={...f,...d}:l==="className"&&(s[l]=[f,d].filter(Boolean).join(" "))}return{...r,...s}}function __(r){var l,f;let a=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?r.ref:(a=(f=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:f.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?r.props.ref:r.props.ref||r.ref)}const Dp=r=>typeof r=="boolean"?`${r}`:r===0?"0":r,Rp=SA,Dc=(r,a)=>s=>{var l;if((a==null?void 0:a.variants)==null)return Rp(r,s==null?void 0:s.class,s==null?void 0:s.className);const{variants:f,defaultVariants:d}=a,m=Object.keys(f).map(p=>{const y=s==null?void 0:s[p],v=d==null?void 0:d[p];if(y===null)return null;const w=Dp(y)||Dp(v);return f[p][w]}),h=s&&Object.entries(s).reduce((p,y)=>{let[v,w]=y;return w===void 0||(p[v]=w),p},{}),x=a==null||(l=a.compoundVariants)===null||l===void 0?void 0:l.reduce((p,y)=>{let{class:v,className:w,...S}=y;return Object.entries(S).every(T=>{let[C,E]=T;return Array.isArray(E)?E.includes({...d,...h}[C]):{...d,...h}[C]===E})?[...p,v,w]:p},[]);return Rp(r,m,x,s==null?void 0:s.class,s==null?void 0:s.className)},w_=Dc("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),gr=R.forwardRef(({className:r,variant:a,size:s,asChild:l=!1,...f},d)=>{const m=l?A_:"button";return F.jsx(m,{className:lt(w_({variant:a,size:s,className:r})),ref:d,...f})});gr.displayName="Button";function b_(){try{return localStorage.getItem("remoteterm-sortOrder")==="alpha"?"alpha":"recent"}catch{return"recent"}}function C_(r){try{localStorage.setItem("remoteterm-sortOrder",r)}catch{}}function E_({contacts:r,channels:a,activeConversation:s,onSelectConversation:l,onNewMessage:f,lastMessageTimes:d,unreadCounts:m,mentions:h,showCracker:x,crackerRunning:p,onToggleCracker:y,onMarkAllRead:v}){const[w,S]=R.useState(b_),[T,C]=R.useState(""),E=()=>{const V=w==="alpha"?"recent":"alpha";S(V),C_(V)},P=V=>{C(""),l(V)},B=(V,J)=>(s==null?void 0:s.type)===V&&(s==null?void 0:s.id)===J,k=(V,J)=>{const le=Dr(V,J);return m[le]||0},N=(V,J)=>{const le=Dr(V,J);return h[le]||!1},I=(V,J)=>{const le=Dr(V,J);return d[le]||0},z=a.reduce((V,J)=>(V.some(le=>le.name===J.name)||V.push(J),V),[]),j=r.filter(V=>V.public_key&&V.public_key.length>0).sort((V,J)=>V.name&&!J.name?-1:!V.name&&J.name?1:(V.name||"").localeCompare(J.name||"")).reduce((V,J)=>{const le=js(J.public_key);return V.some(se=>js(se.public_key)===le)||V.push(J),V},[]),H=[...z].sort((V,J)=>{if(V.name==="Public")return-1;if(J.name==="Public")return 1;if(w==="recent"){const le=I("channel",V.key),se=I("channel",J.key);if(le&&se)return se-le;if(le&&!se)return-1;if(!le&&se)return 1}return V.name.localeCompare(J.name)}),$=[...j].sort((V,J)=>{const le=V.type===Zf,se=J.type===Zf;if(le&&!se)return 1;if(!le&&se)return-1;if(le&&se)return(V.name||V.public_key).localeCompare(J.name||J.public_key);if(w==="recent"){const de=I("contact",V.public_key),q=I("contact",J.public_key);if(de&&q)return q-de;if(de&&!q)return-1;if(!de&&q)return 1}return(V.name||V.public_key).localeCompare(J.name||J.public_key)}),U=T.toLowerCase().trim(),G=U?H.filter(V=>V.name.toLowerCase().includes(U)):H,re=U?$.filter(V=>{var J;return((J=V.name)==null?void 0:J.toLowerCase().includes(U))||V.public_key.toLowerCase().includes(U)}):$;return F.jsxs("div",{className:"sidebar w-60 h-full min-h-0 bg-card border-r border-border flex flex-col",children:[F.jsxs("div",{className:"flex justify-between items-center px-3 py-3 border-b border-border",children:[F.jsx("h2",{className:"text-xs uppercase text-muted-foreground font-medium",children:"Conversations"}),F.jsx(gr,{variant:"ghost",size:"sm",onClick:f,title:"New Message",className:"h-6 w-6 p-0 text-muted-foreground hover:text-foreground",children:"+"})]}),F.jsxs("div",{className:"relative px-3 py-2 border-b border-border",children:[F.jsx(Kt,{type:"text",placeholder:"Search...",value:T,onChange:V=>C(V.target.value),className:"h-8 text-sm pr-8"}),T&&F.jsx("button",{className:"absolute right-4 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground text-lg leading-none",onClick:()=>C(""),title:"Clear search",children:"×"})]}),F.jsxs("div",{className:"flex-1 overflow-y-auto",children:[!U&&F.jsxs("div",{className:lt("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",B("raw","raw")&&"bg-accent border-l-primary"),onClick:()=>P({type:"raw",id:"raw",name:"Raw Packet Feed"}),children:[F.jsx("span",{className:"text-muted-foreground text-xs",children:"📡"}),F.jsx("span",{className:"flex-1 truncate",children:"Packet Feed"})]}),!U&&F.jsxs("div",{className:lt("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",B("map","map")&&"bg-accent border-l-primary"),onClick:()=>P({type:"map",id:"map",name:"Node Map"}),children:[F.jsx("span",{className:"text-muted-foreground text-xs",children:"🗺️"}),F.jsx("span",{className:"flex-1 truncate",children:"Node Map"})]}),!U&&F.jsxs("div",{className:lt("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",x&&"bg-accent border-l-primary"),onClick:y,children:[F.jsx("span",{className:"text-muted-foreground text-xs",children:"🔓"}),F.jsxs("span",{className:"flex-1 truncate",children:[x?"Hide":"Show"," Cracker",F.jsxs("span",{className:lt("ml-1 text-xs",p?"text-green-500":"text-muted-foreground"),children:["(",p?"running":"stopped",")"]})]})]}),!U&&Object.keys(m).length>0&&F.jsxs("div",{className:"px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",onClick:v,children:[F.jsx("span",{className:"text-muted-foreground text-xs",children:"✓"}),F.jsx("span",{className:"flex-1 truncate text-muted-foreground",children:"Mark all as read"})]}),G.length>0&&F.jsxs(F.Fragment,{children:[F.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[F.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Channels"}),F.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:E,title:w==="alpha"?"Sort by recent":"Sort alphabetically",children:w==="alpha"?"A-Z":"⏱"})]}),G.map(V=>{const J=k("channel",V.key),le=N("channel",V.key);return F.jsxs("div",{className:lt("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",B("channel",V.key)&&"bg-accent border-l-primary",J>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>P({type:"channel",id:V.key,name:V.name}),children:[F.jsx("span",{className:"text-muted-foreground text-xs",children:"#"}),F.jsx("span",{className:"name flex-1 truncate",children:V.name}),J>0&&F.jsx("span",{className:lt("text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",le?"bg-destructive text-destructive-foreground":"bg-primary text-primary-foreground"),children:J})]},`chan-${V.key}`)})]}),re.length>0&&F.jsxs(F.Fragment,{children:[F.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[F.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Contacts"}),G.length===0&&F.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:E,title:w==="alpha"?"Sort by recent":"Sort alphabetically",children:w==="alpha"?"A-Z":"⏱"})]}),re.map(V=>{const J=k("contact",V.public_key),le=N("contact",V.public_key);return F.jsxs("div",{className:lt("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",B("contact",V.public_key)&&"bg-accent border-l-primary",J>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>P({type:"contact",id:V.public_key,name:Vo(V.name,V.public_key)}),children:[F.jsx(EA,{name:V.name,publicKey:V.public_key,size:24,contactType:V.type}),F.jsx("span",{className:"name flex-1 truncate",children:Vo(V.name,V.public_key)}),J>0&&F.jsx("span",{className:lt("text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",le?"bg-destructive text-destructive-foreground":"bg-primary text-primary-foreground"),children:J})]},V.public_key)})]}),re.length===0&&G.length===0&&F.jsx("div",{className:"p-5 text-center text-muted-foreground",children:U?"No matches found":"No conversations yet"})]})]})}function Fp(r){const a=r.indexOf(": ");if(a>0&&a<50){const s=r.substring(0,a);if(!s.includes(":"))return{sender:s,content:r.substring(a+2)}}return{sender:null,content:r}}function Ec(r){const a=new Date(r*1e3),s=new Date,l=a.toDateString()===s.toDateString(),f=a.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return l?f:`${a.toLocaleDateString([],{month:"short",day:"numeric"})} ${f}`}function k_(r,a){if(!a)return r;const s=/@\[([^\]]+)\]/g,l=[];let f=0,d,m=0;for(;(d=s.exec(r))!==null;){d.index>f&&l.push(r.slice(f,d.index));const h=d[1],x=h===a;l.push(F.jsxs("span",{className:lt("rounded px-0.5",x?"bg-primary/30 text-primary font-medium":"bg-muted-foreground/20"),children:["@[",h,"]"]},m++)),f=d.index+d[0].length}return f0?l:r}function S_({messages:r,contacts:a,loading:s,loadingOlder:l=!1,hasOlderMessages:f=!1,onSenderClick:d,onLoadOlder:m,radioName:h}){const x=R.useRef(null),p=R.useRef(0),y=R.useRef(!0),[v,w]=R.useState(!1),S=R.useRef({scrollTop:0,scrollHeight:0,clientHeight:0,wasNearTop:!1,wasNearBottom:!0});R.useLayoutEffect(()=>{if(!x.current)return;const N=x.current,I=r.length-p.current;if(y.current&&r.length>0)N.scrollTop=N.scrollHeight,y.current=!1;else if(I>0&&p.current>0){const z=N.scrollHeight-S.current.scrollHeight;S.current.wasNearTop&&z>0?N.scrollTop=S.current.scrollTop+z:S.current.wasNearBottom&&(N.scrollTop=N.scrollHeight)}p.current=r.length},[r]),R.useEffect(()=>{r.length===0&&(y.current=!0,p.current=0,S.current={scrollTop:0,scrollHeight:0,clientHeight:0,wasNearTop:!1,wasNearBottom:!0})},[r.length]);const T=R.useCallback(()=>{if(!x.current)return;const{scrollTop:N,scrollHeight:I,clientHeight:z}=x.current,j=I-N-z;S.current={scrollTop:N,scrollHeight:I,clientHeight:z,wasNearTop:N<150,wasNearBottom:j<100},w(j>100),!(!m||l||!f)&&N<100&&m()},[m,l,f]),C=R.useCallback(()=>{x.current&&(x.current.scrollTop=x.current.scrollHeight)},[]),E=N=>N&&a.find(I=>yA(I.public_key,N))||null,P=N=>a.find(I=>I.name===N)||null;if(s)return F.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"Loading messages..."});if(r.length===0)return F.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"No messages yet"});const B=[...r].sort((N,I)=>N.received_at-I.received_at),k=(N,I)=>N.outgoing?"__outgoing__":N.type==="PRIV"&&N.conversation_key?N.conversation_key:I||"__unknown__";return F.jsxs("div",{className:"flex-1 overflow-hidden relative",children:[F.jsxs("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-0.5",ref:x,onScroll:T,children:[l&&F.jsx("div",{className:"text-center py-2 text-muted-foreground text-sm",children:"Loading older messages..."}),!l&&f&&F.jsx("div",{className:"text-center py-2 text-muted-foreground text-xs",children:"Scroll up for older messages"}),B.map((N,I)=>{var ge;const z=N.type==="PRIV"?E(N.conversation_key):null,j=(z==null?void 0:z.type)===o0,{sender:H,content:$}=j?{sender:null,content:N.text}:Fp(N.text),U=N.outgoing?"You":(z==null?void 0:z.name)||H||((ge=N.conversation_key)==null?void 0:ge.slice(0,8))||"Unknown",G=!N.outgoing&&d&&U!=="Unknown",re=k(N,H),V=B[I-1],J=V?k(V,Fp(V.text).sender):null,le=!N.outgoing&&re!==J,se=I===0;let de=null,q="";if(!N.outgoing){if(N.type==="PRIV"&&N.conversation_key)de=(z==null?void 0:z.name)||null,q=N.conversation_key;else if(H){const ne=P(H);de=H,q=(ne==null?void 0:ne.public_key)||`name:${H}`}}return F.jsxs("div",{className:lt("flex items-start max-w-[85%]",N.outgoing&&"flex-row-reverse self-end",le&&!se&&"mt-3"),children:[!N.outgoing&&F.jsx("div",{className:"w-10 flex-shrink-0 flex items-start pt-0.5",children:le&&q&&F.jsx(EA,{name:de,publicKey:q,size:32})}),F.jsxs("div",{className:lt("py-1.5 px-3 rounded-lg min-w-0",N.outgoing?"bg-[#1e3a29]":"bg-muted"),children:[le&&F.jsxs("div",{className:"text-[13px] font-semibold text-muted-foreground mb-0.5",children:[G?F.jsx("span",{className:"cursor-pointer hover:text-primary hover:underline",onClick:()=>d(U),title:`Mention ${U}`,children:U}):U,F.jsx("span",{className:"font-normal text-muted-foreground/70 ml-2 text-[11px]",children:Ec(N.sender_timestamp||N.received_at)})]}),F.jsxs("div",{className:"break-words whitespace-pre-wrap",children:[$.split(` -`).map((ne,D,Z)=>F.jsxs("span",{children:[k_(ne,h),D0?` ✓${N.acked>1?N.acked:""}`:" ?")]})]})]},N.id)})]}),v&&F.jsx("button",{onClick:C,className:"absolute bottom-4 right-4 w-10 h-10 rounded-full bg-muted hover:bg-accent border border-border flex items-center justify-center shadow-lg transition-opacity",title:"Scroll to bottom",children:F.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-muted-foreground",children:F.jsx("polyline",{points:"6 9 12 15 18 9"})})})]})}const Np=156,B_=140,P_=156,T_=120,D_=8,R_=R.forwardRef(function({onSend:a,disabled:s,placeholder:l,isRepeaterMode:f,conversationType:d,senderName:m},h){const[x,p]=R.useState(""),[y,v]=R.useState(!1),w=R.useRef(null);R.useImperativeHandle(h,()=>({appendText:I=>{var z;p(j=>j+I),(z=w.current)==null||z.focus()}}));const S=R.useMemo(()=>{if(d==="contact")return{warningAt:B_,dangerAt:Np,hardLimit:Np};if(d==="channel"){const I=(m==null?void 0:m.length)??10,z=Math.max(1,P_-I-2);return{warningAt:T_,dangerAt:Math.max(1,z-D_),hardLimit:z}}return null},[d,m]),{limitState:T,warningMessage:C}=R.useMemo(()=>{if(!S)return{limitState:"normal",warningMessage:null};const I=x.length;return I>=S.hardLimit?{limitState:"error",warningMessage:"likely truncated by radio"}:I>=S.dangerAt?{limitState:"danger",warningMessage:"may impact multi-repeater hop delivery"}:I>=S.warningAt?{limitState:"warning",warningMessage:"may impact multi-repeater hop delivery"}:{limitState:"normal",warningMessage:null}},[x.length,S]),E=S?S.hardLimit-x.length:0,P=R.useCallback(async I=>{I.preventDefault();const z=x.trim();if(f){if(y||s)return;v(!0);try{await a(z),p("")}catch(j){console.error("Failed to request telemetry:",j),Lt.error("Failed to request telemetry",{description:j instanceof Error?j.message:"Check radio connection"});return}finally{v(!1)}setTimeout(()=>{var j;return(j=w.current)==null?void 0:j.focus()},0)}else{if(!z||y||s)return;v(!0);try{await a(z),p("")}catch(j){console.error("Failed to send message:",j),Lt.error("Failed to send message",{description:j instanceof Error?j.message:"Check radio connection"});return}finally{v(!1)}setTimeout(()=>{var j;return(j=w.current)==null?void 0:j.focus()},0)}},[x,y,s,a,f]),B=R.useCallback(I=>{I.key==="Enter"&&!I.shiftKey&&(I.preventDefault(),P(I))},[P]),k=f?!0:x.trim().length>0,N=!f&&S!==null;return F.jsxs("form",{className:"px-4 py-3 border-t border-border flex flex-col gap-1",onSubmit:P,children:[F.jsxs("div",{className:"flex gap-2",children:[F.jsx(Kt,{ref:w,type:f?"password":"text",autoComplete:f?"off":void 0,value:x,onChange:I=>p(I.target.value),onKeyDown:B,placeholder:l||(f?"Enter password for admin login...":"Type a message..."),disabled:s||y,className:"flex-1 min-w-0"}),F.jsx(gr,{type:"submit",disabled:s||y||!k,className:"flex-shrink-0",children:y?f?"Logging in...":"Sending...":f?x.trim()?"Log in with password":"Log in as guest/use repeater ACLs":"Send"})]}),N&&F.jsxs("div",{className:"flex items-center justify-end gap-2 text-xs",children:[F.jsxs("span",{className:lt("tabular-nums",T==="error"||T==="danger"?"text-red-500 font-medium":T==="warning"?"text-yellow-500":"text-muted-foreground"),children:[x.length,"/",S.hardLimit,E<0&&` (${E})`]}),C&&F.jsxs("span",{className:lt(T==="error"?"text-red-500":"text-yellow-500"),children:["— ",C]})]})]})});function sn(r,a,{checkForDefaultPrevented:s=!0}={}){return function(f){if(r==null||r(f),s===!1||!f.defaultPrevented)return a==null?void 0:a(f)}}function F_(r,a){const s=R.createContext(a),l=d=>{const{children:m,...h}=d,x=R.useMemo(()=>h,Object.values(h));return F.jsx(s.Provider,{value:x,children:m})};l.displayName=r+"Provider";function f(d){const m=R.useContext(s);if(m)return m;if(a!==void 0)return a;throw new Error(`\`${d}\` must be used within \`${r}\``)}return[l,f]}function sl(r,a=[]){let s=[];function l(d,m){const h=R.createContext(m),x=s.length;s=[...s,m];const p=v=>{var P;const{scope:w,children:S,...T}=v,C=((P=w==null?void 0:w[r])==null?void 0:P[x])||h,E=R.useMemo(()=>T,Object.values(T));return F.jsx(C.Provider,{value:E,children:S})};p.displayName=d+"Provider";function y(v,w){var C;const S=((C=w==null?void 0:w[r])==null?void 0:C[x])||h,T=R.useContext(S);if(T)return T;if(m!==void 0)return m;throw new Error(`\`${v}\` must be used within \`${d}\``)}return[p,y]}const f=()=>{const d=s.map(m=>R.createContext(m));return function(h){const x=(h==null?void 0:h[r])||d;return R.useMemo(()=>({[`__scope${r}`]:{...h,[r]:x}}),[h,x])}};return f.scopeName=r,[l,N_(f,...a)]}function N_(...r){const a=r[0];if(r.length===1)return a;const s=()=>{const l=r.map(f=>({useScope:f(),scopeName:f.scopeName}));return function(d){const m=l.reduce((h,{useScope:x,scopeName:p})=>{const v=x(d)[`__scope${p}`];return{...h,...v}},{});return R.useMemo(()=>({[`__scope${a.scopeName}`]:m}),[m])}};return s.scopeName=a.scopeName,s}var Hs=globalThis!=null&&globalThis.document?R.useLayoutEffect:()=>{},L_=i0[" useId ".trim().toString()]||(()=>{}),M_=0;function tl(r){const[a,s]=R.useState(L_());return Hs(()=>{s(l=>l??String(M_++))},[r]),a?`radix-${a}`:""}var I_=i0[" useInsertionEffect ".trim().toString()]||Hs;function Rc({prop:r,defaultProp:a,onChange:s=()=>{},caller:l}){const[f,d,m]=O_({defaultProp:a,onChange:s}),h=r!==void 0,x=h?r:f;{const y=R.useRef(r!==void 0);R.useEffect(()=>{const v=y.current;v!==h&&console.warn(`${l} is changing from ${v?"controlled":"uncontrolled"} to ${h?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),y.current=h},[h,l])}const p=R.useCallback(y=>{var v;if(h){const w=z_(y)?y(r):y;w!==r&&((v=m.current)==null||v.call(m,w))}else d(y)},[h,r,d,m]);return[x,p]}function O_({defaultProp:r,onChange:a}){const[s,l]=R.useState(r),f=R.useRef(s),d=R.useRef(a);return I_(()=>{d.current=a},[a]),R.useEffect(()=>{var m;f.current!==s&&((m=d.current)==null||m.call(d,s),f.current=s)},[s,f]),[s,l,d]}function z_(r){return typeof r=="function"}function j_(r){const a=H_(r),s=R.forwardRef((l,f)=>{const{children:d,...m}=l,h=R.Children.toArray(d),x=h.find(U_);if(x){const p=x.props.children,y=h.map(v=>v===x?R.Children.count(p)>1?R.Children.only(null):R.isValidElement(p)?p.props.children:null:v);return F.jsx(a,{...m,ref:f,children:R.isValidElement(p)?R.cloneElement(p,void 0,y):null})}return F.jsx(a,{...m,ref:f,children:d})});return s.displayName=`${r}.Slot`,s}function H_(r){const a=R.forwardRef((s,l)=>{const{children:f,...d}=s;if(R.isValidElement(f)){const m=W_(f),h=Z_(d,f.props);return f.type!==R.Fragment&&(h.ref=l?ol(l,m):m),R.cloneElement(f,h)}return R.Children.count(f)>1?R.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var V_=Symbol("radix.slottable");function U_(r){return R.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===V_}function Z_(r,a){const s={...a};for(const l in a){const f=r[l],d=a[l];/^on[A-Z]/.test(l)?f&&d?s[l]=(...h)=>{const x=d(...h);return f(...h),x}:f&&(s[l]=f):l==="style"?s[l]={...f,...d}:l==="className"&&(s[l]=[f,d].filter(Boolean).join(" "))}return{...r,...s}}function W_(r){var l,f;let a=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?r.ref:(a=(f=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:f.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?r.props.ref:r.props.ref||r.ref)}var q_=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],cn=q_.reduce((r,a)=>{const s=j_(`Primitive.${a}`),l=R.forwardRef((f,d)=>{const{asChild:m,...h}=f,x=m?s:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),F.jsx(x,{...h,ref:d})});return l.displayName=`Primitive.${a}`,{...r,[a]:l}},{});function G_(r,a){r&&s0.flushSync(()=>r.dispatchEvent(a))}function Vs(r){const a=R.useRef(r);return R.useEffect(()=>{a.current=r}),R.useMemo(()=>(...s)=>{var l;return(l=a.current)==null?void 0:l.call(a,...s)},[])}function Q_(r,a=globalThis==null?void 0:globalThis.document){const s=Vs(r);R.useEffect(()=>{const l=f=>{f.key==="Escape"&&s(f)};return a.addEventListener("keydown",l,{capture:!0}),()=>a.removeEventListener("keydown",l,{capture:!0})},[s,a])}var K_="DismissableLayer",qf="dismissableLayer.update",$_="dismissableLayer.pointerDownOutside",Y_="dismissableLayer.focusOutside",Lp,HA=R.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),VA=R.forwardRef((r,a)=>{const{disableOutsidePointerEvents:s=!1,onEscapeKeyDown:l,onPointerDownOutside:f,onFocusOutside:d,onInteractOutside:m,onDismiss:h,...x}=r,p=R.useContext(HA),[y,v]=R.useState(null),w=(y==null?void 0:y.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,S]=R.useState({}),T=xr(a,j=>v(j)),C=Array.from(p.layers),[E]=[...p.layersWithOutsidePointerEventsDisabled].slice(-1),P=C.indexOf(E),B=y?C.indexOf(y):-1,k=p.layersWithOutsidePointerEventsDisabled.size>0,N=B>=P,I=e1(j=>{const H=j.target,$=[...p.branches].some(U=>U.contains(H));!N||$||(f==null||f(j),m==null||m(j),j.defaultPrevented||h==null||h())},w),z=t1(j=>{const H=j.target;[...p.branches].some(U=>U.contains(H))||(d==null||d(j),m==null||m(j),j.defaultPrevented||h==null||h())},w);return Q_(j=>{B===p.layers.size-1&&(l==null||l(j),!j.defaultPrevented&&h&&(j.preventDefault(),h()))},w),R.useEffect(()=>{if(y)return s&&(p.layersWithOutsidePointerEventsDisabled.size===0&&(Lp=w.body.style.pointerEvents,w.body.style.pointerEvents="none"),p.layersWithOutsidePointerEventsDisabled.add(y)),p.layers.add(y),Mp(),()=>{s&&p.layersWithOutsidePointerEventsDisabled.size===1&&(w.body.style.pointerEvents=Lp)}},[y,w,s,p]),R.useEffect(()=>()=>{y&&(p.layers.delete(y),p.layersWithOutsidePointerEventsDisabled.delete(y),Mp())},[y,p]),R.useEffect(()=>{const j=()=>S({});return document.addEventListener(qf,j),()=>document.removeEventListener(qf,j)},[]),F.jsx(cn.div,{...x,ref:T,style:{pointerEvents:k?N?"auto":"none":void 0,...r.style},onFocusCapture:sn(r.onFocusCapture,z.onFocusCapture),onBlurCapture:sn(r.onBlurCapture,z.onBlurCapture),onPointerDownCapture:sn(r.onPointerDownCapture,I.onPointerDownCapture)})});VA.displayName=K_;var X_="DismissableLayerBranch",J_=R.forwardRef((r,a)=>{const s=R.useContext(HA),l=R.useRef(null),f=xr(a,l);return R.useEffect(()=>{const d=l.current;if(d)return s.branches.add(d),()=>{s.branches.delete(d)}},[s.branches]),F.jsx(cn.div,{...r,ref:f})});J_.displayName=X_;function e1(r,a=globalThis==null?void 0:globalThis.document){const s=Vs(r),l=R.useRef(!1),f=R.useRef(()=>{});return R.useEffect(()=>{const d=h=>{if(h.target&&!l.current){let x=function(){UA($_,s,p,{discrete:!0})};const p={originalEvent:h};h.pointerType==="touch"?(a.removeEventListener("click",f.current),f.current=x,a.addEventListener("click",f.current,{once:!0})):x()}else a.removeEventListener("click",f.current);l.current=!1},m=window.setTimeout(()=>{a.addEventListener("pointerdown",d)},0);return()=>{window.clearTimeout(m),a.removeEventListener("pointerdown",d),a.removeEventListener("click",f.current)}},[a,s]),{onPointerDownCapture:()=>l.current=!0}}function t1(r,a=globalThis==null?void 0:globalThis.document){const s=Vs(r),l=R.useRef(!1);return R.useEffect(()=>{const f=d=>{d.target&&!l.current&&UA(Y_,s,{originalEvent:d},{discrete:!1})};return a.addEventListener("focusin",f),()=>a.removeEventListener("focusin",f)},[a,s]),{onFocusCapture:()=>l.current=!0,onBlurCapture:()=>l.current=!1}}function Mp(){const r=new CustomEvent(qf);document.dispatchEvent(r)}function UA(r,a,s,{discrete:l}){const f=s.originalEvent.target,d=new CustomEvent(r,{bubbles:!1,cancelable:!0,detail:s});a&&f.addEventListener(r,a,{once:!0}),l?G_(f,d):f.dispatchEvent(d)}var Pf="focusScope.autoFocusOnMount",Tf="focusScope.autoFocusOnUnmount",Ip={bubbles:!1,cancelable:!0},n1="FocusScope",ZA=R.forwardRef((r,a)=>{const{loop:s=!1,trapped:l=!1,onMountAutoFocus:f,onUnmountAutoFocus:d,...m}=r,[h,x]=R.useState(null),p=Vs(f),y=Vs(d),v=R.useRef(null),w=xr(a,C=>x(C)),S=R.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;R.useEffect(()=>{if(l){let C=function(k){if(S.paused||!h)return;const N=k.target;h.contains(N)?v.current=N:ro(v.current,{select:!0})},E=function(k){if(S.paused||!h)return;const N=k.relatedTarget;N!==null&&(h.contains(N)||ro(v.current,{select:!0}))},P=function(k){if(document.activeElement===document.body)for(const I of k)I.removedNodes.length>0&&ro(h)};document.addEventListener("focusin",C),document.addEventListener("focusout",E);const B=new MutationObserver(P);return h&&B.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",C),document.removeEventListener("focusout",E),B.disconnect()}}},[l,h,S.paused]),R.useEffect(()=>{if(h){zp.add(S);const C=document.activeElement;if(!h.contains(C)){const P=new CustomEvent(Pf,Ip);h.addEventListener(Pf,p),h.dispatchEvent(P),P.defaultPrevented||(r1(l1(WA(h)),{select:!0}),document.activeElement===C&&ro(h))}return()=>{h.removeEventListener(Pf,p),setTimeout(()=>{const P=new CustomEvent(Tf,Ip);h.addEventListener(Tf,y),h.dispatchEvent(P),P.defaultPrevented||ro(C??document.body,{select:!0}),h.removeEventListener(Tf,y),zp.remove(S)},0)}}},[h,p,y,S]);const T=R.useCallback(C=>{if(!s&&!l||S.paused)return;const E=C.key==="Tab"&&!C.altKey&&!C.ctrlKey&&!C.metaKey,P=document.activeElement;if(E&&P){const B=C.currentTarget,[k,N]=i1(B);k&&N?!C.shiftKey&&P===N?(C.preventDefault(),s&&ro(k,{select:!0})):C.shiftKey&&P===k&&(C.preventDefault(),s&&ro(N,{select:!0})):P===B&&C.preventDefault()}},[s,l,S.paused]);return F.jsx(cn.div,{tabIndex:-1,...m,ref:w,onKeyDown:T})});ZA.displayName=n1;function r1(r,{select:a=!1}={}){const s=document.activeElement;for(const l of r)if(ro(l,{select:a}),document.activeElement!==s)return}function i1(r){const a=WA(r),s=Op(a,r),l=Op(a.reverse(),r);return[s,l]}function WA(r){const a=[],s=document.createTreeWalker(r,NodeFilter.SHOW_ELEMENT,{acceptNode:l=>{const f=l.tagName==="INPUT"&&l.type==="hidden";return l.disabled||l.hidden||f?NodeFilter.FILTER_SKIP:l.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)a.push(s.currentNode);return a}function Op(r,a){for(const s of r)if(!o1(s,{upTo:a}))return s}function o1(r,{upTo:a}){if(getComputedStyle(r).visibility==="hidden")return!0;for(;r;){if(a!==void 0&&r===a)return!1;if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}function s1(r){return r instanceof HTMLInputElement&&"select"in r}function ro(r,{select:a=!1}={}){if(r&&r.focus){const s=document.activeElement;r.focus({preventScroll:!0}),r!==s&&s1(r)&&a&&r.select()}}var zp=a1();function a1(){let r=[];return{add(a){const s=r[0];a!==s&&(s==null||s.pause()),r=jp(r,a),r.unshift(a)},remove(a){var s;r=jp(r,a),(s=r[0])==null||s.resume()}}}function jp(r,a){const s=[...r],l=s.indexOf(a);return l!==-1&&s.splice(l,1),s}function l1(r){return r.filter(a=>a.tagName!=="A")}var u1="Portal",qA=R.forwardRef((r,a)=>{var h;const{container:s,...l}=r,[f,d]=R.useState(!1);Hs(()=>d(!0),[]);const m=s||f&&((h=globalThis==null?void 0:globalThis.document)==null?void 0:h.body);return m?wA.createPortal(F.jsx(cn.div,{...l,ref:a}),m):null});qA.displayName=u1;function c1(r,a){return R.useReducer((s,l)=>a[s][l]??s,r)}var qs=r=>{const{present:a,children:s}=r,l=d1(a),f=typeof s=="function"?s({present:l.isPresent}):R.Children.only(s),d=xr(l.ref,f1(f));return typeof s=="function"||l.isPresent?R.cloneElement(f,{ref:d}):null};qs.displayName="Presence";function d1(r){const[a,s]=R.useState(),l=R.useRef(null),f=R.useRef(r),d=R.useRef("none"),m=r?"mounted":"unmounted",[h,x]=c1(m,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return R.useEffect(()=>{const p=Su(l.current);d.current=h==="mounted"?p:"none"},[h]),Hs(()=>{const p=l.current,y=f.current;if(y!==r){const w=d.current,S=Su(p);r?x("MOUNT"):S==="none"||(p==null?void 0:p.display)==="none"?x("UNMOUNT"):x(y&&w!==S?"ANIMATION_OUT":"UNMOUNT"),f.current=r}},[r,x]),Hs(()=>{if(a){let p;const y=a.ownerDocument.defaultView??window,v=S=>{const C=Su(l.current).includes(CSS.escape(S.animationName));if(S.target===a&&C&&(x("ANIMATION_END"),!f.current)){const E=a.style.animationFillMode;a.style.animationFillMode="forwards",p=y.setTimeout(()=>{a.style.animationFillMode==="forwards"&&(a.style.animationFillMode=E)})}},w=S=>{S.target===a&&(d.current=Su(l.current))};return a.addEventListener("animationstart",w),a.addEventListener("animationcancel",v),a.addEventListener("animationend",v),()=>{y.clearTimeout(p),a.removeEventListener("animationstart",w),a.removeEventListener("animationcancel",v),a.removeEventListener("animationend",v)}}else x("ANIMATION_END")},[a,x]),{isPresent:["mounted","unmountSuspended"].includes(h),ref:R.useCallback(p=>{l.current=p?getComputedStyle(p):null,s(p)},[])}}function Su(r){return(r==null?void 0:r.animationName)||"none"}function f1(r){var l,f;let a=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?r.ref:(a=(f=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:f.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?r.props.ref:r.props.ref||r.ref)}var Df=0;function h1(){R.useEffect(()=>{const r=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",r[0]??Hp()),document.body.insertAdjacentElement("beforeend",r[1]??Hp()),Df++,()=>{Df===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),Df--}},[])}function Hp(){const r=document.createElement("span");return r.setAttribute("data-radix-focus-guard",""),r.tabIndex=0,r.style.outline="none",r.style.opacity="0",r.style.position="fixed",r.style.pointerEvents="none",r}var Kr=function(){return Kr=Object.assign||function(a){for(var s,l=1,f=arguments.length;l"u")return T1;var a=D1(r),s=document.documentElement.clientWidth,l=window.innerWidth;return{left:a[0],top:a[1],right:a[2],gap:Math.max(0,l-s+a[2]-a[0])}},F1=$A(),Os="data-scroll-locked",N1=function(r,a,s,l){var f=r.left,d=r.top,m=r.right,h=r.gap;return s===void 0&&(s="margin"),` - .`.concat(m1,` { + */const yy=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],kA=l0("x",yy);function _y({health:r,config:a,onConfigClick:s,onMaintenanceClick:l,onAdvertise:f,onMenuClick:d}){const m=(r==null?void 0:r.radio_connected)??!1,[h,x]=R.useState(!1),p=async()=>{x(!0);try{const y=await at.reconnectRadio();y.connected&&Lt.success("Reconnected",{description:y.message})}catch(y){Lt.error("Reconnection failed",{description:y instanceof Error?y.message:"Check radio connection and power"})}finally{x(!1)}};return F.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-[#252525] border-b border-[#333] text-xs",children:[d&&F.jsx("button",{onClick:d,className:"md:hidden p-1 bg-transparent border-none text-[#e0e0e0] cursor-pointer","aria-label":"Open menu",children:F.jsx(vy,{className:"h-5 w-5"})}),F.jsx("h1",{className:"hidden lg:block text-base font-semibold mr-auto",children:"RemoteTerm"}),F.jsxs("div",{className:"flex items-center gap-1 text-[#888]",children:[F.jsx("div",{className:`w-2 h-2 rounded-full ${m?"bg-[#4caf50]":"bg-[#666]"}`}),F.jsx("span",{className:"hidden lg:inline text-[#e0e0e0]",children:m?"Connected":"Disconnected"})]}),(r==null?void 0:r.serial_port)&&F.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["Port: ",F.jsx("span",{className:"text-[#e0e0e0]",children:r.serial_port})]}),a&&F.jsxs(F.Fragment,{children:[F.jsx("div",{className:"hidden lg:flex items-center gap-1 text-[#888]",children:F.jsx("span",{className:"text-[#e0e0e0]",children:a.name||"Unnamed"})}),F.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:[a.radio.freq," MHz/SF",a.radio.sf,"/CR",a.radio.cr,"/",a.tx_power,"dBm"]})]}),F.jsx("div",{className:"flex-1 lg:hidden"}),!m&&F.jsx("button",{onClick:p,disabled:h,className:"px-3 py-1 bg-[#4a3000] border border-[#6b4500] text-[#ffa500] rounded text-xs cursor-pointer hover:bg-[#5a3a00] disabled:opacity-50 disabled:cursor-not-allowed",children:h?"Reconnecting...":"Reconnect"}),F.jsx("button",{onClick:f,disabled:!m,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444] disabled:bg-[#333] disabled:text-[#666] disabled:cursor-not-allowed",children:"Advertise"}),F.jsx("button",{onClick:l,className:"px-2 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",title:"Database Maintenance",children:F.jsx("span",{role:"img","aria-label":"Settings",children:"⚙️"})}),F.jsxs("button",{onClick:s,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",children:[F.jsx("span",{role:"img","aria-label":"Radio",children:"📻"})," ","Config"]})]})}const Zf=2,wy={text:"🛜",background:"#444444",textColor:"#ffffff"};function Cy(r){let a=0;for(let s=0;s>8)%30,f=35+(a>>16)%20,d=`hsl(${s}, ${l}%, ${f}%)`,m=f<45?"#ffffff":"#000000";return{background:d,text:m}}function Sy(r,a,s){if(s===Zf)return wy;const l=Ey(r,a),f=ky(a);return{text:l,background:f.background,textColor:f.text}}function SA({name:r,publicKey:a,size:s=28,contactType:l}){const f=Sy(r,a,l);return F.jsx("div",{className:"flex items-center justify-center rounded-full font-semibold flex-shrink-0 select-none",style:{backgroundColor:f.background,color:f.textColor,width:s,height:s,fontSize:s*.45},children:f.text})}function BA(r){var a,s,l="";if(typeof r=="string"||typeof r=="number")l+=r;else if(typeof r=="object")if(Array.isArray(r)){var f=r.length;for(a=0;a{const s=new Array(r.length+a.length);for(let l=0;l({classGroupId:r,validator:a}),TA=(r=new Map,a=null,s)=>({nextPart:r,validators:a,classGroupId:s}),Cc="-",kp=[],Ty="arbitrary..",Dy=r=>{const a=Fy(r),{conflictingClassGroups:s,conflictingClassGroupModifiers:l}=r;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return Ry(m);const h=m.split(Cc),x=h[0]===""&&h.length>1?1:0;return DA(h,x,a)},getConflictingClassGroupIds:(m,h)=>{if(h){const x=l[m],p=s[m];return x?p?By(p,x):x:p||kp}return s[m]||kp}}},DA=(r,a,s)=>{if(r.length-a===0)return s.classGroupId;const f=r[a],d=s.nextPart.get(f);if(d){const p=DA(r,a+1,d);if(p)return p}const m=s.validators;if(m===null)return;const h=a===0?r.join(Cc):r.slice(a).join(Cc),x=m.length;for(let p=0;pr.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=r.slice(1,-1),s=a.indexOf(":"),l=a.slice(0,s);return l?Ty+l:void 0})(),Fy=r=>{const{theme:a,classGroups:s}=r;return Ny(s,a)},Ny=(r,a)=>{const s=TA();for(const l in r){const f=r[l];u0(f,s,l,a)}return s},u0=(r,a,s,l)=>{const f=r.length;for(let d=0;d{if(typeof r=="string"){My(r,a,s);return}if(typeof r=="function"){Iy(r,a,s,l);return}Oy(r,a,s,l)},My=(r,a,s)=>{const l=r===""?a:RA(a,r);l.classGroupId=s},Iy=(r,a,s,l)=>{if(zy(r)){u0(r(l),a,s,l);return}a.validators===null&&(a.validators=[]),a.validators.push(Py(s,r))},Oy=(r,a,s,l)=>{const f=Object.entries(r),d=f.length;for(let m=0;m{let s=r;const l=a.split(Cc),f=l.length;for(let d=0;d"isThemeGetter"in r&&r.isThemeGetter===!0,jy=r=>{if(r<1)return{get:()=>{},set:()=>{}};let a=0,s=Object.create(null),l=Object.create(null);const f=(d,m)=>{s[d]=m,a++,a>r&&(a=0,l=s,s=Object.create(null))};return{get(d){let m=s[d];if(m!==void 0)return m;if((m=l[d])!==void 0)return f(d,m),m},set(d,m){d in s?s[d]=m:f(d,m)}}},Wf="!",Sp=":",Hy=[],Bp=(r,a,s,l,f)=>({modifiers:r,hasImportantModifier:a,baseClassName:s,maybePostfixModifierPosition:l,isExternal:f}),Vy=r=>{const{prefix:a,experimentalParseClassName:s}=r;let l=f=>{const d=[];let m=0,h=0,x=0,p;const y=f.length;for(let b=0;bx?p-x:void 0;return Bp(d,S,w,T)};if(a){const f=a+Sp,d=l;l=m=>m.startsWith(f)?d(m.slice(f.length)):Bp(Hy,!1,m,void 0,!0)}if(s){const f=l;l=d=>s({className:d,parseClassName:f})}return l},Uy=r=>{const a=new Map;return r.orderSensitiveModifiers.forEach((s,l)=>{a.set(s,1e6+l)}),s=>{const l=[];let f=[];for(let d=0;d0&&(f.sort(),l.push(...f),f=[]),l.push(m)):f.push(m)}return f.length>0&&(f.sort(),l.push(...f)),l}},Zy=r=>({cache:jy(r.cacheSize),parseClassName:Vy(r),sortModifiers:Uy(r),...Dy(r)}),Wy=/\s+/,qy=(r,a)=>{const{parseClassName:s,getClassGroupId:l,getConflictingClassGroupIds:f,sortModifiers:d}=a,m=[],h=r.trim().split(Wy);let x="";for(let p=h.length-1;p>=0;p-=1){const y=h[p],{isExternal:v,modifiers:w,hasImportantModifier:S,baseClassName:T,maybePostfixModifierPosition:b}=s(y);if(v){x=y+(x.length>0?" "+x:x);continue}let E=!!b,P=l(E?T.substring(0,b):T);if(!P){if(!E){x=y+(x.length>0?" "+x:x);continue}if(P=l(T),!P){x=y+(x.length>0?" "+x:x);continue}E=!1}const B=w.length===0?"":w.length===1?w[0]:d(w).join(":"),k=S?B+Wf:B,N=k+P;if(m.indexOf(N)>-1)continue;m.push(N);const I=f(P,E);for(let z=0;z0?" "+x:x)}return x},Gy=(...r)=>{let a=0,s,l,f="";for(;a{if(typeof r=="string")return r;let a,s="";for(let l=0;l{let s,l,f,d;const m=x=>{const p=a.reduce((y,v)=>v(y),r());return s=Zy(p),l=s.cache.get,f=s.cache.set,d=h,h(x)},h=x=>{const p=l(x);if(p)return p;const y=qy(x,s);return f(x,y),y};return d=m,(...x)=>d(Gy(...x))},Ky=[],on=r=>{const a=s=>s[r]||Ky;return a.isThemeGetter=!0,a},NA=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,LA=/^\((?:(\w[\w-]*):)?(.+)\)$/i,$y=/^\d+\/\d+$/,Yy=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Xy=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Jy=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,e_=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,t_=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Fs=r=>$y.test(r),it=r=>!!r&&!Number.isNaN(Number(r)),no=r=>!!r&&Number.isInteger(Number(r)),Sf=r=>r.endsWith("%")&&it(r.slice(0,-1)),gi=r=>Yy.test(r),n_=()=>!0,r_=r=>Xy.test(r)&&!Jy.test(r),MA=()=>!1,i_=r=>e_.test(r),o_=r=>t_.test(r),s_=r=>!Fe(r)&&!Ne(r),a_=r=>Zs(r,zA,MA),Fe=r=>NA.test(r),Lo=r=>Zs(r,jA,r_),Bf=r=>Zs(r,f_,it),Pp=r=>Zs(r,IA,MA),l_=r=>Zs(r,OA,o_),Eu=r=>Zs(r,HA,i_),Ne=r=>LA.test(r),Ia=r=>Ws(r,jA),u_=r=>Ws(r,h_),Tp=r=>Ws(r,IA),c_=r=>Ws(r,zA),d_=r=>Ws(r,OA),ku=r=>Ws(r,HA,!0),Zs=(r,a,s)=>{const l=NA.exec(r);return l?l[1]?a(l[1]):s(l[2]):!1},Ws=(r,a,s=!1)=>{const l=LA.exec(r);return l?l[1]?a(l[1]):s:!1},IA=r=>r==="position"||r==="percentage",OA=r=>r==="image"||r==="url",zA=r=>r==="length"||r==="size"||r==="bg-size",jA=r=>r==="length",f_=r=>r==="number",h_=r=>r==="family-name",HA=r=>r==="shadow",p_=()=>{const r=on("color"),a=on("font"),s=on("text"),l=on("font-weight"),f=on("tracking"),d=on("leading"),m=on("breakpoint"),h=on("container"),x=on("spacing"),p=on("radius"),y=on("shadow"),v=on("inset-shadow"),w=on("text-shadow"),S=on("drop-shadow"),T=on("blur"),b=on("perspective"),E=on("aspect"),P=on("ease"),B=on("animate"),k=()=>["auto","avoid","all","avoid-page","page","left","right","column"],N=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],I=()=>[...N(),Ne,Fe],z=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],H=()=>[Ne,Fe,x],$=()=>[Fs,"full","auto",...H()],U=()=>[no,"none","subgrid",Ne,Fe],G=()=>["auto",{span:["full",no,Ne,Fe]},no,Ne,Fe],re=()=>[no,"auto",Ne,Fe],V=()=>["auto","min","max","fr",Ne,Fe],J=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],le=()=>["start","end","center","stretch","center-safe","end-safe"],se=()=>["auto",...H()],de=()=>[Fs,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...H()],q=()=>[r,Ne,Fe],ge=()=>[...N(),Tp,Pp,{position:[Ne,Fe]}],ne=()=>["no-repeat",{repeat:["","x","y","space","round"]}],D=()=>["auto","cover","contain",c_,a_,{size:[Ne,Fe]}],Z=()=>[Sf,Ia,Lo],K=()=>["","none","full",p,Ne,Fe],X=()=>["",it,Ia,Lo],fe=()=>["solid","dashed","dotted","double"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ke=()=>[it,Sf,Tp,Pp],Ae=()=>["","none",T,Ne,Fe],qe=()=>["none",it,Ne,Fe],Ye=()=>["none",it,Ne,Fe],Et=()=>[it,Ne,Fe],ht=()=>[Fs,"full",...H()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[gi],breakpoint:[gi],color:[n_],container:[gi],"drop-shadow":[gi],ease:["in","out","in-out"],font:[s_],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[gi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[gi],shadow:[gi],spacing:["px",it],text:[gi],"text-shadow":[gi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Fs,Fe,Ne,E]}],container:["container"],columns:[{columns:[it,Fe,Ne,h]}],"break-after":[{"break-after":k()}],"break-before":[{"break-before":k()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:I()}],overflow:[{overflow:z()}],"overflow-x":[{"overflow-x":z()}],"overflow-y":[{"overflow-y":z()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:$()}],"inset-x":[{"inset-x":$()}],"inset-y":[{"inset-y":$()}],start:[{start:$()}],end:[{end:$()}],top:[{top:$()}],right:[{right:$()}],bottom:[{bottom:$()}],left:[{left:$()}],visibility:["visible","invisible","collapse"],z:[{z:[no,"auto",Ne,Fe]}],basis:[{basis:[Fs,"full","auto",h,...H()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[it,Fs,"auto","initial","none",Fe]}],grow:[{grow:["",it,Ne,Fe]}],shrink:[{shrink:["",it,Ne,Fe]}],order:[{order:[no,"first","last","none",Ne,Fe]}],"grid-cols":[{"grid-cols":U()}],"col-start-end":[{col:G()}],"col-start":[{"col-start":re()}],"col-end":[{"col-end":re()}],"grid-rows":[{"grid-rows":U()}],"row-start-end":[{row:G()}],"row-start":[{"row-start":re()}],"row-end":[{"row-end":re()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:H()}],"gap-x":[{"gap-x":H()}],"gap-y":[{"gap-y":H()}],"justify-content":[{justify:[...J(),"normal"]}],"justify-items":[{"justify-items":[...le(),"normal"]}],"justify-self":[{"justify-self":["auto",...le()]}],"align-content":[{content:["normal",...J()]}],"align-items":[{items:[...le(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...le(),{baseline:["","last"]}]}],"place-content":[{"place-content":J()}],"place-items":[{"place-items":[...le(),"baseline"]}],"place-self":[{"place-self":["auto",...le()]}],p:[{p:H()}],px:[{px:H()}],py:[{py:H()}],ps:[{ps:H()}],pe:[{pe:H()}],pt:[{pt:H()}],pr:[{pr:H()}],pb:[{pb:H()}],pl:[{pl:H()}],m:[{m:se()}],mx:[{mx:se()}],my:[{my:se()}],ms:[{ms:se()}],me:[{me:se()}],mt:[{mt:se()}],mr:[{mr:se()}],mb:[{mb:se()}],ml:[{ml:se()}],"space-x":[{"space-x":H()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":H()}],"space-y-reverse":["space-y-reverse"],size:[{size:de()}],w:[{w:[h,"screen",...de()]}],"min-w":[{"min-w":[h,"screen","none",...de()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[m]},...de()]}],h:[{h:["screen","lh",...de()]}],"min-h":[{"min-h":["screen","lh","none",...de()]}],"max-h":[{"max-h":["screen","lh",...de()]}],"font-size":[{text:["base",s,Ia,Lo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[l,Ne,Bf]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Sf,Fe]}],"font-family":[{font:[u_,Fe,a]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[f,Ne,Fe]}],"line-clamp":[{"line-clamp":[it,"none",Ne,Bf]}],leading:[{leading:[d,...H()]}],"list-image":[{"list-image":["none",Ne,Fe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Ne,Fe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:q()}],"text-color":[{text:q()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...fe(),"wavy"]}],"text-decoration-thickness":[{decoration:[it,"from-font","auto",Ne,Lo]}],"text-decoration-color":[{decoration:q()}],"underline-offset":[{"underline-offset":[it,"auto",Ne,Fe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:H()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ne,Fe]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Ne,Fe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ge()}],"bg-repeat":[{bg:ne()}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},no,Ne,Fe],radial:["",Ne,Fe],conic:[no,Ne,Fe]},d_,l_]}],"bg-color":[{bg:q()}],"gradient-from-pos":[{from:Z()}],"gradient-via-pos":[{via:Z()}],"gradient-to-pos":[{to:Z()}],"gradient-from":[{from:q()}],"gradient-via":[{via:q()}],"gradient-to":[{to:q()}],rounded:[{rounded:K()}],"rounded-s":[{"rounded-s":K()}],"rounded-e":[{"rounded-e":K()}],"rounded-t":[{"rounded-t":K()}],"rounded-r":[{"rounded-r":K()}],"rounded-b":[{"rounded-b":K()}],"rounded-l":[{"rounded-l":K()}],"rounded-ss":[{"rounded-ss":K()}],"rounded-se":[{"rounded-se":K()}],"rounded-ee":[{"rounded-ee":K()}],"rounded-es":[{"rounded-es":K()}],"rounded-tl":[{"rounded-tl":K()}],"rounded-tr":[{"rounded-tr":K()}],"rounded-br":[{"rounded-br":K()}],"rounded-bl":[{"rounded-bl":K()}],"border-w":[{border:X()}],"border-w-x":[{"border-x":X()}],"border-w-y":[{"border-y":X()}],"border-w-s":[{"border-s":X()}],"border-w-e":[{"border-e":X()}],"border-w-t":[{"border-t":X()}],"border-w-r":[{"border-r":X()}],"border-w-b":[{"border-b":X()}],"border-w-l":[{"border-l":X()}],"divide-x":[{"divide-x":X()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":X()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...fe(),"hidden","none"]}],"divide-style":[{divide:[...fe(),"hidden","none"]}],"border-color":[{border:q()}],"border-color-x":[{"border-x":q()}],"border-color-y":[{"border-y":q()}],"border-color-s":[{"border-s":q()}],"border-color-e":[{"border-e":q()}],"border-color-t":[{"border-t":q()}],"border-color-r":[{"border-r":q()}],"border-color-b":[{"border-b":q()}],"border-color-l":[{"border-l":q()}],"divide-color":[{divide:q()}],"outline-style":[{outline:[...fe(),"none","hidden"]}],"outline-offset":[{"outline-offset":[it,Ne,Fe]}],"outline-w":[{outline:["",it,Ia,Lo]}],"outline-color":[{outline:q()}],shadow:[{shadow:["","none",y,ku,Eu]}],"shadow-color":[{shadow:q()}],"inset-shadow":[{"inset-shadow":["none",v,ku,Eu]}],"inset-shadow-color":[{"inset-shadow":q()}],"ring-w":[{ring:X()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:q()}],"ring-offset-w":[{"ring-offset":[it,Lo]}],"ring-offset-color":[{"ring-offset":q()}],"inset-ring-w":[{"inset-ring":X()}],"inset-ring-color":[{"inset-ring":q()}],"text-shadow":[{"text-shadow":["none",w,ku,Eu]}],"text-shadow-color":[{"text-shadow":q()}],opacity:[{opacity:[it,Ne,Fe]}],"mix-blend":[{"mix-blend":[...he(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":he()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[it]}],"mask-image-linear-from-pos":[{"mask-linear-from":ke()}],"mask-image-linear-to-pos":[{"mask-linear-to":ke()}],"mask-image-linear-from-color":[{"mask-linear-from":q()}],"mask-image-linear-to-color":[{"mask-linear-to":q()}],"mask-image-t-from-pos":[{"mask-t-from":ke()}],"mask-image-t-to-pos":[{"mask-t-to":ke()}],"mask-image-t-from-color":[{"mask-t-from":q()}],"mask-image-t-to-color":[{"mask-t-to":q()}],"mask-image-r-from-pos":[{"mask-r-from":ke()}],"mask-image-r-to-pos":[{"mask-r-to":ke()}],"mask-image-r-from-color":[{"mask-r-from":q()}],"mask-image-r-to-color":[{"mask-r-to":q()}],"mask-image-b-from-pos":[{"mask-b-from":ke()}],"mask-image-b-to-pos":[{"mask-b-to":ke()}],"mask-image-b-from-color":[{"mask-b-from":q()}],"mask-image-b-to-color":[{"mask-b-to":q()}],"mask-image-l-from-pos":[{"mask-l-from":ke()}],"mask-image-l-to-pos":[{"mask-l-to":ke()}],"mask-image-l-from-color":[{"mask-l-from":q()}],"mask-image-l-to-color":[{"mask-l-to":q()}],"mask-image-x-from-pos":[{"mask-x-from":ke()}],"mask-image-x-to-pos":[{"mask-x-to":ke()}],"mask-image-x-from-color":[{"mask-x-from":q()}],"mask-image-x-to-color":[{"mask-x-to":q()}],"mask-image-y-from-pos":[{"mask-y-from":ke()}],"mask-image-y-to-pos":[{"mask-y-to":ke()}],"mask-image-y-from-color":[{"mask-y-from":q()}],"mask-image-y-to-color":[{"mask-y-to":q()}],"mask-image-radial":[{"mask-radial":[Ne,Fe]}],"mask-image-radial-from-pos":[{"mask-radial-from":ke()}],"mask-image-radial-to-pos":[{"mask-radial-to":ke()}],"mask-image-radial-from-color":[{"mask-radial-from":q()}],"mask-image-radial-to-color":[{"mask-radial-to":q()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":N()}],"mask-image-conic-pos":[{"mask-conic":[it]}],"mask-image-conic-from-pos":[{"mask-conic-from":ke()}],"mask-image-conic-to-pos":[{"mask-conic-to":ke()}],"mask-image-conic-from-color":[{"mask-conic-from":q()}],"mask-image-conic-to-color":[{"mask-conic-to":q()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ge()}],"mask-repeat":[{mask:ne()}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Ne,Fe]}],filter:[{filter:["","none",Ne,Fe]}],blur:[{blur:Ae()}],brightness:[{brightness:[it,Ne,Fe]}],contrast:[{contrast:[it,Ne,Fe]}],"drop-shadow":[{"drop-shadow":["","none",S,ku,Eu]}],"drop-shadow-color":[{"drop-shadow":q()}],grayscale:[{grayscale:["",it,Ne,Fe]}],"hue-rotate":[{"hue-rotate":[it,Ne,Fe]}],invert:[{invert:["",it,Ne,Fe]}],saturate:[{saturate:[it,Ne,Fe]}],sepia:[{sepia:["",it,Ne,Fe]}],"backdrop-filter":[{"backdrop-filter":["","none",Ne,Fe]}],"backdrop-blur":[{"backdrop-blur":Ae()}],"backdrop-brightness":[{"backdrop-brightness":[it,Ne,Fe]}],"backdrop-contrast":[{"backdrop-contrast":[it,Ne,Fe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",it,Ne,Fe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[it,Ne,Fe]}],"backdrop-invert":[{"backdrop-invert":["",it,Ne,Fe]}],"backdrop-opacity":[{"backdrop-opacity":[it,Ne,Fe]}],"backdrop-saturate":[{"backdrop-saturate":[it,Ne,Fe]}],"backdrop-sepia":[{"backdrop-sepia":["",it,Ne,Fe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":H()}],"border-spacing-x":[{"border-spacing-x":H()}],"border-spacing-y":[{"border-spacing-y":H()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Ne,Fe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[it,"initial",Ne,Fe]}],ease:[{ease:["linear","initial",P,Ne,Fe]}],delay:[{delay:[it,Ne,Fe]}],animate:[{animate:["none",B,Ne,Fe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[b,Ne,Fe]}],"perspective-origin":[{"perspective-origin":I()}],rotate:[{rotate:qe()}],"rotate-x":[{"rotate-x":qe()}],"rotate-y":[{"rotate-y":qe()}],"rotate-z":[{"rotate-z":qe()}],scale:[{scale:Ye()}],"scale-x":[{"scale-x":Ye()}],"scale-y":[{"scale-y":Ye()}],"scale-z":[{"scale-z":Ye()}],"scale-3d":["scale-3d"],skew:[{skew:Et()}],"skew-x":[{"skew-x":Et()}],"skew-y":[{"skew-y":Et()}],transform:[{transform:[Ne,Fe,"","none","gpu","cpu"]}],"transform-origin":[{origin:I()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ht()}],"translate-x":[{"translate-x":ht()}],"translate-y":[{"translate-y":ht()}],"translate-z":[{"translate-z":ht()}],"translate-none":["translate-none"],accent:[{accent:q()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:q()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Ne,Fe]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":H()}],"scroll-mx":[{"scroll-mx":H()}],"scroll-my":[{"scroll-my":H()}],"scroll-ms":[{"scroll-ms":H()}],"scroll-me":[{"scroll-me":H()}],"scroll-mt":[{"scroll-mt":H()}],"scroll-mr":[{"scroll-mr":H()}],"scroll-mb":[{"scroll-mb":H()}],"scroll-ml":[{"scroll-ml":H()}],"scroll-p":[{"scroll-p":H()}],"scroll-px":[{"scroll-px":H()}],"scroll-py":[{"scroll-py":H()}],"scroll-ps":[{"scroll-ps":H()}],"scroll-pe":[{"scroll-pe":H()}],"scroll-pt":[{"scroll-pt":H()}],"scroll-pr":[{"scroll-pr":H()}],"scroll-pb":[{"scroll-pb":H()}],"scroll-pl":[{"scroll-pl":H()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Ne,Fe]}],fill:[{fill:["none",...q()]}],"stroke-w":[{stroke:[it,Ia,Lo,Bf]}],stroke:[{stroke:["none",...q()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},m_=Qy(p_);function lt(...r){return m_(PA(r))}const Kt=R.forwardRef(({className:r,type:a,...s},l)=>F.jsx("input",{type:a,className:lt("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",r),ref:l,...s}));Kt.displayName="Input";function Dp(r,a){if(typeof r=="function")return r(a);r!=null&&(r.current=a)}function ol(...r){return a=>{let s=!1;const l=r.map(f=>{const d=Dp(f,a);return!s&&typeof d=="function"&&(s=!0),d});if(s)return()=>{for(let f=0;f{let{children:d,...m}=l;VA(d)&&typeof bc=="function"&&(d=bc(d._payload));const h=R.Children.toArray(d),x=h.find(__);if(x){const p=x.props.children,y=h.map(v=>v===x?R.Children.count(p)>1?R.Children.only(null):R.isValidElement(p)?p.props.children:null:v);return F.jsx(a,{...m,ref:f,children:R.isValidElement(p)?R.cloneElement(p,void 0,y):null})}return F.jsx(a,{...m,ref:f,children:d})});return s.displayName=`${r}.Slot`,s}var x_=c0("Slot");function v_(r){const a=R.forwardRef((s,l)=>{let{children:f,...d}=s;if(VA(f)&&typeof bc=="function"&&(f=bc(f._payload)),R.isValidElement(f)){const m=C_(f),h=w_(d,f.props);return f.type!==R.Fragment&&(h.ref=l?ol(l,m):m),R.cloneElement(f,h)}return R.Children.count(f)>1?R.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var y_=Symbol("radix.slottable");function __(r){return R.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===y_}function w_(r,a){const s={...a};for(const l in a){const f=r[l],d=a[l];/^on[A-Z]/.test(l)?f&&d?s[l]=(...h)=>{const x=d(...h);return f(...h),x}:f&&(s[l]=f):l==="style"?s[l]={...f,...d}:l==="className"&&(s[l]=[f,d].filter(Boolean).join(" "))}return{...r,...s}}function C_(r){var l,f;let a=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?r.ref:(a=(f=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:f.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?r.props.ref:r.props.ref||r.ref)}const Rp=r=>typeof r=="boolean"?`${r}`:r===0?"0":r,Fp=PA,Dc=(r,a)=>s=>{var l;if((a==null?void 0:a.variants)==null)return Fp(r,s==null?void 0:s.class,s==null?void 0:s.className);const{variants:f,defaultVariants:d}=a,m=Object.keys(f).map(p=>{const y=s==null?void 0:s[p],v=d==null?void 0:d[p];if(y===null)return null;const w=Rp(y)||Rp(v);return f[p][w]}),h=s&&Object.entries(s).reduce((p,y)=>{let[v,w]=y;return w===void 0||(p[v]=w),p},{}),x=a==null||(l=a.compoundVariants)===null||l===void 0?void 0:l.reduce((p,y)=>{let{class:v,className:w,...S}=y;return Object.entries(S).every(T=>{let[b,E]=T;return Array.isArray(E)?E.includes({...d,...h}[b]):{...d,...h}[b]===E})?[...p,v,w]:p},[]);return Fp(r,m,x,s==null?void 0:s.class,s==null?void 0:s.className)},b_=Dc("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),gr=R.forwardRef(({className:r,variant:a,size:s,asChild:l=!1,...f},d)=>{const m=l?x_:"button";return F.jsx(m,{className:lt(b_({variant:a,size:s,className:r})),ref:d,...f})});gr.displayName="Button";function Np(r){return r>=o0?`${r}+`:`${r}`}function E_(){try{return localStorage.getItem("remoteterm-sortOrder")==="alpha"?"alpha":"recent"}catch{return"recent"}}function k_(r){try{localStorage.setItem("remoteterm-sortOrder",r)}catch{}}function S_({contacts:r,channels:a,activeConversation:s,onSelectConversation:l,onNewMessage:f,lastMessageTimes:d,unreadCounts:m,mentions:h,showCracker:x,crackerRunning:p,onToggleCracker:y,onMarkAllRead:v}){const[w,S]=R.useState(E_),[T,b]=R.useState(""),E=()=>{const V=w==="alpha"?"recent":"alpha";S(V),k_(V)},P=V=>{b(""),l(V)},B=(V,J)=>(s==null?void 0:s.type)===V&&(s==null?void 0:s.id)===J,k=(V,J)=>{const le=Dr(V,J);return m[le]||0},N=(V,J)=>{const le=Dr(V,J);return h[le]||!1},I=(V,J)=>{const le=Dr(V,J);return d[le]||0},z=a.reduce((V,J)=>(V.some(le=>le.name===J.name)||V.push(J),V),[]),j=r.filter(V=>V.public_key&&V.public_key.length>0).sort((V,J)=>V.name&&!J.name?-1:!V.name&&J.name?1:(V.name||"").localeCompare(J.name||"")).reduce((V,J)=>{const le=js(J.public_key);return V.some(se=>js(se.public_key)===le)||V.push(J),V},[]),H=[...z].sort((V,J)=>{if(V.name==="Public")return-1;if(J.name==="Public")return 1;if(w==="recent"){const le=I("channel",V.key),se=I("channel",J.key);if(le&&se)return se-le;if(le&&!se)return-1;if(!le&&se)return 1}return V.name.localeCompare(J.name)}),$=[...j].sort((V,J)=>{const le=V.type===Zf,se=J.type===Zf;if(le&&!se)return 1;if(!le&&se)return-1;if(le&&se)return(V.name||V.public_key).localeCompare(J.name||J.public_key);if(w==="recent"){const de=I("contact",V.public_key),q=I("contact",J.public_key);if(de&&q)return q-de;if(de&&!q)return-1;if(!de&&q)return 1}return(V.name||V.public_key).localeCompare(J.name||J.public_key)}),U=T.toLowerCase().trim(),G=U?H.filter(V=>V.name.toLowerCase().includes(U)):H,re=U?$.filter(V=>{var J;return((J=V.name)==null?void 0:J.toLowerCase().includes(U))||V.public_key.toLowerCase().includes(U)}):$;return F.jsxs("div",{className:"sidebar w-60 h-full min-h-0 bg-card border-r border-border flex flex-col",children:[F.jsxs("div",{className:"flex justify-between items-center px-3 py-3 border-b border-border",children:[F.jsx("h2",{className:"text-xs uppercase text-muted-foreground font-medium",children:"Conversations"}),F.jsx(gr,{variant:"ghost",size:"sm",onClick:f,title:"New Message",className:"h-6 w-6 p-0 text-muted-foreground hover:text-foreground",children:"+"})]}),F.jsxs("div",{className:"relative px-3 py-2 border-b border-border",children:[F.jsx(Kt,{type:"text",placeholder:"Search...",value:T,onChange:V=>b(V.target.value),className:"h-8 text-sm pr-8"}),T&&F.jsx("button",{className:"absolute right-4 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground text-lg leading-none",onClick:()=>b(""),title:"Clear search",children:"×"})]}),F.jsxs("div",{className:"flex-1 overflow-y-auto",children:[!U&&F.jsxs("div",{className:lt("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",B("raw","raw")&&"bg-accent border-l-primary"),onClick:()=>P({type:"raw",id:"raw",name:"Raw Packet Feed"}),children:[F.jsx("span",{className:"text-muted-foreground text-xs",children:"📡"}),F.jsx("span",{className:"flex-1 truncate",children:"Packet Feed"})]}),!U&&F.jsxs("div",{className:lt("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",B("map","map")&&"bg-accent border-l-primary"),onClick:()=>P({type:"map",id:"map",name:"Node Map"}),children:[F.jsx("span",{className:"text-muted-foreground text-xs",children:"🗺️"}),F.jsx("span",{className:"flex-1 truncate",children:"Node Map"})]}),!U&&F.jsxs("div",{className:lt("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",x&&"bg-accent border-l-primary"),onClick:y,children:[F.jsx("span",{className:"text-muted-foreground text-xs",children:"🔓"}),F.jsxs("span",{className:"flex-1 truncate",children:[x?"Hide":"Show"," Cracker",F.jsxs("span",{className:lt("ml-1 text-xs",p?"text-green-500":"text-muted-foreground"),children:["(",p?"running":"stopped",")"]})]})]}),!U&&Object.keys(m).length>0&&F.jsxs("div",{className:"px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",onClick:v,children:[F.jsx("span",{className:"text-muted-foreground text-xs",children:"✓"}),F.jsx("span",{className:"flex-1 truncate text-muted-foreground",children:"Mark all as read"})]}),G.length>0&&F.jsxs(F.Fragment,{children:[F.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[F.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Channels"}),F.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:E,title:w==="alpha"?"Sort by recent":"Sort alphabetically",children:w==="alpha"?"A-Z":"⏱"})]}),G.map(V=>{const J=k("channel",V.key),le=N("channel",V.key);return F.jsxs("div",{className:lt("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",B("channel",V.key)&&"bg-accent border-l-primary",J>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>P({type:"channel",id:V.key,name:V.name}),children:[F.jsx("span",{className:"text-muted-foreground text-xs",children:"#"}),F.jsx("span",{className:"name flex-1 truncate",children:V.name}),J>0&&F.jsx("span",{className:lt("text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",le?"bg-destructive text-destructive-foreground":"bg-primary text-primary-foreground"),children:Np(J)})]},`chan-${V.key}`)})]}),re.length>0&&F.jsxs(F.Fragment,{children:[F.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[F.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Contacts"}),G.length===0&&F.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:E,title:w==="alpha"?"Sort by recent":"Sort alphabetically",children:w==="alpha"?"A-Z":"⏱"})]}),re.map(V=>{const J=k("contact",V.public_key),le=N("contact",V.public_key);return F.jsxs("div",{className:lt("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",B("contact",V.public_key)&&"bg-accent border-l-primary",J>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>P({type:"contact",id:V.public_key,name:Vo(V.name,V.public_key)}),children:[F.jsx(SA,{name:V.name,publicKey:V.public_key,size:24,contactType:V.type}),F.jsx("span",{className:"name flex-1 truncate",children:Vo(V.name,V.public_key)}),J>0&&F.jsx("span",{className:lt("text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",le?"bg-destructive text-destructive-foreground":"bg-primary text-primary-foreground"),children:Np(J)})]},V.public_key)})]}),re.length===0&&G.length===0&&F.jsx("div",{className:"p-5 text-center text-muted-foreground",children:U?"No matches found":"No conversations yet"})]})]})}function Lp(r){const a=r.indexOf(": ");if(a>0&&a<50){const s=r.substring(0,a);if(!s.includes(":"))return{sender:s,content:r.substring(a+2)}}return{sender:null,content:r}}function Ec(r){const a=new Date(r*1e3),s=new Date,l=a.toDateString()===s.toDateString(),f=a.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return l?f:`${a.toLocaleDateString([],{month:"short",day:"numeric"})} ${f}`}function B_(r,a){if(!a)return r;const s=/@\[([^\]]+)\]/g,l=[];let f=0,d,m=0;for(;(d=s.exec(r))!==null;){d.index>f&&l.push(r.slice(f,d.index));const h=d[1],x=h===a;l.push(F.jsxs("span",{className:lt("rounded px-0.5",x?"bg-primary/30 text-primary font-medium":"bg-muted-foreground/20"),children:["@[",h,"]"]},m++)),f=d.index+d[0].length}return f0?l:r}function P_({messages:r,contacts:a,loading:s,loadingOlder:l=!1,hasOlderMessages:f=!1,onSenderClick:d,onLoadOlder:m,radioName:h}){const x=R.useRef(null),p=R.useRef(0),y=R.useRef(!0),[v,w]=R.useState(!1),S=R.useRef({scrollTop:0,scrollHeight:0,clientHeight:0,wasNearTop:!1,wasNearBottom:!0});R.useLayoutEffect(()=>{if(!x.current)return;const N=x.current,I=r.length-p.current;if(y.current&&r.length>0)N.scrollTop=N.scrollHeight,y.current=!1;else if(I>0&&p.current>0){const z=N.scrollHeight-S.current.scrollHeight;S.current.wasNearTop&&z>0?N.scrollTop=S.current.scrollTop+z:S.current.wasNearBottom&&(N.scrollTop=N.scrollHeight)}p.current=r.length},[r]),R.useEffect(()=>{r.length===0&&(y.current=!0,p.current=0,S.current={scrollTop:0,scrollHeight:0,clientHeight:0,wasNearTop:!1,wasNearBottom:!0})},[r.length]);const T=R.useCallback(()=>{if(!x.current)return;const{scrollTop:N,scrollHeight:I,clientHeight:z}=x.current,j=I-N-z;S.current={scrollTop:N,scrollHeight:I,clientHeight:z,wasNearTop:N<150,wasNearBottom:j<100},w(j>100),!(!m||l||!f)&&N<100&&m()},[m,l,f]),b=R.useCallback(()=>{x.current&&(x.current.scrollTop=x.current.scrollHeight)},[]),E=N=>N&&a.find(I=>wA(I.public_key,N))||null,P=N=>a.find(I=>I.name===N)||null;if(s)return F.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"Loading messages..."});if(r.length===0)return F.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"No messages yet"});const B=[...r].sort((N,I)=>N.received_at-I.received_at),k=(N,I)=>N.outgoing?"__outgoing__":N.type==="PRIV"&&N.conversation_key?N.conversation_key:I||"__unknown__";return F.jsxs("div",{className:"flex-1 overflow-hidden relative",children:[F.jsxs("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-0.5",ref:x,onScroll:T,children:[l&&F.jsx("div",{className:"text-center py-2 text-muted-foreground text-sm",children:"Loading older messages..."}),!l&&f&&F.jsx("div",{className:"text-center py-2 text-muted-foreground text-xs",children:"Scroll up for older messages"}),B.map((N,I)=>{var ge;const z=N.type==="PRIV"?E(N.conversation_key):null,j=(z==null?void 0:z.type)===s0,{sender:H,content:$}=j?{sender:null,content:N.text}:Lp(N.text),U=N.outgoing?"You":(z==null?void 0:z.name)||H||((ge=N.conversation_key)==null?void 0:ge.slice(0,8))||"Unknown",G=!N.outgoing&&d&&U!=="Unknown",re=k(N,H),V=B[I-1],J=V?k(V,Lp(V.text).sender):null,le=!N.outgoing&&re!==J,se=I===0;let de=null,q="";if(!N.outgoing){if(N.type==="PRIV"&&N.conversation_key)de=(z==null?void 0:z.name)||null,q=N.conversation_key;else if(H){const ne=P(H);de=H,q=(ne==null?void 0:ne.public_key)||`name:${H}`}}return F.jsxs("div",{className:lt("flex items-start max-w-[85%]",N.outgoing&&"flex-row-reverse self-end",le&&!se&&"mt-3"),children:[!N.outgoing&&F.jsx("div",{className:"w-10 flex-shrink-0 flex items-start pt-0.5",children:le&&q&&F.jsx(SA,{name:de,publicKey:q,size:32})}),F.jsxs("div",{className:lt("py-1.5 px-3 rounded-lg min-w-0",N.outgoing?"bg-[#1e3a29]":"bg-muted"),children:[le&&F.jsxs("div",{className:"text-[13px] font-semibold text-muted-foreground mb-0.5",children:[G?F.jsx("span",{className:"cursor-pointer hover:text-primary hover:underline",onClick:()=>d(U),title:`Mention ${U}`,children:U}):U,F.jsx("span",{className:"font-normal text-muted-foreground/70 ml-2 text-[11px]",children:Ec(N.sender_timestamp||N.received_at)})]}),F.jsxs("div",{className:"break-words whitespace-pre-wrap",children:[$.split(` +`).map((ne,D,Z)=>F.jsxs("span",{children:[B_(ne,h),D0?` ✓${N.acked>1?N.acked:""}`:" ?")]})]})]},N.id)})]}),v&&F.jsx("button",{onClick:b,className:"absolute bottom-4 right-4 w-10 h-10 rounded-full bg-muted hover:bg-accent border border-border flex items-center justify-center shadow-lg transition-opacity",title:"Scroll to bottom",children:F.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-muted-foreground",children:F.jsx("polyline",{points:"6 9 12 15 18 9"})})})]})}const Mp=156,T_=140,D_=156,R_=120,F_=8,N_=R.forwardRef(function({onSend:a,disabled:s,placeholder:l,isRepeaterMode:f,conversationType:d,senderName:m},h){const[x,p]=R.useState(""),[y,v]=R.useState(!1),w=R.useRef(null);R.useImperativeHandle(h,()=>({appendText:I=>{var z;p(j=>j+I),(z=w.current)==null||z.focus()}}));const S=R.useMemo(()=>{if(d==="contact")return{warningAt:T_,dangerAt:Mp,hardLimit:Mp};if(d==="channel"){const I=(m==null?void 0:m.length)??10,z=Math.max(1,D_-I-2);return{warningAt:R_,dangerAt:Math.max(1,z-F_),hardLimit:z}}return null},[d,m]),{limitState:T,warningMessage:b}=R.useMemo(()=>{if(!S)return{limitState:"normal",warningMessage:null};const I=x.length;return I>=S.hardLimit?{limitState:"error",warningMessage:"likely truncated by radio"}:I>=S.dangerAt?{limitState:"danger",warningMessage:"may impact multi-repeater hop delivery"}:I>=S.warningAt?{limitState:"warning",warningMessage:"may impact multi-repeater hop delivery"}:{limitState:"normal",warningMessage:null}},[x.length,S]),E=S?S.hardLimit-x.length:0,P=R.useCallback(async I=>{I.preventDefault();const z=x.trim();if(f){if(y||s)return;v(!0);try{await a(z),p("")}catch(j){console.error("Failed to request telemetry:",j),Lt.error("Failed to request telemetry",{description:j instanceof Error?j.message:"Check radio connection"});return}finally{v(!1)}setTimeout(()=>{var j;return(j=w.current)==null?void 0:j.focus()},0)}else{if(!z||y||s)return;v(!0);try{await a(z),p("")}catch(j){console.error("Failed to send message:",j),Lt.error("Failed to send message",{description:j instanceof Error?j.message:"Check radio connection"});return}finally{v(!1)}setTimeout(()=>{var j;return(j=w.current)==null?void 0:j.focus()},0)}},[x,y,s,a,f]),B=R.useCallback(I=>{I.key==="Enter"&&!I.shiftKey&&(I.preventDefault(),P(I))},[P]),k=f?!0:x.trim().length>0,N=!f&&S!==null;return F.jsxs("form",{className:"px-4 py-3 border-t border-border flex flex-col gap-1",onSubmit:P,children:[F.jsxs("div",{className:"flex gap-2",children:[F.jsx(Kt,{ref:w,type:f?"password":"text",autoComplete:f?"off":void 0,value:x,onChange:I=>p(I.target.value),onKeyDown:B,placeholder:l||(f?"Enter password for admin login...":"Type a message..."),disabled:s||y,className:"flex-1 min-w-0"}),F.jsx(gr,{type:"submit",disabled:s||y||!k,className:"flex-shrink-0",children:y?f?"Logging in...":"Sending...":f?x.trim()?"Log in with password":"Log in as guest/use repeater ACLs":"Send"})]}),N&&F.jsxs("div",{className:"flex items-center justify-end gap-2 text-xs",children:[F.jsxs("span",{className:lt("tabular-nums",T==="error"||T==="danger"?"text-red-500 font-medium":T==="warning"?"text-yellow-500":"text-muted-foreground"),children:[x.length,"/",S.hardLimit,E<0&&` (${E})`]}),b&&F.jsxs("span",{className:lt(T==="error"?"text-red-500":"text-yellow-500"),children:["— ",b]})]})]})});function sn(r,a,{checkForDefaultPrevented:s=!0}={}){return function(f){if(r==null||r(f),s===!1||!f.defaultPrevented)return a==null?void 0:a(f)}}function L_(r,a){const s=R.createContext(a),l=d=>{const{children:m,...h}=d,x=R.useMemo(()=>h,Object.values(h));return F.jsx(s.Provider,{value:x,children:m})};l.displayName=r+"Provider";function f(d){const m=R.useContext(s);if(m)return m;if(a!==void 0)return a;throw new Error(`\`${d}\` must be used within \`${r}\``)}return[l,f]}function sl(r,a=[]){let s=[];function l(d,m){const h=R.createContext(m),x=s.length;s=[...s,m];const p=v=>{var P;const{scope:w,children:S,...T}=v,b=((P=w==null?void 0:w[r])==null?void 0:P[x])||h,E=R.useMemo(()=>T,Object.values(T));return F.jsx(b.Provider,{value:E,children:S})};p.displayName=d+"Provider";function y(v,w){var b;const S=((b=w==null?void 0:w[r])==null?void 0:b[x])||h,T=R.useContext(S);if(T)return T;if(m!==void 0)return m;throw new Error(`\`${v}\` must be used within \`${d}\``)}return[p,y]}const f=()=>{const d=s.map(m=>R.createContext(m));return function(h){const x=(h==null?void 0:h[r])||d;return R.useMemo(()=>({[`__scope${r}`]:{...h,[r]:x}}),[h,x])}};return f.scopeName=r,[l,M_(f,...a)]}function M_(...r){const a=r[0];if(r.length===1)return a;const s=()=>{const l=r.map(f=>({useScope:f(),scopeName:f.scopeName}));return function(d){const m=l.reduce((h,{useScope:x,scopeName:p})=>{const v=x(d)[`__scope${p}`];return{...h,...v}},{});return R.useMemo(()=>({[`__scope${a.scopeName}`]:m}),[m])}};return s.scopeName=a.scopeName,s}var Hs=globalThis!=null&&globalThis.document?R.useLayoutEffect:()=>{},I_=i0[" useId ".trim().toString()]||(()=>{}),O_=0;function tl(r){const[a,s]=R.useState(I_());return Hs(()=>{s(l=>l??String(O_++))},[r]),a?`radix-${a}`:""}var z_=i0[" useInsertionEffect ".trim().toString()]||Hs;function Rc({prop:r,defaultProp:a,onChange:s=()=>{},caller:l}){const[f,d,m]=j_({defaultProp:a,onChange:s}),h=r!==void 0,x=h?r:f;{const y=R.useRef(r!==void 0);R.useEffect(()=>{const v=y.current;v!==h&&console.warn(`${l} is changing from ${v?"controlled":"uncontrolled"} to ${h?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),y.current=h},[h,l])}const p=R.useCallback(y=>{var v;if(h){const w=H_(y)?y(r):y;w!==r&&((v=m.current)==null||v.call(m,w))}else d(y)},[h,r,d,m]);return[x,p]}function j_({defaultProp:r,onChange:a}){const[s,l]=R.useState(r),f=R.useRef(s),d=R.useRef(a);return z_(()=>{d.current=a},[a]),R.useEffect(()=>{var m;f.current!==s&&((m=d.current)==null||m.call(d,s),f.current=s)},[s,f]),[s,l,d]}function H_(r){return typeof r=="function"}function V_(r){const a=U_(r),s=R.forwardRef((l,f)=>{const{children:d,...m}=l,h=R.Children.toArray(d),x=h.find(W_);if(x){const p=x.props.children,y=h.map(v=>v===x?R.Children.count(p)>1?R.Children.only(null):R.isValidElement(p)?p.props.children:null:v);return F.jsx(a,{...m,ref:f,children:R.isValidElement(p)?R.cloneElement(p,void 0,y):null})}return F.jsx(a,{...m,ref:f,children:d})});return s.displayName=`${r}.Slot`,s}function U_(r){const a=R.forwardRef((s,l)=>{const{children:f,...d}=s;if(R.isValidElement(f)){const m=G_(f),h=q_(d,f.props);return f.type!==R.Fragment&&(h.ref=l?ol(l,m):m),R.cloneElement(f,h)}return R.Children.count(f)>1?R.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var Z_=Symbol("radix.slottable");function W_(r){return R.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===Z_}function q_(r,a){const s={...a};for(const l in a){const f=r[l],d=a[l];/^on[A-Z]/.test(l)?f&&d?s[l]=(...h)=>{const x=d(...h);return f(...h),x}:f&&(s[l]=f):l==="style"?s[l]={...f,...d}:l==="className"&&(s[l]=[f,d].filter(Boolean).join(" "))}return{...r,...s}}function G_(r){var l,f;let a=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?r.ref:(a=(f=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:f.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?r.props.ref:r.props.ref||r.ref)}var Q_=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],cn=Q_.reduce((r,a)=>{const s=V_(`Primitive.${a}`),l=R.forwardRef((f,d)=>{const{asChild:m,...h}=f,x=m?s:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),F.jsx(x,{...h,ref:d})});return l.displayName=`Primitive.${a}`,{...r,[a]:l}},{});function K_(r,a){r&&a0.flushSync(()=>r.dispatchEvent(a))}function Vs(r){const a=R.useRef(r);return R.useEffect(()=>{a.current=r}),R.useMemo(()=>(...s)=>{var l;return(l=a.current)==null?void 0:l.call(a,...s)},[])}function $_(r,a=globalThis==null?void 0:globalThis.document){const s=Vs(r);R.useEffect(()=>{const l=f=>{f.key==="Escape"&&s(f)};return a.addEventListener("keydown",l,{capture:!0}),()=>a.removeEventListener("keydown",l,{capture:!0})},[s,a])}var Y_="DismissableLayer",qf="dismissableLayer.update",X_="dismissableLayer.pointerDownOutside",J_="dismissableLayer.focusOutside",Ip,UA=R.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ZA=R.forwardRef((r,a)=>{const{disableOutsidePointerEvents:s=!1,onEscapeKeyDown:l,onPointerDownOutside:f,onFocusOutside:d,onInteractOutside:m,onDismiss:h,...x}=r,p=R.useContext(UA),[y,v]=R.useState(null),w=(y==null?void 0:y.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,S]=R.useState({}),T=xr(a,j=>v(j)),b=Array.from(p.layers),[E]=[...p.layersWithOutsidePointerEventsDisabled].slice(-1),P=b.indexOf(E),B=y?b.indexOf(y):-1,k=p.layersWithOutsidePointerEventsDisabled.size>0,N=B>=P,I=n1(j=>{const H=j.target,$=[...p.branches].some(U=>U.contains(H));!N||$||(f==null||f(j),m==null||m(j),j.defaultPrevented||h==null||h())},w),z=r1(j=>{const H=j.target;[...p.branches].some(U=>U.contains(H))||(d==null||d(j),m==null||m(j),j.defaultPrevented||h==null||h())},w);return $_(j=>{B===p.layers.size-1&&(l==null||l(j),!j.defaultPrevented&&h&&(j.preventDefault(),h()))},w),R.useEffect(()=>{if(y)return s&&(p.layersWithOutsidePointerEventsDisabled.size===0&&(Ip=w.body.style.pointerEvents,w.body.style.pointerEvents="none"),p.layersWithOutsidePointerEventsDisabled.add(y)),p.layers.add(y),Op(),()=>{s&&p.layersWithOutsidePointerEventsDisabled.size===1&&(w.body.style.pointerEvents=Ip)}},[y,w,s,p]),R.useEffect(()=>()=>{y&&(p.layers.delete(y),p.layersWithOutsidePointerEventsDisabled.delete(y),Op())},[y,p]),R.useEffect(()=>{const j=()=>S({});return document.addEventListener(qf,j),()=>document.removeEventListener(qf,j)},[]),F.jsx(cn.div,{...x,ref:T,style:{pointerEvents:k?N?"auto":"none":void 0,...r.style},onFocusCapture:sn(r.onFocusCapture,z.onFocusCapture),onBlurCapture:sn(r.onBlurCapture,z.onBlurCapture),onPointerDownCapture:sn(r.onPointerDownCapture,I.onPointerDownCapture)})});ZA.displayName=Y_;var e1="DismissableLayerBranch",t1=R.forwardRef((r,a)=>{const s=R.useContext(UA),l=R.useRef(null),f=xr(a,l);return R.useEffect(()=>{const d=l.current;if(d)return s.branches.add(d),()=>{s.branches.delete(d)}},[s.branches]),F.jsx(cn.div,{...r,ref:f})});t1.displayName=e1;function n1(r,a=globalThis==null?void 0:globalThis.document){const s=Vs(r),l=R.useRef(!1),f=R.useRef(()=>{});return R.useEffect(()=>{const d=h=>{if(h.target&&!l.current){let x=function(){WA(X_,s,p,{discrete:!0})};const p={originalEvent:h};h.pointerType==="touch"?(a.removeEventListener("click",f.current),f.current=x,a.addEventListener("click",f.current,{once:!0})):x()}else a.removeEventListener("click",f.current);l.current=!1},m=window.setTimeout(()=>{a.addEventListener("pointerdown",d)},0);return()=>{window.clearTimeout(m),a.removeEventListener("pointerdown",d),a.removeEventListener("click",f.current)}},[a,s]),{onPointerDownCapture:()=>l.current=!0}}function r1(r,a=globalThis==null?void 0:globalThis.document){const s=Vs(r),l=R.useRef(!1);return R.useEffect(()=>{const f=d=>{d.target&&!l.current&&WA(J_,s,{originalEvent:d},{discrete:!1})};return a.addEventListener("focusin",f),()=>a.removeEventListener("focusin",f)},[a,s]),{onFocusCapture:()=>l.current=!0,onBlurCapture:()=>l.current=!1}}function Op(){const r=new CustomEvent(qf);document.dispatchEvent(r)}function WA(r,a,s,{discrete:l}){const f=s.originalEvent.target,d=new CustomEvent(r,{bubbles:!1,cancelable:!0,detail:s});a&&f.addEventListener(r,a,{once:!0}),l?K_(f,d):f.dispatchEvent(d)}var Pf="focusScope.autoFocusOnMount",Tf="focusScope.autoFocusOnUnmount",zp={bubbles:!1,cancelable:!0},i1="FocusScope",qA=R.forwardRef((r,a)=>{const{loop:s=!1,trapped:l=!1,onMountAutoFocus:f,onUnmountAutoFocus:d,...m}=r,[h,x]=R.useState(null),p=Vs(f),y=Vs(d),v=R.useRef(null),w=xr(a,b=>x(b)),S=R.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;R.useEffect(()=>{if(l){let b=function(k){if(S.paused||!h)return;const N=k.target;h.contains(N)?v.current=N:ro(v.current,{select:!0})},E=function(k){if(S.paused||!h)return;const N=k.relatedTarget;N!==null&&(h.contains(N)||ro(v.current,{select:!0}))},P=function(k){if(document.activeElement===document.body)for(const I of k)I.removedNodes.length>0&&ro(h)};document.addEventListener("focusin",b),document.addEventListener("focusout",E);const B=new MutationObserver(P);return h&&B.observe(h,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",b),document.removeEventListener("focusout",E),B.disconnect()}}},[l,h,S.paused]),R.useEffect(()=>{if(h){Hp.add(S);const b=document.activeElement;if(!h.contains(b)){const P=new CustomEvent(Pf,zp);h.addEventListener(Pf,p),h.dispatchEvent(P),P.defaultPrevented||(o1(c1(GA(h)),{select:!0}),document.activeElement===b&&ro(h))}return()=>{h.removeEventListener(Pf,p),setTimeout(()=>{const P=new CustomEvent(Tf,zp);h.addEventListener(Tf,y),h.dispatchEvent(P),P.defaultPrevented||ro(b??document.body,{select:!0}),h.removeEventListener(Tf,y),Hp.remove(S)},0)}}},[h,p,y,S]);const T=R.useCallback(b=>{if(!s&&!l||S.paused)return;const E=b.key==="Tab"&&!b.altKey&&!b.ctrlKey&&!b.metaKey,P=document.activeElement;if(E&&P){const B=b.currentTarget,[k,N]=s1(B);k&&N?!b.shiftKey&&P===N?(b.preventDefault(),s&&ro(k,{select:!0})):b.shiftKey&&P===k&&(b.preventDefault(),s&&ro(N,{select:!0})):P===B&&b.preventDefault()}},[s,l,S.paused]);return F.jsx(cn.div,{tabIndex:-1,...m,ref:w,onKeyDown:T})});qA.displayName=i1;function o1(r,{select:a=!1}={}){const s=document.activeElement;for(const l of r)if(ro(l,{select:a}),document.activeElement!==s)return}function s1(r){const a=GA(r),s=jp(a,r),l=jp(a.reverse(),r);return[s,l]}function GA(r){const a=[],s=document.createTreeWalker(r,NodeFilter.SHOW_ELEMENT,{acceptNode:l=>{const f=l.tagName==="INPUT"&&l.type==="hidden";return l.disabled||l.hidden||f?NodeFilter.FILTER_SKIP:l.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;s.nextNode();)a.push(s.currentNode);return a}function jp(r,a){for(const s of r)if(!a1(s,{upTo:a}))return s}function a1(r,{upTo:a}){if(getComputedStyle(r).visibility==="hidden")return!0;for(;r;){if(a!==void 0&&r===a)return!1;if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}function l1(r){return r instanceof HTMLInputElement&&"select"in r}function ro(r,{select:a=!1}={}){if(r&&r.focus){const s=document.activeElement;r.focus({preventScroll:!0}),r!==s&&l1(r)&&a&&r.select()}}var Hp=u1();function u1(){let r=[];return{add(a){const s=r[0];a!==s&&(s==null||s.pause()),r=Vp(r,a),r.unshift(a)},remove(a){var s;r=Vp(r,a),(s=r[0])==null||s.resume()}}}function Vp(r,a){const s=[...r],l=s.indexOf(a);return l!==-1&&s.splice(l,1),s}function c1(r){return r.filter(a=>a.tagName!=="A")}var d1="Portal",QA=R.forwardRef((r,a)=>{var h;const{container:s,...l}=r,[f,d]=R.useState(!1);Hs(()=>d(!0),[]);const m=s||f&&((h=globalThis==null?void 0:globalThis.document)==null?void 0:h.body);return m?bA.createPortal(F.jsx(cn.div,{...l,ref:a}),m):null});QA.displayName=d1;function f1(r,a){return R.useReducer((s,l)=>a[s][l]??s,r)}var qs=r=>{const{present:a,children:s}=r,l=h1(a),f=typeof s=="function"?s({present:l.isPresent}):R.Children.only(s),d=xr(l.ref,p1(f));return typeof s=="function"||l.isPresent?R.cloneElement(f,{ref:d}):null};qs.displayName="Presence";function h1(r){const[a,s]=R.useState(),l=R.useRef(null),f=R.useRef(r),d=R.useRef("none"),m=r?"mounted":"unmounted",[h,x]=f1(m,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return R.useEffect(()=>{const p=Su(l.current);d.current=h==="mounted"?p:"none"},[h]),Hs(()=>{const p=l.current,y=f.current;if(y!==r){const w=d.current,S=Su(p);r?x("MOUNT"):S==="none"||(p==null?void 0:p.display)==="none"?x("UNMOUNT"):x(y&&w!==S?"ANIMATION_OUT":"UNMOUNT"),f.current=r}},[r,x]),Hs(()=>{if(a){let p;const y=a.ownerDocument.defaultView??window,v=S=>{const b=Su(l.current).includes(CSS.escape(S.animationName));if(S.target===a&&b&&(x("ANIMATION_END"),!f.current)){const E=a.style.animationFillMode;a.style.animationFillMode="forwards",p=y.setTimeout(()=>{a.style.animationFillMode==="forwards"&&(a.style.animationFillMode=E)})}},w=S=>{S.target===a&&(d.current=Su(l.current))};return a.addEventListener("animationstart",w),a.addEventListener("animationcancel",v),a.addEventListener("animationend",v),()=>{y.clearTimeout(p),a.removeEventListener("animationstart",w),a.removeEventListener("animationcancel",v),a.removeEventListener("animationend",v)}}else x("ANIMATION_END")},[a,x]),{isPresent:["mounted","unmountSuspended"].includes(h),ref:R.useCallback(p=>{l.current=p?getComputedStyle(p):null,s(p)},[])}}function Su(r){return(r==null?void 0:r.animationName)||"none"}function p1(r){var l,f;let a=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?r.ref:(a=(f=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:f.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?r.props.ref:r.props.ref||r.ref)}var Df=0;function m1(){R.useEffect(()=>{const r=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",r[0]??Up()),document.body.insertAdjacentElement("beforeend",r[1]??Up()),Df++,()=>{Df===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),Df--}},[])}function Up(){const r=document.createElement("span");return r.setAttribute("data-radix-focus-guard",""),r.tabIndex=0,r.style.outline="none",r.style.opacity="0",r.style.position="fixed",r.style.pointerEvents="none",r}var Kr=function(){return Kr=Object.assign||function(a){for(var s,l=1,f=arguments.length;l"u")return R1;var a=F1(r),s=document.documentElement.clientWidth,l=window.innerWidth;return{left:a[0],top:a[1],right:a[2],gap:Math.max(0,l-s+a[2]-a[0])}},L1=XA(),Os="data-scroll-locked",M1=function(r,a,s,l){var f=r.left,d=r.top,m=r.right,h=r.gap;return s===void 0&&(s="margin"),` + .`.concat(g1,` { overflow: hidden `).concat(l,`; padding-right: `).concat(h,"px ").concat(l,`; } @@ -113,19 +113,19 @@ No ACL entries`;const a=[`ACL (${r.length})`];for(const s of r){const l=s.name|| } body[`).concat(Os,`] { - `).concat(A1,": ").concat(h,`px; + `).concat(x1,": ").concat(h,`px; } -`)},Up=function(){var r=parseInt(document.body.getAttribute(Os)||"0",10);return isFinite(r)?r:0},L1=function(){R.useEffect(function(){return document.body.setAttribute(Os,(Up()+1).toString()),function(){var r=Up()-1;r<=0?document.body.removeAttribute(Os):document.body.setAttribute(Os,r.toString())}},[])},M1=function(r){var a=r.noRelative,s=r.noImportant,l=r.gapMode,f=l===void 0?"margin":l;L1();var d=R.useMemo(function(){return R1(f)},[f]);return R.createElement(F1,{styles:N1(d,!a,f,s?"":"!important")})},Gf=!1;if(typeof window<"u")try{var Bu=Object.defineProperty({},"passive",{get:function(){return Gf=!0,!0}});window.addEventListener("test",Bu,Bu),window.removeEventListener("test",Bu,Bu)}catch{Gf=!1}var Ns=Gf?{passive:!1}:!1,I1=function(r){return r.tagName==="TEXTAREA"},YA=function(r,a){if(!(r instanceof Element))return!1;var s=window.getComputedStyle(r);return s[a]!=="hidden"&&!(s.overflowY===s.overflowX&&!I1(r)&&s[a]==="visible")},O1=function(r){return YA(r,"overflowY")},z1=function(r){return YA(r,"overflowX")},Zp=function(r,a){var s=a.ownerDocument,l=a;do{typeof ShadowRoot<"u"&&l instanceof ShadowRoot&&(l=l.host);var f=XA(r,l);if(f){var d=JA(r,l),m=d[1],h=d[2];if(m>h)return!0}l=l.parentNode}while(l&&l!==s.body);return!1},j1=function(r){var a=r.scrollTop,s=r.scrollHeight,l=r.clientHeight;return[a,s,l]},H1=function(r){var a=r.scrollLeft,s=r.scrollWidth,l=r.clientWidth;return[a,s,l]},XA=function(r,a){return r==="v"?O1(a):z1(a)},JA=function(r,a){return r==="v"?j1(a):H1(a)},V1=function(r,a){return r==="h"&&a==="rtl"?-1:1},U1=function(r,a,s,l,f){var d=V1(r,window.getComputedStyle(a).direction),m=d*l,h=s.target,x=a.contains(h),p=!1,y=m>0,v=0,w=0;do{if(!h)break;var S=JA(r,h),T=S[0],C=S[1],E=S[2],P=C-E-d*T;(T||P)&&XA(r,h)&&(v+=P,w+=T);var B=h.parentNode;h=B&&B.nodeType===Node.DOCUMENT_FRAGMENT_NODE?B.host:B}while(!x&&h!==document.body||x&&(a.contains(h)||a===h));return(y&&Math.abs(v)<1||!y&&Math.abs(w)<1)&&(p=!0),p},Pu=function(r){return"changedTouches"in r?[r.changedTouches[0].clientX,r.changedTouches[0].clientY]:[0,0]},Wp=function(r){return[r.deltaX,r.deltaY]},qp=function(r){return r&&"current"in r?r.current:r},Z1=function(r,a){return r[0]===a[0]&&r[1]===a[1]},W1=function(r){return` +`)},Wp=function(){var r=parseInt(document.body.getAttribute(Os)||"0",10);return isFinite(r)?r:0},I1=function(){R.useEffect(function(){return document.body.setAttribute(Os,(Wp()+1).toString()),function(){var r=Wp()-1;r<=0?document.body.removeAttribute(Os):document.body.setAttribute(Os,r.toString())}},[])},O1=function(r){var a=r.noRelative,s=r.noImportant,l=r.gapMode,f=l===void 0?"margin":l;I1();var d=R.useMemo(function(){return N1(f)},[f]);return R.createElement(L1,{styles:M1(d,!a,f,s?"":"!important")})},Gf=!1;if(typeof window<"u")try{var Bu=Object.defineProperty({},"passive",{get:function(){return Gf=!0,!0}});window.addEventListener("test",Bu,Bu),window.removeEventListener("test",Bu,Bu)}catch{Gf=!1}var Ns=Gf?{passive:!1}:!1,z1=function(r){return r.tagName==="TEXTAREA"},JA=function(r,a){if(!(r instanceof Element))return!1;var s=window.getComputedStyle(r);return s[a]!=="hidden"&&!(s.overflowY===s.overflowX&&!z1(r)&&s[a]==="visible")},j1=function(r){return JA(r,"overflowY")},H1=function(r){return JA(r,"overflowX")},qp=function(r,a){var s=a.ownerDocument,l=a;do{typeof ShadowRoot<"u"&&l instanceof ShadowRoot&&(l=l.host);var f=eg(r,l);if(f){var d=tg(r,l),m=d[1],h=d[2];if(m>h)return!0}l=l.parentNode}while(l&&l!==s.body);return!1},V1=function(r){var a=r.scrollTop,s=r.scrollHeight,l=r.clientHeight;return[a,s,l]},U1=function(r){var a=r.scrollLeft,s=r.scrollWidth,l=r.clientWidth;return[a,s,l]},eg=function(r,a){return r==="v"?j1(a):H1(a)},tg=function(r,a){return r==="v"?V1(a):U1(a)},Z1=function(r,a){return r==="h"&&a==="rtl"?-1:1},W1=function(r,a,s,l,f){var d=Z1(r,window.getComputedStyle(a).direction),m=d*l,h=s.target,x=a.contains(h),p=!1,y=m>0,v=0,w=0;do{if(!h)break;var S=tg(r,h),T=S[0],b=S[1],E=S[2],P=b-E-d*T;(T||P)&&eg(r,h)&&(v+=P,w+=T);var B=h.parentNode;h=B&&B.nodeType===Node.DOCUMENT_FRAGMENT_NODE?B.host:B}while(!x&&h!==document.body||x&&(a.contains(h)||a===h));return(y&&Math.abs(v)<1||!y&&Math.abs(w)<1)&&(p=!0),p},Pu=function(r){return"changedTouches"in r?[r.changedTouches[0].clientX,r.changedTouches[0].clientY]:[0,0]},Gp=function(r){return[r.deltaX,r.deltaY]},Qp=function(r){return r&&"current"in r?r.current:r},q1=function(r,a){return r[0]===a[0]&&r[1]===a[1]},G1=function(r){return` .block-interactivity-`.concat(r,` {pointer-events: none;} .allow-interactivity-`).concat(r,` {pointer-events: all;} -`)},q1=0,Ls=[];function G1(r){var a=R.useRef([]),s=R.useRef([0,0]),l=R.useRef(),f=R.useState(q1++)[0],d=R.useState($A)[0],m=R.useRef(r);R.useEffect(function(){m.current=r},[r]),R.useEffect(function(){if(r.inert){document.body.classList.add("block-interactivity-".concat(f));var C=p1([r.lockRef.current],(r.shards||[]).map(qp),!0).filter(Boolean);return C.forEach(function(E){return E.classList.add("allow-interactivity-".concat(f))}),function(){document.body.classList.remove("block-interactivity-".concat(f)),C.forEach(function(E){return E.classList.remove("allow-interactivity-".concat(f))})}}},[r.inert,r.lockRef.current,r.shards]);var h=R.useCallback(function(C,E){if("touches"in C&&C.touches.length===2||C.type==="wheel"&&C.ctrlKey)return!m.current.allowPinchZoom;var P=Pu(C),B=s.current,k="deltaX"in C?C.deltaX:B[0]-P[0],N="deltaY"in C?C.deltaY:B[1]-P[1],I,z=C.target,j=Math.abs(k)>Math.abs(N)?"h":"v";if("touches"in C&&j==="h"&&z.type==="range")return!1;var H=window.getSelection(),$=H&&H.anchorNode,U=$?$===z||$.contains(z):!1;if(U)return!1;var G=Zp(j,z);if(!G)return!0;if(G?I=j:(I=j==="v"?"h":"v",G=Zp(j,z)),!G)return!1;if(!l.current&&"changedTouches"in C&&(k||N)&&(l.current=I),!I)return!0;var re=l.current||I;return U1(re,E,C,re==="h"?k:N)},[]),x=R.useCallback(function(C){var E=C;if(!(!Ls.length||Ls[Ls.length-1]!==d)){var P="deltaY"in E?Wp(E):Pu(E),B=a.current.filter(function(I){return I.name===E.type&&(I.target===E.target||E.target===I.shadowParent)&&Z1(I.delta,P)})[0];if(B&&B.should){E.cancelable&&E.preventDefault();return}if(!B){var k=(m.current.shards||[]).map(qp).filter(Boolean).filter(function(I){return I.contains(E.target)}),N=k.length>0?h(E,k[0]):!m.current.noIsolation;N&&E.cancelable&&E.preventDefault()}}},[]),p=R.useCallback(function(C,E,P,B){var k={name:C,delta:E,target:P,should:B,shadowParent:Q1(P)};a.current.push(k),setTimeout(function(){a.current=a.current.filter(function(N){return N!==k})},1)},[]),y=R.useCallback(function(C){s.current=Pu(C),l.current=void 0},[]),v=R.useCallback(function(C){p(C.type,Wp(C),C.target,h(C,r.lockRef.current))},[]),w=R.useCallback(function(C){p(C.type,Pu(C),C.target,h(C,r.lockRef.current))},[]);R.useEffect(function(){return Ls.push(d),r.setCallbacks({onScrollCapture:v,onWheelCapture:v,onTouchMoveCapture:w}),document.addEventListener("wheel",x,Ns),document.addEventListener("touchmove",x,Ns),document.addEventListener("touchstart",y,Ns),function(){Ls=Ls.filter(function(C){return C!==d}),document.removeEventListener("wheel",x,Ns),document.removeEventListener("touchmove",x,Ns),document.removeEventListener("touchstart",y,Ns)}},[]);var S=r.removeScrollBar,T=r.inert;return R.createElement(R.Fragment,null,T?R.createElement(d,{styles:W1(f)}):null,S?R.createElement(M1,{noRelative:r.noRelative,gapMode:r.gapMode}):null)}function Q1(r){for(var a=null;r!==null;)r instanceof ShadowRoot&&(a=r.host,r=r.host),r=r.parentNode;return a}const K1=b1(KA,G1);var eg=R.forwardRef(function(r,a){return R.createElement(Fc,Kr({},r,{ref:a,sideCar:K1}))});eg.classNames=Fc.classNames;var $1=function(r){if(typeof document>"u")return null;var a=Array.isArray(r)?r[0]:r;return a.ownerDocument.body},Ms=new WeakMap,Tu=new WeakMap,Du={},Lf=0,tg=function(r){return r&&(r.host||tg(r.parentNode))},Y1=function(r,a){return a.map(function(s){if(r.contains(s))return s;var l=tg(s);return l&&r.contains(l)?l:(console.error("aria-hidden",s,"in not contained inside",r,". Doing nothing"),null)}).filter(function(s){return!!s})},X1=function(r,a,s,l){var f=Y1(a,Array.isArray(r)?r:[r]);Du[s]||(Du[s]=new WeakMap);var d=Du[s],m=[],h=new Set,x=new Set(f),p=function(v){!v||h.has(v)||(h.add(v),p(v.parentNode))};f.forEach(p);var y=function(v){!v||x.has(v)||Array.prototype.forEach.call(v.children,function(w){if(h.has(w))y(w);else try{var S=w.getAttribute(l),T=S!==null&&S!=="false",C=(Ms.get(w)||0)+1,E=(d.get(w)||0)+1;Ms.set(w,C),d.set(w,E),m.push(w),C===1&&T&&Tu.set(w,!0),E===1&&w.setAttribute(s,"true"),T||w.setAttribute(l,"true")}catch(P){console.error("aria-hidden: cannot operate on ",w,P)}})};return y(a),h.clear(),Lf++,function(){m.forEach(function(v){var w=Ms.get(v)-1,S=d.get(v)-1;Ms.set(v,w),d.set(v,S),w||(Tu.has(v)||v.removeAttribute(l),Tu.delete(v)),S||v.removeAttribute(s)}),Lf--,Lf||(Ms=new WeakMap,Ms=new WeakMap,Tu=new WeakMap,Du={})}},J1=function(r,a,s){s===void 0&&(s="data-aria-hidden");var l=Array.from(Array.isArray(r)?r:[r]),f=$1(r);return f?(l.push.apply(l,Array.from(f.querySelectorAll("[aria-live], script"))),X1(l,f,s,"aria-hidden")):function(){return null}};function ew(r){const a=tw(r),s=R.forwardRef((l,f)=>{const{children:d,...m}=l,h=R.Children.toArray(d),x=h.find(rw);if(x){const p=x.props.children,y=h.map(v=>v===x?R.Children.count(p)>1?R.Children.only(null):R.isValidElement(p)?p.props.children:null:v);return F.jsx(a,{...m,ref:f,children:R.isValidElement(p)?R.cloneElement(p,void 0,y):null})}return F.jsx(a,{...m,ref:f,children:d})});return s.displayName=`${r}.Slot`,s}function tw(r){const a=R.forwardRef((s,l)=>{const{children:f,...d}=s;if(R.isValidElement(f)){const m=ow(f),h=iw(d,f.props);return f.type!==R.Fragment&&(h.ref=l?ol(l,m):m),R.cloneElement(f,h)}return R.Children.count(f)>1?R.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var nw=Symbol("radix.slottable");function rw(r){return R.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===nw}function iw(r,a){const s={...a};for(const l in a){const f=r[l],d=a[l];/^on[A-Z]/.test(l)?f&&d?s[l]=(...h)=>{const x=d(...h);return f(...h),x}:f&&(s[l]=f):l==="style"?s[l]={...f,...d}:l==="className"&&(s[l]=[f,d].filter(Boolean).join(" "))}return{...r,...s}}function ow(r){var l,f;let a=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?r.ref:(a=(f=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:f.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?r.props.ref:r.props.ref||r.ref)}var Nc="Dialog",[ng]=sl(Nc),[sw,Fr]=ng(Nc),rg=r=>{const{__scopeDialog:a,children:s,open:l,defaultOpen:f,onOpenChange:d,modal:m=!0}=r,h=R.useRef(null),x=R.useRef(null),[p,y]=Rc({prop:l,defaultProp:f??!1,onChange:d,caller:Nc});return F.jsx(sw,{scope:a,triggerRef:h,contentRef:x,contentId:tl(),titleId:tl(),descriptionId:tl(),open:p,onOpenChange:y,onOpenToggle:R.useCallback(()=>y(v=>!v),[y]),modal:m,children:s})};rg.displayName=Nc;var ig="DialogTrigger",aw=R.forwardRef((r,a)=>{const{__scopeDialog:s,...l}=r,f=Fr(ig,s),d=xr(a,f.triggerRef);return F.jsx(cn.button,{type:"button","aria-haspopup":"dialog","aria-expanded":f.open,"aria-controls":f.contentId,"data-state":f0(f.open),...l,ref:d,onClick:sn(r.onClick,f.onOpenToggle)})});aw.displayName=ig;var c0="DialogPortal",[lw,og]=ng(c0,{forceMount:void 0}),sg=r=>{const{__scopeDialog:a,forceMount:s,children:l,container:f}=r,d=Fr(c0,a);return F.jsx(lw,{scope:a,forceMount:s,children:R.Children.map(l,m=>F.jsx(qs,{present:s||d.open,children:F.jsx(qA,{asChild:!0,container:f,children:m})}))})};sg.displayName=c0;var kc="DialogOverlay",ag=R.forwardRef((r,a)=>{const s=og(kc,r.__scopeDialog),{forceMount:l=s.forceMount,...f}=r,d=Fr(kc,r.__scopeDialog);return d.modal?F.jsx(qs,{present:l||d.open,children:F.jsx(cw,{...f,ref:a})}):null});ag.displayName=kc;var uw=ew("DialogOverlay.RemoveScroll"),cw=R.forwardRef((r,a)=>{const{__scopeDialog:s,...l}=r,f=Fr(kc,s);return F.jsx(eg,{as:uw,allowPinchZoom:!0,shards:[f.contentRef],children:F.jsx(cn.div,{"data-state":f0(f.open),...l,ref:a,style:{pointerEvents:"auto",...l.style}})})}),Uo="DialogContent",lg=R.forwardRef((r,a)=>{const s=og(Uo,r.__scopeDialog),{forceMount:l=s.forceMount,...f}=r,d=Fr(Uo,r.__scopeDialog);return F.jsx(qs,{present:l||d.open,children:d.modal?F.jsx(dw,{...f,ref:a}):F.jsx(fw,{...f,ref:a})})});lg.displayName=Uo;var dw=R.forwardRef((r,a)=>{const s=Fr(Uo,r.__scopeDialog),l=R.useRef(null),f=xr(a,s.contentRef,l);return R.useEffect(()=>{const d=l.current;if(d)return J1(d)},[]),F.jsx(ug,{...r,ref:f,trapFocus:s.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:sn(r.onCloseAutoFocus,d=>{var m;d.preventDefault(),(m=s.triggerRef.current)==null||m.focus()}),onPointerDownOutside:sn(r.onPointerDownOutside,d=>{const m=d.detail.originalEvent,h=m.button===0&&m.ctrlKey===!0;(m.button===2||h)&&d.preventDefault()}),onFocusOutside:sn(r.onFocusOutside,d=>d.preventDefault())})}),fw=R.forwardRef((r,a)=>{const s=Fr(Uo,r.__scopeDialog),l=R.useRef(!1),f=R.useRef(!1);return F.jsx(ug,{...r,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:d=>{var m,h;(m=r.onCloseAutoFocus)==null||m.call(r,d),d.defaultPrevented||(l.current||(h=s.triggerRef.current)==null||h.focus(),d.preventDefault()),l.current=!1,f.current=!1},onInteractOutside:d=>{var x,p;(x=r.onInteractOutside)==null||x.call(r,d),d.defaultPrevented||(l.current=!0,d.detail.originalEvent.type==="pointerdown"&&(f.current=!0));const m=d.target;((p=s.triggerRef.current)==null?void 0:p.contains(m))&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&f.current&&d.preventDefault()}})}),ug=R.forwardRef((r,a)=>{const{__scopeDialog:s,trapFocus:l,onOpenAutoFocus:f,onCloseAutoFocus:d,...m}=r,h=Fr(Uo,s),x=R.useRef(null),p=xr(a,x);return h1(),F.jsxs(F.Fragment,{children:[F.jsx(ZA,{asChild:!0,loop:!0,trapped:l,onMountAutoFocus:f,onUnmountAutoFocus:d,children:F.jsx(VA,{role:"dialog",id:h.contentId,"aria-describedby":h.descriptionId,"aria-labelledby":h.titleId,"data-state":f0(h.open),...m,ref:p,onDismiss:()=>h.onOpenChange(!1)})}),F.jsxs(F.Fragment,{children:[F.jsx(hw,{titleId:h.titleId}),F.jsx(mw,{contentRef:x,descriptionId:h.descriptionId})]})]})}),d0="DialogTitle",cg=R.forwardRef((r,a)=>{const{__scopeDialog:s,...l}=r,f=Fr(d0,s);return F.jsx(cn.h2,{id:f.titleId,...l,ref:a})});cg.displayName=d0;var dg="DialogDescription",fg=R.forwardRef((r,a)=>{const{__scopeDialog:s,...l}=r,f=Fr(dg,s);return F.jsx(cn.p,{id:f.descriptionId,...l,ref:a})});fg.displayName=dg;var hg="DialogClose",pg=R.forwardRef((r,a)=>{const{__scopeDialog:s,...l}=r,f=Fr(hg,s);return F.jsx(cn.button,{type:"button",...l,ref:a,onClick:sn(r.onClick,()=>f.onOpenChange(!1))})});pg.displayName=hg;function f0(r){return r?"open":"closed"}var mg="DialogTitleWarning",[rE,Ag]=F_(mg,{contentName:Uo,titleName:d0,docsSlug:"dialog"}),hw=({titleId:r})=>{const a=Ag(mg),s=`\`${a.contentName}\` requires a \`${a.titleName}\` for the component to be accessible for screen reader users. +`)},Q1=0,Ls=[];function K1(r){var a=R.useRef([]),s=R.useRef([0,0]),l=R.useRef(),f=R.useState(Q1++)[0],d=R.useState(XA)[0],m=R.useRef(r);R.useEffect(function(){m.current=r},[r]),R.useEffect(function(){if(r.inert){document.body.classList.add("block-interactivity-".concat(f));var b=A1([r.lockRef.current],(r.shards||[]).map(Qp),!0).filter(Boolean);return b.forEach(function(E){return E.classList.add("allow-interactivity-".concat(f))}),function(){document.body.classList.remove("block-interactivity-".concat(f)),b.forEach(function(E){return E.classList.remove("allow-interactivity-".concat(f))})}}},[r.inert,r.lockRef.current,r.shards]);var h=R.useCallback(function(b,E){if("touches"in b&&b.touches.length===2||b.type==="wheel"&&b.ctrlKey)return!m.current.allowPinchZoom;var P=Pu(b),B=s.current,k="deltaX"in b?b.deltaX:B[0]-P[0],N="deltaY"in b?b.deltaY:B[1]-P[1],I,z=b.target,j=Math.abs(k)>Math.abs(N)?"h":"v";if("touches"in b&&j==="h"&&z.type==="range")return!1;var H=window.getSelection(),$=H&&H.anchorNode,U=$?$===z||$.contains(z):!1;if(U)return!1;var G=qp(j,z);if(!G)return!0;if(G?I=j:(I=j==="v"?"h":"v",G=qp(j,z)),!G)return!1;if(!l.current&&"changedTouches"in b&&(k||N)&&(l.current=I),!I)return!0;var re=l.current||I;return W1(re,E,b,re==="h"?k:N)},[]),x=R.useCallback(function(b){var E=b;if(!(!Ls.length||Ls[Ls.length-1]!==d)){var P="deltaY"in E?Gp(E):Pu(E),B=a.current.filter(function(I){return I.name===E.type&&(I.target===E.target||E.target===I.shadowParent)&&q1(I.delta,P)})[0];if(B&&B.should){E.cancelable&&E.preventDefault();return}if(!B){var k=(m.current.shards||[]).map(Qp).filter(Boolean).filter(function(I){return I.contains(E.target)}),N=k.length>0?h(E,k[0]):!m.current.noIsolation;N&&E.cancelable&&E.preventDefault()}}},[]),p=R.useCallback(function(b,E,P,B){var k={name:b,delta:E,target:P,should:B,shadowParent:$1(P)};a.current.push(k),setTimeout(function(){a.current=a.current.filter(function(N){return N!==k})},1)},[]),y=R.useCallback(function(b){s.current=Pu(b),l.current=void 0},[]),v=R.useCallback(function(b){p(b.type,Gp(b),b.target,h(b,r.lockRef.current))},[]),w=R.useCallback(function(b){p(b.type,Pu(b),b.target,h(b,r.lockRef.current))},[]);R.useEffect(function(){return Ls.push(d),r.setCallbacks({onScrollCapture:v,onWheelCapture:v,onTouchMoveCapture:w}),document.addEventListener("wheel",x,Ns),document.addEventListener("touchmove",x,Ns),document.addEventListener("touchstart",y,Ns),function(){Ls=Ls.filter(function(b){return b!==d}),document.removeEventListener("wheel",x,Ns),document.removeEventListener("touchmove",x,Ns),document.removeEventListener("touchstart",y,Ns)}},[]);var S=r.removeScrollBar,T=r.inert;return R.createElement(R.Fragment,null,T?R.createElement(d,{styles:G1(f)}):null,S?R.createElement(O1,{noRelative:r.noRelative,gapMode:r.gapMode}):null)}function $1(r){for(var a=null;r!==null;)r instanceof ShadowRoot&&(a=r.host,r=r.host),r=r.parentNode;return a}const Y1=E1(YA,K1);var ng=R.forwardRef(function(r,a){return R.createElement(Fc,Kr({},r,{ref:a,sideCar:Y1}))});ng.classNames=Fc.classNames;var X1=function(r){if(typeof document>"u")return null;var a=Array.isArray(r)?r[0]:r;return a.ownerDocument.body},Ms=new WeakMap,Tu=new WeakMap,Du={},Lf=0,rg=function(r){return r&&(r.host||rg(r.parentNode))},J1=function(r,a){return a.map(function(s){if(r.contains(s))return s;var l=rg(s);return l&&r.contains(l)?l:(console.error("aria-hidden",s,"in not contained inside",r,". Doing nothing"),null)}).filter(function(s){return!!s})},ew=function(r,a,s,l){var f=J1(a,Array.isArray(r)?r:[r]);Du[s]||(Du[s]=new WeakMap);var d=Du[s],m=[],h=new Set,x=new Set(f),p=function(v){!v||h.has(v)||(h.add(v),p(v.parentNode))};f.forEach(p);var y=function(v){!v||x.has(v)||Array.prototype.forEach.call(v.children,function(w){if(h.has(w))y(w);else try{var S=w.getAttribute(l),T=S!==null&&S!=="false",b=(Ms.get(w)||0)+1,E=(d.get(w)||0)+1;Ms.set(w,b),d.set(w,E),m.push(w),b===1&&T&&Tu.set(w,!0),E===1&&w.setAttribute(s,"true"),T||w.setAttribute(l,"true")}catch(P){console.error("aria-hidden: cannot operate on ",w,P)}})};return y(a),h.clear(),Lf++,function(){m.forEach(function(v){var w=Ms.get(v)-1,S=d.get(v)-1;Ms.set(v,w),d.set(v,S),w||(Tu.has(v)||v.removeAttribute(l),Tu.delete(v)),S||v.removeAttribute(s)}),Lf--,Lf||(Ms=new WeakMap,Ms=new WeakMap,Tu=new WeakMap,Du={})}},tw=function(r,a,s){s===void 0&&(s="data-aria-hidden");var l=Array.from(Array.isArray(r)?r:[r]),f=X1(r);return f?(l.push.apply(l,Array.from(f.querySelectorAll("[aria-live], script"))),ew(l,f,s,"aria-hidden")):function(){return null}};function nw(r){const a=rw(r),s=R.forwardRef((l,f)=>{const{children:d,...m}=l,h=R.Children.toArray(d),x=h.find(ow);if(x){const p=x.props.children,y=h.map(v=>v===x?R.Children.count(p)>1?R.Children.only(null):R.isValidElement(p)?p.props.children:null:v);return F.jsx(a,{...m,ref:f,children:R.isValidElement(p)?R.cloneElement(p,void 0,y):null})}return F.jsx(a,{...m,ref:f,children:d})});return s.displayName=`${r}.Slot`,s}function rw(r){const a=R.forwardRef((s,l)=>{const{children:f,...d}=s;if(R.isValidElement(f)){const m=aw(f),h=sw(d,f.props);return f.type!==R.Fragment&&(h.ref=l?ol(l,m):m),R.cloneElement(f,h)}return R.Children.count(f)>1?R.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var iw=Symbol("radix.slottable");function ow(r){return R.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===iw}function sw(r,a){const s={...a};for(const l in a){const f=r[l],d=a[l];/^on[A-Z]/.test(l)?f&&d?s[l]=(...h)=>{const x=d(...h);return f(...h),x}:f&&(s[l]=f):l==="style"?s[l]={...f,...d}:l==="className"&&(s[l]=[f,d].filter(Boolean).join(" "))}return{...r,...s}}function aw(r){var l,f;let a=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?r.ref:(a=(f=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:f.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?r.props.ref:r.props.ref||r.ref)}var Nc="Dialog",[ig]=sl(Nc),[lw,Fr]=ig(Nc),og=r=>{const{__scopeDialog:a,children:s,open:l,defaultOpen:f,onOpenChange:d,modal:m=!0}=r,h=R.useRef(null),x=R.useRef(null),[p,y]=Rc({prop:l,defaultProp:f??!1,onChange:d,caller:Nc});return F.jsx(lw,{scope:a,triggerRef:h,contentRef:x,contentId:tl(),titleId:tl(),descriptionId:tl(),open:p,onOpenChange:y,onOpenToggle:R.useCallback(()=>y(v=>!v),[y]),modal:m,children:s})};og.displayName=Nc;var sg="DialogTrigger",uw=R.forwardRef((r,a)=>{const{__scopeDialog:s,...l}=r,f=Fr(sg,s),d=xr(a,f.triggerRef);return F.jsx(cn.button,{type:"button","aria-haspopup":"dialog","aria-expanded":f.open,"aria-controls":f.contentId,"data-state":h0(f.open),...l,ref:d,onClick:sn(r.onClick,f.onOpenToggle)})});uw.displayName=sg;var d0="DialogPortal",[cw,ag]=ig(d0,{forceMount:void 0}),lg=r=>{const{__scopeDialog:a,forceMount:s,children:l,container:f}=r,d=Fr(d0,a);return F.jsx(cw,{scope:a,forceMount:s,children:R.Children.map(l,m=>F.jsx(qs,{present:s||d.open,children:F.jsx(QA,{asChild:!0,container:f,children:m})}))})};lg.displayName=d0;var kc="DialogOverlay",ug=R.forwardRef((r,a)=>{const s=ag(kc,r.__scopeDialog),{forceMount:l=s.forceMount,...f}=r,d=Fr(kc,r.__scopeDialog);return d.modal?F.jsx(qs,{present:l||d.open,children:F.jsx(fw,{...f,ref:a})}):null});ug.displayName=kc;var dw=nw("DialogOverlay.RemoveScroll"),fw=R.forwardRef((r,a)=>{const{__scopeDialog:s,...l}=r,f=Fr(kc,s);return F.jsx(ng,{as:dw,allowPinchZoom:!0,shards:[f.contentRef],children:F.jsx(cn.div,{"data-state":h0(f.open),...l,ref:a,style:{pointerEvents:"auto",...l.style}})})}),Uo="DialogContent",cg=R.forwardRef((r,a)=>{const s=ag(Uo,r.__scopeDialog),{forceMount:l=s.forceMount,...f}=r,d=Fr(Uo,r.__scopeDialog);return F.jsx(qs,{present:l||d.open,children:d.modal?F.jsx(hw,{...f,ref:a}):F.jsx(pw,{...f,ref:a})})});cg.displayName=Uo;var hw=R.forwardRef((r,a)=>{const s=Fr(Uo,r.__scopeDialog),l=R.useRef(null),f=xr(a,s.contentRef,l);return R.useEffect(()=>{const d=l.current;if(d)return tw(d)},[]),F.jsx(dg,{...r,ref:f,trapFocus:s.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:sn(r.onCloseAutoFocus,d=>{var m;d.preventDefault(),(m=s.triggerRef.current)==null||m.focus()}),onPointerDownOutside:sn(r.onPointerDownOutside,d=>{const m=d.detail.originalEvent,h=m.button===0&&m.ctrlKey===!0;(m.button===2||h)&&d.preventDefault()}),onFocusOutside:sn(r.onFocusOutside,d=>d.preventDefault())})}),pw=R.forwardRef((r,a)=>{const s=Fr(Uo,r.__scopeDialog),l=R.useRef(!1),f=R.useRef(!1);return F.jsx(dg,{...r,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:d=>{var m,h;(m=r.onCloseAutoFocus)==null||m.call(r,d),d.defaultPrevented||(l.current||(h=s.triggerRef.current)==null||h.focus(),d.preventDefault()),l.current=!1,f.current=!1},onInteractOutside:d=>{var x,p;(x=r.onInteractOutside)==null||x.call(r,d),d.defaultPrevented||(l.current=!0,d.detail.originalEvent.type==="pointerdown"&&(f.current=!0));const m=d.target;((p=s.triggerRef.current)==null?void 0:p.contains(m))&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&f.current&&d.preventDefault()}})}),dg=R.forwardRef((r,a)=>{const{__scopeDialog:s,trapFocus:l,onOpenAutoFocus:f,onCloseAutoFocus:d,...m}=r,h=Fr(Uo,s),x=R.useRef(null),p=xr(a,x);return m1(),F.jsxs(F.Fragment,{children:[F.jsx(qA,{asChild:!0,loop:!0,trapped:l,onMountAutoFocus:f,onUnmountAutoFocus:d,children:F.jsx(ZA,{role:"dialog",id:h.contentId,"aria-describedby":h.descriptionId,"aria-labelledby":h.titleId,"data-state":h0(h.open),...m,ref:p,onDismiss:()=>h.onOpenChange(!1)})}),F.jsxs(F.Fragment,{children:[F.jsx(mw,{titleId:h.titleId}),F.jsx(gw,{contentRef:x,descriptionId:h.descriptionId})]})]})}),f0="DialogTitle",fg=R.forwardRef((r,a)=>{const{__scopeDialog:s,...l}=r,f=Fr(f0,s);return F.jsx(cn.h2,{id:f.titleId,...l,ref:a})});fg.displayName=f0;var hg="DialogDescription",pg=R.forwardRef((r,a)=>{const{__scopeDialog:s,...l}=r,f=Fr(hg,s);return F.jsx(cn.p,{id:f.descriptionId,...l,ref:a})});pg.displayName=hg;var mg="DialogClose",Ag=R.forwardRef((r,a)=>{const{__scopeDialog:s,...l}=r,f=Fr(mg,s);return F.jsx(cn.button,{type:"button",...l,ref:a,onClick:sn(r.onClick,()=>f.onOpenChange(!1))})});Ag.displayName=mg;function h0(r){return r?"open":"closed"}var gg="DialogTitleWarning",[oE,xg]=L_(gg,{contentName:Uo,titleName:f0,docsSlug:"dialog"}),mw=({titleId:r})=>{const a=xg(gg),s=`\`${a.contentName}\` requires a \`${a.titleName}\` for the component to be accessible for screen reader users. If you want to hide the \`${a.titleName}\`, you can wrap it with our VisuallyHidden component. -For more information, see https://radix-ui.com/primitives/docs/components/${a.docsSlug}`;return R.useEffect(()=>{r&&(document.getElementById(r)||console.error(s))},[s,r]),null},pw="DialogDescriptionWarning",mw=({contentRef:r,descriptionId:a})=>{const l=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Ag(pw).contentName}}.`;return R.useEffect(()=>{var d;const f=(d=r.current)==null?void 0:d.getAttribute("aria-describedby");a&&f&&(document.getElementById(a)||console.warn(l))},[l,r,a]),null},gg=rg,xg=sg,Lc=ag,Mc=lg,Ic=cg,Oc=fg,vg=pg;const h0=gg,Aw=xg,yg=R.forwardRef(({className:r,...a},s)=>F.jsx(Lc,{ref:s,className:lt("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...a}));yg.displayName=Lc.displayName;const zc=R.forwardRef(({className:r,children:a,...s},l)=>F.jsxs(Aw,{children:[F.jsx(yg,{}),F.jsxs(Mc,{ref:l,className:lt("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",r),...s,children:[a,F.jsxs(vg,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[F.jsx(CA,{className:"h-4 w-4"}),F.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));zc.displayName=Mc.displayName;const jc=({className:r,...a})=>F.jsx("div",{className:lt("flex flex-col space-y-1.5 text-center sm:text-left",r),...a});jc.displayName="DialogHeader";const p0=({className:r,...a})=>F.jsx("div",{className:lt("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",r),...a});p0.displayName="DialogFooter";const Hc=R.forwardRef(({className:r,...a},s)=>F.jsx(Ic,{ref:s,className:lt("text-lg font-semibold leading-none tracking-tight",r),...a}));Hc.displayName=Ic.displayName;const gw=R.forwardRef(({className:r,...a},s)=>F.jsx(Oc,{ref:s,className:lt("text-sm text-muted-foreground",r),...a}));gw.displayName=Oc.displayName;function Gp(r){const a=xw(r),s=R.forwardRef((l,f)=>{const{children:d,...m}=l,h=R.Children.toArray(d),x=h.find(yw);if(x){const p=x.props.children,y=h.map(v=>v===x?R.Children.count(p)>1?R.Children.only(null):R.isValidElement(p)?p.props.children:null:v);return F.jsx(a,{...m,ref:f,children:R.isValidElement(p)?R.cloneElement(p,void 0,y):null})}return F.jsx(a,{...m,ref:f,children:d})});return s.displayName=`${r}.Slot`,s}function xw(r){const a=R.forwardRef((s,l)=>{const{children:f,...d}=s;if(R.isValidElement(f)){const m=ww(f),h=_w(d,f.props);return f.type!==R.Fragment&&(h.ref=l?ol(l,m):m),R.cloneElement(f,h)}return R.Children.count(f)>1?R.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var vw=Symbol("radix.slottable");function yw(r){return R.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===vw}function _w(r,a){const s={...a};for(const l in a){const f=r[l],d=a[l];/^on[A-Z]/.test(l)?f&&d?s[l]=(...h)=>{const x=d(...h);return f(...h),x}:f&&(s[l]=f):l==="style"?s[l]={...f,...d}:l==="className"&&(s[l]=[f,d].filter(Boolean).join(" "))}return{...r,...s}}function ww(r){var l,f;let a=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?r.ref:(a=(f=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:f.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?r.props.ref:r.props.ref||r.ref)}function bw(r){const a=r+"CollectionProvider",[s,l]=sl(a),[f,d]=s(a,{collectionRef:{current:null},itemMap:new Map}),m=C=>{const{scope:E,children:P}=C,B=be.useRef(null),k=be.useRef(new Map).current;return F.jsx(f,{scope:E,itemMap:k,collectionRef:B,children:P})};m.displayName=a;const h=r+"CollectionSlot",x=Gp(h),p=be.forwardRef((C,E)=>{const{scope:P,children:B}=C,k=d(h,P),N=xr(E,k.collectionRef);return F.jsx(x,{ref:N,children:B})});p.displayName=h;const y=r+"CollectionItemSlot",v="data-radix-collection-item",w=Gp(y),S=be.forwardRef((C,E)=>{const{scope:P,children:B,...k}=C,N=be.useRef(null),I=xr(E,N),z=d(y,P);return be.useEffect(()=>(z.itemMap.set(N,{ref:N,...k}),()=>void z.itemMap.delete(N))),F.jsx(w,{[v]:"",ref:I,children:B})});S.displayName=y;function T(C){const E=d(r+"CollectionConsumer",C);return be.useCallback(()=>{const B=E.collectionRef.current;if(!B)return[];const k=Array.from(B.querySelectorAll(`[${v}]`));return Array.from(E.itemMap.values()).sort((z,j)=>k.indexOf(z.ref.current)-k.indexOf(j.ref.current))},[E.collectionRef,E.itemMap])}return[{Provider:m,Slot:p,ItemSlot:S},T,l]}var Cw=R.createContext(void 0);function _g(r){const a=R.useContext(Cw);return r||a||"ltr"}var Mf="rovingFocusGroup.onEntryFocus",Ew={bubbles:!1,cancelable:!0},al="RovingFocusGroup",[Qf,wg,kw]=bw(al),[Sw,bg]=sl(al,[kw]),[Bw,Pw]=Sw(al),Cg=R.forwardRef((r,a)=>F.jsx(Qf.Provider,{scope:r.__scopeRovingFocusGroup,children:F.jsx(Qf.Slot,{scope:r.__scopeRovingFocusGroup,children:F.jsx(Tw,{...r,ref:a})})}));Cg.displayName=al;var Tw=R.forwardRef((r,a)=>{const{__scopeRovingFocusGroup:s,orientation:l,loop:f=!1,dir:d,currentTabStopId:m,defaultCurrentTabStopId:h,onCurrentTabStopIdChange:x,onEntryFocus:p,preventScrollOnEntryFocus:y=!1,...v}=r,w=R.useRef(null),S=xr(a,w),T=_g(d),[C,E]=Rc({prop:m,defaultProp:h??null,onChange:x,caller:al}),[P,B]=R.useState(!1),k=Vs(p),N=wg(s),I=R.useRef(!1),[z,j]=R.useState(0);return R.useEffect(()=>{const H=w.current;if(H)return H.addEventListener(Mf,k),()=>H.removeEventListener(Mf,k)},[k]),F.jsx(Bw,{scope:s,orientation:l,dir:T,loop:f,currentTabStopId:C,onItemFocus:R.useCallback(H=>E(H),[E]),onItemShiftTab:R.useCallback(()=>B(!0),[]),onFocusableItemAdd:R.useCallback(()=>j(H=>H+1),[]),onFocusableItemRemove:R.useCallback(()=>j(H=>H-1),[]),children:F.jsx(cn.div,{tabIndex:P||z===0?-1:0,"data-orientation":l,...v,ref:S,style:{outline:"none",...r.style},onMouseDown:sn(r.onMouseDown,()=>{I.current=!0}),onFocus:sn(r.onFocus,H=>{const $=!I.current;if(H.target===H.currentTarget&&$&&!P){const U=new CustomEvent(Mf,Ew);if(H.currentTarget.dispatchEvent(U),!U.defaultPrevented){const G=N().filter(se=>se.focusable),re=G.find(se=>se.active),V=G.find(se=>se.id===C),le=[re,V,...G].filter(Boolean).map(se=>se.ref.current);Sg(le,y)}}I.current=!1}),onBlur:sn(r.onBlur,()=>B(!1))})})}),Eg="RovingFocusGroupItem",kg=R.forwardRef((r,a)=>{const{__scopeRovingFocusGroup:s,focusable:l=!0,active:f=!1,tabStopId:d,children:m,...h}=r,x=tl(),p=d||x,y=Pw(Eg,s),v=y.currentTabStopId===p,w=wg(s),{onFocusableItemAdd:S,onFocusableItemRemove:T,currentTabStopId:C}=y;return R.useEffect(()=>{if(l)return S(),()=>T()},[l,S,T]),F.jsx(Qf.ItemSlot,{scope:s,id:p,focusable:l,active:f,children:F.jsx(cn.span,{tabIndex:v?0:-1,"data-orientation":y.orientation,...h,ref:a,onMouseDown:sn(r.onMouseDown,E=>{l?y.onItemFocus(p):E.preventDefault()}),onFocus:sn(r.onFocus,()=>y.onItemFocus(p)),onKeyDown:sn(r.onKeyDown,E=>{if(E.key==="Tab"&&E.shiftKey){y.onItemShiftTab();return}if(E.target!==E.currentTarget)return;const P=Fw(E,y.orientation,y.dir);if(P!==void 0){if(E.metaKey||E.ctrlKey||E.altKey||E.shiftKey)return;E.preventDefault();let k=w().filter(N=>N.focusable).map(N=>N.ref.current);if(P==="last")k.reverse();else if(P==="prev"||P==="next"){P==="prev"&&k.reverse();const N=k.indexOf(E.currentTarget);k=y.loop?Nw(k,N+1):k.slice(N+1)}setTimeout(()=>Sg(k))}}),children:typeof m=="function"?m({isCurrentTabStop:v,hasTabStop:C!=null}):m})})});kg.displayName=Eg;var Dw={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Rw(r,a){return a!=="rtl"?r:r==="ArrowLeft"?"ArrowRight":r==="ArrowRight"?"ArrowLeft":r}function Fw(r,a,s){const l=Rw(r.key,s);if(!(a==="vertical"&&["ArrowLeft","ArrowRight"].includes(l))&&!(a==="horizontal"&&["ArrowUp","ArrowDown"].includes(l)))return Dw[l]}function Sg(r,a=!1){const s=document.activeElement;for(const l of r)if(l===s||(l.focus({preventScroll:a}),document.activeElement!==s))return}function Nw(r,a){return r.map((s,l)=>r[(a+l)%r.length])}var Lw=Cg,Mw=kg,Vc="Tabs",[Iw]=sl(Vc,[bg]),Bg=bg(),[Ow,m0]=Iw(Vc),Pg=R.forwardRef((r,a)=>{const{__scopeTabs:s,value:l,onValueChange:f,defaultValue:d,orientation:m="horizontal",dir:h,activationMode:x="automatic",...p}=r,y=_g(h),[v,w]=Rc({prop:l,onChange:f,defaultProp:d??"",caller:Vc});return F.jsx(Ow,{scope:s,baseId:tl(),value:v,onValueChange:w,orientation:m,dir:y,activationMode:x,children:F.jsx(cn.div,{dir:y,"data-orientation":m,...p,ref:a})})});Pg.displayName=Vc;var Tg="TabsList",Dg=R.forwardRef((r,a)=>{const{__scopeTabs:s,loop:l=!0,...f}=r,d=m0(Tg,s),m=Bg(s);return F.jsx(Lw,{asChild:!0,...m,orientation:d.orientation,dir:d.dir,loop:l,children:F.jsx(cn.div,{role:"tablist","aria-orientation":d.orientation,...f,ref:a})})});Dg.displayName=Tg;var Rg="TabsTrigger",Fg=R.forwardRef((r,a)=>{const{__scopeTabs:s,value:l,disabled:f=!1,...d}=r,m=m0(Rg,s),h=Bg(s),x=Mg(m.baseId,l),p=Ig(m.baseId,l),y=l===m.value;return F.jsx(Mw,{asChild:!0,...h,focusable:!f,active:y,children:F.jsx(cn.button,{type:"button",role:"tab","aria-selected":y,"aria-controls":p,"data-state":y?"active":"inactive","data-disabled":f?"":void 0,disabled:f,id:x,...d,ref:a,onMouseDown:sn(r.onMouseDown,v=>{!f&&v.button===0&&v.ctrlKey===!1?m.onValueChange(l):v.preventDefault()}),onKeyDown:sn(r.onKeyDown,v=>{[" ","Enter"].includes(v.key)&&m.onValueChange(l)}),onFocus:sn(r.onFocus,()=>{const v=m.activationMode!=="manual";!y&&!f&&v&&m.onValueChange(l)})})})});Fg.displayName=Rg;var Ng="TabsContent",Lg=R.forwardRef((r,a)=>{const{__scopeTabs:s,value:l,forceMount:f,children:d,...m}=r,h=m0(Ng,s),x=Mg(h.baseId,l),p=Ig(h.baseId,l),y=l===h.value,v=R.useRef(y);return R.useEffect(()=>{const w=requestAnimationFrame(()=>v.current=!1);return()=>cancelAnimationFrame(w)},[]),F.jsx(qs,{present:f||y,children:({present:w})=>F.jsx(cn.div,{"data-state":y?"active":"inactive","data-orientation":h.orientation,role:"tabpanel","aria-labelledby":x,hidden:!w,id:p,tabIndex:0,...m,ref:a,style:{...r.style,animationDuration:v.current?"0s":void 0},children:w&&d})})});Lg.displayName=Ng;function Mg(r,a){return`${r}-trigger-${a}`}function Ig(r,a){return`${r}-content-${a}`}var zw=Pg,Og=Dg,zg=Fg,jg=Lg;const jw=zw,Hg=R.forwardRef(({className:r,...a},s)=>F.jsx(Og,{ref:s,className:lt("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",r),...a}));Hg.displayName=Og.displayName;const Ya=R.forwardRef(({className:r,...a},s)=>F.jsx(zg,{ref:s,className:lt("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",r),...a}));Ya.displayName=zg.displayName;const Xa=R.forwardRef(({className:r,...a},s)=>F.jsx(jg,{ref:s,className:lt("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",r),...a}));Xa.displayName=jg.displayName;var Hw=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Vw=Hw.reduce((r,a)=>{const s=u0(`Primitive.${a}`),l=R.forwardRef((f,d)=>{const{asChild:m,...h}=f,x=m?s:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),F.jsx(x,{...h,ref:d})});return l.displayName=`Primitive.${a}`,{...r,[a]:l}},{}),Uw="Label",Vg=R.forwardRef((r,a)=>F.jsx(Vw.label,{...r,ref:a,onMouseDown:s=>{var f;s.target.closest("button, input, select, textarea")||((f=r.onMouseDown)==null||f.call(r,s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}}));Vg.displayName=Uw;var Ug=Vg;const Zw=Dc("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Vt=R.forwardRef(({className:r,...a},s)=>F.jsx(Ug,{ref:s,className:lt(Zw(),r),...a}));Vt.displayName=Ug.displayName;function Ww(r){const a=R.useRef({value:r,previous:r});return R.useMemo(()=>(a.current.value!==r&&(a.current.previous=a.current.value,a.current.value=r),a.current.previous),[r])}function qw(r){const[a,s]=R.useState(void 0);return Hs(()=>{if(r){s({width:r.offsetWidth,height:r.offsetHeight});const l=new ResizeObserver(f=>{if(!Array.isArray(f)||!f.length)return;const d=f[0];let m,h;if("borderBoxSize"in d){const x=d.borderBoxSize,p=Array.isArray(x)?x[0]:x;m=p.inlineSize,h=p.blockSize}else m=r.offsetWidth,h=r.offsetHeight;s({width:m,height:h})});return l.observe(r,{box:"border-box"}),()=>l.unobserve(r)}else s(void 0)},[r]),a}var Uc="Checkbox",[Gw]=sl(Uc),[Qw,A0]=Gw(Uc);function Kw(r){const{__scopeCheckbox:a,checked:s,children:l,defaultChecked:f,disabled:d,form:m,name:h,onCheckedChange:x,required:p,value:y="on",internal_do_not_use_render:v}=r,[w,S]=Rc({prop:s,defaultProp:f??!1,onChange:x,caller:Uc}),[T,C]=R.useState(null),[E,P]=R.useState(null),B=R.useRef(!1),k=T?!!m||!!T.closest("form"):!0,N={checked:w,disabled:d,setChecked:S,control:T,setControl:C,name:h,form:m,value:y,hasConsumerStoppedPropagationRef:B,required:p,defaultChecked:io(f)?!1:f,isFormControl:k,bubbleInput:E,setBubbleInput:P};return F.jsx(Qw,{scope:a,...N,children:$w(v)?v(N):l})}var Zg="CheckboxTrigger",Wg=R.forwardRef(({__scopeCheckbox:r,onKeyDown:a,onClick:s,...l},f)=>{const{control:d,value:m,disabled:h,checked:x,required:p,setControl:y,setChecked:v,hasConsumerStoppedPropagationRef:w,isFormControl:S,bubbleInput:T}=A0(Zg,r),C=xr(f,y),E=R.useRef(x);return R.useEffect(()=>{const P=d==null?void 0:d.form;if(P){const B=()=>v(E.current);return P.addEventListener("reset",B),()=>P.removeEventListener("reset",B)}},[d,v]),F.jsx(cn.button,{type:"button",role:"checkbox","aria-checked":io(x)?"mixed":x,"aria-required":p,"data-state":$g(x),"data-disabled":h?"":void 0,disabled:h,value:m,...l,ref:C,onKeyDown:sn(a,P=>{P.key==="Enter"&&P.preventDefault()}),onClick:sn(s,P=>{v(B=>io(B)?!0:!B),T&&S&&(w.current=P.isPropagationStopped(),w.current||P.stopPropagation())})})});Wg.displayName=Zg;var g0=R.forwardRef((r,a)=>{const{__scopeCheckbox:s,name:l,checked:f,defaultChecked:d,required:m,disabled:h,value:x,onCheckedChange:p,form:y,...v}=r;return F.jsx(Kw,{__scopeCheckbox:s,checked:f,defaultChecked:d,disabled:h,required:m,onCheckedChange:p,name:l,form:y,value:x,internal_do_not_use_render:({isFormControl:w})=>F.jsxs(F.Fragment,{children:[F.jsx(Wg,{...v,ref:a,__scopeCheckbox:s}),w&&F.jsx(Kg,{__scopeCheckbox:s})]})})});g0.displayName=Uc;var qg="CheckboxIndicator",Gg=R.forwardRef((r,a)=>{const{__scopeCheckbox:s,forceMount:l,...f}=r,d=A0(qg,s);return F.jsx(qs,{present:l||io(d.checked)||d.checked===!0,children:F.jsx(cn.span,{"data-state":$g(d.checked),"data-disabled":d.disabled?"":void 0,...f,ref:a,style:{pointerEvents:"none",...r.style}})})});Gg.displayName=qg;var Qg="CheckboxBubbleInput",Kg=R.forwardRef(({__scopeCheckbox:r,...a},s)=>{const{control:l,hasConsumerStoppedPropagationRef:f,checked:d,defaultChecked:m,required:h,disabled:x,name:p,value:y,form:v,bubbleInput:w,setBubbleInput:S}=A0(Qg,r),T=xr(s,S),C=Ww(d),E=qw(l);R.useEffect(()=>{const B=w;if(!B)return;const k=window.HTMLInputElement.prototype,I=Object.getOwnPropertyDescriptor(k,"checked").set,z=!f.current;if(C!==d&&I){const j=new Event("click",{bubbles:z});B.indeterminate=io(d),I.call(B,io(d)?!1:d),B.dispatchEvent(j)}},[w,C,d,f]);const P=R.useRef(io(d)?!1:d);return F.jsx(cn.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??P.current,required:h,disabled:x,name:p,value:y,form:v,...a,tabIndex:-1,ref:T,style:{...a.style,...E,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});Kg.displayName=Qg;function $w(r){return typeof r=="function"}function io(r){return r==="indeterminate"}function $g(r){return io(r)?"indeterminate":r?"checked":"unchecked"}const Yg=R.forwardRef(({className:r,...a},s)=>F.jsx(g0,{ref:s,className:lt("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",r),...a,children:F.jsx(Gg,{className:lt("flex items-center justify-center text-current"),children:F.jsx(my,{className:"h-4 w-4"})})}));Yg.displayName=g0.displayName;function Yw({open:r,contacts:a,undecryptedCount:s,onClose:l,onSelectConversation:f,onCreateContact:d,onCreateChannel:m,onCreateHashtagChannel:h}){const[x,p]=R.useState("existing"),[y,v]=R.useState(""),[w,S]=R.useState(""),[T,C]=R.useState(!1),[E,P]=R.useState(""),[B,k]=R.useState(!1),N=R.useRef(null),I=async()=>{P(""),k(!0);try{if(x==="new-contact"){if(!y.trim()||!w.trim()){P("Name and public key are required");return}await d(y.trim(),w.trim(),T),f({type:"contact",id:w.trim(),name:y.trim()})}else if(x==="new-room"){if(!y.trim()||!w.trim()){P("Room name and key are required");return}await m(y.trim(),w.trim(),T)}else if(x==="hashtag"){const $=y.trim(),U=z($);if(U){P(U);return}await h(`#${$}`,T)}l()}catch($){P($ instanceof Error?$.message:"Failed to create")}finally{k(!1)}},z=$=>$?/^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/.test($)?null:"Use letters, numbers, and single dashes (no leading/trailing dashes)":"Channel name is required",j=async()=>{var G;P("");const $=y.trim(),U=z($);if(U){P(U);return}k(!0);try{await h(`#${$}`,T),v(""),(G=N.current)==null||G.focus()}catch(re){P(re instanceof Error?re.message:"Failed to create")}finally{k(!1)}},H=x!=="existing"&&s>0;return F.jsx(h0,{open:r,onOpenChange:$=>!$&&l(),children:F.jsxs(zc,{className:"sm:max-w-[500px]",children:[F.jsx(jc,{children:F.jsx(Hc,{children:"New Conversation"})}),F.jsxs(jw,{value:x,onValueChange:$=>p($),className:"w-full",children:[F.jsxs(Hg,{className:"grid w-full grid-cols-4",children:[F.jsx(Ya,{value:"existing",children:"Existing"}),F.jsx(Ya,{value:"new-contact",children:"Contact"}),F.jsx(Ya,{value:"new-room",children:"Room"}),F.jsx(Ya,{value:"hashtag",children:"Hashtag"})]}),F.jsx(Xa,{value:"existing",className:"mt-4",children:F.jsx("div",{className:"max-h-[300px] overflow-y-auto rounded-md border",children:a.length===0?F.jsx("div",{className:"p-4 text-center text-muted-foreground",children:"No contacts available"}):a.map($=>F.jsx("div",{className:"cursor-pointer px-4 py-2 hover:bg-accent",onClick:()=>{f({type:"contact",id:$.public_key,name:Vo($.name,$.public_key)}),l()},children:Vo($.name,$.public_key)},$.public_key))})}),F.jsxs(Xa,{value:"new-contact",className:"mt-4 space-y-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"contact-name",children:"Name"}),F.jsx(Kt,{id:"contact-name",value:y,onChange:$=>v($.target.value),placeholder:"Contact name"})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"contact-key",children:"Public Key"}),F.jsx(Kt,{id:"contact-key",value:w,onChange:$=>S($.target.value),placeholder:"64-character hex public key"})]})]}),F.jsxs(Xa,{value:"new-room",className:"mt-4 space-y-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"room-name",children:"Room Name"}),F.jsx(Kt,{id:"room-name",value:y,onChange:$=>v($.target.value),placeholder:"Room name"})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"room-key",children:"Room Key"}),F.jsx(Kt,{id:"room-key",value:w,onChange:$=>S($.target.value),placeholder:"Pre-shared key (hex)"})]})]}),F.jsx(Xa,{value:"hashtag",className:"mt-4",children:F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"hashtag-name",children:"Hashtag Channel"}),F.jsxs("div",{className:"flex items-center gap-1",children:[F.jsx("span",{className:"text-sm text-muted-foreground",children:"#"}),F.jsx(Kt,{ref:N,id:"hashtag-name",value:y,onChange:$=>v($.target.value),placeholder:"channel-name",className:"flex-1"})]})]})})]}),H&&F.jsxs("div",{className:"space-y-1",children:[F.jsxs("div",{className:"flex items-center justify-end space-x-2",children:[F.jsxs(Vt,{htmlFor:"try-historical",className:"text-sm text-muted-foreground cursor-pointer",children:["Try decrypting ",s.toLocaleString()," stored packet",s!==1?"s":""]}),F.jsx(Yg,{id:"try-historical",checked:T,onCheckedChange:$=>C($===!0)})]}),T&&F.jsx("p",{className:"text-xs text-muted-foreground text-right",children:"Messages will stream in as they decrypt in the background"})]}),E&&F.jsx("div",{className:"text-sm text-destructive",children:E}),F.jsxs(p0,{children:[F.jsx(gr,{variant:"outline",onClick:l,children:"Cancel"}),x==="hashtag"&&F.jsx(gr,{variant:"secondary",onClick:j,disabled:B,children:B?"Creating...":"Create & Add Another"}),x!=="existing"&&F.jsx(gr,{onClick:I,disabled:B,children:B?"Creating...":"Create"})]})]})})}var Xw=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Jw=Xw.reduce((r,a)=>{const s=u0(`Primitive.${a}`),l=R.forwardRef((f,d)=>{const{asChild:m,...h}=f,x=m?s:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),F.jsx(x,{...h,ref:d})});return l.displayName=`Primitive.${a}`,{...r,[a]:l}},{}),e2="Separator",Qp="horizontal",t2=["horizontal","vertical"],Xg=R.forwardRef((r,a)=>{const{decorative:s,orientation:l=Qp,...f}=r,d=n2(l)?l:Qp,h=s?{role:"none"}:{"aria-orientation":d==="vertical"?d:void 0,role:"separator"};return F.jsx(Jw.div,{"data-orientation":d,...h,...f,ref:a})});Xg.displayName=e2;function n2(r){return t2.includes(r)}var Jg=Xg;const Mu=R.forwardRef(({className:r,orientation:a="horizontal",decorative:s=!0,...l},f)=>F.jsx(Jg,{ref:f,decorative:s,orientation:a,className:lt("shrink-0 bg-border",a==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",r),...l}));Mu.displayName=Jg.displayName;const r2=Dc("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",warning:"border-yellow-500/50 bg-yellow-500/10 text-yellow-200 [&>svg]:text-yellow-500"}},defaultVariants:{variant:"default"}}),ex=R.forwardRef(({className:r,variant:a,...s},l)=>F.jsx("div",{ref:l,role:"alert",className:lt(r2({variant:a}),r),...s}));ex.displayName="Alert";const i2=R.forwardRef(({className:r,...a},s)=>F.jsx("h5",{ref:s,className:lt("mb-1 font-medium leading-none tracking-tight",r),...a}));i2.displayName="AlertTitle";const tx=R.forwardRef(({className:r,...a},s)=>F.jsx("div",{ref:s,className:lt("text-sm [&_p]:leading-relaxed",r),...a}));tx.displayName="AlertDescription";function o2({open:r,config:a,appSettings:s,onClose:l,onSave:f,onSaveAppSettings:d,onSetPrivateKey:m,onReboot:h}){const[x,p]=R.useState(""),[y,v]=R.useState(""),[w,S]=R.useState(""),[T,C]=R.useState(""),[E,P]=R.useState(""),[B,k]=R.useState(""),[N,I]=R.useState(""),[z,j]=R.useState(""),[H,$]=R.useState(""),[U,G]=R.useState(""),[re,V]=R.useState(!1),[J,le]=R.useState(!1),[se,de]=R.useState("");R.useEffect(()=>{a&&(p(a.name),v(String(a.lat)),S(String(a.lon)),C(String(a.tx_power)),P(String(a.radio.freq)),k(String(a.radio.bw)),I(String(a.radio.sf)),j(String(a.radio.cr)))},[a]),R.useEffect(()=>{s&&G(String(s.max_radio_contacts))},[s]);const q=async()=>{de(""),V(!0);try{const D={name:x,lat:parseFloat(y),lon:parseFloat(w),tx_power:parseInt(T,10),radio:{freq:parseFloat(E),bw:parseFloat(B),sf:parseInt(N,10),cr:parseInt(z,10)}};await f(D);const Z=parseInt(U,10);!isNaN(Z)&&Z!==(s==null?void 0:s.max_radio_contacts)&&await d({max_radio_contacts:Z}),l()}catch(D){de(D instanceof Error?D.message:"Failed to save")}finally{V(!1)}},ge=async()=>{if(!H.trim()){de("Private key is required");return}de(""),V(!0);try{await m(H.trim()),$(""),l()}catch(D){de(D instanceof Error?D.message:"Failed to set private key")}finally{V(!1)}},ne=async()=>{if(confirm("Are you sure you want to reboot the radio? The connection will drop temporarily.")){de(""),le(!0);try{await h(),l()}catch(D){de(D instanceof Error?D.message:"Failed to reboot radio")}finally{le(!1)}}};return F.jsx(h0,{open:r,onOpenChange:D=>!D&&l(),children:F.jsxs(zc,{className:"sm:max-w-[500px] max-h-[90vh] overflow-y-auto",children:[F.jsx(jc,{children:F.jsx(Hc,{children:"Radio Configuration"})}),a?F.jsxs("div",{className:"space-y-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"public-key",children:"Public Key"}),F.jsx(Kt,{id:"public-key",value:a.public_key,disabled:!0})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"name",children:"Name"}),F.jsx(Kt,{id:"name",value:x,onChange:D=>p(D.target.value)})]}),F.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"lat",children:"Latitude"}),F.jsx(Kt,{id:"lat",type:"number",step:"any",value:y,onChange:D=>v(D.target.value)})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"lon",children:"Longitude"}),F.jsx(Kt,{id:"lon",type:"number",step:"any",value:w,onChange:D=>S(D.target.value)})]})]}),F.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"freq",children:"Frequency (MHz)"}),F.jsx(Kt,{id:"freq",type:"number",step:"any",value:E,onChange:D=>P(D.target.value)})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"bw",children:"Bandwidth (kHz)"}),F.jsx(Kt,{id:"bw",type:"number",step:"any",value:B,onChange:D=>k(D.target.value)})]})]}),F.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"sf",children:"Spreading Factor"}),F.jsx(Kt,{id:"sf",type:"number",min:"7",max:"12",value:N,onChange:D=>I(D.target.value)})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"cr",children:"Coding Rate"}),F.jsx(Kt,{id:"cr",type:"number",min:"1",max:"4",value:z,onChange:D=>j(D.target.value)})]})]}),F.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"tx-power",children:"TX Power (dBm)"}),F.jsx(Kt,{id:"tx-power",type:"number",value:T,onChange:D=>C(D.target.value)})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"max-tx",children:"Max TX Power"}),F.jsx(Kt,{id:"max-tx",type:"number",value:a.max_tx_power,disabled:!0})]})]}),F.jsx(Mu,{className:"my-4"}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"max-contacts",children:"Max Contacts on Radio"}),F.jsx(Kt,{id:"max-contacts",type:"number",min:"1",max:"1000",value:U,onChange:D=>G(D.target.value)}),F.jsx("p",{className:"text-xs text-muted-foreground",children:"Recent non-repeater contacts loaded to radio for DM auto-ACK (1-1000)"})]}),F.jsx(Mu,{className:"my-4"}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"private-key",children:"Set Private Key (write-only)"}),F.jsxs("div",{className:"flex gap-2",children:[F.jsx(Kt,{id:"private-key",type:"password",autoComplete:"off",value:H,onChange:D=>$(D.target.value),placeholder:"64-character hex private key",className:"flex-1"}),F.jsx(gr,{onClick:ge,disabled:re||!H.trim(),children:"Set"})]})]}),F.jsx(Mu,{className:"my-4"}),F.jsxs("div",{className:"space-y-3",children:[F.jsx(Vt,{children:"Reboot Radio"}),F.jsx(ex,{variant:"warning",children:F.jsx(tx,{children:"Some configuration changes (like name) require a radio reboot to take effect. The connection will temporarily drop and automatically reconnect."})}),F.jsx(gr,{variant:"outline",onClick:ne,disabled:J||re,className:"border-yellow-500/50 text-yellow-200 hover:bg-yellow-500/10",children:J?"Rebooting...":"Reboot Radio"})]}),se&&F.jsx("div",{className:"text-sm text-destructive",children:se})]}):F.jsx("div",{className:"py-8 text-center text-muted-foreground",children:"Loading configuration..."}),F.jsxs(p0,{children:[F.jsx(gr,{variant:"outline",onClick:l,children:"Cancel"}),F.jsx(gr,{onClick:q,disabled:re||!a,children:re?"Saving...":"Save Config"})]})]})})}function s2({open:r,health:a,onClose:s,onHealthRefresh:l}){const[f,d]=R.useState("14"),[m,h]=R.useState(!1),[x,p]=R.useState(!1),y=async()=>{const w=parseInt(f,10);if(isNaN(w)||w<1){Lt.error("Invalid retention days",{description:"Retention days must be at least 1"});return}h(!0);try{const S=await at.runMaintenance(w);Lt.success("Database cleanup complete",{description:`Deleted ${S.packets_deleted} old packet${S.packets_deleted===1?"":"s"}`}),await l()}catch(S){console.error("Failed to run maintenance:",S),Lt.error("Database cleanup failed",{description:S instanceof Error?S.message:"Unknown error"})}finally{h(!1)}},v=async()=>{p(!0);try{const w=await at.deduplicatePackets();w.started?Lt.success("Deduplication started",{description:w.message}):Lt.info("Deduplication",{description:w.message})}catch(w){console.error("Failed to start deduplication:",w),Lt.error("Deduplication failed",{description:w instanceof Error?w.message:"Unknown error"})}finally{p(!1)}};return F.jsx(h0,{open:r,onOpenChange:w=>!w&&s(),children:F.jsxs(zc,{className:"sm:max-w-[400px]",children:[F.jsx(jc,{children:F.jsx(Hc,{children:"Database Maintenance"})}),F.jsxs("div",{className:"space-y-4",children:[F.jsxs("p",{className:"text-sm text-muted-foreground",children:["Current database size:"," ",F.jsxs("span",{className:"font-medium",children:[(a==null?void 0:a.database_size_mb)??"?"," MB"]})]}),F.jsxs("div",{className:"space-y-3",children:[F.jsx(Vt,{children:"Cleanup Old Packets"}),F.jsx("p",{className:"text-xs text-muted-foreground",children:"Delete undecrypted packets older than the specified days. This helps manage storage for packets that couldn't be decrypted (unknown channel keys)."}),F.jsxs("div",{className:"flex gap-2 items-end",children:[F.jsxs("div",{className:"space-y-1",children:[F.jsx(Vt,{htmlFor:"retention-days",className:"text-xs",children:"Days to retain"}),F.jsx(Kt,{id:"retention-days",type:"number",min:"1",max:"365",value:f,onChange:w=>d(w.target.value),className:"w-20"})]}),F.jsx(gr,{variant:"outline",onClick:y,disabled:m,children:m?"Cleaning...":"Cleanup"})]})]}),F.jsxs("div",{className:"space-y-3",children:[F.jsx(Vt,{children:"Remove Duplicate Packets"}),F.jsx("p",{className:"text-xs text-muted-foreground",children:"Remove packets with duplicate payloads (same message received via different paths). Runs in background and may take a long time."}),F.jsx(gr,{variant:"outline",onClick:v,disabled:x,children:x?"Starting...":"Remove Duplicates"})]})]})]})})}function a2(r){return new Date(r*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Kp(r){return r.split("_").map(a=>a.charAt(0)+a.slice(1).toLowerCase()).join(" ")}function l2(r){if(!r.decrypted||!r.decrypted_info)return Kp(r.payload_type);const a=r.decrypted_info;return r.payload_type==="GROUP_TEXT"&&a.channel_name?`GroupText to ${a.channel_name}`:r.payload_type==="TEXT_MESSAGE"&&a.sender?`TextMessage from ${a.sender}`:Kp(r.payload_type)}function u2(r){const a=[];return r.snr!==null&&r.snr!==void 0&&a.push(`SNR: ${r.snr.toFixed(1)} dB`),r.rssi!==null&&r.rssi!==void 0&&a.push(`RSSI: ${r.rssi} dBm`),a.join(" | ")}function c2({packets:r}){const a=R.useRef(null);if(R.useEffect(()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},[r]),r.length===0)return F.jsx("div",{className:"h-full overflow-y-auto p-5 text-center text-muted-foreground",children:"No packets received yet. Packets will appear here in real-time."});const s=[...r].sort((l,f)=>l.timestamp-f.timestamp);return F.jsx("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-3",ref:a,children:s.map(l=>F.jsxs("div",{className:"py-2 px-3 bg-muted rounded",children:[F.jsxs("div",{className:l.decrypted?"text-primary":"text-destructive",children:[!l.decrypted&&F.jsx("span",{className:"mr-1",children:"🔒"}),l2(l)," • ",a2(l.timestamp)]}),(l.snr!==null||l.rssi!==null)&&F.jsx("div",{className:"text-[11px] text-muted-foreground mt-0.5",children:u2(l)}),F.jsx("div",{className:"font-mono text-[11px] break-all text-muted-foreground/70 mt-1",children:l.data.toUpperCase()})]},l.id))})}function nx(r,a){const s=R.useRef(a);R.useEffect(function(){a!==s.current&&r.attributionControl!=null&&(s.current!=null&&r.attributionControl.removeAttribution(s.current),a!=null&&r.attributionControl.addAttribution(a)),s.current=a},[r,a])}function d2(r,a,s){a.center!==s.center&&r.setLatLng(a.center),a.radius!=null&&a.radius!==s.radius&&r.setRadius(a.radius)}const f2=1;function h2(r){return Object.freeze({__version:f2,map:r})}function p2(r,a){return Object.freeze({...r,...a})}const rx=R.createContext(null),ix=rx.Provider;function Zc(){const r=R.useContext(rx);if(r==null)throw new Error("No context provided: useLeafletContext() can only be used in a descendant of ");return r}function m2(r){function a(s,l){const{instance:f,context:d}=r(s).current;return R.useImperativeHandle(l,()=>f),s.children==null?null:be.createElement(ix,{value:d},s.children)}return R.forwardRef(a)}function A2(r){function a(s,l){const[f,d]=R.useState(!1),{instance:m}=r(s,d).current;R.useImperativeHandle(l,()=>m),R.useEffect(function(){f&&m.update()},[m,f,s.children]);const h=m._contentNode;return h?s0.createPortal(s.children,h):null}return R.forwardRef(a)}function g2(r){function a(s,l){const{instance:f}=r(s).current;return R.useImperativeHandle(l,()=>f),null}return R.forwardRef(a)}function x0(r,a){const s=R.useRef();R.useEffect(function(){return a!=null&&r.instance.on(a),s.current=a,function(){s.current!=null&&r.instance.off(s.current),s.current=null}},[r,a])}function Wc(r,a){const s=r.pane??a.pane;return s?{...r,pane:s}:r}function x2(r,a){return function(l,f){const d=Zc(),m=r(Wc(l,d),d);return nx(d.map,l.attribution),x0(m.current,l.eventHandlers),a(m.current,d,l,f),m}}var Ja={exports:{}};/* @preserve +For more information, see https://radix-ui.com/primitives/docs/components/${a.docsSlug}`;return R.useEffect(()=>{r&&(document.getElementById(r)||console.error(s))},[s,r]),null},Aw="DialogDescriptionWarning",gw=({contentRef:r,descriptionId:a})=>{const l=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${xg(Aw).contentName}}.`;return R.useEffect(()=>{var d;const f=(d=r.current)==null?void 0:d.getAttribute("aria-describedby");a&&f&&(document.getElementById(a)||console.warn(l))},[l,r,a]),null},vg=og,yg=lg,Lc=ug,Mc=cg,Ic=fg,Oc=pg,_g=Ag;const p0=vg,xw=yg,wg=R.forwardRef(({className:r,...a},s)=>F.jsx(Lc,{ref:s,className:lt("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...a}));wg.displayName=Lc.displayName;const zc=R.forwardRef(({className:r,children:a,...s},l)=>F.jsxs(xw,{children:[F.jsx(wg,{}),F.jsxs(Mc,{ref:l,className:lt("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",r),...s,children:[a,F.jsxs(_g,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[F.jsx(kA,{className:"h-4 w-4"}),F.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));zc.displayName=Mc.displayName;const jc=({className:r,...a})=>F.jsx("div",{className:lt("flex flex-col space-y-1.5 text-center sm:text-left",r),...a});jc.displayName="DialogHeader";const m0=({className:r,...a})=>F.jsx("div",{className:lt("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",r),...a});m0.displayName="DialogFooter";const Hc=R.forwardRef(({className:r,...a},s)=>F.jsx(Ic,{ref:s,className:lt("text-lg font-semibold leading-none tracking-tight",r),...a}));Hc.displayName=Ic.displayName;const vw=R.forwardRef(({className:r,...a},s)=>F.jsx(Oc,{ref:s,className:lt("text-sm text-muted-foreground",r),...a}));vw.displayName=Oc.displayName;function Kp(r){const a=yw(r),s=R.forwardRef((l,f)=>{const{children:d,...m}=l,h=R.Children.toArray(d),x=h.find(ww);if(x){const p=x.props.children,y=h.map(v=>v===x?R.Children.count(p)>1?R.Children.only(null):R.isValidElement(p)?p.props.children:null:v);return F.jsx(a,{...m,ref:f,children:R.isValidElement(p)?R.cloneElement(p,void 0,y):null})}return F.jsx(a,{...m,ref:f,children:d})});return s.displayName=`${r}.Slot`,s}function yw(r){const a=R.forwardRef((s,l)=>{const{children:f,...d}=s;if(R.isValidElement(f)){const m=bw(f),h=Cw(d,f.props);return f.type!==R.Fragment&&(h.ref=l?ol(l,m):m),R.cloneElement(f,h)}return R.Children.count(f)>1?R.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var _w=Symbol("radix.slottable");function ww(r){return R.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===_w}function Cw(r,a){const s={...a};for(const l in a){const f=r[l],d=a[l];/^on[A-Z]/.test(l)?f&&d?s[l]=(...h)=>{const x=d(...h);return f(...h),x}:f&&(s[l]=f):l==="style"?s[l]={...f,...d}:l==="className"&&(s[l]=[f,d].filter(Boolean).join(" "))}return{...r,...s}}function bw(r){var l,f;let a=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,s=a&&"isReactWarning"in a&&a.isReactWarning;return s?r.ref:(a=(f=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:f.get,s=a&&"isReactWarning"in a&&a.isReactWarning,s?r.props.ref:r.props.ref||r.ref)}function Ew(r){const a=r+"CollectionProvider",[s,l]=sl(a),[f,d]=s(a,{collectionRef:{current:null},itemMap:new Map}),m=b=>{const{scope:E,children:P}=b,B=Ce.useRef(null),k=Ce.useRef(new Map).current;return F.jsx(f,{scope:E,itemMap:k,collectionRef:B,children:P})};m.displayName=a;const h=r+"CollectionSlot",x=Kp(h),p=Ce.forwardRef((b,E)=>{const{scope:P,children:B}=b,k=d(h,P),N=xr(E,k.collectionRef);return F.jsx(x,{ref:N,children:B})});p.displayName=h;const y=r+"CollectionItemSlot",v="data-radix-collection-item",w=Kp(y),S=Ce.forwardRef((b,E)=>{const{scope:P,children:B,...k}=b,N=Ce.useRef(null),I=xr(E,N),z=d(y,P);return Ce.useEffect(()=>(z.itemMap.set(N,{ref:N,...k}),()=>void z.itemMap.delete(N))),F.jsx(w,{[v]:"",ref:I,children:B})});S.displayName=y;function T(b){const E=d(r+"CollectionConsumer",b);return Ce.useCallback(()=>{const B=E.collectionRef.current;if(!B)return[];const k=Array.from(B.querySelectorAll(`[${v}]`));return Array.from(E.itemMap.values()).sort((z,j)=>k.indexOf(z.ref.current)-k.indexOf(j.ref.current))},[E.collectionRef,E.itemMap])}return[{Provider:m,Slot:p,ItemSlot:S},T,l]}var kw=R.createContext(void 0);function Cg(r){const a=R.useContext(kw);return r||a||"ltr"}var Mf="rovingFocusGroup.onEntryFocus",Sw={bubbles:!1,cancelable:!0},al="RovingFocusGroup",[Qf,bg,Bw]=Ew(al),[Pw,Eg]=sl(al,[Bw]),[Tw,Dw]=Pw(al),kg=R.forwardRef((r,a)=>F.jsx(Qf.Provider,{scope:r.__scopeRovingFocusGroup,children:F.jsx(Qf.Slot,{scope:r.__scopeRovingFocusGroup,children:F.jsx(Rw,{...r,ref:a})})}));kg.displayName=al;var Rw=R.forwardRef((r,a)=>{const{__scopeRovingFocusGroup:s,orientation:l,loop:f=!1,dir:d,currentTabStopId:m,defaultCurrentTabStopId:h,onCurrentTabStopIdChange:x,onEntryFocus:p,preventScrollOnEntryFocus:y=!1,...v}=r,w=R.useRef(null),S=xr(a,w),T=Cg(d),[b,E]=Rc({prop:m,defaultProp:h??null,onChange:x,caller:al}),[P,B]=R.useState(!1),k=Vs(p),N=bg(s),I=R.useRef(!1),[z,j]=R.useState(0);return R.useEffect(()=>{const H=w.current;if(H)return H.addEventListener(Mf,k),()=>H.removeEventListener(Mf,k)},[k]),F.jsx(Tw,{scope:s,orientation:l,dir:T,loop:f,currentTabStopId:b,onItemFocus:R.useCallback(H=>E(H),[E]),onItemShiftTab:R.useCallback(()=>B(!0),[]),onFocusableItemAdd:R.useCallback(()=>j(H=>H+1),[]),onFocusableItemRemove:R.useCallback(()=>j(H=>H-1),[]),children:F.jsx(cn.div,{tabIndex:P||z===0?-1:0,"data-orientation":l,...v,ref:S,style:{outline:"none",...r.style},onMouseDown:sn(r.onMouseDown,()=>{I.current=!0}),onFocus:sn(r.onFocus,H=>{const $=!I.current;if(H.target===H.currentTarget&&$&&!P){const U=new CustomEvent(Mf,Sw);if(H.currentTarget.dispatchEvent(U),!U.defaultPrevented){const G=N().filter(se=>se.focusable),re=G.find(se=>se.active),V=G.find(se=>se.id===b),le=[re,V,...G].filter(Boolean).map(se=>se.ref.current);Pg(le,y)}}I.current=!1}),onBlur:sn(r.onBlur,()=>B(!1))})})}),Sg="RovingFocusGroupItem",Bg=R.forwardRef((r,a)=>{const{__scopeRovingFocusGroup:s,focusable:l=!0,active:f=!1,tabStopId:d,children:m,...h}=r,x=tl(),p=d||x,y=Dw(Sg,s),v=y.currentTabStopId===p,w=bg(s),{onFocusableItemAdd:S,onFocusableItemRemove:T,currentTabStopId:b}=y;return R.useEffect(()=>{if(l)return S(),()=>T()},[l,S,T]),F.jsx(Qf.ItemSlot,{scope:s,id:p,focusable:l,active:f,children:F.jsx(cn.span,{tabIndex:v?0:-1,"data-orientation":y.orientation,...h,ref:a,onMouseDown:sn(r.onMouseDown,E=>{l?y.onItemFocus(p):E.preventDefault()}),onFocus:sn(r.onFocus,()=>y.onItemFocus(p)),onKeyDown:sn(r.onKeyDown,E=>{if(E.key==="Tab"&&E.shiftKey){y.onItemShiftTab();return}if(E.target!==E.currentTarget)return;const P=Lw(E,y.orientation,y.dir);if(P!==void 0){if(E.metaKey||E.ctrlKey||E.altKey||E.shiftKey)return;E.preventDefault();let k=w().filter(N=>N.focusable).map(N=>N.ref.current);if(P==="last")k.reverse();else if(P==="prev"||P==="next"){P==="prev"&&k.reverse();const N=k.indexOf(E.currentTarget);k=y.loop?Mw(k,N+1):k.slice(N+1)}setTimeout(()=>Pg(k))}}),children:typeof m=="function"?m({isCurrentTabStop:v,hasTabStop:b!=null}):m})})});Bg.displayName=Sg;var Fw={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Nw(r,a){return a!=="rtl"?r:r==="ArrowLeft"?"ArrowRight":r==="ArrowRight"?"ArrowLeft":r}function Lw(r,a,s){const l=Nw(r.key,s);if(!(a==="vertical"&&["ArrowLeft","ArrowRight"].includes(l))&&!(a==="horizontal"&&["ArrowUp","ArrowDown"].includes(l)))return Fw[l]}function Pg(r,a=!1){const s=document.activeElement;for(const l of r)if(l===s||(l.focus({preventScroll:a}),document.activeElement!==s))return}function Mw(r,a){return r.map((s,l)=>r[(a+l)%r.length])}var Iw=kg,Ow=Bg,Vc="Tabs",[zw]=sl(Vc,[Eg]),Tg=Eg(),[jw,A0]=zw(Vc),Dg=R.forwardRef((r,a)=>{const{__scopeTabs:s,value:l,onValueChange:f,defaultValue:d,orientation:m="horizontal",dir:h,activationMode:x="automatic",...p}=r,y=Cg(h),[v,w]=Rc({prop:l,onChange:f,defaultProp:d??"",caller:Vc});return F.jsx(jw,{scope:s,baseId:tl(),value:v,onValueChange:w,orientation:m,dir:y,activationMode:x,children:F.jsx(cn.div,{dir:y,"data-orientation":m,...p,ref:a})})});Dg.displayName=Vc;var Rg="TabsList",Fg=R.forwardRef((r,a)=>{const{__scopeTabs:s,loop:l=!0,...f}=r,d=A0(Rg,s),m=Tg(s);return F.jsx(Iw,{asChild:!0,...m,orientation:d.orientation,dir:d.dir,loop:l,children:F.jsx(cn.div,{role:"tablist","aria-orientation":d.orientation,...f,ref:a})})});Fg.displayName=Rg;var Ng="TabsTrigger",Lg=R.forwardRef((r,a)=>{const{__scopeTabs:s,value:l,disabled:f=!1,...d}=r,m=A0(Ng,s),h=Tg(s),x=Og(m.baseId,l),p=zg(m.baseId,l),y=l===m.value;return F.jsx(Ow,{asChild:!0,...h,focusable:!f,active:y,children:F.jsx(cn.button,{type:"button",role:"tab","aria-selected":y,"aria-controls":p,"data-state":y?"active":"inactive","data-disabled":f?"":void 0,disabled:f,id:x,...d,ref:a,onMouseDown:sn(r.onMouseDown,v=>{!f&&v.button===0&&v.ctrlKey===!1?m.onValueChange(l):v.preventDefault()}),onKeyDown:sn(r.onKeyDown,v=>{[" ","Enter"].includes(v.key)&&m.onValueChange(l)}),onFocus:sn(r.onFocus,()=>{const v=m.activationMode!=="manual";!y&&!f&&v&&m.onValueChange(l)})})})});Lg.displayName=Ng;var Mg="TabsContent",Ig=R.forwardRef((r,a)=>{const{__scopeTabs:s,value:l,forceMount:f,children:d,...m}=r,h=A0(Mg,s),x=Og(h.baseId,l),p=zg(h.baseId,l),y=l===h.value,v=R.useRef(y);return R.useEffect(()=>{const w=requestAnimationFrame(()=>v.current=!1);return()=>cancelAnimationFrame(w)},[]),F.jsx(qs,{present:f||y,children:({present:w})=>F.jsx(cn.div,{"data-state":y?"active":"inactive","data-orientation":h.orientation,role:"tabpanel","aria-labelledby":x,hidden:!w,id:p,tabIndex:0,...m,ref:a,style:{...r.style,animationDuration:v.current?"0s":void 0},children:w&&d})})});Ig.displayName=Mg;function Og(r,a){return`${r}-trigger-${a}`}function zg(r,a){return`${r}-content-${a}`}var Hw=Dg,jg=Fg,Hg=Lg,Vg=Ig;const Vw=Hw,Ug=R.forwardRef(({className:r,...a},s)=>F.jsx(jg,{ref:s,className:lt("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",r),...a}));Ug.displayName=jg.displayName;const Ya=R.forwardRef(({className:r,...a},s)=>F.jsx(Hg,{ref:s,className:lt("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",r),...a}));Ya.displayName=Hg.displayName;const Xa=R.forwardRef(({className:r,...a},s)=>F.jsx(Vg,{ref:s,className:lt("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",r),...a}));Xa.displayName=Vg.displayName;var Uw=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Zw=Uw.reduce((r,a)=>{const s=c0(`Primitive.${a}`),l=R.forwardRef((f,d)=>{const{asChild:m,...h}=f,x=m?s:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),F.jsx(x,{...h,ref:d})});return l.displayName=`Primitive.${a}`,{...r,[a]:l}},{}),Ww="Label",Zg=R.forwardRef((r,a)=>F.jsx(Zw.label,{...r,ref:a,onMouseDown:s=>{var f;s.target.closest("button, input, select, textarea")||((f=r.onMouseDown)==null||f.call(r,s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}}));Zg.displayName=Ww;var Wg=Zg;const qw=Dc("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Vt=R.forwardRef(({className:r,...a},s)=>F.jsx(Wg,{ref:s,className:lt(qw(),r),...a}));Vt.displayName=Wg.displayName;function Gw(r){const a=R.useRef({value:r,previous:r});return R.useMemo(()=>(a.current.value!==r&&(a.current.previous=a.current.value,a.current.value=r),a.current.previous),[r])}function Qw(r){const[a,s]=R.useState(void 0);return Hs(()=>{if(r){s({width:r.offsetWidth,height:r.offsetHeight});const l=new ResizeObserver(f=>{if(!Array.isArray(f)||!f.length)return;const d=f[0];let m,h;if("borderBoxSize"in d){const x=d.borderBoxSize,p=Array.isArray(x)?x[0]:x;m=p.inlineSize,h=p.blockSize}else m=r.offsetWidth,h=r.offsetHeight;s({width:m,height:h})});return l.observe(r,{box:"border-box"}),()=>l.unobserve(r)}else s(void 0)},[r]),a}var Uc="Checkbox",[Kw]=sl(Uc),[$w,g0]=Kw(Uc);function Yw(r){const{__scopeCheckbox:a,checked:s,children:l,defaultChecked:f,disabled:d,form:m,name:h,onCheckedChange:x,required:p,value:y="on",internal_do_not_use_render:v}=r,[w,S]=Rc({prop:s,defaultProp:f??!1,onChange:x,caller:Uc}),[T,b]=R.useState(null),[E,P]=R.useState(null),B=R.useRef(!1),k=T?!!m||!!T.closest("form"):!0,N={checked:w,disabled:d,setChecked:S,control:T,setControl:b,name:h,form:m,value:y,hasConsumerStoppedPropagationRef:B,required:p,defaultChecked:io(f)?!1:f,isFormControl:k,bubbleInput:E,setBubbleInput:P};return F.jsx($w,{scope:a,...N,children:Xw(v)?v(N):l})}var qg="CheckboxTrigger",Gg=R.forwardRef(({__scopeCheckbox:r,onKeyDown:a,onClick:s,...l},f)=>{const{control:d,value:m,disabled:h,checked:x,required:p,setControl:y,setChecked:v,hasConsumerStoppedPropagationRef:w,isFormControl:S,bubbleInput:T}=g0(qg,r),b=xr(f,y),E=R.useRef(x);return R.useEffect(()=>{const P=d==null?void 0:d.form;if(P){const B=()=>v(E.current);return P.addEventListener("reset",B),()=>P.removeEventListener("reset",B)}},[d,v]),F.jsx(cn.button,{type:"button",role:"checkbox","aria-checked":io(x)?"mixed":x,"aria-required":p,"data-state":Xg(x),"data-disabled":h?"":void 0,disabled:h,value:m,...l,ref:b,onKeyDown:sn(a,P=>{P.key==="Enter"&&P.preventDefault()}),onClick:sn(s,P=>{v(B=>io(B)?!0:!B),T&&S&&(w.current=P.isPropagationStopped(),w.current||P.stopPropagation())})})});Gg.displayName=qg;var x0=R.forwardRef((r,a)=>{const{__scopeCheckbox:s,name:l,checked:f,defaultChecked:d,required:m,disabled:h,value:x,onCheckedChange:p,form:y,...v}=r;return F.jsx(Yw,{__scopeCheckbox:s,checked:f,defaultChecked:d,disabled:h,required:m,onCheckedChange:p,name:l,form:y,value:x,internal_do_not_use_render:({isFormControl:w})=>F.jsxs(F.Fragment,{children:[F.jsx(Gg,{...v,ref:a,__scopeCheckbox:s}),w&&F.jsx(Yg,{__scopeCheckbox:s})]})})});x0.displayName=Uc;var Qg="CheckboxIndicator",Kg=R.forwardRef((r,a)=>{const{__scopeCheckbox:s,forceMount:l,...f}=r,d=g0(Qg,s);return F.jsx(qs,{present:l||io(d.checked)||d.checked===!0,children:F.jsx(cn.span,{"data-state":Xg(d.checked),"data-disabled":d.disabled?"":void 0,...f,ref:a,style:{pointerEvents:"none",...r.style}})})});Kg.displayName=Qg;var $g="CheckboxBubbleInput",Yg=R.forwardRef(({__scopeCheckbox:r,...a},s)=>{const{control:l,hasConsumerStoppedPropagationRef:f,checked:d,defaultChecked:m,required:h,disabled:x,name:p,value:y,form:v,bubbleInput:w,setBubbleInput:S}=g0($g,r),T=xr(s,S),b=Gw(d),E=Qw(l);R.useEffect(()=>{const B=w;if(!B)return;const k=window.HTMLInputElement.prototype,I=Object.getOwnPropertyDescriptor(k,"checked").set,z=!f.current;if(b!==d&&I){const j=new Event("click",{bubbles:z});B.indeterminate=io(d),I.call(B,io(d)?!1:d),B.dispatchEvent(j)}},[w,b,d,f]);const P=R.useRef(io(d)?!1:d);return F.jsx(cn.input,{type:"checkbox","aria-hidden":!0,defaultChecked:m??P.current,required:h,disabled:x,name:p,value:y,form:v,...a,tabIndex:-1,ref:T,style:{...a.style,...E,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});Yg.displayName=$g;function Xw(r){return typeof r=="function"}function io(r){return r==="indeterminate"}function Xg(r){return io(r)?"indeterminate":r?"checked":"unchecked"}const Jg=R.forwardRef(({className:r,...a},s)=>F.jsx(x0,{ref:s,className:lt("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",r),...a,children:F.jsx(Kg,{className:lt("flex items-center justify-center text-current"),children:F.jsx(gy,{className:"h-4 w-4"})})}));Jg.displayName=x0.displayName;function Jw({open:r,contacts:a,undecryptedCount:s,onClose:l,onSelectConversation:f,onCreateContact:d,onCreateChannel:m,onCreateHashtagChannel:h}){const[x,p]=R.useState("existing"),[y,v]=R.useState(""),[w,S]=R.useState(""),[T,b]=R.useState(!1),[E,P]=R.useState(""),[B,k]=R.useState(!1),N=R.useRef(null),I=async()=>{P(""),k(!0);try{if(x==="new-contact"){if(!y.trim()||!w.trim()){P("Name and public key are required");return}await d(y.trim(),w.trim(),T),f({type:"contact",id:w.trim(),name:y.trim()})}else if(x==="new-room"){if(!y.trim()||!w.trim()){P("Room name and key are required");return}await m(y.trim(),w.trim(),T)}else if(x==="hashtag"){const $=y.trim(),U=z($);if(U){P(U);return}await h(`#${$}`,T)}l()}catch($){P($ instanceof Error?$.message:"Failed to create")}finally{k(!1)}},z=$=>$?/^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/.test($)?null:"Use letters, numbers, and single dashes (no leading/trailing dashes)":"Channel name is required",j=async()=>{var G;P("");const $=y.trim(),U=z($);if(U){P(U);return}k(!0);try{await h(`#${$}`,T),v(""),(G=N.current)==null||G.focus()}catch(re){P(re instanceof Error?re.message:"Failed to create")}finally{k(!1)}},H=x!=="existing"&&s>0;return F.jsx(p0,{open:r,onOpenChange:$=>!$&&l(),children:F.jsxs(zc,{className:"sm:max-w-[500px]",children:[F.jsx(jc,{children:F.jsx(Hc,{children:"New Conversation"})}),F.jsxs(Vw,{value:x,onValueChange:$=>p($),className:"w-full",children:[F.jsxs(Ug,{className:"grid w-full grid-cols-4",children:[F.jsx(Ya,{value:"existing",children:"Existing"}),F.jsx(Ya,{value:"new-contact",children:"Contact"}),F.jsx(Ya,{value:"new-room",children:"Room"}),F.jsx(Ya,{value:"hashtag",children:"Hashtag"})]}),F.jsx(Xa,{value:"existing",className:"mt-4",children:F.jsx("div",{className:"max-h-[300px] overflow-y-auto rounded-md border",children:a.length===0?F.jsx("div",{className:"p-4 text-center text-muted-foreground",children:"No contacts available"}):a.map($=>F.jsx("div",{className:"cursor-pointer px-4 py-2 hover:bg-accent",onClick:()=>{f({type:"contact",id:$.public_key,name:Vo($.name,$.public_key)}),l()},children:Vo($.name,$.public_key)},$.public_key))})}),F.jsxs(Xa,{value:"new-contact",className:"mt-4 space-y-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"contact-name",children:"Name"}),F.jsx(Kt,{id:"contact-name",value:y,onChange:$=>v($.target.value),placeholder:"Contact name"})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"contact-key",children:"Public Key"}),F.jsx(Kt,{id:"contact-key",value:w,onChange:$=>S($.target.value),placeholder:"64-character hex public key"})]})]}),F.jsxs(Xa,{value:"new-room",className:"mt-4 space-y-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"room-name",children:"Room Name"}),F.jsx(Kt,{id:"room-name",value:y,onChange:$=>v($.target.value),placeholder:"Room name"})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"room-key",children:"Room Key"}),F.jsx(Kt,{id:"room-key",value:w,onChange:$=>S($.target.value),placeholder:"Pre-shared key (hex)"})]})]}),F.jsx(Xa,{value:"hashtag",className:"mt-4",children:F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"hashtag-name",children:"Hashtag Channel"}),F.jsxs("div",{className:"flex items-center gap-1",children:[F.jsx("span",{className:"text-sm text-muted-foreground",children:"#"}),F.jsx(Kt,{ref:N,id:"hashtag-name",value:y,onChange:$=>v($.target.value),placeholder:"channel-name",className:"flex-1"})]})]})})]}),H&&F.jsxs("div",{className:"space-y-1",children:[F.jsxs("div",{className:"flex items-center justify-end space-x-2",children:[F.jsxs(Vt,{htmlFor:"try-historical",className:"text-sm text-muted-foreground cursor-pointer",children:["Try decrypting ",s.toLocaleString()," stored packet",s!==1?"s":""]}),F.jsx(Jg,{id:"try-historical",checked:T,onCheckedChange:$=>b($===!0)})]}),T&&F.jsx("p",{className:"text-xs text-muted-foreground text-right",children:"Messages will stream in as they decrypt in the background"})]}),E&&F.jsx("div",{className:"text-sm text-destructive",children:E}),F.jsxs(m0,{children:[F.jsx(gr,{variant:"outline",onClick:l,children:"Cancel"}),x==="hashtag"&&F.jsx(gr,{variant:"secondary",onClick:j,disabled:B,children:B?"Creating...":"Create & Add Another"}),x!=="existing"&&F.jsx(gr,{onClick:I,disabled:B,children:B?"Creating...":"Create"})]})]})})}var e2=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],t2=e2.reduce((r,a)=>{const s=c0(`Primitive.${a}`),l=R.forwardRef((f,d)=>{const{asChild:m,...h}=f,x=m?s:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),F.jsx(x,{...h,ref:d})});return l.displayName=`Primitive.${a}`,{...r,[a]:l}},{}),n2="Separator",$p="horizontal",r2=["horizontal","vertical"],ex=R.forwardRef((r,a)=>{const{decorative:s,orientation:l=$p,...f}=r,d=i2(l)?l:$p,h=s?{role:"none"}:{"aria-orientation":d==="vertical"?d:void 0,role:"separator"};return F.jsx(t2.div,{"data-orientation":d,...h,...f,ref:a})});ex.displayName=n2;function i2(r){return r2.includes(r)}var tx=ex;const Mu=R.forwardRef(({className:r,orientation:a="horizontal",decorative:s=!0,...l},f)=>F.jsx(tx,{ref:f,decorative:s,orientation:a,className:lt("shrink-0 bg-border",a==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",r),...l}));Mu.displayName=tx.displayName;const o2=Dc("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",warning:"border-yellow-500/50 bg-yellow-500/10 text-yellow-200 [&>svg]:text-yellow-500"}},defaultVariants:{variant:"default"}}),nx=R.forwardRef(({className:r,variant:a,...s},l)=>F.jsx("div",{ref:l,role:"alert",className:lt(o2({variant:a}),r),...s}));nx.displayName="Alert";const s2=R.forwardRef(({className:r,...a},s)=>F.jsx("h5",{ref:s,className:lt("mb-1 font-medium leading-none tracking-tight",r),...a}));s2.displayName="AlertTitle";const rx=R.forwardRef(({className:r,...a},s)=>F.jsx("div",{ref:s,className:lt("text-sm [&_p]:leading-relaxed",r),...a}));rx.displayName="AlertDescription";function a2({open:r,config:a,appSettings:s,onClose:l,onSave:f,onSaveAppSettings:d,onSetPrivateKey:m,onReboot:h}){const[x,p]=R.useState(""),[y,v]=R.useState(""),[w,S]=R.useState(""),[T,b]=R.useState(""),[E,P]=R.useState(""),[B,k]=R.useState(""),[N,I]=R.useState(""),[z,j]=R.useState(""),[H,$]=R.useState(""),[U,G]=R.useState(""),[re,V]=R.useState(!1),[J,le]=R.useState(!1),[se,de]=R.useState("");R.useEffect(()=>{a&&(p(a.name),v(String(a.lat)),S(String(a.lon)),b(String(a.tx_power)),P(String(a.radio.freq)),k(String(a.radio.bw)),I(String(a.radio.sf)),j(String(a.radio.cr)))},[a]),R.useEffect(()=>{s&&G(String(s.max_radio_contacts))},[s]);const q=async()=>{de(""),V(!0);try{const D={name:x,lat:parseFloat(y),lon:parseFloat(w),tx_power:parseInt(T,10),radio:{freq:parseFloat(E),bw:parseFloat(B),sf:parseInt(N,10),cr:parseInt(z,10)}};await f(D);const Z=parseInt(U,10);!isNaN(Z)&&Z!==(s==null?void 0:s.max_radio_contacts)&&await d({max_radio_contacts:Z}),l()}catch(D){de(D instanceof Error?D.message:"Failed to save")}finally{V(!1)}},ge=async()=>{if(!H.trim()){de("Private key is required");return}de(""),V(!0);try{await m(H.trim()),$(""),l()}catch(D){de(D instanceof Error?D.message:"Failed to set private key")}finally{V(!1)}},ne=async()=>{if(confirm("Are you sure you want to reboot the radio? The connection will drop temporarily.")){de(""),le(!0);try{await h(),l()}catch(D){de(D instanceof Error?D.message:"Failed to reboot radio")}finally{le(!1)}}};return F.jsx(p0,{open:r,onOpenChange:D=>!D&&l(),children:F.jsxs(zc,{className:"sm:max-w-[500px] max-h-[90vh] overflow-y-auto",children:[F.jsx(jc,{children:F.jsx(Hc,{children:"Radio Configuration"})}),a?F.jsxs("div",{className:"space-y-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"public-key",children:"Public Key"}),F.jsx(Kt,{id:"public-key",value:a.public_key,disabled:!0})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"name",children:"Name"}),F.jsx(Kt,{id:"name",value:x,onChange:D=>p(D.target.value)})]}),F.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"lat",children:"Latitude"}),F.jsx(Kt,{id:"lat",type:"number",step:"any",value:y,onChange:D=>v(D.target.value)})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"lon",children:"Longitude"}),F.jsx(Kt,{id:"lon",type:"number",step:"any",value:w,onChange:D=>S(D.target.value)})]})]}),F.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"freq",children:"Frequency (MHz)"}),F.jsx(Kt,{id:"freq",type:"number",step:"any",value:E,onChange:D=>P(D.target.value)})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"bw",children:"Bandwidth (kHz)"}),F.jsx(Kt,{id:"bw",type:"number",step:"any",value:B,onChange:D=>k(D.target.value)})]})]}),F.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"sf",children:"Spreading Factor"}),F.jsx(Kt,{id:"sf",type:"number",min:"7",max:"12",value:N,onChange:D=>I(D.target.value)})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"cr",children:"Coding Rate"}),F.jsx(Kt,{id:"cr",type:"number",min:"1",max:"4",value:z,onChange:D=>j(D.target.value)})]})]}),F.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"tx-power",children:"TX Power (dBm)"}),F.jsx(Kt,{id:"tx-power",type:"number",value:T,onChange:D=>b(D.target.value)})]}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"max-tx",children:"Max TX Power"}),F.jsx(Kt,{id:"max-tx",type:"number",value:a.max_tx_power,disabled:!0})]})]}),F.jsx(Mu,{className:"my-4"}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"max-contacts",children:"Max Contacts on Radio"}),F.jsx(Kt,{id:"max-contacts",type:"number",min:"1",max:"1000",value:U,onChange:D=>G(D.target.value)}),F.jsx("p",{className:"text-xs text-muted-foreground",children:"Recent non-repeater contacts loaded to radio for DM auto-ACK (1-1000)"})]}),F.jsx(Mu,{className:"my-4"}),F.jsxs("div",{className:"space-y-2",children:[F.jsx(Vt,{htmlFor:"private-key",children:"Set Private Key (write-only)"}),F.jsxs("div",{className:"flex gap-2",children:[F.jsx(Kt,{id:"private-key",type:"password",autoComplete:"off",value:H,onChange:D=>$(D.target.value),placeholder:"64-character hex private key",className:"flex-1"}),F.jsx(gr,{onClick:ge,disabled:re||!H.trim(),children:"Set"})]})]}),F.jsx(Mu,{className:"my-4"}),F.jsxs("div",{className:"space-y-3",children:[F.jsx(Vt,{children:"Reboot Radio"}),F.jsx(nx,{variant:"warning",children:F.jsx(rx,{children:"Some configuration changes (like name) require a radio reboot to take effect. The connection will temporarily drop and automatically reconnect."})}),F.jsx(gr,{variant:"outline",onClick:ne,disabled:J||re,className:"border-yellow-500/50 text-yellow-200 hover:bg-yellow-500/10",children:J?"Rebooting...":"Reboot Radio"})]}),se&&F.jsx("div",{className:"text-sm text-destructive",children:se})]}):F.jsx("div",{className:"py-8 text-center text-muted-foreground",children:"Loading configuration..."}),F.jsxs(m0,{children:[F.jsx(gr,{variant:"outline",onClick:l,children:"Cancel"}),F.jsx(gr,{onClick:q,disabled:re||!a,children:re?"Saving...":"Save Config"})]})]})})}function l2({open:r,health:a,onClose:s,onHealthRefresh:l}){const[f,d]=R.useState("14"),[m,h]=R.useState(!1),[x,p]=R.useState(!1),y=async()=>{const w=parseInt(f,10);if(isNaN(w)||w<1){Lt.error("Invalid retention days",{description:"Retention days must be at least 1"});return}h(!0);try{const S=await at.runMaintenance(w);Lt.success("Database cleanup complete",{description:`Deleted ${S.packets_deleted} old packet${S.packets_deleted===1?"":"s"}`}),await l()}catch(S){console.error("Failed to run maintenance:",S),Lt.error("Database cleanup failed",{description:S instanceof Error?S.message:"Unknown error"})}finally{h(!1)}},v=async()=>{p(!0);try{const w=await at.deduplicatePackets();w.started?Lt.success("Deduplication started",{description:w.message}):Lt.info("Deduplication",{description:w.message})}catch(w){console.error("Failed to start deduplication:",w),Lt.error("Deduplication failed",{description:w instanceof Error?w.message:"Unknown error"})}finally{p(!1)}};return F.jsx(p0,{open:r,onOpenChange:w=>!w&&s(),children:F.jsxs(zc,{className:"sm:max-w-[400px]",children:[F.jsx(jc,{children:F.jsx(Hc,{children:"Database Maintenance"})}),F.jsxs("div",{className:"space-y-4",children:[F.jsxs("p",{className:"text-sm text-muted-foreground",children:["Current database size:"," ",F.jsxs("span",{className:"font-medium",children:[(a==null?void 0:a.database_size_mb)??"?"," MB"]})]}),F.jsxs("div",{className:"space-y-3",children:[F.jsx(Vt,{children:"Cleanup Old Packets"}),F.jsx("p",{className:"text-xs text-muted-foreground",children:"Delete undecrypted packets older than the specified days. This helps manage storage for packets that couldn't be decrypted (unknown channel keys)."}),F.jsxs("div",{className:"flex gap-2 items-end",children:[F.jsxs("div",{className:"space-y-1",children:[F.jsx(Vt,{htmlFor:"retention-days",className:"text-xs",children:"Days to retain"}),F.jsx(Kt,{id:"retention-days",type:"number",min:"1",max:"365",value:f,onChange:w=>d(w.target.value),className:"w-20"})]}),F.jsx(gr,{variant:"outline",onClick:y,disabled:m,children:m?"Cleaning...":"Cleanup"})]})]}),F.jsxs("div",{className:"space-y-3",children:[F.jsx(Vt,{children:"Remove Duplicate Packets"}),F.jsx("p",{className:"text-xs text-muted-foreground",children:"Remove packets with duplicate payloads (same message received via different paths). Runs in background and may take a long time."}),F.jsx(gr,{variant:"outline",onClick:v,disabled:x,children:x?"Starting...":"Remove Duplicates"})]})]})]})})}function u2(r){return new Date(r*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function Yp(r){return r.split("_").map(a=>a.charAt(0)+a.slice(1).toLowerCase()).join(" ")}function c2(r){if(!r.decrypted||!r.decrypted_info)return Yp(r.payload_type);const a=r.decrypted_info;return r.payload_type==="GROUP_TEXT"&&a.channel_name?`GroupText to ${a.channel_name}`:r.payload_type==="TEXT_MESSAGE"&&a.sender?`TextMessage from ${a.sender}`:Yp(r.payload_type)}function d2(r){const a=[];return r.snr!==null&&r.snr!==void 0&&a.push(`SNR: ${r.snr.toFixed(1)} dB`),r.rssi!==null&&r.rssi!==void 0&&a.push(`RSSI: ${r.rssi} dBm`),a.join(" | ")}function f2({packets:r}){const a=R.useRef(null);if(R.useEffect(()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},[r]),r.length===0)return F.jsx("div",{className:"h-full overflow-y-auto p-5 text-center text-muted-foreground",children:"No packets received yet. Packets will appear here in real-time."});const s=[...r].sort((l,f)=>l.timestamp-f.timestamp);return F.jsx("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-3",ref:a,children:s.map(l=>F.jsxs("div",{className:"py-2 px-3 bg-muted rounded",children:[F.jsxs("div",{className:l.decrypted?"text-primary":"text-destructive",children:[!l.decrypted&&F.jsx("span",{className:"mr-1",children:"🔒"}),c2(l)," • ",u2(l.timestamp)]}),(l.snr!==null||l.rssi!==null)&&F.jsx("div",{className:"text-[11px] text-muted-foreground mt-0.5",children:d2(l)}),F.jsx("div",{className:"font-mono text-[11px] break-all text-muted-foreground/70 mt-1",children:l.data.toUpperCase()})]},l.id))})}function ix(r,a){const s=R.useRef(a);R.useEffect(function(){a!==s.current&&r.attributionControl!=null&&(s.current!=null&&r.attributionControl.removeAttribution(s.current),a!=null&&r.attributionControl.addAttribution(a)),s.current=a},[r,a])}function h2(r,a,s){a.center!==s.center&&r.setLatLng(a.center),a.radius!=null&&a.radius!==s.radius&&r.setRadius(a.radius)}const p2=1;function m2(r){return Object.freeze({__version:p2,map:r})}function A2(r,a){return Object.freeze({...r,...a})}const ox=R.createContext(null),sx=ox.Provider;function Zc(){const r=R.useContext(ox);if(r==null)throw new Error("No context provided: useLeafletContext() can only be used in a descendant of ");return r}function g2(r){function a(s,l){const{instance:f,context:d}=r(s).current;return R.useImperativeHandle(l,()=>f),s.children==null?null:Ce.createElement(sx,{value:d},s.children)}return R.forwardRef(a)}function x2(r){function a(s,l){const[f,d]=R.useState(!1),{instance:m}=r(s,d).current;R.useImperativeHandle(l,()=>m),R.useEffect(function(){f&&m.update()},[m,f,s.children]);const h=m._contentNode;return h?a0.createPortal(s.children,h):null}return R.forwardRef(a)}function v2(r){function a(s,l){const{instance:f}=r(s).current;return R.useImperativeHandle(l,()=>f),null}return R.forwardRef(a)}function v0(r,a){const s=R.useRef();R.useEffect(function(){return a!=null&&r.instance.on(a),s.current=a,function(){s.current!=null&&r.instance.off(s.current),s.current=null}},[r,a])}function Wc(r,a){const s=r.pane??a.pane;return s?{...r,pane:s}:r}function y2(r,a){return function(l,f){const d=Zc(),m=r(Wc(l,d),d);return ix(d.map,l.attribution),v0(m.current,l.eventHandlers),a(m.current,d,l,f),m}}var Ja={exports:{}};/* @preserve * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade - */var v2=Ja.exports,$p;function y2(){return $p||($p=1,(function(r,a){(function(s,l){l(a)})(v2,(function(s){var l="1.9.4";function f(t){var i,u,A,b;for(u=1,A=arguments.length;u"u"||!L||!L.Mixin)){t=k(t)?t:[t];for(var i=0;i0?Math.floor(t):Math.ceil(t)};q.prototype={clone:function(){return new q(this.x,this.y)},add:function(t){return this.clone()._add(ne(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(ne(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new q(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new q(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=ge(this.x),this.y=ge(this.y),this},distanceTo:function(t){t=ne(t);var i=t.x-this.x,u=t.y-this.y;return Math.sqrt(i*i+u*u)},equals:function(t){return t=ne(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=ne(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+w(this.x)+", "+w(this.y)+")"}};function ne(t,i,u){return t instanceof q?t:k(t)?new q(t[0],t[1]):t==null?t:typeof t=="object"&&"x"in t&&"y"in t?new q(t.x,t.y):new q(t,i,u)}function D(t,i){if(t)for(var u=i?[t,i]:t,A=0,b=u.length;A=this.min.x&&u.x<=this.max.x&&i.y>=this.min.y&&u.y<=this.max.y},intersects:function(t){t=Z(t);var i=this.min,u=this.max,A=t.min,b=t.max,O=b.x>=i.x&&A.x<=u.x,Q=b.y>=i.y&&A.y<=u.y;return O&&Q},overlaps:function(t){t=Z(t);var i=this.min,u=this.max,A=t.min,b=t.max,O=b.x>i.x&&A.xi.y&&A.y=i.lat&&b.lat<=u.lat&&A.lng>=i.lng&&b.lng<=u.lng},intersects:function(t){t=X(t);var i=this._southWest,u=this._northEast,A=t.getSouthWest(),b=t.getNorthEast(),O=b.lat>=i.lat&&A.lat<=u.lat,Q=b.lng>=i.lng&&A.lng<=u.lng;return O&&Q},overlaps:function(t){t=X(t);var i=this._southWest,u=this._northEast,A=t.getSouthWest(),b=t.getNorthEast(),O=b.lat>i.lat&&A.lati.lng&&A.lng1,Rt=(function(){var t=!1;try{var i=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",v,i),window.removeEventListener("testPassiveEventSupport",v,i)}catch{}return t})(),Fn=(function(){return!!document.createElement("canvas").getContext})(),rt=!!(document.createElementNS&&dt("svg").createSVGRect),wt=!!rt&&(function(){var t=document.createElement("div");return t.innerHTML="",(t.firstChild&&t.firstChild.namespaceURI)==="http://www.w3.org/2000/svg"})(),Wn=!rt&&(function(){try{var t=document.createElement("div");t.innerHTML='';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&typeof i.adj=="object"}catch{return!1}})(),mt=navigator.platform.indexOf("Mac")===0,Ft=navigator.platform.indexOf("Linux")===0;function Wt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var Pe={ie:ot,ielt9:Qe,edge:Xe,webkit:et,android:Oe,android23:_t,androidStock:Un,opera:It,chrome:Jt,gecko:fn,safari:Sn,phantom:Ut,opera12:St,win:Zt,ie3d:Zn,webkit3d:xn,gecko3d:pe,any3d:we,mobile:te,mobileWebkit:me,mobileWebkit3d:Ee,msPointer:He,pointer:ze,touch:hn,touchNative:nt,mobileOpera:je,mobileGecko:pt,retina:kt,passiveEvents:Rt,canvas:Fn,svg:rt,vml:Wn,inlineSvg:wt,mac:mt,linux:Ft},wi=Pe.msPointer?"MSPointerDown":"pointerdown",Go=Pe.msPointer?"MSPointerMove":"pointermove",ul=Pe.msPointer?"MSPointerUp":"pointerup",cl=Pe.msPointer?"MSPointerCancel":"pointercancel",Gs={touchstart:wi,touchmove:Go,touchend:ul,touchcancel:cl},Nr={touchstart:Ot,touchmove:Qo,touchend:Qo,touchcancel:Qo},Yr={},Qs=!1;function Yc(t,i,u){return i==="touchstart"&&Xc(),Nr[i]?(u=Nr[i].bind(this,u),t.addEventListener(Gs[i],u,!1),u):(console.warn("wrong event specified:",i),v)}function dl(t,i,u){if(!Gs[i]){console.warn("wrong event specified:",i);return}t.removeEventListener(Gs[i],u,!1)}function fl(t){Yr[t.pointerId]=t}function hl(t){Yr[t.pointerId]&&(Yr[t.pointerId]=t)}function Ks(t){delete Yr[t.pointerId]}function Xc(){Qs||(document.addEventListener(wi,fl,!0),document.addEventListener(Go,hl,!0),document.addEventListener(ul,Ks,!0),document.addEventListener(cl,Ks,!0),Qs=!0)}function Qo(t,i){if(i.pointerType!==(i.MSPOINTER_TYPE_MOUSE||"mouse")){i.touches=[];for(var u in Yr)i.touches.push(Yr[u]);i.changedTouches=[i],t(i)}}function Ot(t,i){i.MSPOINTER_TYPE_TOUCH&&i.pointerType===i.MSPOINTER_TYPE_TOUCH&&zt(i),Qo(t,i)}function Jc(t){var i={},u,A;for(A in t)u=t[A],i[A]=u&&u.bind?u.bind(t):u;return t=i,i.type="dblclick",i.detail=2,i.isTrusted=!1,i._simulated=!0,i}var $s=200;function pl(t,i){t.addEventListener("dblclick",i);var u=0,A;function b(O){if(O.detail!==1){A=O.detail;return}if(!(O.pointerType==="mouse"||O.sourceCapabilities&&!O.sourceCapabilities.firesTouchEvents)){var Q=ei(O);if(!(Q.some(function(ue){return ue instanceof HTMLLabelElement&&ue.attributes.for})&&!Q.some(function(ue){return ue instanceof HTMLInputElement||ue instanceof HTMLSelectElement}))){var ie=Date.now();ie-u<=$s?(A++,A===2&&i(Jc(O))):A=1,u=ie}}}return t.addEventListener("click",b),{dblclick:i,simDblclick:b}}function Ko(t,i){t.removeEventListener("dblclick",i.dblclick),t.removeEventListener("click",i.simDblclick)}var Ys=ki(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),bi=ki(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),ao=bi==="webkitTransition"||bi==="OTransition"?bi+"End":"transitionend";function qn(t){return typeof t=="string"?document.getElementById(t):t}function lo(t,i){var u=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!u||u==="auto")&&document.defaultView){var A=document.defaultView.getComputedStyle(t,null);u=A?A[i]:null}return u==="auto"?null:u}function Je(t,i,u){var A=document.createElement(t);return A.className=i||"",u&&u.appendChild(A),A}function Tt(t){var i=t.parentNode;i&&i.removeChild(t)}function $o(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function Ci(t){var i=t.parentNode;i&&i.lastChild!==t&&i.appendChild(t)}function vr(t){var i=t.parentNode;i&&i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function Ei(t,i){if(t.classList!==void 0)return t.classList.contains(i);var u=Yo(t);return u.length>0&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(u)}function $e(t,i){if(t.classList!==void 0)for(var u=T(i),A=0,b=u.length;A0?2*window.devicePixelRatio:1;function Al(t){return Pe.edge?t.wheelDeltaY/2:t.deltaY&&t.deltaMode===0?-t.deltaY/ed:t.deltaY&&t.deltaMode===1?-t.deltaY*20:t.deltaY&&t.deltaMode===2?-t.deltaY*60:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?-t.detail*20:t.detail?t.detail/-32765*60:0}function mo(t,i){var u=i.relatedTarget;if(!u)return!0;try{for(;u&&u!==t;)u=u.parentNode}catch{return!1}return u!==t}var rs={__proto__:null,on:Ge,off:bt,stopPropagation:sr,disableScrollPropagation:ns,disableClickPropagation:ho,preventDefault:zt,stop:Kn,getPropagationPath:ei,getMousePosition:po,getWheelDelta:Al,isExternalTarget:mo,addListener:Ge,removeListener:bt},is=de.extend({run:function(t,i,u,A){this.stop(),this._el=t,this._inProgress=!0,this._duration=u||.25,this._easeOutPower=1/Math.max(A||.5,.2),this._startPos=yr(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=G(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,u=this._duration*1e3;ithis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var u=this.getCenter(),A=this._limitCenter(u,this._zoom,X(t));return u.equals(A)||this.panTo(A,i),this._enforcingBounds=!1,this},panInside:function(t,i){i=i||{};var u=ne(i.paddingTopLeft||i.padding||[0,0]),A=ne(i.paddingBottomRight||i.padding||[0,0]),b=this.project(this.getCenter()),O=this.project(t),Q=this.getPixelBounds(),ie=Z([Q.min.add(u),Q.max.subtract(A)]),ue=ie.getSize();if(!ie.contains(O)){this._enforcingBounds=!0;var xe=O.subtract(ie.getCenter()),Be=ie.extend(O).getSize().subtract(ue);b.x+=xe.x<0?-Be.x:Be.x,b.y+=xe.y<0?-Be.y:Be.y,this.panTo(this.unproject(b),i),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=f({animate:!1,pan:!0},t===!0?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var u=this.getSize(),A=i.divideBy(2).round(),b=u.divideBy(2).round(),O=A.subtract(b);return!O.x&&!O.y?this:(t.animate&&t.pan?this.panBy(O):(t.pan&&this._rawPanBy(O),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(m(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:u}))},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=f({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=m(this._handleGeolocationResponse,this),u=m(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,u,t):navigator.geolocation.getCurrentPosition(i,u,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var i=t.code,u=t.message||(i===1?"permission denied":i===2?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+u+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var i=t.coords.latitude,u=t.coords.longitude,A=new fe(i,u),b=A.toBounds(t.coords.accuracy*2),O=this._locateOptions;if(O.setView){var Q=this.getBoundsZoom(b);this.setView(A,O.maxZoom?Math.min(Q,O.maxZoom):Q)}var ie={latlng:A,bounds:b,timestamp:t.timestamp};for(var ue in t.coords)typeof t.coords[ue]=="number"&&(ie[ue]=t.coords[ue]);this.fire("locationfound",ie)}},addHandler:function(t,i){if(!i)return this;var u=this[t]=new i(this);return this._handlers.push(u),this.options[t]&&u.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch{this._container._leaflet_id=void 0,this._containerId=void 0}this._locationWatchId!==void 0&&this.stopLocate(),this._stop(),Tt(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(re(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload");var t;for(t in this._layers)this._layers[t].remove();for(t in this._panes)Tt(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var u="leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),A=Je("div",u,i||this._mapPane);return t&&(this._panes[t]=A),A},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),i=this.unproject(t.getBottomLeft()),u=this.unproject(t.getTopRight());return new K(i,u)},getMinZoom:function(){return this.options.minZoom===void 0?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===void 0?this._layersMaxZoom===void 0?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,i,u){t=X(t),u=ne(u||[0,0]);var A=this.getZoom()||0,b=this.getMinZoom(),O=this.getMaxZoom(),Q=t.getNorthWest(),ie=t.getSouthEast(),ue=this.getSize().subtract(u),xe=Z(this.project(ie,A),this.project(Q,A)).getSize(),Be=Pe.any3d?this.options.zoomSnap:1,Ue=ue.x/xe.x,tt=ue.y/xe.y,tn=i?Math.max(Ue,tt):Math.min(Ue,tt);return A=this.getScaleZoom(tn,A),Be&&(A=Math.round(A/(Be/100))*(Be/100),A=i?Math.ceil(A/Be)*Be:Math.floor(A/Be)*Be),Math.max(b,Math.min(O,A))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new q(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var u=this._getTopLeftPoint(t,i);return new D(u,u.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(t===void 0?this.getZoom():t)},getPane:function(t){return typeof t=="string"?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,i){var u=this.options.crs;return i=i===void 0?this._zoom:i,u.scale(t)/u.scale(i)},getScaleZoom:function(t,i){var u=this.options.crs;i=i===void 0?this._zoom:i;var A=u.zoom(t*u.scale(i));return isNaN(A)?1/0:A},project:function(t,i){return i=i===void 0?this._zoom:i,this.options.crs.latLngToPoint(he(t),i)},unproject:function(t,i){return i=i===void 0?this._zoom:i,this.options.crs.pointToLatLng(ne(t),i)},layerPointToLatLng:function(t){var i=ne(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){var i=this.project(he(t))._round();return i._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(he(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(X(t))},distance:function(t,i){return this.options.crs.distance(he(t),he(i))},containerPointToLayerPoint:function(t){return ne(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return ne(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(ne(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(he(t)))},mouseEventToContainerPoint:function(t){return po(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var i=this._container=qn(t);if(i){if(i._leaflet_id)throw new Error("Map container is already initialized.")}else throw new Error("Map container not found.");Ge(i,"scroll",this._onScroll,this),this._containerId=x(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Pe.any3d,$e(t,"leaflet-container"+(Pe.touch?" leaflet-touch":"")+(Pe.retina?" leaflet-retina":"")+(Pe.ielt9?" leaflet-oldie":"")+(Pe.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var i=lo(t,"position");i!=="absolute"&&i!=="relative"&&i!=="fixed"&&i!=="sticky"&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),qt(this._mapPane,new q(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||($e(t.markerPane,"leaflet-zoom-hide"),$e(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i,u){qt(this._mapPane,new q(0,0));var A=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var b=this._zoom!==i;this._moveStart(b,u)._move(t,i)._moveEnd(b),this.fire("viewreset"),A&&this.fire("load")},_moveStart:function(t,i){return t&&this.fire("zoomstart"),i||this.fire("movestart"),this},_move:function(t,i,u,A){i===void 0&&(i=this._zoom);var b=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),A?u&&u.pinch&&this.fire("zoom",u):((b||u&&u.pinch)&&this.fire("zoom",u),this.fire("move",u)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return re(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){qt(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[x(this._container)]=this;var i=t?bt:Ge;i(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),Pe.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){re(this._resizeRequest),this._resizeRequest=G(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){for(var u=[],A,b=i==="mouseout"||i==="mouseover",O=t.target||t.srcElement,Q=!1;O;){if(A=this._targets[x(O)],A&&(i==="click"||i==="preclick")&&this._draggableMoved(A)){Q=!0;break}if(A&&A.listens(i,!0)&&(b&&!mo(O,t)||(u.push(A),b))||O===this._container)break;O=O.parentNode}return!u.length&&!Q&&!b&&this.listens(i,!0)&&(u=[this]),u},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var i=t.target||t.srcElement;if(!(!this._loaded||i._leaflet_disable_events||t.type==="click"&&this._isClickDisabled(i))){var u=t.type;u==="mousedown"&&Bi(i),this._fireDOMEvent(t,u)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,u){if(t.type==="click"){var A=f({},t);A.type="preclick",this._fireDOMEvent(A,A.type,u)}var b=this._findEventTargets(t,i);if(u){for(var O=[],Q=0;Q0?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),u=this.getMaxZoom(),A=Pe.any3d?this.options.zoomSnap:1;return A&&(t=Math.round(t/A)*A),Math.max(i,Math.min(u,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){Bt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var u=this._getCenterOffset(t)._trunc();return(i&&i.animate)!==!0&&!this.getSize().contains(u)?!1:(this.panBy(u,i),!0)},_createAnimProxy:function(){var t=this._proxy=Je("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(i){var u=Ys,A=this._proxy.style[u];Gn(this._proxy,this.project(i.center,i.zoom),this.getZoomScale(i.zoom,1)),A===this._proxy.style[u]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){Tt(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),i=this.getZoom();Gn(this._proxy,this.project(t,i),this.getZoomScale(i,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,u){if(this._animatingZoom)return!0;if(u=u||{},!this._zoomAnimated||u.animate===!1||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var A=this.getZoomScale(i),b=this._getCenterOffset(t)._divideBy(1-1/A);return u.animate!==!0&&!this.getSize().contains(b)?!1:(G(function(){this._moveStart(!0,u.noMoveStart||!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,u,A){this._mapPane&&(u&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,$e(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:A}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(m(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&Bt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Lr(t,i){return new ut(t,i)}var Bn=J.extend({options:{position:"topright"},initialize:function(t){C(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),u=this.getPosition(),A=t._controlCorners[u];return $e(i,"leaflet-control"),u.indexOf("bottom")!==-1?A.insertBefore(i,A.firstChild):A.appendChild(i),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(Tt(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),Mr=function(t){return new Bn(t)};ut.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},i="leaflet-",u=this._controlContainer=Je("div",i+"control-container",this._container);function A(b,O){var Q=i+b+" "+i+O;t[b+O]=Je("div",Q,u)}A("top","left"),A("top","right"),A("bottom","left"),A("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)Tt(this._controlCorners[t]);Tt(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var ta=Bn.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,u,A){return u1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(x(t.target)),u=i.overlay?t.type==="add"?"overlayadd":"overlayremove":t.type==="add"?"baselayerchange":null;u&&this._map.fire(u,i)},_createRadioElement:function(t,i){var u='",A=document.createElement("div");return A.innerHTML=u,A.firstChild},_addItem:function(t){var i=document.createElement("label"),u=this._map.hasLayer(t.layer),A;t.overlay?(A=document.createElement("input"),A.type="checkbox",A.className="leaflet-control-layers-selector",A.defaultChecked=u):A=this._createRadioElement("leaflet-base-layers_"+x(this),u),this._layerControlInputs.push(A),A.layerId=x(t.layer),Ge(A,"click",this._onInputClick,this);var b=document.createElement("span");b.innerHTML=" "+t.name;var O=document.createElement("span");i.appendChild(O),O.appendChild(A),O.appendChild(b);var Q=t.overlay?this._overlaysList:this._baseLayersList;return Q.appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t=this._layerControlInputs,i,u,A=[],b=[];this._handlingClick=!0;for(var O=t.length-1;O>=0;O--)i=t[O],u=this._getLayer(i.layerId).layer,i.checked?A.push(u):i.checked||b.push(u);for(O=0;O=0;b--)i=t[b],u=this._getLayer(i.layerId).layer,i.disabled=u.options.minZoom!==void 0&&Au.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;this._preventClick=!0,Ge(t,"click",zt),this.expand();var i=this;setTimeout(function(){bt(t,"click",zt),i._preventClick=!1})}}),os=function(t,i,u){return new ta(t,i,u)},Pi=Bn.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",u=Je("div",i+" leaflet-bar"),A=this.options;return this._zoomInButton=this._createButton(A.zoomInText,A.zoomInTitle,i+"-in",u,this._zoomIn),this._zoomOutButton=this._createButton(A.zoomOutText,A.zoomOutTitle,i+"-out",u,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),u},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,u,A,b){var O=Je("a",u,A);return O.innerHTML=t,O.href="#",O.title=i,O.setAttribute("role","button"),O.setAttribute("aria-label",i),ho(O),Ge(O,"click",Kn),Ge(O,"click",b,this),Ge(O,"click",this._refocusOnMap,this),O},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";Bt(this._zoomInButton,i),Bt(this._zoomOutButton,i),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&($e(this._zoomOutButton,i),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&($e(this._zoomInButton,i),this._zoomInButton.setAttribute("aria-disabled","true"))}});ut.mergeOptions({zoomControl:!0}),ut.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Pi,this.addControl(this.zoomControl))});var gl=function(t){return new Pi(t)},yn=Bn.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i="leaflet-control-scale",u=Je("div",i),A=this.options;return this._addScales(A,i+"-line",u),t.on(A.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),u},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,u){t.metric&&(this._mScale=Je("div",i,u)),t.imperial&&(this._iScale=Je("div",i,u))},_update:function(){var t=this._map,i=t.getSize().y/2,u=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(u)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),u=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,u,i/t)},_updateImperial:function(t){var i=t*3.2808399,u,A,b;i>5280?(u=i/5280,A=this._getRoundNum(u),this._updateScale(this._iScale,A+" mi",A/u)):(b=this._getRoundNum(i),this._updateScale(this._iScale,b+" ft",b/i))},_updateScale:function(t,i,u){t.style.width=Math.round(this.options.maxWidth*u)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),u=t/i;return u=u>=10?10:u>=5?5:u>=3?3:u>=2?2:1,i*u}}),Ti=function(t){return new yn(t)},na='',ti=Bn.extend({options:{position:"bottomright",prefix:''+(Pe.inlineSvg?na+" ":"")+"Leaflet"},initialize:function(t){C(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=Je("div","leaflet-control-attribution"),ho(this._container);for(var i in t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var u=[];this.options.prefix&&u.push(this.options.prefix),t.length&&u.push(t.join(", ")),this._container.innerHTML=u.join(' ')}}});ut.mergeOptions({attributionControl:!0}),ut.addInitHook(function(){this.options.attributionControl&&new ti().addTo(this)});var td=function(t){return new ti(t)};Bn.Layers=ta,Bn.Zoom=Pi,Bn.Scale=yn,Bn.Attribution=ti,Mr.layers=os,Mr.zoom=gl,Mr.scale=Ti,Mr.attribution=td;var Nn=J.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Nn.addTo=function(t,i){return t.addHandler(i,this),this};var ra={Events:se},Di=Pe.touch?"touchstart mousedown":"mousedown",$n=de.extend({options:{clickTolerance:3},initialize:function(t,i,u,A){C(this,A),this._element=t,this._dragStartTarget=i||t,this._preventOutline=u},enable:function(){this._enabled||(Ge(this._dragStartTarget,Di,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&($n._dragging===this&&this.finishDrag(!0),bt(this._dragStartTarget,Di,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!Ei(this._element,"leaflet-zoom-anim"))){if(t.touches&&t.touches.length!==1){$n._dragging===this&&this.finishDrag();return}if(!($n._dragging||t.shiftKey||t.which!==1&&t.button!==1&&!t.touches)&&($n._dragging=this,this._preventOutline&&Bi(this._element),Jo(),ft(),!this._moving)){this.fire("down");var i=t.touches?t.touches[0]:t,u=_r(this._element);this._startPoint=new q(i.clientX,i.clientY),this._startPos=yr(this._element),this._parentScale=or(u);var A=t.type==="mousedown";Ge(document,A?"mousemove":"touchmove",this._onMove,this),Ge(document,A?"mouseup":"touchend touchcancel",this._onUp,this)}}},_onMove:function(t){if(this._enabled){if(t.touches&&t.touches.length>1){this._moved=!0;return}var i=t.touches&&t.touches.length===1?t.touches[0]:t,u=new q(i.clientX,i.clientY)._subtract(this._startPoint);!u.x&&!u.y||Math.abs(u.x)+Math.abs(u.y)O&&(Q=ie,O=ue);O>u&&(i[Q]=1,sa(t,i,u,A,Q),sa(t,i,u,Q,b))}function od(t,i){for(var u=[t[0]],A=1,b=0,O=t.length;Ai&&(u.push(t[A]),b=A);return bi.max.x&&(u|=2),t.yi.max.y&&(u|=8),u}function sd(t,i){var u=i.x-t.x,A=i.y-t.y;return u*u+A*A}function ri(t,i,u,A){var b=i.x,O=i.y,Q=u.x-b,ie=u.y-O,ue=Q*Q+ie*ie,xe;return ue>0&&(xe=((t.x-b)*Q+(t.y-O)*ie)/ue,xe>1?(b=u.x,O=u.y):xe>0&&(b+=Q*xe,O+=ie*xe)),Q=t.x-b,ie=t.y-O,A?Q*Q+ie*ie:new q(b,O)}function Ln(t){return!k(t[0])||typeof t[0][0]!="object"&&typeof t[0][0]<"u"}function _l(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Ln(t)}function wl(t,i){var u,A,b,O,Q,ie,ue,xe;if(!t||t.length===0)throw new Error("latlngs not passed");Ln(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);var Be=he([0,0]),Ue=X(t),tt=Ue.getNorthWest().distanceTo(Ue.getSouthWest())*Ue.getNorthEast().distanceTo(Ue.getNorthWest());tt<1700&&(Be=oa(t));var tn=t.length,Yt=[];for(u=0;uA){ue=(O-A)/b,xe=[ie.x-ue*(ie.x-Q.x),ie.y-ue*(ie.y-Q.y)];break}var _n=i.unproject(ne(xe));return he([_n.lat+Be.lat,_n.lng+Be.lng])}var bl={__proto__:null,simplify:ss,pointToSegmentDistance:vl,closestPointOnSegment:rd,clipSegment:yl,_getEdgeIntersection:as,_getBitCode:ni,_sqClosestPointOnSegment:ri,isFlat:Ln,_flat:_l,polylineCenter:wl},la={project:function(t){return new q(t.lng,t.lat)},unproject:function(t){return new fe(t.y,t.x)},bounds:new D([-180,-90],[180,90])},ua={R:6378137,R_MINOR:6356752314245179e-9,bounds:new D([-2003750834279e-5,-1549657073972e-5],[2003750834279e-5,1876465623138e-5]),project:function(t){var i=Math.PI/180,u=this.R,A=t.lat*i,b=this.R_MINOR/u,O=Math.sqrt(1-b*b),Q=O*Math.sin(A),ie=Math.tan(Math.PI/4-A/2)/Math.pow((1-Q)/(1+Q),O/2);return A=-u*Math.log(Math.max(ie,1e-10)),new q(t.lng*i*u,A)},unproject:function(t){for(var i=180/Math.PI,u=this.R,A=this.R_MINOR/u,b=Math.sqrt(1-A*A),O=Math.exp(-t.y/u),Q=Math.PI/2-2*Math.atan(O),ie=0,ue=.1,xe;ie<15&&Math.abs(ue)>1e-7;ie++)xe=b*Math.sin(Q),xe=Math.pow((1-xe)/(1+xe),b/2),ue=Math.PI/2-2*Math.atan(O*xe)-Q,Q+=ue;return new fe(Q*i,t.x*i/u)}},ad={__proto__:null,LonLat:la,Mercator:ua,SphericalMercator:Ye},ld=f({},Ae,{code:"EPSG:3395",projection:ua,transformation:(function(){var t=.5/(Math.PI*ua.R);return ht(t,.5,-t,.5)})()}),Cl=f({},Ae,{code:"EPSG:4326",projection:la,transformation:ht(1/180,1,-1/180,.5)}),ud=f({},ke,{projection:la,transformation:ht(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var u=i.lng-t.lng,A=i.lat-t.lat;return Math.sqrt(u*u+A*A)},infinite:!0});ke.Earth=Ae,ke.EPSG3395=ld,ke.EPSG3857=Se,ke.EPSG900913=Ve,ke.EPSG4326=Cl,ke.Simple=ud;var Yn=de.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[x(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[x(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var u=this.getEvents();i.on(u,this),this.once("remove",function(){i.off(u,this)},this)}this.onAdd(i),this.fire("add"),i.fire("layeradd",{layer:this})}}});ut.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=x(t);return this._layers[i]?this:(this._layers[i]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var i=x(t);return this._layers[i]?(this._loaded&&t.onRemove(this),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return x(t)in this._layers},eachLayer:function(t,i){for(var u in this._layers)t.call(i,this._layers[u]);return this},_addLayers:function(t){t=t?k(t)?t:[t]:[];for(var i=0,u=t.length;ithis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),this.options.minZoom===void 0&&this._layersMinZoom&&this.getZoom()=2&&i[0]instanceof fe&&i[0].equals(i[u-1])&&i.pop(),i},_setLatLngs:function(t){Pn.prototype._setLatLngs.call(this,t),Ln(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Ln(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,u=new q(i,i);if(t=new D(t.min.subtract(u),t.max.add(u)),this._parts=[],!(!this._pxBounds||!this._pxBounds.intersects(t))){if(this.options.noClip){this._parts=this._rings;return}for(var A=0,b=this._rings.length,O;At.y!=b.y>t.y&&t.x<(b.x-A.x)*(t.y-A.y)/(b.y-A.y)+A.x&&(i=!i);return i||Pn.prototype._containsPoint.call(this,t,!0)}});function fd(t,i){return new Cr(t,i)}var ar=wr.extend({initialize:function(t,i){C(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i=k(t)?t:t.features,u,A,b;if(i){for(u=0,A=i.length;u0&&b.push(b[0].slice()),b}function Ni(t,i){return t.feature?f({},t.feature,{geometry:i}):ps(i)}function ps(t){return t.type==="Feature"||t.type==="FeatureCollection"?t:{type:"Feature",properties:{},geometry:t}}var da={toGeoJSON:function(t){return Ni(this,{type:"Point",coordinates:fs(this.getLatLng(),t)})}};br.include(da),us.include(da),ls.include(da),Pn.include({toGeoJSON:function(t){var i=!Ln(this._latlngs),u=hs(this._latlngs,i?1:0,!1,t);return Ni(this,{type:(i?"Multi":"")+"LineString",coordinates:u})}}),Cr.include({toGeoJSON:function(t){var i=!Ln(this._latlngs),u=i&&!Ln(this._latlngs[0]),A=hs(this._latlngs,u?2:i?1:0,!0,t);return i||(A=[A]),Ni(this,{type:(u?"Multi":"")+"Polygon",coordinates:A})}}),Ir.include({toMultiPoint:function(t){var i=[];return this.eachLayer(function(u){i.push(u.toGeoJSON(t).geometry.coordinates)}),Ni(this,{type:"MultiPoint",coordinates:i})},toGeoJSON:function(t){var i=this.feature&&this.feature.geometry&&this.feature.geometry.type;if(i==="MultiPoint")return this.toMultiPoint(t);var u=i==="GeometryCollection",A=[];return this.eachLayer(function(b){if(b.toGeoJSON){var O=b.toGeoJSON(t);if(u)A.push(O.geometry);else{var Q=ps(O);Q.type==="FeatureCollection"?A.push.apply(A,Q.features):A.push(Q)}}}),u?Ni(this,{geometries:A,type:"GeometryCollection"}):{type:"FeatureCollection",features:A}}});function Bl(t,i){return new ar(t,i)}var Xn=Bl,zr=Yn.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,i,u){this._url=t,this._bounds=X(i),C(this,u)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&($e(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){Tt(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&Ci(this._image),this},bringToBack:function(){return this._map&&vr(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=X(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t=this._url.tagName==="IMG",i=this._image=t?this._url:Je("img");if($e(i,"leaflet-image-layer"),this._zoomAnimated&&$e(i,"leaflet-zoom-animated"),this.options.className&&$e(i,this.options.className),i.onselectstart=v,i.onmousemove=v,i.onload=m(this.fire,this,"load"),i.onerror=m(this._overlayOnError,this,"error"),(this.options.crossOrigin||this.options.crossOrigin==="")&&(i.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t){this._url=i.src;return}i.src=this._url,i.alt=this.options.alt},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),u=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;Gn(this._image,u,i)},_reset:function(){var t=this._image,i=new D(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),u=i.getSize();qt(t,i.min),t.style.width=u.x+"px",t.style.height=u.y+"px"},_updateOpacity:function(){vn(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&this.options.zIndex!==void 0&&this.options.zIndex!==null&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),Pl=function(t,i,u){return new zr(t,i,u)},fa=zr.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t=this._url.tagName==="VIDEO",i=this._image=t?this._url:Je("video");if($e(i,"leaflet-image-layer"),this._zoomAnimated&&$e(i,"leaflet-zoom-animated"),this.options.className&&$e(i,this.options.className),i.onselectstart=v,i.onmousemove=v,i.onloadeddata=m(this.fire,this,"load"),t){for(var u=i.getElementsByTagName("source"),A=[],b=0;b0?A:[i.src];return}k(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(i.style,"objectFit")&&(i.style.objectFit="fill"),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop,i.muted=!!this.options.muted,i.playsInline=!!this.options.playsInline;for(var O=0;Ob?(i.height=b+"px",$e(t,O)):Bt(t,O),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),u=this._getAnchor();qt(this._container,i.add(u))},_adjustPan:function(){if(this.options.autoPan){if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning){this._autopanning=!1;return}var t=this._map,i=parseInt(lo(this._container,"marginBottom"),10)||0,u=this._container.offsetHeight+i,A=this._containerWidth,b=new q(this._containerLeft,-u-this._containerBottom);b._add(yr(this._container));var O=t.layerPointToContainerPoint(b),Q=ne(this.options.autoPanPadding),ie=ne(this.options.autoPanPaddingTopLeft||Q),ue=ne(this.options.autoPanPaddingBottomRight||Q),xe=t.getSize(),Be=0,Ue=0;O.x+A+ue.x>xe.x&&(Be=O.x+A-xe.x+ue.x),O.x-Be-ie.x<0&&(Be=O.x-ie.x),O.y+u+ue.y>xe.y&&(Ue=O.y+u-xe.y+ue.y),O.y-Ue-ie.y<0&&(Ue=O.y-ie.y),(Be||Ue)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([Be,Ue]))}},_getAnchor:function(){return ne(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),Li=function(t,i){return new ms(t,i)};ut.mergeOptions({closePopupOnClick:!0}),ut.include({openPopup:function(t,i,u){return this._initOverlay(ms,t,i,u).openOn(this),this},closePopup:function(t){return t=arguments.length?t:this._popup,t&&t.close(),this}}),Yn.include({bindPopup:function(t,i){return this._popup=this._initOverlay(ms,this._popup,t,i),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof wr||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return this._popup?this._popup.isOpen():!1},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(!(!this._popup||!this._map)){Kn(t);var i=t.layer||t.target;if(this._popup._source===i&&!(i instanceof Or)){this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng);return}this._popup._source=i,this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){t.originalEvent.keyCode===13&&this._openPopup(t)}});var Mi=lr.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){lr.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){lr.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=lr.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip",i=t+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=Je("div",i),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+x(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i,u,A=this._map,b=this._container,O=A.latLngToContainerPoint(A.getCenter()),Q=A.layerPointToContainerPoint(t),ie=this.options.direction,ue=b.offsetWidth,xe=b.offsetHeight,Be=ne(this.options.offset),Ue=this._getAnchor();ie==="top"?(i=ue/2,u=xe):ie==="bottom"?(i=ue/2,u=0):ie==="center"?(i=ue/2,u=xe/2):ie==="right"?(i=0,u=xe/2):ie==="left"?(i=ue,u=xe/2):Q.xthis.options.maxZoom||uA?this._retainParent(b,O,Q,A):!1)},_retainChildren:function(t,i,u,A){for(var b=2*t;b<2*t+2;b++)for(var O=2*i;O<2*i+2;O++){var Q=new q(b,O);Q.z=u+1;var ie=this._tileCoordsToKey(Q),ue=this._tiles[ie];if(ue&&ue.active){ue.retain=!0;continue}else ue&&ue.loaded&&(ue.retain=!0);u+1this.options.maxZoom||this.options.minZoom!==void 0&&b1){this._setView(t,u);return}for(var Ue=b.min.y;Ue<=b.max.y;Ue++)for(var tt=b.min.x;tt<=b.max.x;tt++){var tn=new q(tt,Ue);if(tn.z=this._tileZoom,!!this._isValidTile(tn)){var Yt=this._tiles[this._tileCoordsToKey(tn)];Yt?Yt.current=!0:Q.push(tn)}}if(Q.sort(function(_n,Hi){return _n.distanceTo(O)-Hi.distanceTo(O)}),Q.length!==0){this._loading||(this._loading=!0,this.fire("loading"));var Tn=document.createDocumentFragment();for(tt=0;ttu.max.x)||!i.wrapLat&&(t.yu.max.y))return!1}if(!this.options.bounds)return!0;var A=this._tileCoordsToBounds(t);return X(this.options.bounds).overlaps(A)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,u=this.getTileSize(),A=t.scaleBy(u),b=A.add(u),O=i.unproject(A,t.z),Q=i.unproject(b,t.z);return[O,Q]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),u=new K(i[0],i[1]);return this.options.noWrap||(u=this._map.wrapLatLngBounds(u)),u},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),u=new q(+i[0],+i[1]);return u.z=+i[2],u},_removeTile:function(t){var i=this._tiles[t];i&&(Tt(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){$e(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=v,t.onmousemove=v,Pe.ielt9&&this.options.opacity<1&&vn(t,this.options.opacity)},_addTile:function(t,i){var u=this._getTilePos(t),A=this._tileCoordsToKey(t),b=this.createTile(this._wrapCoords(t),m(this._tileReady,this,t));this._initTile(b),this.createTile.length<2&&G(m(this._tileReady,this,t,null,b)),qt(b,u),this._tiles[A]={el:b,coords:t,current:!0},i.appendChild(b),this.fire("tileloadstart",{tile:b,coords:t})},_tileReady:function(t,i,u){i&&this.fire("tileerror",{error:i,tile:u,coords:t});var A=this._tileCoordsToKey(t);u=this._tiles[A],u&&(u.loaded=+new Date,this._map._fadeAnimated?(vn(u.el,0),re(this._fadeFrame),this._fadeFrame=G(this._updateOpacity,this)):(u.active=!0,this._pruneTiles()),i||($e(u.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:u.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Pe.ielt9||!this._map._fadeAnimated?G(this._pruneTiles,this):setTimeout(m(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new q(this._wrapX?y(t.x,this._wrapX):t.x,this._wrapY?y(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new D(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});function Ii(t){return new jr(t)}var Hr=jr.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,i){this._url=t,i=C(this,i),i.detectRetina&&Pe.retina&&i.maxZoom>0?(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom=Math.min(i.maxZoom,i.minZoom+1)):(i.zoomOffset++,i.maxZoom=Math.max(i.minZoom,i.maxZoom-1)),i.minZoom=Math.max(0,i.minZoom)):i.zoomReverse?i.minZoom=Math.min(i.maxZoom,i.minZoom):i.maxZoom=Math.max(i.minZoom,i.maxZoom),typeof i.subdomains=="string"&&(i.subdomains=i.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url===t&&i===void 0&&(i=!0),this._url=t,i||this.redraw(),this},createTile:function(t,i){var u=document.createElement("img");return Ge(u,"load",m(this._tileOnLoad,this,i,u)),Ge(u,"error",m(this._tileOnError,this,i,u)),(this.options.crossOrigin||this.options.crossOrigin==="")&&(u.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),typeof this.options.referrerPolicy=="string"&&(u.referrerPolicy=this.options.referrerPolicy),u.alt="",u.src=this.getTileUrl(t),u},getTileUrl:function(t){var i={r:Pe.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var u=this._globalTileRange.max.y-t.y;this.options.tms&&(i.y=u),i["-y"]=u}return B(this._url,f(i,this.options))},_tileOnLoad:function(t,i){Pe.ielt9?setTimeout(m(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,u){var A=this.options.errorTileUrl;A&&i.getAttribute("src")!==A&&(i.src=A),t(u,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom,u=this.options.zoomReverse,A=this.options.zoomOffset;return u&&(t=i-t),t+A},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&(i=this._tiles[t].el,i.onload=v,i.onerror=v,!i.complete)){i.src=I;var u=this._tiles[t].coords;Tt(i),delete this._tiles[t],this.fire("tileabort",{tile:i,coords:u})}},_removeTile:function(t){var i=this._tiles[t];if(i)return i.el.setAttribute("src",I),jr.prototype._removeTile.call(this,t)},_tileReady:function(t,i,u){if(!(!this._map||u&&u.getAttribute("src")===I))return jr.prototype._tileReady.call(this,t,i,u)}});function ma(t,i){return new Hr(t,i)}var yo=Hr.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var u=f({},this.defaultWmsParams);for(var A in i)A in this.options||(u[A]=i[A]);i=C(this,i);var b=i.detectRetina&&Pe.retina?2:1,O=this.getTileSize();u.width=O.x*b,u.height=O.y*b,this.wmsParams=u},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[i]=this._crs.code,Hr.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToNwSe(t),u=this._crs,A=Z(u.project(i[0]),u.project(i[1])),b=A.min,O=A.max,Q=(this._wmsVersion>=1.3&&this._crs===Cl?[b.y,b.x,O.y,O.x]:[b.x,b.y,O.x,O.y]).join(","),ie=Hr.prototype.getTileUrl.call(this,t);return ie+E(this.wmsParams,ie,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+Q},setParams:function(t,i){return f(this.wmsParams,t),i||this.redraw(),this}});function Rl(t,i){return new yo(t,i)}Hr.WMS=yo,ma.wms=Rl;var ur=Yn.extend({options:{padding:.1},initialize:function(t){C(this,t),x(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),$e(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var u=this._map.getZoomScale(i,this._zoom),A=this._map.getSize().multiplyBy(.5+this.options.padding),b=this._map.project(this._center,i),O=A.multiplyBy(-u).add(b).subtract(this._map._getNewPixelOrigin(t,i));Pe.any3d?Gn(this._container,O,u):qt(this._container,O)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),u=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new D(u,u.add(i.multiplyBy(1+t*2)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),Aa=ur.extend({options:{tolerance:0},getEvents:function(){var t=ur.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){ur.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Ge(t,"mousemove",this._onMouseMove,this),Ge(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Ge(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){re(this._redrawRequest),delete this._ctx,Tt(this._container),bt(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){var t;this._redrawBounds=null;for(var i in this._layers)t=this._layers[i],t._update();this._redraw()}},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){ur.prototype._update.call(this);var t=this._bounds,i=this._container,u=t.getSize(),A=Pe.retina?2:1;qt(i,t.min),i.width=A*u.x,i.height=A*u.y,i.style.width=u.x+"px",i.style.height=u.y+"px",Pe.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){ur.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[x(t)]=t;var i=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,u=i.next,A=i.prev;u?u.prev=A:this._drawLast=A,A?A.next=u:this._drawFirst=u,delete t._order,delete this._layers[x(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(typeof t.options.dashArray=="string"){var i=t.options.dashArray.split(/[, ]+/),u=[],A,b;for(b=0;b')}}catch{}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}})(),Fl={_initContainer:function(){this._container=Je("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(ur.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=Oi("shape");$e(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=Oi("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[x(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;Tt(i),t.removeInteractiveTarget(i),delete this._layers[x(t)]},_updateStyle:function(t){var i=t._stroke,u=t._fill,A=t.options,b=t._container;b.stroked=!!A.stroke,b.filled=!!A.fill,A.stroke?(i||(i=t._stroke=Oi("stroke")),b.appendChild(i),i.weight=A.weight+"px",i.color=A.color,i.opacity=A.opacity,A.dashArray?i.dashStyle=k(A.dashArray)?A.dashArray.join(" "):A.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=A.lineCap.replace("butt","flat"),i.joinstyle=A.lineJoin):i&&(b.removeChild(i),t._stroke=null),A.fill?(u||(u=t._fill=Oi("fill")),b.appendChild(u),u.color=A.fillColor||A.color,u.opacity=A.fillOpacity):u&&(b.removeChild(u),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),u=Math.round(t._radius),A=Math.round(t._radiusY||u);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+u+","+A+" 0,"+65535*360)},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){Ci(t._container)},_bringToBack:function(t){vr(t._container)}},Jn=Pe.vml?Oi:dt,oi=ur.extend({_initContainer:function(){this._container=Jn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Jn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){Tt(this._container),bt(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){ur.prototype._update.call(this);var t=this._bounds,i=t.getSize(),u=this._container;(!this._svgSize||!this._svgSize.equals(i))&&(this._svgSize=i,u.setAttribute("width",i.x),u.setAttribute("height",i.y)),qt(u,t.min),u.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update")}},_initPath:function(t){var i=t._path=Jn("path");t.options.className&&$e(i,t.options.className),t.options.interactive&&$e(i,"leaflet-interactive"),this._updateStyle(t),this._layers[x(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){Tt(t._path),t.removeInteractiveTarget(t._path),delete this._layers[x(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,u=t.options;i&&(u.stroke?(i.setAttribute("stroke",u.color),i.setAttribute("stroke-opacity",u.opacity),i.setAttribute("stroke-width",u.weight),i.setAttribute("stroke-linecap",u.lineCap),i.setAttribute("stroke-linejoin",u.lineJoin),u.dashArray?i.setAttribute("stroke-dasharray",u.dashArray):i.removeAttribute("stroke-dasharray"),u.dashOffset?i.setAttribute("stroke-dashoffset",u.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),u.fill?(i.setAttribute("fill",u.fillColor||u.color),i.setAttribute("fill-opacity",u.fillOpacity),i.setAttribute("fill-rule",u.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,Mt(t._parts,i))},_updateCircle:function(t){var i=t._point,u=Math.max(Math.round(t._radius),1),A=Math.max(Math.round(t._radiusY),1)||u,b="a"+u+","+A+" 0 1,0 ",O=t._empty()?"M0 0":"M"+(i.x-u)+","+i.y+b+u*2+",0 "+b+-u*2+",0 ";this._setPath(t,O)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){Ci(t._path)},_bringToBack:function(t){vr(t._path)}});Pe.vml&&oi.include(Fl);function gs(t){return Pe.svg||Pe.vml?new oi(t):null}ut.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this._createRenderer()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if(t==="overlayPane"||t===void 0)return!1;var i=this._paneRenderers[t];return i===void 0&&(i=this._createRenderer({pane:t}),this._paneRenderers[t]=i),i},_createRenderer:function(t){return this.options.preferCanvas&&ga(t)||gs(t)}});var Nl=Cr.extend({initialize:function(t,i){Cr.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=X(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});function hd(t,i){return new Nl(t,i)}oi.create=Jn,oi.pointsToPath=Mt,ar.geometryToLayer=Fi,ar.coordsToLatLng=ds,ar.coordsToLatLngs=xo,ar.latLngToCoords=fs,ar.latLngsToCoords=hs,ar.getFeature=Ni,ar.asFeature=ps,ut.mergeOptions({boxZoom:!0});var zi=Nn.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Ge(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){bt(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){Tt(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){this._resetStateTimeout!==0&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||t.which!==1&&t.button!==1)return!1;this._clearDeferredResetState(),this._resetState(),ft(),Jo(),this._startPoint=this._map.mouseEventToContainerPoint(t),Ge(document,{contextmenu:Kn,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=Je("div","leaflet-zoom-box",this._container),$e(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new D(this._point,this._startPoint),u=i.getSize();qt(this._box,i.min),this._box.style.width=u.x+"px",this._box.style.height=u.y+"px"},_finish:function(){this._moved&&(Tt(this._box),Bt(this._container,"leaflet-crosshair")),Si(),es(),bt(document,{contextmenu:Kn,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if(!(t.which!==1&&t.button!==1)&&(this._finish(),!!this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(m(this._resetState,this),0);var i=new K(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){t.keyCode===27&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});ut.addInitHook("addHandler","boxZoom",zi),ut.mergeOptions({doubleClickZoom:!0});var Ll=Nn.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,u=i.getZoom(),A=i.options.zoomDelta,b=t.originalEvent.shiftKey?u-A:u+A;i.options.doubleClickZoom==="center"?i.setZoom(b):i.setZoomAround(t.containerPoint,b)}});ut.addInitHook("addHandler","doubleClickZoom",Ll),ut.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var xa=Nn.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new $n(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}$e(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){Bt(this._map._container,"leaflet-grab"),Bt(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var i=X(this._map.options.maxBounds);this._offsetLimit=Z(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var i=this._lastTime=+new Date,u=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(u),this._times.push(i),this._prunePositions(i)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(!(!this._viscosity||!this._offsetLimit)){var t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.xi.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),u=this._initialWorldOffset,A=this._draggable._newPos.x,b=(A-i+u)%t+i-u,O=(A+i+u)%t-i-u,Q=Math.abs(b+u)0?O:-O))-i;this._delta=0,this._startTime=null,Q&&(t.options.scrollWheelZoom==="center"?t.setZoom(i+Q):t.setZoomAround(this._lastMousePos,i+Q))}});ut.addInitHook("addHandler","scrollWheelZoom",Ct);var ya=600;ut.mergeOptions({tapHold:Pe.touchNative&&Pe.safari&&Pe.mobile,tapTolerance:15});var _o=Nn.extend({addHooks:function(){Ge(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){bt(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),t.touches.length===1){var i=t.touches[0];this._startPos=this._newPos=new q(i.clientX,i.clientY),this._holdTimeout=setTimeout(m(function(){this._cancel(),this._isTapValid()&&(Ge(document,"touchend",zt),Ge(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",i))},this),ya),Ge(document,"touchend touchcancel contextmenu",this._cancel,this),Ge(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){bt(document,"touchend",zt),bt(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),bt(document,"touchend touchcancel contextmenu",this._cancel,this),bt(document,"touchmove",this._onMove,this)},_onMove:function(t){var i=t.touches[0];this._newPos=new q(i.clientX,i.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,i){var u=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:i.screenX,screenY:i.screenY,clientX:i.clientX,clientY:i.clientY});u._simulated=!0,i.target.dispatchEvent(u)}});ut.addInitHook("addHandler","tapHold",_o),ut.mergeOptions({touchZoom:Pe.touch,bounceAtZoomLimits:!0});var ji=Nn.extend({addHooks:function(){$e(this._map._container,"leaflet-touch-zoom"),Ge(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){Bt(this._map._container,"leaflet-touch-zoom"),bt(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(!(!t.touches||t.touches.length!==2||i._animatingZoom||this._zooming)){var u=i.mouseEventToContainerPoint(t.touches[0]),A=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),i.options.touchZoom!=="center"&&(this._pinchStartLatLng=i.containerPointToLatLng(u.add(A)._divideBy(2))),this._startDist=u.distanceTo(A),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),Ge(document,"touchmove",this._onTouchMove,this),Ge(document,"touchend touchcancel",this._onTouchEnd,this),zt(t)}},_onTouchMove:function(t){if(!(!t.touches||t.touches.length!==2||!this._zooming)){var i=this._map,u=i.mouseEventToContainerPoint(t.touches[0]),A=i.mouseEventToContainerPoint(t.touches[1]),b=u.distanceTo(A)/this._startDist;if(this._zoom=i.getScaleZoom(b,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoomi.getMaxZoom()&&b>1)&&(this._zoom=i._limitZoom(this._zoom)),i.options.touchZoom==="center"){if(this._center=this._startLatLng,b===1)return}else{var O=u._add(A)._divideBy(2)._subtract(this._centerPoint);if(b===1&&O.x===0&&O.y===0)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(O),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),re(this._animRequest);var Q=m(i._move,i,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=G(Q,this,!0),zt(t)}},_onTouchEnd:function(){if(!this._moved||!this._zooming){this._zooming=!1;return}this._zooming=!1,re(this._animRequest),bt(document,"touchmove",this._onTouchMove,this),bt(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))}});ut.addInitHook("addHandler","touchZoom",ji),ut.BoxZoom=zi,ut.DoubleClickZoom=Ll,ut.Drag=xa,ut.Keyboard=va,ut.ScrollWheelZoom=Ct,ut.TapHold=_o,ut.TouchZoom=ji,s.Bounds=D,s.Browser=Pe,s.CRS=ke,s.Canvas=Aa,s.Circle=us,s.CircleMarker=ls,s.Class=J,s.Control=Bn,s.DivIcon=As,s.DivOverlay=lr,s.DomEvent=rs,s.DomUtil=fo,s.Draggable=$n,s.Evented=de,s.FeatureGroup=wr,s.GeoJSON=ar,s.GridLayer=jr,s.Handler=Nn,s.Icon=ii,s.ImageOverlay=zr,s.LatLng=fe,s.LatLngBounds=K,s.Layer=Yn,s.LayerGroup=Ir,s.LineUtil=bl,s.Map=ut,s.Marker=br,s.Mixin=ra,s.Path=Or,s.Point=q,s.PolyUtil=nd,s.Polygon=Cr,s.Polyline=Pn,s.Popup=ms,s.PosAnimation=is,s.Projection=ad,s.Rectangle=Nl,s.Renderer=ur,s.SVG=oi,s.SVGOverlay=ha,s.TileLayer=Hr,s.Tooltip=Mi,s.Transformation=Et,s.Util=V,s.VideoOverlay=fa,s.bind=m,s.bounds=Z,s.canvas=ga,s.circle=go,s.circleMarker=Sl,s.control=Mr,s.divIcon=Dl,s.extend=f,s.featureGroup=El,s.geoJSON=Bl,s.geoJson=Xn,s.gridLayer=Ii,s.icon=kl,s.imageOverlay=Pl,s.latLng=he,s.latLngBounds=X,s.layerGroup=Ao,s.map=Lr,s.marker=cd,s.point=ne,s.polygon=fd,s.polyline=dd,s.popup=Li,s.rectangle=hd,s.setOptions=C,s.stamp=x,s.svg=gs,s.svgOverlay=pa,s.tileLayer=ma,s.tooltip=vo,s.transformation=ht,s.version=l,s.videoOverlay=Tl;var Ml=window.L;s.noConflict=function(){return window.L=Ml,this},window.L=s}))})(Ja,Ja.exports)),Ja.exports}var qc=y2();function v0(r,a,s){return Object.freeze({instance:r,context:a,container:s})}function y0(r,a){return a==null?function(l,f){const d=R.useRef();return d.current||(d.current=r(l,f)),d}:function(l,f){const d=R.useRef();d.current||(d.current=r(l,f));const m=R.useRef(l),{instance:h}=d.current;return R.useEffect(function(){m.current!==l&&(a(h,l,m.current),m.current=l)},[h,l,f]),d}}function ox(r,a){R.useEffect(function(){return(a.layerContainer??a.map).addLayer(r.instance),function(){var d;(d=a.layerContainer)==null||d.removeLayer(r.instance),a.map.removeLayer(r.instance)}},[a,r])}function _2(r){return function(s){const l=Zc(),f=r(Wc(s,l),l);return nx(l.map,s.attribution),x0(f.current,s.eventHandlers),ox(f.current,l),f}}function w2(r,a){const s=R.useRef();R.useEffect(function(){if(a.pathOptions!==s.current){const f=a.pathOptions??{};r.instance.setStyle(f),s.current=f}},[r,a])}function b2(r){return function(s){const l=Zc(),f=r(Wc(s,l),l);return x0(f.current,s.eventHandlers),ox(f.current,l),w2(f.current,s),f}}function C2(r,a){const s=y0(r),l=x2(s,a);return A2(l)}function E2(r,a){const s=y0(r,a),l=b2(s);return m2(l)}function k2(r,a){const s=y0(r,a),l=_2(s);return g2(l)}function S2(r,a,s){const{opacity:l,zIndex:f}=a;l!=null&&l!==s.opacity&&r.setOpacity(l),f!=null&&f!==s.zIndex&&r.setZIndex(f)}function B2(){return Zc().map}const P2=E2(function({center:a,children:s,...l},f){const d=new qc.CircleMarker(a,l);return v0(d,p2(f,{overlayContainer:d}))},d2);function Kf(){return Kf=Object.assign||function(r){for(var a=1;a(S==null?void 0:S.map)??null,[S]);const C=R.useCallback(P=>{if(P!==null&&S===null){const B=new qc.Map(P,y);s!=null&&p!=null?B.setView(s,p):r!=null&&B.fitBounds(r,a),x!=null&&B.whenReady(x),T(h2(B))}},[]);R.useEffect(()=>()=>{S==null||S.map.remove()},[S]);const E=S?be.createElement(ix,{value:S},l):m??null;return be.createElement("div",Kf({},w,{ref:C}),E)}const D2=R.forwardRef(T2),R2=C2(function(a,s){const l=new qc.Popup(a,s.overlayContainer);return v0(l,s)},function(a,s,{position:l},f){R.useEffect(function(){const{instance:m}=a;function h(p){p.popup===m&&(m.update(),f(!0))}function x(p){p.popup===m&&f(!1)}return s.map.on({popupopen:h,popupclose:x}),s.overlayContainer==null?(l!=null&&m.setLatLng(l),m.openOn(s.map)):s.overlayContainer.bindPopup(m),function(){var y;s.map.off({popupopen:h,popupclose:x}),(y=s.overlayContainer)==null||y.unbindPopup(),s.map.removeLayer(m)}},[a,s,f,l])}),F2=k2(function({url:a,...s},l){const f=new qc.TileLayer(a,Wc(s,l));return v0(f,l)},function(a,s,l){S2(a,s,l);const{url:f}=s;f!=null&&f!==l.url&&a.setUrl(f)});function N2(r){const s=Date.now()/1e3-r,l=3600,f=86400;return s{if(s)return;const f=()=>{if(r.length===0){a.setView([20,0],2),l(!0);return}if(r.length===1){a.setView([r[0].lat,r[0].lon],10),l(!0);return}const d=r.map(m=>[m.lat,m.lon]);a.fitBounds(d,{padding:[50,50],maxZoom:12}),l(!0)};"geolocation"in navigator?navigator.geolocation.getCurrentPosition(d=>{a.setView([d.coords.latitude,d.coords.longitude],8),l(!0)},()=>{f()},{timeout:5e3,maximumAge:3e5}):f()},[a,r,s]),null}function M2({contacts:r}){const a=R.useMemo(()=>{const s=Date.now()/1e3-604800;return r.filter(l=>l.lat!=null&&l.lon!=null&&l.last_seen!=null&&l.last_seen>s)},[r]);return F.jsxs("div",{className:"flex flex-col h-full",children:[F.jsxs("div",{className:"px-4 py-2 bg-muted/50 text-xs text-muted-foreground flex items-center justify-between",children:[F.jsxs("span",{children:["Showing ",a.length," contact",a.length!==1?"s":""," heard in the last 7 days"]}),F.jsxs("div",{className:"flex items-center gap-3",children:[F.jsxs("span",{className:"flex items-center gap-1",children:[F.jsx("span",{className:"w-3 h-3 rounded-full bg-[#22c55e]"})," <1h"]}),F.jsxs("span",{className:"flex items-center gap-1",children:[F.jsx("span",{className:"w-3 h-3 rounded-full bg-[#4ade80]"})," <1d"]}),F.jsxs("span",{className:"flex items-center gap-1",children:[F.jsx("span",{className:"w-3 h-3 rounded-full bg-[#a3e635]"})," <3d"]}),F.jsxs("span",{className:"flex items-center gap-1",children:[F.jsx("span",{className:"w-3 h-3 rounded-full bg-[#9ca3af]"})," older"]})]})]}),F.jsx("div",{className:"flex-1 relative",style:{zIndex:0},children:F.jsxs(D2,{center:[20,0],zoom:2,className:"h-full w-full",style:{background:"#1a1a2e"},children:[F.jsx(F2,{attribution:'© OpenStreetMap',url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"}),F.jsx(L2,{contacts:a}),a.map(s=>{const l=s.type===o0,f=N2(s.last_seen),d=s.name||s.public_key.slice(0,12);return F.jsx(P2,{center:[s.lat,s.lon],radius:l?10:7,pathOptions:{color:l?f:"#000",fillColor:f,fillOpacity:.8,weight:l?0:1},children:F.jsx(R2,{children:F.jsxs("div",{className:"text-sm",children:[F.jsxs("div",{className:"font-medium flex items-center gap-1",children:[l&&F.jsx("span",{title:"Repeater",children:"🛜"}),d]}),F.jsxs("div",{className:"text-xs text-gray-500 mt-1",children:["Last heard: ",Ec(s.last_seen)]}),F.jsxs("div",{className:"text-xs text-gray-400 mt-1 font-mono",children:[s.lat.toFixed(5),", ",s.lon.toFixed(5)]})]})})},s.public_key)})]})})]})}const I2="modulepreload",O2=function(r){return"/"+r},Yp={},z2=function(a,s,l){let f=Promise.resolve();if(s&&s.length>0){let m=function(p){return Promise.all(p.map(y=>Promise.resolve(y).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};document.getElementsByTagName("link");const h=document.querySelector("meta[property=csp-nonce]"),x=(h==null?void 0:h.nonce)||(h==null?void 0:h.getAttribute("nonce"));f=m(s.map(p=>{if(p=O2(p),p in Yp)return;Yp[p]=!0;const y=p.endsWith(".css"),v=y?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${v}`))return;const w=document.createElement("link");if(w.rel=y?"stylesheet":I2,y||(w.as="script"),w.crossOrigin="",w.href=p,x&&w.setAttribute("nonce",x),document.head.appendChild(w),y)return new Promise((S,T)=>{w.addEventListener("load",S),w.addEventListener("error",()=>T(new Error(`Unable to preload CSS for ${p}`)))})}))}function d(m){const h=new Event("vite:preloadError",{cancelable:!0});if(h.payload=m,window.dispatchEvent(h),!h.defaultPrevented)throw m}return f.then(m=>{for(const h of m||[])h.status==="rejected"&&d(h.reason);return a().catch(d)})};var xi={},Oa={},An={},Xp;function ir(){if(Xp)return An;Xp=1,Object.defineProperty(An,"__esModule",{value:!0}),An.RequestType=An.AdvertFlags=An.DeviceRole=An.PayloadVersion=An.ControlSubType=An.PayloadType=An.RouteType=void 0;var r;(function(h){h[h.TransportFlood=0]="TransportFlood",h[h.Flood=1]="Flood",h[h.Direct=2]="Direct",h[h.TransportDirect=3]="TransportDirect"})(r||(An.RouteType=r={}));var a;(function(h){h[h.Request=0]="Request",h[h.Response=1]="Response",h[h.TextMessage=2]="TextMessage",h[h.Ack=3]="Ack",h[h.Advert=4]="Advert",h[h.GroupText=5]="GroupText",h[h.GroupData=6]="GroupData",h[h.AnonRequest=7]="AnonRequest",h[h.Path=8]="Path",h[h.Trace=9]="Trace",h[h.Multipart=10]="Multipart",h[h.Control=11]="Control",h[h.RawCustom=15]="RawCustom"})(a||(An.PayloadType=a={}));var s;(function(h){h[h.NodeDiscoverReq=128]="NodeDiscoverReq",h[h.NodeDiscoverResp=144]="NodeDiscoverResp"})(s||(An.ControlSubType=s={}));var l;(function(h){h[h.Version1=0]="Version1",h[h.Version2=1]="Version2",h[h.Version3=2]="Version3",h[h.Version4=3]="Version4"})(l||(An.PayloadVersion=l={}));var f;(function(h){h[h.Unknown=0]="Unknown",h[h.ChatNode=1]="ChatNode",h[h.Repeater=2]="Repeater",h[h.RoomServer=3]="RoomServer",h[h.Sensor=4]="Sensor"})(f||(An.DeviceRole=f={}));var d;(function(h){h[h.HasLocation=16]="HasLocation",h[h.HasFeature1=32]="HasFeature1",h[h.HasFeature2=64]="HasFeature2",h[h.HasName=128]="HasName"})(d||(An.AdvertFlags=d={}));var m;return(function(h){h[h.GetStats=1]="GetStats",h[h.Keepalive=2]="Keepalive",h[h.GetTelemetryData=3]="GetTelemetryData",h[h.GetMinMaxAvgData=4]="GetMinMaxAvgData",h[h.GetAccessList=5]="GetAccessList"})(m||(An.RequestType=m={})),An}var Mo={},Jp;function gn(){if(Jp)return Mo;Jp=1,Object.defineProperty(Mo,"__esModule",{value:!0}),Mo.byteToHex=r,Mo.bytesToHex=a,Mo.numberToHex=s,Mo.hexToBytes=l;function r(f){return f.toString(16).padStart(2,"0").toUpperCase()}function a(f){return Array.from(f).map(r).join("")}function s(f,d=8){return(f>>>0).toString(16).padStart(d,"0").toUpperCase()}function l(f){const d=f.replace(/\s/g,"").toUpperCase();if(!/^[0-9A-F]*$/.test(d))throw new Error("Invalid hex string: invalid characters at position 0");if(d.length%2!==0)throw new Error("Invalid hex string: odd length");const m=new Uint8Array(d.length/2);for(let h=0;h>>2]>>>24-j%4*8&255;k[I+j>>>2]|=H<<24-(I+j)%4*8}else for(var $=0;$>>2]=N[$>>>2];return this.sigBytes+=z,this},clamp:function(){var B=this.words,k=this.sigBytes;B[k>>>2]&=4294967295<<32-k%4*8,B.length=l.ceil(k/4)},clone:function(){var B=y.clone.call(this);return B.words=this.words.slice(0),B},random:function(B){for(var k=[],N=0;N>>2]>>>24-z%4*8&255;I.push((j>>>4).toString(16)),I.push((j&15).toString(16))}return I.join("")},parse:function(B){for(var k=B.length,N=[],I=0;I>>3]|=parseInt(B.substr(I,2),16)<<24-I%8*4;return new v.init(N,k/2)}},T=w.Latin1={stringify:function(B){for(var k=B.words,N=B.sigBytes,I=[],z=0;z>>2]>>>24-z%4*8&255;I.push(String.fromCharCode(j))}return I.join("")},parse:function(B){for(var k=B.length,N=[],I=0;I>>2]|=(B.charCodeAt(I)&255)<<24-I%4*8;return new v.init(N,k)}},C=w.Utf8={stringify:function(B){try{return decodeURIComponent(escape(T.stringify(B)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(B){return T.parse(unescape(encodeURIComponent(B)))}},E=p.BufferedBlockAlgorithm=y.extend({reset:function(){this._data=new v.init,this._nDataBytes=0},_append:function(B){typeof B=="string"&&(B=C.parse(B)),this._data.concat(B),this._nDataBytes+=B.sigBytes},_process:function(B){var k,N=this._data,I=N.words,z=N.sigBytes,j=this.blockSize,H=j*4,$=z/H;B?$=l.ceil($):$=l.max(($|0)-this._minBufferSize,0);var U=$*j,G=l.min(U*4,z);if(U){for(var re=0;re>>2]|=x[v]<<24-v%4*8;m.call(this,y,p)}else m.apply(this,arguments)};h.prototype=d}})(),s.lib.WordArray})})(ju)),ju.exports}var Hu={exports:{}},q2=Hu.exports,im;function G2(){return im||(im=1,(function(r,a){(function(s,l){r.exports=l(ct())})(q2,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=l.enc;m.Utf16=m.Utf16BE={stringify:function(x){for(var p=x.words,y=x.sigBytes,v=[],w=0;w>>2]>>>16-w%4*8&65535;v.push(String.fromCharCode(S))}return v.join("")},parse:function(x){for(var p=x.length,y=[],v=0;v>>1]|=x.charCodeAt(v)<<16-v%2*16;return d.create(y,p*2)}},m.Utf16LE={stringify:function(x){for(var p=x.words,y=x.sigBytes,v=[],w=0;w>>2]>>>16-w%4*8&65535);v.push(String.fromCharCode(S))}return v.join("")},parse:function(x){for(var p=x.length,y=[],v=0;v>>1]|=h(x.charCodeAt(v)<<16-v%2*16);return d.create(y,p*2)}};function h(x){return x<<8&4278255360|x>>>8&16711935}})(),s.enc.Utf16})})(Hu)),Hu.exports}var Vu={exports:{}},Q2=Vu.exports,om;function Wo(){return om||(om=1,(function(r,a){(function(s,l){r.exports=l(ct())})(Q2,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=l.enc;m.Base64={stringify:function(x){var p=x.words,y=x.sigBytes,v=this._map;x.clamp();for(var w=[],S=0;S>>2]>>>24-S%4*8&255,C=p[S+1>>>2]>>>24-(S+1)%4*8&255,E=p[S+2>>>2]>>>24-(S+2)%4*8&255,P=T<<16|C<<8|E,B=0;B<4&&S+B*.75>>6*(3-B)&63));var k=v.charAt(64);if(k)for(;w.length%4;)w.push(k);return w.join("")},parse:function(x){var p=x.length,y=this._map,v=this._reverseMap;if(!v){v=this._reverseMap=[];for(var w=0;w>>6-S%4*2,E=T|C;v[w>>>2]|=E<<24-w%4*8,w++}return d.create(v,w)}})(),s.enc.Base64})})(Vu)),Vu.exports}var Uu={exports:{}},K2=Uu.exports,sm;function $2(){return sm||(sm=1,(function(r,a){(function(s,l){r.exports=l(ct())})(K2,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=l.enc;m.Base64url={stringify:function(x,p){p===void 0&&(p=!0);var y=x.words,v=x.sigBytes,w=p?this._safe_map:this._map;x.clamp();for(var S=[],T=0;T>>2]>>>24-T%4*8&255,E=y[T+1>>>2]>>>24-(T+1)%4*8&255,P=y[T+2>>>2]>>>24-(T+2)%4*8&255,B=C<<16|E<<8|P,k=0;k<4&&T+k*.75>>6*(3-k)&63));var N=w.charAt(64);if(N)for(;S.length%4;)S.push(N);return S.join("")},parse:function(x,p){p===void 0&&(p=!0);var y=x.length,v=p?this._safe_map:this._map,w=this._reverseMap;if(!w){w=this._reverseMap=[];for(var S=0;S>>6-S%4*2,E=T|C;v[w>>>2]|=E<<24-w%4*8,w++}return d.create(v,w)}})(),s.enc.Base64url})})(Uu)),Uu.exports}var Zu={exports:{}},Y2=Zu.exports,am;function qo(){return am||(am=1,(function(r,a){(function(s,l){r.exports=l(ct())})(Y2,function(s){return(function(l){var f=s,d=f.lib,m=d.WordArray,h=d.Hasher,x=f.algo,p=[];(function(){for(var C=0;C<64;C++)p[C]=l.abs(l.sin(C+1))*4294967296|0})();var y=x.MD5=h.extend({_doReset:function(){this._hash=new m.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(C,E){for(var P=0;P<16;P++){var B=E+P,k=C[B];C[B]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360}var N=this._hash.words,I=C[E+0],z=C[E+1],j=C[E+2],H=C[E+3],$=C[E+4],U=C[E+5],G=C[E+6],re=C[E+7],V=C[E+8],J=C[E+9],le=C[E+10],se=C[E+11],de=C[E+12],q=C[E+13],ge=C[E+14],ne=C[E+15],D=N[0],Z=N[1],K=N[2],X=N[3];D=v(D,Z,K,X,I,7,p[0]),X=v(X,D,Z,K,z,12,p[1]),K=v(K,X,D,Z,j,17,p[2]),Z=v(Z,K,X,D,H,22,p[3]),D=v(D,Z,K,X,$,7,p[4]),X=v(X,D,Z,K,U,12,p[5]),K=v(K,X,D,Z,G,17,p[6]),Z=v(Z,K,X,D,re,22,p[7]),D=v(D,Z,K,X,V,7,p[8]),X=v(X,D,Z,K,J,12,p[9]),K=v(K,X,D,Z,le,17,p[10]),Z=v(Z,K,X,D,se,22,p[11]),D=v(D,Z,K,X,de,7,p[12]),X=v(X,D,Z,K,q,12,p[13]),K=v(K,X,D,Z,ge,17,p[14]),Z=v(Z,K,X,D,ne,22,p[15]),D=w(D,Z,K,X,z,5,p[16]),X=w(X,D,Z,K,G,9,p[17]),K=w(K,X,D,Z,se,14,p[18]),Z=w(Z,K,X,D,I,20,p[19]),D=w(D,Z,K,X,U,5,p[20]),X=w(X,D,Z,K,le,9,p[21]),K=w(K,X,D,Z,ne,14,p[22]),Z=w(Z,K,X,D,$,20,p[23]),D=w(D,Z,K,X,J,5,p[24]),X=w(X,D,Z,K,ge,9,p[25]),K=w(K,X,D,Z,H,14,p[26]),Z=w(Z,K,X,D,V,20,p[27]),D=w(D,Z,K,X,q,5,p[28]),X=w(X,D,Z,K,j,9,p[29]),K=w(K,X,D,Z,re,14,p[30]),Z=w(Z,K,X,D,de,20,p[31]),D=S(D,Z,K,X,U,4,p[32]),X=S(X,D,Z,K,V,11,p[33]),K=S(K,X,D,Z,se,16,p[34]),Z=S(Z,K,X,D,ge,23,p[35]),D=S(D,Z,K,X,z,4,p[36]),X=S(X,D,Z,K,$,11,p[37]),K=S(K,X,D,Z,re,16,p[38]),Z=S(Z,K,X,D,le,23,p[39]),D=S(D,Z,K,X,q,4,p[40]),X=S(X,D,Z,K,I,11,p[41]),K=S(K,X,D,Z,H,16,p[42]),Z=S(Z,K,X,D,G,23,p[43]),D=S(D,Z,K,X,J,4,p[44]),X=S(X,D,Z,K,de,11,p[45]),K=S(K,X,D,Z,ne,16,p[46]),Z=S(Z,K,X,D,j,23,p[47]),D=T(D,Z,K,X,I,6,p[48]),X=T(X,D,Z,K,re,10,p[49]),K=T(K,X,D,Z,ge,15,p[50]),Z=T(Z,K,X,D,U,21,p[51]),D=T(D,Z,K,X,de,6,p[52]),X=T(X,D,Z,K,H,10,p[53]),K=T(K,X,D,Z,le,15,p[54]),Z=T(Z,K,X,D,z,21,p[55]),D=T(D,Z,K,X,V,6,p[56]),X=T(X,D,Z,K,ne,10,p[57]),K=T(K,X,D,Z,G,15,p[58]),Z=T(Z,K,X,D,q,21,p[59]),D=T(D,Z,K,X,$,6,p[60]),X=T(X,D,Z,K,se,10,p[61]),K=T(K,X,D,Z,j,15,p[62]),Z=T(Z,K,X,D,J,21,p[63]),N[0]=N[0]+D|0,N[1]=N[1]+Z|0,N[2]=N[2]+K|0,N[3]=N[3]+X|0},_doFinalize:function(){var C=this._data,E=C.words,P=this._nDataBytes*8,B=C.sigBytes*8;E[B>>>5]|=128<<24-B%32;var k=l.floor(P/4294967296),N=P;E[(B+64>>>9<<4)+15]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,E[(B+64>>>9<<4)+14]=(N<<8|N>>>24)&16711935|(N<<24|N>>>8)&4278255360,C.sigBytes=(E.length+1)*4,this._process();for(var I=this._hash,z=I.words,j=0;j<4;j++){var H=z[j];z[j]=(H<<8|H>>>24)&16711935|(H<<24|H>>>8)&4278255360}return I},clone:function(){var C=h.clone.call(this);return C._hash=this._hash.clone(),C}});function v(C,E,P,B,k,N,I){var z=C+(E&P|~E&B)+k+I;return(z<>>32-N)+E}function w(C,E,P,B,k,N,I){var z=C+(E&B|P&~B)+k+I;return(z<>>32-N)+E}function S(C,E,P,B,k,N,I){var z=C+(E^P^B)+k+I;return(z<>>32-N)+E}function T(C,E,P,B,k,N,I){var z=C+(P^(E|~B))+k+I;return(z<>>32-N)+E}f.MD5=h._createHelper(y),f.HmacMD5=h._createHmacHelper(y)})(Math),s.MD5})})(Zu)),Zu.exports}var Wu={exports:{}},X2=Wu.exports,lm;function sx(){return lm||(lm=1,(function(r,a){(function(s,l){r.exports=l(ct())})(X2,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=f.Hasher,h=l.algo,x=[],p=h.SHA1=m.extend({_doReset:function(){this._hash=new d.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(y,v){for(var w=this._hash.words,S=w[0],T=w[1],C=w[2],E=w[3],P=w[4],B=0;B<80;B++){if(B<16)x[B]=y[v+B]|0;else{var k=x[B-3]^x[B-8]^x[B-14]^x[B-16];x[B]=k<<1|k>>>31}var N=(S<<5|S>>>27)+P+x[B];B<20?N+=(T&C|~T&E)+1518500249:B<40?N+=(T^C^E)+1859775393:B<60?N+=(T&C|T&E|C&E)-1894007588:N+=(T^C^E)-899497514,P=E,E=C,C=T<<30|T>>>2,T=S,S=N}w[0]=w[0]+S|0,w[1]=w[1]+T|0,w[2]=w[2]+C|0,w[3]=w[3]+E|0,w[4]=w[4]+P|0},_doFinalize:function(){var y=this._data,v=y.words,w=this._nDataBytes*8,S=y.sigBytes*8;return v[S>>>5]|=128<<24-S%32,v[(S+64>>>9<<4)+14]=Math.floor(w/4294967296),v[(S+64>>>9<<4)+15]=w,y.sigBytes=v.length*4,this._process(),this._hash},clone:function(){var y=m.clone.call(this);return y._hash=this._hash.clone(),y}});l.SHA1=m._createHelper(p),l.HmacSHA1=m._createHmacHelper(p)})(),s.SHA1})})(Wu)),Wu.exports}var qu={exports:{}},J2=qu.exports,um;function ll(){return um||(um=1,(function(r,a){(function(s,l){r.exports=l(ct())})(J2,function(s){return(function(l){var f=s,d=f.lib,m=d.WordArray,h=d.Hasher,x=f.algo,p=[],y=[];(function(){function S(P){for(var B=l.sqrt(P),k=2;k<=B;k++)if(!(P%k))return!1;return!0}function T(P){return(P-(P|0))*4294967296|0}for(var C=2,E=0;E<64;)S(C)&&(E<8&&(p[E]=T(l.pow(C,1/2))),y[E]=T(l.pow(C,1/3)),E++),C++})();var v=[],w=x.SHA256=h.extend({_doReset:function(){this._hash=new m.init(p.slice(0))},_doProcessBlock:function(S,T){for(var C=this._hash.words,E=C[0],P=C[1],B=C[2],k=C[3],N=C[4],I=C[5],z=C[6],j=C[7],H=0;H<64;H++){if(H<16)v[H]=S[T+H]|0;else{var $=v[H-15],U=($<<25|$>>>7)^($<<14|$>>>18)^$>>>3,G=v[H-2],re=(G<<15|G>>>17)^(G<<13|G>>>19)^G>>>10;v[H]=U+v[H-7]+re+v[H-16]}var V=N&I^~N&z,J=E&P^E&B^P&B,le=(E<<30|E>>>2)^(E<<19|E>>>13)^(E<<10|E>>>22),se=(N<<26|N>>>6)^(N<<21|N>>>11)^(N<<7|N>>>25),de=j+se+V+y[H]+v[H],q=le+J;j=z,z=I,I=N,N=k+de|0,k=B,B=P,P=E,E=de+q|0}C[0]=C[0]+E|0,C[1]=C[1]+P|0,C[2]=C[2]+B|0,C[3]=C[3]+k|0,C[4]=C[4]+N|0,C[5]=C[5]+I|0,C[6]=C[6]+z|0,C[7]=C[7]+j|0},_doFinalize:function(){var S=this._data,T=S.words,C=this._nDataBytes*8,E=S.sigBytes*8;return T[E>>>5]|=128<<24-E%32,T[(E+64>>>9<<4)+14]=l.floor(C/4294967296),T[(E+64>>>9<<4)+15]=C,S.sigBytes=T.length*4,this._process(),this._hash},clone:function(){var S=h.clone.call(this);return S._hash=this._hash.clone(),S}});f.SHA256=h._createHelper(w),f.HmacSHA256=h._createHmacHelper(w)})(Math),s.SHA256})})(qu)),qu.exports}var Gu={exports:{}},eb=Gu.exports,cm;function tb(){return cm||(cm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),ll())})(eb,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=l.algo,h=m.SHA256,x=m.SHA224=h.extend({_doReset:function(){this._hash=new d.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var p=h._doFinalize.call(this);return p.sigBytes-=4,p}});l.SHA224=h._createHelper(x),l.HmacSHA224=h._createHmacHelper(x)})(),s.SHA224})})(Gu)),Gu.exports}var Qu={exports:{}},nb=Qu.exports,dm;function ax(){return dm||(dm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Gc())})(nb,function(s){return(function(){var l=s,f=l.lib,d=f.Hasher,m=l.x64,h=m.Word,x=m.WordArray,p=l.algo;function y(){return h.create.apply(h,arguments)}var v=[y(1116352408,3609767458),y(1899447441,602891725),y(3049323471,3964484399),y(3921009573,2173295548),y(961987163,4081628472),y(1508970993,3053834265),y(2453635748,2937671579),y(2870763221,3664609560),y(3624381080,2734883394),y(310598401,1164996542),y(607225278,1323610764),y(1426881987,3590304994),y(1925078388,4068182383),y(2162078206,991336113),y(2614888103,633803317),y(3248222580,3479774868),y(3835390401,2666613458),y(4022224774,944711139),y(264347078,2341262773),y(604807628,2007800933),y(770255983,1495990901),y(1249150122,1856431235),y(1555081692,3175218132),y(1996064986,2198950837),y(2554220882,3999719339),y(2821834349,766784016),y(2952996808,2566594879),y(3210313671,3203337956),y(3336571891,1034457026),y(3584528711,2466948901),y(113926993,3758326383),y(338241895,168717936),y(666307205,1188179964),y(773529912,1546045734),y(1294757372,1522805485),y(1396182291,2643833823),y(1695183700,2343527390),y(1986661051,1014477480),y(2177026350,1206759142),y(2456956037,344077627),y(2730485921,1290863460),y(2820302411,3158454273),y(3259730800,3505952657),y(3345764771,106217008),y(3516065817,3606008344),y(3600352804,1432725776),y(4094571909,1467031594),y(275423344,851169720),y(430227734,3100823752),y(506948616,1363258195),y(659060556,3750685593),y(883997877,3785050280),y(958139571,3318307427),y(1322822218,3812723403),y(1537002063,2003034995),y(1747873779,3602036899),y(1955562222,1575990012),y(2024104815,1125592928),y(2227730452,2716904306),y(2361852424,442776044),y(2428436474,593698344),y(2756734187,3733110249),y(3204031479,2999351573),y(3329325298,3815920427),y(3391569614,3928383900),y(3515267271,566280711),y(3940187606,3454069534),y(4118630271,4000239992),y(116418474,1914138554),y(174292421,2731055270),y(289380356,3203993006),y(460393269,320620315),y(685471733,587496836),y(852142971,1086792851),y(1017036298,365543100),y(1126000580,2618297676),y(1288033470,3409855158),y(1501505948,4234509866),y(1607167915,987167468),y(1816402316,1246189591)],w=[];(function(){for(var T=0;T<80;T++)w[T]=y()})();var S=p.SHA512=d.extend({_doReset:function(){this._hash=new x.init([new h.init(1779033703,4089235720),new h.init(3144134277,2227873595),new h.init(1013904242,4271175723),new h.init(2773480762,1595750129),new h.init(1359893119,2917565137),new h.init(2600822924,725511199),new h.init(528734635,4215389547),new h.init(1541459225,327033209)])},_doProcessBlock:function(T,C){for(var E=this._hash.words,P=E[0],B=E[1],k=E[2],N=E[3],I=E[4],z=E[5],j=E[6],H=E[7],$=P.high,U=P.low,G=B.high,re=B.low,V=k.high,J=k.low,le=N.high,se=N.low,de=I.high,q=I.low,ge=z.high,ne=z.low,D=j.high,Z=j.low,K=H.high,X=H.low,fe=$,he=U,ke=G,Ae=re,qe=V,Ye=J,Et=le,ht=se,Se=de,Ve=q,dt=ge,Mt=ne,vt=D,ot=Z,Qe=K,Xe=X,et=0;et<80;et++){var Oe,_t,$t=w[et];if(et<16)_t=$t.high=T[C+et*2]|0,Oe=$t.low=T[C+et*2+1]|0;else{var Un=w[et-15],It=Un.high,Jt=Un.low,fn=(It>>>1|Jt<<31)^(It>>>8|Jt<<24)^It>>>7,Sn=(Jt>>>1|It<<31)^(Jt>>>8|It<<24)^(Jt>>>7|It<<25),Ut=w[et-2],St=Ut.high,Zt=Ut.low,Zn=(St>>>19|Zt<<13)^(St<<3|Zt>>>29)^St>>>6,xn=(Zt>>>19|St<<13)^(Zt<<3|St>>>29)^(Zt>>>6|St<<26),pe=w[et-7],we=pe.high,te=pe.low,me=w[et-16],Ee=me.high,He=me.low;Oe=Sn+te,_t=fn+we+(Oe>>>0>>0?1:0),Oe=Oe+xn,_t=_t+Zn+(Oe>>>0>>0?1:0),Oe=Oe+He,_t=_t+Ee+(Oe>>>0>>0?1:0),$t.high=_t,$t.low=Oe}var ze=Se&dt^~Se&vt,nt=Ve&Mt^~Ve&ot,hn=fe&ke^fe&qe^ke&qe,je=he&Ae^he&Ye^Ae&Ye,pt=(fe>>>28|he<<4)^(fe<<30|he>>>2)^(fe<<25|he>>>7),kt=(he>>>28|fe<<4)^(he<<30|fe>>>2)^(he<<25|fe>>>7),Rt=(Se>>>14|Ve<<18)^(Se>>>18|Ve<<14)^(Se<<23|Ve>>>9),Fn=(Ve>>>14|Se<<18)^(Ve>>>18|Se<<14)^(Ve<<23|Se>>>9),rt=v[et],wt=rt.high,Wn=rt.low,mt=Xe+Fn,Ft=Qe+Rt+(mt>>>0>>0?1:0),mt=mt+nt,Ft=Ft+ze+(mt>>>0>>0?1:0),mt=mt+Wn,Ft=Ft+wt+(mt>>>0>>0?1:0),mt=mt+Oe,Ft=Ft+_t+(mt>>>0>>0?1:0),Wt=kt+je,Pe=pt+hn+(Wt>>>0>>0?1:0);Qe=vt,Xe=ot,vt=dt,ot=Mt,dt=Se,Mt=Ve,Ve=ht+mt|0,Se=Et+Ft+(Ve>>>0>>0?1:0)|0,Et=qe,ht=Ye,qe=ke,Ye=Ae,ke=fe,Ae=he,he=mt+Wt|0,fe=Ft+Pe+(he>>>0>>0?1:0)|0}U=P.low=U+he,P.high=$+fe+(U>>>0>>0?1:0),re=B.low=re+Ae,B.high=G+ke+(re>>>0>>0?1:0),J=k.low=J+Ye,k.high=V+qe+(J>>>0>>0?1:0),se=N.low=se+ht,N.high=le+Et+(se>>>0>>0?1:0),q=I.low=q+Ve,I.high=de+Se+(q>>>0>>0?1:0),ne=z.low=ne+Mt,z.high=ge+dt+(ne>>>0>>0?1:0),Z=j.low=Z+ot,j.high=D+vt+(Z>>>0>>0?1:0),X=H.low=X+Xe,H.high=K+Qe+(X>>>0>>0?1:0)},_doFinalize:function(){var T=this._data,C=T.words,E=this._nDataBytes*8,P=T.sigBytes*8;C[P>>>5]|=128<<24-P%32,C[(P+128>>>10<<5)+30]=Math.floor(E/4294967296),C[(P+128>>>10<<5)+31]=E,T.sigBytes=C.length*4,this._process();var B=this._hash.toX32();return B},clone:function(){var T=d.clone.call(this);return T._hash=this._hash.clone(),T},blockSize:1024/32});l.SHA512=d._createHelper(S),l.HmacSHA512=d._createHmacHelper(S)})(),s.SHA512})})(Qu)),Qu.exports}var Ku={exports:{}},rb=Ku.exports,fm;function ib(){return fm||(fm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Gc(),ax())})(rb,function(s){return(function(){var l=s,f=l.x64,d=f.Word,m=f.WordArray,h=l.algo,x=h.SHA512,p=h.SHA384=x.extend({_doReset:function(){this._hash=new m.init([new d.init(3418070365,3238371032),new d.init(1654270250,914150663),new d.init(2438529370,812702999),new d.init(355462360,4144912697),new d.init(1731405415,4290775857),new d.init(2394180231,1750603025),new d.init(3675008525,1694076839),new d.init(1203062813,3204075428)])},_doFinalize:function(){var y=x._doFinalize.call(this);return y.sigBytes-=16,y}});l.SHA384=x._createHelper(p),l.HmacSHA384=x._createHmacHelper(p)})(),s.SHA384})})(Ku)),Ku.exports}var $u={exports:{}},ob=$u.exports,hm;function sb(){return hm||(hm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Gc())})(ob,function(s){return(function(l){var f=s,d=f.lib,m=d.WordArray,h=d.Hasher,x=f.x64,p=x.Word,y=f.algo,v=[],w=[],S=[];(function(){for(var E=1,P=0,B=0;B<24;B++){v[E+5*P]=(B+1)*(B+2)/2%64;var k=P%5,N=(2*E+3*P)%5;E=k,P=N}for(var E=0;E<5;E++)for(var P=0;P<5;P++)w[E+5*P]=P+(2*E+3*P)%5*5;for(var I=1,z=0;z<24;z++){for(var j=0,H=0,$=0;$<7;$++){if(I&1){var U=(1<<$)-1;U<32?H^=1<>>24)&16711935|(I<<24|I>>>8)&4278255360,z=(z<<8|z>>>24)&16711935|(z<<24|z>>>8)&4278255360;var j=B[N];j.high^=z,j.low^=I}for(var H=0;H<24;H++){for(var $=0;$<5;$++){for(var U=0,G=0,re=0;re<5;re++){var j=B[$+5*re];U^=j.high,G^=j.low}var V=T[$];V.high=U,V.low=G}for(var $=0;$<5;$++)for(var J=T[($+4)%5],le=T[($+1)%5],se=le.high,de=le.low,U=J.high^(se<<1|de>>>31),G=J.low^(de<<1|se>>>31),re=0;re<5;re++){var j=B[$+5*re];j.high^=U,j.low^=G}for(var q=1;q<25;q++){var U,G,j=B[q],ge=j.high,ne=j.low,D=v[q];D<32?(U=ge<>>32-D,G=ne<>>32-D):(U=ne<>>64-D,G=ge<>>64-D);var Z=T[w[q]];Z.high=U,Z.low=G}var K=T[0],X=B[0];K.high=X.high,K.low=X.low;for(var $=0;$<5;$++)for(var re=0;re<5;re++){var q=$+5*re,j=B[q],fe=T[q],he=T[($+1)%5+5*re],ke=T[($+2)%5+5*re];j.high=fe.high^~he.high&ke.high,j.low=fe.low^~he.low&ke.low}var j=B[0],Ae=S[H];j.high^=Ae.high,j.low^=Ae.low}},_doFinalize:function(){var E=this._data,P=E.words;this._nDataBytes*8;var B=E.sigBytes*8,k=this.blockSize*32;P[B>>>5]|=1<<24-B%32,P[(l.ceil((B+1)/k)*k>>>5)-1]|=128,E.sigBytes=P.length*4,this._process();for(var N=this._state,I=this.cfg.outputLength/8,z=I/8,j=[],H=0;H>>24)&16711935|(U<<24|U>>>8)&4278255360,G=(G<<8|G>>>24)&16711935|(G<<24|G>>>8)&4278255360,j.push(G),j.push(U)}return new m.init(j,I)},clone:function(){for(var E=h.clone.call(this),P=E._state=this._state.slice(0),B=0;B<25;B++)P[B]=P[B].clone();return E}});f.SHA3=h._createHelper(C),f.HmacSHA3=h._createHmacHelper(C)})(Math),s.SHA3})})($u)),$u.exports}var Yu={exports:{}},ab=Yu.exports,pm;function lb(){return pm||(pm=1,(function(r,a){(function(s,l){r.exports=l(ct())})(ab,function(s){/** @preserve + */var _2=Ja.exports,Xp;function w2(){return Xp||(Xp=1,(function(r,a){(function(s,l){l(a)})(_2,(function(s){var l="1.9.4";function f(t){var i,u,A,C;for(u=1,A=arguments.length;u"u"||!L||!L.Mixin)){t=k(t)?t:[t];for(var i=0;i0?Math.floor(t):Math.ceil(t)};q.prototype={clone:function(){return new q(this.x,this.y)},add:function(t){return this.clone()._add(ne(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(ne(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new q(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new q(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=ge(this.x),this.y=ge(this.y),this},distanceTo:function(t){t=ne(t);var i=t.x-this.x,u=t.y-this.y;return Math.sqrt(i*i+u*u)},equals:function(t){return t=ne(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=ne(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+w(this.x)+", "+w(this.y)+")"}};function ne(t,i,u){return t instanceof q?t:k(t)?new q(t[0],t[1]):t==null?t:typeof t=="object"&&"x"in t&&"y"in t?new q(t.x,t.y):new q(t,i,u)}function D(t,i){if(t)for(var u=i?[t,i]:t,A=0,C=u.length;A=this.min.x&&u.x<=this.max.x&&i.y>=this.min.y&&u.y<=this.max.y},intersects:function(t){t=Z(t);var i=this.min,u=this.max,A=t.min,C=t.max,O=C.x>=i.x&&A.x<=u.x,Q=C.y>=i.y&&A.y<=u.y;return O&&Q},overlaps:function(t){t=Z(t);var i=this.min,u=this.max,A=t.min,C=t.max,O=C.x>i.x&&A.xi.y&&A.y=i.lat&&C.lat<=u.lat&&A.lng>=i.lng&&C.lng<=u.lng},intersects:function(t){t=X(t);var i=this._southWest,u=this._northEast,A=t.getSouthWest(),C=t.getNorthEast(),O=C.lat>=i.lat&&A.lat<=u.lat,Q=C.lng>=i.lng&&A.lng<=u.lng;return O&&Q},overlaps:function(t){t=X(t);var i=this._southWest,u=this._northEast,A=t.getSouthWest(),C=t.getNorthEast(),O=C.lat>i.lat&&A.lati.lng&&A.lng1,Rt=(function(){var t=!1;try{var i=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",v,i),window.removeEventListener("testPassiveEventSupport",v,i)}catch{}return t})(),Fn=(function(){return!!document.createElement("canvas").getContext})(),rt=!!(document.createElementNS&&dt("svg").createSVGRect),wt=!!rt&&(function(){var t=document.createElement("div");return t.innerHTML="",(t.firstChild&&t.firstChild.namespaceURI)==="http://www.w3.org/2000/svg"})(),Wn=!rt&&(function(){try{var t=document.createElement("div");t.innerHTML='';var i=t.firstChild;return i.style.behavior="url(#default#VML)",i&&typeof i.adj=="object"}catch{return!1}})(),mt=navigator.platform.indexOf("Mac")===0,Ft=navigator.platform.indexOf("Linux")===0;function Wt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var Pe={ie:ot,ielt9:Qe,edge:Xe,webkit:et,android:Oe,android23:_t,androidStock:Un,opera:It,chrome:Jt,gecko:fn,safari:Sn,phantom:Ut,opera12:St,win:Zt,ie3d:Zn,webkit3d:xn,gecko3d:pe,any3d:we,mobile:te,mobileWebkit:me,mobileWebkit3d:Ee,msPointer:He,pointer:ze,touch:hn,touchNative:nt,mobileOpera:je,mobileGecko:pt,retina:kt,passiveEvents:Rt,canvas:Fn,svg:rt,vml:Wn,inlineSvg:wt,mac:mt,linux:Ft},wi=Pe.msPointer?"MSPointerDown":"pointerdown",Go=Pe.msPointer?"MSPointerMove":"pointermove",ul=Pe.msPointer?"MSPointerUp":"pointerup",cl=Pe.msPointer?"MSPointerCancel":"pointercancel",Gs={touchstart:wi,touchmove:Go,touchend:ul,touchcancel:cl},Nr={touchstart:Ot,touchmove:Qo,touchend:Qo,touchcancel:Qo},Yr={},Qs=!1;function Yc(t,i,u){return i==="touchstart"&&Xc(),Nr[i]?(u=Nr[i].bind(this,u),t.addEventListener(Gs[i],u,!1),u):(console.warn("wrong event specified:",i),v)}function dl(t,i,u){if(!Gs[i]){console.warn("wrong event specified:",i);return}t.removeEventListener(Gs[i],u,!1)}function fl(t){Yr[t.pointerId]=t}function hl(t){Yr[t.pointerId]&&(Yr[t.pointerId]=t)}function Ks(t){delete Yr[t.pointerId]}function Xc(){Qs||(document.addEventListener(wi,fl,!0),document.addEventListener(Go,hl,!0),document.addEventListener(ul,Ks,!0),document.addEventListener(cl,Ks,!0),Qs=!0)}function Qo(t,i){if(i.pointerType!==(i.MSPOINTER_TYPE_MOUSE||"mouse")){i.touches=[];for(var u in Yr)i.touches.push(Yr[u]);i.changedTouches=[i],t(i)}}function Ot(t,i){i.MSPOINTER_TYPE_TOUCH&&i.pointerType===i.MSPOINTER_TYPE_TOUCH&&zt(i),Qo(t,i)}function Jc(t){var i={},u,A;for(A in t)u=t[A],i[A]=u&&u.bind?u.bind(t):u;return t=i,i.type="dblclick",i.detail=2,i.isTrusted=!1,i._simulated=!0,i}var $s=200;function pl(t,i){t.addEventListener("dblclick",i);var u=0,A;function C(O){if(O.detail!==1){A=O.detail;return}if(!(O.pointerType==="mouse"||O.sourceCapabilities&&!O.sourceCapabilities.firesTouchEvents)){var Q=ei(O);if(!(Q.some(function(ue){return ue instanceof HTMLLabelElement&&ue.attributes.for})&&!Q.some(function(ue){return ue instanceof HTMLInputElement||ue instanceof HTMLSelectElement}))){var ie=Date.now();ie-u<=$s?(A++,A===2&&i(Jc(O))):A=1,u=ie}}}return t.addEventListener("click",C),{dblclick:i,simDblclick:C}}function Ko(t,i){t.removeEventListener("dblclick",i.dblclick),t.removeEventListener("click",i.simDblclick)}var Ys=ki(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),Ci=ki(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),ao=Ci==="webkitTransition"||Ci==="OTransition"?Ci+"End":"transitionend";function qn(t){return typeof t=="string"?document.getElementById(t):t}function lo(t,i){var u=t.style[i]||t.currentStyle&&t.currentStyle[i];if((!u||u==="auto")&&document.defaultView){var A=document.defaultView.getComputedStyle(t,null);u=A?A[i]:null}return u==="auto"?null:u}function Je(t,i,u){var A=document.createElement(t);return A.className=i||"",u&&u.appendChild(A),A}function Tt(t){var i=t.parentNode;i&&i.removeChild(t)}function $o(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function bi(t){var i=t.parentNode;i&&i.lastChild!==t&&i.appendChild(t)}function vr(t){var i=t.parentNode;i&&i.firstChild!==t&&i.insertBefore(t,i.firstChild)}function Ei(t,i){if(t.classList!==void 0)return t.classList.contains(i);var u=Yo(t);return u.length>0&&new RegExp("(^|\\s)"+i+"(\\s|$)").test(u)}function $e(t,i){if(t.classList!==void 0)for(var u=T(i),A=0,C=u.length;A0?2*window.devicePixelRatio:1;function Al(t){return Pe.edge?t.wheelDeltaY/2:t.deltaY&&t.deltaMode===0?-t.deltaY/ed:t.deltaY&&t.deltaMode===1?-t.deltaY*20:t.deltaY&&t.deltaMode===2?-t.deltaY*60:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?-t.detail*20:t.detail?t.detail/-32765*60:0}function mo(t,i){var u=i.relatedTarget;if(!u)return!0;try{for(;u&&u!==t;)u=u.parentNode}catch{return!1}return u!==t}var rs={__proto__:null,on:Ge,off:Ct,stopPropagation:sr,disableScrollPropagation:ns,disableClickPropagation:ho,preventDefault:zt,stop:Kn,getPropagationPath:ei,getMousePosition:po,getWheelDelta:Al,isExternalTarget:mo,addListener:Ge,removeListener:Ct},is=de.extend({run:function(t,i,u,A){this.stop(),this._el=t,this._inProgress=!0,this._duration=u||.25,this._easeOutPower=1/Math.max(A||.5,.2),this._startPos=yr(t),this._offset=i.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=G(this._animate,this),this._step()},_step:function(t){var i=+new Date-this._startTime,u=this._duration*1e3;ithis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,i){this._enforcingBounds=!0;var u=this.getCenter(),A=this._limitCenter(u,this._zoom,X(t));return u.equals(A)||this.panTo(A,i),this._enforcingBounds=!1,this},panInside:function(t,i){i=i||{};var u=ne(i.paddingTopLeft||i.padding||[0,0]),A=ne(i.paddingBottomRight||i.padding||[0,0]),C=this.project(this.getCenter()),O=this.project(t),Q=this.getPixelBounds(),ie=Z([Q.min.add(u),Q.max.subtract(A)]),ue=ie.getSize();if(!ie.contains(O)){this._enforcingBounds=!0;var xe=O.subtract(ie.getCenter()),Be=ie.extend(O).getSize().subtract(ue);C.x+=xe.x<0?-Be.x:Be.x,C.y+=xe.y<0?-Be.y:Be.y,this.panTo(this.unproject(C),i),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=f({animate:!1,pan:!0},t===!0?{animate:!0}:t);var i=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var u=this.getSize(),A=i.divideBy(2).round(),C=u.divideBy(2).round(),O=A.subtract(C);return!O.x&&!O.y?this:(t.animate&&t.pan?this.panBy(O):(t.pan&&this._rawPanBy(O),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(m(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:i,newSize:u}))},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=f({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var i=m(this._handleGeolocationResponse,this),u=m(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(i,u,t):navigator.geolocation.getCurrentPosition(i,u,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){if(this._container._leaflet_id){var i=t.code,u=t.message||(i===1?"permission denied":i===2?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:i,message:"Geolocation error: "+u+"."})}},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var i=t.coords.latitude,u=t.coords.longitude,A=new fe(i,u),C=A.toBounds(t.coords.accuracy*2),O=this._locateOptions;if(O.setView){var Q=this.getBoundsZoom(C);this.setView(A,O.maxZoom?Math.min(Q,O.maxZoom):Q)}var ie={latlng:A,bounds:C,timestamp:t.timestamp};for(var ue in t.coords)typeof t.coords[ue]=="number"&&(ie[ue]=t.coords[ue]);this.fire("locationfound",ie)}},addHandler:function(t,i){if(!i)return this;var u=this[t]=new i(this);return this._handlers.push(u),this.options[t]&&u.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch{this._container._leaflet_id=void 0,this._containerId=void 0}this._locationWatchId!==void 0&&this.stopLocate(),this._stop(),Tt(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(re(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload");var t;for(t in this._layers)this._layers[t].remove();for(t in this._panes)Tt(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,i){var u="leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),A=Je("div",u,i||this._mapPane);return t&&(this._panes[t]=A),A},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),i=this.unproject(t.getBottomLeft()),u=this.unproject(t.getTopRight());return new K(i,u)},getMinZoom:function(){return this.options.minZoom===void 0?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===void 0?this._layersMaxZoom===void 0?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,i,u){t=X(t),u=ne(u||[0,0]);var A=this.getZoom()||0,C=this.getMinZoom(),O=this.getMaxZoom(),Q=t.getNorthWest(),ie=t.getSouthEast(),ue=this.getSize().subtract(u),xe=Z(this.project(ie,A),this.project(Q,A)).getSize(),Be=Pe.any3d?this.options.zoomSnap:1,Ue=ue.x/xe.x,tt=ue.y/xe.y,tn=i?Math.max(Ue,tt):Math.min(Ue,tt);return A=this.getScaleZoom(tn,A),Be&&(A=Math.round(A/(Be/100))*(Be/100),A=i?Math.ceil(A/Be)*Be:Math.floor(A/Be)*Be),Math.max(C,Math.min(O,A))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new q(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,i){var u=this._getTopLeftPoint(t,i);return new D(u,u.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(t===void 0?this.getZoom():t)},getPane:function(t){return typeof t=="string"?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,i){var u=this.options.crs;return i=i===void 0?this._zoom:i,u.scale(t)/u.scale(i)},getScaleZoom:function(t,i){var u=this.options.crs;i=i===void 0?this._zoom:i;var A=u.zoom(t*u.scale(i));return isNaN(A)?1/0:A},project:function(t,i){return i=i===void 0?this._zoom:i,this.options.crs.latLngToPoint(he(t),i)},unproject:function(t,i){return i=i===void 0?this._zoom:i,this.options.crs.pointToLatLng(ne(t),i)},layerPointToLatLng:function(t){var i=ne(t).add(this.getPixelOrigin());return this.unproject(i)},latLngToLayerPoint:function(t){var i=this.project(he(t))._round();return i._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(he(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(X(t))},distance:function(t,i){return this.options.crs.distance(he(t),he(i))},containerPointToLayerPoint:function(t){return ne(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return ne(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var i=this.containerPointToLayerPoint(ne(t));return this.layerPointToLatLng(i)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(he(t)))},mouseEventToContainerPoint:function(t){return po(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var i=this._container=qn(t);if(i){if(i._leaflet_id)throw new Error("Map container is already initialized.")}else throw new Error("Map container not found.");Ge(i,"scroll",this._onScroll,this),this._containerId=x(i)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&Pe.any3d,$e(t,"leaflet-container"+(Pe.touch?" leaflet-touch":"")+(Pe.retina?" leaflet-retina":"")+(Pe.ielt9?" leaflet-oldie":"")+(Pe.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var i=lo(t,"position");i!=="absolute"&&i!=="relative"&&i!=="fixed"&&i!=="sticky"&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),qt(this._mapPane,new q(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||($e(t.markerPane,"leaflet-zoom-hide"),$e(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,i,u){qt(this._mapPane,new q(0,0));var A=!this._loaded;this._loaded=!0,i=this._limitZoom(i),this.fire("viewprereset");var C=this._zoom!==i;this._moveStart(C,u)._move(t,i)._moveEnd(C),this.fire("viewreset"),A&&this.fire("load")},_moveStart:function(t,i){return t&&this.fire("zoomstart"),i||this.fire("movestart"),this},_move:function(t,i,u,A){i===void 0&&(i=this._zoom);var C=this._zoom!==i;return this._zoom=i,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),A?u&&u.pinch&&this.fire("zoom",u):((C||u&&u.pinch)&&this.fire("zoom",u),this.fire("move",u)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return re(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){qt(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[x(this._container)]=this;var i=t?Ct:Ge;i(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&i(window,"resize",this._onResize,this),Pe.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){re(this._resizeRequest),this._resizeRequest=G(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,i){for(var u=[],A,C=i==="mouseout"||i==="mouseover",O=t.target||t.srcElement,Q=!1;O;){if(A=this._targets[x(O)],A&&(i==="click"||i==="preclick")&&this._draggableMoved(A)){Q=!0;break}if(A&&A.listens(i,!0)&&(C&&!mo(O,t)||(u.push(A),C))||O===this._container)break;O=O.parentNode}return!u.length&&!Q&&!C&&this.listens(i,!0)&&(u=[this]),u},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var i=t.target||t.srcElement;if(!(!this._loaded||i._leaflet_disable_events||t.type==="click"&&this._isClickDisabled(i))){var u=t.type;u==="mousedown"&&Bi(i),this._fireDOMEvent(t,u)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,i,u){if(t.type==="click"){var A=f({},t);A.type="preclick",this._fireDOMEvent(A,A.type,u)}var C=this._findEventTargets(t,i);if(u){for(var O=[],Q=0;Q0?Math.round(t-i)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(i))},_limitZoom:function(t){var i=this.getMinZoom(),u=this.getMaxZoom(),A=Pe.any3d?this.options.zoomSnap:1;return A&&(t=Math.round(t/A)*A),Math.max(i,Math.min(u,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){Bt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,i){var u=this._getCenterOffset(t)._trunc();return(i&&i.animate)!==!0&&!this.getSize().contains(u)?!1:(this.panBy(u,i),!0)},_createAnimProxy:function(){var t=this._proxy=Je("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(i){var u=Ys,A=this._proxy.style[u];Gn(this._proxy,this.project(i.center,i.zoom),this.getZoomScale(i.zoom,1)),A===this._proxy.style[u]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){Tt(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),i=this.getZoom();Gn(this._proxy,this.project(t,i),this.getZoomScale(i,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,i,u){if(this._animatingZoom)return!0;if(u=u||{},!this._zoomAnimated||u.animate===!1||this._nothingToAnimate()||Math.abs(i-this._zoom)>this.options.zoomAnimationThreshold)return!1;var A=this.getZoomScale(i),C=this._getCenterOffset(t)._divideBy(1-1/A);return u.animate!==!0&&!this.getSize().contains(C)?!1:(G(function(){this._moveStart(!0,u.noMoveStart||!1)._animateZoom(t,i,!0)},this),!0)},_animateZoom:function(t,i,u,A){this._mapPane&&(u&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=i,$e(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:i,noUpdate:A}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(m(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&Bt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Lr(t,i){return new ut(t,i)}var Bn=J.extend({options:{position:"topright"},initialize:function(t){b(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var i=this._map;return i&&i.removeControl(this),this.options.position=t,i&&i.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var i=this._container=this.onAdd(t),u=this.getPosition(),A=t._controlCorners[u];return $e(i,"leaflet-control"),u.indexOf("bottom")!==-1?A.insertBefore(i,A.firstChild):A.appendChild(i),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(Tt(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),Mr=function(t){return new Bn(t)};ut.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},i="leaflet-",u=this._controlContainer=Je("div",i+"control-container",this._container);function A(C,O){var Q=i+C+" "+i+O;t[C+O]=Je("div",Q,u)}A("top","left"),A("top","right"),A("bottom","left"),A("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)Tt(this._controlCorners[t]);Tt(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var ta=Bn.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,i,u,A){return u1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=i&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var i=this._getLayer(x(t.target)),u=i.overlay?t.type==="add"?"overlayadd":"overlayremove":t.type==="add"?"baselayerchange":null;u&&this._map.fire(u,i)},_createRadioElement:function(t,i){var u='",A=document.createElement("div");return A.innerHTML=u,A.firstChild},_addItem:function(t){var i=document.createElement("label"),u=this._map.hasLayer(t.layer),A;t.overlay?(A=document.createElement("input"),A.type="checkbox",A.className="leaflet-control-layers-selector",A.defaultChecked=u):A=this._createRadioElement("leaflet-base-layers_"+x(this),u),this._layerControlInputs.push(A),A.layerId=x(t.layer),Ge(A,"click",this._onInputClick,this);var C=document.createElement("span");C.innerHTML=" "+t.name;var O=document.createElement("span");i.appendChild(O),O.appendChild(A),O.appendChild(C);var Q=t.overlay?this._overlaysList:this._baseLayersList;return Q.appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t=this._layerControlInputs,i,u,A=[],C=[];this._handlingClick=!0;for(var O=t.length-1;O>=0;O--)i=t[O],u=this._getLayer(i.layerId).layer,i.checked?A.push(u):i.checked||C.push(u);for(O=0;O=0;C--)i=t[C],u=this._getLayer(i.layerId).layer,i.disabled=u.options.minZoom!==void 0&&Au.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;this._preventClick=!0,Ge(t,"click",zt),this.expand();var i=this;setTimeout(function(){Ct(t,"click",zt),i._preventClick=!1})}}),os=function(t,i,u){return new ta(t,i,u)},Pi=Bn.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var i="leaflet-control-zoom",u=Je("div",i+" leaflet-bar"),A=this.options;return this._zoomInButton=this._createButton(A.zoomInText,A.zoomInTitle,i+"-in",u,this._zoomIn),this._zoomOutButton=this._createButton(A.zoomOutText,A.zoomOutTitle,i+"-out",u,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),u},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,i,u,A,C){var O=Je("a",u,A);return O.innerHTML=t,O.href="#",O.title=i,O.setAttribute("role","button"),O.setAttribute("aria-label",i),ho(O),Ge(O,"click",Kn),Ge(O,"click",C,this),Ge(O,"click",this._refocusOnMap,this),O},_updateDisabled:function(){var t=this._map,i="leaflet-disabled";Bt(this._zoomInButton,i),Bt(this._zoomOutButton,i),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||t._zoom===t.getMinZoom())&&($e(this._zoomOutButton,i),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||t._zoom===t.getMaxZoom())&&($e(this._zoomInButton,i),this._zoomInButton.setAttribute("aria-disabled","true"))}});ut.mergeOptions({zoomControl:!0}),ut.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Pi,this.addControl(this.zoomControl))});var gl=function(t){return new Pi(t)},yn=Bn.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var i="leaflet-control-scale",u=Je("div",i),A=this.options;return this._addScales(A,i+"-line",u),t.on(A.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),u},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,i,u){t.metric&&(this._mScale=Je("div",i,u)),t.imperial&&(this._iScale=Je("div",i,u))},_update:function(){var t=this._map,i=t.getSize().y/2,u=t.distance(t.containerPointToLatLng([0,i]),t.containerPointToLatLng([this.options.maxWidth,i]));this._updateScales(u)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var i=this._getRoundNum(t),u=i<1e3?i+" m":i/1e3+" km";this._updateScale(this._mScale,u,i/t)},_updateImperial:function(t){var i=t*3.2808399,u,A,C;i>5280?(u=i/5280,A=this._getRoundNum(u),this._updateScale(this._iScale,A+" mi",A/u)):(C=this._getRoundNum(i),this._updateScale(this._iScale,C+" ft",C/i))},_updateScale:function(t,i,u){t.style.width=Math.round(this.options.maxWidth*u)+"px",t.innerHTML=i},_getRoundNum:function(t){var i=Math.pow(10,(Math.floor(t)+"").length-1),u=t/i;return u=u>=10?10:u>=5?5:u>=3?3:u>=2?2:1,i*u}}),Ti=function(t){return new yn(t)},na='',ti=Bn.extend({options:{position:"bottomright",prefix:''+(Pe.inlineSvg?na+" ":"")+"Leaflet"},initialize:function(t){b(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=Je("div","leaflet-control-attribution"),ho(this._container);for(var i in t._layers)t._layers[i].getAttribution&&this.addAttribution(t._layers[i].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var i in this._attributions)this._attributions[i]&&t.push(i);var u=[];this.options.prefix&&u.push(this.options.prefix),t.length&&u.push(t.join(", ")),this._container.innerHTML=u.join(' ')}}});ut.mergeOptions({attributionControl:!0}),ut.addInitHook(function(){this.options.attributionControl&&new ti().addTo(this)});var td=function(t){return new ti(t)};Bn.Layers=ta,Bn.Zoom=Pi,Bn.Scale=yn,Bn.Attribution=ti,Mr.layers=os,Mr.zoom=gl,Mr.scale=Ti,Mr.attribution=td;var Nn=J.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Nn.addTo=function(t,i){return t.addHandler(i,this),this};var ra={Events:se},Di=Pe.touch?"touchstart mousedown":"mousedown",$n=de.extend({options:{clickTolerance:3},initialize:function(t,i,u,A){b(this,A),this._element=t,this._dragStartTarget=i||t,this._preventOutline=u},enable:function(){this._enabled||(Ge(this._dragStartTarget,Di,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&($n._dragging===this&&this.finishDrag(!0),Ct(this._dragStartTarget,Di,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(this._enabled&&(this._moved=!1,!Ei(this._element,"leaflet-zoom-anim"))){if(t.touches&&t.touches.length!==1){$n._dragging===this&&this.finishDrag();return}if(!($n._dragging||t.shiftKey||t.which!==1&&t.button!==1&&!t.touches)&&($n._dragging=this,this._preventOutline&&Bi(this._element),Jo(),ft(),!this._moving)){this.fire("down");var i=t.touches?t.touches[0]:t,u=_r(this._element);this._startPoint=new q(i.clientX,i.clientY),this._startPos=yr(this._element),this._parentScale=or(u);var A=t.type==="mousedown";Ge(document,A?"mousemove":"touchmove",this._onMove,this),Ge(document,A?"mouseup":"touchend touchcancel",this._onUp,this)}}},_onMove:function(t){if(this._enabled){if(t.touches&&t.touches.length>1){this._moved=!0;return}var i=t.touches&&t.touches.length===1?t.touches[0]:t,u=new q(i.clientX,i.clientY)._subtract(this._startPoint);!u.x&&!u.y||Math.abs(u.x)+Math.abs(u.y)O&&(Q=ie,O=ue);O>u&&(i[Q]=1,sa(t,i,u,A,Q),sa(t,i,u,Q,C))}function od(t,i){for(var u=[t[0]],A=1,C=0,O=t.length;Ai&&(u.push(t[A]),C=A);return Ci.max.x&&(u|=2),t.yi.max.y&&(u|=8),u}function sd(t,i){var u=i.x-t.x,A=i.y-t.y;return u*u+A*A}function ri(t,i,u,A){var C=i.x,O=i.y,Q=u.x-C,ie=u.y-O,ue=Q*Q+ie*ie,xe;return ue>0&&(xe=((t.x-C)*Q+(t.y-O)*ie)/ue,xe>1?(C=u.x,O=u.y):xe>0&&(C+=Q*xe,O+=ie*xe)),Q=t.x-C,ie=t.y-O,A?Q*Q+ie*ie:new q(C,O)}function Ln(t){return!k(t[0])||typeof t[0][0]!="object"&&typeof t[0][0]<"u"}function _l(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Ln(t)}function wl(t,i){var u,A,C,O,Q,ie,ue,xe;if(!t||t.length===0)throw new Error("latlngs not passed");Ln(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);var Be=he([0,0]),Ue=X(t),tt=Ue.getNorthWest().distanceTo(Ue.getSouthWest())*Ue.getNorthEast().distanceTo(Ue.getNorthWest());tt<1700&&(Be=oa(t));var tn=t.length,Yt=[];for(u=0;uA){ue=(O-A)/C,xe=[ie.x-ue*(ie.x-Q.x),ie.y-ue*(ie.y-Q.y)];break}var _n=i.unproject(ne(xe));return he([_n.lat+Be.lat,_n.lng+Be.lng])}var Cl={__proto__:null,simplify:ss,pointToSegmentDistance:vl,closestPointOnSegment:rd,clipSegment:yl,_getEdgeIntersection:as,_getBitCode:ni,_sqClosestPointOnSegment:ri,isFlat:Ln,_flat:_l,polylineCenter:wl},la={project:function(t){return new q(t.lng,t.lat)},unproject:function(t){return new fe(t.y,t.x)},bounds:new D([-180,-90],[180,90])},ua={R:6378137,R_MINOR:6356752314245179e-9,bounds:new D([-2003750834279e-5,-1549657073972e-5],[2003750834279e-5,1876465623138e-5]),project:function(t){var i=Math.PI/180,u=this.R,A=t.lat*i,C=this.R_MINOR/u,O=Math.sqrt(1-C*C),Q=O*Math.sin(A),ie=Math.tan(Math.PI/4-A/2)/Math.pow((1-Q)/(1+Q),O/2);return A=-u*Math.log(Math.max(ie,1e-10)),new q(t.lng*i*u,A)},unproject:function(t){for(var i=180/Math.PI,u=this.R,A=this.R_MINOR/u,C=Math.sqrt(1-A*A),O=Math.exp(-t.y/u),Q=Math.PI/2-2*Math.atan(O),ie=0,ue=.1,xe;ie<15&&Math.abs(ue)>1e-7;ie++)xe=C*Math.sin(Q),xe=Math.pow((1-xe)/(1+xe),C/2),ue=Math.PI/2-2*Math.atan(O*xe)-Q,Q+=ue;return new fe(Q*i,t.x*i/u)}},ad={__proto__:null,LonLat:la,Mercator:ua,SphericalMercator:Ye},ld=f({},Ae,{code:"EPSG:3395",projection:ua,transformation:(function(){var t=.5/(Math.PI*ua.R);return ht(t,.5,-t,.5)})()}),bl=f({},Ae,{code:"EPSG:4326",projection:la,transformation:ht(1/180,1,-1/180,.5)}),ud=f({},ke,{projection:la,transformation:ht(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,i){var u=i.lng-t.lng,A=i.lat-t.lat;return Math.sqrt(u*u+A*A)},infinite:!0});ke.Earth=Ae,ke.EPSG3395=ld,ke.EPSG3857=Se,ke.EPSG900913=Ve,ke.EPSG4326=bl,ke.Simple=ud;var Yn=de.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[x(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[x(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var i=t.target;if(i.hasLayer(this)){if(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents){var u=this.getEvents();i.on(u,this),this.once("remove",function(){i.off(u,this)},this)}this.onAdd(i),this.fire("add"),i.fire("layeradd",{layer:this})}}});ut.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var i=x(t);return this._layers[i]?this:(this._layers[i]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var i=x(t);return this._layers[i]?(this._loaded&&t.onRemove(this),delete this._layers[i],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return x(t)in this._layers},eachLayer:function(t,i){for(var u in this._layers)t.call(i,this._layers[u]);return this},_addLayers:function(t){t=t?k(t)?t:[t]:[];for(var i=0,u=t.length;ithis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),this.options.minZoom===void 0&&this._layersMinZoom&&this.getZoom()=2&&i[0]instanceof fe&&i[0].equals(i[u-1])&&i.pop(),i},_setLatLngs:function(t){Pn.prototype._setLatLngs.call(this,t),Ln(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Ln(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,i=this.options.weight,u=new q(i,i);if(t=new D(t.min.subtract(u),t.max.add(u)),this._parts=[],!(!this._pxBounds||!this._pxBounds.intersects(t))){if(this.options.noClip){this._parts=this._rings;return}for(var A=0,C=this._rings.length,O;At.y!=C.y>t.y&&t.x<(C.x-A.x)*(t.y-A.y)/(C.y-A.y)+A.x&&(i=!i);return i||Pn.prototype._containsPoint.call(this,t,!0)}});function fd(t,i){return new br(t,i)}var ar=wr.extend({initialize:function(t,i){b(this,i),this._layers={},t&&this.addData(t)},addData:function(t){var i=k(t)?t:t.features,u,A,C;if(i){for(u=0,A=i.length;u0&&C.push(C[0].slice()),C}function Ni(t,i){return t.feature?f({},t.feature,{geometry:i}):ps(i)}function ps(t){return t.type==="Feature"||t.type==="FeatureCollection"?t:{type:"Feature",properties:{},geometry:t}}var da={toGeoJSON:function(t){return Ni(this,{type:"Point",coordinates:fs(this.getLatLng(),t)})}};Cr.include(da),us.include(da),ls.include(da),Pn.include({toGeoJSON:function(t){var i=!Ln(this._latlngs),u=hs(this._latlngs,i?1:0,!1,t);return Ni(this,{type:(i?"Multi":"")+"LineString",coordinates:u})}}),br.include({toGeoJSON:function(t){var i=!Ln(this._latlngs),u=i&&!Ln(this._latlngs[0]),A=hs(this._latlngs,u?2:i?1:0,!0,t);return i||(A=[A]),Ni(this,{type:(u?"Multi":"")+"Polygon",coordinates:A})}}),Ir.include({toMultiPoint:function(t){var i=[];return this.eachLayer(function(u){i.push(u.toGeoJSON(t).geometry.coordinates)}),Ni(this,{type:"MultiPoint",coordinates:i})},toGeoJSON:function(t){var i=this.feature&&this.feature.geometry&&this.feature.geometry.type;if(i==="MultiPoint")return this.toMultiPoint(t);var u=i==="GeometryCollection",A=[];return this.eachLayer(function(C){if(C.toGeoJSON){var O=C.toGeoJSON(t);if(u)A.push(O.geometry);else{var Q=ps(O);Q.type==="FeatureCollection"?A.push.apply(A,Q.features):A.push(Q)}}}),u?Ni(this,{geometries:A,type:"GeometryCollection"}):{type:"FeatureCollection",features:A}}});function Bl(t,i){return new ar(t,i)}var Xn=Bl,zr=Yn.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,i,u){this._url=t,this._bounds=X(i),b(this,u)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&($e(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){Tt(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&bi(this._image),this},bringToBack:function(){return this._map&&vr(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=X(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t=this._url.tagName==="IMG",i=this._image=t?this._url:Je("img");if($e(i,"leaflet-image-layer"),this._zoomAnimated&&$e(i,"leaflet-zoom-animated"),this.options.className&&$e(i,this.options.className),i.onselectstart=v,i.onmousemove=v,i.onload=m(this.fire,this,"load"),i.onerror=m(this._overlayOnError,this,"error"),(this.options.crossOrigin||this.options.crossOrigin==="")&&(i.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t){this._url=i.src;return}i.src=this._url,i.alt=this.options.alt},_animateZoom:function(t){var i=this._map.getZoomScale(t.zoom),u=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;Gn(this._image,u,i)},_reset:function(){var t=this._image,i=new D(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),u=i.getSize();qt(t,i.min),t.style.width=u.x+"px",t.style.height=u.y+"px"},_updateOpacity:function(){vn(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&this.options.zIndex!==void 0&&this.options.zIndex!==null&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),Pl=function(t,i,u){return new zr(t,i,u)},fa=zr.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t=this._url.tagName==="VIDEO",i=this._image=t?this._url:Je("video");if($e(i,"leaflet-image-layer"),this._zoomAnimated&&$e(i,"leaflet-zoom-animated"),this.options.className&&$e(i,this.options.className),i.onselectstart=v,i.onmousemove=v,i.onloadeddata=m(this.fire,this,"load"),t){for(var u=i.getElementsByTagName("source"),A=[],C=0;C0?A:[i.src];return}k(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(i.style,"objectFit")&&(i.style.objectFit="fill"),i.autoplay=!!this.options.autoplay,i.loop=!!this.options.loop,i.muted=!!this.options.muted,i.playsInline=!!this.options.playsInline;for(var O=0;OC?(i.height=C+"px",$e(t,O)):Bt(t,O),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var i=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),u=this._getAnchor();qt(this._container,i.add(u))},_adjustPan:function(){if(this.options.autoPan){if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning){this._autopanning=!1;return}var t=this._map,i=parseInt(lo(this._container,"marginBottom"),10)||0,u=this._container.offsetHeight+i,A=this._containerWidth,C=new q(this._containerLeft,-u-this._containerBottom);C._add(yr(this._container));var O=t.layerPointToContainerPoint(C),Q=ne(this.options.autoPanPadding),ie=ne(this.options.autoPanPaddingTopLeft||Q),ue=ne(this.options.autoPanPaddingBottomRight||Q),xe=t.getSize(),Be=0,Ue=0;O.x+A+ue.x>xe.x&&(Be=O.x+A-xe.x+ue.x),O.x-Be-ie.x<0&&(Be=O.x-ie.x),O.y+u+ue.y>xe.y&&(Ue=O.y+u-xe.y+ue.y),O.y-Ue-ie.y<0&&(Ue=O.y-ie.y),(Be||Ue)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([Be,Ue]))}},_getAnchor:function(){return ne(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),Li=function(t,i){return new ms(t,i)};ut.mergeOptions({closePopupOnClick:!0}),ut.include({openPopup:function(t,i,u){return this._initOverlay(ms,t,i,u).openOn(this),this},closePopup:function(t){return t=arguments.length?t:this._popup,t&&t.close(),this}}),Yn.include({bindPopup:function(t,i){return this._popup=this._initOverlay(ms,this._popup,t,i),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof wr||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return this._popup?this._popup.isOpen():!1},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){if(!(!this._popup||!this._map)){Kn(t);var i=t.layer||t.target;if(this._popup._source===i&&!(i instanceof Or)){this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng);return}this._popup._source=i,this.openPopup(t.latlng)}},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){t.originalEvent.keyCode===13&&this._openPopup(t)}});var Mi=lr.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){lr.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){lr.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=lr.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip",i=t+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=Je("div",i),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+x(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var i,u,A=this._map,C=this._container,O=A.latLngToContainerPoint(A.getCenter()),Q=A.layerPointToContainerPoint(t),ie=this.options.direction,ue=C.offsetWidth,xe=C.offsetHeight,Be=ne(this.options.offset),Ue=this._getAnchor();ie==="top"?(i=ue/2,u=xe):ie==="bottom"?(i=ue/2,u=0):ie==="center"?(i=ue/2,u=xe/2):ie==="right"?(i=0,u=xe/2):ie==="left"?(i=ue,u=xe/2):Q.xthis.options.maxZoom||uA?this._retainParent(C,O,Q,A):!1)},_retainChildren:function(t,i,u,A){for(var C=2*t;C<2*t+2;C++)for(var O=2*i;O<2*i+2;O++){var Q=new q(C,O);Q.z=u+1;var ie=this._tileCoordsToKey(Q),ue=this._tiles[ie];if(ue&&ue.active){ue.retain=!0;continue}else ue&&ue.loaded&&(ue.retain=!0);u+1this.options.maxZoom||this.options.minZoom!==void 0&&C1){this._setView(t,u);return}for(var Ue=C.min.y;Ue<=C.max.y;Ue++)for(var tt=C.min.x;tt<=C.max.x;tt++){var tn=new q(tt,Ue);if(tn.z=this._tileZoom,!!this._isValidTile(tn)){var Yt=this._tiles[this._tileCoordsToKey(tn)];Yt?Yt.current=!0:Q.push(tn)}}if(Q.sort(function(_n,Hi){return _n.distanceTo(O)-Hi.distanceTo(O)}),Q.length!==0){this._loading||(this._loading=!0,this.fire("loading"));var Tn=document.createDocumentFragment();for(tt=0;ttu.max.x)||!i.wrapLat&&(t.yu.max.y))return!1}if(!this.options.bounds)return!0;var A=this._tileCoordsToBounds(t);return X(this.options.bounds).overlaps(A)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var i=this._map,u=this.getTileSize(),A=t.scaleBy(u),C=A.add(u),O=i.unproject(A,t.z),Q=i.unproject(C,t.z);return[O,Q]},_tileCoordsToBounds:function(t){var i=this._tileCoordsToNwSe(t),u=new K(i[0],i[1]);return this.options.noWrap||(u=this._map.wrapLatLngBounds(u)),u},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var i=t.split(":"),u=new q(+i[0],+i[1]);return u.z=+i[2],u},_removeTile:function(t){var i=this._tiles[t];i&&(Tt(i.el),delete this._tiles[t],this.fire("tileunload",{tile:i.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){$e(t,"leaflet-tile");var i=this.getTileSize();t.style.width=i.x+"px",t.style.height=i.y+"px",t.onselectstart=v,t.onmousemove=v,Pe.ielt9&&this.options.opacity<1&&vn(t,this.options.opacity)},_addTile:function(t,i){var u=this._getTilePos(t),A=this._tileCoordsToKey(t),C=this.createTile(this._wrapCoords(t),m(this._tileReady,this,t));this._initTile(C),this.createTile.length<2&&G(m(this._tileReady,this,t,null,C)),qt(C,u),this._tiles[A]={el:C,coords:t,current:!0},i.appendChild(C),this.fire("tileloadstart",{tile:C,coords:t})},_tileReady:function(t,i,u){i&&this.fire("tileerror",{error:i,tile:u,coords:t});var A=this._tileCoordsToKey(t);u=this._tiles[A],u&&(u.loaded=+new Date,this._map._fadeAnimated?(vn(u.el,0),re(this._fadeFrame),this._fadeFrame=G(this._updateOpacity,this)):(u.active=!0,this._pruneTiles()),i||($e(u.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:u.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Pe.ielt9||!this._map._fadeAnimated?G(this._pruneTiles,this):setTimeout(m(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var i=new q(this._wrapX?y(t.x,this._wrapX):t.x,this._wrapY?y(t.y,this._wrapY):t.y);return i.z=t.z,i},_pxBoundsToTileRange:function(t){var i=this.getTileSize();return new D(t.min.unscaleBy(i).floor(),t.max.unscaleBy(i).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});function Ii(t){return new jr(t)}var Hr=jr.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,i){this._url=t,i=b(this,i),i.detectRetina&&Pe.retina&&i.maxZoom>0?(i.tileSize=Math.floor(i.tileSize/2),i.zoomReverse?(i.zoomOffset--,i.minZoom=Math.min(i.maxZoom,i.minZoom+1)):(i.zoomOffset++,i.maxZoom=Math.max(i.minZoom,i.maxZoom-1)),i.minZoom=Math.max(0,i.minZoom)):i.zoomReverse?i.minZoom=Math.min(i.maxZoom,i.minZoom):i.maxZoom=Math.max(i.minZoom,i.maxZoom),typeof i.subdomains=="string"&&(i.subdomains=i.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,i){return this._url===t&&i===void 0&&(i=!0),this._url=t,i||this.redraw(),this},createTile:function(t,i){var u=document.createElement("img");return Ge(u,"load",m(this._tileOnLoad,this,i,u)),Ge(u,"error",m(this._tileOnError,this,i,u)),(this.options.crossOrigin||this.options.crossOrigin==="")&&(u.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),typeof this.options.referrerPolicy=="string"&&(u.referrerPolicy=this.options.referrerPolicy),u.alt="",u.src=this.getTileUrl(t),u},getTileUrl:function(t){var i={r:Pe.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var u=this._globalTileRange.max.y-t.y;this.options.tms&&(i.y=u),i["-y"]=u}return B(this._url,f(i,this.options))},_tileOnLoad:function(t,i){Pe.ielt9?setTimeout(m(t,this,null,i),0):t(null,i)},_tileOnError:function(t,i,u){var A=this.options.errorTileUrl;A&&i.getAttribute("src")!==A&&(i.src=A),t(u,i)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,i=this.options.maxZoom,u=this.options.zoomReverse,A=this.options.zoomOffset;return u&&(t=i-t),t+A},_getSubdomain:function(t){var i=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[i]},_abortLoading:function(){var t,i;for(t in this._tiles)if(this._tiles[t].coords.z!==this._tileZoom&&(i=this._tiles[t].el,i.onload=v,i.onerror=v,!i.complete)){i.src=I;var u=this._tiles[t].coords;Tt(i),delete this._tiles[t],this.fire("tileabort",{tile:i,coords:u})}},_removeTile:function(t){var i=this._tiles[t];if(i)return i.el.setAttribute("src",I),jr.prototype._removeTile.call(this,t)},_tileReady:function(t,i,u){if(!(!this._map||u&&u.getAttribute("src")===I))return jr.prototype._tileReady.call(this,t,i,u)}});function ma(t,i){return new Hr(t,i)}var yo=Hr.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,i){this._url=t;var u=f({},this.defaultWmsParams);for(var A in i)A in this.options||(u[A]=i[A]);i=b(this,i);var C=i.detectRetina&&Pe.retina?2:1,O=this.getTileSize();u.width=O.x*C,u.height=O.y*C,this.wmsParams=u},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var i=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[i]=this._crs.code,Hr.prototype.onAdd.call(this,t)},getTileUrl:function(t){var i=this._tileCoordsToNwSe(t),u=this._crs,A=Z(u.project(i[0]),u.project(i[1])),C=A.min,O=A.max,Q=(this._wmsVersion>=1.3&&this._crs===bl?[C.y,C.x,O.y,O.x]:[C.x,C.y,O.x,O.y]).join(","),ie=Hr.prototype.getTileUrl.call(this,t);return ie+E(this.wmsParams,ie,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+Q},setParams:function(t,i){return f(this.wmsParams,t),i||this.redraw(),this}});function Rl(t,i){return new yo(t,i)}Hr.WMS=yo,ma.wms=Rl;var ur=Yn.extend({options:{padding:.1},initialize:function(t){b(this,t),x(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),$e(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,i){var u=this._map.getZoomScale(i,this._zoom),A=this._map.getSize().multiplyBy(.5+this.options.padding),C=this._map.project(this._center,i),O=A.multiplyBy(-u).add(C).subtract(this._map._getNewPixelOrigin(t,i));Pe.any3d?Gn(this._container,O,u):qt(this._container,O)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var t in this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,i=this._map.getSize(),u=this._map.containerPointToLayerPoint(i.multiplyBy(-t)).round();this._bounds=new D(u,u.add(i.multiplyBy(1+t*2)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),Aa=ur.extend({options:{tolerance:0},getEvents:function(){var t=ur.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){ur.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Ge(t,"mousemove",this._onMouseMove,this),Ge(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Ge(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){re(this._redrawRequest),delete this._ctx,Tt(this._container),Ct(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){var t;this._redrawBounds=null;for(var i in this._layers)t=this._layers[i],t._update();this._redraw()}},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){ur.prototype._update.call(this);var t=this._bounds,i=this._container,u=t.getSize(),A=Pe.retina?2:1;qt(i,t.min),i.width=A*u.x,i.height=A*u.y,i.style.width=u.x+"px",i.style.height=u.y+"px",Pe.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){ur.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[x(t)]=t;var i=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=i),this._drawLast=i,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var i=t._order,u=i.next,A=i.prev;u?u.prev=A:this._drawLast=A,A?A.next=u:this._drawFirst=u,delete t._order,delete this._layers[x(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(typeof t.options.dashArray=="string"){var i=t.options.dashArray.split(/[, ]+/),u=[],A,C;for(C=0;C')}}catch{}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}})(),Fl={_initContainer:function(){this._container=Je("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(ur.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var i=t._container=Oi("shape");$e(i,"leaflet-vml-shape "+(this.options.className||"")),i.coordsize="1 1",t._path=Oi("path"),i.appendChild(t._path),this._updateStyle(t),this._layers[x(t)]=t},_addPath:function(t){var i=t._container;this._container.appendChild(i),t.options.interactive&&t.addInteractiveTarget(i)},_removePath:function(t){var i=t._container;Tt(i),t.removeInteractiveTarget(i),delete this._layers[x(t)]},_updateStyle:function(t){var i=t._stroke,u=t._fill,A=t.options,C=t._container;C.stroked=!!A.stroke,C.filled=!!A.fill,A.stroke?(i||(i=t._stroke=Oi("stroke")),C.appendChild(i),i.weight=A.weight+"px",i.color=A.color,i.opacity=A.opacity,A.dashArray?i.dashStyle=k(A.dashArray)?A.dashArray.join(" "):A.dashArray.replace(/( *, *)/g," "):i.dashStyle="",i.endcap=A.lineCap.replace("butt","flat"),i.joinstyle=A.lineJoin):i&&(C.removeChild(i),t._stroke=null),A.fill?(u||(u=t._fill=Oi("fill")),C.appendChild(u),u.color=A.fillColor||A.color,u.opacity=A.fillOpacity):u&&(C.removeChild(u),t._fill=null)},_updateCircle:function(t){var i=t._point.round(),u=Math.round(t._radius),A=Math.round(t._radiusY||u);this._setPath(t,t._empty()?"M0 0":"AL "+i.x+","+i.y+" "+u+","+A+" 0,"+65535*360)},_setPath:function(t,i){t._path.v=i},_bringToFront:function(t){bi(t._container)},_bringToBack:function(t){vr(t._container)}},Jn=Pe.vml?Oi:dt,oi=ur.extend({_initContainer:function(){this._container=Jn("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Jn("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){Tt(this._container),Ct(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){ur.prototype._update.call(this);var t=this._bounds,i=t.getSize(),u=this._container;(!this._svgSize||!this._svgSize.equals(i))&&(this._svgSize=i,u.setAttribute("width",i.x),u.setAttribute("height",i.y)),qt(u,t.min),u.setAttribute("viewBox",[t.min.x,t.min.y,i.x,i.y].join(" ")),this.fire("update")}},_initPath:function(t){var i=t._path=Jn("path");t.options.className&&$e(i,t.options.className),t.options.interactive&&$e(i,"leaflet-interactive"),this._updateStyle(t),this._layers[x(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){Tt(t._path),t.removeInteractiveTarget(t._path),delete this._layers[x(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var i=t._path,u=t.options;i&&(u.stroke?(i.setAttribute("stroke",u.color),i.setAttribute("stroke-opacity",u.opacity),i.setAttribute("stroke-width",u.weight),i.setAttribute("stroke-linecap",u.lineCap),i.setAttribute("stroke-linejoin",u.lineJoin),u.dashArray?i.setAttribute("stroke-dasharray",u.dashArray):i.removeAttribute("stroke-dasharray"),u.dashOffset?i.setAttribute("stroke-dashoffset",u.dashOffset):i.removeAttribute("stroke-dashoffset")):i.setAttribute("stroke","none"),u.fill?(i.setAttribute("fill",u.fillColor||u.color),i.setAttribute("fill-opacity",u.fillOpacity),i.setAttribute("fill-rule",u.fillRule||"evenodd")):i.setAttribute("fill","none"))},_updatePoly:function(t,i){this._setPath(t,Mt(t._parts,i))},_updateCircle:function(t){var i=t._point,u=Math.max(Math.round(t._radius),1),A=Math.max(Math.round(t._radiusY),1)||u,C="a"+u+","+A+" 0 1,0 ",O=t._empty()?"M0 0":"M"+(i.x-u)+","+i.y+C+u*2+",0 "+C+-u*2+",0 ";this._setPath(t,O)},_setPath:function(t,i){t._path.setAttribute("d",i)},_bringToFront:function(t){bi(t._path)},_bringToBack:function(t){vr(t._path)}});Pe.vml&&oi.include(Fl);function gs(t){return Pe.svg||Pe.vml?new oi(t):null}ut.include({getRenderer:function(t){var i=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return i||(i=this._renderer=this._createRenderer()),this.hasLayer(i)||this.addLayer(i),i},_getPaneRenderer:function(t){if(t==="overlayPane"||t===void 0)return!1;var i=this._paneRenderers[t];return i===void 0&&(i=this._createRenderer({pane:t}),this._paneRenderers[t]=i),i},_createRenderer:function(t){return this.options.preferCanvas&&ga(t)||gs(t)}});var Nl=br.extend({initialize:function(t,i){br.prototype.initialize.call(this,this._boundsToLatLngs(t),i)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return t=X(t),[t.getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});function hd(t,i){return new Nl(t,i)}oi.create=Jn,oi.pointsToPath=Mt,ar.geometryToLayer=Fi,ar.coordsToLatLng=ds,ar.coordsToLatLngs=xo,ar.latLngToCoords=fs,ar.latLngsToCoords=hs,ar.getFeature=Ni,ar.asFeature=ps,ut.mergeOptions({boxZoom:!0});var zi=Nn.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Ge(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Ct(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){Tt(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){this._resetStateTimeout!==0&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||t.which!==1&&t.button!==1)return!1;this._clearDeferredResetState(),this._resetState(),ft(),Jo(),this._startPoint=this._map.mouseEventToContainerPoint(t),Ge(document,{contextmenu:Kn,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=Je("div","leaflet-zoom-box",this._container),$e(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var i=new D(this._point,this._startPoint),u=i.getSize();qt(this._box,i.min),this._box.style.width=u.x+"px",this._box.style.height=u.y+"px"},_finish:function(){this._moved&&(Tt(this._box),Bt(this._container,"leaflet-crosshair")),Si(),es(),Ct(document,{contextmenu:Kn,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if(!(t.which!==1&&t.button!==1)&&(this._finish(),!!this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(m(this._resetState,this),0);var i=new K(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(i).fire("boxzoomend",{boxZoomBounds:i})}},_onKeyDown:function(t){t.keyCode===27&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});ut.addInitHook("addHandler","boxZoom",zi),ut.mergeOptions({doubleClickZoom:!0});var Ll=Nn.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var i=this._map,u=i.getZoom(),A=i.options.zoomDelta,C=t.originalEvent.shiftKey?u-A:u+A;i.options.doubleClickZoom==="center"?i.setZoom(C):i.setZoomAround(t.containerPoint,C)}});ut.addInitHook("addHandler","doubleClickZoom",Ll),ut.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var xa=Nn.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new $n(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}$e(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){Bt(this._map._container,"leaflet-grab"),Bt(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var i=X(this._map.options.maxBounds);this._offsetLimit=Z(this._map.latLngToContainerPoint(i.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(i.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var i=this._lastTime=+new Date,u=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(u),this._times.push(i),this._prunePositions(i)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),i=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=i.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,i){return t-(t-i)*this._viscosity},_onPreDragLimit:function(){if(!(!this._viscosity||!this._offsetLimit)){var t=this._draggable._newPos.subtract(this._draggable._startPos),i=this._offsetLimit;t.xi.max.x&&(t.x=this._viscousLimit(t.x,i.max.x)),t.y>i.max.y&&(t.y=this._viscousLimit(t.y,i.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,i=Math.round(t/2),u=this._initialWorldOffset,A=this._draggable._newPos.x,C=(A-i+u)%t+i-u,O=(A+i+u)%t-i-u,Q=Math.abs(C+u)0?O:-O))-i;this._delta=0,this._startTime=null,Q&&(t.options.scrollWheelZoom==="center"?t.setZoom(i+Q):t.setZoomAround(this._lastMousePos,i+Q))}});ut.addInitHook("addHandler","scrollWheelZoom",bt);var ya=600;ut.mergeOptions({tapHold:Pe.touchNative&&Pe.safari&&Pe.mobile,tapTolerance:15});var _o=Nn.extend({addHooks:function(){Ge(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Ct(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(clearTimeout(this._holdTimeout),t.touches.length===1){var i=t.touches[0];this._startPos=this._newPos=new q(i.clientX,i.clientY),this._holdTimeout=setTimeout(m(function(){this._cancel(),this._isTapValid()&&(Ge(document,"touchend",zt),Ge(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",i))},this),ya),Ge(document,"touchend touchcancel contextmenu",this._cancel,this),Ge(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function t(){Ct(document,"touchend",zt),Ct(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),Ct(document,"touchend touchcancel contextmenu",this._cancel,this),Ct(document,"touchmove",this._onMove,this)},_onMove:function(t){var i=t.touches[0];this._newPos=new q(i.clientX,i.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,i){var u=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:i.screenX,screenY:i.screenY,clientX:i.clientX,clientY:i.clientY});u._simulated=!0,i.target.dispatchEvent(u)}});ut.addInitHook("addHandler","tapHold",_o),ut.mergeOptions({touchZoom:Pe.touch,bounceAtZoomLimits:!0});var ji=Nn.extend({addHooks:function(){$e(this._map._container,"leaflet-touch-zoom"),Ge(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){Bt(this._map._container,"leaflet-touch-zoom"),Ct(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var i=this._map;if(!(!t.touches||t.touches.length!==2||i._animatingZoom||this._zooming)){var u=i.mouseEventToContainerPoint(t.touches[0]),A=i.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=i.getSize()._divideBy(2),this._startLatLng=i.containerPointToLatLng(this._centerPoint),i.options.touchZoom!=="center"&&(this._pinchStartLatLng=i.containerPointToLatLng(u.add(A)._divideBy(2))),this._startDist=u.distanceTo(A),this._startZoom=i.getZoom(),this._moved=!1,this._zooming=!0,i._stop(),Ge(document,"touchmove",this._onTouchMove,this),Ge(document,"touchend touchcancel",this._onTouchEnd,this),zt(t)}},_onTouchMove:function(t){if(!(!t.touches||t.touches.length!==2||!this._zooming)){var i=this._map,u=i.mouseEventToContainerPoint(t.touches[0]),A=i.mouseEventToContainerPoint(t.touches[1]),C=u.distanceTo(A)/this._startDist;if(this._zoom=i.getScaleZoom(C,this._startZoom),!i.options.bounceAtZoomLimits&&(this._zoomi.getMaxZoom()&&C>1)&&(this._zoom=i._limitZoom(this._zoom)),i.options.touchZoom==="center"){if(this._center=this._startLatLng,C===1)return}else{var O=u._add(A)._divideBy(2)._subtract(this._centerPoint);if(C===1&&O.x===0&&O.y===0)return;this._center=i.unproject(i.project(this._pinchStartLatLng,this._zoom).subtract(O),this._zoom)}this._moved||(i._moveStart(!0,!1),this._moved=!0),re(this._animRequest);var Q=m(i._move,i,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=G(Q,this,!0),zt(t)}},_onTouchEnd:function(){if(!this._moved||!this._zooming){this._zooming=!1;return}this._zooming=!1,re(this._animRequest),Ct(document,"touchmove",this._onTouchMove,this),Ct(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))}});ut.addInitHook("addHandler","touchZoom",ji),ut.BoxZoom=zi,ut.DoubleClickZoom=Ll,ut.Drag=xa,ut.Keyboard=va,ut.ScrollWheelZoom=bt,ut.TapHold=_o,ut.TouchZoom=ji,s.Bounds=D,s.Browser=Pe,s.CRS=ke,s.Canvas=Aa,s.Circle=us,s.CircleMarker=ls,s.Class=J,s.Control=Bn,s.DivIcon=As,s.DivOverlay=lr,s.DomEvent=rs,s.DomUtil=fo,s.Draggable=$n,s.Evented=de,s.FeatureGroup=wr,s.GeoJSON=ar,s.GridLayer=jr,s.Handler=Nn,s.Icon=ii,s.ImageOverlay=zr,s.LatLng=fe,s.LatLngBounds=K,s.Layer=Yn,s.LayerGroup=Ir,s.LineUtil=Cl,s.Map=ut,s.Marker=Cr,s.Mixin=ra,s.Path=Or,s.Point=q,s.PolyUtil=nd,s.Polygon=br,s.Polyline=Pn,s.Popup=ms,s.PosAnimation=is,s.Projection=ad,s.Rectangle=Nl,s.Renderer=ur,s.SVG=oi,s.SVGOverlay=ha,s.TileLayer=Hr,s.Tooltip=Mi,s.Transformation=Et,s.Util=V,s.VideoOverlay=fa,s.bind=m,s.bounds=Z,s.canvas=ga,s.circle=go,s.circleMarker=Sl,s.control=Mr,s.divIcon=Dl,s.extend=f,s.featureGroup=El,s.geoJSON=Bl,s.geoJson=Xn,s.gridLayer=Ii,s.icon=kl,s.imageOverlay=Pl,s.latLng=he,s.latLngBounds=X,s.layerGroup=Ao,s.map=Lr,s.marker=cd,s.point=ne,s.polygon=fd,s.polyline=dd,s.popup=Li,s.rectangle=hd,s.setOptions=b,s.stamp=x,s.svg=gs,s.svgOverlay=pa,s.tileLayer=ma,s.tooltip=vo,s.transformation=ht,s.version=l,s.videoOverlay=Tl;var Ml=window.L;s.noConflict=function(){return window.L=Ml,this},window.L=s}))})(Ja,Ja.exports)),Ja.exports}var qc=w2();function y0(r,a,s){return Object.freeze({instance:r,context:a,container:s})}function _0(r,a){return a==null?function(l,f){const d=R.useRef();return d.current||(d.current=r(l,f)),d}:function(l,f){const d=R.useRef();d.current||(d.current=r(l,f));const m=R.useRef(l),{instance:h}=d.current;return R.useEffect(function(){m.current!==l&&(a(h,l,m.current),m.current=l)},[h,l,f]),d}}function ax(r,a){R.useEffect(function(){return(a.layerContainer??a.map).addLayer(r.instance),function(){var d;(d=a.layerContainer)==null||d.removeLayer(r.instance),a.map.removeLayer(r.instance)}},[a,r])}function C2(r){return function(s){const l=Zc(),f=r(Wc(s,l),l);return ix(l.map,s.attribution),v0(f.current,s.eventHandlers),ax(f.current,l),f}}function b2(r,a){const s=R.useRef();R.useEffect(function(){if(a.pathOptions!==s.current){const f=a.pathOptions??{};r.instance.setStyle(f),s.current=f}},[r,a])}function E2(r){return function(s){const l=Zc(),f=r(Wc(s,l),l);return v0(f.current,s.eventHandlers),ax(f.current,l),b2(f.current,s),f}}function k2(r,a){const s=_0(r),l=y2(s,a);return x2(l)}function S2(r,a){const s=_0(r,a),l=E2(s);return g2(l)}function B2(r,a){const s=_0(r,a),l=C2(s);return v2(l)}function P2(r,a,s){const{opacity:l,zIndex:f}=a;l!=null&&l!==s.opacity&&r.setOpacity(l),f!=null&&f!==s.zIndex&&r.setZIndex(f)}function T2(){return Zc().map}const D2=S2(function({center:a,children:s,...l},f){const d=new qc.CircleMarker(a,l);return y0(d,A2(f,{overlayContainer:d}))},h2);function Kf(){return Kf=Object.assign||function(r){for(var a=1;a(S==null?void 0:S.map)??null,[S]);const b=R.useCallback(P=>{if(P!==null&&S===null){const B=new qc.Map(P,y);s!=null&&p!=null?B.setView(s,p):r!=null&&B.fitBounds(r,a),x!=null&&B.whenReady(x),T(m2(B))}},[]);R.useEffect(()=>()=>{S==null||S.map.remove()},[S]);const E=S?Ce.createElement(sx,{value:S},l):m??null;return Ce.createElement("div",Kf({},w,{ref:b}),E)}const F2=R.forwardRef(R2),N2=k2(function(a,s){const l=new qc.Popup(a,s.overlayContainer);return y0(l,s)},function(a,s,{position:l},f){R.useEffect(function(){const{instance:m}=a;function h(p){p.popup===m&&(m.update(),f(!0))}function x(p){p.popup===m&&f(!1)}return s.map.on({popupopen:h,popupclose:x}),s.overlayContainer==null?(l!=null&&m.setLatLng(l),m.openOn(s.map)):s.overlayContainer.bindPopup(m),function(){var y;s.map.off({popupopen:h,popupclose:x}),(y=s.overlayContainer)==null||y.unbindPopup(),s.map.removeLayer(m)}},[a,s,f,l])}),L2=B2(function({url:a,...s},l){const f=new qc.TileLayer(a,Wc(s,l));return y0(f,l)},function(a,s,l){P2(a,s,l);const{url:f}=s;f!=null&&f!==l.url&&a.setUrl(f)});function M2(r){const s=Date.now()/1e3-r,l=3600,f=86400;return s{if(s)return;const f=()=>{if(r.length===0){a.setView([20,0],2),l(!0);return}if(r.length===1){a.setView([r[0].lat,r[0].lon],10),l(!0);return}const d=r.map(m=>[m.lat,m.lon]);a.fitBounds(d,{padding:[50,50],maxZoom:12}),l(!0)};"geolocation"in navigator?navigator.geolocation.getCurrentPosition(d=>{a.setView([d.coords.latitude,d.coords.longitude],8),l(!0)},()=>{f()},{timeout:5e3,maximumAge:3e5}):f()},[a,r,s]),null}function O2({contacts:r}){const a=R.useMemo(()=>{const s=Date.now()/1e3-604800;return r.filter(l=>l.lat!=null&&l.lon!=null&&l.last_seen!=null&&l.last_seen>s)},[r]);return F.jsxs("div",{className:"flex flex-col h-full",children:[F.jsxs("div",{className:"px-4 py-2 bg-muted/50 text-xs text-muted-foreground flex items-center justify-between",children:[F.jsxs("span",{children:["Showing ",a.length," contact",a.length!==1?"s":""," heard in the last 7 days"]}),F.jsxs("div",{className:"flex items-center gap-3",children:[F.jsxs("span",{className:"flex items-center gap-1",children:[F.jsx("span",{className:"w-3 h-3 rounded-full bg-[#22c55e]"})," <1h"]}),F.jsxs("span",{className:"flex items-center gap-1",children:[F.jsx("span",{className:"w-3 h-3 rounded-full bg-[#4ade80]"})," <1d"]}),F.jsxs("span",{className:"flex items-center gap-1",children:[F.jsx("span",{className:"w-3 h-3 rounded-full bg-[#a3e635]"})," <3d"]}),F.jsxs("span",{className:"flex items-center gap-1",children:[F.jsx("span",{className:"w-3 h-3 rounded-full bg-[#9ca3af]"})," older"]})]})]}),F.jsx("div",{className:"flex-1 relative",style:{zIndex:0},children:F.jsxs(F2,{center:[20,0],zoom:2,className:"h-full w-full",style:{background:"#1a1a2e"},children:[F.jsx(L2,{attribution:'© OpenStreetMap',url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"}),F.jsx(I2,{contacts:a}),a.map(s=>{const l=s.type===s0,f=M2(s.last_seen),d=s.name||s.public_key.slice(0,12);return F.jsx(D2,{center:[s.lat,s.lon],radius:l?10:7,pathOptions:{color:l?f:"#000",fillColor:f,fillOpacity:.8,weight:l?0:1},children:F.jsx(N2,{children:F.jsxs("div",{className:"text-sm",children:[F.jsxs("div",{className:"font-medium flex items-center gap-1",children:[l&&F.jsx("span",{title:"Repeater",children:"🛜"}),d]}),F.jsxs("div",{className:"text-xs text-gray-500 mt-1",children:["Last heard: ",Ec(s.last_seen)]}),F.jsxs("div",{className:"text-xs text-gray-400 mt-1 font-mono",children:[s.lat.toFixed(5),", ",s.lon.toFixed(5)]})]})})},s.public_key)})]})})]})}const z2="modulepreload",j2=function(r){return"/"+r},Jp={},H2=function(a,s,l){let f=Promise.resolve();if(s&&s.length>0){let m=function(p){return Promise.all(p.map(y=>Promise.resolve(y).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};document.getElementsByTagName("link");const h=document.querySelector("meta[property=csp-nonce]"),x=(h==null?void 0:h.nonce)||(h==null?void 0:h.getAttribute("nonce"));f=m(s.map(p=>{if(p=j2(p),p in Jp)return;Jp[p]=!0;const y=p.endsWith(".css"),v=y?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${v}`))return;const w=document.createElement("link");if(w.rel=y?"stylesheet":z2,y||(w.as="script"),w.crossOrigin="",w.href=p,x&&w.setAttribute("nonce",x),document.head.appendChild(w),y)return new Promise((S,T)=>{w.addEventListener("load",S),w.addEventListener("error",()=>T(new Error(`Unable to preload CSS for ${p}`)))})}))}function d(m){const h=new Event("vite:preloadError",{cancelable:!0});if(h.payload=m,window.dispatchEvent(h),!h.defaultPrevented)throw m}return f.then(m=>{for(const h of m||[])h.status==="rejected"&&d(h.reason);return a().catch(d)})};var xi={},Oa={},An={},em;function ir(){if(em)return An;em=1,Object.defineProperty(An,"__esModule",{value:!0}),An.RequestType=An.AdvertFlags=An.DeviceRole=An.PayloadVersion=An.ControlSubType=An.PayloadType=An.RouteType=void 0;var r;(function(h){h[h.TransportFlood=0]="TransportFlood",h[h.Flood=1]="Flood",h[h.Direct=2]="Direct",h[h.TransportDirect=3]="TransportDirect"})(r||(An.RouteType=r={}));var a;(function(h){h[h.Request=0]="Request",h[h.Response=1]="Response",h[h.TextMessage=2]="TextMessage",h[h.Ack=3]="Ack",h[h.Advert=4]="Advert",h[h.GroupText=5]="GroupText",h[h.GroupData=6]="GroupData",h[h.AnonRequest=7]="AnonRequest",h[h.Path=8]="Path",h[h.Trace=9]="Trace",h[h.Multipart=10]="Multipart",h[h.Control=11]="Control",h[h.RawCustom=15]="RawCustom"})(a||(An.PayloadType=a={}));var s;(function(h){h[h.NodeDiscoverReq=128]="NodeDiscoverReq",h[h.NodeDiscoverResp=144]="NodeDiscoverResp"})(s||(An.ControlSubType=s={}));var l;(function(h){h[h.Version1=0]="Version1",h[h.Version2=1]="Version2",h[h.Version3=2]="Version3",h[h.Version4=3]="Version4"})(l||(An.PayloadVersion=l={}));var f;(function(h){h[h.Unknown=0]="Unknown",h[h.ChatNode=1]="ChatNode",h[h.Repeater=2]="Repeater",h[h.RoomServer=3]="RoomServer",h[h.Sensor=4]="Sensor"})(f||(An.DeviceRole=f={}));var d;(function(h){h[h.HasLocation=16]="HasLocation",h[h.HasFeature1=32]="HasFeature1",h[h.HasFeature2=64]="HasFeature2",h[h.HasName=128]="HasName"})(d||(An.AdvertFlags=d={}));var m;return(function(h){h[h.GetStats=1]="GetStats",h[h.Keepalive=2]="Keepalive",h[h.GetTelemetryData=3]="GetTelemetryData",h[h.GetMinMaxAvgData=4]="GetMinMaxAvgData",h[h.GetAccessList=5]="GetAccessList"})(m||(An.RequestType=m={})),An}var Mo={},tm;function gn(){if(tm)return Mo;tm=1,Object.defineProperty(Mo,"__esModule",{value:!0}),Mo.byteToHex=r,Mo.bytesToHex=a,Mo.numberToHex=s,Mo.hexToBytes=l;function r(f){return f.toString(16).padStart(2,"0").toUpperCase()}function a(f){return Array.from(f).map(r).join("")}function s(f,d=8){return(f>>>0).toString(16).padStart(d,"0").toUpperCase()}function l(f){const d=f.replace(/\s/g,"").toUpperCase();if(!/^[0-9A-F]*$/.test(d))throw new Error("Invalid hex string: invalid characters at position 0");if(d.length%2!==0)throw new Error("Invalid hex string: odd length");const m=new Uint8Array(d.length/2);for(let h=0;h>>2]>>>24-j%4*8&255;k[I+j>>>2]|=H<<24-(I+j)%4*8}else for(var $=0;$>>2]=N[$>>>2];return this.sigBytes+=z,this},clamp:function(){var B=this.words,k=this.sigBytes;B[k>>>2]&=4294967295<<32-k%4*8,B.length=l.ceil(k/4)},clone:function(){var B=y.clone.call(this);return B.words=this.words.slice(0),B},random:function(B){for(var k=[],N=0;N>>2]>>>24-z%4*8&255;I.push((j>>>4).toString(16)),I.push((j&15).toString(16))}return I.join("")},parse:function(B){for(var k=B.length,N=[],I=0;I>>3]|=parseInt(B.substr(I,2),16)<<24-I%8*4;return new v.init(N,k/2)}},T=w.Latin1={stringify:function(B){for(var k=B.words,N=B.sigBytes,I=[],z=0;z>>2]>>>24-z%4*8&255;I.push(String.fromCharCode(j))}return I.join("")},parse:function(B){for(var k=B.length,N=[],I=0;I>>2]|=(B.charCodeAt(I)&255)<<24-I%4*8;return new v.init(N,k)}},b=w.Utf8={stringify:function(B){try{return decodeURIComponent(escape(T.stringify(B)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(B){return T.parse(unescape(encodeURIComponent(B)))}},E=p.BufferedBlockAlgorithm=y.extend({reset:function(){this._data=new v.init,this._nDataBytes=0},_append:function(B){typeof B=="string"&&(B=b.parse(B)),this._data.concat(B),this._nDataBytes+=B.sigBytes},_process:function(B){var k,N=this._data,I=N.words,z=N.sigBytes,j=this.blockSize,H=j*4,$=z/H;B?$=l.ceil($):$=l.max(($|0)-this._minBufferSize,0);var U=$*j,G=l.min(U*4,z);if(U){for(var re=0;re>>2]|=x[v]<<24-v%4*8;m.call(this,y,p)}else m.apply(this,arguments)};h.prototype=d}})(),s.lib.WordArray})})(ju)),ju.exports}var Hu={exports:{}},Q2=Hu.exports,sm;function K2(){return sm||(sm=1,(function(r,a){(function(s,l){r.exports=l(ct())})(Q2,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=l.enc;m.Utf16=m.Utf16BE={stringify:function(x){for(var p=x.words,y=x.sigBytes,v=[],w=0;w>>2]>>>16-w%4*8&65535;v.push(String.fromCharCode(S))}return v.join("")},parse:function(x){for(var p=x.length,y=[],v=0;v>>1]|=x.charCodeAt(v)<<16-v%2*16;return d.create(y,p*2)}},m.Utf16LE={stringify:function(x){for(var p=x.words,y=x.sigBytes,v=[],w=0;w>>2]>>>16-w%4*8&65535);v.push(String.fromCharCode(S))}return v.join("")},parse:function(x){for(var p=x.length,y=[],v=0;v>>1]|=h(x.charCodeAt(v)<<16-v%2*16);return d.create(y,p*2)}};function h(x){return x<<8&4278255360|x>>>8&16711935}})(),s.enc.Utf16})})(Hu)),Hu.exports}var Vu={exports:{}},$2=Vu.exports,am;function Wo(){return am||(am=1,(function(r,a){(function(s,l){r.exports=l(ct())})($2,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=l.enc;m.Base64={stringify:function(x){var p=x.words,y=x.sigBytes,v=this._map;x.clamp();for(var w=[],S=0;S>>2]>>>24-S%4*8&255,b=p[S+1>>>2]>>>24-(S+1)%4*8&255,E=p[S+2>>>2]>>>24-(S+2)%4*8&255,P=T<<16|b<<8|E,B=0;B<4&&S+B*.75>>6*(3-B)&63));var k=v.charAt(64);if(k)for(;w.length%4;)w.push(k);return w.join("")},parse:function(x){var p=x.length,y=this._map,v=this._reverseMap;if(!v){v=this._reverseMap=[];for(var w=0;w>>6-S%4*2,E=T|b;v[w>>>2]|=E<<24-w%4*8,w++}return d.create(v,w)}})(),s.enc.Base64})})(Vu)),Vu.exports}var Uu={exports:{}},Y2=Uu.exports,lm;function X2(){return lm||(lm=1,(function(r,a){(function(s,l){r.exports=l(ct())})(Y2,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=l.enc;m.Base64url={stringify:function(x,p){p===void 0&&(p=!0);var y=x.words,v=x.sigBytes,w=p?this._safe_map:this._map;x.clamp();for(var S=[],T=0;T>>2]>>>24-T%4*8&255,E=y[T+1>>>2]>>>24-(T+1)%4*8&255,P=y[T+2>>>2]>>>24-(T+2)%4*8&255,B=b<<16|E<<8|P,k=0;k<4&&T+k*.75>>6*(3-k)&63));var N=w.charAt(64);if(N)for(;S.length%4;)S.push(N);return S.join("")},parse:function(x,p){p===void 0&&(p=!0);var y=x.length,v=p?this._safe_map:this._map,w=this._reverseMap;if(!w){w=this._reverseMap=[];for(var S=0;S>>6-S%4*2,E=T|b;v[w>>>2]|=E<<24-w%4*8,w++}return d.create(v,w)}})(),s.enc.Base64url})})(Uu)),Uu.exports}var Zu={exports:{}},J2=Zu.exports,um;function qo(){return um||(um=1,(function(r,a){(function(s,l){r.exports=l(ct())})(J2,function(s){return(function(l){var f=s,d=f.lib,m=d.WordArray,h=d.Hasher,x=f.algo,p=[];(function(){for(var b=0;b<64;b++)p[b]=l.abs(l.sin(b+1))*4294967296|0})();var y=x.MD5=h.extend({_doReset:function(){this._hash=new m.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(b,E){for(var P=0;P<16;P++){var B=E+P,k=b[B];b[B]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360}var N=this._hash.words,I=b[E+0],z=b[E+1],j=b[E+2],H=b[E+3],$=b[E+4],U=b[E+5],G=b[E+6],re=b[E+7],V=b[E+8],J=b[E+9],le=b[E+10],se=b[E+11],de=b[E+12],q=b[E+13],ge=b[E+14],ne=b[E+15],D=N[0],Z=N[1],K=N[2],X=N[3];D=v(D,Z,K,X,I,7,p[0]),X=v(X,D,Z,K,z,12,p[1]),K=v(K,X,D,Z,j,17,p[2]),Z=v(Z,K,X,D,H,22,p[3]),D=v(D,Z,K,X,$,7,p[4]),X=v(X,D,Z,K,U,12,p[5]),K=v(K,X,D,Z,G,17,p[6]),Z=v(Z,K,X,D,re,22,p[7]),D=v(D,Z,K,X,V,7,p[8]),X=v(X,D,Z,K,J,12,p[9]),K=v(K,X,D,Z,le,17,p[10]),Z=v(Z,K,X,D,se,22,p[11]),D=v(D,Z,K,X,de,7,p[12]),X=v(X,D,Z,K,q,12,p[13]),K=v(K,X,D,Z,ge,17,p[14]),Z=v(Z,K,X,D,ne,22,p[15]),D=w(D,Z,K,X,z,5,p[16]),X=w(X,D,Z,K,G,9,p[17]),K=w(K,X,D,Z,se,14,p[18]),Z=w(Z,K,X,D,I,20,p[19]),D=w(D,Z,K,X,U,5,p[20]),X=w(X,D,Z,K,le,9,p[21]),K=w(K,X,D,Z,ne,14,p[22]),Z=w(Z,K,X,D,$,20,p[23]),D=w(D,Z,K,X,J,5,p[24]),X=w(X,D,Z,K,ge,9,p[25]),K=w(K,X,D,Z,H,14,p[26]),Z=w(Z,K,X,D,V,20,p[27]),D=w(D,Z,K,X,q,5,p[28]),X=w(X,D,Z,K,j,9,p[29]),K=w(K,X,D,Z,re,14,p[30]),Z=w(Z,K,X,D,de,20,p[31]),D=S(D,Z,K,X,U,4,p[32]),X=S(X,D,Z,K,V,11,p[33]),K=S(K,X,D,Z,se,16,p[34]),Z=S(Z,K,X,D,ge,23,p[35]),D=S(D,Z,K,X,z,4,p[36]),X=S(X,D,Z,K,$,11,p[37]),K=S(K,X,D,Z,re,16,p[38]),Z=S(Z,K,X,D,le,23,p[39]),D=S(D,Z,K,X,q,4,p[40]),X=S(X,D,Z,K,I,11,p[41]),K=S(K,X,D,Z,H,16,p[42]),Z=S(Z,K,X,D,G,23,p[43]),D=S(D,Z,K,X,J,4,p[44]),X=S(X,D,Z,K,de,11,p[45]),K=S(K,X,D,Z,ne,16,p[46]),Z=S(Z,K,X,D,j,23,p[47]),D=T(D,Z,K,X,I,6,p[48]),X=T(X,D,Z,K,re,10,p[49]),K=T(K,X,D,Z,ge,15,p[50]),Z=T(Z,K,X,D,U,21,p[51]),D=T(D,Z,K,X,de,6,p[52]),X=T(X,D,Z,K,H,10,p[53]),K=T(K,X,D,Z,le,15,p[54]),Z=T(Z,K,X,D,z,21,p[55]),D=T(D,Z,K,X,V,6,p[56]),X=T(X,D,Z,K,ne,10,p[57]),K=T(K,X,D,Z,G,15,p[58]),Z=T(Z,K,X,D,q,21,p[59]),D=T(D,Z,K,X,$,6,p[60]),X=T(X,D,Z,K,se,10,p[61]),K=T(K,X,D,Z,j,15,p[62]),Z=T(Z,K,X,D,J,21,p[63]),N[0]=N[0]+D|0,N[1]=N[1]+Z|0,N[2]=N[2]+K|0,N[3]=N[3]+X|0},_doFinalize:function(){var b=this._data,E=b.words,P=this._nDataBytes*8,B=b.sigBytes*8;E[B>>>5]|=128<<24-B%32;var k=l.floor(P/4294967296),N=P;E[(B+64>>>9<<4)+15]=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,E[(B+64>>>9<<4)+14]=(N<<8|N>>>24)&16711935|(N<<24|N>>>8)&4278255360,b.sigBytes=(E.length+1)*4,this._process();for(var I=this._hash,z=I.words,j=0;j<4;j++){var H=z[j];z[j]=(H<<8|H>>>24)&16711935|(H<<24|H>>>8)&4278255360}return I},clone:function(){var b=h.clone.call(this);return b._hash=this._hash.clone(),b}});function v(b,E,P,B,k,N,I){var z=b+(E&P|~E&B)+k+I;return(z<>>32-N)+E}function w(b,E,P,B,k,N,I){var z=b+(E&B|P&~B)+k+I;return(z<>>32-N)+E}function S(b,E,P,B,k,N,I){var z=b+(E^P^B)+k+I;return(z<>>32-N)+E}function T(b,E,P,B,k,N,I){var z=b+(P^(E|~B))+k+I;return(z<>>32-N)+E}f.MD5=h._createHelper(y),f.HmacMD5=h._createHmacHelper(y)})(Math),s.MD5})})(Zu)),Zu.exports}var Wu={exports:{}},eC=Wu.exports,cm;function lx(){return cm||(cm=1,(function(r,a){(function(s,l){r.exports=l(ct())})(eC,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=f.Hasher,h=l.algo,x=[],p=h.SHA1=m.extend({_doReset:function(){this._hash=new d.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(y,v){for(var w=this._hash.words,S=w[0],T=w[1],b=w[2],E=w[3],P=w[4],B=0;B<80;B++){if(B<16)x[B]=y[v+B]|0;else{var k=x[B-3]^x[B-8]^x[B-14]^x[B-16];x[B]=k<<1|k>>>31}var N=(S<<5|S>>>27)+P+x[B];B<20?N+=(T&b|~T&E)+1518500249:B<40?N+=(T^b^E)+1859775393:B<60?N+=(T&b|T&E|b&E)-1894007588:N+=(T^b^E)-899497514,P=E,E=b,b=T<<30|T>>>2,T=S,S=N}w[0]=w[0]+S|0,w[1]=w[1]+T|0,w[2]=w[2]+b|0,w[3]=w[3]+E|0,w[4]=w[4]+P|0},_doFinalize:function(){var y=this._data,v=y.words,w=this._nDataBytes*8,S=y.sigBytes*8;return v[S>>>5]|=128<<24-S%32,v[(S+64>>>9<<4)+14]=Math.floor(w/4294967296),v[(S+64>>>9<<4)+15]=w,y.sigBytes=v.length*4,this._process(),this._hash},clone:function(){var y=m.clone.call(this);return y._hash=this._hash.clone(),y}});l.SHA1=m._createHelper(p),l.HmacSHA1=m._createHmacHelper(p)})(),s.SHA1})})(Wu)),Wu.exports}var qu={exports:{}},tC=qu.exports,dm;function ll(){return dm||(dm=1,(function(r,a){(function(s,l){r.exports=l(ct())})(tC,function(s){return(function(l){var f=s,d=f.lib,m=d.WordArray,h=d.Hasher,x=f.algo,p=[],y=[];(function(){function S(P){for(var B=l.sqrt(P),k=2;k<=B;k++)if(!(P%k))return!1;return!0}function T(P){return(P-(P|0))*4294967296|0}for(var b=2,E=0;E<64;)S(b)&&(E<8&&(p[E]=T(l.pow(b,1/2))),y[E]=T(l.pow(b,1/3)),E++),b++})();var v=[],w=x.SHA256=h.extend({_doReset:function(){this._hash=new m.init(p.slice(0))},_doProcessBlock:function(S,T){for(var b=this._hash.words,E=b[0],P=b[1],B=b[2],k=b[3],N=b[4],I=b[5],z=b[6],j=b[7],H=0;H<64;H++){if(H<16)v[H]=S[T+H]|0;else{var $=v[H-15],U=($<<25|$>>>7)^($<<14|$>>>18)^$>>>3,G=v[H-2],re=(G<<15|G>>>17)^(G<<13|G>>>19)^G>>>10;v[H]=U+v[H-7]+re+v[H-16]}var V=N&I^~N&z,J=E&P^E&B^P&B,le=(E<<30|E>>>2)^(E<<19|E>>>13)^(E<<10|E>>>22),se=(N<<26|N>>>6)^(N<<21|N>>>11)^(N<<7|N>>>25),de=j+se+V+y[H]+v[H],q=le+J;j=z,z=I,I=N,N=k+de|0,k=B,B=P,P=E,E=de+q|0}b[0]=b[0]+E|0,b[1]=b[1]+P|0,b[2]=b[2]+B|0,b[3]=b[3]+k|0,b[4]=b[4]+N|0,b[5]=b[5]+I|0,b[6]=b[6]+z|0,b[7]=b[7]+j|0},_doFinalize:function(){var S=this._data,T=S.words,b=this._nDataBytes*8,E=S.sigBytes*8;return T[E>>>5]|=128<<24-E%32,T[(E+64>>>9<<4)+14]=l.floor(b/4294967296),T[(E+64>>>9<<4)+15]=b,S.sigBytes=T.length*4,this._process(),this._hash},clone:function(){var S=h.clone.call(this);return S._hash=this._hash.clone(),S}});f.SHA256=h._createHelper(w),f.HmacSHA256=h._createHmacHelper(w)})(Math),s.SHA256})})(qu)),qu.exports}var Gu={exports:{}},nC=Gu.exports,fm;function rC(){return fm||(fm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),ll())})(nC,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=l.algo,h=m.SHA256,x=m.SHA224=h.extend({_doReset:function(){this._hash=new d.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var p=h._doFinalize.call(this);return p.sigBytes-=4,p}});l.SHA224=h._createHelper(x),l.HmacSHA224=h._createHmacHelper(x)})(),s.SHA224})})(Gu)),Gu.exports}var Qu={exports:{}},iC=Qu.exports,hm;function ux(){return hm||(hm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Gc())})(iC,function(s){return(function(){var l=s,f=l.lib,d=f.Hasher,m=l.x64,h=m.Word,x=m.WordArray,p=l.algo;function y(){return h.create.apply(h,arguments)}var v=[y(1116352408,3609767458),y(1899447441,602891725),y(3049323471,3964484399),y(3921009573,2173295548),y(961987163,4081628472),y(1508970993,3053834265),y(2453635748,2937671579),y(2870763221,3664609560),y(3624381080,2734883394),y(310598401,1164996542),y(607225278,1323610764),y(1426881987,3590304994),y(1925078388,4068182383),y(2162078206,991336113),y(2614888103,633803317),y(3248222580,3479774868),y(3835390401,2666613458),y(4022224774,944711139),y(264347078,2341262773),y(604807628,2007800933),y(770255983,1495990901),y(1249150122,1856431235),y(1555081692,3175218132),y(1996064986,2198950837),y(2554220882,3999719339),y(2821834349,766784016),y(2952996808,2566594879),y(3210313671,3203337956),y(3336571891,1034457026),y(3584528711,2466948901),y(113926993,3758326383),y(338241895,168717936),y(666307205,1188179964),y(773529912,1546045734),y(1294757372,1522805485),y(1396182291,2643833823),y(1695183700,2343527390),y(1986661051,1014477480),y(2177026350,1206759142),y(2456956037,344077627),y(2730485921,1290863460),y(2820302411,3158454273),y(3259730800,3505952657),y(3345764771,106217008),y(3516065817,3606008344),y(3600352804,1432725776),y(4094571909,1467031594),y(275423344,851169720),y(430227734,3100823752),y(506948616,1363258195),y(659060556,3750685593),y(883997877,3785050280),y(958139571,3318307427),y(1322822218,3812723403),y(1537002063,2003034995),y(1747873779,3602036899),y(1955562222,1575990012),y(2024104815,1125592928),y(2227730452,2716904306),y(2361852424,442776044),y(2428436474,593698344),y(2756734187,3733110249),y(3204031479,2999351573),y(3329325298,3815920427),y(3391569614,3928383900),y(3515267271,566280711),y(3940187606,3454069534),y(4118630271,4000239992),y(116418474,1914138554),y(174292421,2731055270),y(289380356,3203993006),y(460393269,320620315),y(685471733,587496836),y(852142971,1086792851),y(1017036298,365543100),y(1126000580,2618297676),y(1288033470,3409855158),y(1501505948,4234509866),y(1607167915,987167468),y(1816402316,1246189591)],w=[];(function(){for(var T=0;T<80;T++)w[T]=y()})();var S=p.SHA512=d.extend({_doReset:function(){this._hash=new x.init([new h.init(1779033703,4089235720),new h.init(3144134277,2227873595),new h.init(1013904242,4271175723),new h.init(2773480762,1595750129),new h.init(1359893119,2917565137),new h.init(2600822924,725511199),new h.init(528734635,4215389547),new h.init(1541459225,327033209)])},_doProcessBlock:function(T,b){for(var E=this._hash.words,P=E[0],B=E[1],k=E[2],N=E[3],I=E[4],z=E[5],j=E[6],H=E[7],$=P.high,U=P.low,G=B.high,re=B.low,V=k.high,J=k.low,le=N.high,se=N.low,de=I.high,q=I.low,ge=z.high,ne=z.low,D=j.high,Z=j.low,K=H.high,X=H.low,fe=$,he=U,ke=G,Ae=re,qe=V,Ye=J,Et=le,ht=se,Se=de,Ve=q,dt=ge,Mt=ne,vt=D,ot=Z,Qe=K,Xe=X,et=0;et<80;et++){var Oe,_t,$t=w[et];if(et<16)_t=$t.high=T[b+et*2]|0,Oe=$t.low=T[b+et*2+1]|0;else{var Un=w[et-15],It=Un.high,Jt=Un.low,fn=(It>>>1|Jt<<31)^(It>>>8|Jt<<24)^It>>>7,Sn=(Jt>>>1|It<<31)^(Jt>>>8|It<<24)^(Jt>>>7|It<<25),Ut=w[et-2],St=Ut.high,Zt=Ut.low,Zn=(St>>>19|Zt<<13)^(St<<3|Zt>>>29)^St>>>6,xn=(Zt>>>19|St<<13)^(Zt<<3|St>>>29)^(Zt>>>6|St<<26),pe=w[et-7],we=pe.high,te=pe.low,me=w[et-16],Ee=me.high,He=me.low;Oe=Sn+te,_t=fn+we+(Oe>>>0>>0?1:0),Oe=Oe+xn,_t=_t+Zn+(Oe>>>0>>0?1:0),Oe=Oe+He,_t=_t+Ee+(Oe>>>0>>0?1:0),$t.high=_t,$t.low=Oe}var ze=Se&dt^~Se&vt,nt=Ve&Mt^~Ve&ot,hn=fe&ke^fe&qe^ke&qe,je=he&Ae^he&Ye^Ae&Ye,pt=(fe>>>28|he<<4)^(fe<<30|he>>>2)^(fe<<25|he>>>7),kt=(he>>>28|fe<<4)^(he<<30|fe>>>2)^(he<<25|fe>>>7),Rt=(Se>>>14|Ve<<18)^(Se>>>18|Ve<<14)^(Se<<23|Ve>>>9),Fn=(Ve>>>14|Se<<18)^(Ve>>>18|Se<<14)^(Ve<<23|Se>>>9),rt=v[et],wt=rt.high,Wn=rt.low,mt=Xe+Fn,Ft=Qe+Rt+(mt>>>0>>0?1:0),mt=mt+nt,Ft=Ft+ze+(mt>>>0>>0?1:0),mt=mt+Wn,Ft=Ft+wt+(mt>>>0>>0?1:0),mt=mt+Oe,Ft=Ft+_t+(mt>>>0>>0?1:0),Wt=kt+je,Pe=pt+hn+(Wt>>>0>>0?1:0);Qe=vt,Xe=ot,vt=dt,ot=Mt,dt=Se,Mt=Ve,Ve=ht+mt|0,Se=Et+Ft+(Ve>>>0>>0?1:0)|0,Et=qe,ht=Ye,qe=ke,Ye=Ae,ke=fe,Ae=he,he=mt+Wt|0,fe=Ft+Pe+(he>>>0>>0?1:0)|0}U=P.low=U+he,P.high=$+fe+(U>>>0>>0?1:0),re=B.low=re+Ae,B.high=G+ke+(re>>>0>>0?1:0),J=k.low=J+Ye,k.high=V+qe+(J>>>0>>0?1:0),se=N.low=se+ht,N.high=le+Et+(se>>>0>>0?1:0),q=I.low=q+Ve,I.high=de+Se+(q>>>0>>0?1:0),ne=z.low=ne+Mt,z.high=ge+dt+(ne>>>0>>0?1:0),Z=j.low=Z+ot,j.high=D+vt+(Z>>>0>>0?1:0),X=H.low=X+Xe,H.high=K+Qe+(X>>>0>>0?1:0)},_doFinalize:function(){var T=this._data,b=T.words,E=this._nDataBytes*8,P=T.sigBytes*8;b[P>>>5]|=128<<24-P%32,b[(P+128>>>10<<5)+30]=Math.floor(E/4294967296),b[(P+128>>>10<<5)+31]=E,T.sigBytes=b.length*4,this._process();var B=this._hash.toX32();return B},clone:function(){var T=d.clone.call(this);return T._hash=this._hash.clone(),T},blockSize:1024/32});l.SHA512=d._createHelper(S),l.HmacSHA512=d._createHmacHelper(S)})(),s.SHA512})})(Qu)),Qu.exports}var Ku={exports:{}},oC=Ku.exports,pm;function sC(){return pm||(pm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Gc(),ux())})(oC,function(s){return(function(){var l=s,f=l.x64,d=f.Word,m=f.WordArray,h=l.algo,x=h.SHA512,p=h.SHA384=x.extend({_doReset:function(){this._hash=new m.init([new d.init(3418070365,3238371032),new d.init(1654270250,914150663),new d.init(2438529370,812702999),new d.init(355462360,4144912697),new d.init(1731405415,4290775857),new d.init(2394180231,1750603025),new d.init(3675008525,1694076839),new d.init(1203062813,3204075428)])},_doFinalize:function(){var y=x._doFinalize.call(this);return y.sigBytes-=16,y}});l.SHA384=x._createHelper(p),l.HmacSHA384=x._createHmacHelper(p)})(),s.SHA384})})(Ku)),Ku.exports}var $u={exports:{}},aC=$u.exports,mm;function lC(){return mm||(mm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Gc())})(aC,function(s){return(function(l){var f=s,d=f.lib,m=d.WordArray,h=d.Hasher,x=f.x64,p=x.Word,y=f.algo,v=[],w=[],S=[];(function(){for(var E=1,P=0,B=0;B<24;B++){v[E+5*P]=(B+1)*(B+2)/2%64;var k=P%5,N=(2*E+3*P)%5;E=k,P=N}for(var E=0;E<5;E++)for(var P=0;P<5;P++)w[E+5*P]=P+(2*E+3*P)%5*5;for(var I=1,z=0;z<24;z++){for(var j=0,H=0,$=0;$<7;$++){if(I&1){var U=(1<<$)-1;U<32?H^=1<>>24)&16711935|(I<<24|I>>>8)&4278255360,z=(z<<8|z>>>24)&16711935|(z<<24|z>>>8)&4278255360;var j=B[N];j.high^=z,j.low^=I}for(var H=0;H<24;H++){for(var $=0;$<5;$++){for(var U=0,G=0,re=0;re<5;re++){var j=B[$+5*re];U^=j.high,G^=j.low}var V=T[$];V.high=U,V.low=G}for(var $=0;$<5;$++)for(var J=T[($+4)%5],le=T[($+1)%5],se=le.high,de=le.low,U=J.high^(se<<1|de>>>31),G=J.low^(de<<1|se>>>31),re=0;re<5;re++){var j=B[$+5*re];j.high^=U,j.low^=G}for(var q=1;q<25;q++){var U,G,j=B[q],ge=j.high,ne=j.low,D=v[q];D<32?(U=ge<>>32-D,G=ne<>>32-D):(U=ne<>>64-D,G=ge<>>64-D);var Z=T[w[q]];Z.high=U,Z.low=G}var K=T[0],X=B[0];K.high=X.high,K.low=X.low;for(var $=0;$<5;$++)for(var re=0;re<5;re++){var q=$+5*re,j=B[q],fe=T[q],he=T[($+1)%5+5*re],ke=T[($+2)%5+5*re];j.high=fe.high^~he.high&ke.high,j.low=fe.low^~he.low&ke.low}var j=B[0],Ae=S[H];j.high^=Ae.high,j.low^=Ae.low}},_doFinalize:function(){var E=this._data,P=E.words;this._nDataBytes*8;var B=E.sigBytes*8,k=this.blockSize*32;P[B>>>5]|=1<<24-B%32,P[(l.ceil((B+1)/k)*k>>>5)-1]|=128,E.sigBytes=P.length*4,this._process();for(var N=this._state,I=this.cfg.outputLength/8,z=I/8,j=[],H=0;H>>24)&16711935|(U<<24|U>>>8)&4278255360,G=(G<<8|G>>>24)&16711935|(G<<24|G>>>8)&4278255360,j.push(G),j.push(U)}return new m.init(j,I)},clone:function(){for(var E=h.clone.call(this),P=E._state=this._state.slice(0),B=0;B<25;B++)P[B]=P[B].clone();return E}});f.SHA3=h._createHelper(b),f.HmacSHA3=h._createHmacHelper(b)})(Math),s.SHA3})})($u)),$u.exports}var Yu={exports:{}},uC=Yu.exports,Am;function cC(){return Am||(Am=1,(function(r,a){(function(s,l){r.exports=l(ct())})(uC,function(s){/** @preserve (c) 2012 by Cédric Mesnil. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -134,17 +134,17 @@ For more information, see https://radix-ui.com/primitives/docs/components/${a.do - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */return(function(l){var f=s,d=f.lib,m=d.WordArray,h=d.Hasher,x=f.algo,p=m.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),y=m.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),v=m.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),w=m.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),S=m.create([0,1518500249,1859775393,2400959708,2840853838]),T=m.create([1352829926,1548603684,1836072691,2053994217,0]),C=x.RIPEMD160=h.extend({_doReset:function(){this._hash=m.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(z,j){for(var H=0;H<16;H++){var $=j+H,U=z[$];z[$]=(U<<8|U>>>24)&16711935|(U<<24|U>>>8)&4278255360}var G=this._hash.words,re=S.words,V=T.words,J=p.words,le=y.words,se=v.words,de=w.words,q,ge,ne,D,Z,K,X,fe,he,ke;K=q=G[0],X=ge=G[1],fe=ne=G[2],he=D=G[3],ke=Z=G[4];for(var Ae,H=0;H<80;H+=1)Ae=q+z[j+J[H]]|0,H<16?Ae+=E(ge,ne,D)+re[0]:H<32?Ae+=P(ge,ne,D)+re[1]:H<48?Ae+=B(ge,ne,D)+re[2]:H<64?Ae+=k(ge,ne,D)+re[3]:Ae+=N(ge,ne,D)+re[4],Ae=Ae|0,Ae=I(Ae,se[H]),Ae=Ae+Z|0,q=Z,Z=D,D=I(ne,10),ne=ge,ge=Ae,Ae=K+z[j+le[H]]|0,H<16?Ae+=N(X,fe,he)+V[0]:H<32?Ae+=k(X,fe,he)+V[1]:H<48?Ae+=B(X,fe,he)+V[2]:H<64?Ae+=P(X,fe,he)+V[3]:Ae+=E(X,fe,he)+V[4],Ae=Ae|0,Ae=I(Ae,de[H]),Ae=Ae+ke|0,K=ke,ke=he,he=I(fe,10),fe=X,X=Ae;Ae=G[1]+ne+he|0,G[1]=G[2]+D+ke|0,G[2]=G[3]+Z+K|0,G[3]=G[4]+q+X|0,G[4]=G[0]+ge+fe|0,G[0]=Ae},_doFinalize:function(){var z=this._data,j=z.words,H=this._nDataBytes*8,$=z.sigBytes*8;j[$>>>5]|=128<<24-$%32,j[($+64>>>9<<4)+14]=(H<<8|H>>>24)&16711935|(H<<24|H>>>8)&4278255360,z.sigBytes=(j.length+1)*4,this._process();for(var U=this._hash,G=U.words,re=0;re<5;re++){var V=G[re];G[re]=(V<<8|V>>>24)&16711935|(V<<24|V>>>8)&4278255360}return U},clone:function(){var z=h.clone.call(this);return z._hash=this._hash.clone(),z}});function E(z,j,H){return z^j^H}function P(z,j,H){return z&j|~z&H}function B(z,j,H){return(z|~j)^H}function k(z,j,H){return z&H|j&~H}function N(z,j,H){return z^(j|~H)}function I(z,j){return z<>>32-j}f.RIPEMD160=h._createHelper(C),f.HmacRIPEMD160=h._createHmacHelper(C)})(),s.RIPEMD160})})(Yu)),Yu.exports}var Xu={exports:{}},ub=Xu.exports,mm;function Qc(){return mm||(mm=1,(function(r,a){(function(s,l){r.exports=l(ct())})(ub,function(s){(function(){var l=s,f=l.lib,d=f.Base,m=l.enc,h=m.Utf8,x=l.algo;x.HMAC=d.extend({init:function(p,y){p=this._hasher=new p.init,typeof y=="string"&&(y=h.parse(y));var v=p.blockSize,w=v*4;y.sigBytes>w&&(y=p.finalize(y)),y.clamp();for(var S=this._oKey=y.clone(),T=this._iKey=y.clone(),C=S.words,E=T.words,P=0;P>>2]&255;U.sigBytes-=G}};d.BlockCipher=S.extend({cfg:S.cfg.extend({mode:E,padding:B}),reset:function(){var U;S.reset.call(this);var G=this.cfg,re=G.iv,V=G.mode;this._xformMode==this._ENC_XFORM_MODE?U=V.createEncryptor:(U=V.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==U?this._mode.init(this,re&&re.words):(this._mode=U.call(V,this,re&&re.words),this._mode.__creator=U)},_doProcessBlock:function(U,G){this._mode.processBlock(U,G)},_doFinalize:function(){var U,G=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(G.pad(this._data,this.blockSize),U=this._process(!0)):(U=this._process(!0),G.unpad(U)),U},blockSize:128/32});var k=d.CipherParams=m.extend({init:function(U){this.mixIn(U)},toString:function(U){return(U||this.formatter).stringify(this)}}),N=f.format={},I=N.OpenSSL={stringify:function(U){var G,re=U.ciphertext,V=U.salt;return V?G=h.create([1398893684,1701076831]).concat(V).concat(re):G=re,G.toString(y)},parse:function(U){var G,re=y.parse(U),V=re.words;return V[0]==1398893684&&V[1]==1701076831&&(G=h.create(V.slice(2,4)),V.splice(0,4),re.sigBytes-=16),k.create({ciphertext:re,salt:G})}},z=d.SerializableCipher=m.extend({cfg:m.extend({format:I}),encrypt:function(U,G,re,V){V=this.cfg.extend(V);var J=U.createEncryptor(re,V),le=J.finalize(G),se=J.cfg;return k.create({ciphertext:le,key:re,iv:se.iv,algorithm:U,mode:se.mode,padding:se.padding,blockSize:U.blockSize,formatter:V.format})},decrypt:function(U,G,re,V){V=this.cfg.extend(V),G=this._parse(G,V.format);var J=U.createDecryptor(re,V).finalize(G.ciphertext);return J},_parse:function(U,G){return typeof U=="string"?G.parse(U,this):U}}),j=f.kdf={},H=j.OpenSSL={execute:function(U,G,re,V,J){if(V||(V=h.random(64/8)),J)var le=w.create({keySize:G+re,hasher:J}).compute(U,V);else var le=w.create({keySize:G+re}).compute(U,V);var se=h.create(le.words.slice(G),re*4);return le.sigBytes=G*4,k.create({key:le,iv:se,salt:V})}},$=d.PasswordBasedCipher=z.extend({cfg:z.cfg.extend({kdf:H}),encrypt:function(U,G,re,V){V=this.cfg.extend(V);var J=V.kdf.execute(re,U.keySize,U.ivSize,V.salt,V.hasher);V.iv=J.iv;var le=z.encrypt.call(this,U,G,J.key,V);return le.mixIn(J),le},decrypt:function(U,G,re,V){V=this.cfg.extend(V),G=this._parse(G,V.format);var J=V.kdf.execute(re,U.keySize,U.ivSize,G.salt,V.hasher);V.iv=J.iv;var le=z.decrypt.call(this,U,G,J.key,V);return le}})})()})})(tc)),tc.exports}var nc={exports:{}},pb=nc.exports,vm;function mb(){return vm||(vm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(pb,function(s){return s.mode.CFB=(function(){var l=s.lib.BlockCipherMode.extend();l.Encryptor=l.extend({processBlock:function(d,m){var h=this._cipher,x=h.blockSize;f.call(this,d,m,x,h),this._prevBlock=d.slice(m,m+x)}}),l.Decryptor=l.extend({processBlock:function(d,m){var h=this._cipher,x=h.blockSize,p=d.slice(m,m+x);f.call(this,d,m,x,h),this._prevBlock=p}});function f(d,m,h,x){var p,y=this._iv;y?(p=y.slice(0),this._iv=void 0):p=this._prevBlock,x.encryptBlock(p,0);for(var v=0;v>>24)&16711935|(U<<24|U>>>8)&4278255360}var G=this._hash.words,re=S.words,V=T.words,J=p.words,le=y.words,se=v.words,de=w.words,q,ge,ne,D,Z,K,X,fe,he,ke;K=q=G[0],X=ge=G[1],fe=ne=G[2],he=D=G[3],ke=Z=G[4];for(var Ae,H=0;H<80;H+=1)Ae=q+z[j+J[H]]|0,H<16?Ae+=E(ge,ne,D)+re[0]:H<32?Ae+=P(ge,ne,D)+re[1]:H<48?Ae+=B(ge,ne,D)+re[2]:H<64?Ae+=k(ge,ne,D)+re[3]:Ae+=N(ge,ne,D)+re[4],Ae=Ae|0,Ae=I(Ae,se[H]),Ae=Ae+Z|0,q=Z,Z=D,D=I(ne,10),ne=ge,ge=Ae,Ae=K+z[j+le[H]]|0,H<16?Ae+=N(X,fe,he)+V[0]:H<32?Ae+=k(X,fe,he)+V[1]:H<48?Ae+=B(X,fe,he)+V[2]:H<64?Ae+=P(X,fe,he)+V[3]:Ae+=E(X,fe,he)+V[4],Ae=Ae|0,Ae=I(Ae,de[H]),Ae=Ae+ke|0,K=ke,ke=he,he=I(fe,10),fe=X,X=Ae;Ae=G[1]+ne+he|0,G[1]=G[2]+D+ke|0,G[2]=G[3]+Z+K|0,G[3]=G[4]+q+X|0,G[4]=G[0]+ge+fe|0,G[0]=Ae},_doFinalize:function(){var z=this._data,j=z.words,H=this._nDataBytes*8,$=z.sigBytes*8;j[$>>>5]|=128<<24-$%32,j[($+64>>>9<<4)+14]=(H<<8|H>>>24)&16711935|(H<<24|H>>>8)&4278255360,z.sigBytes=(j.length+1)*4,this._process();for(var U=this._hash,G=U.words,re=0;re<5;re++){var V=G[re];G[re]=(V<<8|V>>>24)&16711935|(V<<24|V>>>8)&4278255360}return U},clone:function(){var z=h.clone.call(this);return z._hash=this._hash.clone(),z}});function E(z,j,H){return z^j^H}function P(z,j,H){return z&j|~z&H}function B(z,j,H){return(z|~j)^H}function k(z,j,H){return z&H|j&~H}function N(z,j,H){return z^(j|~H)}function I(z,j){return z<>>32-j}f.RIPEMD160=h._createHelper(b),f.HmacRIPEMD160=h._createHmacHelper(b)})(),s.RIPEMD160})})(Yu)),Yu.exports}var Xu={exports:{}},dC=Xu.exports,gm;function Qc(){return gm||(gm=1,(function(r,a){(function(s,l){r.exports=l(ct())})(dC,function(s){(function(){var l=s,f=l.lib,d=f.Base,m=l.enc,h=m.Utf8,x=l.algo;x.HMAC=d.extend({init:function(p,y){p=this._hasher=new p.init,typeof y=="string"&&(y=h.parse(y));var v=p.blockSize,w=v*4;y.sigBytes>w&&(y=p.finalize(y)),y.clamp();for(var S=this._oKey=y.clone(),T=this._iKey=y.clone(),b=S.words,E=T.words,P=0;P>>2]&255;U.sigBytes-=G}};d.BlockCipher=S.extend({cfg:S.cfg.extend({mode:E,padding:B}),reset:function(){var U;S.reset.call(this);var G=this.cfg,re=G.iv,V=G.mode;this._xformMode==this._ENC_XFORM_MODE?U=V.createEncryptor:(U=V.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==U?this._mode.init(this,re&&re.words):(this._mode=U.call(V,this,re&&re.words),this._mode.__creator=U)},_doProcessBlock:function(U,G){this._mode.processBlock(U,G)},_doFinalize:function(){var U,G=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(G.pad(this._data,this.blockSize),U=this._process(!0)):(U=this._process(!0),G.unpad(U)),U},blockSize:128/32});var k=d.CipherParams=m.extend({init:function(U){this.mixIn(U)},toString:function(U){return(U||this.formatter).stringify(this)}}),N=f.format={},I=N.OpenSSL={stringify:function(U){var G,re=U.ciphertext,V=U.salt;return V?G=h.create([1398893684,1701076831]).concat(V).concat(re):G=re,G.toString(y)},parse:function(U){var G,re=y.parse(U),V=re.words;return V[0]==1398893684&&V[1]==1701076831&&(G=h.create(V.slice(2,4)),V.splice(0,4),re.sigBytes-=16),k.create({ciphertext:re,salt:G})}},z=d.SerializableCipher=m.extend({cfg:m.extend({format:I}),encrypt:function(U,G,re,V){V=this.cfg.extend(V);var J=U.createEncryptor(re,V),le=J.finalize(G),se=J.cfg;return k.create({ciphertext:le,key:re,iv:se.iv,algorithm:U,mode:se.mode,padding:se.padding,blockSize:U.blockSize,formatter:V.format})},decrypt:function(U,G,re,V){V=this.cfg.extend(V),G=this._parse(G,V.format);var J=U.createDecryptor(re,V).finalize(G.ciphertext);return J},_parse:function(U,G){return typeof U=="string"?G.parse(U,this):U}}),j=f.kdf={},H=j.OpenSSL={execute:function(U,G,re,V,J){if(V||(V=h.random(64/8)),J)var le=w.create({keySize:G+re,hasher:J}).compute(U,V);else var le=w.create({keySize:G+re}).compute(U,V);var se=h.create(le.words.slice(G),re*4);return le.sigBytes=G*4,k.create({key:le,iv:se,salt:V})}},$=d.PasswordBasedCipher=z.extend({cfg:z.cfg.extend({kdf:H}),encrypt:function(U,G,re,V){V=this.cfg.extend(V);var J=V.kdf.execute(re,U.keySize,U.ivSize,V.salt,V.hasher);V.iv=J.iv;var le=z.encrypt.call(this,U,G,J.key,V);return le.mixIn(J),le},decrypt:function(U,G,re,V){V=this.cfg.extend(V),G=this._parse(G,V.format);var J=V.kdf.execute(re,U.keySize,U.ivSize,G.salt,V.hasher);V.iv=J.iv;var le=z.decrypt.call(this,U,G,J.key,V);return le}})})()})})(tc)),tc.exports}var nc={exports:{}},AC=nc.exports,_m;function gC(){return _m||(_m=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(AC,function(s){return s.mode.CFB=(function(){var l=s.lib.BlockCipherMode.extend();l.Encryptor=l.extend({processBlock:function(d,m){var h=this._cipher,x=h.blockSize;f.call(this,d,m,x,h),this._prevBlock=d.slice(m,m+x)}}),l.Decryptor=l.extend({processBlock:function(d,m){var h=this._cipher,x=h.blockSize,p=d.slice(m,m+x);f.call(this,d,m,x,h),this._prevBlock=p}});function f(d,m,h,x){var p,y=this._iv;y?(p=y.slice(0),this._iv=void 0):p=this._prevBlock,x.encryptBlock(p,0);for(var v=0;v>24&255)===255){var x=h>>16&255,p=h>>8&255,y=h&255;x===255?(x=0,p===255?(p=0,y===255?y=0:++y):++p):++x,h=0,h+=x<<16,h+=p<<8,h+=y}else h+=1<<24;return h}function d(h){return(h[0]=f(h[0]))===0&&(h[1]=f(h[1])),h}var m=l.Encryptor=l.extend({processBlock:function(h,x){var p=this._cipher,y=p.blockSize,v=this._iv,w=this._counter;v&&(w=this._counter=v.slice(0),this._iv=void 0),d(w);var S=w.slice(0);p.encryptBlock(S,0);for(var T=0;T>>2]|=h<<24-x%4*8,l.sigBytes+=h},unpad:function(l){var f=l.words[l.sigBytes-1>>>2]&255;l.sigBytes-=f}},s.pad.Ansix923})})(ac)),ac.exports}var lc={exports:{}},kb=lc.exports,Em;function Sb(){return Em||(Em=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(kb,function(s){return s.pad.Iso10126={pad:function(l,f){var d=f*4,m=d-l.sigBytes%d;l.concat(s.lib.WordArray.random(m-1)).concat(s.lib.WordArray.create([m<<24],1))},unpad:function(l){var f=l.words[l.sigBytes-1>>>2]&255;l.sigBytes-=f}},s.pad.Iso10126})})(lc)),lc.exports}var uc={exports:{}},Bb=uc.exports,km;function Pb(){return km||(km=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(Bb,function(s){return s.pad.Iso97971={pad:function(l,f){l.concat(s.lib.WordArray.create([2147483648],1)),s.pad.ZeroPadding.pad(l,f)},unpad:function(l){s.pad.ZeroPadding.unpad(l),l.sigBytes--}},s.pad.Iso97971})})(uc)),uc.exports}var cc={exports:{}},Tb=cc.exports,Sm;function Db(){return Sm||(Sm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(Tb,function(s){return s.pad.ZeroPadding={pad:function(l,f){var d=f*4;l.clamp(),l.sigBytes+=d-(l.sigBytes%d||d)},unpad:function(l){for(var f=l.words,d=l.sigBytes-1,d=l.sigBytes-1;d>=0;d--)if(f[d>>>2]>>>24-d%4*8&255){l.sigBytes=d+1;break}}},s.pad.ZeroPadding})})(cc)),cc.exports}var dc={exports:{}},Rb=dc.exports,Bm;function Fb(){return Bm||(Bm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(Rb,function(s){return s.pad.NoPadding={pad:function(){},unpad:function(){}},s.pad.NoPadding})})(dc)),dc.exports}var fc={exports:{}},Nb=fc.exports,Pm;function Lb(){return Pm||(Pm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(Nb,function(s){return(function(l){var f=s,d=f.lib,m=d.CipherParams,h=f.enc,x=h.Hex,p=f.format;p.Hex={stringify:function(y){return y.ciphertext.toString(x)},parse:function(y){var v=x.parse(y);return m.create({ciphertext:v})}}})(),s.format.Hex})})(fc)),fc.exports}var hc={exports:{}},Mb=hc.exports,Tm;function Ib(){return Tm||(Tm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(Mb,function(s){return(function(){var l=s,f=l.lib,d=f.BlockCipher,m=l.algo,h=[],x=[],p=[],y=[],v=[],w=[],S=[],T=[],C=[],E=[];(function(){for(var k=[],N=0;N<256;N++)N<128?k[N]=N<<1:k[N]=N<<1^283;for(var I=0,z=0,N=0;N<256;N++){var j=z^z<<1^z<<2^z<<3^z<<4;j=j>>>8^j&255^99,h[I]=j,x[j]=I;var H=k[I],$=k[H],U=k[$],G=k[j]*257^j*16843008;p[I]=G<<24|G>>>8,y[I]=G<<16|G>>>16,v[I]=G<<8|G>>>24,w[I]=G;var G=U*16843009^$*65537^H*257^I*16843008;S[j]=G<<24|G>>>8,T[j]=G<<16|G>>>16,C[j]=G<<8|G>>>24,E[j]=G,I?(I=H^k[k[k[U^H]]],z^=k[k[z]]):I=z=1}})();var P=[0,1,2,4,8,16,32,64,128,27,54],B=m.AES=d.extend({_doReset:function(){var k;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var N=this._keyPriorReset=this._key,I=N.words,z=N.sigBytes/4,j=this._nRounds=z+6,H=(j+1)*4,$=this._keySchedule=[],U=0;U6&&U%z==4&&(k=h[k>>>24]<<24|h[k>>>16&255]<<16|h[k>>>8&255]<<8|h[k&255]):(k=k<<8|k>>>24,k=h[k>>>24]<<24|h[k>>>16&255]<<16|h[k>>>8&255]<<8|h[k&255],k^=P[U/z|0]<<24),$[U]=$[U-z]^k);for(var G=this._invKeySchedule=[],re=0;re>>24]]^T[h[k>>>16&255]]^C[h[k>>>8&255]]^E[h[k&255]]}}},encryptBlock:function(k,N){this._doCryptBlock(k,N,this._keySchedule,p,y,v,w,h)},decryptBlock:function(k,N){var I=k[N+1];k[N+1]=k[N+3],k[N+3]=I,this._doCryptBlock(k,N,this._invKeySchedule,S,T,C,E,x);var I=k[N+1];k[N+1]=k[N+3],k[N+3]=I},_doCryptBlock:function(k,N,I,z,j,H,$,U){for(var G=this._nRounds,re=k[N]^I[0],V=k[N+1]^I[1],J=k[N+2]^I[2],le=k[N+3]^I[3],se=4,de=1;de>>24]^j[V>>>16&255]^H[J>>>8&255]^$[le&255]^I[se++],ge=z[V>>>24]^j[J>>>16&255]^H[le>>>8&255]^$[re&255]^I[se++],ne=z[J>>>24]^j[le>>>16&255]^H[re>>>8&255]^$[V&255]^I[se++],D=z[le>>>24]^j[re>>>16&255]^H[V>>>8&255]^$[J&255]^I[se++];re=q,V=ge,J=ne,le=D}var q=(U[re>>>24]<<24|U[V>>>16&255]<<16|U[J>>>8&255]<<8|U[le&255])^I[se++],ge=(U[V>>>24]<<24|U[J>>>16&255]<<16|U[le>>>8&255]<<8|U[re&255])^I[se++],ne=(U[J>>>24]<<24|U[le>>>16&255]<<16|U[re>>>8&255]<<8|U[V&255])^I[se++],D=(U[le>>>24]<<24|U[re>>>16&255]<<16|U[V>>>8&255]<<8|U[J&255])^I[se++];k[N]=q,k[N+1]=ge,k[N+2]=ne,k[N+3]=D},keySize:256/32});l.AES=d._createHelper(B)})(),s.AES})})(hc)),hc.exports}var pc={exports:{}},Ob=pc.exports,Dm;function zb(){return Dm||(Dm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(Ob,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=f.BlockCipher,h=l.algo,x=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],p=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],y=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],v=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],w=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],S=h.DES=m.extend({_doReset:function(){for(var P=this._key,B=P.words,k=[],N=0;N<56;N++){var I=x[N]-1;k[N]=B[I>>>5]>>>31-I%32&1}for(var z=this._subKeys=[],j=0;j<16;j++){for(var H=z[j]=[],$=y[j],N=0;N<24;N++)H[N/6|0]|=k[(p[N]-1+$)%28]<<31-N%6,H[4+(N/6|0)]|=k[28+(p[N+24]-1+$)%28]<<31-N%6;H[0]=H[0]<<1|H[0]>>>31;for(var N=1;N<7;N++)H[N]=H[N]>>>(N-1)*4+3;H[7]=H[7]<<5|H[7]>>>27}for(var U=this._invSubKeys=[],N=0;N<16;N++)U[N]=z[15-N]},encryptBlock:function(P,B){this._doCryptBlock(P,B,this._subKeys)},decryptBlock:function(P,B){this._doCryptBlock(P,B,this._invSubKeys)},_doCryptBlock:function(P,B,k){this._lBlock=P[B],this._rBlock=P[B+1],T.call(this,4,252645135),T.call(this,16,65535),C.call(this,2,858993459),C.call(this,8,16711935),T.call(this,1,1431655765);for(var N=0;N<16;N++){for(var I=k[N],z=this._lBlock,j=this._rBlock,H=0,$=0;$<8;$++)H|=v[$][((j^I[$])&w[$])>>>0];this._lBlock=j,this._rBlock=z^H}var U=this._lBlock;this._lBlock=this._rBlock,this._rBlock=U,T.call(this,1,1431655765),C.call(this,8,16711935),C.call(this,2,858993459),T.call(this,16,65535),T.call(this,4,252645135),P[B]=this._lBlock,P[B+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function T(P,B){var k=(this._lBlock>>>P^this._rBlock)&B;this._rBlock^=k,this._lBlock^=k<>>P^this._lBlock)&B;this._lBlock^=k,this._rBlock^=k<192.");var k=B.slice(0,2),N=B.length<4?B.slice(0,2):B.slice(2,4),I=B.length<6?B.slice(0,2):B.slice(4,6);this._des1=S.createEncryptor(d.create(k)),this._des2=S.createEncryptor(d.create(N)),this._des3=S.createEncryptor(d.create(I))},encryptBlock:function(P,B){this._des1.encryptBlock(P,B),this._des2.decryptBlock(P,B),this._des3.encryptBlock(P,B)},decryptBlock:function(P,B){this._des3.decryptBlock(P,B),this._des2.encryptBlock(P,B),this._des1.decryptBlock(P,B)},keySize:192/32,ivSize:64/32,blockSize:64/32});l.TripleDES=m._createHelper(E)})(),s.TripleDES})})(pc)),pc.exports}var mc={exports:{}},jb=mc.exports,Rm;function Hb(){return Rm||(Rm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(jb,function(s){return(function(){var l=s,f=l.lib,d=f.StreamCipher,m=l.algo,h=m.RC4=d.extend({_doReset:function(){for(var y=this._key,v=y.words,w=y.sigBytes,S=this._S=[],T=0;T<256;T++)S[T]=T;for(var T=0,C=0;T<256;T++){var E=T%w,P=v[E>>>2]>>>24-E%4*8&255;C=(C+S[T]+P)%256;var B=S[T];S[T]=S[C],S[C]=B}this._i=this._j=0},_doProcessBlock:function(y,v){y[v]^=x.call(this)},keySize:256/32,ivSize:0});function x(){for(var y=this._S,v=this._i,w=this._j,S=0,T=0;T<4;T++){v=(v+1)%256,w=(w+y[v])%256;var C=y[v];y[v]=y[w],y[w]=C,S|=y[(y[v]+y[w])%256]<<24-T*8}return this._i=v,this._j=w,S}l.RC4=d._createHelper(h);var p=m.RC4Drop=h.extend({cfg:h.cfg.extend({drop:192}),_doReset:function(){h._doReset.call(this);for(var y=this.cfg.drop;y>0;y--)x.call(this)}});l.RC4Drop=d._createHelper(p)})(),s.RC4})})(mc)),mc.exports}var Ac={exports:{}},Vb=Ac.exports,Fm;function Ub(){return Fm||(Fm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(Vb,function(s){return(function(){var l=s,f=l.lib,d=f.StreamCipher,m=l.algo,h=[],x=[],p=[],y=m.Rabbit=d.extend({_doReset:function(){for(var w=this._key.words,S=this.cfg.iv,T=0;T<4;T++)w[T]=(w[T]<<8|w[T]>>>24)&16711935|(w[T]<<24|w[T]>>>8)&4278255360;var C=this._X=[w[0],w[3]<<16|w[2]>>>16,w[1],w[0]<<16|w[3]>>>16,w[2],w[1]<<16|w[0]>>>16,w[3],w[2]<<16|w[1]>>>16],E=this._C=[w[2]<<16|w[2]>>>16,w[0]&4294901760|w[1]&65535,w[3]<<16|w[3]>>>16,w[1]&4294901760|w[2]&65535,w[0]<<16|w[0]>>>16,w[2]&4294901760|w[3]&65535,w[1]<<16|w[1]>>>16,w[3]&4294901760|w[0]&65535];this._b=0;for(var T=0;T<4;T++)v.call(this);for(var T=0;T<8;T++)E[T]^=C[T+4&7];if(S){var P=S.words,B=P[0],k=P[1],N=(B<<8|B>>>24)&16711935|(B<<24|B>>>8)&4278255360,I=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,z=N>>>16|I&4294901760,j=I<<16|N&65535;E[0]^=N,E[1]^=z,E[2]^=I,E[3]^=j,E[4]^=N,E[5]^=z,E[6]^=I,E[7]^=j;for(var T=0;T<4;T++)v.call(this)}},_doProcessBlock:function(w,S){var T=this._X;v.call(this),h[0]=T[0]^T[5]>>>16^T[3]<<16,h[1]=T[2]^T[7]>>>16^T[5]<<16,h[2]=T[4]^T[1]>>>16^T[7]<<16,h[3]=T[6]^T[3]>>>16^T[1]<<16;for(var C=0;C<4;C++)h[C]=(h[C]<<8|h[C]>>>24)&16711935|(h[C]<<24|h[C]>>>8)&4278255360,w[S+C]^=h[C]},blockSize:128/32,ivSize:64/32});function v(){for(var w=this._X,S=this._C,T=0;T<8;T++)x[T]=S[T];S[0]=S[0]+1295307597+this._b|0,S[1]=S[1]+3545052371+(S[0]>>>0>>0?1:0)|0,S[2]=S[2]+886263092+(S[1]>>>0>>0?1:0)|0,S[3]=S[3]+1295307597+(S[2]>>>0>>0?1:0)|0,S[4]=S[4]+3545052371+(S[3]>>>0>>0?1:0)|0,S[5]=S[5]+886263092+(S[4]>>>0>>0?1:0)|0,S[6]=S[6]+1295307597+(S[5]>>>0>>0?1:0)|0,S[7]=S[7]+3545052371+(S[6]>>>0>>0?1:0)|0,this._b=S[7]>>>0>>0?1:0;for(var T=0;T<8;T++){var C=w[T]+S[T],E=C&65535,P=C>>>16,B=((E*E>>>17)+E*P>>>15)+P*P,k=((C&4294901760)*C|0)+((C&65535)*C|0);p[T]=B^k}w[0]=p[0]+(p[7]<<16|p[7]>>>16)+(p[6]<<16|p[6]>>>16)|0,w[1]=p[1]+(p[0]<<8|p[0]>>>24)+p[7]|0,w[2]=p[2]+(p[1]<<16|p[1]>>>16)+(p[0]<<16|p[0]>>>16)|0,w[3]=p[3]+(p[2]<<8|p[2]>>>24)+p[1]|0,w[4]=p[4]+(p[3]<<16|p[3]>>>16)+(p[2]<<16|p[2]>>>16)|0,w[5]=p[5]+(p[4]<<8|p[4]>>>24)+p[3]|0,w[6]=p[6]+(p[5]<<16|p[5]>>>16)+(p[4]<<16|p[4]>>>16)|0,w[7]=p[7]+(p[6]<<8|p[6]>>>24)+p[5]|0}l.Rabbit=d._createHelper(y)})(),s.Rabbit})})(Ac)),Ac.exports}var gc={exports:{}},Zb=gc.exports,Nm;function Wb(){return Nm||(Nm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(Zb,function(s){return(function(){var l=s,f=l.lib,d=f.StreamCipher,m=l.algo,h=[],x=[],p=[],y=m.RabbitLegacy=d.extend({_doReset:function(){var w=this._key.words,S=this.cfg.iv,T=this._X=[w[0],w[3]<<16|w[2]>>>16,w[1],w[0]<<16|w[3]>>>16,w[2],w[1]<<16|w[0]>>>16,w[3],w[2]<<16|w[1]>>>16],C=this._C=[w[2]<<16|w[2]>>>16,w[0]&4294901760|w[1]&65535,w[3]<<16|w[3]>>>16,w[1]&4294901760|w[2]&65535,w[0]<<16|w[0]>>>16,w[2]&4294901760|w[3]&65535,w[1]<<16|w[1]>>>16,w[3]&4294901760|w[0]&65535];this._b=0;for(var E=0;E<4;E++)v.call(this);for(var E=0;E<8;E++)C[E]^=T[E+4&7];if(S){var P=S.words,B=P[0],k=P[1],N=(B<<8|B>>>24)&16711935|(B<<24|B>>>8)&4278255360,I=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,z=N>>>16|I&4294901760,j=I<<16|N&65535;C[0]^=N,C[1]^=z,C[2]^=I,C[3]^=j,C[4]^=N,C[5]^=z,C[6]^=I,C[7]^=j;for(var E=0;E<4;E++)v.call(this)}},_doProcessBlock:function(w,S){var T=this._X;v.call(this),h[0]=T[0]^T[5]>>>16^T[3]<<16,h[1]=T[2]^T[7]>>>16^T[5]<<16,h[2]=T[4]^T[1]>>>16^T[7]<<16,h[3]=T[6]^T[3]>>>16^T[1]<<16;for(var C=0;C<4;C++)h[C]=(h[C]<<8|h[C]>>>24)&16711935|(h[C]<<24|h[C]>>>8)&4278255360,w[S+C]^=h[C]},blockSize:128/32,ivSize:64/32});function v(){for(var w=this._X,S=this._C,T=0;T<8;T++)x[T]=S[T];S[0]=S[0]+1295307597+this._b|0,S[1]=S[1]+3545052371+(S[0]>>>0>>0?1:0)|0,S[2]=S[2]+886263092+(S[1]>>>0>>0?1:0)|0,S[3]=S[3]+1295307597+(S[2]>>>0>>0?1:0)|0,S[4]=S[4]+3545052371+(S[3]>>>0>>0?1:0)|0,S[5]=S[5]+886263092+(S[4]>>>0>>0?1:0)|0,S[6]=S[6]+1295307597+(S[5]>>>0>>0?1:0)|0,S[7]=S[7]+3545052371+(S[6]>>>0>>0?1:0)|0,this._b=S[7]>>>0>>0?1:0;for(var T=0;T<8;T++){var C=w[T]+S[T],E=C&65535,P=C>>>16,B=((E*E>>>17)+E*P>>>15)+P*P,k=((C&4294901760)*C|0)+((C&65535)*C|0);p[T]=B^k}w[0]=p[0]+(p[7]<<16|p[7]>>>16)+(p[6]<<16|p[6]>>>16)|0,w[1]=p[1]+(p[0]<<8|p[0]>>>24)+p[7]|0,w[2]=p[2]+(p[1]<<16|p[1]>>>16)+(p[0]<<16|p[0]>>>16)|0,w[3]=p[3]+(p[2]<<8|p[2]>>>24)+p[1]|0,w[4]=p[4]+(p[3]<<16|p[3]>>>16)+(p[2]<<16|p[2]>>>16)|0,w[5]=p[5]+(p[4]<<8|p[4]>>>24)+p[3]|0,w[6]=p[6]+(p[5]<<16|p[5]>>>16)+(p[4]<<16|p[4]>>>16)|0,w[7]=p[7]+(p[6]<<8|p[6]>>>24)+p[5]|0}l.RabbitLegacy=d._createHelper(y)})(),s.RabbitLegacy})})(gc)),gc.exports}var xc={exports:{}},qb=xc.exports,Lm;function Gb(){return Lm||(Lm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(qb,function(s){return(function(){var l=s,f=l.lib,d=f.BlockCipher,m=l.algo;const h=16,x=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],p=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var y={pbox:[],sbox:[]};function v(E,P){let B=P>>24&255,k=P>>16&255,N=P>>8&255,I=P&255,z=E.sbox[0][B]+E.sbox[1][k];return z=z^E.sbox[2][N],z=z+E.sbox[3][I],z}function w(E,P,B){let k=P,N=B,I;for(let z=0;z1;--z)k=k^E.pbox[z],N=v(E,k)^N,I=k,k=N,N=I;return I=k,k=N,N=I,N=N^E.pbox[1],k=k^E.pbox[0],{left:k,right:N}}function T(E,P,B){for(let j=0;j<4;j++){E.sbox[j]=[];for(let H=0;H<256;H++)E.sbox[j][H]=p[j][H]}let k=0;for(let j=0;j=B&&(k=0);let N=0,I=0,z=0;for(let j=0;j=0&&(I=I.substring(0,z));const j=I.indexOf(": ");let H,$;if(j>0&&j<50){const U=I.substring(0,j);/[:\[\]]/.test(U)?$=I:(H=U,$=I.substring(j+2))}else $=I;return{success:!0,data:{timestamp:P,flags:B,sender:H,message:$}}}catch(h){return{success:!1,error:h instanceof Error?h.message:"Decryption failed"}}}static calculateChannelHash(f){const d=(0,r.SHA256)(r.enc.Hex.parse(f));return(0,a.hexToBytes)(d.toString(r.enc.Hex))[0].toString(16).padStart(2,"0")}}return ja.ChannelCrypto=s,ja}var Om;function ux(){if(Om)return za;Om=1,Object.defineProperty(za,"__esModule",{value:!0}),za.MeshCoreKeyStore=void 0;const r=_0();class a{constructor(l){this.nodeKeys=new Map,this.channelHashToKeys=new Map,l!=null&&l.channelSecrets&&this.addChannelSecrets(l.channelSecrets),l!=null&&l.nodeKeys&&Object.entries(l.nodeKeys).forEach(([f,d])=>{this.addNodeKey(f,d)})}addNodeKey(l,f){const d=l.toUpperCase();this.nodeKeys.set(d,f)}hasChannelKey(l){const f=l.toLowerCase();return this.channelHashToKeys.has(f)}hasNodeKey(l){const f=l.toUpperCase();return this.nodeKeys.has(f)}getChannelKeys(l){const f=l.toLowerCase();return this.channelHashToKeys.get(f)||[]}getNodeKey(l){const f=l.toUpperCase();return this.nodeKeys.get(f)}addChannelSecrets(l){for(const f of l){const d=r.ChannelCrypto.calculateChannelHash(f).toLowerCase();this.channelHashToKeys.has(d)||this.channelHashToKeys.set(d,[]),this.channelHashToKeys.get(d).push(f)}}}return za.MeshCoreKeyStore=a,za}var Ha={},Tr={};/*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) */const cx={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:kn,n:vc,Gx:zm,Gy:jm,a:If,d:Of}=cx,Kb=8n,$r=32,rl=64,rr=(r="")=>{throw new Error(r)},$b=r=>typeof r=="bigint",dx=r=>typeof r=="string",Yb=r=>r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array",Zo=(r,a)=>!Yb(r)||typeof a=="number"&&a>0&&r.length!==a?rr("Uint8Array expected"):r,Kc=r=>new Uint8Array(r),w0=r=>Uint8Array.from(r),fx=(r,a)=>r.toString(16).padStart(a,"0"),b0=r=>Array.from(Zo(r)).map(a=>fx(a,2)).join(""),yi={_0:48,_9:57,A:65,F:70,a:97,f:102},Hm=r=>{if(r>=yi._0&&r<=yi._9)return r-yi._0;if(r>=yi.A&&r<=yi.F)return r-(yi.A-10);if(r>=yi.a&&r<=yi.f)return r-(yi.a-10)},C0=r=>{const a="hex invalid";if(!dx(r))return rr(a);const s=r.length,l=s/2;if(s%2)return rr(a);const f=Kc(l);for(let d=0,m=0;dZo(dx(r)?C0(r):w0(Zo(r)),a),hx=()=>globalThis==null?void 0:globalThis.crypto,Xb=()=>{var r;return((r=hx())==null?void 0:r.subtle)??rr("crypto.subtle must be defined")},il=(...r)=>{const a=Kc(r.reduce((l,f)=>l+Zo(f).length,0));let s=0;return r.forEach(l=>{a.set(l,s),s+=l.length}),a},px=(r=$r)=>hx().getRandomValues(Kc(r)),Bc=BigInt,jo=(r,a,s,l="bad number: out of range")=>$b(r)&&a<=r&&r{const s=r%a;return s>=0n?s:a+s},mx=r=>Le(r,vc),Ax=(r,a)=>{(r===0n||a<=0n)&&rr("no inverse n="+r+" mod="+a);let s=Le(r,a),l=a,f=0n,d=1n;for(;s!==0n;){const m=l/s,h=l%s,x=f-d*m;l=s,s=h,f=d,d=x}return l===1n?Le(f,a):rr("no inverse")},Jb=r=>{const a=D0[r];return typeof a!="function"&&rr("hashes."+r+" not set"),a},Vm=r=>r instanceof Rr?r:rr("Point expected"),Yf=2n**256n,Qr=class Qr{constructor(a,s,l,f){Fo(this,"ex");Fo(this,"ey");Fo(this,"ez");Fo(this,"et");const d=Yf;this.ex=jo(a,0n,d),this.ey=jo(s,0n,d),this.ez=jo(l,1n,d),this.et=jo(f,0n,d),Object.freeze(this)}static fromAffine(a){return new Qr(a.x,a.y,1n,Le(a.x*a.y))}static fromBytes(a,s=!1){const l=Of,f=w0(Zo(a,$r)),d=a[31];f[31]=d&-129;const m=E0(f);jo(m,0n,s?Yf:kn);const x=Le(m*m),p=Le(x-1n),y=Le(l*x+1n);let{isValid:v,value:w}=tC(p,y);v||rr("bad point: y not sqrt");const S=(w&1n)===1n,T=(d&128)!==0;return!s&&w===0n&&T&&rr("bad point: x==0, isLastByteOdd"),T!==S&&(w=Le(-w)),new Qr(w,m,1n,Le(w*m))}assertValidity(){const a=If,s=Of,l=this;if(l.is0())throw new Error("bad point: ZERO");const{ex:f,ey:d,ez:m,et:h}=l,x=Le(f*f),p=Le(d*d),y=Le(m*m),v=Le(y*y),w=Le(x*a),S=Le(y*Le(w+p)),T=Le(v+Le(s*Le(x*p)));if(S!==T)throw new Error("bad point: equation left != right (1)");const C=Le(f*d),E=Le(m*h);if(C!==E)throw new Error("bad point: equation left != right (2)");return this}equals(a){const{ex:s,ey:l,ez:f}=this,{ex:d,ey:m,ez:h}=Vm(a),x=Le(s*h),p=Le(d*f),y=Le(l*h),v=Le(m*f);return x===p&&y===v}is0(){return this.equals(Is)}negate(){return new Qr(Le(-this.ex),this.ey,this.ez,Le(-this.et))}double(){const{ex:a,ey:s,ez:l}=this,f=If,d=Le(a*a),m=Le(s*s),h=Le(2n*Le(l*l)),x=Le(f*d),p=a+s,y=Le(Le(p*p)-d-m),v=x+m,w=v-h,S=x-m,T=Le(y*w),C=Le(v*S),E=Le(y*S),P=Le(w*v);return new Qr(T,C,P,E)}add(a){const{ex:s,ey:l,ez:f,et:d}=this,{ex:m,ey:h,ez:x,et:p}=Vm(a),y=If,v=Of,w=Le(s*m),S=Le(l*h),T=Le(d*v*p),C=Le(f*x),E=Le((s+l)*(m+h)-w-S),P=Le(C-T),B=Le(C+T),k=Le(S-y*w),N=Le(E*P),I=Le(B*k),z=Le(E*k),j=Le(P*B);return new Qr(N,I,j,z)}multiply(a,s=!0){if(!s&&(a===0n||this.is0()))return Is;if(jo(a,1n,vc),a===1n)return this;if(this.equals(_i))return dC(a).p;let l=Is,f=_i;for(let d=this;a>0n;d=d.double(),a>>=1n)a&1n?l=l.add(d):s&&(f=f.add(d));return l}toAffine(){const{ex:a,ey:s,ez:l}=this;if(this.equals(Is))return{x:0n,y:1n};const f=Ax(l,kn);return Le(l*f)!==1n&&rr("invalid inverse"),{x:Le(a*f),y:Le(s*f)}}toBytes(){const{x:a,y:s}=this.assertValidity().toAffine(),l=gx(s);return l[31]|=a&1n?128:0,l}toHex(){return b0(this.toBytes())}clearCofactor(){return this.multiply(Bc(Kb),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let a=this.multiply(vc/2n,!1).double();return vc%2n&&(a=a.add(this)),a.is0()}static fromHex(a,s){return Qr.fromBytes(oo(a),s)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}toRawBytes(){return this.toBytes()}};Fo(Qr,"BASE"),Fo(Qr,"ZERO");let Rr=Qr;const _i=new Rr(zm,jm,1n,Le(zm*jm)),Is=new Rr(0n,1n,1n,0n);Rr.BASE=_i;Rr.ZERO=Is;const gx=r=>C0(fx(jo(r,0n,Yf),rl)).reverse(),E0=r=>Bc("0x"+b0(w0(Zo(r)).reverse())),Gr=(r,a)=>{let s=r;for(;a-- >0n;)s*=s,s%=kn;return s},eC=r=>{const s=r*r%kn*r%kn,l=Gr(s,2n)*s%kn,f=Gr(l,1n)*r%kn,d=Gr(f,5n)*f%kn,m=Gr(d,10n)*d%kn,h=Gr(m,20n)*m%kn,x=Gr(h,40n)*h%kn,p=Gr(x,80n)*x%kn,y=Gr(p,80n)*x%kn,v=Gr(y,10n)*d%kn;return{pow_p_5_8:Gr(v,2n)*r%kn,b2:s}},Um=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,tC=(r,a)=>{const s=Le(a*a*a),l=Le(s*s*a),f=eC(r*l).pow_p_5_8;let d=Le(r*s*f);const m=Le(a*d*d),h=d,x=Le(d*Um),p=m===r,y=m===Le(-r),v=m===Le(-r*Um);return p&&(d=h),(y||v)&&(d=x),(Le(d)&1n)===1n&&(d=Le(-d)),{isValid:p||y,value:d}},Pc=r=>mx(E0(r)),k0=(...r)=>D0.sha512Async(...r),S0=(...r)=>Jb("sha512Sync")(...r),xx=r=>{const a=r.slice(0,$r);a[0]&=248,a[31]&=127,a[31]|=64;const s=r.slice($r,rl),l=Pc(a),f=_i.multiply(l),d=f.toBytes();return{head:a,prefix:s,scalar:l,point:f,pointBytes:d}},B0=r=>k0(oo(r,$r)).then(xx),P0=r=>xx(S0(oo(r,$r))),nC=r=>B0(r).then(a=>a.pointBytes),rC=r=>P0(r).pointBytes,vx=r=>k0(r.hashable).then(r.finish),yx=r=>r.finish(S0(r.hashable)),_x=(r,a,s)=>{const{pointBytes:l,scalar:f}=r,d=Pc(a),m=_i.multiply(d).toBytes();return{hashable:il(m,l,s),finish:p=>{const y=mx(d+Pc(p)*f);return Zo(il(m,gx(y)),rl)}}},iC=async(r,a)=>{const s=oo(r),l=await B0(a),f=await k0(l.prefix,s);return vx(_x(l,f,s))},oC=(r,a)=>{const s=oo(r),l=P0(a),f=S0(l.prefix,s);return yx(_x(l,f,s))},T0={zip215:!0},wx=(r,a,s,l=T0)=>{r=oo(r,rl),a=oo(a),s=oo(s,$r);const{zip215:f}=l;let d,m,h,x,p=Uint8Array.of();try{d=Rr.fromHex(s,f),m=Rr.fromHex(r.slice(0,$r),f),h=E0(r.slice($r,rl)),x=_i.multiply(h,!1),p=il(m.toBytes(),d.toBytes(),a)}catch{}return{hashable:p,finish:v=>{if(x==null||!f&&d.isSmallOrder())return!1;const w=Pc(v);return m.add(d.multiply(w,!1)).add(x.negate()).clearCofactor().is0()}}},sC=async(r,a,s,l=T0)=>vx(wx(r,a,s,l)),aC=(r,a,s,l=T0)=>yx(wx(r,a,s,l)),D0={sha512Async:async(...r)=>{const a=Xb(),s=il(...r);return Kc(await a.digest("SHA-512",s.buffer))},sha512Sync:void 0,bytesToHex:b0,hexToBytes:C0,concatBytes:il,mod:Le,invert:Ax,randomBytes:px},lC={getExtendedPublicKeyAsync:B0,getExtendedPublicKey:P0,randomPrivateKey:()=>px($r),precompute:(r=8,a=_i)=>(a.multiply(3n),a)},Tc=8,uC=256,bx=Math.ceil(uC/Tc)+1,Xf=2**(Tc-1),cC=()=>{const r=[];let a=_i,s=a;for(let l=0;l{const s=a.negate();return r?s:a},dC=r=>{const a=Zm||(Zm=cC());let s=Is,l=_i;const f=2**Tc,d=f,m=Bc(f-1),h=Bc(Tc);for(let x=0;x>=h,p>Xf&&(p-=d,r+=1n);const y=x*Xf,v=y,w=y+Math.abs(p)-1,S=x%2!==0,T=p<0;p===0?l=l.add(Wm(S,a[v])):s=s.add(Wm(T,a[w]))}return{p:s,f:l}},fC=Object.freeze(Object.defineProperty({__proto__:null,CURVE:cx,ExtendedPoint:Rr,Point:Rr,etc:D0,getPublicKey:rC,getPublicKeyAsync:nC,sign:oC,signAsync:iC,utils:lC,verify:aC,verifyAsync:sC},Symbol.toStringTag,{value:"Module"})),hC=xA(fC);var Io={},zf={exports:{}},qm;function pC(){return qm||(qm=1,(function(r,a){var s=(()=>{var f;var l=typeof document<"u"?(f=document.currentScript)==null?void 0:f.src:void 0;return(async function(d={}){var xn;var m,h=d,x=typeof window=="object",p=typeof WorkerGlobalScope<"u",y=typeof process=="object"&&((xn=process.versions)==null?void 0:xn.node)&&process.type!="renderer";typeof __filename<"u"?l=__filename:p&&(l=self.location.href);var v="";function w(pe){return h.locateFile?h.locateFile(pe,v):v+pe}var S,T;if(y){var C=Sc;v=__dirname+"/",T=pe=>{pe=k(pe)?new URL(pe):pe;var we=C.readFileSync(pe);return we},S=async(pe,we=!0)=>{pe=k(pe)?new URL(pe):pe;var te=C.readFileSync(pe,we?void 0:"utf8");return te},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2)}else if(x||p){try{v=new URL(".",l).href}catch{}p&&(T=pe=>{var we=new XMLHttpRequest;return we.open("GET",pe,!1),we.responseType="arraybuffer",we.send(null),new Uint8Array(we.response)}),S=async pe=>{if(k(pe))return new Promise((te,me)=>{var Ee=new XMLHttpRequest;Ee.open("GET",pe,!0),Ee.responseType="arraybuffer",Ee.onload=()=>{if(Ee.status==200||Ee.status==0&&Ee.response){te(Ee.response);return}me(Ee.status)},Ee.onerror=me,Ee.send(null)});var we=await fetch(pe,{credentials:"same-origin"});if(we.ok)return we.arrayBuffer();throw new Error(we.status+" : "+we.url)}}console.log.bind(console);var E=console.error.bind(console),P,B=!1,k=pe=>pe.startsWith("file://"),N,I,z,j,H,$=!1;function U(){var pe=z.buffer;h.HEAP8=j=new Int8Array(pe),h.HEAPU8=H=new Uint8Array(pe),h.HEAP32=new Int32Array(pe),h.HEAPU32=new Uint32Array(pe),new BigInt64Array(pe),new BigUint64Array(pe)}function G(){if(h.preRun)for(typeof h.preRun=="function"&&(h.preRun=[h.preRun]);h.preRun.length;)Et(h.preRun.shift());ke(Ye)}function re(){$=!0,St.b()}function V(){if(h.postRun)for(typeof h.postRun=="function"&&(h.postRun=[h.postRun]);h.postRun.length;)qe(h.postRun.shift());ke(Ae)}var J=0,le=null;function se(pe){var we;J++,(we=h.monitorRunDependencies)==null||we.call(h,J)}function de(pe){var te;if(J--,(te=h.monitorRunDependencies)==null||te.call(h,J),J==0&&le){var we=le;le=null,we()}}function q(pe){var te;(te=h.onAbort)==null||te.call(h,pe),pe="Aborted("+pe+")",E(pe),B=!0,pe+=". Build with -sASSERTIONS for more info.";var we=new WebAssembly.RuntimeError(pe);throw I==null||I(we),we}var ge;function ne(){return w("orlp-ed25519.wasm")}function D(pe){if(pe==ge&&P)return new Uint8Array(P);if(T)return T(pe);throw"both async and sync fetching of the wasm failed"}async function Z(pe){if(!P)try{var we=await S(pe);return new Uint8Array(we)}catch{}return D(pe)}async function K(pe,we){try{var te=await Z(pe),me=await WebAssembly.instantiate(te,we);return me}catch(Ee){E(`failed to asynchronously prepare wasm: ${Ee}`),q(Ee)}}async function X(pe,we,te){if(!pe&&typeof WebAssembly.instantiateStreaming=="function"&&!k(we)&&!y)try{var me=fetch(we,{credentials:"same-origin"}),Ee=await WebAssembly.instantiateStreaming(me,te);return Ee}catch(He){E(`wasm streaming compile failed: ${He}`),E("falling back to ArrayBuffer instantiation")}return K(we,te)}function fe(){return{a:Ut}}async function he(){function pe(He,ze){return St=He.exports,z=St.a,U(),Sn(St),de(),St}se();function we(He){return pe(He.instance)}var te=fe();if(h.instantiateWasm)return new Promise((He,ze)=>{h.instantiateWasm(te,(nt,hn)=>{He(pe(nt))})});ge??(ge=ne());var me=await X(P,ge,te),Ee=we(me);return Ee}var ke=pe=>{for(;pe.length>0;)pe.shift()(h)},Ae=[],qe=pe=>Ae.push(pe),Ye=[],Et=pe=>Ye.push(pe),ht=pe=>It(pe),Se=()=>fn(),Ve=pe=>{var we=h["_"+pe];return we},dt=(pe,we)=>{j.set(pe,we)},Mt=pe=>{for(var we=0,te=0;te=55296&&me<=57343?(we+=4,++te):we+=3}return we},vt=(pe,we,te,me)=>{if(!(me>0))return 0;for(var Ee=te,He=te+me-1,ze=0;ze=He)break;we[te++]=nt}else if(nt<=2047){if(te+1>=He)break;we[te++]=192|nt>>6,we[te++]=128|nt&63}else if(nt<=65535){if(te+2>=He)break;we[te++]=224|nt>>12,we[te++]=128|nt>>6&63,we[te++]=128|nt&63}else{if(te+3>=He)break;we[te++]=240|nt>>18,we[te++]=128|nt>>12&63,we[te++]=128|nt>>6&63,we[te++]=128|nt&63,ze++}}return we[te]=0,te-Ee},ot=(pe,we,te)=>vt(pe,H,we,te),Qe=pe=>Jt(pe),Xe=pe=>{var we=Mt(pe)+1,te=Qe(we);return ot(pe,te,we),te},et=typeof TextDecoder<"u"?new TextDecoder:void 0,Oe=(pe,we=0,te=NaN)=>{for(var me=we+te,Ee=we;pe[Ee]&&!(Ee>=me);)++Ee;if(Ee-we>16&&pe.buffer&&et)return et.decode(pe.subarray(we,Ee));for(var He="";we>10,56320|je&1023)}}return He},_t=(pe,we)=>pe?Oe(H,pe,we):"",$t=(pe,we,te,me,Ee)=>{var He={string:rt=>{var wt=0;return rt!=null&&rt!==0&&(wt=Xe(rt)),wt},array:rt=>{var wt=Qe(rt.length);return dt(rt,wt),wt}};function ze(rt){return we==="string"?_t(rt):we==="boolean"?!!rt:rt}var nt=Ve(pe),hn=[],je=0;if(me)for(var pt=0;pt{var Ee=!te||te.every(ze=>ze==="number"||ze==="boolean"),He=we!=="string";return He&&Ee&&!me?Ve(pe):(...ze)=>$t(pe,we,te,ze)};h.noExitRuntime&&h.noExitRuntime,h.print&&h.print,h.printErr&&(E=h.printErr),h.wasmBinary&&(P=h.wasmBinary),h.arguments&&h.arguments,h.thisProgram&&h.thisProgram,h.ccall=$t,h.cwrap=Un;var It,Jt,fn;function Sn(pe){h._orlp_derive_public_key=pe.c,h._orlp_validate_keypair=pe.d,h._orlp_sign=pe.e,h._orlp_verify=pe.f,It=pe.g,Jt=pe.h,fn=pe.i}var Ut={},St=await he();function Zt(){if(J>0){le=Zt;return}if(G(),J>0){le=Zt;return}function pe(){var we;h.calledRun=!0,!B&&(re(),N==null||N(h),(we=h.onRuntimeInitialized)==null||we.call(h),V())}h.setStatus?(h.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>h.setStatus(""),1),pe()},1)):pe()}function Zn(){if(h.preInit)for(typeof h.preInit=="function"&&(h.preInit=[h.preInit]);h.preInit.length>0;)h.preInit.shift()()}return Zn(),Zt(),$?m=h:m=new Promise((pe,we)=>{N=pe,I=we}),m})})();r.exports=s,r.exports.default=s})(zf)),zf.exports}var Gm;function R0(){if(Gm)return Io;Gm=1,Object.defineProperty(Io,"__esModule",{value:!0}),Io.derivePublicKey=l,Io.validateKeyPair=f,Io.sign=d,Io.verify=m;const r=gn(),a=pC();async function s(){return await a()}async function l(h){const x=await s(),p=(0,r.hexToBytes)(h);if(p.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${p.length}`);const y=1024,v=1088;if(x.HEAPU8.set(p,y),x.ccall("orlp_derive_public_key","number",["number","number"],[v,y])!==0)throw new Error("orlp key derivation failed: invalid private key");const S=new Uint8Array(32);return S.set(x.HEAPU8.subarray(v,v+32)),(0,r.bytesToHex)(S)}async function f(h,x){try{const p=await s(),y=(0,r.hexToBytes)(h),v=(0,r.hexToBytes)(x);if(y.length!==64||v.length!==32)return!1;const w=2048,S=2112;return p.HEAPU8.set(y,w),p.HEAPU8.set(v,S),p.ccall("orlp_validate_keypair","number",["number","number"],[S,w])===1}catch{return!1}}async function d(h,x,p){const y=await s(),v=(0,r.hexToBytes)(h),w=(0,r.hexToBytes)(x),S=(0,r.hexToBytes)(p);if(w.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${w.length}`);if(S.length!==32)throw new Error(`Invalid public key length: expected 32 bytes, got ${S.length}`);const T=1e5,C=2e5,E=3e5,P=4e5;y.HEAPU8.set(v,T),y.HEAPU8.set(w,C),y.HEAPU8.set(S,E),y.ccall("orlp_sign","void",["number","number","number","number","number"],[P,T,v.length,E,C]);const B=new Uint8Array(64);return B.set(y.HEAPU8.subarray(P,P+64)),(0,r.bytesToHex)(B)}async function m(h,x,p){try{const y=await s(),v=(0,r.hexToBytes)(h),w=(0,r.hexToBytes)(x),S=(0,r.hexToBytes)(p);if(v.length!==64||S.length!==32)return!1;const T=5e5,C=6e5,E=7e5;return y.HEAPU8.set(v,C),y.HEAPU8.set(w,T),y.HEAPU8.set(S,E),y.ccall("orlp_verify","number",["number","number","number","number"],[C,T,w.length,E])===1}catch{return!1}}return Io}var Qm;function Cx(){if(Qm)return Tr;Qm=1;var r=Tr&&Tr.__createBinding||(Object.create?(function(p,y,v,w){w===void 0&&(w=v);var S=Object.getOwnPropertyDescriptor(y,v);(!S||("get"in S?!y.__esModule:S.writable||S.configurable))&&(S={enumerable:!0,get:function(){return y[v]}}),Object.defineProperty(p,w,S)}):(function(p,y,v,w){w===void 0&&(w=v),p[w]=y[v]})),a=Tr&&Tr.__setModuleDefault||(Object.create?(function(p,y){Object.defineProperty(p,"default",{enumerable:!0,value:y})}):function(p,y){p.default=y}),s=Tr&&Tr.__importStar||(function(){var p=function(y){return p=Object.getOwnPropertyNames||function(v){var w=[];for(var S in v)Object.prototype.hasOwnProperty.call(v,S)&&(w[w.length]=S);return w},p(y)};return function(y){if(y&&y.__esModule)return y;var v={};if(y!=null)for(var w=p(y),S=0;S>>24&255,S[T*4+1]=C>>>16&255,S[T*4+2]=C>>>8&255,S[T*4+3]=C&255}return S}catch{throw new Error("No SHA-512 implementation available for synchronous operation")}}l.etc.sha512Async=m;try{l.etc.sha512Sync=h}catch(p){console.debug("Could not set up synchronous SHA-512:",p)}class x{static async verifyAdvertisementSignature(y,v,w,S){try{const T=(0,f.hexToBytes)(y),C=(0,f.hexToBytes)(v),E=(0,f.hexToBytes)(S),P=this.constructAdvertSignedMessage(y,w,E);return await l.verify(C,P,T)}catch(T){return console.error("Ed25519 signature verification failed:",T),!1}}static constructAdvertSignedMessage(y,v,w){const S=(0,f.hexToBytes)(y),T=new Uint8Array(4);T[0]=v&255,T[1]=v>>8&255,T[2]=v>>16&255,T[3]=v>>24&255;const C=new Uint8Array(36+w.length);return C.set(S,0),C.set(T,32),C.set(w,36),C}static getSignedMessageDescription(y,v,w){return`Public Key: ${y} + Timestamp: ${v} (${new Date(v*1e3).toISOString()}) + App Data: ${w}`}static getSignedMessageHex(y,v,w){const S=(0,f.hexToBytes)(w),T=this.constructAdvertSignedMessage(y,v,S);return(0,f.bytesToHex)(T)}static async derivePublicKey(y){try{const v=(0,f.hexToBytes)(y);if(v.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${v.length}`);return await(0,d.derivePublicKey)(y)}catch(v){throw new Error(`Failed to derive public key: ${v instanceof Error?v.message:"Unknown error"}`)}}static derivePublicKeySync(y){try{const v=(0,f.hexToBytes)(y);throw v.length!==64?new Error(`Invalid private key length: expected 64 bytes, got ${v.length}`):new Error("Synchronous key derivation not supported with WASM. Use derivePublicKey() instead.")}catch(v){throw new Error(`Failed to derive public key: ${v instanceof Error?v.message:"Unknown error"}`)}}static async validateKeyPair(y,v){try{return await(0,d.validateKeyPair)(y,v)}catch{return!1}}}return Tr.Ed25519SignatureVerifier=x,Tr}var Km;function mC(){if(Km)return Ha;Km=1,Object.defineProperty(Ha,"__esModule",{value:!0}),Ha.AdvertPayloadDecoder=void 0;const r=ir(),a=gn(),s=nl(),l=Cx();class f{static decode(m,h){try{if(m.length<101){const P={type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!1,errors:["Advertisement payload too short"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:r.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}};return h!=null&&h.includeSegments&&(P.segments=[{name:"Invalid Advert Data",description:"Advert payload too short (minimum 101 bytes required)",startByte:h.segmentOffset||0,endByte:(h.segmentOffset||0)+m.length-1,value:(0,a.bytesToHex)(m)}]),P}const x=[],p=(h==null?void 0:h.segmentOffset)||0;let y=0;const v=(0,a.bytesToHex)(m.subarray(y,y+32));h!=null&&h.includeSegments&&x.push({name:"Public Key",description:"Ed25519 public key",startByte:p+y,endByte:p+y+31,value:v}),y+=32;const w=this.readUint32LE(m,y);if(h!=null&&h.includeSegments){const P=new Date(w*1e3);x.push({name:"Timestamp",description:`${w} (${P.toISOString().slice(0,19)}Z)`,startByte:p+y,endByte:p+y+3,value:(0,a.bytesToHex)(m.subarray(y,y+4))})}y+=4;const S=(0,a.bytesToHex)(m.subarray(y,y+64));h!=null&&h.includeSegments&&x.push({name:"Signature",description:"Ed25519 signature",startByte:p+y,endByte:p+y+63,value:S}),y+=64;const T=m[y];if(h!=null&&h.includeSegments){const P=T.toString(2).padStart(8,"0"),B=this.parseDeviceRole(T),N=` | Bits 0-3 (Role): ${(0,s.getDeviceRoleName)(B)} | Bit 4 (Location): ${T&r.AdvertFlags.HasLocation?"Yes":"No"} | Bit 7 (Name): ${T&r.AdvertFlags.HasName?"Yes":"No"}`;x.push({name:"App Flags",description:`Binary: ${P}${N}`,startByte:p+y,endByte:p+y,value:T.toString(16).padStart(2,"0").toUpperCase()})}y+=1;const C={type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!0,publicKey:v,timestamp:w,signature:S,appData:{flags:T,deviceRole:this.parseDeviceRole(T),hasLocation:!!(T&r.AdvertFlags.HasLocation),hasName:!!(T&r.AdvertFlags.HasName)}};let E=y;if(T&r.AdvertFlags.HasLocation&&m.length>=E+8){const P=this.readInt32LE(m,E)/1e6,B=this.readInt32LE(m,E+4)/1e6;C.appData.location={latitude:Math.round(P*1e6)/1e6,longitude:Math.round(B*1e6)/1e6},h!=null&&h.includeSegments&&(x.push({name:"Latitude",description:`${P}° (${P})`,startByte:p+E,endByte:p+E+3,value:(0,a.bytesToHex)(m.subarray(E,E+4))}),x.push({name:"Longitude",description:`${B}° (${B})`,startByte:p+E+4,endByte:p+E+7,value:(0,a.bytesToHex)(m.subarray(E+4,E+8))})),E+=8}if(T&r.AdvertFlags.HasFeature1&&(E+=2),T&r.AdvertFlags.HasFeature2&&(E+=2),T&r.AdvertFlags.HasName&&m.length>E){const P=m.subarray(E),B=new TextDecoder("utf-8").decode(P).replace(/\0.*$/,"");C.appData.name=this.sanitizeControlCharacters(B)||B,h!=null&&h.includeSegments&&x.push({name:"Node Name",description:`Node name: "${C.appData.name}"`,startByte:p+E,endByte:p+m.length-1,value:(0,a.bytesToHex)(P)})}return h!=null&&h.includeSegments&&(C.segments=x),C}catch(x){return{type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!1,errors:[x instanceof Error?x.message:"Failed to decode advertisement payload"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:r.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}}}}static async decodeWithVerification(m,h){const x=this.decode(m,h);if(!x||!x.isValid)return x;try{const y=m.subarray(100),v=(0,a.bytesToHex)(y),w=await l.Ed25519SignatureVerifier.verifyAdvertisementSignature(x.publicKey,x.signature,x.timestamp,v);x.signatureValid=w,w||(x.signatureError="Ed25519 signature verification failed",x.isValid=!1,x.errors||(x.errors=[]),x.errors.push("Invalid Ed25519 signature"))}catch(p){x.signatureValid=!1,x.signatureError=p instanceof Error?p.message:"Signature verification error",x.isValid=!1,x.errors||(x.errors=[]),x.errors.push("Signature verification failed: "+(p instanceof Error?p.message:"Unknown error"))}return x}static parseDeviceRole(m){switch(m&15){case 1:return r.DeviceRole.ChatNode;case 2:return r.DeviceRole.Repeater;case 3:return r.DeviceRole.RoomServer;case 4:return r.DeviceRole.Sensor;default:return r.DeviceRole.ChatNode}}static readUint32LE(m,h){return m[h]|m[h+1]<<8|m[h+2]<<16|m[h+3]<<24}static readInt32LE(m,h){const x=this.readUint32LE(m,h);return x>2147483647?x-4294967296:x}static sanitizeControlCharacters(m){return m&&m.trim().replace(/[\x00-\x1F\x7F]/g,"")||null}}return Ha.AdvertPayloadDecoder=f,Ha}var Va={},$m;function AC(){if($m)return Va;$m=1,Object.defineProperty(Va,"__esModule",{value:!0}),Va.TracePayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d,m){try{if(f.length<9){const B={type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!1,errors:["Trace payload too short (need at least tag(4) + auth(4) + flags(1))"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]};return m!=null&&m.includeSegments&&(B.segments=[{name:"Invalid Trace Data",description:"Trace payload too short (minimum 9 bytes required)",startByte:m.segmentOffset||0,endByte:(m.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),B}let h=0;const x=[],p=(m==null?void 0:m.segmentOffset)||0,y=this.readUint32LE(f,h),v=(0,a.numberToHex)(y,8);m!=null&&m.includeSegments&&x.push({name:"Trace Tag",description:`Unique identifier for this trace: 0x${y.toString(16).padStart(8,"0")}`,startByte:p+h,endByte:p+h+3,value:(0,a.bytesToHex)(f.slice(h,h+4))}),h+=4;const w=this.readUint32LE(f,h);m!=null&&m.includeSegments&&x.push({name:"Auth Code",description:`Authentication/verification code: ${w}`,startByte:p+h,endByte:p+h+3,value:(0,a.bytesToHex)(f.slice(h,h+4))}),h+=4;const S=f[h];m!=null&&m.includeSegments&&x.push({name:"Flags",description:`Application-defined control flags: 0x${S.toString(16).padStart(2,"0")} (${S.toString(2).padStart(8,"0")}b)`,startByte:p+h,endByte:p+h,value:S.toString(16).padStart(2,"0").toUpperCase()}),h+=1;const T=[],C=h;for(;h0){const B=T.join(" ");x.push({name:"Path Hashes",description:`Node hashes in trace path: ${B}`,startByte:p+C,endByte:p+f.length-1,value:(0,a.bytesToHex)(f.slice(C))})}let E;d&&d.length>0&&(E=d.map(B=>{const k=parseInt(B,16);return(k>127?k-256:k)/4}));const P={type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!0,traceTag:v,authCode:w,flags:S,pathHashes:T,snrValues:E};return m!=null&&m.includeSegments&&(P.segments=x),P}catch(h){return{type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!1,errors:[h instanceof Error?h.message:"Failed to decode trace payload"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]}}}static readUint32LE(f,d){return f[d]|f[d+1]<<8|f[d+2]<<16|f[d+3]<<24}}return Va.TracePayloadDecoder=s,Va}var Ua={},Ym;function gC(){if(Ym)return Ua;Ym=1,Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.GroupTextPayloadDecoder=void 0;const r=ir(),a=_0(),s=gn();class l{static decode(d,m){try{if(d.length<3){const T={type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!1,errors:["GroupText payload too short (need at least channel_hash(1) + MAC(2))"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return m!=null&&m.includeSegments&&(T.segments=[{name:"Invalid GroupText Data",description:"GroupText payload too short (minimum 3 bytes required)",startByte:m.segmentOffset||0,endByte:(m.segmentOffset||0)+d.length-1,value:(0,s.bytesToHex)(d)}]),T}const h=[],x=(m==null?void 0:m.segmentOffset)||0;let p=0;const y=(0,s.byteToHex)(d[p]);m!=null&&m.includeSegments&&h.push({name:"Channel Hash",description:"First byte of SHA256 of channel's shared key",startByte:x+p,endByte:x+p,value:y}),p+=1;const v=(0,s.bytesToHex)(d.subarray(p,p+2));m!=null&&m.includeSegments&&h.push({name:"Cipher MAC",description:"MAC for encrypted data",startByte:x+p,endByte:x+p+1,value:v}),p+=2;const w=(0,s.bytesToHex)(d.subarray(p));m!=null&&m.includeSegments&&d.length>p&&h.push({name:"Ciphertext",description:"Encrypted message content (timestamp + flags + message)",startByte:x+p,endByte:x+d.length-1,value:w});const S={type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!0,channelHash:y,cipherMac:v,ciphertext:w,ciphertextLength:d.length-3};if(m!=null&&m.keyStore&&m.keyStore.hasChannelKey(y)){const T=m.keyStore.getChannelKeys(y);for(const C of T){const E=a.ChannelCrypto.decryptGroupTextMessage(w,v,C);if(E.success&&E.data){S.decrypted={timestamp:E.data.timestamp,flags:E.data.flags,sender:E.data.sender,message:E.data.message};break}}}return m!=null&&m.includeSegments&&(S.segments=h),S}catch(h){return{type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!1,errors:[h instanceof Error?h.message:"Failed to decode GroupText payload"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Ua.GroupTextPayloadDecoder=l,Ua}var Za={},Xm;function xC(){if(Xm)return Za;Xm=1,Object.defineProperty(Za,"__esModule",{value:!0}),Za.RequestPayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d){try{if(f.length<4){const T={type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!1,errors:["Request payload too short (minimum 4 bytes: dest hash + source hash + MAC)"],timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:""};return d!=null&&d.includeSegments&&(T.segments=[{name:"Invalid Request Data",description:"Request payload too short (minimum 4 bytes required: 1 for dest hash + 1 for source hash + 2 for MAC)",startByte:d.segmentOffset||0,endByte:(d.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),T}const m=[],h=(d==null?void 0:d.segmentOffset)||0;let x=0;const p=(0,a.bytesToHex)(f.subarray(x,x+1));d!=null&&d.includeSegments&&m.push({name:"Destination Hash",description:`First byte of destination node public key: 0x${p}`,startByte:h+x,endByte:h+x,value:p}),x+=1;const y=(0,a.bytesToHex)(f.subarray(x,x+1));d!=null&&d.includeSegments&&m.push({name:"Source Hash",description:`First byte of source node public key: 0x${y}`,startByte:h+x,endByte:h+x,value:y}),x+=1;const v=(0,a.bytesToHex)(f.subarray(x,x+2));d!=null&&d.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data verification (2 bytes)",startByte:h+x,endByte:h+x+1,value:v}),x+=2;const w=(0,a.bytesToHex)(f.subarray(x));d!=null&&d.includeSegments&&f.length>x&&m.push({name:"Ciphertext",description:`Encrypted message data (${f.length-x} bytes). Contains encrypted plaintext with this structure: + */return s.mode.CTRGladman=(function(){var l=s.lib.BlockCipherMode.extend();function f(h){if((h>>24&255)===255){var x=h>>16&255,p=h>>8&255,y=h&255;x===255?(x=0,p===255?(p=0,y===255?y=0:++y):++p):++x,h=0,h+=x<<16,h+=p<<8,h+=y}else h+=1<<24;return h}function d(h){return(h[0]=f(h[0]))===0&&(h[1]=f(h[1])),h}var m=l.Encryptor=l.extend({processBlock:function(h,x){var p=this._cipher,y=p.blockSize,v=this._iv,w=this._counter;v&&(w=this._counter=v.slice(0),this._iv=void 0),d(w);var S=w.slice(0);p.encryptBlock(S,0);for(var T=0;T>>2]|=h<<24-x%4*8,l.sigBytes+=h},unpad:function(l){var f=l.words[l.sigBytes-1>>>2]&255;l.sigBytes-=f}},s.pad.Ansix923})})(ac)),ac.exports}var lc={exports:{}},BC=lc.exports,Sm;function PC(){return Sm||(Sm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(BC,function(s){return s.pad.Iso10126={pad:function(l,f){var d=f*4,m=d-l.sigBytes%d;l.concat(s.lib.WordArray.random(m-1)).concat(s.lib.WordArray.create([m<<24],1))},unpad:function(l){var f=l.words[l.sigBytes-1>>>2]&255;l.sigBytes-=f}},s.pad.Iso10126})})(lc)),lc.exports}var uc={exports:{}},TC=uc.exports,Bm;function DC(){return Bm||(Bm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(TC,function(s){return s.pad.Iso97971={pad:function(l,f){l.concat(s.lib.WordArray.create([2147483648],1)),s.pad.ZeroPadding.pad(l,f)},unpad:function(l){s.pad.ZeroPadding.unpad(l),l.sigBytes--}},s.pad.Iso97971})})(uc)),uc.exports}var cc={exports:{}},RC=cc.exports,Pm;function FC(){return Pm||(Pm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(RC,function(s){return s.pad.ZeroPadding={pad:function(l,f){var d=f*4;l.clamp(),l.sigBytes+=d-(l.sigBytes%d||d)},unpad:function(l){for(var f=l.words,d=l.sigBytes-1,d=l.sigBytes-1;d>=0;d--)if(f[d>>>2]>>>24-d%4*8&255){l.sigBytes=d+1;break}}},s.pad.ZeroPadding})})(cc)),cc.exports}var dc={exports:{}},NC=dc.exports,Tm;function LC(){return Tm||(Tm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(NC,function(s){return s.pad.NoPadding={pad:function(){},unpad:function(){}},s.pad.NoPadding})})(dc)),dc.exports}var fc={exports:{}},MC=fc.exports,Dm;function IC(){return Dm||(Dm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),dn())})(MC,function(s){return(function(l){var f=s,d=f.lib,m=d.CipherParams,h=f.enc,x=h.Hex,p=f.format;p.Hex={stringify:function(y){return y.ciphertext.toString(x)},parse:function(y){var v=x.parse(y);return m.create({ciphertext:v})}}})(),s.format.Hex})})(fc)),fc.exports}var hc={exports:{}},OC=hc.exports,Rm;function zC(){return Rm||(Rm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(OC,function(s){return(function(){var l=s,f=l.lib,d=f.BlockCipher,m=l.algo,h=[],x=[],p=[],y=[],v=[],w=[],S=[],T=[],b=[],E=[];(function(){for(var k=[],N=0;N<256;N++)N<128?k[N]=N<<1:k[N]=N<<1^283;for(var I=0,z=0,N=0;N<256;N++){var j=z^z<<1^z<<2^z<<3^z<<4;j=j>>>8^j&255^99,h[I]=j,x[j]=I;var H=k[I],$=k[H],U=k[$],G=k[j]*257^j*16843008;p[I]=G<<24|G>>>8,y[I]=G<<16|G>>>16,v[I]=G<<8|G>>>24,w[I]=G;var G=U*16843009^$*65537^H*257^I*16843008;S[j]=G<<24|G>>>8,T[j]=G<<16|G>>>16,b[j]=G<<8|G>>>24,E[j]=G,I?(I=H^k[k[k[U^H]]],z^=k[k[z]]):I=z=1}})();var P=[0,1,2,4,8,16,32,64,128,27,54],B=m.AES=d.extend({_doReset:function(){var k;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var N=this._keyPriorReset=this._key,I=N.words,z=N.sigBytes/4,j=this._nRounds=z+6,H=(j+1)*4,$=this._keySchedule=[],U=0;U6&&U%z==4&&(k=h[k>>>24]<<24|h[k>>>16&255]<<16|h[k>>>8&255]<<8|h[k&255]):(k=k<<8|k>>>24,k=h[k>>>24]<<24|h[k>>>16&255]<<16|h[k>>>8&255]<<8|h[k&255],k^=P[U/z|0]<<24),$[U]=$[U-z]^k);for(var G=this._invKeySchedule=[],re=0;re>>24]]^T[h[k>>>16&255]]^b[h[k>>>8&255]]^E[h[k&255]]}}},encryptBlock:function(k,N){this._doCryptBlock(k,N,this._keySchedule,p,y,v,w,h)},decryptBlock:function(k,N){var I=k[N+1];k[N+1]=k[N+3],k[N+3]=I,this._doCryptBlock(k,N,this._invKeySchedule,S,T,b,E,x);var I=k[N+1];k[N+1]=k[N+3],k[N+3]=I},_doCryptBlock:function(k,N,I,z,j,H,$,U){for(var G=this._nRounds,re=k[N]^I[0],V=k[N+1]^I[1],J=k[N+2]^I[2],le=k[N+3]^I[3],se=4,de=1;de>>24]^j[V>>>16&255]^H[J>>>8&255]^$[le&255]^I[se++],ge=z[V>>>24]^j[J>>>16&255]^H[le>>>8&255]^$[re&255]^I[se++],ne=z[J>>>24]^j[le>>>16&255]^H[re>>>8&255]^$[V&255]^I[se++],D=z[le>>>24]^j[re>>>16&255]^H[V>>>8&255]^$[J&255]^I[se++];re=q,V=ge,J=ne,le=D}var q=(U[re>>>24]<<24|U[V>>>16&255]<<16|U[J>>>8&255]<<8|U[le&255])^I[se++],ge=(U[V>>>24]<<24|U[J>>>16&255]<<16|U[le>>>8&255]<<8|U[re&255])^I[se++],ne=(U[J>>>24]<<24|U[le>>>16&255]<<16|U[re>>>8&255]<<8|U[V&255])^I[se++],D=(U[le>>>24]<<24|U[re>>>16&255]<<16|U[V>>>8&255]<<8|U[J&255])^I[se++];k[N]=q,k[N+1]=ge,k[N+2]=ne,k[N+3]=D},keySize:256/32});l.AES=d._createHelper(B)})(),s.AES})})(hc)),hc.exports}var pc={exports:{}},jC=pc.exports,Fm;function HC(){return Fm||(Fm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(jC,function(s){return(function(){var l=s,f=l.lib,d=f.WordArray,m=f.BlockCipher,h=l.algo,x=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],p=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],y=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],v=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],w=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],S=h.DES=m.extend({_doReset:function(){for(var P=this._key,B=P.words,k=[],N=0;N<56;N++){var I=x[N]-1;k[N]=B[I>>>5]>>>31-I%32&1}for(var z=this._subKeys=[],j=0;j<16;j++){for(var H=z[j]=[],$=y[j],N=0;N<24;N++)H[N/6|0]|=k[(p[N]-1+$)%28]<<31-N%6,H[4+(N/6|0)]|=k[28+(p[N+24]-1+$)%28]<<31-N%6;H[0]=H[0]<<1|H[0]>>>31;for(var N=1;N<7;N++)H[N]=H[N]>>>(N-1)*4+3;H[7]=H[7]<<5|H[7]>>>27}for(var U=this._invSubKeys=[],N=0;N<16;N++)U[N]=z[15-N]},encryptBlock:function(P,B){this._doCryptBlock(P,B,this._subKeys)},decryptBlock:function(P,B){this._doCryptBlock(P,B,this._invSubKeys)},_doCryptBlock:function(P,B,k){this._lBlock=P[B],this._rBlock=P[B+1],T.call(this,4,252645135),T.call(this,16,65535),b.call(this,2,858993459),b.call(this,8,16711935),T.call(this,1,1431655765);for(var N=0;N<16;N++){for(var I=k[N],z=this._lBlock,j=this._rBlock,H=0,$=0;$<8;$++)H|=v[$][((j^I[$])&w[$])>>>0];this._lBlock=j,this._rBlock=z^H}var U=this._lBlock;this._lBlock=this._rBlock,this._rBlock=U,T.call(this,1,1431655765),b.call(this,8,16711935),b.call(this,2,858993459),T.call(this,16,65535),T.call(this,4,252645135),P[B]=this._lBlock,P[B+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function T(P,B){var k=(this._lBlock>>>P^this._rBlock)&B;this._rBlock^=k,this._lBlock^=k<>>P^this._lBlock)&B;this._lBlock^=k,this._rBlock^=k<192.");var k=B.slice(0,2),N=B.length<4?B.slice(0,2):B.slice(2,4),I=B.length<6?B.slice(0,2):B.slice(4,6);this._des1=S.createEncryptor(d.create(k)),this._des2=S.createEncryptor(d.create(N)),this._des3=S.createEncryptor(d.create(I))},encryptBlock:function(P,B){this._des1.encryptBlock(P,B),this._des2.decryptBlock(P,B),this._des3.encryptBlock(P,B)},decryptBlock:function(P,B){this._des3.decryptBlock(P,B),this._des2.encryptBlock(P,B),this._des1.decryptBlock(P,B)},keySize:192/32,ivSize:64/32,blockSize:64/32});l.TripleDES=m._createHelper(E)})(),s.TripleDES})})(pc)),pc.exports}var mc={exports:{}},VC=mc.exports,Nm;function UC(){return Nm||(Nm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(VC,function(s){return(function(){var l=s,f=l.lib,d=f.StreamCipher,m=l.algo,h=m.RC4=d.extend({_doReset:function(){for(var y=this._key,v=y.words,w=y.sigBytes,S=this._S=[],T=0;T<256;T++)S[T]=T;for(var T=0,b=0;T<256;T++){var E=T%w,P=v[E>>>2]>>>24-E%4*8&255;b=(b+S[T]+P)%256;var B=S[T];S[T]=S[b],S[b]=B}this._i=this._j=0},_doProcessBlock:function(y,v){y[v]^=x.call(this)},keySize:256/32,ivSize:0});function x(){for(var y=this._S,v=this._i,w=this._j,S=0,T=0;T<4;T++){v=(v+1)%256,w=(w+y[v])%256;var b=y[v];y[v]=y[w],y[w]=b,S|=y[(y[v]+y[w])%256]<<24-T*8}return this._i=v,this._j=w,S}l.RC4=d._createHelper(h);var p=m.RC4Drop=h.extend({cfg:h.cfg.extend({drop:192}),_doReset:function(){h._doReset.call(this);for(var y=this.cfg.drop;y>0;y--)x.call(this)}});l.RC4Drop=d._createHelper(p)})(),s.RC4})})(mc)),mc.exports}var Ac={exports:{}},ZC=Ac.exports,Lm;function WC(){return Lm||(Lm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(ZC,function(s){return(function(){var l=s,f=l.lib,d=f.StreamCipher,m=l.algo,h=[],x=[],p=[],y=m.Rabbit=d.extend({_doReset:function(){for(var w=this._key.words,S=this.cfg.iv,T=0;T<4;T++)w[T]=(w[T]<<8|w[T]>>>24)&16711935|(w[T]<<24|w[T]>>>8)&4278255360;var b=this._X=[w[0],w[3]<<16|w[2]>>>16,w[1],w[0]<<16|w[3]>>>16,w[2],w[1]<<16|w[0]>>>16,w[3],w[2]<<16|w[1]>>>16],E=this._C=[w[2]<<16|w[2]>>>16,w[0]&4294901760|w[1]&65535,w[3]<<16|w[3]>>>16,w[1]&4294901760|w[2]&65535,w[0]<<16|w[0]>>>16,w[2]&4294901760|w[3]&65535,w[1]<<16|w[1]>>>16,w[3]&4294901760|w[0]&65535];this._b=0;for(var T=0;T<4;T++)v.call(this);for(var T=0;T<8;T++)E[T]^=b[T+4&7];if(S){var P=S.words,B=P[0],k=P[1],N=(B<<8|B>>>24)&16711935|(B<<24|B>>>8)&4278255360,I=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,z=N>>>16|I&4294901760,j=I<<16|N&65535;E[0]^=N,E[1]^=z,E[2]^=I,E[3]^=j,E[4]^=N,E[5]^=z,E[6]^=I,E[7]^=j;for(var T=0;T<4;T++)v.call(this)}},_doProcessBlock:function(w,S){var T=this._X;v.call(this),h[0]=T[0]^T[5]>>>16^T[3]<<16,h[1]=T[2]^T[7]>>>16^T[5]<<16,h[2]=T[4]^T[1]>>>16^T[7]<<16,h[3]=T[6]^T[3]>>>16^T[1]<<16;for(var b=0;b<4;b++)h[b]=(h[b]<<8|h[b]>>>24)&16711935|(h[b]<<24|h[b]>>>8)&4278255360,w[S+b]^=h[b]},blockSize:128/32,ivSize:64/32});function v(){for(var w=this._X,S=this._C,T=0;T<8;T++)x[T]=S[T];S[0]=S[0]+1295307597+this._b|0,S[1]=S[1]+3545052371+(S[0]>>>0>>0?1:0)|0,S[2]=S[2]+886263092+(S[1]>>>0>>0?1:0)|0,S[3]=S[3]+1295307597+(S[2]>>>0>>0?1:0)|0,S[4]=S[4]+3545052371+(S[3]>>>0>>0?1:0)|0,S[5]=S[5]+886263092+(S[4]>>>0>>0?1:0)|0,S[6]=S[6]+1295307597+(S[5]>>>0>>0?1:0)|0,S[7]=S[7]+3545052371+(S[6]>>>0>>0?1:0)|0,this._b=S[7]>>>0>>0?1:0;for(var T=0;T<8;T++){var b=w[T]+S[T],E=b&65535,P=b>>>16,B=((E*E>>>17)+E*P>>>15)+P*P,k=((b&4294901760)*b|0)+((b&65535)*b|0);p[T]=B^k}w[0]=p[0]+(p[7]<<16|p[7]>>>16)+(p[6]<<16|p[6]>>>16)|0,w[1]=p[1]+(p[0]<<8|p[0]>>>24)+p[7]|0,w[2]=p[2]+(p[1]<<16|p[1]>>>16)+(p[0]<<16|p[0]>>>16)|0,w[3]=p[3]+(p[2]<<8|p[2]>>>24)+p[1]|0,w[4]=p[4]+(p[3]<<16|p[3]>>>16)+(p[2]<<16|p[2]>>>16)|0,w[5]=p[5]+(p[4]<<8|p[4]>>>24)+p[3]|0,w[6]=p[6]+(p[5]<<16|p[5]>>>16)+(p[4]<<16|p[4]>>>16)|0,w[7]=p[7]+(p[6]<<8|p[6]>>>24)+p[5]|0}l.Rabbit=d._createHelper(y)})(),s.Rabbit})})(Ac)),Ac.exports}var gc={exports:{}},qC=gc.exports,Mm;function GC(){return Mm||(Mm=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(qC,function(s){return(function(){var l=s,f=l.lib,d=f.StreamCipher,m=l.algo,h=[],x=[],p=[],y=m.RabbitLegacy=d.extend({_doReset:function(){var w=this._key.words,S=this.cfg.iv,T=this._X=[w[0],w[3]<<16|w[2]>>>16,w[1],w[0]<<16|w[3]>>>16,w[2],w[1]<<16|w[0]>>>16,w[3],w[2]<<16|w[1]>>>16],b=this._C=[w[2]<<16|w[2]>>>16,w[0]&4294901760|w[1]&65535,w[3]<<16|w[3]>>>16,w[1]&4294901760|w[2]&65535,w[0]<<16|w[0]>>>16,w[2]&4294901760|w[3]&65535,w[1]<<16|w[1]>>>16,w[3]&4294901760|w[0]&65535];this._b=0;for(var E=0;E<4;E++)v.call(this);for(var E=0;E<8;E++)b[E]^=T[E+4&7];if(S){var P=S.words,B=P[0],k=P[1],N=(B<<8|B>>>24)&16711935|(B<<24|B>>>8)&4278255360,I=(k<<8|k>>>24)&16711935|(k<<24|k>>>8)&4278255360,z=N>>>16|I&4294901760,j=I<<16|N&65535;b[0]^=N,b[1]^=z,b[2]^=I,b[3]^=j,b[4]^=N,b[5]^=z,b[6]^=I,b[7]^=j;for(var E=0;E<4;E++)v.call(this)}},_doProcessBlock:function(w,S){var T=this._X;v.call(this),h[0]=T[0]^T[5]>>>16^T[3]<<16,h[1]=T[2]^T[7]>>>16^T[5]<<16,h[2]=T[4]^T[1]>>>16^T[7]<<16,h[3]=T[6]^T[3]>>>16^T[1]<<16;for(var b=0;b<4;b++)h[b]=(h[b]<<8|h[b]>>>24)&16711935|(h[b]<<24|h[b]>>>8)&4278255360,w[S+b]^=h[b]},blockSize:128/32,ivSize:64/32});function v(){for(var w=this._X,S=this._C,T=0;T<8;T++)x[T]=S[T];S[0]=S[0]+1295307597+this._b|0,S[1]=S[1]+3545052371+(S[0]>>>0>>0?1:0)|0,S[2]=S[2]+886263092+(S[1]>>>0>>0?1:0)|0,S[3]=S[3]+1295307597+(S[2]>>>0>>0?1:0)|0,S[4]=S[4]+3545052371+(S[3]>>>0>>0?1:0)|0,S[5]=S[5]+886263092+(S[4]>>>0>>0?1:0)|0,S[6]=S[6]+1295307597+(S[5]>>>0>>0?1:0)|0,S[7]=S[7]+3545052371+(S[6]>>>0>>0?1:0)|0,this._b=S[7]>>>0>>0?1:0;for(var T=0;T<8;T++){var b=w[T]+S[T],E=b&65535,P=b>>>16,B=((E*E>>>17)+E*P>>>15)+P*P,k=((b&4294901760)*b|0)+((b&65535)*b|0);p[T]=B^k}w[0]=p[0]+(p[7]<<16|p[7]>>>16)+(p[6]<<16|p[6]>>>16)|0,w[1]=p[1]+(p[0]<<8|p[0]>>>24)+p[7]|0,w[2]=p[2]+(p[1]<<16|p[1]>>>16)+(p[0]<<16|p[0]>>>16)|0,w[3]=p[3]+(p[2]<<8|p[2]>>>24)+p[1]|0,w[4]=p[4]+(p[3]<<16|p[3]>>>16)+(p[2]<<16|p[2]>>>16)|0,w[5]=p[5]+(p[4]<<8|p[4]>>>24)+p[3]|0,w[6]=p[6]+(p[5]<<16|p[5]>>>16)+(p[4]<<16|p[4]>>>16)|0,w[7]=p[7]+(p[6]<<8|p[6]>>>24)+p[5]|0}l.RabbitLegacy=d._createHelper(y)})(),s.RabbitLegacy})})(gc)),gc.exports}var xc={exports:{}},QC=xc.exports,Im;function KC(){return Im||(Im=1,(function(r,a){(function(s,l,f){r.exports=l(ct(),Wo(),qo(),so(),dn())})(QC,function(s){return(function(){var l=s,f=l.lib,d=f.BlockCipher,m=l.algo;const h=16,x=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],p=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var y={pbox:[],sbox:[]};function v(E,P){let B=P>>24&255,k=P>>16&255,N=P>>8&255,I=P&255,z=E.sbox[0][B]+E.sbox[1][k];return z=z^E.sbox[2][N],z=z+E.sbox[3][I],z}function w(E,P,B){let k=P,N=B,I;for(let z=0;z1;--z)k=k^E.pbox[z],N=v(E,k)^N,I=k,k=N,N=I;return I=k,k=N,N=I,N=N^E.pbox[1],k=k^E.pbox[0],{left:k,right:N}}function T(E,P,B){for(let j=0;j<4;j++){E.sbox[j]=[];for(let H=0;H<256;H++)E.sbox[j][H]=p[j][H]}let k=0;for(let j=0;j=B&&(k=0);let N=0,I=0,z=0;for(let j=0;j=0&&(I=I.substring(0,z));const j=I.indexOf(": ");let H,$;if(j>0&&j<50){const U=I.substring(0,j);/[:\[\]]/.test(U)?$=I:(H=U,$=I.substring(j+2))}else $=I;return{success:!0,data:{timestamp:P,flags:B,sender:H,message:$}}}catch(h){return{success:!1,error:h instanceof Error?h.message:"Decryption failed"}}}static calculateChannelHash(f){const d=(0,r.SHA256)(r.enc.Hex.parse(f));return(0,a.hexToBytes)(d.toString(r.enc.Hex))[0].toString(16).padStart(2,"0")}}return ja.ChannelCrypto=s,ja}var jm;function dx(){if(jm)return za;jm=1,Object.defineProperty(za,"__esModule",{value:!0}),za.MeshCoreKeyStore=void 0;const r=w0();class a{constructor(l){this.nodeKeys=new Map,this.channelHashToKeys=new Map,l!=null&&l.channelSecrets&&this.addChannelSecrets(l.channelSecrets),l!=null&&l.nodeKeys&&Object.entries(l.nodeKeys).forEach(([f,d])=>{this.addNodeKey(f,d)})}addNodeKey(l,f){const d=l.toUpperCase();this.nodeKeys.set(d,f)}hasChannelKey(l){const f=l.toLowerCase();return this.channelHashToKeys.has(f)}hasNodeKey(l){const f=l.toUpperCase();return this.nodeKeys.has(f)}getChannelKeys(l){const f=l.toLowerCase();return this.channelHashToKeys.get(f)||[]}getNodeKey(l){const f=l.toUpperCase();return this.nodeKeys.get(f)}addChannelSecrets(l){for(const f of l){const d=r.ChannelCrypto.calculateChannelHash(f).toLowerCase();this.channelHashToKeys.has(d)||this.channelHashToKeys.set(d,[]),this.channelHashToKeys.get(d).push(f)}}}return za.MeshCoreKeyStore=a,za}var Ha={},Tr={};/*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) */const fx={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:kn,n:vc,Gx:Hm,Gy:Vm,a:If,d:Of}=fx,YC=8n,$r=32,rl=64,rr=(r="")=>{throw new Error(r)},XC=r=>typeof r=="bigint",hx=r=>typeof r=="string",JC=r=>r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array",Zo=(r,a)=>!JC(r)||typeof a=="number"&&a>0&&r.length!==a?rr("Uint8Array expected"):r,Kc=r=>new Uint8Array(r),C0=r=>Uint8Array.from(r),px=(r,a)=>r.toString(16).padStart(a,"0"),b0=r=>Array.from(Zo(r)).map(a=>px(a,2)).join(""),yi={_0:48,_9:57,A:65,F:70,a:97,f:102},Um=r=>{if(r>=yi._0&&r<=yi._9)return r-yi._0;if(r>=yi.A&&r<=yi.F)return r-(yi.A-10);if(r>=yi.a&&r<=yi.f)return r-(yi.a-10)},E0=r=>{const a="hex invalid";if(!hx(r))return rr(a);const s=r.length,l=s/2;if(s%2)return rr(a);const f=Kc(l);for(let d=0,m=0;dZo(hx(r)?E0(r):C0(Zo(r)),a),mx=()=>globalThis==null?void 0:globalThis.crypto,eb=()=>{var r;return((r=mx())==null?void 0:r.subtle)??rr("crypto.subtle must be defined")},il=(...r)=>{const a=Kc(r.reduce((l,f)=>l+Zo(f).length,0));let s=0;return r.forEach(l=>{a.set(l,s),s+=l.length}),a},Ax=(r=$r)=>mx().getRandomValues(Kc(r)),Bc=BigInt,jo=(r,a,s,l="bad number: out of range")=>XC(r)&&a<=r&&r{const s=r%a;return s>=0n?s:a+s},gx=r=>Le(r,vc),xx=(r,a)=>{(r===0n||a<=0n)&&rr("no inverse n="+r+" mod="+a);let s=Le(r,a),l=a,f=0n,d=1n;for(;s!==0n;){const m=l/s,h=l%s,x=f-d*m;l=s,s=h,f=d,d=x}return l===1n?Le(f,a):rr("no inverse")},tb=r=>{const a=R0[r];return typeof a!="function"&&rr("hashes."+r+" not set"),a},Zm=r=>r instanceof Rr?r:rr("Point expected"),Yf=2n**256n,Qr=class Qr{constructor(a,s,l,f){Fo(this,"ex");Fo(this,"ey");Fo(this,"ez");Fo(this,"et");const d=Yf;this.ex=jo(a,0n,d),this.ey=jo(s,0n,d),this.ez=jo(l,1n,d),this.et=jo(f,0n,d),Object.freeze(this)}static fromAffine(a){return new Qr(a.x,a.y,1n,Le(a.x*a.y))}static fromBytes(a,s=!1){const l=Of,f=C0(Zo(a,$r)),d=a[31];f[31]=d&-129;const m=k0(f);jo(m,0n,s?Yf:kn);const x=Le(m*m),p=Le(x-1n),y=Le(l*x+1n);let{isValid:v,value:w}=rb(p,y);v||rr("bad point: y not sqrt");const S=(w&1n)===1n,T=(d&128)!==0;return!s&&w===0n&&T&&rr("bad point: x==0, isLastByteOdd"),T!==S&&(w=Le(-w)),new Qr(w,m,1n,Le(w*m))}assertValidity(){const a=If,s=Of,l=this;if(l.is0())throw new Error("bad point: ZERO");const{ex:f,ey:d,ez:m,et:h}=l,x=Le(f*f),p=Le(d*d),y=Le(m*m),v=Le(y*y),w=Le(x*a),S=Le(y*Le(w+p)),T=Le(v+Le(s*Le(x*p)));if(S!==T)throw new Error("bad point: equation left != right (1)");const b=Le(f*d),E=Le(m*h);if(b!==E)throw new Error("bad point: equation left != right (2)");return this}equals(a){const{ex:s,ey:l,ez:f}=this,{ex:d,ey:m,ez:h}=Zm(a),x=Le(s*h),p=Le(d*f),y=Le(l*h),v=Le(m*f);return x===p&&y===v}is0(){return this.equals(Is)}negate(){return new Qr(Le(-this.ex),this.ey,this.ez,Le(-this.et))}double(){const{ex:a,ey:s,ez:l}=this,f=If,d=Le(a*a),m=Le(s*s),h=Le(2n*Le(l*l)),x=Le(f*d),p=a+s,y=Le(Le(p*p)-d-m),v=x+m,w=v-h,S=x-m,T=Le(y*w),b=Le(v*S),E=Le(y*S),P=Le(w*v);return new Qr(T,b,P,E)}add(a){const{ex:s,ey:l,ez:f,et:d}=this,{ex:m,ey:h,ez:x,et:p}=Zm(a),y=If,v=Of,w=Le(s*m),S=Le(l*h),T=Le(d*v*p),b=Le(f*x),E=Le((s+l)*(m+h)-w-S),P=Le(b-T),B=Le(b+T),k=Le(S-y*w),N=Le(E*P),I=Le(B*k),z=Le(E*k),j=Le(P*B);return new Qr(N,I,j,z)}multiply(a,s=!0){if(!s&&(a===0n||this.is0()))return Is;if(jo(a,1n,vc),a===1n)return this;if(this.equals(_i))return hb(a).p;let l=Is,f=_i;for(let d=this;a>0n;d=d.double(),a>>=1n)a&1n?l=l.add(d):s&&(f=f.add(d));return l}toAffine(){const{ex:a,ey:s,ez:l}=this;if(this.equals(Is))return{x:0n,y:1n};const f=xx(l,kn);return Le(l*f)!==1n&&rr("invalid inverse"),{x:Le(a*f),y:Le(s*f)}}toBytes(){const{x:a,y:s}=this.assertValidity().toAffine(),l=vx(s);return l[31]|=a&1n?128:0,l}toHex(){return b0(this.toBytes())}clearCofactor(){return this.multiply(Bc(YC),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let a=this.multiply(vc/2n,!1).double();return vc%2n&&(a=a.add(this)),a.is0()}static fromHex(a,s){return Qr.fromBytes(oo(a),s)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}toRawBytes(){return this.toBytes()}};Fo(Qr,"BASE"),Fo(Qr,"ZERO");let Rr=Qr;const _i=new Rr(Hm,Vm,1n,Le(Hm*Vm)),Is=new Rr(0n,1n,1n,0n);Rr.BASE=_i;Rr.ZERO=Is;const vx=r=>E0(px(jo(r,0n,Yf),rl)).reverse(),k0=r=>Bc("0x"+b0(C0(Zo(r)).reverse())),Gr=(r,a)=>{let s=r;for(;a-- >0n;)s*=s,s%=kn;return s},nb=r=>{const s=r*r%kn*r%kn,l=Gr(s,2n)*s%kn,f=Gr(l,1n)*r%kn,d=Gr(f,5n)*f%kn,m=Gr(d,10n)*d%kn,h=Gr(m,20n)*m%kn,x=Gr(h,40n)*h%kn,p=Gr(x,80n)*x%kn,y=Gr(p,80n)*x%kn,v=Gr(y,10n)*d%kn;return{pow_p_5_8:Gr(v,2n)*r%kn,b2:s}},Wm=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,rb=(r,a)=>{const s=Le(a*a*a),l=Le(s*s*a),f=nb(r*l).pow_p_5_8;let d=Le(r*s*f);const m=Le(a*d*d),h=d,x=Le(d*Wm),p=m===r,y=m===Le(-r),v=m===Le(-r*Wm);return p&&(d=h),(y||v)&&(d=x),(Le(d)&1n)===1n&&(d=Le(-d)),{isValid:p||y,value:d}},Pc=r=>gx(k0(r)),S0=(...r)=>R0.sha512Async(...r),B0=(...r)=>tb("sha512Sync")(...r),yx=r=>{const a=r.slice(0,$r);a[0]&=248,a[31]&=127,a[31]|=64;const s=r.slice($r,rl),l=Pc(a),f=_i.multiply(l),d=f.toBytes();return{head:a,prefix:s,scalar:l,point:f,pointBytes:d}},P0=r=>S0(oo(r,$r)).then(yx),T0=r=>yx(B0(oo(r,$r))),ib=r=>P0(r).then(a=>a.pointBytes),ob=r=>T0(r).pointBytes,_x=r=>S0(r.hashable).then(r.finish),wx=r=>r.finish(B0(r.hashable)),Cx=(r,a,s)=>{const{pointBytes:l,scalar:f}=r,d=Pc(a),m=_i.multiply(d).toBytes();return{hashable:il(m,l,s),finish:p=>{const y=gx(d+Pc(p)*f);return Zo(il(m,vx(y)),rl)}}},sb=async(r,a)=>{const s=oo(r),l=await P0(a),f=await S0(l.prefix,s);return _x(Cx(l,f,s))},ab=(r,a)=>{const s=oo(r),l=T0(a),f=B0(l.prefix,s);return wx(Cx(l,f,s))},D0={zip215:!0},bx=(r,a,s,l=D0)=>{r=oo(r,rl),a=oo(a),s=oo(s,$r);const{zip215:f}=l;let d,m,h,x,p=Uint8Array.of();try{d=Rr.fromHex(s,f),m=Rr.fromHex(r.slice(0,$r),f),h=k0(r.slice($r,rl)),x=_i.multiply(h,!1),p=il(m.toBytes(),d.toBytes(),a)}catch{}return{hashable:p,finish:v=>{if(x==null||!f&&d.isSmallOrder())return!1;const w=Pc(v);return m.add(d.multiply(w,!1)).add(x.negate()).clearCofactor().is0()}}},lb=async(r,a,s,l=D0)=>_x(bx(r,a,s,l)),ub=(r,a,s,l=D0)=>wx(bx(r,a,s,l)),R0={sha512Async:async(...r)=>{const a=eb(),s=il(...r);return Kc(await a.digest("SHA-512",s.buffer))},sha512Sync:void 0,bytesToHex:b0,hexToBytes:E0,concatBytes:il,mod:Le,invert:xx,randomBytes:Ax},cb={getExtendedPublicKeyAsync:P0,getExtendedPublicKey:T0,randomPrivateKey:()=>Ax($r),precompute:(r=8,a=_i)=>(a.multiply(3n),a)},Tc=8,db=256,Ex=Math.ceil(db/Tc)+1,Xf=2**(Tc-1),fb=()=>{const r=[];let a=_i,s=a;for(let l=0;l{const s=a.negate();return r?s:a},hb=r=>{const a=qm||(qm=fb());let s=Is,l=_i;const f=2**Tc,d=f,m=Bc(f-1),h=Bc(Tc);for(let x=0;x>=h,p>Xf&&(p-=d,r+=1n);const y=x*Xf,v=y,w=y+Math.abs(p)-1,S=x%2!==0,T=p<0;p===0?l=l.add(Gm(S,a[v])):s=s.add(Gm(T,a[w]))}return{p:s,f:l}},pb=Object.freeze(Object.defineProperty({__proto__:null,CURVE:fx,ExtendedPoint:Rr,Point:Rr,etc:R0,getPublicKey:ob,getPublicKeyAsync:ib,sign:ab,signAsync:sb,utils:cb,verify:ub,verifyAsync:lb},Symbol.toStringTag,{value:"Module"})),mb=yA(pb);var Io={},zf={exports:{}},Qm;function Ab(){return Qm||(Qm=1,(function(r,a){var s=(()=>{var f;var l=typeof document<"u"?(f=document.currentScript)==null?void 0:f.src:void 0;return(async function(d={}){var xn;var m,h=d,x=typeof window=="object",p=typeof WorkerGlobalScope<"u",y=typeof process=="object"&&((xn=process.versions)==null?void 0:xn.node)&&process.type!="renderer";typeof __filename<"u"?l=__filename:p&&(l=self.location.href);var v="";function w(pe){return h.locateFile?h.locateFile(pe,v):v+pe}var S,T;if(y){var b=Sc;v=__dirname+"/",T=pe=>{pe=k(pe)?new URL(pe):pe;var we=b.readFileSync(pe);return we},S=async(pe,we=!0)=>{pe=k(pe)?new URL(pe):pe;var te=b.readFileSync(pe,we?void 0:"utf8");return te},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2)}else if(x||p){try{v=new URL(".",l).href}catch{}p&&(T=pe=>{var we=new XMLHttpRequest;return we.open("GET",pe,!1),we.responseType="arraybuffer",we.send(null),new Uint8Array(we.response)}),S=async pe=>{if(k(pe))return new Promise((te,me)=>{var Ee=new XMLHttpRequest;Ee.open("GET",pe,!0),Ee.responseType="arraybuffer",Ee.onload=()=>{if(Ee.status==200||Ee.status==0&&Ee.response){te(Ee.response);return}me(Ee.status)},Ee.onerror=me,Ee.send(null)});var we=await fetch(pe,{credentials:"same-origin"});if(we.ok)return we.arrayBuffer();throw new Error(we.status+" : "+we.url)}}console.log.bind(console);var E=console.error.bind(console),P,B=!1,k=pe=>pe.startsWith("file://"),N,I,z,j,H,$=!1;function U(){var pe=z.buffer;h.HEAP8=j=new Int8Array(pe),h.HEAPU8=H=new Uint8Array(pe),h.HEAP32=new Int32Array(pe),h.HEAPU32=new Uint32Array(pe),new BigInt64Array(pe),new BigUint64Array(pe)}function G(){if(h.preRun)for(typeof h.preRun=="function"&&(h.preRun=[h.preRun]);h.preRun.length;)Et(h.preRun.shift());ke(Ye)}function re(){$=!0,St.b()}function V(){if(h.postRun)for(typeof h.postRun=="function"&&(h.postRun=[h.postRun]);h.postRun.length;)qe(h.postRun.shift());ke(Ae)}var J=0,le=null;function se(pe){var we;J++,(we=h.monitorRunDependencies)==null||we.call(h,J)}function de(pe){var te;if(J--,(te=h.monitorRunDependencies)==null||te.call(h,J),J==0&&le){var we=le;le=null,we()}}function q(pe){var te;(te=h.onAbort)==null||te.call(h,pe),pe="Aborted("+pe+")",E(pe),B=!0,pe+=". Build with -sASSERTIONS for more info.";var we=new WebAssembly.RuntimeError(pe);throw I==null||I(we),we}var ge;function ne(){return w("orlp-ed25519.wasm")}function D(pe){if(pe==ge&&P)return new Uint8Array(P);if(T)return T(pe);throw"both async and sync fetching of the wasm failed"}async function Z(pe){if(!P)try{var we=await S(pe);return new Uint8Array(we)}catch{}return D(pe)}async function K(pe,we){try{var te=await Z(pe),me=await WebAssembly.instantiate(te,we);return me}catch(Ee){E(`failed to asynchronously prepare wasm: ${Ee}`),q(Ee)}}async function X(pe,we,te){if(!pe&&typeof WebAssembly.instantiateStreaming=="function"&&!k(we)&&!y)try{var me=fetch(we,{credentials:"same-origin"}),Ee=await WebAssembly.instantiateStreaming(me,te);return Ee}catch(He){E(`wasm streaming compile failed: ${He}`),E("falling back to ArrayBuffer instantiation")}return K(we,te)}function fe(){return{a:Ut}}async function he(){function pe(He,ze){return St=He.exports,z=St.a,U(),Sn(St),de(),St}se();function we(He){return pe(He.instance)}var te=fe();if(h.instantiateWasm)return new Promise((He,ze)=>{h.instantiateWasm(te,(nt,hn)=>{He(pe(nt))})});ge??(ge=ne());var me=await X(P,ge,te),Ee=we(me);return Ee}var ke=pe=>{for(;pe.length>0;)pe.shift()(h)},Ae=[],qe=pe=>Ae.push(pe),Ye=[],Et=pe=>Ye.push(pe),ht=pe=>It(pe),Se=()=>fn(),Ve=pe=>{var we=h["_"+pe];return we},dt=(pe,we)=>{j.set(pe,we)},Mt=pe=>{for(var we=0,te=0;te=55296&&me<=57343?(we+=4,++te):we+=3}return we},vt=(pe,we,te,me)=>{if(!(me>0))return 0;for(var Ee=te,He=te+me-1,ze=0;ze=He)break;we[te++]=nt}else if(nt<=2047){if(te+1>=He)break;we[te++]=192|nt>>6,we[te++]=128|nt&63}else if(nt<=65535){if(te+2>=He)break;we[te++]=224|nt>>12,we[te++]=128|nt>>6&63,we[te++]=128|nt&63}else{if(te+3>=He)break;we[te++]=240|nt>>18,we[te++]=128|nt>>12&63,we[te++]=128|nt>>6&63,we[te++]=128|nt&63,ze++}}return we[te]=0,te-Ee},ot=(pe,we,te)=>vt(pe,H,we,te),Qe=pe=>Jt(pe),Xe=pe=>{var we=Mt(pe)+1,te=Qe(we);return ot(pe,te,we),te},et=typeof TextDecoder<"u"?new TextDecoder:void 0,Oe=(pe,we=0,te=NaN)=>{for(var me=we+te,Ee=we;pe[Ee]&&!(Ee>=me);)++Ee;if(Ee-we>16&&pe.buffer&&et)return et.decode(pe.subarray(we,Ee));for(var He="";we>10,56320|je&1023)}}return He},_t=(pe,we)=>pe?Oe(H,pe,we):"",$t=(pe,we,te,me,Ee)=>{var He={string:rt=>{var wt=0;return rt!=null&&rt!==0&&(wt=Xe(rt)),wt},array:rt=>{var wt=Qe(rt.length);return dt(rt,wt),wt}};function ze(rt){return we==="string"?_t(rt):we==="boolean"?!!rt:rt}var nt=Ve(pe),hn=[],je=0;if(me)for(var pt=0;pt{var Ee=!te||te.every(ze=>ze==="number"||ze==="boolean"),He=we!=="string";return He&&Ee&&!me?Ve(pe):(...ze)=>$t(pe,we,te,ze)};h.noExitRuntime&&h.noExitRuntime,h.print&&h.print,h.printErr&&(E=h.printErr),h.wasmBinary&&(P=h.wasmBinary),h.arguments&&h.arguments,h.thisProgram&&h.thisProgram,h.ccall=$t,h.cwrap=Un;var It,Jt,fn;function Sn(pe){h._orlp_derive_public_key=pe.c,h._orlp_validate_keypair=pe.d,h._orlp_sign=pe.e,h._orlp_verify=pe.f,It=pe.g,Jt=pe.h,fn=pe.i}var Ut={},St=await he();function Zt(){if(J>0){le=Zt;return}if(G(),J>0){le=Zt;return}function pe(){var we;h.calledRun=!0,!B&&(re(),N==null||N(h),(we=h.onRuntimeInitialized)==null||we.call(h),V())}h.setStatus?(h.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>h.setStatus(""),1),pe()},1)):pe()}function Zn(){if(h.preInit)for(typeof h.preInit=="function"&&(h.preInit=[h.preInit]);h.preInit.length>0;)h.preInit.shift()()}return Zn(),Zt(),$?m=h:m=new Promise((pe,we)=>{N=pe,I=we}),m})})();r.exports=s,r.exports.default=s})(zf)),zf.exports}var Km;function F0(){if(Km)return Io;Km=1,Object.defineProperty(Io,"__esModule",{value:!0}),Io.derivePublicKey=l,Io.validateKeyPair=f,Io.sign=d,Io.verify=m;const r=gn(),a=Ab();async function s(){return await a()}async function l(h){const x=await s(),p=(0,r.hexToBytes)(h);if(p.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${p.length}`);const y=1024,v=1088;if(x.HEAPU8.set(p,y),x.ccall("orlp_derive_public_key","number",["number","number"],[v,y])!==0)throw new Error("orlp key derivation failed: invalid private key");const S=new Uint8Array(32);return S.set(x.HEAPU8.subarray(v,v+32)),(0,r.bytesToHex)(S)}async function f(h,x){try{const p=await s(),y=(0,r.hexToBytes)(h),v=(0,r.hexToBytes)(x);if(y.length!==64||v.length!==32)return!1;const w=2048,S=2112;return p.HEAPU8.set(y,w),p.HEAPU8.set(v,S),p.ccall("orlp_validate_keypair","number",["number","number"],[S,w])===1}catch{return!1}}async function d(h,x,p){const y=await s(),v=(0,r.hexToBytes)(h),w=(0,r.hexToBytes)(x),S=(0,r.hexToBytes)(p);if(w.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${w.length}`);if(S.length!==32)throw new Error(`Invalid public key length: expected 32 bytes, got ${S.length}`);const T=1e5,b=2e5,E=3e5,P=4e5;y.HEAPU8.set(v,T),y.HEAPU8.set(w,b),y.HEAPU8.set(S,E),y.ccall("orlp_sign","void",["number","number","number","number","number"],[P,T,v.length,E,b]);const B=new Uint8Array(64);return B.set(y.HEAPU8.subarray(P,P+64)),(0,r.bytesToHex)(B)}async function m(h,x,p){try{const y=await s(),v=(0,r.hexToBytes)(h),w=(0,r.hexToBytes)(x),S=(0,r.hexToBytes)(p);if(v.length!==64||S.length!==32)return!1;const T=5e5,b=6e5,E=7e5;return y.HEAPU8.set(v,b),y.HEAPU8.set(w,T),y.HEAPU8.set(S,E),y.ccall("orlp_verify","number",["number","number","number","number"],[b,T,w.length,E])===1}catch{return!1}}return Io}var $m;function kx(){if($m)return Tr;$m=1;var r=Tr&&Tr.__createBinding||(Object.create?(function(p,y,v,w){w===void 0&&(w=v);var S=Object.getOwnPropertyDescriptor(y,v);(!S||("get"in S?!y.__esModule:S.writable||S.configurable))&&(S={enumerable:!0,get:function(){return y[v]}}),Object.defineProperty(p,w,S)}):(function(p,y,v,w){w===void 0&&(w=v),p[w]=y[v]})),a=Tr&&Tr.__setModuleDefault||(Object.create?(function(p,y){Object.defineProperty(p,"default",{enumerable:!0,value:y})}):function(p,y){p.default=y}),s=Tr&&Tr.__importStar||(function(){var p=function(y){return p=Object.getOwnPropertyNames||function(v){var w=[];for(var S in v)Object.prototype.hasOwnProperty.call(v,S)&&(w[w.length]=S);return w},p(y)};return function(y){if(y&&y.__esModule)return y;var v={};if(y!=null)for(var w=p(y),S=0;S>>24&255,S[T*4+1]=b>>>16&255,S[T*4+2]=b>>>8&255,S[T*4+3]=b&255}return S}catch{throw new Error("No SHA-512 implementation available for synchronous operation")}}l.etc.sha512Async=m;try{l.etc.sha512Sync=h}catch(p){console.debug("Could not set up synchronous SHA-512:",p)}class x{static async verifyAdvertisementSignature(y,v,w,S){try{const T=(0,f.hexToBytes)(y),b=(0,f.hexToBytes)(v),E=(0,f.hexToBytes)(S),P=this.constructAdvertSignedMessage(y,w,E);return await l.verify(b,P,T)}catch(T){return console.error("Ed25519 signature verification failed:",T),!1}}static constructAdvertSignedMessage(y,v,w){const S=(0,f.hexToBytes)(y),T=new Uint8Array(4);T[0]=v&255,T[1]=v>>8&255,T[2]=v>>16&255,T[3]=v>>24&255;const b=new Uint8Array(36+w.length);return b.set(S,0),b.set(T,32),b.set(w,36),b}static getSignedMessageDescription(y,v,w){return`Public Key: ${y} + Timestamp: ${v} (${new Date(v*1e3).toISOString()}) + App Data: ${w}`}static getSignedMessageHex(y,v,w){const S=(0,f.hexToBytes)(w),T=this.constructAdvertSignedMessage(y,v,S);return(0,f.bytesToHex)(T)}static async derivePublicKey(y){try{const v=(0,f.hexToBytes)(y);if(v.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${v.length}`);return await(0,d.derivePublicKey)(y)}catch(v){throw new Error(`Failed to derive public key: ${v instanceof Error?v.message:"Unknown error"}`)}}static derivePublicKeySync(y){try{const v=(0,f.hexToBytes)(y);throw v.length!==64?new Error(`Invalid private key length: expected 64 bytes, got ${v.length}`):new Error("Synchronous key derivation not supported with WASM. Use derivePublicKey() instead.")}catch(v){throw new Error(`Failed to derive public key: ${v instanceof Error?v.message:"Unknown error"}`)}}static async validateKeyPair(y,v){try{return await(0,d.validateKeyPair)(y,v)}catch{return!1}}}return Tr.Ed25519SignatureVerifier=x,Tr}var Ym;function gb(){if(Ym)return Ha;Ym=1,Object.defineProperty(Ha,"__esModule",{value:!0}),Ha.AdvertPayloadDecoder=void 0;const r=ir(),a=gn(),s=nl(),l=kx();class f{static decode(m,h){try{if(m.length<101){const P={type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!1,errors:["Advertisement payload too short"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:r.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}};return h!=null&&h.includeSegments&&(P.segments=[{name:"Invalid Advert Data",description:"Advert payload too short (minimum 101 bytes required)",startByte:h.segmentOffset||0,endByte:(h.segmentOffset||0)+m.length-1,value:(0,a.bytesToHex)(m)}]),P}const x=[],p=(h==null?void 0:h.segmentOffset)||0;let y=0;const v=(0,a.bytesToHex)(m.subarray(y,y+32));h!=null&&h.includeSegments&&x.push({name:"Public Key",description:"Ed25519 public key",startByte:p+y,endByte:p+y+31,value:v}),y+=32;const w=this.readUint32LE(m,y);if(h!=null&&h.includeSegments){const P=new Date(w*1e3);x.push({name:"Timestamp",description:`${w} (${P.toISOString().slice(0,19)}Z)`,startByte:p+y,endByte:p+y+3,value:(0,a.bytesToHex)(m.subarray(y,y+4))})}y+=4;const S=(0,a.bytesToHex)(m.subarray(y,y+64));h!=null&&h.includeSegments&&x.push({name:"Signature",description:"Ed25519 signature",startByte:p+y,endByte:p+y+63,value:S}),y+=64;const T=m[y];if(h!=null&&h.includeSegments){const P=T.toString(2).padStart(8,"0"),B=this.parseDeviceRole(T),N=` | Bits 0-3 (Role): ${(0,s.getDeviceRoleName)(B)} | Bit 4 (Location): ${T&r.AdvertFlags.HasLocation?"Yes":"No"} | Bit 7 (Name): ${T&r.AdvertFlags.HasName?"Yes":"No"}`;x.push({name:"App Flags",description:`Binary: ${P}${N}`,startByte:p+y,endByte:p+y,value:T.toString(16).padStart(2,"0").toUpperCase()})}y+=1;const b={type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!0,publicKey:v,timestamp:w,signature:S,appData:{flags:T,deviceRole:this.parseDeviceRole(T),hasLocation:!!(T&r.AdvertFlags.HasLocation),hasName:!!(T&r.AdvertFlags.HasName)}};let E=y;if(T&r.AdvertFlags.HasLocation&&m.length>=E+8){const P=this.readInt32LE(m,E)/1e6,B=this.readInt32LE(m,E+4)/1e6;b.appData.location={latitude:Math.round(P*1e6)/1e6,longitude:Math.round(B*1e6)/1e6},h!=null&&h.includeSegments&&(x.push({name:"Latitude",description:`${P}° (${P})`,startByte:p+E,endByte:p+E+3,value:(0,a.bytesToHex)(m.subarray(E,E+4))}),x.push({name:"Longitude",description:`${B}° (${B})`,startByte:p+E+4,endByte:p+E+7,value:(0,a.bytesToHex)(m.subarray(E+4,E+8))})),E+=8}if(T&r.AdvertFlags.HasFeature1&&(E+=2),T&r.AdvertFlags.HasFeature2&&(E+=2),T&r.AdvertFlags.HasName&&m.length>E){const P=m.subarray(E),B=new TextDecoder("utf-8").decode(P).replace(/\0.*$/,"");b.appData.name=this.sanitizeControlCharacters(B)||B,h!=null&&h.includeSegments&&x.push({name:"Node Name",description:`Node name: "${b.appData.name}"`,startByte:p+E,endByte:p+m.length-1,value:(0,a.bytesToHex)(P)})}return h!=null&&h.includeSegments&&(b.segments=x),b}catch(x){return{type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!1,errors:[x instanceof Error?x.message:"Failed to decode advertisement payload"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:r.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}}}}static async decodeWithVerification(m,h){const x=this.decode(m,h);if(!x||!x.isValid)return x;try{const y=m.subarray(100),v=(0,a.bytesToHex)(y),w=await l.Ed25519SignatureVerifier.verifyAdvertisementSignature(x.publicKey,x.signature,x.timestamp,v);x.signatureValid=w,w||(x.signatureError="Ed25519 signature verification failed",x.isValid=!1,x.errors||(x.errors=[]),x.errors.push("Invalid Ed25519 signature"))}catch(p){x.signatureValid=!1,x.signatureError=p instanceof Error?p.message:"Signature verification error",x.isValid=!1,x.errors||(x.errors=[]),x.errors.push("Signature verification failed: "+(p instanceof Error?p.message:"Unknown error"))}return x}static parseDeviceRole(m){switch(m&15){case 1:return r.DeviceRole.ChatNode;case 2:return r.DeviceRole.Repeater;case 3:return r.DeviceRole.RoomServer;case 4:return r.DeviceRole.Sensor;default:return r.DeviceRole.ChatNode}}static readUint32LE(m,h){return m[h]|m[h+1]<<8|m[h+2]<<16|m[h+3]<<24}static readInt32LE(m,h){const x=this.readUint32LE(m,h);return x>2147483647?x-4294967296:x}static sanitizeControlCharacters(m){return m&&m.trim().replace(/[\x00-\x1F\x7F]/g,"")||null}}return Ha.AdvertPayloadDecoder=f,Ha}var Va={},Xm;function xb(){if(Xm)return Va;Xm=1,Object.defineProperty(Va,"__esModule",{value:!0}),Va.TracePayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d,m){try{if(f.length<9){const B={type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!1,errors:["Trace payload too short (need at least tag(4) + auth(4) + flags(1))"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]};return m!=null&&m.includeSegments&&(B.segments=[{name:"Invalid Trace Data",description:"Trace payload too short (minimum 9 bytes required)",startByte:m.segmentOffset||0,endByte:(m.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),B}let h=0;const x=[],p=(m==null?void 0:m.segmentOffset)||0,y=this.readUint32LE(f,h),v=(0,a.numberToHex)(y,8);m!=null&&m.includeSegments&&x.push({name:"Trace Tag",description:`Unique identifier for this trace: 0x${y.toString(16).padStart(8,"0")}`,startByte:p+h,endByte:p+h+3,value:(0,a.bytesToHex)(f.slice(h,h+4))}),h+=4;const w=this.readUint32LE(f,h);m!=null&&m.includeSegments&&x.push({name:"Auth Code",description:`Authentication/verification code: ${w}`,startByte:p+h,endByte:p+h+3,value:(0,a.bytesToHex)(f.slice(h,h+4))}),h+=4;const S=f[h];m!=null&&m.includeSegments&&x.push({name:"Flags",description:`Application-defined control flags: 0x${S.toString(16).padStart(2,"0")} (${S.toString(2).padStart(8,"0")}b)`,startByte:p+h,endByte:p+h,value:S.toString(16).padStart(2,"0").toUpperCase()}),h+=1;const T=[],b=h;for(;h0){const B=T.join(" ");x.push({name:"Path Hashes",description:`Node hashes in trace path: ${B}`,startByte:p+b,endByte:p+f.length-1,value:(0,a.bytesToHex)(f.slice(b))})}let E;d&&d.length>0&&(E=d.map(B=>{const k=parseInt(B,16);return(k>127?k-256:k)/4}));const P={type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!0,traceTag:v,authCode:w,flags:S,pathHashes:T,snrValues:E};return m!=null&&m.includeSegments&&(P.segments=x),P}catch(h){return{type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!1,errors:[h instanceof Error?h.message:"Failed to decode trace payload"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]}}}static readUint32LE(f,d){return f[d]|f[d+1]<<8|f[d+2]<<16|f[d+3]<<24}}return Va.TracePayloadDecoder=s,Va}var Ua={},Jm;function vb(){if(Jm)return Ua;Jm=1,Object.defineProperty(Ua,"__esModule",{value:!0}),Ua.GroupTextPayloadDecoder=void 0;const r=ir(),a=w0(),s=gn();class l{static decode(d,m){try{if(d.length<3){const T={type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!1,errors:["GroupText payload too short (need at least channel_hash(1) + MAC(2))"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return m!=null&&m.includeSegments&&(T.segments=[{name:"Invalid GroupText Data",description:"GroupText payload too short (minimum 3 bytes required)",startByte:m.segmentOffset||0,endByte:(m.segmentOffset||0)+d.length-1,value:(0,s.bytesToHex)(d)}]),T}const h=[],x=(m==null?void 0:m.segmentOffset)||0;let p=0;const y=(0,s.byteToHex)(d[p]);m!=null&&m.includeSegments&&h.push({name:"Channel Hash",description:"First byte of SHA256 of channel's shared key",startByte:x+p,endByte:x+p,value:y}),p+=1;const v=(0,s.bytesToHex)(d.subarray(p,p+2));m!=null&&m.includeSegments&&h.push({name:"Cipher MAC",description:"MAC for encrypted data",startByte:x+p,endByte:x+p+1,value:v}),p+=2;const w=(0,s.bytesToHex)(d.subarray(p));m!=null&&m.includeSegments&&d.length>p&&h.push({name:"Ciphertext",description:"Encrypted message content (timestamp + flags + message)",startByte:x+p,endByte:x+d.length-1,value:w});const S={type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!0,channelHash:y,cipherMac:v,ciphertext:w,ciphertextLength:d.length-3};if(m!=null&&m.keyStore&&m.keyStore.hasChannelKey(y)){const T=m.keyStore.getChannelKeys(y);for(const b of T){const E=a.ChannelCrypto.decryptGroupTextMessage(w,v,b);if(E.success&&E.data){S.decrypted={timestamp:E.data.timestamp,flags:E.data.flags,sender:E.data.sender,message:E.data.message};break}}}return m!=null&&m.includeSegments&&(S.segments=h),S}catch(h){return{type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!1,errors:[h instanceof Error?h.message:"Failed to decode GroupText payload"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Ua.GroupTextPayloadDecoder=l,Ua}var Za={},eA;function yb(){if(eA)return Za;eA=1,Object.defineProperty(Za,"__esModule",{value:!0}),Za.RequestPayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d){try{if(f.length<4){const T={type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!1,errors:["Request payload too short (minimum 4 bytes: dest hash + source hash + MAC)"],timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:""};return d!=null&&d.includeSegments&&(T.segments=[{name:"Invalid Request Data",description:"Request payload too short (minimum 4 bytes required: 1 for dest hash + 1 for source hash + 2 for MAC)",startByte:d.segmentOffset||0,endByte:(d.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),T}const m=[],h=(d==null?void 0:d.segmentOffset)||0;let x=0;const p=(0,a.bytesToHex)(f.subarray(x,x+1));d!=null&&d.includeSegments&&m.push({name:"Destination Hash",description:`First byte of destination node public key: 0x${p}`,startByte:h+x,endByte:h+x,value:p}),x+=1;const y=(0,a.bytesToHex)(f.subarray(x,x+1));d!=null&&d.includeSegments&&m.push({name:"Source Hash",description:`First byte of source node public key: 0x${y}`,startByte:h+x,endByte:h+x,value:y}),x+=1;const v=(0,a.bytesToHex)(f.subarray(x,x+2));d!=null&&d.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data verification (2 bytes)",startByte:h+x,endByte:h+x+1,value:v}),x+=2;const w=(0,a.bytesToHex)(f.subarray(x));d!=null&&d.includeSegments&&f.length>x&&m.push({name:"Ciphertext",description:`Encrypted message data (${f.length-x} bytes). Contains encrypted plaintext with this structure: • Timestamp (4 bytes) - send time as unix timestamp • Request Type (1 byte) - type of request (GetStats, GetTelemetryData, etc.) -• Request Data (remaining bytes) - additional request-specific data`,startByte:h+x,endByte:h+f.length-1,value:w});const S={type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!0,timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:p,sourceHash:y,cipherMac:v,ciphertext:w};return d!=null&&d.includeSegments&&(S.segments=m),S}catch(m){return{type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode request payload"],timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:""}}}}return Za.RequestPayloadDecoder=s,Za}var Wa={},Jm;function vC(){if(Jm)return Wa;Jm=1,Object.defineProperty(Wa,"__esModule",{value:!0}),Wa.ResponsePayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d){try{if(f.length<4){const T={type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!1,errors:["Response payload too short (minimum 4 bytes: dest + source + MAC)"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return d!=null&&d.includeSegments&&(T.segments=[{name:"Invalid Response Data",description:"Response payload too short (minimum 4 bytes required)",startByte:d.segmentOffset||0,endByte:(d.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),T}const m=[],h=(d==null?void 0:d.segmentOffset)||0;let x=0;const p=(0,a.byteToHex)(f[x]);d!=null&&d.includeSegments&&m.push({name:"Destination Hash",description:"First byte of destination node public key",startByte:h+x,endByte:h+x,value:p}),x+=1;const y=(0,a.byteToHex)(f[x]);d!=null&&d.includeSegments&&m.push({name:"Source Hash",description:"First byte of source node public key",startByte:h+x,endByte:h+x,value:y}),x+=1;const v=(0,a.bytesToHex)(f.subarray(x,x+2));d!=null&&d.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data in next field",startByte:h+x,endByte:h+x+1,value:v}),x+=2;const w=(0,a.bytesToHex)(f.subarray(x));d!=null&&d.includeSegments&&f.length>x&&m.push({name:"Ciphertext",description:"Encrypted response data (tag + content)",startByte:h+x,endByte:h+f.length-1,value:w});const S={type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:p,sourceHash:y,cipherMac:v,ciphertext:w,ciphertextLength:f.length-4};return d!=null&&d.includeSegments&&(S.segments=m),S}catch(m){return{type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode response payload"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Wa.ResponsePayloadDecoder=s,Wa}var qa={},eA;function yC(){if(eA)return qa;eA=1,Object.defineProperty(qa,"__esModule",{value:!0}),qa.AnonRequestPayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d){try{if(f.length<35){const T={type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!1,errors:["AnonRequest payload too short (minimum 35 bytes: dest + public key + MAC)"],destinationHash:"",senderPublicKey:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return d!=null&&d.includeSegments&&(T.segments=[{name:"Invalid AnonRequest Data",description:"AnonRequest payload too short (minimum 35 bytes required: 1 for dest hash + 32 for public key + 2 for MAC)",startByte:d.segmentOffset||0,endByte:(d.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),T}const m=[],h=(d==null?void 0:d.segmentOffset)||0;let x=0;const p=(0,a.byteToHex)(f[0]);d!=null&&d.includeSegments&&m.push({name:"Destination Hash",description:`First byte of destination node public key: 0x${p}`,startByte:h+x,endByte:h+x,value:p}),x+=1;const y=(0,a.bytesToHex)(f.subarray(1,33));d!=null&&d.includeSegments&&m.push({name:"Sender Public Key",description:"Ed25519 public key of the sender (32 bytes)",startByte:h+x,endByte:h+x+31,value:y}),x+=32;const v=(0,a.bytesToHex)(f.subarray(33,35));d!=null&&d.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data verification (2 bytes)",startByte:h+x,endByte:h+x+1,value:v}),x+=2;const w=(0,a.bytesToHex)(f.subarray(35));d!=null&&d.includeSegments&&f.length>35&&m.push({name:"Ciphertext",description:`Encrypted message data (${f.length-35} bytes). Contains encrypted plaintext with this structure: +• Request Data (remaining bytes) - additional request-specific data`,startByte:h+x,endByte:h+f.length-1,value:w});const S={type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!0,timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:p,sourceHash:y,cipherMac:v,ciphertext:w};return d!=null&&d.includeSegments&&(S.segments=m),S}catch(m){return{type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode request payload"],timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:""}}}}return Za.RequestPayloadDecoder=s,Za}var Wa={},tA;function _b(){if(tA)return Wa;tA=1,Object.defineProperty(Wa,"__esModule",{value:!0}),Wa.ResponsePayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d){try{if(f.length<4){const T={type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!1,errors:["Response payload too short (minimum 4 bytes: dest + source + MAC)"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return d!=null&&d.includeSegments&&(T.segments=[{name:"Invalid Response Data",description:"Response payload too short (minimum 4 bytes required)",startByte:d.segmentOffset||0,endByte:(d.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),T}const m=[],h=(d==null?void 0:d.segmentOffset)||0;let x=0;const p=(0,a.byteToHex)(f[x]);d!=null&&d.includeSegments&&m.push({name:"Destination Hash",description:"First byte of destination node public key",startByte:h+x,endByte:h+x,value:p}),x+=1;const y=(0,a.byteToHex)(f[x]);d!=null&&d.includeSegments&&m.push({name:"Source Hash",description:"First byte of source node public key",startByte:h+x,endByte:h+x,value:y}),x+=1;const v=(0,a.bytesToHex)(f.subarray(x,x+2));d!=null&&d.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data in next field",startByte:h+x,endByte:h+x+1,value:v}),x+=2;const w=(0,a.bytesToHex)(f.subarray(x));d!=null&&d.includeSegments&&f.length>x&&m.push({name:"Ciphertext",description:"Encrypted response data (tag + content)",startByte:h+x,endByte:h+f.length-1,value:w});const S={type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:p,sourceHash:y,cipherMac:v,ciphertext:w,ciphertextLength:f.length-4};return d!=null&&d.includeSegments&&(S.segments=m),S}catch(m){return{type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode response payload"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Wa.ResponsePayloadDecoder=s,Wa}var qa={},nA;function wb(){if(nA)return qa;nA=1,Object.defineProperty(qa,"__esModule",{value:!0}),qa.AnonRequestPayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d){try{if(f.length<35){const T={type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!1,errors:["AnonRequest payload too short (minimum 35 bytes: dest + public key + MAC)"],destinationHash:"",senderPublicKey:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return d!=null&&d.includeSegments&&(T.segments=[{name:"Invalid AnonRequest Data",description:"AnonRequest payload too short (minimum 35 bytes required: 1 for dest hash + 32 for public key + 2 for MAC)",startByte:d.segmentOffset||0,endByte:(d.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),T}const m=[],h=(d==null?void 0:d.segmentOffset)||0;let x=0;const p=(0,a.byteToHex)(f[0]);d!=null&&d.includeSegments&&m.push({name:"Destination Hash",description:`First byte of destination node public key: 0x${p}`,startByte:h+x,endByte:h+x,value:p}),x+=1;const y=(0,a.bytesToHex)(f.subarray(1,33));d!=null&&d.includeSegments&&m.push({name:"Sender Public Key",description:"Ed25519 public key of the sender (32 bytes)",startByte:h+x,endByte:h+x+31,value:y}),x+=32;const v=(0,a.bytesToHex)(f.subarray(33,35));d!=null&&d.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data verification (2 bytes)",startByte:h+x,endByte:h+x+1,value:v}),x+=2;const w=(0,a.bytesToHex)(f.subarray(35));d!=null&&d.includeSegments&&f.length>35&&m.push({name:"Ciphertext",description:`Encrypted message data (${f.length-35} bytes). Contains encrypted plaintext with this structure: • Timestamp (4 bytes) - send time as unix timestamp • Sync Timestamp (4 bytes) - room server only, sender's "sync messages SINCE x" timestamp -• Password (remaining bytes) - password for repeater/room`,startByte:h+x,endByte:h+f.length-1,value:w});const S={type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:p,senderPublicKey:y,cipherMac:v,ciphertext:w,ciphertextLength:f.length-35};return d!=null&&d.includeSegments&&(S.segments=m),S}catch(m){return{type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode AnonRequest payload"],destinationHash:"",senderPublicKey:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return qa.AnonRequestPayloadDecoder=s,qa}var Ga={},tA;function _C(){if(tA)return Ga;tA=1,Object.defineProperty(Ga,"__esModule",{value:!0}),Ga.AckPayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d){try{if(f.length<4){const y={type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!1,errors:["Ack payload too short (minimum 4 bytes for checksum)"],checksum:""};return d!=null&&d.includeSegments&&(y.segments=[{name:"Invalid Ack Data",description:"Ack payload too short (minimum 4 bytes required for checksum)",startByte:d.segmentOffset||0,endByte:(d.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),y}const m=[],h=(d==null?void 0:d.segmentOffset)||0,x=(0,a.bytesToHex)(f.subarray(0,4));d!=null&&d.includeSegments&&m.push({name:"Checksum",description:`CRC checksum of message timestamp, text, and sender pubkey: 0x${x}`,startByte:h,endByte:h+3,value:x}),d!=null&&d.includeSegments&&f.length>4&&m.push({name:"Additional Data",description:"Extra data in Ack payload",startByte:h+4,endByte:h+f.length-1,value:(0,a.bytesToHex)(f.subarray(4))});const p={type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!0,checksum:x};return d!=null&&d.includeSegments&&(p.segments=m),p}catch(m){return{type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode Ack payload"],checksum:""}}}}return Ga.AckPayloadDecoder=s,Ga}var Qa={},nA;function wC(){if(nA)return Qa;nA=1,Object.defineProperty(Qa,"__esModule",{value:!0}),Qa.PathPayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f){try{if(f.length<2)return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:["Path payload too short (minimum 2 bytes: path length + extra type)"],pathLength:0,pathHashes:[],extraType:0,extraData:""};const d=f[0];if(f.length<1+d+1)return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:[`Path payload too short (need ${1+d+1} bytes for path length + path + extra type)`],pathLength:d,pathHashes:[],extraType:0,extraData:""};const m=[];for(let p=0;p1+d+1&&(x=(0,a.bytesToHex)(f.subarray(1+d+1))),{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!0,pathLength:d,pathHashes:m,extraType:h,extraData:x}}catch(d){return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:[d instanceof Error?d.message:"Failed to decode Path payload"],pathLength:0,pathHashes:[],extraType:0,extraData:""}}}}return Qa.PathPayloadDecoder=s,Qa}var Ka={},rA;function bC(){if(rA)return Ka;rA=1,Object.defineProperty(Ka,"__esModule",{value:!0}),Ka.TextMessagePayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d){try{if(f.length<4){const T={type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!1,errors:["TextMessage payload too short (minimum 4 bytes: dest + source + MAC)"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return d!=null&&d.includeSegments&&(T.segments=[{name:"Invalid TextMessage Data",description:"TextMessage payload too short (minimum 4 bytes required)",startByte:d.segmentOffset||0,endByte:(d.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),T}const m=[],h=(d==null?void 0:d.segmentOffset)||0;let x=0;const p=(0,a.byteToHex)(f[x]);d!=null&&d.includeSegments&&m.push({name:"Destination Hash",description:"First byte of destination node public key",startByte:h+x,endByte:h+x,value:p}),x+=1;const y=(0,a.byteToHex)(f[x]);d!=null&&d.includeSegments&&m.push({name:"Source Hash",description:"First byte of source node public key",startByte:h+x,endByte:h+x,value:y}),x+=1;const v=(0,a.bytesToHex)(f.subarray(x,x+2));d!=null&&d.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data in next field",startByte:h+x,endByte:h+x+1,value:v}),x+=2;const w=(0,a.bytesToHex)(f.subarray(x));d!=null&&d.includeSegments&&f.length>x&&m.push({name:"Ciphertext",description:"Encrypted message data (timestamp + message text)",startByte:h+x,endByte:h+f.length-1,value:w});const S={type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:p,sourceHash:y,cipherMac:v,ciphertext:w,ciphertextLength:f.length-4};return d!=null&&d.includeSegments&&(S.segments=m),S}catch(m){return{type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode TextMessage payload"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Ka.TextMessagePayloadDecoder=s,Ka}var $a={},iA;function CC(){if(iA)return $a;iA=1,Object.defineProperty($a,"__esModule",{value:!0}),$a.ControlPayloadDecoder=void 0;const r=ir(),a=gn(),s=nl();class l{static decode(d,m){try{if(d.length<1)return this.createErrorPayload("Control payload too short (minimum 1 byte required)",d,m);const x=d[0]&240;switch(x){case r.ControlSubType.NodeDiscoverReq:return this.decodeDiscoverReq(d,m);case r.ControlSubType.NodeDiscoverResp:return this.decodeDiscoverResp(d,m);default:return this.createErrorPayload(`Unknown control sub-type: 0x${x.toString(16).padStart(2,"0")}`,d,m)}}catch(h){return this.createErrorPayload(h instanceof Error?h.message:"Failed to decode control payload",d,m)}}static decodeDiscoverReq(d,m){const h=[],x=(m==null?void 0:m.segmentOffset)??0;if(d.length<6){const P={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_REQ payload too short (minimum 6 bytes required)"],subType:r.ControlSubType.NodeDiscoverReq,rawFlags:d[0],prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return m!=null&&m.includeSegments&&(P.segments=[{name:"Invalid DISCOVER_REQ Data",description:"DISCOVER_REQ payload too short (minimum 6 bytes required)",startByte:x,endByte:x+d.length-1,value:(0,a.bytesToHex)(d)}]),P}let p=0;const y=d[p],v=(y&1)!==0;m!=null&&m.includeSegments&&h.push({name:"Flags",description:`Sub-type: DISCOVER_REQ (0x8) | Prefix Only: ${v}`,startByte:x+p,endByte:x+p,value:y.toString(16).padStart(2,"0").toUpperCase()}),p+=1;const w=d[p],S=this.parseTypeFilter(w);m!=null&&m.includeSegments&&h.push({name:"Type Filter",description:`Filter mask: 0b${w.toString(2).padStart(8,"0")} | Types: ${S.length>0?S.join(", "):"None"}`,startByte:x+p,endByte:x+p,value:w.toString(16).padStart(2,"0").toUpperCase()}),p+=1;const T=this.readUint32LE(d,p);m!=null&&m.includeSegments&&h.push({name:"Tag",description:`Random tag for response matching: 0x${T.toString(16).padStart(8,"0")}`,startByte:x+p,endByte:x+p+3,value:(0,a.bytesToHex)(d.slice(p,p+4))}),p+=4;let C=0;if(d.length>=p+4&&(C=this.readUint32LE(d,p),m!=null&&m.includeSegments)){const P=C>0?new Date(C*1e3).toISOString().slice(0,19)+"Z":"N/A";h.push({name:"Since",description:`Filter timestamp: ${C} (${P})`,startByte:x+p,endByte:x+p+3,value:(0,a.bytesToHex)(d.slice(p,p+4))})}const E={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!0,subType:r.ControlSubType.NodeDiscoverReq,rawFlags:y,prefixOnly:v,typeFilter:w,typeFilterNames:S,tag:T,since:C};return m!=null&&m.includeSegments&&(E.segments=h),E}static decodeDiscoverResp(d,m){const h=[],x=(m==null?void 0:m.segmentOffset)??0;if(d.length<14){const z={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_RESP payload too short (minimum 14 bytes required)"],subType:r.ControlSubType.NodeDiscoverResp,rawFlags:d.length>0?d[0]:0,nodeType:r.DeviceRole.Unknown,nodeTypeName:"Unknown",snr:0,tag:0,publicKey:"",publicKeyLength:0};return m!=null&&m.includeSegments&&(z.segments=[{name:"Invalid DISCOVER_RESP Data",description:"DISCOVER_RESP payload too short (minimum 14 bytes required)",startByte:x,endByte:x+d.length-1,value:(0,a.bytesToHex)(d)}]),z}let p=0;const y=d[p],v=y&15,w=(0,s.getDeviceRoleName)(v);m!=null&&m.includeSegments&&h.push({name:"Flags",description:`Sub-type: DISCOVER_RESP (0x9) | Node Type: ${w}`,startByte:x+p,endByte:x+p,value:y.toString(16).padStart(2,"0").toUpperCase()}),p+=1;const S=d[p],T=S>127?S-256:S,C=T/4;m!=null&&m.includeSegments&&h.push({name:"SNR",description:`Inbound SNR: ${C.toFixed(2)} dB (raw: ${S}, signed: ${T})`,startByte:x+p,endByte:x+p,value:S.toString(16).padStart(2,"0").toUpperCase()}),p+=1;const E=this.readUint32LE(d,p);m!=null&&m.includeSegments&&h.push({name:"Tag",description:`Reflected tag from request: 0x${E.toString(16).padStart(8,"0")}`,startByte:x+p,endByte:x+p+3,value:(0,a.bytesToHex)(d.slice(p,p+4))}),p+=4;const B=d.length-p,k=d.slice(p,p+B),N=(0,a.bytesToHex)(k);if(m!=null&&m.includeSegments){const z=B===32?"Full Public Key":"Public Key Prefix";h.push({name:z,description:`${z} (${B} bytes)`,startByte:x+p,endByte:x+p+B-1,value:N})}const I={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!0,subType:r.ControlSubType.NodeDiscoverResp,rawFlags:y,nodeType:v,nodeTypeName:w,snr:C,tag:E,publicKey:N,publicKeyLength:B};return m!=null&&m.includeSegments&&(I.segments=h),I}static parseTypeFilter(d){const m=[];return d&1<0?m[0]:0,prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return h!=null&&h.includeSegments&&(x.segments=[{name:"Invalid Control Data",description:d,startByte:h.segmentOffset??0,endByte:(h.segmentOffset??0)+m.length-1,value:(0,a.bytesToHex)(m)}]),x}static readUint32LE(d,m){return(d[m]|d[m+1]<<8|d[m+2]<<16|d[m+3]<<24)>>>0}}return $a.ControlPayloadDecoder=l,$a}var oA;function sA(){if(oA)return Oa;oA=1,Object.defineProperty(Oa,"__esModule",{value:!0}),Oa.MeshCorePacketDecoder=void 0;const r=ir(),a=gn(),s=nl(),l=ux(),f=mC(),d=AC(),m=gC(),h=xC(),x=vC(),p=yC(),y=_C(),v=wC(),w=bC(),S=CC();class T{static decode(E,P){return this.parseInternal(E,!1,P).packet}static async decodeWithVerification(E,P){return(await this.parseInternalAsync(E,!1,P)).packet}static analyzeStructure(E,P){return this.parseInternal(E,!0,P).structure}static async analyzeStructureWithVerification(E,P){return(await this.parseInternalAsync(E,!0,P)).structure}static parseInternal(E,P,B){const k=(0,a.hexToBytes)(E),N=[];if(k.length<2){const I={messageHash:"",routeType:r.RouteType.Flood,payloadType:r.PayloadType.RawCustom,payloadVersion:r.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:k.length,isValid:!1,errors:["Packet too short (minimum 2 bytes required)"]},z={segments:[],totalBytes:k.length,rawHex:E.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:I,structure:z}}try{let I=0;const z=k[0],j=z&3,H=z>>2&15,$=z>>6&3;P&&N.push({name:"Header",description:"Header byte breakdown",startByte:0,endByte:0,value:`0x${z.toString(16).padStart(2,"0")}`,headerBreakdown:{fullBinary:z.toString(2).padStart(8,"0"),fields:[{bits:"0-1",field:"Route Type",value:(0,s.getRouteTypeName)(j),binary:(z&3).toString(2).padStart(2,"0")},{bits:"2-5",field:"Payload Type",value:(0,s.getPayloadTypeName)(H),binary:(z>>2&15).toString(2).padStart(4,"0")},{bits:"6-7",field:"Version",value:$.toString(),binary:(z>>6&3).toString(2).padStart(2,"0")}]}}),I=1;let U;if(j===r.RouteType.TransportFlood||j===r.RouteType.TransportDirect){if(k.length0?Array.from(re).map(a.byteToHex):null;if(P&&G>0)if(H===r.PayloadType.Trace){const D=[];for(let Z=0;Z127?K-256:K)/4;D.push(`${fe.toFixed(2)}dB (0x${K.toString(16).padStart(2,"0")})`)}N.push({name:"Path SNR Data",description:`SNR values collected during trace: ${D.join(", ")}`,startByte:I,endByte:I+G-1,value:(0,a.bytesToHex)(k.slice(I,I+G))})}else{let D="Routing path information";j===r.RouteType.Direct||j===r.RouteType.TransportDirect?D="Routing instructions (bytes are stripped at each hop as packet travels to destination)":(j===r.RouteType.Flood||j===r.RouteType.TransportFlood)&&(D="Historical route taken (bytes are added as packet floods through network)"),N.push({name:"Path Data",description:D,startByte:I,endByte:I+G-1,value:(0,a.bytesToHex)(k.slice(I,I+G))})}I+=G;const J=k.subarray(I),le=(0,a.bytesToHex)(J);P&&k.length>I&&N.push({name:"Payload",description:`${(0,s.getPayloadTypeName)(H)} payload data`,startByte:I,endByte:k.length-1,value:(0,a.bytesToHex)(k.slice(I))});let se=null;const de=[];if(H===r.PayloadType.Advert){const D=f.AdvertPayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Trace){const D=d.TracePayloadDecoder.decode(J,V,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.GroupText){const D=m.GroupTextPayloadDecoder.decode(J,{...B,includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Request){const D=h.RequestPayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Response){const D=x.ResponsePayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.AnonRequest){const D=p.AnonRequestPayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Ack){const D=y.AckPayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Path)se=v.PathPayloadDecoder.decode(J);else if(H===r.PayloadType.TextMessage){const D=w.TextMessagePayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Control){const D=S.ControlPayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}P&&de.length===0&&k.length>I&&de.push({name:`${(0,s.getPayloadTypeName)(H)} Payload`,description:`Raw ${(0,s.getPayloadTypeName)(H)} payload data (${J.length} bytes)`,startByte:0,endByte:J.length-1,value:(0,a.bytesToHex)(J)});const q=this.calculateMessageHash(k,j,H,$),ge={messageHash:q,routeType:j,payloadType:H,payloadVersion:$,transportCodes:U,pathLength:G,path:V,payload:{raw:le,decoded:se},totalBytes:k.length,isValid:!0},ne={segments:N,totalBytes:k.length,rawHex:E.toUpperCase(),messageHash:q,payload:{segments:de,hex:le,startByte:I,type:(0,s.getPayloadTypeName)(H)}};return{packet:ge,structure:ne}}catch(I){const z={messageHash:"",routeType:r.RouteType.Flood,payloadType:r.PayloadType.RawCustom,payloadVersion:r.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:k.length,isValid:!1,errors:[I instanceof Error?I.message:"Unknown decoding error"]},j={segments:[],totalBytes:k.length,rawHex:E.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:z,structure:j}}}static async parseInternalAsync(E,P,B){const k=this.parseInternal(E,P,B);if(k.packet.payloadType===r.PayloadType.Advert&&k.packet.payload.decoded)try{const N=k.packet.payload.decoded,I=await f.AdvertPayloadDecoder.decodeWithVerification((0,a.hexToBytes)(k.packet.payload.raw),{includeSegments:P,segmentOffset:0});I&&(k.packet.payload.decoded=I,I.isValid||(k.packet.isValid=!1,k.packet.errors=I.errors||["Invalid advertisement signature"]),P&&I.segments&&(k.structure.payload.segments=I.segments,delete I.segments))}catch(N){console.error("Signature verification failed:",N)}return k}static validate(E){const P=(0,a.hexToBytes)(E),B=[];if(P.length<2)return B.push("Packet too short (minimum 2 bytes required)"),{isValid:!1,errors:B};try{let k=1;const I=P[0]&3;if((I===r.RouteType.TransportFlood||I===r.RouteType.TransportDirect)&&(P.length=P.length&&B.push("No payload data found")}catch(k){B.push(k instanceof Error?k.message:"Validation error")}return{isValid:B.length===0,errors:B.length>0?B:void 0}}static calculateMessageHash(E,P,B,k){if(B===r.PayloadType.Trace&&E.length>=13){let $=1;if((P===r.RouteType.TransportFlood||P===r.RouteType.TransportDirect)&&($+=4),E.length>$){const U=E[$];$+=1+U}if(E.length>=$+4){const U=E[$]|E[$+1]<<8|E[$+2]<<16|E[$+3]<<24;return(0,a.numberToHex)(U,8)}}const N=B<<2|k<<6;let I=1;if((P===r.RouteType.TransportFlood||P===r.RouteType.TransportDirect)&&(I+=4),E.length>I){const $=E[I];I+=1+$}const z=E.slice(I),j=[N,...Array.from(z)];let H=0;for(let $=0;$k.exp)return null;const N=`${v}.${w}`,I=new TextEncoder().encode(N),z=(0,a.bytesToHex)(I);return await(0,r.verify)(S,z,k.publicKey)?k:null}catch{return null}}function m(x){try{const p=x.split(".");return p.length!==3?null:{header:p[0],payload:p[1],signature:p[2]}}catch{return null}}function h(x){try{const p=x.split(".");if(p.length!==3)return null;const y=l(p[1]),v=new TextDecoder().decode(y);return JSON.parse(v)}catch{return null}}return Oo}var uA;function EC(){return uA||(uA=1,(function(r){var a=xi&&xi.__createBinding||(Object.create?(function(P,B,k,N){N===void 0&&(N=k);var I=Object.getOwnPropertyDescriptor(B,k);(!I||("get"in I?!B.__esModule:I.writable||I.configurable))&&(I={enumerable:!0,get:function(){return B[k]}}),Object.defineProperty(P,N,I)}):(function(P,B,k,N){N===void 0&&(N=k),P[N]=B[k]})),s=xi&&xi.__setModuleDefault||(Object.create?(function(P,B){Object.defineProperty(P,"default",{enumerable:!0,value:B})}):function(P,B){P.default=B}),l=xi&&xi.__importStar||(function(){var P=function(B){return P=Object.getOwnPropertyNames||function(k){var N=[];for(var I in k)Object.prototype.hasOwnProperty.call(k,I)&&(N[N.length]=I);return N},P(B)};return function(B){if(B&&B.__esModule)return B;var k={};if(B!=null)for(var N=P(B),I=0;I2?a+s:1;return zo*l*zo}function LC(r,a=e0,s){const l=Math.floor(Date.now()/1e3);return r<=l&&r>=l-a}function MC(r){return!r.includes("�")}class $c{constructor(){this.device=null,this.pipeline=null,this.bindGroupLayout=null,this.paramsBuffer=null,this.matchCountBuffer=null,this.matchIndicesBuffer=null,this.ciphertextBuffer=null,this.ciphertextBufferSize=0,this.matchCountReadBuffers=[null,null],this.matchIndicesReadBuffers=[null,null],this.currentReadBufferIndex=0,this.bindGroup=null,this.bindGroupDirty=!0,this.shaderCode=` +• Password (remaining bytes) - password for repeater/room`,startByte:h+x,endByte:h+f.length-1,value:w});const S={type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:p,senderPublicKey:y,cipherMac:v,ciphertext:w,ciphertextLength:f.length-35};return d!=null&&d.includeSegments&&(S.segments=m),S}catch(m){return{type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode AnonRequest payload"],destinationHash:"",senderPublicKey:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return qa.AnonRequestPayloadDecoder=s,qa}var Ga={},rA;function Cb(){if(rA)return Ga;rA=1,Object.defineProperty(Ga,"__esModule",{value:!0}),Ga.AckPayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d){try{if(f.length<4){const y={type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!1,errors:["Ack payload too short (minimum 4 bytes for checksum)"],checksum:""};return d!=null&&d.includeSegments&&(y.segments=[{name:"Invalid Ack Data",description:"Ack payload too short (minimum 4 bytes required for checksum)",startByte:d.segmentOffset||0,endByte:(d.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),y}const m=[],h=(d==null?void 0:d.segmentOffset)||0,x=(0,a.bytesToHex)(f.subarray(0,4));d!=null&&d.includeSegments&&m.push({name:"Checksum",description:`CRC checksum of message timestamp, text, and sender pubkey: 0x${x}`,startByte:h,endByte:h+3,value:x}),d!=null&&d.includeSegments&&f.length>4&&m.push({name:"Additional Data",description:"Extra data in Ack payload",startByte:h+4,endByte:h+f.length-1,value:(0,a.bytesToHex)(f.subarray(4))});const p={type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!0,checksum:x};return d!=null&&d.includeSegments&&(p.segments=m),p}catch(m){return{type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode Ack payload"],checksum:""}}}}return Ga.AckPayloadDecoder=s,Ga}var Qa={},iA;function bb(){if(iA)return Qa;iA=1,Object.defineProperty(Qa,"__esModule",{value:!0}),Qa.PathPayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f){try{if(f.length<2)return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:["Path payload too short (minimum 2 bytes: path length + extra type)"],pathLength:0,pathHashes:[],extraType:0,extraData:""};const d=f[0];if(f.length<1+d+1)return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:[`Path payload too short (need ${1+d+1} bytes for path length + path + extra type)`],pathLength:d,pathHashes:[],extraType:0,extraData:""};const m=[];for(let p=0;p1+d+1&&(x=(0,a.bytesToHex)(f.subarray(1+d+1))),{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!0,pathLength:d,pathHashes:m,extraType:h,extraData:x}}catch(d){return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:[d instanceof Error?d.message:"Failed to decode Path payload"],pathLength:0,pathHashes:[],extraType:0,extraData:""}}}}return Qa.PathPayloadDecoder=s,Qa}var Ka={},oA;function Eb(){if(oA)return Ka;oA=1,Object.defineProperty(Ka,"__esModule",{value:!0}),Ka.TextMessagePayloadDecoder=void 0;const r=ir(),a=gn();class s{static decode(f,d){try{if(f.length<4){const T={type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!1,errors:["TextMessage payload too short (minimum 4 bytes: dest + source + MAC)"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return d!=null&&d.includeSegments&&(T.segments=[{name:"Invalid TextMessage Data",description:"TextMessage payload too short (minimum 4 bytes required)",startByte:d.segmentOffset||0,endByte:(d.segmentOffset||0)+f.length-1,value:(0,a.bytesToHex)(f)}]),T}const m=[],h=(d==null?void 0:d.segmentOffset)||0;let x=0;const p=(0,a.byteToHex)(f[x]);d!=null&&d.includeSegments&&m.push({name:"Destination Hash",description:"First byte of destination node public key",startByte:h+x,endByte:h+x,value:p}),x+=1;const y=(0,a.byteToHex)(f[x]);d!=null&&d.includeSegments&&m.push({name:"Source Hash",description:"First byte of source node public key",startByte:h+x,endByte:h+x,value:y}),x+=1;const v=(0,a.bytesToHex)(f.subarray(x,x+2));d!=null&&d.includeSegments&&m.push({name:"Cipher MAC",description:"MAC for encrypted data in next field",startByte:h+x,endByte:h+x+1,value:v}),x+=2;const w=(0,a.bytesToHex)(f.subarray(x));d!=null&&d.includeSegments&&f.length>x&&m.push({name:"Ciphertext",description:"Encrypted message data (timestamp + message text)",startByte:h+x,endByte:h+f.length-1,value:w});const S={type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:p,sourceHash:y,cipherMac:v,ciphertext:w,ciphertextLength:f.length-4};return d!=null&&d.includeSegments&&(S.segments=m),S}catch(m){return{type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!1,errors:[m instanceof Error?m.message:"Failed to decode TextMessage payload"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Ka.TextMessagePayloadDecoder=s,Ka}var $a={},sA;function kb(){if(sA)return $a;sA=1,Object.defineProperty($a,"__esModule",{value:!0}),$a.ControlPayloadDecoder=void 0;const r=ir(),a=gn(),s=nl();class l{static decode(d,m){try{if(d.length<1)return this.createErrorPayload("Control payload too short (minimum 1 byte required)",d,m);const x=d[0]&240;switch(x){case r.ControlSubType.NodeDiscoverReq:return this.decodeDiscoverReq(d,m);case r.ControlSubType.NodeDiscoverResp:return this.decodeDiscoverResp(d,m);default:return this.createErrorPayload(`Unknown control sub-type: 0x${x.toString(16).padStart(2,"0")}`,d,m)}}catch(h){return this.createErrorPayload(h instanceof Error?h.message:"Failed to decode control payload",d,m)}}static decodeDiscoverReq(d,m){const h=[],x=(m==null?void 0:m.segmentOffset)??0;if(d.length<6){const P={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_REQ payload too short (minimum 6 bytes required)"],subType:r.ControlSubType.NodeDiscoverReq,rawFlags:d[0],prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return m!=null&&m.includeSegments&&(P.segments=[{name:"Invalid DISCOVER_REQ Data",description:"DISCOVER_REQ payload too short (minimum 6 bytes required)",startByte:x,endByte:x+d.length-1,value:(0,a.bytesToHex)(d)}]),P}let p=0;const y=d[p],v=(y&1)!==0;m!=null&&m.includeSegments&&h.push({name:"Flags",description:`Sub-type: DISCOVER_REQ (0x8) | Prefix Only: ${v}`,startByte:x+p,endByte:x+p,value:y.toString(16).padStart(2,"0").toUpperCase()}),p+=1;const w=d[p],S=this.parseTypeFilter(w);m!=null&&m.includeSegments&&h.push({name:"Type Filter",description:`Filter mask: 0b${w.toString(2).padStart(8,"0")} | Types: ${S.length>0?S.join(", "):"None"}`,startByte:x+p,endByte:x+p,value:w.toString(16).padStart(2,"0").toUpperCase()}),p+=1;const T=this.readUint32LE(d,p);m!=null&&m.includeSegments&&h.push({name:"Tag",description:`Random tag for response matching: 0x${T.toString(16).padStart(8,"0")}`,startByte:x+p,endByte:x+p+3,value:(0,a.bytesToHex)(d.slice(p,p+4))}),p+=4;let b=0;if(d.length>=p+4&&(b=this.readUint32LE(d,p),m!=null&&m.includeSegments)){const P=b>0?new Date(b*1e3).toISOString().slice(0,19)+"Z":"N/A";h.push({name:"Since",description:`Filter timestamp: ${b} (${P})`,startByte:x+p,endByte:x+p+3,value:(0,a.bytesToHex)(d.slice(p,p+4))})}const E={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!0,subType:r.ControlSubType.NodeDiscoverReq,rawFlags:y,prefixOnly:v,typeFilter:w,typeFilterNames:S,tag:T,since:b};return m!=null&&m.includeSegments&&(E.segments=h),E}static decodeDiscoverResp(d,m){const h=[],x=(m==null?void 0:m.segmentOffset)??0;if(d.length<14){const z={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_RESP payload too short (minimum 14 bytes required)"],subType:r.ControlSubType.NodeDiscoverResp,rawFlags:d.length>0?d[0]:0,nodeType:r.DeviceRole.Unknown,nodeTypeName:"Unknown",snr:0,tag:0,publicKey:"",publicKeyLength:0};return m!=null&&m.includeSegments&&(z.segments=[{name:"Invalid DISCOVER_RESP Data",description:"DISCOVER_RESP payload too short (minimum 14 bytes required)",startByte:x,endByte:x+d.length-1,value:(0,a.bytesToHex)(d)}]),z}let p=0;const y=d[p],v=y&15,w=(0,s.getDeviceRoleName)(v);m!=null&&m.includeSegments&&h.push({name:"Flags",description:`Sub-type: DISCOVER_RESP (0x9) | Node Type: ${w}`,startByte:x+p,endByte:x+p,value:y.toString(16).padStart(2,"0").toUpperCase()}),p+=1;const S=d[p],T=S>127?S-256:S,b=T/4;m!=null&&m.includeSegments&&h.push({name:"SNR",description:`Inbound SNR: ${b.toFixed(2)} dB (raw: ${S}, signed: ${T})`,startByte:x+p,endByte:x+p,value:S.toString(16).padStart(2,"0").toUpperCase()}),p+=1;const E=this.readUint32LE(d,p);m!=null&&m.includeSegments&&h.push({name:"Tag",description:`Reflected tag from request: 0x${E.toString(16).padStart(8,"0")}`,startByte:x+p,endByte:x+p+3,value:(0,a.bytesToHex)(d.slice(p,p+4))}),p+=4;const B=d.length-p,k=d.slice(p,p+B),N=(0,a.bytesToHex)(k);if(m!=null&&m.includeSegments){const z=B===32?"Full Public Key":"Public Key Prefix";h.push({name:z,description:`${z} (${B} bytes)`,startByte:x+p,endByte:x+p+B-1,value:N})}const I={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!0,subType:r.ControlSubType.NodeDiscoverResp,rawFlags:y,nodeType:v,nodeTypeName:w,snr:b,tag:E,publicKey:N,publicKeyLength:B};return m!=null&&m.includeSegments&&(I.segments=h),I}static parseTypeFilter(d){const m=[];return d&1<0?m[0]:0,prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return h!=null&&h.includeSegments&&(x.segments=[{name:"Invalid Control Data",description:d,startByte:h.segmentOffset??0,endByte:(h.segmentOffset??0)+m.length-1,value:(0,a.bytesToHex)(m)}]),x}static readUint32LE(d,m){return(d[m]|d[m+1]<<8|d[m+2]<<16|d[m+3]<<24)>>>0}}return $a.ControlPayloadDecoder=l,$a}var aA;function lA(){if(aA)return Oa;aA=1,Object.defineProperty(Oa,"__esModule",{value:!0}),Oa.MeshCorePacketDecoder=void 0;const r=ir(),a=gn(),s=nl(),l=dx(),f=gb(),d=xb(),m=vb(),h=yb(),x=_b(),p=wb(),y=Cb(),v=bb(),w=Eb(),S=kb();class T{static decode(E,P){return this.parseInternal(E,!1,P).packet}static async decodeWithVerification(E,P){return(await this.parseInternalAsync(E,!1,P)).packet}static analyzeStructure(E,P){return this.parseInternal(E,!0,P).structure}static async analyzeStructureWithVerification(E,P){return(await this.parseInternalAsync(E,!0,P)).structure}static parseInternal(E,P,B){const k=(0,a.hexToBytes)(E),N=[];if(k.length<2){const I={messageHash:"",routeType:r.RouteType.Flood,payloadType:r.PayloadType.RawCustom,payloadVersion:r.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:k.length,isValid:!1,errors:["Packet too short (minimum 2 bytes required)"]},z={segments:[],totalBytes:k.length,rawHex:E.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:I,structure:z}}try{let I=0;const z=k[0],j=z&3,H=z>>2&15,$=z>>6&3;P&&N.push({name:"Header",description:"Header byte breakdown",startByte:0,endByte:0,value:`0x${z.toString(16).padStart(2,"0")}`,headerBreakdown:{fullBinary:z.toString(2).padStart(8,"0"),fields:[{bits:"0-1",field:"Route Type",value:(0,s.getRouteTypeName)(j),binary:(z&3).toString(2).padStart(2,"0")},{bits:"2-5",field:"Payload Type",value:(0,s.getPayloadTypeName)(H),binary:(z>>2&15).toString(2).padStart(4,"0")},{bits:"6-7",field:"Version",value:$.toString(),binary:(z>>6&3).toString(2).padStart(2,"0")}]}}),I=1;let U;if(j===r.RouteType.TransportFlood||j===r.RouteType.TransportDirect){if(k.length0?Array.from(re).map(a.byteToHex):null;if(P&&G>0)if(H===r.PayloadType.Trace){const D=[];for(let Z=0;Z127?K-256:K)/4;D.push(`${fe.toFixed(2)}dB (0x${K.toString(16).padStart(2,"0")})`)}N.push({name:"Path SNR Data",description:`SNR values collected during trace: ${D.join(", ")}`,startByte:I,endByte:I+G-1,value:(0,a.bytesToHex)(k.slice(I,I+G))})}else{let D="Routing path information";j===r.RouteType.Direct||j===r.RouteType.TransportDirect?D="Routing instructions (bytes are stripped at each hop as packet travels to destination)":(j===r.RouteType.Flood||j===r.RouteType.TransportFlood)&&(D="Historical route taken (bytes are added as packet floods through network)"),N.push({name:"Path Data",description:D,startByte:I,endByte:I+G-1,value:(0,a.bytesToHex)(k.slice(I,I+G))})}I+=G;const J=k.subarray(I),le=(0,a.bytesToHex)(J);P&&k.length>I&&N.push({name:"Payload",description:`${(0,s.getPayloadTypeName)(H)} payload data`,startByte:I,endByte:k.length-1,value:(0,a.bytesToHex)(k.slice(I))});let se=null;const de=[];if(H===r.PayloadType.Advert){const D=f.AdvertPayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Trace){const D=d.TracePayloadDecoder.decode(J,V,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.GroupText){const D=m.GroupTextPayloadDecoder.decode(J,{...B,includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Request){const D=h.RequestPayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Response){const D=x.ResponsePayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.AnonRequest){const D=p.AnonRequestPayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Ack){const D=y.AckPayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Path)se=v.PathPayloadDecoder.decode(J);else if(H===r.PayloadType.TextMessage){const D=w.TextMessagePayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}else if(H===r.PayloadType.Control){const D=S.ControlPayloadDecoder.decode(J,{includeSegments:P,segmentOffset:0});se=D,D!=null&&D.segments&&(de.push(...D.segments),delete D.segments)}P&&de.length===0&&k.length>I&&de.push({name:`${(0,s.getPayloadTypeName)(H)} Payload`,description:`Raw ${(0,s.getPayloadTypeName)(H)} payload data (${J.length} bytes)`,startByte:0,endByte:J.length-1,value:(0,a.bytesToHex)(J)});const q=this.calculateMessageHash(k,j,H,$),ge={messageHash:q,routeType:j,payloadType:H,payloadVersion:$,transportCodes:U,pathLength:G,path:V,payload:{raw:le,decoded:se},totalBytes:k.length,isValid:!0},ne={segments:N,totalBytes:k.length,rawHex:E.toUpperCase(),messageHash:q,payload:{segments:de,hex:le,startByte:I,type:(0,s.getPayloadTypeName)(H)}};return{packet:ge,structure:ne}}catch(I){const z={messageHash:"",routeType:r.RouteType.Flood,payloadType:r.PayloadType.RawCustom,payloadVersion:r.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:k.length,isValid:!1,errors:[I instanceof Error?I.message:"Unknown decoding error"]},j={segments:[],totalBytes:k.length,rawHex:E.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:z,structure:j}}}static async parseInternalAsync(E,P,B){const k=this.parseInternal(E,P,B);if(k.packet.payloadType===r.PayloadType.Advert&&k.packet.payload.decoded)try{const N=k.packet.payload.decoded,I=await f.AdvertPayloadDecoder.decodeWithVerification((0,a.hexToBytes)(k.packet.payload.raw),{includeSegments:P,segmentOffset:0});I&&(k.packet.payload.decoded=I,I.isValid||(k.packet.isValid=!1,k.packet.errors=I.errors||["Invalid advertisement signature"]),P&&I.segments&&(k.structure.payload.segments=I.segments,delete I.segments))}catch(N){console.error("Signature verification failed:",N)}return k}static validate(E){const P=(0,a.hexToBytes)(E),B=[];if(P.length<2)return B.push("Packet too short (minimum 2 bytes required)"),{isValid:!1,errors:B};try{let k=1;const I=P[0]&3;if((I===r.RouteType.TransportFlood||I===r.RouteType.TransportDirect)&&(P.length=P.length&&B.push("No payload data found")}catch(k){B.push(k instanceof Error?k.message:"Validation error")}return{isValid:B.length===0,errors:B.length>0?B:void 0}}static calculateMessageHash(E,P,B,k){if(B===r.PayloadType.Trace&&E.length>=13){let $=1;if((P===r.RouteType.TransportFlood||P===r.RouteType.TransportDirect)&&($+=4),E.length>$){const U=E[$];$+=1+U}if(E.length>=$+4){const U=E[$]|E[$+1]<<8|E[$+2]<<16|E[$+3]<<24;return(0,a.numberToHex)(U,8)}}const N=B<<2|k<<6;let I=1;if((P===r.RouteType.TransportFlood||P===r.RouteType.TransportDirect)&&(I+=4),E.length>I){const $=E[I];I+=1+$}const z=E.slice(I),j=[N,...Array.from(z)];let H=0;for(let $=0;$k.exp)return null;const N=`${v}.${w}`,I=new TextEncoder().encode(N),z=(0,a.bytesToHex)(I);return await(0,r.verify)(S,z,k.publicKey)?k:null}catch{return null}}function m(x){try{const p=x.split(".");return p.length!==3?null:{header:p[0],payload:p[1],signature:p[2]}}catch{return null}}function h(x){try{const p=x.split(".");if(p.length!==3)return null;const y=l(p[1]),v=new TextDecoder().decode(y);return JSON.parse(v)}catch{return null}}return Oo}var dA;function Sb(){return dA||(dA=1,(function(r){var a=xi&&xi.__createBinding||(Object.create?(function(P,B,k,N){N===void 0&&(N=k);var I=Object.getOwnPropertyDescriptor(B,k);(!I||("get"in I?!B.__esModule:I.writable||I.configurable))&&(I={enumerable:!0,get:function(){return B[k]}}),Object.defineProperty(P,N,I)}):(function(P,B,k,N){N===void 0&&(N=k),P[N]=B[k]})),s=xi&&xi.__setModuleDefault||(Object.create?(function(P,B){Object.defineProperty(P,"default",{enumerable:!0,value:B})}):function(P,B){P.default=B}),l=xi&&xi.__importStar||(function(){var P=function(B){return P=Object.getOwnPropertyNames||function(k){var N=[];for(var I in k)Object.prototype.hasOwnProperty.call(k,I)&&(N[N.length]=I);return N},P(B)};return function(B){if(B&&B.__esModule)return B;var k={};if(B!=null)for(var N=P(B),I=0;I2?a+s:1;return zo*l*zo}function Ib(r,a=e0,s){const l=Math.floor(Date.now()/1e3);return r<=l&&r>=l-a}function Ob(r){return!r.includes("�")}class $c{constructor(){this.device=null,this.pipeline=null,this.bindGroupLayout=null,this.paramsBuffer=null,this.matchCountBuffer=null,this.matchIndicesBuffer=null,this.ciphertextBuffer=null,this.ciphertextBufferSize=0,this.matchCountReadBuffers=[null,null],this.matchIndicesReadBuffers=[null,null],this.currentReadBufferIndex=0,this.bindGroup=null,this.bindGroupDirty=!0,this.shaderCode=` // SHA256 round constants const K: array = array( 0x428a2f98u, 0x71374491u, 0xb5c0fbcfu, 0xe9b5dba5u, 0x3956c25bu, 0x59f111f1u, 0x923f82a4u, 0xab1c5ed5u, @@ -530,12 +530,12 @@ fn main(@builtin(global_invocation_id) global_id: vec3) { process_candidate(name_idx); } } -`}async init(){if(!navigator.gpu)return console.warn("WebGPU not supported"),!1;try{const a=await navigator.gpu.requestAdapter();if(!a)return console.warn("No GPU adapter found"),!1;this.device=await a.requestDevice(),this.bindGroupLayout=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.COMPUTE,buffer:{type:"uniform"}},{binding:1,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}},{binding:2,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}},{binding:3,visibility:GPUShaderStage.COMPUTE,buffer:{type:"read-only-storage"}}]}),this.paramsBuffer=this.device.createBuffer({size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.matchCountBuffer=this.device.createBuffer({size:4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST}),this.matchIndicesBuffer=this.device.createBuffer({size:1024*4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC});for(let f=0;f<2;f++)this.matchCountReadBuffers[f]=this.device.createBuffer({size:4,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.matchIndicesReadBuffers[f]=this.device.createBuffer({size:1024*4,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST});const s=this.device.createShaderModule({code:this.shaderCode}),l=this.device.createPipelineLayout({bindGroupLayouts:[this.bindGroupLayout]});return this.pipeline=this.device.createComputePipeline({layout:l,compute:{module:s,entryPoint:"main"}}),!0}catch(a){return console.error("WebGPU initialization failed:",a),!1}}isAvailable(){return this.device!==null&&this.pipeline!==null}indexToRoomName(a,s){return Ho(s,a)}countNamesForLength(a){return el(a)}async runBatch(a,s,l,f,d,m){if(!this.device||!this.pipeline||!this.bindGroupLayout||!this.paramsBuffer||!this.matchCountBuffer||!this.matchIndicesBuffer||!this.matchCountReadBuffers[0]||!this.matchCountReadBuffers[1]||!this.matchIndicesReadBuffers[0]||!this.matchIndicesReadBuffers[1])throw new Error("GPU not initialized");const h=this.currentReadBufferIndex;this.currentReadBufferIndex=1-this.currentReadBufferIndex;const x=this.matchCountReadBuffers[h],p=this.matchIndicesReadBuffers[h],y=d&&m?1:0;let v,w=0,S=0;if(y){const I=new Uint8Array(d.length/2);for(let U=0;U0){await p.mapAsync(GPUMapMode.READ);const I=new Uint32Array(p.getMappedRange());for(let z=0;z1&&!zC.test(r)||jC.test(r))}class HC{constructor(){this.gpuInstance=null,this.cpuInstance=null,this.wordlist=[],this.abortFlag=!1,this.useTimestampFilter=!0,this.useUtf8Filter=!0,this.validSeconds=e0,this.useCpu=!1}async loadWordlist(a){const s=await fetch(a);if(!s.ok)throw new Error(`Failed to load wordlist: ${s.status} ${s.statusText}`);const f=(await s.text()).split(` -`).map(d=>d.trim().toLowerCase()).filter(d=>d.length>0);this.wordlist=f.filter(pA)}setWordlist(a){this.wordlist=a.map(s=>s.trim().toLowerCase()).filter(pA)}abort(){this.abortFlag=!0}isGpuAvailable(){return IC()}async decodePacket(a){var l;const s=a.trim().replace(/\s+/g,"").replace(/^0x/i,"");if(!s||!/^[0-9a-fA-F]+$/.test(s))return null;try{const d=(l=(await cA.MeshCorePacketDecoder.decodeWithVerification(s,{})).payload)==null?void 0:l.decoded;return!(d!=null&&d.channelHash)||!(d!=null&&d.ciphertext)||!(d!=null&&d.cipherMac)?null:{channelHash:d.channelHash,ciphertext:d.ciphertext,cipherMac:d.cipherMac,isGroupText:!0}}catch{return null}}async crack(a,s,l){this.abortFlag=!1,this.useTimestampFilter=(s==null?void 0:s.useTimestampFilter)??!0,this.useUtf8Filter=(s==null?void 0:s.useUtf8Filter)??!0,this.validSeconds=(s==null?void 0:s.validSeconds)??e0,this.useCpu=(s==null?void 0:s.forceCpu)??!1;const f=(s==null?void 0:s.maxLength)??8,d=(s==null?void 0:s.startingLength)??1,m=(s==null?void 0:s.useDictionary)??!0,h=(s==null?void 0:s.startFromType)??"bruteforce",x=a.toLowerCase(),p=await this.decodePacket(x);if(!p)return{found:!1,error:"Invalid packet or not a GroupText packet"};const{channelHash:y,ciphertext:v,cipherMac:w}=p,S=parseInt(y,16);this.useCpu?this.cpuInstance||(this.cpuInstance=new hA):this.gpuInstance||(this.gpuInstance=new $c,await this.gpuInstance.init()||(this.useCpu=!0,this.cpuInstance=new hA));const T=performance.now();let C=0,E=performance.now(),P=d,B=0,k=0,N=!1;if(s!=null&&s.startFrom){const V=s.startFrom.toLowerCase();if(h==="dictionary"){const J=this.wordlist.indexOf(V);J>=0&&(k=J+1)}else{N=!0;const J=NC(V);J&&(P=Math.max(d,J.length),B=J.index+1,B>=el(P)&&(P++,B=0))}}let I=0;m&&!N&&this.wordlist.length>0&&(I+=this.wordlist.length-k);for(let V=P;V<=f;V++)I+=el(V);I-=B;const z=(V,J,le)=>{if(!l)return;const de=(performance.now()-T)/1e3,q=de>0?Math.round(C/de):0,ge=I-C,ne=q>0?ge/q:0;l({checked:C,total:I,percent:I>0?Math.min(100,C/I*100):0,rateKeysPerSec:q,etaSeconds:ne,elapsedSeconds:de,currentLength:J,currentPosition:le,phase:V})},j=V=>{if(!Bx(v,w,V))return{valid:!1};const J=cA.ChannelCrypto.decryptGroupTextMessage(v,w,V);return!J.success||!J.data?{valid:!1}:this.useTimestampFilter&&!LC(J.data.timestamp,this.validSeconds)?{valid:!1}:this.useUtf8Filter&&!MC(J.data.message)?{valid:!1}:{valid:!0,message:J.data.message}};if(!N&&k===0&&P===d&&B===0){z("public-key",0,Jf);const V=n0(wc);if(y===V){const J=j(wc);if(J.valid)return{found:!0,roomName:Jf,key:wc,decryptedMessage:J.message}}}if(m&&!N&&this.wordlist.length>0)for(let V=k;V=200&&(z("wordlist",J.length,J),E=de,await new Promise(q=>setTimeout(q,0)))}const H=this.useCpu?1024:32768,$=(s==null?void 0:s.gpuDispatchMs)??1e3;let U=H,G=!1;for(let V=P;V<=f;V++){if(this.abortFlag)return{found:!1,aborted:!0,resumeFrom:Ho(V,0)||void 0,resumeType:"bruteforce"};const J=el(V);let le=V===P?B:0;for(;le=H&&ge>0){const D=$/ge,Z=Math.round(se*D),K=Math.pow(2,Math.round(Math.log2(Math.max(H,Z))));U=Math.max(H,K),G=!0}for(const D of q){const Z=Ho(V,D);if(!Z)continue;const K=t0("#"+Z),X=j(K);if(X.valid)return{found:!0,roomName:Z,key:K,decryptedMessage:X.message,resumeFrom:Z,resumeType:"bruteforce"}}le+=se;const ne=performance.now();if(ne-E>=200){const D=Ho(V,Math.min(le,J-1))||"";z("bruteforce",V,D),E=ne,await new Promise(Z=>setTimeout(Z,0))}}}return{found:!1,resumeFrom:Ho(f,el(f)-1)||void 0,resumeType:"bruteforce"}}destroy(){this.gpuInstance&&(this.gpuInstance.destroy(),this.gpuInstance=null),this.cpuInstance&&(this.cpuInstance.destroy(),this.cpuInstance=null)}}var jf,mA;function VC(){return mA||(mA=1,jf={webm:"data:video/webm;base64,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",mp4:"data:video/mp4;base64,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"}),jf}var Hf,AA;function UC(){if(AA)return Hf;AA=1;const{webm:r,mp4:a}=VC(),s=()=>typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,l=()=>"wakeLock"in navigator;class f{constructor(){if(this.enabled=!1,l()){this._wakeLock=null;const m=()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()};document.addEventListener("visibilitychange",m),document.addEventListener("fullscreenchange",m)}else s()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",r),this._addSourceToVideo(this.noSleepVideo,"mp4",a),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(m,h,x){var p=document.createElement("source");p.src=x,p.type=`video/${h}`,m.appendChild(p)}get isEnabled(){return this.enabled}enable(){return l()?navigator.wakeLock.request("screen").then(m=>{this._wakeLock=m,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",()=>{console.log("Wake Lock released.")})}).catch(m=>{throw this.enabled=!1,console.error(`${m.name}, ${m.message}`),m}):s()?(this.disable(),console.warn(` +`}async init(){if(!navigator.gpu)return console.warn("WebGPU not supported"),!1;try{const a=await navigator.gpu.requestAdapter();if(!a)return console.warn("No GPU adapter found"),!1;this.device=await a.requestDevice(),this.bindGroupLayout=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.COMPUTE,buffer:{type:"uniform"}},{binding:1,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}},{binding:2,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}},{binding:3,visibility:GPUShaderStage.COMPUTE,buffer:{type:"read-only-storage"}}]}),this.paramsBuffer=this.device.createBuffer({size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.matchCountBuffer=this.device.createBuffer({size:4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST}),this.matchIndicesBuffer=this.device.createBuffer({size:1024*4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC});for(let f=0;f<2;f++)this.matchCountReadBuffers[f]=this.device.createBuffer({size:4,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.matchIndicesReadBuffers[f]=this.device.createBuffer({size:1024*4,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST});const s=this.device.createShaderModule({code:this.shaderCode}),l=this.device.createPipelineLayout({bindGroupLayouts:[this.bindGroupLayout]});return this.pipeline=this.device.createComputePipeline({layout:l,compute:{module:s,entryPoint:"main"}}),!0}catch(a){return console.error("WebGPU initialization failed:",a),!1}}isAvailable(){return this.device!==null&&this.pipeline!==null}indexToRoomName(a,s){return Ho(s,a)}countNamesForLength(a){return el(a)}async runBatch(a,s,l,f,d,m){if(!this.device||!this.pipeline||!this.bindGroupLayout||!this.paramsBuffer||!this.matchCountBuffer||!this.matchIndicesBuffer||!this.matchCountReadBuffers[0]||!this.matchCountReadBuffers[1]||!this.matchIndicesReadBuffers[0]||!this.matchIndicesReadBuffers[1])throw new Error("GPU not initialized");const h=this.currentReadBufferIndex;this.currentReadBufferIndex=1-this.currentReadBufferIndex;const x=this.matchCountReadBuffers[h],p=this.matchIndicesReadBuffers[h],y=d&&m?1:0;let v,w=0,S=0;if(y){const I=new Uint8Array(d.length/2);for(let U=0;U0){await p.mapAsync(GPUMapMode.READ);const I=new Uint32Array(p.getMappedRange());for(let z=0;z1&&!Hb.test(r)||Vb.test(r))}class Ub{constructor(){this.gpuInstance=null,this.cpuInstance=null,this.wordlist=[],this.abortFlag=!1,this.useTimestampFilter=!0,this.useUtf8Filter=!0,this.validSeconds=e0,this.useCpu=!1}async loadWordlist(a){const s=await fetch(a);if(!s.ok)throw new Error(`Failed to load wordlist: ${s.status} ${s.statusText}`);const f=(await s.text()).split(` +`).map(d=>d.trim().toLowerCase()).filter(d=>d.length>0);this.wordlist=f.filter(AA)}setWordlist(a){this.wordlist=a.map(s=>s.trim().toLowerCase()).filter(AA)}abort(){this.abortFlag=!0}isGpuAvailable(){return zb()}async decodePacket(a){var l;const s=a.trim().replace(/\s+/g,"").replace(/^0x/i,"");if(!s||!/^[0-9a-fA-F]+$/.test(s))return null;try{const d=(l=(await fA.MeshCorePacketDecoder.decodeWithVerification(s,{})).payload)==null?void 0:l.decoded;return!(d!=null&&d.channelHash)||!(d!=null&&d.ciphertext)||!(d!=null&&d.cipherMac)?null:{channelHash:d.channelHash,ciphertext:d.ciphertext,cipherMac:d.cipherMac,isGroupText:!0}}catch{return null}}async crack(a,s,l){this.abortFlag=!1,this.useTimestampFilter=(s==null?void 0:s.useTimestampFilter)??!0,this.useUtf8Filter=(s==null?void 0:s.useUtf8Filter)??!0,this.validSeconds=(s==null?void 0:s.validSeconds)??e0,this.useCpu=(s==null?void 0:s.forceCpu)??!1;const f=(s==null?void 0:s.maxLength)??8,d=(s==null?void 0:s.startingLength)??1,m=(s==null?void 0:s.useDictionary)??!0,h=(s==null?void 0:s.startFromType)??"bruteforce",x=a.toLowerCase(),p=await this.decodePacket(x);if(!p)return{found:!1,error:"Invalid packet or not a GroupText packet"};const{channelHash:y,ciphertext:v,cipherMac:w}=p,S=parseInt(y,16);this.useCpu?this.cpuInstance||(this.cpuInstance=new mA):this.gpuInstance||(this.gpuInstance=new $c,await this.gpuInstance.init()||(this.useCpu=!0,this.cpuInstance=new mA));const T=performance.now();let b=0,E=performance.now(),P=d,B=0,k=0,N=!1;if(s!=null&&s.startFrom){const V=s.startFrom.toLowerCase();if(h==="dictionary"){const J=this.wordlist.indexOf(V);J>=0&&(k=J+1)}else{N=!0;const J=Mb(V);J&&(P=Math.max(d,J.length),B=J.index+1,B>=el(P)&&(P++,B=0))}}let I=0;m&&!N&&this.wordlist.length>0&&(I+=this.wordlist.length-k);for(let V=P;V<=f;V++)I+=el(V);I-=B;const z=(V,J,le)=>{if(!l)return;const de=(performance.now()-T)/1e3,q=de>0?Math.round(b/de):0,ge=I-b,ne=q>0?ge/q:0;l({checked:b,total:I,percent:I>0?Math.min(100,b/I*100):0,rateKeysPerSec:q,etaSeconds:ne,elapsedSeconds:de,currentLength:J,currentPosition:le,phase:V})},j=V=>{if(!Tx(v,w,V))return{valid:!1};const J=fA.ChannelCrypto.decryptGroupTextMessage(v,w,V);return!J.success||!J.data?{valid:!1}:this.useTimestampFilter&&!Ib(J.data.timestamp,this.validSeconds)?{valid:!1}:this.useUtf8Filter&&!Ob(J.data.message)?{valid:!1}:{valid:!0,message:J.data.message}};if(!N&&k===0&&P===d&&B===0){z("public-key",0,Jf);const V=n0(wc);if(y===V){const J=j(wc);if(J.valid)return{found:!0,roomName:Jf,key:wc,decryptedMessage:J.message}}}if(m&&!N&&this.wordlist.length>0)for(let V=k;V=200&&(z("wordlist",J.length,J),E=de,await new Promise(q=>setTimeout(q,0)))}const H=this.useCpu?1024:32768,$=(s==null?void 0:s.gpuDispatchMs)??1e3;let U=H,G=!1;for(let V=P;V<=f;V++){if(this.abortFlag)return{found:!1,aborted:!0,resumeFrom:Ho(V,0)||void 0,resumeType:"bruteforce"};const J=el(V);let le=V===P?B:0;for(;le=H&&ge>0){const D=$/ge,Z=Math.round(se*D),K=Math.pow(2,Math.round(Math.log2(Math.max(H,Z))));U=Math.max(H,K),G=!0}for(const D of q){const Z=Ho(V,D);if(!Z)continue;const K=t0("#"+Z),X=j(K);if(X.valid)return{found:!0,roomName:Z,key:K,decryptedMessage:X.message,resumeFrom:Z,resumeType:"bruteforce"}}le+=se;const ne=performance.now();if(ne-E>=200){const D=Ho(V,Math.min(le,J-1))||"";z("bruteforce",V,D),E=ne,await new Promise(Z=>setTimeout(Z,0))}}}return{found:!1,resumeFrom:Ho(f,el(f)-1)||void 0,resumeType:"bruteforce"}}destroy(){this.gpuInstance&&(this.gpuInstance.destroy(),this.gpuInstance=null),this.cpuInstance&&(this.cpuInstance.destroy(),this.cpuInstance=null)}}var jf,gA;function Zb(){return gA||(gA=1,jf={webm:"data:video/webm;base64,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",mp4:"data:video/mp4;base64,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"}),jf}var Hf,xA;function Wb(){if(xA)return Hf;xA=1;const{webm:r,mp4:a}=Zb(),s=()=>typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,l=()=>"wakeLock"in navigator;class f{constructor(){if(this.enabled=!1,l()){this._wakeLock=null;const m=()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()};document.addEventListener("visibilitychange",m),document.addEventListener("fullscreenchange",m)}else s()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",r),this._addSourceToVideo(this.noSleepVideo,"mp4",a),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(m,h,x){var p=document.createElement("source");p.src=x,p.type=`video/${h}`,m.appendChild(p)}get isEnabled(){return this.enabled}enable(){return l()?navigator.wakeLock.request("screen").then(m=>{this._wakeLock=m,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",()=>{console.log("Wake Lock released.")})}).catch(m=>{throw this.enabled=!1,console.error(`${m.name}, ${m.message}`),m}):s()?(this.disable(),console.warn(` NoSleep enabled for older iOS devices. This can interrupt active or long-running network requests from completing successfully. See https://github.com/richtr/NoSleep.js/issues/15 for more details. `),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(h=>(this.enabled=!0,h)).catch(h=>{throw this.enabled=!1,h})}disable(){l()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):s()?this.noSleepTimer&&(console.warn(` NoSleep now disabled for older iOS devices. - `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}return Hf=f,Hf}var ZC=UC();const WC=Us(ZC);function qC(r){if(r.length<4)return null;try{const s=parseInt(r.slice(0,2),16)&3;let l=2;if(s===0||s===3){if(r.length{const Se=new HC;V.current=Se,H(Se.isGpuAvailable());const Ve=new WC;return J.current=Ve,()=>{Se.destroy(),V.current=null,Ve.disable(),J.current=null}},[]),R.useEffect(()=>{!f||I||z2(async()=>{const{ENGLISH_WORDLIST:Se}=await import("./wordlist-BV_32SRm.js");return{ENGLISH_WORDLIST:Se}},[]).then(({ENGLISH_WORDLIST:Se})=>{V.current&&(V.current.setWordlist(Se),z(!0))}).catch(Se=>{console.error("Failed to load wordlist:",Se),Lt.error("Failed to load wordlist",{description:"Cracking will not be available"})})},[f,I]),R.useEffect(()=>{const Se=()=>{at.getUndecryptedPacketCount().then(({count:dt})=>U(dt)).catch(()=>U(null))};Se();const Ve=setInterval(Se,3e4);return()=>clearInterval(Ve)},[]);const fe=R.useMemo(()=>new Set(a.map(Se=>Se.key.toUpperCase())),[a]),he=r.filter(Se=>Se.payload_type==="GROUP_TEXT"&&!Se.decrypted);R.useEffect(()=>{let Se=0;B(Ve=>{const dt=new Map(Ve);let Mt=!1;for(const vt of he)if(!dt.has(vt.id)){const ot=qC(vt.data);if(ot&&X.current.has(ot)){Se++;continue}ot&&X.current.add(ot),dt.set(vt.id,{packet:vt,attempts:0,lastAttemptLength:0,status:"pending"}),Mt=!0}return Mt?(q.current=dt,dt):Ve}),Se>0&&re(Ve=>Ve+Se)},[he.length]),R.useEffect(()=>{q.current=P},[P]),R.useEffect(()=>{ge.current=p},[p]),R.useEffect(()=>{ne.current=h},[h]),R.useEffect(()=>{D.current=v},[v]),R.useEffect(()=>{Z.current=S},[S]),R.useEffect(()=>{K.current=new Set(he.map(Se=>Se.id))},[he]),R.useEffect(()=>{l==null||l(d)},[d,l]);const ke=Array.from(P.values()).filter(Se=>Se.status==="pending").length,Ae=Array.from(P.values()).filter(Se=>Se.status==="cracked").length,qe=Array.from(P.values()).filter(Se=>Se.status==="failed").length,Ye=R.useCallback(async()=>{if(de.current||!V.current||!le.current)return;const Se=q.current;let Ve=null,dt=null;for(const[Qe,Xe]of Se.entries())if(Xe.status==="pending"){Ve=Xe,dt=Qe;break}if(!Ve&&ge.current){const Qe=Array.from(Se.entries()).filter(([,Xe])=>Xe.status==="failed"&&Xe.lastAttemptLength<10);Qe.length>0&&(Qe.sort((Xe,et)=>Xe[1].lastAttemptLength-et[1].lastAttemptLength),[dt,Ve]=Qe[0])}if(!Ve||dt===null){le.current&&setTimeout(()=>Ye(),1e3);return}if(!K.current.has(dt)){B(Qe=>{const Xe=new Map(Qe);return Xe.delete(dt),Xe}),le.current&&setTimeout(()=>Ye(),10);return}de.current=!0;const Mt=ne.current,vt=Ve.lastAttemptLength>0,ot=vt?Ve.lastAttemptLength+1:Mt;try{const Qe=await V.current.crack(Ve.packet.data,{maxLength:ot,useTimestampFilter:!0,useUtf8Filter:!0,...Z.current&&{gpuDispatchMs:1e4},...vt&&{useDictionary:!1,startingLength:ot}},Xe=>{E(Xe)});if(se.current){se.current=!1,de.current=!1,E(null);return}if(Qe.found&&Qe.roomName&&Qe.key){B(Oe=>{const _t=new Map(Oe),$t=_t.get(dt);return $t&&_t.set(dt,{...$t,status:"cracked",attempts:$t.attempts+1,lastAttemptLength:ot}),_t});const Xe={roomName:Qe.roomName,key:Qe.key,packetId:dt,message:Qe.decryptedMessage||"",crackedAt:Date.now()};N(Oe=>[...Oe,Xe]);const et=Qe.key.toUpperCase();if(!fe.has(et))try{const Oe="#"+Qe.roomName;await s(Oe,Qe.key),D.current&&await at.decryptHistoricalPackets({key_type:"channel",channel_name:Oe})}catch(Oe){console.error("Failed to create channel or decrypt historical:",Oe),Lt.error("Failed to save cracked channel",{description:Oe instanceof Error?Oe.message:"Channel discovered but could not be saved"})}}else B(Xe=>{const et=new Map(Xe),Oe=et.get(dt);return Oe&&et.set(dt,{...Oe,status:"failed",attempts:Oe.attempts+1,lastAttemptLength:ot}),et})}catch(Qe){console.error("Cracking error:",Qe),B(Xe=>{const et=new Map(Xe),Oe=et.get(dt);return Oe&&et.set(dt,{...Oe,status:"failed",attempts:Oe.attempts+1,lastAttemptLength:ot}),et})}de.current=!1,E(null),le.current&&setTimeout(()=>Ye(),100)},[fe,s]),Et=()=>{var Se;if(!j){Lt.error("WebGPU not available",{description:"Cracking requires Chrome 113+ or Edge 113+ with WebGPU support."});return}m(!0),le.current=!0,se.current=!1,(Se=J.current)==null||Se.enable(),Ye()},ht=()=>{var Se,Ve;m(!1),le.current=!1,se.current=!0,(Se=V.current)==null||Se.abort(),(Ve=J.current)==null||Ve.disable()};return F.jsxs("div",{className:"flex flex-col h-full p-3 gap-3 bg-background border-t border-border",children:[F.jsxs("p",{className:"text-xs text-muted-foreground leading-relaxed",children:["This will attempt to dictionary attack, then brute force GroupText packets as they arrive, testing room names up to the specified length.",F.jsx("strong",{children:" Retry failed at n+1"})," will let the cracker return to the failed queue and pick up messages it couldn't crack, attempting them at one longer length.",F.jsx("strong",{children:" Decrypt historical"})," will run an async job on any room name it finds to see if any historically captured packets will decrypt with that key.",F.jsx("strong",{children:" Turbo mode"})," will push your GPU to the max (target dispatch time of 10s) and may allow accelerated cracking and/or system instability."]}),F.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[F.jsx("button",{onClick:d?ht:Et,disabled:!I||j===!1,className:lt("px-4 py-1.5 rounded text-sm font-medium",d?"bg-destructive text-destructive-foreground hover:bg-destructive/90":"bg-primary text-primary-foreground hover:bg-primary/90","disabled:opacity-50 disabled:cursor-not-allowed"),children:d?"Stop":"Start Cracking"}),F.jsxs("div",{className:"flex items-center gap-2",children:[F.jsx("label",{className:"text-sm text-muted-foreground",children:"Max Length:"}),F.jsx("input",{type:"number",min:1,max:10,value:h,onChange:Se=>x(Math.min(10,Math.max(1,parseInt(Se.target.value)||6))),className:"w-14 px-2 py-1 text-sm bg-muted border border-border rounded"})]}),F.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[F.jsx("input",{type:"checkbox",checked:p,onChange:Se=>y(Se.target.checked),className:"rounded"}),"Retry failed at n+1"]}),F.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[F.jsx("input",{type:"checkbox",checked:v,onChange:Se=>w(Se.target.checked),className:"rounded"}),"Decrypt historical packets if key found"]}),v&&F.jsx("span",{className:"text-xs text-muted-foreground",children:$!==null&&$>0?`(${$.toLocaleString()} packets; messages will stream in as decrypted)`:"(messages will stream in as decrypted)"}),F.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[F.jsx("input",{type:"checkbox",checked:S,onChange:Se=>T(Se.target.checked),className:"rounded"}),"Turbo mode (experimental)"]})]}),F.jsxs("div",{className:"flex gap-4 text-sm",children:[F.jsxs("span",{className:"text-muted-foreground",children:["Pending: ",F.jsx("span",{className:"text-foreground font-medium",children:ke})]}),F.jsxs("span",{className:"text-muted-foreground",children:["Cracked: ",F.jsx("span",{className:"text-green-500 font-medium",children:Ae})]}),F.jsxs("span",{className:"text-muted-foreground",children:["Failed: ",F.jsx("span",{className:"text-destructive font-medium",children:qe})]}),G>0&&F.jsxs("span",{className:"text-muted-foreground",children:["Skipped (dup):"," ",F.jsx("span",{className:"text-muted-foreground font-medium",children:G})]})]}),C&&F.jsxs("div",{className:"space-y-1",children:[F.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[F.jsxs("span",{children:[C.phase==="wordlist"?"Dictionary":C.phase==="bruteforce"?"Bruteforce":"Public Key",C.phase==="bruteforce"&&` - Length ${C.currentLength}`,":"," ",C.currentPosition]}),F.jsxs("span",{children:[C.rateKeysPerSec>=1e9?`${(C.rateKeysPerSec/1e9).toFixed(2)} Gkeys/s`:`${(C.rateKeysPerSec/1e6).toFixed(1)} Mkeys/s`," ","• ETA:"," ",C.etaSeconds<60?`${Math.round(C.etaSeconds)}s`:`${Math.round(C.etaSeconds/60)}m`]})]}),F.jsx("div",{className:"h-2 bg-muted rounded overflow-hidden",children:F.jsx("div",{className:"h-full bg-primary transition-all duration-200",style:{width:`${C.percent}%`}})})]}),j===!1&&F.jsx("div",{className:"text-sm text-destructive",children:"WebGPU not available. Cracking requires Chrome 113+ or Edge 113+."}),!I&&j!==!1&&F.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading wordlist..."}),k.length>0&&F.jsxs("div",{className:"flex-1 overflow-y-auto min-h-0",children:[F.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Cracked Rooms:"}),F.jsx("div",{className:"space-y-1",children:k.map((Se,Ve)=>F.jsxs("div",{className:"text-sm bg-green-950/30 border border-green-900/50 rounded px-2 py-1",children:[F.jsxs("span",{className:"text-green-400 font-medium",children:["#",Se.roomName]}),F.jsxs("span",{className:"text-muted-foreground ml-2 text-xs",children:['"',Se.message.slice(0,50),Se.message.length>50?"...":"",'"']})]},Ve))})]})]})}const QC=gg,KC=xg,Px=R.forwardRef(({className:r,...a},s)=>F.jsx(Lc,{className:lt("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...a,ref:s}));Px.displayName=Lc.displayName;const $C=Dc("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),Tx=R.forwardRef(({side:r="right",className:a,children:s,hideCloseButton:l=!1,...f},d)=>F.jsxs(KC,{children:[F.jsx(Px,{}),F.jsxs(Mc,{ref:d,className:lt($C({side:r}),a),...f,children:[!l&&F.jsxs(vg,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[F.jsx(CA,{className:"h-4 w-4"}),F.jsx("span",{className:"sr-only",children:"Close"})]}),s]})]}));Tx.displayName=Mc.displayName;const Dx=({className:r,...a})=>F.jsx("div",{className:lt("flex flex-col space-y-2 text-center sm:text-left",r),...a});Dx.displayName="SheetHeader";const Rx=R.forwardRef(({className:r,...a},s)=>F.jsx(Ic,{ref:s,className:lt("text-lg font-semibold text-foreground",r),...a}));Rx.displayName=Ic.displayName;const YC=R.forwardRef(({className:r,...a},s)=>F.jsx(Oc,{ref:s,className:lt("text-sm text-muted-foreground",r),...a}));YC.displayName=Oc.displayName;function XC(){const r=window.location.hash.slice(1);if(!r)return null;if(r==="raw")return{type:"raw",name:"raw"};if(r==="map")return{type:"map",name:"map"};const a=r.indexOf("/");if(a===-1)return null;const s=r.slice(0,a),l=decodeURIComponent(r.slice(a+1));return(s==="channel"||s==="contact")&&l?{type:s,name:l}:null}function JC(r){if(!r)return"";if(r.type==="raw")return"#raw";if(r.type==="map")return"#map";const a=r.type==="channel"&&r.name.startsWith("#")?r.name.slice(1):r.name;return`#${r.type}/${encodeURIComponent(a)}`}function eE(r){const a=JC(r);a!==window.location.hash&&window.history.replaceState(null,"",a||window.location.pathname)}const gA=500;function tE(){const r=R.useRef(null),a=R.useRef(null),s=R.useRef(new Set),[l,f]=R.useState(null),[d,m]=R.useState(null),[h,x]=R.useState(null),[p,y]=R.useState([]),[v,w]=R.useState([]),[S,T]=R.useState([]),[C,E]=R.useState(null),[P,B]=R.useState(!1),[k,N]=R.useState(!1),[I,z]=R.useState(!1),[j,H]=R.useState(!1),[$,U]=R.useState(0),[G,re]=R.useState(!1),[V,J]=R.useState(!1),le=R.useRef(null),se=R.useRef(null);R.useEffect(()=>{se.current=(d==null?void 0:d.name)??null},[d==null?void 0:d.name]);const de=R.useCallback(te=>{const me=se.current;if(!me)return!1;const Ee=me.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`@\\[${Ee}\\]`,"i").test(te)},[]),{messages:q,messagesLoading:ge,loadingOlder:ne,hasOlderMessages:D,setMessages:Z,fetchMessages:K,fetchOlderMessages:X,addMessageIfNew:fe,updateMessageAck:he}=ly(C),{unreadCounts:ke,mentions:Ae,lastMessageTimes:qe,incrementUnread:Ye,markAllRead:Et,trackNewMessage:ht}=Fv(v,p,C,d==null?void 0:d.name),{repeaterLoggedIn:Se,activeContactIsRepeater:Ve,handleTelemetryRequest:dt,handleRepeaterCommand:Mt}=Tv(C,p,Z),vt=R.useMemo(()=>({onHealth:te=>{const me=le.current;le.current=te,f(te),me!==null&&me.radio_connected!==te.radio_connected&&(te.radio_connected?Lt.success("Radio connected",{description:te.serial_port?`Connected to ${te.serial_port}`:void 0}):Lt.error("Radio disconnected",{description:"Check radio connection and power"}))},onError:te=>{Lt.error(te.message,{description:te.details})},onContacts:te=>y(te),onChannels:te=>w(te),onMessage:te=>{const me=a.current,Ee=me?te.type==="CHAN"&&me.type==="channel"?te.conversation_key===me.id:te.type==="PRIV"&&me.type==="contact"?te.conversation_key&&yA(me.id,te.conversation_key):!1:!1;if(Ee&&fe(te),ht(te),!te.outgoing&&!Ee){const He=Fu(te);if(s.current.has(He))return;if(s.current.add(He),s.current.size>1e3){const nt=Array.from(s.current);s.current=new Set(nt.slice(-500))}let ze=null;if(te.type==="CHAN"&&te.conversation_key?ze=Dr("channel",te.conversation_key):te.type==="PRIV"&&te.conversation_key&&(ze=Dr("contact",te.conversation_key)),ze){const nt=de(te.text);Ye(ze,nt)}}},onContact:te=>{y(me=>{const Ee=me.findIndex(He=>He.public_key===te.public_key);if(Ee>=0){const He=[...me],ze=me[Ee];return He[Ee]={...ze,...te,name:te.name??ze.name,last_path:te.last_path??ze.last_path,lat:te.lat??ze.lat,lon:te.lon??ze.lon},He}return[...me,te]})},onRawPacket:te=>{T(me=>{if(me.some(He=>He.id===te.id))return me;const Ee=[...me,te];return Ee.length>gA?Ee.slice(-gA):Ee})},onMessageAcked:(te,me)=>{he(te,me)}}),[fe,ht,Ye,he,de]);kv(vt);const ot=R.useCallback(async()=>{try{const te=await at.getRadioConfig();m(te)}catch(te){console.error("Failed to fetch config:",te)}},[]),Qe=R.useCallback(async()=>{try{const te=await at.getSettings();x(te)}catch(te){console.error("Failed to fetch app settings:",te)}},[]),Xe=R.useCallback(async()=>{try{const te=await at.getUndecryptedPacketCount();U(te.count)}catch(te){console.error("Failed to fetch undecrypted count:",te)}},[]);R.useEffect(()=>{ot(),Qe(),Xe()},[ot,Qe,Xe]);const et=R.useCallback(()=>{const te=XC();if(!te)return null;if(te.type==="raw")return{type:"raw",id:"raw",name:"Raw Packet Feed"};if(te.type==="channel"){const me=v.find(Ee=>Ee.name===te.name||Ee.name===`#${te.name}`);if(me)return{type:"channel",id:me.key,name:me.name}}if(te.type==="contact"){const me=p.find(Ee=>Vo(Ee.name,Ee.public_key)===te.name);if(me)return{type:"contact",id:me.public_key,name:Vo(me.name,me.public_key)}}return null},[v,p]),Oe=R.useRef(!1);R.useEffect(()=>{if(Oe.current||C||v.length===0&&p.length===0)return;const te=et();if(te){E(te),Oe.current=!0;return}const me=v.find(Ee=>Ee.name==="Public");me&&(E({type:"channel",id:me.key,name:me.name}),Oe.current=!0)},[v,p,C,et]),R.useEffect(()=>{a.current=C,C&&eE(C)},[C]);const _t=R.useCallback(async te=>{C&&(C.type==="channel"?await at.sendChannelMessage(C.id,te):await at.sendDirectMessage(C.id,te),await K())},[C,K]),$t=R.useCallback(async te=>{await at.updateRadioConfig(te),await ot()},[ot]),Un=R.useCallback(async te=>{await at.updateSettings(te),await Qe()},[Qe]),It=R.useCallback(async te=>{await at.setPrivateKey(te),await ot()},[ot]),Jt=R.useCallback(async()=>{await at.rebootRadio(),f(me=>me&&{...me,radio_connected:!1}),(async()=>{for(let me=0;me<30;me++){await new Promise(Ee=>setTimeout(Ee,1e3));try{const Ee=await at.getHealth();if(f(Ee),Ee.radio_connected){ot();return}}catch{}}})()},[ot]),fn=R.useCallback(async()=>{try{await at.sendAdvertisement(!0),Lt.success("Advertisement sent")}catch(te){console.error("Failed to send advertisement:",te),Lt.error("Failed to send advertisement",{description:te instanceof Error?te.message:"Check radio connection"})}},[]),Sn=R.useCallback(te=>{var me;(me=r.current)==null||me.appendText(`@[${te}] `)},[]),Ut=R.useCallback(te=>{E(te),H(!1)},[]),St=R.useCallback(async te=>{if(confirm("Delete this channel? Message history will be preserved."))try{await at.deleteChannel(te),w(me=>me.filter(Ee=>Ee.key!==te)),E(null),Lt.success("Channel deleted")}catch(me){console.error("Failed to delete channel:",me),Lt.error("Failed to delete channel",{description:me instanceof Error?me.message:void 0})}},[]),Zt=R.useCallback(async te=>{if(confirm("Delete this contact? Message history will be preserved."))try{await at.deleteContact(te),y(me=>me.filter(Ee=>Ee.public_key!==te)),E(null),Lt.success("Contact deleted")}catch(me){console.error("Failed to delete contact:",me),Lt.error("Failed to delete contact",{description:me instanceof Error?me.message:void 0})}},[]),Zn=R.useCallback(async(te,me,Ee)=>{const He={public_key:me,name:te,type:0,flags:0,last_path:null,last_path_len:-1,last_advert:null,lat:null,lon:null,last_seen:null,on_radio:!1,last_contacted:null,last_read_at:null};y(ze=>[...ze,He]),E({type:"contact",id:me,name:Vo(te,me)}),Ee&&console.log("Contact historical decryption not yet supported")},[]),xn=R.useCallback(async(te,me,Ee)=>{const He=await at.createChannel(te,me),ze=await at.getChannels();w(ze),E({type:"channel",id:He.key,name:te}),Ee&&(await at.decryptHistoricalPackets({key_type:"channel",channel_key:He.key}),Xe())},[Xe]),pe=R.useCallback(async(te,me)=>{const Ee=te.startsWith("#")?te:`#${te}`,He=await at.createChannel(Ee),ze=await at.getChannels();w(ze),E({type:"channel",id:He.key,name:Ee}),me&&(await at.decryptHistoricalPackets({key_type:"channel",channel_name:Ee}),Xe())},[Xe]),we=F.jsx(E_,{contacts:p,channels:v,activeConversation:C,onSelectConversation:Ut,onNewMessage:()=>{B(!0),H(!1)},lastMessageTimes:qe,unreadCounts:ke,mentions:Ae,showCracker:G,crackerRunning:V,onToggleCracker:()=>re(te=>!te),onMarkAllRead:Et});return F.jsxs("div",{className:"flex flex-col h-dvh",children:[F.jsx(vy,{health:l,config:d,onConfigClick:()=>N(!0),onMaintenanceClick:()=>z(!0),onAdvertise:fn,onMenuClick:()=>H(!0)}),F.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[F.jsx("div",{className:"hidden md:block",children:we}),F.jsx(QC,{open:j,onOpenChange:H,children:F.jsxs(Tx,{side:"left",className:"w-[280px] p-0 flex flex-col",hideCloseButton:!0,children:[F.jsx(Dx,{className:"sr-only",children:F.jsx(Rx,{children:"Navigation"})}),F.jsx("div",{className:"flex-1 overflow-hidden",children:we})]})}),F.jsx("div",{className:"flex-1 flex flex-col bg-background min-w-0",children:C?C.type==="map"?F.jsxs(F.Fragment,{children:[F.jsx("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:"Node Map"}),F.jsx("div",{className:"flex-1 overflow-hidden",children:F.jsx(M2,{contacts:p})})]}):C.type==="raw"?F.jsxs(F.Fragment,{children:[F.jsx("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:"Raw Packet Feed"}),F.jsx("div",{className:"flex-1 overflow-hidden",children:F.jsx(c2,{packets:S})})]}):F.jsxs(F.Fragment,{children:[F.jsxs("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium gap-2",children:[F.jsxs("span",{className:"flex flex-col sm:flex-row sm:items-center sm:gap-2 min-w-0 flex-1",children:[F.jsxs("span",{className:"truncate",children:[C.type==="channel"&&!C.name.startsWith("#")?"#":"",C.name]}),F.jsxs("span",{className:"font-normal text-xs text-muted-foreground font-mono truncate",children:[C.id,C.type==="contact"&&(()=>{const te=p.find(Ee=>Ee.public_key===C.id);if(!te)return null;const me=[];return te.last_seen&&me.push(`Last heard: ${Ec(te.last_seen)}`),te.last_path_len===-1?me.push("flood"):te.last_path_len===0?me.push("direct"):te.last_path_len>0&&me.push(`${te.last_path_len} hop${te.last_path_len>1?"s":""}`),me.length>0?F.jsxs("span",{className:"ml-2 font-sans",children:["(",me.join(", "),")"]}):null})()]})]}),!(C.type==="channel"&&C.name==="Public")&&F.jsx("button",{className:"py-1 px-3 bg-destructive/20 border border-destructive/30 text-destructive rounded text-xs cursor-pointer hover:bg-destructive/30 flex-shrink-0",onClick:()=>{C.type==="channel"?St(C.id):Zt(C.id)},children:"Delete"})]}),F.jsx(S_,{messages:q,contacts:p,loading:ge,loadingOlder:ne,hasOlderMessages:D,onSenderClick:C.type==="channel"?Sn:void 0,onLoadOlder:X,radioName:d==null?void 0:d.name}),F.jsx(R_,{ref:r,onSend:Ve?Se?Mt:dt:_t,disabled:!(l!=null&&l.radio_connected),isRepeaterMode:Ve&&!Se,conversationType:C.type,senderName:d==null?void 0:d.name,placeholder:l!=null&&l.radio_connected?Ve?Se?"Send CLI command (requires admin login)...":`Enter password for ${C.name} (or . for none)...`:`Message ${C.name}...`:"Radio not connected"})]}):F.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:"Select a conversation or start a new one"})})]}),F.jsx("div",{className:lt("border-t border-border bg-background transition-all duration-200 overflow-hidden",G?"h-[275px]":"h-0"),children:F.jsx(GC,{packets:S,channels:v,visible:G,onChannelCreate:async(te,me)=>{const Ee=await at.createChannel(te,me),He=await at.getChannels();w(He),await at.decryptHistoricalPackets({key_type:"channel",channel_key:Ee.key}),Xe()},onRunningChange:J})}),F.jsx(Yw,{open:P,contacts:p,undecryptedCount:$,onClose:()=>B(!1),onSelectConversation:te=>{E(te),B(!1)},onCreateContact:Zn,onCreateChannel:xn,onCreateHashtagChannel:pe}),F.jsx(o2,{open:k,config:d,appSettings:h,onClose:()=>N(!1),onSave:$t,onSaveAppSettings:Un,onSetPrivateKey:It,onReboot:Jt}),F.jsx(s2,{open:I,health:l,onClose:()=>z(!1),onHealthRefresh:async()=>{const te=await at.getHealth();f(te)}}),F.jsx(ay,{position:"top-right"})]})}Cv.createRoot(document.getElementById("root")).render(F.jsx(R.StrictMode,{children:F.jsx(tE,{})})); -//# sourceMappingURL=index-DkHyTtP0.js.map + `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}return Hf=f,Hf}var qb=Wb();const Gb=Us(qb);function Qb(r){if(r.length<4)return null;try{const s=parseInt(r.slice(0,2),16)&3;let l=2;if(s===0||s===3){if(r.length{const Se=new Ub;V.current=Se,H(Se.isGpuAvailable());const Ve=new Gb;return J.current=Ve,()=>{Se.destroy(),V.current=null,Ve.disable(),J.current=null}},[]),R.useEffect(()=>{!f||I||H2(async()=>{const{ENGLISH_WORDLIST:Se}=await import("./wordlist-BV_32SRm.js");return{ENGLISH_WORDLIST:Se}},[]).then(({ENGLISH_WORDLIST:Se})=>{V.current&&(V.current.setWordlist(Se),z(!0))}).catch(Se=>{console.error("Failed to load wordlist:",Se),Lt.error("Failed to load wordlist",{description:"Cracking will not be available"})})},[f,I]),R.useEffect(()=>{const Se=()=>{at.getUndecryptedPacketCount().then(({count:dt})=>U(dt)).catch(()=>U(null))};Se();const Ve=setInterval(Se,3e4);return()=>clearInterval(Ve)},[]);const fe=R.useMemo(()=>new Set(a.map(Se=>Se.key.toUpperCase())),[a]),he=r.filter(Se=>Se.payload_type==="GROUP_TEXT"&&!Se.decrypted);R.useEffect(()=>{let Se=0;B(Ve=>{const dt=new Map(Ve);let Mt=!1;for(const vt of he)if(!dt.has(vt.id)){const ot=Qb(vt.data);if(ot&&X.current.has(ot)){Se++;continue}ot&&X.current.add(ot),dt.set(vt.id,{packet:vt,attempts:0,lastAttemptLength:0,status:"pending"}),Mt=!0}return Mt?(q.current=dt,dt):Ve}),Se>0&&re(Ve=>Ve+Se)},[he.length]),R.useEffect(()=>{q.current=P},[P]),R.useEffect(()=>{ge.current=p},[p]),R.useEffect(()=>{ne.current=h},[h]),R.useEffect(()=>{D.current=v},[v]),R.useEffect(()=>{Z.current=S},[S]),R.useEffect(()=>{K.current=new Set(he.map(Se=>Se.id))},[he]),R.useEffect(()=>{l==null||l(d)},[d,l]);const ke=Array.from(P.values()).filter(Se=>Se.status==="pending").length,Ae=Array.from(P.values()).filter(Se=>Se.status==="cracked").length,qe=Array.from(P.values()).filter(Se=>Se.status==="failed").length,Ye=R.useCallback(async()=>{if(de.current||!V.current||!le.current)return;const Se=q.current;let Ve=null,dt=null;for(const[Qe,Xe]of Se.entries())if(Xe.status==="pending"){Ve=Xe,dt=Qe;break}if(!Ve&&ge.current){const Qe=Array.from(Se.entries()).filter(([,Xe])=>Xe.status==="failed"&&Xe.lastAttemptLength<10);Qe.length>0&&(Qe.sort((Xe,et)=>Xe[1].lastAttemptLength-et[1].lastAttemptLength),[dt,Ve]=Qe[0])}if(!Ve||dt===null){le.current&&setTimeout(()=>Ye(),1e3);return}if(!K.current.has(dt)){B(Qe=>{const Xe=new Map(Qe);return Xe.delete(dt),Xe}),le.current&&setTimeout(()=>Ye(),10);return}de.current=!0;const Mt=ne.current,vt=Ve.lastAttemptLength>0,ot=vt?Ve.lastAttemptLength+1:Mt;try{const Qe=await V.current.crack(Ve.packet.data,{maxLength:ot,useTimestampFilter:!0,useUtf8Filter:!0,...Z.current&&{gpuDispatchMs:1e4},...vt&&{useDictionary:!1,startingLength:ot}},Xe=>{E(Xe)});if(se.current){se.current=!1,de.current=!1,E(null);return}if(Qe.found&&Qe.roomName&&Qe.key){B(Oe=>{const _t=new Map(Oe),$t=_t.get(dt);return $t&&_t.set(dt,{...$t,status:"cracked",attempts:$t.attempts+1,lastAttemptLength:ot}),_t});const Xe={roomName:Qe.roomName,key:Qe.key,packetId:dt,message:Qe.decryptedMessage||"",crackedAt:Date.now()};N(Oe=>[...Oe,Xe]);const et=Qe.key.toUpperCase();if(!fe.has(et))try{const Oe="#"+Qe.roomName;await s(Oe,Qe.key),D.current&&await at.decryptHistoricalPackets({key_type:"channel",channel_name:Oe})}catch(Oe){console.error("Failed to create channel or decrypt historical:",Oe),Lt.error("Failed to save cracked channel",{description:Oe instanceof Error?Oe.message:"Channel discovered but could not be saved"})}}else B(Xe=>{const et=new Map(Xe),Oe=et.get(dt);return Oe&&et.set(dt,{...Oe,status:"failed",attempts:Oe.attempts+1,lastAttemptLength:ot}),et})}catch(Qe){console.error("Cracking error:",Qe),B(Xe=>{const et=new Map(Xe),Oe=et.get(dt);return Oe&&et.set(dt,{...Oe,status:"failed",attempts:Oe.attempts+1,lastAttemptLength:ot}),et})}de.current=!1,E(null),le.current&&setTimeout(()=>Ye(),100)},[fe,s]),Et=()=>{var Se;if(!j){Lt.error("WebGPU not available",{description:"Cracking requires Chrome 113+ or Edge 113+ with WebGPU support."});return}m(!0),le.current=!0,se.current=!1,(Se=J.current)==null||Se.enable(),Ye()},ht=()=>{var Se,Ve;m(!1),le.current=!1,se.current=!0,(Se=V.current)==null||Se.abort(),(Ve=J.current)==null||Ve.disable()};return F.jsxs("div",{className:"flex flex-col h-full p-3 gap-3 bg-background border-t border-border",children:[F.jsxs("p",{className:"text-xs text-muted-foreground leading-relaxed",children:["This will attempt to dictionary attack, then brute force GroupText packets as they arrive, testing room names up to the specified length.",F.jsx("strong",{children:" Retry failed at n+1"})," will let the cracker return to the failed queue and pick up messages it couldn't crack, attempting them at one longer length.",F.jsx("strong",{children:" Decrypt historical"})," will run an async job on any room name it finds to see if any historically captured packets will decrypt with that key.",F.jsx("strong",{children:" Turbo mode"})," will push your GPU to the max (target dispatch time of 10s) and may allow accelerated cracking and/or system instability."]}),F.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[F.jsx("button",{onClick:d?ht:Et,disabled:!I||j===!1,className:lt("px-4 py-1.5 rounded text-sm font-medium",d?"bg-destructive text-destructive-foreground hover:bg-destructive/90":"bg-primary text-primary-foreground hover:bg-primary/90","disabled:opacity-50 disabled:cursor-not-allowed"),children:d?"Stop":"Start Cracking"}),F.jsxs("div",{className:"flex items-center gap-2",children:[F.jsx("label",{className:"text-sm text-muted-foreground",children:"Max Length:"}),F.jsx("input",{type:"number",min:1,max:10,value:h,onChange:Se=>x(Math.min(10,Math.max(1,parseInt(Se.target.value)||6))),className:"w-14 px-2 py-1 text-sm bg-muted border border-border rounded"})]}),F.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[F.jsx("input",{type:"checkbox",checked:p,onChange:Se=>y(Se.target.checked),className:"rounded"}),"Retry failed at n+1"]}),F.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[F.jsx("input",{type:"checkbox",checked:v,onChange:Se=>w(Se.target.checked),className:"rounded"}),"Decrypt historical packets if key found"]}),v&&F.jsx("span",{className:"text-xs text-muted-foreground",children:$!==null&&$>0?`(${$.toLocaleString()} packets; messages will stream in as decrypted)`:"(messages will stream in as decrypted)"}),F.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[F.jsx("input",{type:"checkbox",checked:S,onChange:Se=>T(Se.target.checked),className:"rounded"}),"Turbo mode (experimental)"]})]}),F.jsxs("div",{className:"flex gap-4 text-sm",children:[F.jsxs("span",{className:"text-muted-foreground",children:["Pending: ",F.jsx("span",{className:"text-foreground font-medium",children:ke})]}),F.jsxs("span",{className:"text-muted-foreground",children:["Cracked: ",F.jsx("span",{className:"text-green-500 font-medium",children:Ae})]}),F.jsxs("span",{className:"text-muted-foreground",children:["Failed: ",F.jsx("span",{className:"text-destructive font-medium",children:qe})]}),G>0&&F.jsxs("span",{className:"text-muted-foreground",children:["Skipped (dup):"," ",F.jsx("span",{className:"text-muted-foreground font-medium",children:G})]})]}),b&&F.jsxs("div",{className:"space-y-1",children:[F.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[F.jsxs("span",{children:[b.phase==="wordlist"?"Dictionary":b.phase==="bruteforce"?"Bruteforce":"Public Key",b.phase==="bruteforce"&&` - Length ${b.currentLength}`,":"," ",b.currentPosition]}),F.jsxs("span",{children:[b.rateKeysPerSec>=1e9?`${(b.rateKeysPerSec/1e9).toFixed(2)} Gkeys/s`:`${(b.rateKeysPerSec/1e6).toFixed(1)} Mkeys/s`," ","• ETA:"," ",b.etaSeconds<60?`${Math.round(b.etaSeconds)}s`:`${Math.round(b.etaSeconds/60)}m`]})]}),F.jsx("div",{className:"h-2 bg-muted rounded overflow-hidden",children:F.jsx("div",{className:"h-full bg-primary transition-all duration-200",style:{width:`${b.percent}%`}})})]}),j===!1&&F.jsx("div",{className:"text-sm text-destructive",children:"WebGPU not available. Cracking requires Chrome 113+ or Edge 113+."}),!I&&j!==!1&&F.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading wordlist..."}),k.length>0&&F.jsxs("div",{className:"flex-1 overflow-y-auto min-h-0",children:[F.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Cracked Rooms:"}),F.jsx("div",{className:"space-y-1",children:k.map((Se,Ve)=>F.jsxs("div",{className:"text-sm bg-green-950/30 border border-green-900/50 rounded px-2 py-1",children:[F.jsxs("span",{className:"text-green-400 font-medium",children:["#",Se.roomName]}),F.jsxs("span",{className:"text-muted-foreground ml-2 text-xs",children:['"',Se.message.slice(0,50),Se.message.length>50?"...":"",'"']})]},Ve))})]})]})}const $b=vg,Yb=yg,Dx=R.forwardRef(({className:r,...a},s)=>F.jsx(Lc,{className:lt("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...a,ref:s}));Dx.displayName=Lc.displayName;const Xb=Dc("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),Rx=R.forwardRef(({side:r="right",className:a,children:s,hideCloseButton:l=!1,...f},d)=>F.jsxs(Yb,{children:[F.jsx(Dx,{}),F.jsxs(Mc,{ref:d,className:lt(Xb({side:r}),a),...f,children:[!l&&F.jsxs(_g,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[F.jsx(kA,{className:"h-4 w-4"}),F.jsx("span",{className:"sr-only",children:"Close"})]}),s]})]}));Rx.displayName=Mc.displayName;const Fx=({className:r,...a})=>F.jsx("div",{className:lt("flex flex-col space-y-2 text-center sm:text-left",r),...a});Fx.displayName="SheetHeader";const Nx=R.forwardRef(({className:r,...a},s)=>F.jsx(Ic,{ref:s,className:lt("text-lg font-semibold text-foreground",r),...a}));Nx.displayName=Ic.displayName;const Jb=R.forwardRef(({className:r,...a},s)=>F.jsx(Oc,{ref:s,className:lt("text-sm text-muted-foreground",r),...a}));Jb.displayName=Oc.displayName;function eE(){const r=window.location.hash.slice(1);if(!r)return null;if(r==="raw")return{type:"raw",name:"raw"};if(r==="map")return{type:"map",name:"map"};const a=r.indexOf("/");if(a===-1)return null;const s=r.slice(0,a),l=decodeURIComponent(r.slice(a+1));return(s==="channel"||s==="contact")&&l?{type:s,name:l}:null}function tE(r){if(!r)return"";if(r.type==="raw")return"#raw";if(r.type==="map")return"#map";const a=r.type==="channel"&&r.name.startsWith("#")?r.name.slice(1):r.name;return`#${r.type}/${encodeURIComponent(a)}`}function nE(r){const a=tE(r);a!==window.location.hash&&window.history.replaceState(null,"",a||window.location.pathname)}const vA=500;function rE(){const r=R.useRef(null),a=R.useRef(null),s=R.useRef(new Set),[l,f]=R.useState(null),[d,m]=R.useState(null),[h,x]=R.useState(null),[p,y]=R.useState([]),[v,w]=R.useState([]),[S,T]=R.useState([]),[b,E]=R.useState(null),[P,B]=R.useState(!1),[k,N]=R.useState(!1),[I,z]=R.useState(!1),[j,H]=R.useState(!1),[$,U]=R.useState(0),[G,re]=R.useState(!1),[V,J]=R.useState(!1),le=R.useRef(null),se=R.useRef(null);R.useEffect(()=>{se.current=(d==null?void 0:d.name)??null},[d==null?void 0:d.name]);const de=R.useCallback(te=>{const me=se.current;if(!me)return!1;const Ee=me.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`@\\[${Ee}\\]`,"i").test(te)},[]),{messages:q,messagesLoading:ge,loadingOlder:ne,hasOlderMessages:D,setMessages:Z,fetchMessages:K,fetchOlderMessages:X,addMessageIfNew:fe,updateMessageAck:he}=cy(b),{unreadCounts:ke,mentions:Ae,lastMessageTimes:qe,incrementUnread:Ye,markAllRead:Et,trackNewMessage:ht}=Lv(v,p,b,d==null?void 0:d.name),{repeaterLoggedIn:Se,activeContactIsRepeater:Ve,handleTelemetryRequest:dt,handleRepeaterCommand:Mt}=Rv(b,p,Z),vt=R.useMemo(()=>({onHealth:te=>{const me=le.current;le.current=te,f(te),me!==null&&me.radio_connected!==te.radio_connected&&(te.radio_connected?Lt.success("Radio connected",{description:te.serial_port?`Connected to ${te.serial_port}`:void 0}):Lt.error("Radio disconnected",{description:"Check radio connection and power"}))},onError:te=>{Lt.error(te.message,{description:te.details})},onContacts:te=>y(te),onChannels:te=>w(te),onMessage:te=>{const me=a.current,Ee=me?te.type==="CHAN"&&me.type==="channel"?te.conversation_key===me.id:te.type==="PRIV"&&me.type==="contact"?te.conversation_key&&wA(me.id,te.conversation_key):!1:!1;if(Ee&&fe(te),ht(te),!te.outgoing&&!Ee){const He=Fu(te);if(s.current.has(He))return;if(s.current.add(He),s.current.size>1e3){const nt=Array.from(s.current);s.current=new Set(nt.slice(-500))}let ze=null;if(te.type==="CHAN"&&te.conversation_key?ze=Dr("channel",te.conversation_key):te.type==="PRIV"&&te.conversation_key&&(ze=Dr("contact",te.conversation_key)),ze){const nt=de(te.text);Ye(ze,nt)}}},onContact:te=>{y(me=>{const Ee=me.findIndex(He=>He.public_key===te.public_key);if(Ee>=0){const He=[...me],ze=me[Ee];return He[Ee]={...ze,...te,name:te.name??ze.name,last_path:te.last_path??ze.last_path,lat:te.lat??ze.lat,lon:te.lon??ze.lon},He}return[...me,te]})},onRawPacket:te=>{T(me=>{if(me.some(He=>He.id===te.id))return me;const Ee=[...me,te];return Ee.length>vA?Ee.slice(-vA):Ee})},onMessageAcked:(te,me)=>{he(te,me)}}),[fe,ht,Ye,he,de]);Bv(vt);const ot=R.useCallback(async()=>{try{const te=await at.getRadioConfig();m(te)}catch(te){console.error("Failed to fetch config:",te)}},[]),Qe=R.useCallback(async()=>{try{const te=await at.getSettings();x(te)}catch(te){console.error("Failed to fetch app settings:",te)}},[]),Xe=R.useCallback(async()=>{try{const te=await at.getUndecryptedPacketCount();U(te.count)}catch(te){console.error("Failed to fetch undecrypted count:",te)}},[]);R.useEffect(()=>{ot(),Qe(),Xe()},[ot,Qe,Xe]);const et=R.useCallback(()=>{const te=eE();if(!te)return null;if(te.type==="raw")return{type:"raw",id:"raw",name:"Raw Packet Feed"};if(te.type==="channel"){const me=v.find(Ee=>Ee.name===te.name||Ee.name===`#${te.name}`);if(me)return{type:"channel",id:me.key,name:me.name}}if(te.type==="contact"){const me=p.find(Ee=>Vo(Ee.name,Ee.public_key)===te.name);if(me)return{type:"contact",id:me.public_key,name:Vo(me.name,me.public_key)}}return null},[v,p]),Oe=R.useRef(!1);R.useEffect(()=>{if(Oe.current||b||v.length===0&&p.length===0)return;const te=et();if(te){E(te),Oe.current=!0;return}const me=v.find(Ee=>Ee.name==="Public");me&&(E({type:"channel",id:me.key,name:me.name}),Oe.current=!0)},[v,p,b,et]),R.useEffect(()=>{a.current=b,b&&nE(b)},[b]);const _t=R.useCallback(async te=>{b&&(b.type==="channel"?await at.sendChannelMessage(b.id,te):await at.sendDirectMessage(b.id,te),await K())},[b,K]),$t=R.useCallback(async te=>{await at.updateRadioConfig(te),await ot()},[ot]),Un=R.useCallback(async te=>{await at.updateSettings(te),await Qe()},[Qe]),It=R.useCallback(async te=>{await at.setPrivateKey(te),await ot()},[ot]),Jt=R.useCallback(async()=>{await at.rebootRadio(),f(me=>me&&{...me,radio_connected:!1}),(async()=>{for(let me=0;me<30;me++){await new Promise(Ee=>setTimeout(Ee,1e3));try{const Ee=await at.getHealth();if(f(Ee),Ee.radio_connected){ot();return}}catch{}}})()},[ot]),fn=R.useCallback(async()=>{try{await at.sendAdvertisement(!0),Lt.success("Advertisement sent")}catch(te){console.error("Failed to send advertisement:",te),Lt.error("Failed to send advertisement",{description:te instanceof Error?te.message:"Check radio connection"})}},[]),Sn=R.useCallback(te=>{var me;(me=r.current)==null||me.appendText(`@[${te}] `)},[]),Ut=R.useCallback(te=>{E(te),H(!1)},[]),St=R.useCallback(async te=>{if(confirm("Delete this channel? Message history will be preserved."))try{await at.deleteChannel(te),w(me=>me.filter(Ee=>Ee.key!==te)),E(null),Lt.success("Channel deleted")}catch(me){console.error("Failed to delete channel:",me),Lt.error("Failed to delete channel",{description:me instanceof Error?me.message:void 0})}},[]),Zt=R.useCallback(async te=>{if(confirm("Delete this contact? Message history will be preserved."))try{await at.deleteContact(te),y(me=>me.filter(Ee=>Ee.public_key!==te)),E(null),Lt.success("Contact deleted")}catch(me){console.error("Failed to delete contact:",me),Lt.error("Failed to delete contact",{description:me instanceof Error?me.message:void 0})}},[]),Zn=R.useCallback(async(te,me,Ee)=>{const He={public_key:me,name:te,type:0,flags:0,last_path:null,last_path_len:-1,last_advert:null,lat:null,lon:null,last_seen:null,on_radio:!1,last_contacted:null,last_read_at:null};y(ze=>[...ze,He]),E({type:"contact",id:me,name:Vo(te,me)}),Ee&&console.log("Contact historical decryption not yet supported")},[]),xn=R.useCallback(async(te,me,Ee)=>{const He=await at.createChannel(te,me),ze=await at.getChannels();w(ze),E({type:"channel",id:He.key,name:te}),Ee&&(await at.decryptHistoricalPackets({key_type:"channel",channel_key:He.key}),Xe())},[Xe]),pe=R.useCallback(async(te,me)=>{const Ee=te.startsWith("#")?te:`#${te}`,He=await at.createChannel(Ee),ze=await at.getChannels();w(ze),E({type:"channel",id:He.key,name:Ee}),me&&(await at.decryptHistoricalPackets({key_type:"channel",channel_name:Ee}),Xe())},[Xe]),we=F.jsx(S_,{contacts:p,channels:v,activeConversation:b,onSelectConversation:Ut,onNewMessage:()=>{B(!0),H(!1)},lastMessageTimes:qe,unreadCounts:ke,mentions:Ae,showCracker:G,crackerRunning:V,onToggleCracker:()=>re(te=>!te),onMarkAllRead:Et});return F.jsxs("div",{className:"flex flex-col h-dvh",children:[F.jsx(_y,{health:l,config:d,onConfigClick:()=>N(!0),onMaintenanceClick:()=>z(!0),onAdvertise:fn,onMenuClick:()=>H(!0)}),F.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[F.jsx("div",{className:"hidden md:block",children:we}),F.jsx($b,{open:j,onOpenChange:H,children:F.jsxs(Rx,{side:"left",className:"w-[280px] p-0 flex flex-col",hideCloseButton:!0,children:[F.jsx(Fx,{className:"sr-only",children:F.jsx(Nx,{children:"Navigation"})}),F.jsx("div",{className:"flex-1 overflow-hidden",children:we})]})}),F.jsx("div",{className:"flex-1 flex flex-col bg-background min-w-0",children:b?b.type==="map"?F.jsxs(F.Fragment,{children:[F.jsx("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:"Node Map"}),F.jsx("div",{className:"flex-1 overflow-hidden",children:F.jsx(O2,{contacts:p})})]}):b.type==="raw"?F.jsxs(F.Fragment,{children:[F.jsx("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:"Raw Packet Feed"}),F.jsx("div",{className:"flex-1 overflow-hidden",children:F.jsx(f2,{packets:S})})]}):F.jsxs(F.Fragment,{children:[F.jsxs("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium gap-2",children:[F.jsxs("span",{className:"flex flex-col sm:flex-row sm:items-center sm:gap-2 min-w-0 flex-1",children:[F.jsxs("span",{className:"truncate",children:[b.type==="channel"&&!b.name.startsWith("#")?"#":"",b.name]}),F.jsxs("span",{className:"font-normal text-xs text-muted-foreground font-mono truncate",children:[b.id,b.type==="contact"&&(()=>{const te=p.find(Ee=>Ee.public_key===b.id);if(!te)return null;const me=[];return te.last_seen&&me.push(`Last heard: ${Ec(te.last_seen)}`),te.last_path_len===-1?me.push("flood"):te.last_path_len===0?me.push("direct"):te.last_path_len>0&&me.push(`${te.last_path_len} hop${te.last_path_len>1?"s":""}`),me.length>0?F.jsxs("span",{className:"ml-2 font-sans",children:["(",me.join(", "),")"]}):null})()]})]}),!(b.type==="channel"&&b.name==="Public")&&F.jsx("button",{className:"py-1 px-3 bg-destructive/20 border border-destructive/30 text-destructive rounded text-xs cursor-pointer hover:bg-destructive/30 flex-shrink-0",onClick:()=>{b.type==="channel"?St(b.id):Zt(b.id)},children:"Delete"})]}),F.jsx(P_,{messages:q,contacts:p,loading:ge,loadingOlder:ne,hasOlderMessages:D,onSenderClick:b.type==="channel"?Sn:void 0,onLoadOlder:X,radioName:d==null?void 0:d.name}),F.jsx(N_,{ref:r,onSend:Ve?Se?Mt:dt:_t,disabled:!(l!=null&&l.radio_connected),isRepeaterMode:Ve&&!Se,conversationType:b.type,senderName:d==null?void 0:d.name,placeholder:l!=null&&l.radio_connected?Ve?Se?"Send CLI command (requires admin login)...":`Enter password for ${b.name} (or . for none)...`:`Message ${b.name}...`:"Radio not connected"})]}):F.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:"Select a conversation or start a new one"})})]}),F.jsx("div",{className:lt("border-t border-border bg-background transition-all duration-200 overflow-hidden",G?"h-[275px]":"h-0"),children:F.jsx(Kb,{packets:S,channels:v,visible:G,onChannelCreate:async(te,me)=>{const Ee=await at.createChannel(te,me),He=await at.getChannels();w(He),await at.decryptHistoricalPackets({key_type:"channel",channel_key:Ee.key}),Xe()},onRunningChange:J})}),F.jsx(Jw,{open:P,contacts:p,undecryptedCount:$,onClose:()=>B(!1),onSelectConversation:te=>{E(te),B(!1)},onCreateContact:Zn,onCreateChannel:xn,onCreateHashtagChannel:pe}),F.jsx(a2,{open:k,config:d,appSettings:h,onClose:()=>N(!1),onSave:$t,onSaveAppSettings:Un,onSetPrivateKey:It,onReboot:Jt}),F.jsx(l2,{open:I,health:l,onClose:()=>z(!1),onHealthRefresh:async()=>{const te=await at.getHealth();f(te)}}),F.jsx(uy,{position:"top-right"})]})}kv.createRoot(document.getElementById("root")).render(F.jsx(R.StrictMode,{children:F.jsx(rE,{})})); +//# sourceMappingURL=index-CG0iOYhX.js.map diff --git a/frontend/dist/assets/index-CG0iOYhX.js.map b/frontend/dist/assets/index-CG0iOYhX.js.map new file mode 100644 index 0000000..bd6fe54 --- /dev/null +++ b/frontend/dist/assets/index-CG0iOYhX.js.map @@ -0,0 +1 @@ +{"version":3,"mappings":"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ACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,QAAY,UAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,SACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UAAU,EAClD,CAAI,WAAY,WAAY,WAAY,WACpC,SAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,UAAY,UAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,SAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,UAAY,WAAY,WACpC,UAAY,WAAY,SAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,WAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UAAU,EAClD,CAAI,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,SACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,UAAY,SAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,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","names":["l","n","p","q","r","t","u","v","w","x","z","A","a","B","C","D","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","X","react_production_min","reactModule","require$$0","reactJsxRuntime_production_min","jsxRuntimeModule","exports","y","E","schedulerModule","aa","ca","require$$1","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","fd","gd","hd","id","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","reactDom_production_min","checkDCE","err","reactDomModule","client","API_BASE","UNREAD_FETCH_LIMIT","fetchJson","url","options","res","error","api","config","privateKey","flood","limit","offset","publicKey","password","command","key","name","params","searchParams","query","conversations","limitPerConversation","destination","text","channelKey","pruneUndecryptedDays","settings","useWebSocket","wsRef","useRef","reconnectTimeoutRef","connected","setConnected","useState","connect","useCallback","protocol","wsUrl","ws","event","msg","_a","_b","_c","_d","_e","_f","ackData","_g","_h","useEffect","pingInterval","CONTACT_TYPE_REPEATER","formatDuration","seconds","days","hours","mins","formatTelemetry","telemetry","formatNeighbors","neighbors","sorted","lines","snr","formatAcl","acl","entry","createLocalMessage","conversationKey","outgoing","idOffset","now","useRepeaterMode","activeConversation","contacts","setMessages","repeaterLoggedIn","setRepeaterLoggedIn","activeContactIsRepeater","useMemo","contact","handleTelemetryRequest","telemetryMessage","neighborsMessage","aclMessage","prev","errorMessage","handleRepeaterCommand","commandMessage","response","responseMessage","PUBKEY_PREFIX_LENGTH","getPubkeyPrefix","pubkeysMatch","getContactDisplayName","pubkey","LAST_MESSAGE_KEY","loadTimes","stored","saveTimes","times","getLastMessageTimes","setLastMessageTime","stateKey","timestamp","getStateKey","type","messageContainsMention","escaped","useUnreadCounts","channels","myName","unreadCounts","setUnreadCounts","mentions","setMentions","lastMessageTimes","setLastMessageTimes","myNameRef","fetchedChannels","fetchedContacts","newChannels","newContacts","bulkMessages","newUnreadCounts","newMentions","newLastMessageTimes","channel","msgs","lastRead","unreadMsgs","latestTime","next","incrementUnread","hasMention","markAllRead","markConversationRead","conv","trackNewMessage","updated","__insertCSS","code","head","style","getAsset","SuccessIcon","InfoIcon","WarningIcon","ErrorIcon","bars","Loader","visible","className","React","_","i","CloseIcon","useIsDocumentHidden","isDocumentHidden","setIsDocumentHidden","callback","toastsCounter","Observer","subscriber","index","data","_data_id","message","rest","alreadyExists","toast","dismissible","promise","shouldDismiss","result","originalPromise","isHttpResponse","promiseData","description","toastSettings","unwrap","resolve","reject","jsx","ToastState","toastFunction","basicToast","getHistory","getToasts","isAction","action","VISIBLE_TOASTS_AMOUNT","VIEWPORT_OFFSET","MOBILE_VIEWPORT_OFFSET","TOAST_LIFETIME","TOAST_WIDTH","GAP","SWIPE_THRESHOLD","TIME_BEFORE_UNMOUNT","cn","classes","getDefaultSwipeDirections","position","directions","Toast","props","_toast_classNames","_toast_classNames1","_toast_classNames2","_toast_classNames3","_toast_classNames4","_toast_classNames5","_toast_classNames6","_toast_classNames7","_toast_classNames8","ToasterInvert","unstyled","interacting","setHeights","visibleToasts","heights","toasts","expanded","removeToast","defaultRichColors","closeButtonFromToaster","cancelButtonStyle","actionButtonStyle","descriptionClassName","durationFromToaster","gap","expandByDefault","classNames","icons","closeButtonAriaLabel","swipeDirection","setSwipeDirection","swipeOutDirection","setSwipeOutDirection","mounted","setMounted","removed","setRemoved","swiping","setSwiping","swipeOut","setSwipeOut","isSwiped","setIsSwiped","offsetBeforeRemove","setOffsetBeforeRemove","initialHeight","setInitialHeight","remainingTime","dragStartTime","toastRef","isFront","isVisible","toastType","toastClassname","toastDescriptionClassname","heightIndex","height","closeButton","_toast_closeButton","duration","closeTimerStartTimeRef","lastCloseTimerStartTimeRef","pointerStartRef","toastsHeightBefore","curr","reducerIndex","invert","disabled","toastNode","originalHeight","newHeight","deleteToast","timeoutId","elapsedTime","getLoadingIcon","icon","_toast_richColors","_icons_close","_toastRef_current","_toastRef_current1","_dragStartTime_current","swipeAmountX","swipeAmountY","timeTaken","swipeAmount","velocity","_toastRef_current2","_toastRef_current3","_window_getSelection","yDelta","xDelta","_props_swipeDirections","swipeDirections","getDampening","delta","dampenedDelta","getDocumentDirection","dirAttribute","assignOffset","defaultOffset","mobileOffset","styles","isMobile","prefix","defaultValue","assignAll","Toaster","ref","hotkey","expand","theme","richColors","toastOptions","dir","containerAriaLabel","setToasts","filteredToasts","possiblePositions","setExpanded","setInteracting","actualTheme","setActualTheme","listRef","hotkeyLabel","lastFocusedElementRef","isFocusWithinRef","toastToRemove","_toasts_find","ReactDOM","indexOfExistingToast","darkMediaQuery","matches","handleKeyDown","_listRef_current","_listRef_current1","_heights_","_toastOptions_duration","_toastOptions_closeButton","Sonner","MESSAGE_PAGE_SIZE","getMessageContentKey","useConversationMessages","messages","messagesLoading","setMessagesLoading","loadingOlder","setLoadingOlder","hasOlderMessages","setHasOlderMessages","seenMessageContent","fetchMessages","showLoading","fetchOlderMessages","addMessageIfNew","contentKey","entries","updateMessageAck","messageId","ackCount","idx","toKebabCase","string","toCamelCase","match","p1","p2","toPascalCase","camelCase","mergeClasses","array","hasA11yProp","prop","defaultAttributes","Icon","forwardRef","color","size","strokeWidth","absoluteStrokeWidth","children","iconNode","createElement","tag","attrs","createLucideIcon","iconName","Component","__iconNode","Check","Menu","StatusBar","health","onConfigClick","onMaintenanceClick","onAdvertise","onMenuClick","reconnecting","setReconnecting","handleReconnect","jsxs","Fragment","REPEATER_AVATAR","hashString","str","hash","char","emojiRegex","getAvatarText","emojiMatch","letters","spaceIndex","firstLetter","afterSpace","getAvatarColor","hue","saturation","lightness","background","textColor","getContactAvatar","contactType","colors","ContactAvatar","avatar","o","clsx","concatArrays","array1","array2","combinedArray","createClassValidatorObject","classGroupId","validator","createClassPartObject","nextPart","validators","CLASS_PART_SEPARATOR","EMPTY_CONFLICTS","ARBITRARY_PROPERTY_PREFIX","createClassGroupUtils","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getGroupIdForArbitraryProperty","classParts","startIndex","getGroupRecursive","hasPostfixModifier","modifierConflicts","baseConflicts","classPartObject","currentClassPart","nextClassPartObject","classRest","validatorsLength","validatorObj","content","colonIndex","property","classGroups","processClassGroups","group","processClassesRecursively","classGroup","len","classDefinition","processClassDefinition","processStringDefinition","processFunctionDefinition","processObjectDefinition","classPartObjectToEdit","getPart","isThemeGetter","value","path","current","parts","part","func","createLruCache","maxCacheSize","cacheSize","cache","previousCache","update","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","EMPTY_MODIFIERS","createResultObject","modifiers","hasImportantModifier","baseClassName","maybePostfixModifierPosition","isExternal","createParseClassName","experimentalParseClassName","parseClassName","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","fullPrefix","parseClassNameOriginal","createSortModifiers","modifierWeights","mod","currentSegment","modifier","isArbitrary","isOrderSensitive","createConfigUtils","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","sortModifiers","classGroupsInConflict","originalClassName","variantModifier","modifierId","classId","conflictGroups","twJoin","classLists","argument","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","cachedResult","args","fallbackThemeArr","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isNumber","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isLabelFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","testLabel","testValue","shouldMatchNoLabel","label","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleColor","scaleBgPosition","scaleBgRepeat","scaleBgSize","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","twMerge","inputs","Input","React.forwardRef","setRef","composeRefs","refs","node","hasCleanup","cleanups","cleanup","useComposedRefs","React.useCallback","REACT_LAZY_TYPE","use","isPromiseLike","isLazyComponent","element","createSlot","ownerName","SlotClone","createSlotClone","Slot2","forwardedRef","slotProps","childrenArray","React.Children","slottable","isSlottable","newElement","newChildren","child","React.isValidElement","React.cloneElement","Slot","childrenRef","getElementRef","props2","mergeProps","React.Fragment","SLOTTABLE_IDENTIFIER","childProps","overrideProps","propName","slotPropValue","childPropValue","getter","mayWarn","falsyToString","cx","cva","base","_config_compoundVariants","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","param","getCompoundVariantClassNames","cvClass","cvClassName","compoundVariantOptions","buttonVariants","Button","asChild","Comp","formatUnreadCount","count","loadSortOrder","saveSortOrder","order","Sidebar","onSelectConversation","onNewMessage","showCracker","crackerRunning","onToggleCracker","onMarkAllRead","sortOrder","setSortOrder","searchQuery","setSearchQuery","handleSortToggle","newOrder","handleSelectConversation","conversation","isActive","getUnreadCount","getLastMessageTime","uniqueChannels","uniqueContacts","sortedChannels","timeA","timeB","sortedContacts","aIsRepeater","bIsRepeater","filteredChannels","filteredContacts","unreadCount","isMention","parseSenderFromText","potentialSender","formatTime","date","isToday","time","renderTextWithMentions","radioName","mentionPattern","lastIndex","keyIndex","mentionedName","isOwnMention","MessageList","loading","onSenderClick","onLoadOlder","prevMessagesLengthRef","isInitialLoadRef","showScrollToBottom","setShowScrollToBottom","scrollStateRef","useLayoutEffect","list","messagesAdded","scrollHeightDiff","handleScroll","scrollTop","scrollHeight","clientHeight","distanceFromBottom","scrollToBottom","getContact","getContactByName","sortedMessages","getSenderKey","sender","isRepeater","displaySender","canClickSender","currentSenderKey","prevMsg","prevSenderKey","showAvatar","isFirstMessage","avatarName","avatarKey","senderContact","line","arr","DM_HARD_LIMIT","DM_WARNING_THRESHOLD","CHANNEL_HARD_LIMIT","CHANNEL_WARNING_THRESHOLD","CHANNEL_DANGER_BUFFER","MessageInput","onSend","placeholder","isRepeaterMode","conversationType","senderName","setText","sending","setSending","inputRef","useImperativeHandle","appendedText","limits","nameLen","hardLimit","limitState","warningMessage","remaining","handleSubmit","trimmed","canSubmit","showCharCounter","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","createContext2","rootComponentName","defaultContext","Context","React.createContext","Provider","context","React.useMemo","useContext2","consumerName","React.useContext","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","BaseContext","scope","createScope","scopeContexts","contexts","composeContextScopes","scopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","useLayoutEffect2","React.useLayoutEffect","useReactId","useId","deterministicId","setId","React.useState","reactId","useInsertionEffect","useControllableState","defaultProp","onChange","caller","uncontrolledProp","setUncontrolledProp","onChangeRef","useUncontrolledState","isControlled","isControlledRef","React.useRef","React.useEffect","wasControlled","setValue","nextValue","value2","isFunction","prevValueRef","NODES","Primitive","primitive","Node","primitiveProps","dispatchDiscreteCustomEvent","target","ReactDOM.flushSync","useCallbackRef","callbackRef","useEscapeKeydown","onEscapeKeyDownProp","ownerDocument","onEscapeKeyDown","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","setNode","force","composedRefs","node2","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","branch","focusOutside","useFocusOutside","dispatchUpdate","handleUpdate","BRANCH_NAME","DismissableLayerBranch","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent2","handleAndDispatchCustomEvent","eventDetail","timerId","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","handler","detail","discrete","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","FOCUS_SCOPE_NAME","FocusScope","loop","trapped","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","container","setContainer","onMountAutoFocus","onUnmountAutoFocus","focusScope","handleFocusIn2","focus","handleFocusOut2","relatedTarget","handleMutations2","mutations","mutation","mutationObserver","focusScopesStack","previouslyFocusedElement","mountEvent","focusFirst","removeLinks","getTabbableCandidates","unmountEvent","isTabKey","focusedElement","container2","first","last","getTabbableEdges","candidates","select","candidate","findVisible","nodes","walker","isHiddenInput","elements","isHidden","upTo","isSelectableInput","createFocusScopesStack","stack","activeFocusScope","arrayRemove","item","updatedArray","items","PORTAL_NAME","Portal","containerProp","portalProps","useStateMachine","initialState","machine","React.useReducer","state","Presence","present","presence","usePresence","React2.Children","React2.cloneElement","React2.useState","stylesRef","React2.useRef","prevPresentRef","prevAnimationNameRef","send","React2.useEffect","currentAnimationName","getAnimationName","wasPresent","prevAnimationName","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","React2.useCallback","useFocusGuards","edgeGuards","createFocusGuard","__assign","__rest","s","__spreadArray","to","from","pack","ar","zeroRightClassName","fullWidthClassName","noScrollbarsClassName","removedBarSizeVariable","assignRef","initialValue","useIsomorphicLayoutEffect","currentValues","useMergeRefs","newValue","oldValue","prevRefs_1","nextRefs_1","current_1","ItoI","innerCreateMedium","defaults","middleware","buffer","assigned","medium","cbs","pendingQueue","executeQueue","cycle","filter","createSidecarMedium","SideCar","sideCar","Target","React.createElement","exportSidecar","exported","effectCar","nothing","RemoveScroll","parentRef","callbacks","setCallbacks","forwardProps","removeScrollBar","enabled","shards","noRelative","noIsolation","inert","allowPinchZoom","Container","gapMode","containerRef","containerProps","getNonce","makeStyleTag","nonce","injectStyles","css","insertStyleTag","stylesheetSingleton","counter","stylesheet","styleHookSingleton","sheet","isDynamic","styleSingleton","useStyle","Sheet","dynamic","zeroGap","parse","getOffset","cs","left","top","right","getGapWidth","offsets","documentWidth","windowWidth","Style","lockAttribute","getStyles","allowRelative","important","getCurrentUseCounter","useLockAttribute","newCounter","RemoveScrollBar","noImportant","passiveSupported","nonPassive","alwaysContainsScroll","elementCanBeScrolled","overflow","elementCouldBeVScrolled","elementCouldBeHScrolled","locationCouldBeScrolled","axis","isScrollable","elementCouldBeScrolled","getScrollVariables","getVScrollVariables","getHScrollVariables","scrollLeft","scrollWidth","clientWidth","getDirectionFactor","direction","endTarget","sourceDelta","noOverscroll","directionFactor","targetInLock","shouldCancelScroll","isDeltaPositive","availableScroll","availableScrollTop","scroll_1","capacity","elementScroll","parent_1","getTouchXY","getDeltaXY","extractRef","deltaCompare","generateStyle","idCounter","lockStack","RemoveScrollSideCar","shouldPreventQueue","touchStartRef","activeAxis","lastProps","allow_1","shouldCancelEvent","parent","touch","touchStart","deltaX","deltaY","currentAxis","moveDirection","selection","anchorNode","isTouchingSelection","canBeScrolledInMainDirection","cancelingAxis","shouldPrevent","_event","sourceEvent","shardNodes","shouldStop","shouldCancel","should","getOutermostShadowParent","scrollTouchStart","scrollWheel","scrollTouchMove","inst","shadowParent","ReactRemoveScroll","getDefaultParent","originalTarget","sampleTarget","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","targets","correctedTarget","applyAttributeToOthers","parentNode","markerName","controlAttribute","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","attr","alreadyHidden","counterValue","markerValue","hideOthers","activeParentNode","DIALOG_NAME","createDialogContext","DialogProvider","useDialogContext","Dialog","__scopeDialog","openProp","defaultOpen","onOpenChange","modal","triggerRef","contentRef","open","setOpen","prevOpen","TRIGGER_NAME","DialogTrigger","triggerProps","composedTriggerRef","getState","PortalProvider","usePortalContext","DialogPortal","forceMount","PortalPrimitive","OVERLAY_NAME","DialogOverlay","portalContext","overlayProps","DialogOverlayImpl","CONTENT_NAME","DialogContent","contentProps","DialogContentModal","DialogContentNonModal","DialogContentImpl","originalEvent","ctrlLeftClick","hasInteractedOutsideRef","hasPointerDownOutsideRef","trapFocus","onOpenAutoFocus","onCloseAutoFocus","TitleWarning","DescriptionWarning","TITLE_NAME","DialogTitle","titleProps","DESCRIPTION_NAME","DialogDescription","descriptionProps","CLOSE_NAME","DialogClose","closeProps","TITLE_WARNING_NAME","WarningProvider","useWarningContext","createContext","titleId","titleWarningContext","MESSAGE","DESCRIPTION_WARNING_NAME","descriptionId","describedById","Root","Overlay","Content","Title","Description","Close","DialogPrimitive.Root","DialogPrimitive.Portal","DialogPrimitive.Overlay","DialogPrimitive.Content","DialogPrimitive.Close","DialogHeader","DialogFooter","DialogPrimitive.Title","DialogPrimitive.Description","createCollection","PROVIDER_NAME","createCollectionContext","createCollectionScope","CollectionProviderImpl","useCollectionContext","CollectionProvider","itemMap","COLLECTION_SLOT_NAME","CollectionSlotImpl","CollectionSlot","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlotImpl","CollectionItemSlot","itemData","useCollection","collectionNode","orderedNodes","DirectionContext","useDirection","localDir","globalDir","ENTRY_FOCUS","GROUP_NAME","Collection","createRovingFocusGroupContext","createRovingFocusGroupScope","RovingFocusProvider","useRovingFocusContext","RovingFocusGroup","RovingFocusGroupImpl","__scopeRovingFocusGroup","orientation","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","preventScrollOnEntryFocus","groupProps","currentTabStopId","setCurrentTabStopId","isTabbingBackOut","setIsTabbingBackOut","handleEntryFocus","getItems","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","tabStopId","prevCount","isKeyboardFocus","entryFocusEvent","activeItem","currentItem","candidateNodes","ITEM_NAME","RovingFocusGroupItem","focusable","active","itemProps","autoId","isCurrentTabStop","onFocusableItemAdd","onFocusableItemRemove","focusIntent","getFocusIntent","currentIndex","wrapArray","MAP_KEY_TO_FOCUS_INTENT","getDirectionAwareKey","preventScroll","PREVIOUSLY_FOCUSED_ELEMENT","Item","TABS_NAME","createTabsContext","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","__scopeTabs","valueProp","onValueChange","activationMode","tabsProps","TAB_LIST_NAME","TabsList","listProps","rovingFocusGroupScope","RovingFocusGroup.Root","TabsTrigger","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","isAutomaticActivation","TabsContent","isMountAnimationPreventedRef","rAF","baseId","Root2","List","Trigger","TabsPrimitive.Root","TabsPrimitive.List","TabsPrimitive.Trigger","TabsPrimitive.Content","NAME","Label","labelVariants","LabelPrimitive.Root","usePrevious","useSize","setSize","resizeObserver","width","borderSizeEntry","borderSize","CHECKBOX_NAME","createCheckboxContext","CheckboxProviderImpl","useCheckboxContext","CheckboxProvider","__scopeCheckbox","checkedProp","defaultChecked","form","onCheckedChange","required","internal_do_not_use_render","checked","setChecked","control","setControl","bubbleInput","setBubbleInput","hasConsumerStoppedPropagationRef","isFormControl","isIndeterminate","CheckboxTrigger","onKeyDown","onClick","checkboxProps","initialCheckedStateRef","reset","prevChecked","Checkbox","CheckboxBubbleInput","INDICATOR_NAME","CheckboxIndicator","indicatorProps","BUBBLE_INPUT_NAME","controlSize","input","inputProto","bubbles","defaultCheckedRef","CheckboxPrimitive.Root","CheckboxPrimitive.Indicator","NewMessageModal","undecryptedCount","onClose","onCreateContact","onCreateChannel","onCreateHashtagChannel","tab","setTab","setName","setKey","tryHistorical","setTryHistorical","setError","setLoading","hashtagInputRef","handleCreate","channelName","validationError","validateHashtagName","handleCreateAndAddAnother","showHistoricalOption","isOpen","DEFAULT_ORIENTATION","ORIENTATIONS","Separator","decorative","orientationProp","domProps","isValidOrientation","semanticProps","SeparatorPrimitive.Root","alertVariants","Alert","AlertTitle","AlertDescription","ConfigModal","appSettings","onSave","onSaveAppSettings","onSetPrivateKey","onReboot","lat","setLat","lon","setLon","txPower","setTxPower","freq","setFreq","bw","setBw","setSf","cr","setCr","setPrivateKey","maxRadioContacts","setMaxRadioContacts","rebooting","setRebooting","handleSave","newMaxRadioContacts","handleSetPrivateKey","handleReboot","MaintenanceModal","onHealthRefresh","retentionDays","setRetentionDays","cleaning","setCleaning","deduping","setDeduping","handleCleanup","handleDedup","formatPayloadType","word","getDecryptedLabel","packet","info","formatSignalInfo","RawPacketList","packets","sortedPackets","useAttribution","map","attribution","attributionRef","updateCircle","layer","prevProps","CONTEXT_VERSION","createLeafletContext","extendContext","source","extra","LeafletContext","LeafletProvider","useLeafletContext","useContext","createContainerComponent","useElement","ContainerComponent","instance","createDivOverlayComponent","OverlayComponent","contentNode","createPortal","createLeafComponent","LeafComponent","useEventHandlers","eventHandlers","eventHandlersRef","withPane","pane","createDivOverlayHook","useLifecycle","elementRef","global","factory","this","version","extend","dest","j","src","create$2","proto","bind","fn","obj","slice","lastId","stamp","throttle","lock","wrapperFn","later","wrapNum","range","includeMax","max","min","falseFn","formatNum","num","precision","pow","trim","splitWords","setOptions","getParamString","existingUrl","uppercase","templateRe","template","isArray","indexOf","emptyImageUrl","getPrefixed","lastTime","timeoutDefer","timeToCall","requestFn","cancelFn","requestAnimFrame","immediate","cancelAnimFrame","Util","Class","NewClass","parentProto","checkDeprecatedMixinEvents","parentOptions","init","includes","Events","types","removeAll","_once","newListener","listeners","listener","propagate","_fn","Evented","Point","round","trunc","point","toPoint","Bounds","points","min2","max2","toBounds","bounds","xIntersects","yIntersects","xOverlaps","yOverlaps","bufferRatio","heightBuffer","widthBuffer","LatLngBounds","corner1","corner2","latlngs","sw","sw2","ne2","LatLng","toLatLng","toLatLngBounds","latIntersects","lngIntersects","latOverlaps","lngOverlaps","maxMargin","lng","alt","margin","other","Earth","sizeInMeters","latAccuracy","lngAccuracy","CRS","latlng","zoom","projectedPoint","scale","untransformedPoint","center","newCenter","latShift","lngShift","newSw","newNe","latlng1","latlng2","rad","lat1","lat2","sinDLat","sinDLon","earthRadius","SphericalMercator","sin","Transformation","toTransformation","EPSG3857","EPSG900913","svgCreate","pointsToPath","rings","closed","len2","Browser","ielt9","edge","webkit","userAgentContains","android","android23","webkitVer","androidStock","opera","chrome","gecko","safari","phantom","opera12","win","ie3d","webkit3d","gecko3d","any3d","mobile","mobileWebkit","mobileWebkit3d","msPointer","pointer","touchNative","mobileOpera","mobileGecko","retina","passiveEvents","supportsPassiveOption","opts","canvas$1","svg$1","inlineSvg","div","vml","shape","mac","linux","POINTER_DOWN","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","pEvent","handle","_onPointerStart","_handlePointer","_pointers","_pointerDocListener","addPointerListener","_addPointerDocListener","removePointerListener","_globalPointerDown","_globalPointerMove","_globalPointerUp","preventDefault","makeDblclick","newEvent","delay","addDoubleTapListener","simDblclick","getPropagationPath","removeDoubleTapListener","handlers","TRANSFORM","testProp","TRANSITION","TRANSITION_END","get","getStyle","create$1","tagName","remove","empty","toFront","toBack","hasClass","getClass","addClass","setClass","removeClass","setOpacity","_setOpacityIE","filterName","setTransform","pos","setPosition","getPosition","disableTextSelection","enableTextSelection","_userSelect","on","off","userSelectProperty","disableImageDrag","enableImageDrag","_outlineElement","_outlineStyle","preventOutline","restoreOutline","getSizedParentNode","getScale","rect","DomUtil","addOne","eventsKey","batchRemove","removeOne","filterFn","mouseSubst","originalHandler","isExternalTarget","stopPropagation","disableScrollPropagation","disableClickPropagation","stop","ev","getMousePosition","wheelPxFactor","getWheelDelta","related","DomEvent","PosAnimation","newPos","easeLinearity","elapsed","progress","Map","moved","viewHalf","containerPoint","centerOffset","paddingTL","paddingBR","paddingOffset","swPoint","nePoint","targetCenter","targetZoom","startZoom","w0","w1","u1","rho","rho2","s1","s2","t1","b1","sq","log","sinh","cosh","tanh","r0","easeOut","start","frame","oldZoom","pixelCenter","pixelPoint","pixelBounds","paddedBounds","paddedSize","oldSize","newSize","oldCenter","onResponse","onError","HandlerClass","inside","padding","nw","boundsSize","snap","scalex","scaley","topLeftPoint","toZoom","fromZoom","crs","layerPoint","panes","noMoveStart","zoomChanged","supressEvent","onOff","isHover","dragging","canvasTargets","synth","filtered","isMarker","pixelOrigin","topLeft","latLngBounds","centerPoint","viewBounds","newBounds","pxBounds","maxBounds","projectedMaxBounds","minOffset","maxOffset","dx","dy","proxy","transform","startAnim","noUpdate","createMap","Control","corner","corners","createCorner","vSide","hSide","Layers","layerA","layerB","nameA","nameB","baseLayers","overlays","acceptableHeight","collapsed","section","link","overlay","baseLayersPresent","overlaysPresent","baseLayersCount","radioHtml","radioFragment","holder","addedLayers","removedLayers","that","Zoom","zoomName","html","title","Scale","maxMeters","meters","maxFeet","maxMiles","miles","feet","ratio","pow10","ukrainianFlag","Attribution","attribs","prefixAndAttribs","Handler","Mixin","START","Draggable","dragStartTarget","sizedParent","mouseevent","noInertia","fireDragend","clipPolygon","clippedPoints","edges","_getBitCode","_getEdgeIntersection","polygonCenter","area","isFlat","centroidLatLng","areaBounds","centroid","latlngCenter","coords","latSum","lngSum","PolyUtil","simplify","tolerance","sqTolerance","_reducePoints","_simplifyDP","pointToSegmentDistance","_sqClosestPointOnSegment","closestPointOnSegment","ArrayConstructor","markers","_simplifyDPStep","newPoints","maxSqDist","sqDist","reducedPoints","_sqDist","_lastCode","clipSegment","useLastCode","codeA","codeB","codeOut","newCode","dot","_flat","polylineCenter","halfDist","segDist","dist","LineUtil","LonLat","Mercator","tmp","con","ts","phi","dphi","EPSG3395","EPSG4326","Simple","Layer","targetEl","events","method","minZoom","maxZoom","oldZoomSpan","LayerGroup","layerId","methodName","zIndex","layerGroup","FeatureGroup","featureGroup","oldIcon","img","sizeOption","anchor","IconDefault","strip","MarkerDrag","marker","speed","iconPos","origin","panBounds","movement","shadow","Marker","oldLatLng","classToAdd","addIcon","newShadow","addShadow","opt","draggable","opacity","iconOpts","Path","CircleMarker","radius","r2","circleMarker","Circle","legacyOptions","half","latR","bottom","lngR","circle","Polyline","minDistance","minPoint","closest","jLen","flat","projectedBounds","ring","segment","polyline","Polygon","clipped","polygon","GeoJSON","geojson","features","feature","geometryToLayer","asFeature","geometry","pointToLayer","_coordsToLatLng","coordsToLatLng","_pointToLayer","coordsToLatLngs","geoLayer","featureLayer","pointToLayerFn","levelsDeep","latLngToCoords","latLngsToCoords","getFeature","newGeometry","PointToGeoJSON","multi","holes","isGeometryCollection","jsons","json","geoJSON","geoJson","ImageOverlay","styleOpts","wasElementSupplied","image","errorUrl","imageOverlay","VideoOverlay","vid","sourceElements","sources","videoOverlay","video","SVGOverlay","svgOverlay","DivOverlay","OverlayClass","old","Popup","wrapper","maxHeight","scrolledClass","marginBottom","containerHeight","containerWidth","layerPos","containerPos","popup","Tooltip","subX","subY","tooltipPoint","tooltipWidth","tooltipHeight","tooltip","DivIcon","bgPos","divIcon","GridLayer","tileZoom","compare","edgeZIndex","nextFrame","willPrune","tile","fade","level","x2","y2","z2","coords2","animating","noPrune","tileZoomChanged","translate","tileSize","mapZoom","halfSize","tileRange","tileCenter","queue","noPruneRange","fragment","tileBounds","nwPoint","sePoint","bp","tilePos","newCoords","gridLayer","TileLayer","noRedraw","done","invertedY","zoomReverse","zoomOffset","tilePoint","tileLayer","TileLayerWMS","wmsParams","realRetina","projectionKey","bbox","tileLayerWMS","Renderer","currentCenterPoint","topLeftOffset","Canvas","dashArray","dashValue","ctx","clickedLayer","candidateHoveredLayer","canvas","vmlCreate","vmlMixin","stroke","fill","create","SVG","arc","svg","renderer","Rectangle","rectangle","BoxZoom","DoubleClickZoom","Drag","pxCenter","pxWorldCenter","threshold","worldWidth","halfWidth","newX1","newX2","newX","ease","speedVector","limitedSpeed","limitedSpeedVector","decelerationDuration","Keyboard","body","docEl","panDelta","keys","codes","zoomDelta","newLatLng","ScrollWheelZoom","debounce","d2","d3","d4","tapHoldDelay","TapHold","cancelClickPrevent","simulatedEvent","TouchZoom","moveFn","oldL","createElementObject","createElementHook","updateElement","propsRef","useLayerLifecycle","createLayerHook","usePathOptions","optionsRef","createPathHook","createOverlayComponent","useOverlay","createPathComponent","usePath","createTileLayerComponent","useLayer","updateGridLayer","useMap","LeafletCircleMarker","_extends","MapContainerComponent","boundsOptions","whenReady","setContext","mapRef","LeafletMap","contents","MapContainer","LeafletPopup","onPopupOpen","onPopupClose","LeafletTileLayer","getMarkerColor","lastSeen","age","hour","day","MapBoundsHandler","hasInitialized","setHasInitialized","fitToContacts","MapView","mappableContacts","sevenDaysAgo","displayName","enums","RouteType","PayloadType","ControlSubType","PayloadVersion","DeviceRole","AdvertFlags","RequestType","hex","byteToHex","bytesToHex","numberToHex","hexToBytes","byte","bytes","padLength","cleanHex","enumNames","getRouteTypeName","getPayloadTypeName","getPayloadVersionName","getDeviceRoleName","getRequestTypeName","getControlSubTypeName","enums_1","routeType","payloadType","role","requestType","subType","__viteBrowserExternal","root","module","CryptoJS","Math","undefined","crypto","require","cryptoSecureRandomInt","subtype","C_lib","Base","overrides","properties","propertyName","WordArray","words","sigBytes","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","clone","nBytes","C_enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","utf8Str","BufferedBlockAlgorithm","doFlush","processedWords","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","nWordsReady","nBytesReady","cfg","messageUpdate","hasher","C_algo","X32WordArray","C_x64","high","low","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","superInit","subInit","typedArray","typedArrayByteLength","utf16Chars","codePoint","utf16Str","utf16StrLength","swapEndian","base64Chars","byte1","byte2","byte3","triplet","paddingChar","base64Str","base64StrLength","reverseMap","paddingIndex","parseLoop","bits1","bits2","bitsCombined","urlSafe","Hasher","MD5","offset_i","M_offset_i","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","SHA1","isPrime","sqrtN","factor","getFractionalBits","nPrime","SHA256","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","sigma1","t2","undef","SHA224","X64Word","X64WordArray","X64Word_create","SHA512","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","Wil","Wih","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","t1l","t1h","t2l","t2h","require$$2","SHA384","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","nBlockSizeLanes","M2i","M2i1","lane","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","hr","zl","zr","sr","br","dr","er","f1","f2","f3","f4","f5","rotl","hasherBlockSize","hasherBlockSizeBytes","oKey","iKey","oKeyWords","iKeyWords","innerHash","hmac","HMAC","PBKDF2","salt","derivedKey","blockIndex","derivedKeyWords","blockIndexWords","keySize","iterations","block","blockWords","blockWordsLength","intermediate","intermediateWords","EvpKDF","Base64","Cipher","xformMode","dataUpdate","finalProcessedData","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","ciphertext","finalProcessedBlocks","C_mode","BlockCipherMode","iv","CBC","xorBlock","thisBlock","C_pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","modeCreator","mode","CipherParams","cipherParams","formatter","C_format","OpenSSLFormatter","openSSLStr","ciphertextWords","encryptor","cipherCfg","plaintext","format","C_kdf","OpenSSLKdf","ivSize","derivedParams","CFB","generateKeystreamAndEncrypt","keystream","CTR","Encryptor","CTRGladman","incWord","b2","b3","incCounter","OFB","ECB","lastBytePos","require$$3","require$$4","BlockCipher","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","sx","x4","x8","RCON","AES","keyWords","nRounds","ksRows","keySchedule","ksRow","invKeySchedule","invKsRow","s0","s3","t0","t3","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","nSubKey","subKey","bitShift","invSubKeys","exchangeLR","exchangeRL","lBlock","rBlock","mask","TripleDES","key1","key2","key3","StreamCipher","RC4","keySigBytes","keyByteIndex","keyByte","generateKeystreamWord","keystreamWord","RC4Drop","C_","Rabbit","nextState","IV","IV_0","IV_1","i0","i2","i1","i3","gx","ga","RabbitLegacy","ORIG_P","ORIG_S","BLOWFISH_CTX","BlowFish_Encrypt","Xl","Xr","temp","BlowFish_Decrypt","BlowFishInit","keysize","Row","Col","Data1","Data2","Blowfish","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","channelCrypto","crypto_js_1","hex_1","ChannelCrypto","cipherMac","channelKey16","macBytes","channelSecret","calculatedMac","calculatedMacFirst2","decrypted","decryptedBytes","flagsAndAttempt","messageBytes","messageText","nullIndex","secretKeyHex","keyManager","channel_crypto_1","MeshCoreKeyStore","initialKeys","pubKey","privKey","normalizedPubKey","channelHash","normalizedHash","secretKeys","secretKey","ed25519_CURVE","Gx","Gy","L2","isBig","isStr","isBytes","abytes","u8n","u8fr","buf","padh","pad","_ch","n1","n2","toU8","subtle","concatBytes","arrs","sum","randomBytes","big","arange","modN","callHash","etc","apoint","B256","_Point","ex","ey","ez","et","__publicField","zip215","normed","lastByte","bytesToNumLE","isValid","uvRatio","isXOdd","isLastByteOdd","X2","Y2","Z2","Z4","aX2","XY","ZT","X1","Y1","Z1","X1Z2","X2Z1","Y1Z2","Y2Z1","x1y1","X3","Y3","T3","Z3","T1","T2","safe","wNAF","iz","numTo32bLE","pow2","power","pow_2_252_3","b4","b5","b10","b20","b40","b80","b160","b240","b250","RM1","v3","v7","vx2","root1","root2","useRoot1","useRoot2","noRoot","modL_LE","sha512a","sha512s","hash2extK","hashed","scalar","pointBytes","getExtendedPublicKeyAsync","priv","getExtendedPublicKey","getPublicKeyAsync","getPublicKey","hashFinishA","hashFinishS","_sign","rBytes","signAsync","sign","veriOpts","_verify","sig","pub","SB","hashable","verifyAsync","verify","utils","scalarBits","pwindows","pwindowSize","precompute","Gpows","ctneg","cnd","comp","pow_2_w","maxNum","shiftBy","wbits","offF","offP","isEven","isNeg","OrlpEd25519","_scriptName","moduleArg","moduleRtn","Module","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","ENVIRONMENT_IS_NODE","scriptDirectory","locateFile","readAsync","readBinary","fs","filename","isFileURI","ret","binary","xhr","wasmBinary","ABORT","readyPromiseResolve","readyPromiseReject","wasmMemory","HEAP8","HEAPU8","runtimeInitialized","updateMemoryViews","preRun","addOnPreRun","callRuntimeCallbacks","onPreRuns","initRuntime","wasmExports","postRun","addOnPostRun","onPostRuns","runDependencies","dependenciesFulfilled","addRunDependency","removeRunDependency","abort","what","wasmBinaryFile","findWasmBinary","getBinarySync","file","getWasmBinary","binaryFile","instantiateArrayBuffer","imports","reason","instantiateAsync","instantiationResult","getWasmImports","wasmImports","createWasm","receiveInstance","assignWasmExports","receiveInstantiationResult","stackRestore","val","__emscripten_stack_restore","stackSave","_emscripten_stack_get_current","getCFunc","ident","writeArrayToMemory","lengthBytesUTF8","stringToUTF8Array","heap","outIdx","maxBytesToWrite","startIdx","endIdx","stringToUTF8","outPtr","stackAlloc","sz","__emscripten_stack_alloc","stringToUTF8OnStack","UTF8Decoder","UTF8ArrayToString","heapOrArray","maxBytesToRead","endPtr","u0","u2","UTF8ToString","ptr","ccall","returnType","argTypes","toC","convertReturnValue","cArgs","converter","onDone","cwrap","numericArgs","numericRet","run","doRun","preInit","orlpEd25519Wasm","derivePublicKey","validateKeyPair","getWasmInstance","privateKeyHex","wasmModule","privateKeyBytes","privateKeyPtr","publicKeyPtr","publicKeyBytes","expectedPublicKeyHex","expectedPublicKeyBytes","messageHex","publicKeyHex","messagePtr","signaturePtr","signatureBytes","signatureHex","__createBinding","k2","desc","__setModuleDefault","__importStar","ownKeys","ed25519Verifier","ed25519","orlp_ed25519_wasm_1","sha512Hash","hashBuffer","createHash","sha512HashSync","hashBytes","Ed25519SignatureVerifier","appDataHex","signature","appData","timestampBytes","advert","enum_names_1","ed25519_verifier_1","AdvertPayloadDecoder","payload","segments","segmentOffset","currentOffset","timestampDate","flags","binaryStr","deviceRole","flagDesc","nameBytes","rawName","appDataBytes","signatureValid","trace","TracePayloadDecoder","pathData","traceTagRaw","traceTag","authCode","pathHashes","pathHashesStart","pathHashesDisplay","snrValues","hexByte","byteValue","groupText","GroupTextPayloadDecoder","channelKeys","decryptionResult","request","RequestPayloadDecoder","destinationHash","sourceHash","ResponsePayloadDecoder","anonRequest","AnonRequestPayloadDecoder","senderPublicKey","ack","AckPayloadDecoder","checksum","PathPayloadDecoder","pathLength","extraType","extraData","textMessage","TextMessagePayloadDecoder","ControlPayloadDecoder","rawFlags","prefixOnly","typeFilter","typeFilterNames","since","sinceDate","nodeType","nodeTypeName","snrRaw","snrSigned","publicKeyLength","keyType","packetDecoder","key_manager_1","advert_1","trace_1","group_text_1","request_1","response_1","anon_request_1","ack_1","path_1","text_message_1","control_1","MeshCorePacketDecoder","hexData","includeStructure","errorPacket","errorStructure","header","payloadVersion","transportCodes","code1","code2","transportCode","pathLengthDescription","pathBytes","snrDb","pathDescription","payloadBytes","payloadHex","decodedPayload","payloadSegments","messageHash","structure","advertPayload","verifiedAdvert","errors","pathLen","constantHeader","payloadData","hashInput","authToken","createAuthToken","verifyAuthToken","parseAuthToken","decodeAuthTokenPayload","base64urlEncode","base64","base64urlDecode","headerJson","payloadJson","headerBytes","headerEncoded","payloadEncoded","signingInput","signingInputBytes","signingInputHex","token","packet_decoder_1","packet_decoder_2","auth_token_1","EnumUtils","HexUtils","AuthTokenUtils","CHARS","CHARS_LEN","CHARS_WITH_DASH","PUBLIC_ROOM_NAME","PUBLIC_KEY","DEFAULT_VALID_SECONDS","roomNameToIndex","length","multiplier","charIdx","isFirst","isLast","charCount","indexToRoomName","prevWasDash","isDash","deriveKeyFromRoomName","roomName","getChannelHash","keyHex","verifyMac","paddedKey","HmacSHA256","countNamesForLength","endsNonDash","endsDash","newEndsNonDash","newEndsDash","middleCount","isTimestampValid","validSeconds","currentTime","isValidUtf8","GpuBruteForce","adapter","shaderModule","pipelineLayout","targetChannelHash","nameLength","batchOffset","batchSize","ciphertextHex","targetMacHex","readBufferIdx","matchCountReadBuffer","matchIndicesReadBuffer","ciphertextLenBits","targetMac","ciphertextBytes","paddedLen","padded","macByte0","macByte1","requiredCiphertextSize","paramsData","commandEncoder","passEncoder","matchCount","indices","isWebGpuSupported","CpuBruteForce","targetHashHex","verifyMacEnabled","nameIdx","VALID_CHARS","NO_DASH_AT_ENDS","NO_CONSECUTIVE_DASHES","isValidRoomName","GroupTextCracker","allWords","packetHex","onProgress","maxLength","startingLength","useDictionary","startFromType","normalizedPacketHex","decoded","targetHashByte","startTime","totalChecked","lastProgressUpdate","startFromLength","startFromOffset","dictionaryStartIndex","skipDictionary","normalizedStartFrom","wordIndex","totalCandidates","reportProgress","phase","currentLength","currentPosition","rate","eta","verifyMacAndFilters","publicChannelHash","wordChannelHash","INITIAL_BATCH_SIZE","TARGET_DISPATCH_MS","currentBatchSize","batchSizeTuned","totalForLength","dispatchStart","dispatchTime","scaleFactor","optimalBatchSize","rounded","matchIdx","currentPos","media","webm","mp4","oldIOS","nativeWakeLock","NoSleep","handleVisibilityChange","dataURI","wakeLock","extractPayload","CrackerPanel","onChannelCreate","onRunningChange","isRunning","setIsRunning","setMaxLength","retryFailedAtNextLength","setRetryFailedAtNextLength","decryptHistorical","setDecryptHistorical","turboMode","setTurboMode","setProgress","setQueue","crackedRooms","setCrackedRooms","wordlistLoaded","setWordlistLoaded","gpuAvailable","setGpuAvailable","undecryptedPacketCount","setUndecryptedPacketCount","skippedDuplicates","setSkippedDuplicates","crackerRef","noSleepRef","isRunningRef","abortedRef","isProcessingRef","queueRef","retryFailedRef","maxLengthRef","decryptHistoricalRef","turboModeRef","undecryptedIdsRef","seenPayloadsRef","cracker","noSleep","__vitePreload","ENGLISH_WORDLIST","fetchCount","interval","existingChannelKeys","undecryptedGroupText","newSkipped","newQueue","changed","pendingCount","crackedCount","failedCount","processNext","currentQueue","nextItem","nextId","failedItems","currentMaxLength","isRetry","targetLength","prog","newRoom","keyUpper","handleStart","handleStop","room","SheetPrimitive.Root","SheetPortal","SheetPrimitive.Portal","SheetOverlay","SheetPrimitive.Overlay","sheetVariants","SheetContent","side","hideCloseButton","SheetPrimitive.Content","SheetPrimitive.Close","SheetHeader","SheetTitle","SheetPrimitive.Title","SheetDescription","SheetPrimitive.Description","parseHashConversation","slashIndex","getConversationHash","updateUrlHash","newHash","MAX_RAW_PACKETS","App","messageInputRef","activeConversationRef","seenMessageContentRef","setHealth","setConfig","setAppSettings","setContacts","setChannels","rawPackets","setRawPackets","setActiveConversation","showNewMessage","setShowNewMessage","showConfig","setShowConfig","showMaintenance","setShowMaintenance","sidebarOpen","setSidebarOpen","setUndecryptedCount","setShowCracker","setCrackerRunning","prevHealthRef","checkMention","wsHandlers","activeConv","isForActiveConversation","existing","fetchConfig","fetchAppSettings","fetchUndecryptedCount","resolveHashToConversation","hashConv","hasSetDefaultConversation","publicChannel","handleSendMessage","handleSaveConfig","handleSaveAppSettings","handleAdvertise","handleSenderClick","handleDeleteChannel","handleDeleteContact","handleCreateContact","newContact","handleCreateChannel","created","handleCreateHashtagChannel","sidebarContent","createRoot","StrictMode"],"ignoreList":[0,1,2,3,4,5,6,7,8,16,19,20,21,22,23,24,25,29,30,33,34,35,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,79,80,81,82,83,85,86,88,89,90,93,94,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,119,120,121,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185],"sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js","../../src/api.ts","../../src/useWebSocket.ts","../../src/types.ts","../../src/hooks/useRepeaterMode.ts","../../src/utils/pubkey.ts","../../src/utils/conversationState.ts","../../src/hooks/useUnreadCounts.ts","../../node_modules/sonner/dist/index.mjs","../../src/components/ui/sonner.tsx","../../src/hooks/useConversationMessages.ts","../../node_modules/lucide-react/dist/esm/shared/src/utils.js","../../node_modules/lucide-react/dist/esm/defaultAttributes.js","../../node_modules/lucide-react/dist/esm/Icon.js","../../node_modules/lucide-react/dist/esm/createLucideIcon.js","../../node_modules/lucide-react/dist/esm/icons/check.js","../../node_modules/lucide-react/dist/esm/icons/menu.js","../../node_modules/lucide-react/dist/esm/icons/x.js","../../src/components/StatusBar.tsx","../../src/utils/contactAvatar.ts","../../src/components/ContactAvatar.tsx","../../node_modules/clsx/dist/clsx.mjs","../../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../../src/lib/utils.ts","../../src/components/ui/input.tsx","../../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../../node_modules/@radix-ui/react-slot/dist/index.mjs","../../node_modules/class-variance-authority/dist/index.mjs","../../src/components/ui/button.tsx","../../src/components/Sidebar.tsx","../../src/utils/messageParser.ts","../../src/components/MessageList.tsx","../../src/components/MessageInput.tsx","../../node_modules/@radix-ui/primitive/dist/index.mjs","../../node_modules/@radix-ui/react-context/dist/index.mjs","../../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../../node_modules/@radix-ui/react-id/dist/index.mjs","../../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../../node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.mjs","../../node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../../node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../../node_modules/@radix-ui/react-focus-scope/dist/index.mjs","../../node_modules/@radix-ui/react-portal/dist/index.mjs","../../node_modules/@radix-ui/react-presence/dist/index.mjs","../../node_modules/@radix-ui/react-focus-guards/dist/index.mjs","../../node_modules/tslib/tslib.es6.mjs","../../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../../node_modules/use-callback-ref/dist/es2015/assignRef.js","../../node_modules/use-callback-ref/dist/es2015/useRef.js","../../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../../node_modules/use-sidecar/dist/es2015/medium.js","../../node_modules/use-sidecar/dist/es2015/exports.js","../../node_modules/react-remove-scroll/dist/es2015/medium.js","../../node_modules/react-remove-scroll/dist/es2015/UI.js","../../node_modules/get-nonce/dist/es2015/index.js","../../node_modules/react-style-singleton/dist/es2015/singleton.js","../../node_modules/react-style-singleton/dist/es2015/hook.js","../../node_modules/react-style-singleton/dist/es2015/component.js","../../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../../node_modules/react-remove-scroll/dist/es2015/Combination.js","../../node_modules/aria-hidden/dist/es2015/index.js","../../node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot/dist/index.mjs","../../node_modules/@radix-ui/react-dialog/dist/index.mjs","../../src/components/ui/dialog.tsx","../../node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot/dist/index.mjs","../../node_modules/@radix-ui/react-collection/dist/index.mjs","../../node_modules/@radix-ui/react-direction/dist/index.mjs","../../node_modules/@radix-ui/react-roving-focus/dist/index.mjs","../../node_modules/@radix-ui/react-tabs/dist/index.mjs","../../src/components/ui/tabs.tsx","../../node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-label/dist/index.mjs","../../src/components/ui/label.tsx","../../node_modules/@radix-ui/react-use-previous/dist/index.mjs","../../node_modules/@radix-ui/react-use-size/dist/index.mjs","../../node_modules/@radix-ui/react-checkbox/dist/index.mjs","../../src/components/ui/checkbox.tsx","../../src/components/NewMessageModal.tsx","../../node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/dist/index.mjs","../../node_modules/@radix-ui/react-separator/dist/index.mjs","../../src/components/ui/separator.tsx","../../src/components/ui/alert.tsx","../../src/components/ConfigModal.tsx","../../src/components/MaintenanceModal.tsx","../../src/components/RawPacketList.tsx","../../node_modules/@react-leaflet/core/lib/attribution.js","../../node_modules/@react-leaflet/core/lib/circle.js","../../node_modules/@react-leaflet/core/lib/context.js","../../node_modules/@react-leaflet/core/lib/component.js","../../node_modules/@react-leaflet/core/lib/events.js","../../node_modules/@react-leaflet/core/lib/pane.js","../../node_modules/@react-leaflet/core/lib/div-overlay.js","../../node_modules/leaflet/dist/leaflet-src.js","../../node_modules/@react-leaflet/core/lib/element.js","../../node_modules/@react-leaflet/core/lib/layer.js","../../node_modules/@react-leaflet/core/lib/path.js","../../node_modules/@react-leaflet/core/lib/generic.js","../../node_modules/@react-leaflet/core/lib/grid-layer.js","../../node_modules/react-leaflet/lib/hooks.js","../../node_modules/react-leaflet/lib/CircleMarker.js","../../node_modules/react-leaflet/lib/MapContainer.js","../../node_modules/react-leaflet/lib/Popup.js","../../node_modules/react-leaflet/lib/TileLayer.js","../../src/components/MapView.tsx","../../node_modules/@michaelhart/meshcore-decoder/dist/types/enums.js","../../node_modules/@michaelhart/meshcore-decoder/dist/utils/hex.js","../../node_modules/@michaelhart/meshcore-decoder/dist/utils/enum-names.js","../../__vite-browser-external","../../node_modules/crypto-js/core.js","../../node_modules/crypto-js/x64-core.js","../../node_modules/crypto-js/lib-typedarrays.js","../../node_modules/crypto-js/enc-utf16.js","../../node_modules/crypto-js/enc-base64.js","../../node_modules/crypto-js/enc-base64url.js","../../node_modules/crypto-js/md5.js","../../node_modules/crypto-js/sha1.js","../../node_modules/crypto-js/sha256.js","../../node_modules/crypto-js/sha224.js","../../node_modules/crypto-js/sha512.js","../../node_modules/crypto-js/sha384.js","../../node_modules/crypto-js/sha3.js","../../node_modules/crypto-js/ripemd160.js","../../node_modules/crypto-js/hmac.js","../../node_modules/crypto-js/pbkdf2.js","../../node_modules/crypto-js/evpkdf.js","../../node_modules/crypto-js/cipher-core.js","../../node_modules/crypto-js/mode-cfb.js","../../node_modules/crypto-js/mode-ctr.js","../../node_modules/crypto-js/mode-ctr-gladman.js","../../node_modules/crypto-js/mode-ofb.js","../../node_modules/crypto-js/mode-ecb.js","../../node_modules/crypto-js/pad-ansix923.js","../../node_modules/crypto-js/pad-iso10126.js","../../node_modules/crypto-js/pad-iso97971.js","../../node_modules/crypto-js/pad-zeropadding.js","../../node_modules/crypto-js/pad-nopadding.js","../../node_modules/crypto-js/format-hex.js","../../node_modules/crypto-js/aes.js","../../node_modules/crypto-js/tripledes.js","../../node_modules/crypto-js/rc4.js","../../node_modules/crypto-js/rabbit.js","../../node_modules/crypto-js/rabbit-legacy.js","../../node_modules/crypto-js/blowfish.js","../../node_modules/crypto-js/index.js","../../node_modules/@michaelhart/meshcore-decoder/dist/crypto/channel-crypto.js","../../node_modules/@michaelhart/meshcore-decoder/dist/crypto/key-manager.js","../../node_modules/@noble/ed25519/index.js","../../node_modules/@michaelhart/meshcore-decoder/lib/orlp-ed25519.js","../../node_modules/@michaelhart/meshcore-decoder/dist/crypto/orlp-ed25519-wasm.js","../../node_modules/@michaelhart/meshcore-decoder/dist/crypto/ed25519-verifier.js","../../node_modules/@michaelhart/meshcore-decoder/dist/decoder/payload-decoders/advert.js","../../node_modules/@michaelhart/meshcore-decoder/dist/decoder/payload-decoders/trace.js","../../node_modules/@michaelhart/meshcore-decoder/dist/decoder/payload-decoders/group-text.js","../../node_modules/@michaelhart/meshcore-decoder/dist/decoder/payload-decoders/request.js","../../node_modules/@michaelhart/meshcore-decoder/dist/decoder/payload-decoders/response.js","../../node_modules/@michaelhart/meshcore-decoder/dist/decoder/payload-decoders/anon-request.js","../../node_modules/@michaelhart/meshcore-decoder/dist/decoder/payload-decoders/ack.js","../../node_modules/@michaelhart/meshcore-decoder/dist/decoder/payload-decoders/path.js","../../node_modules/@michaelhart/meshcore-decoder/dist/decoder/payload-decoders/text-message.js","../../node_modules/@michaelhart/meshcore-decoder/dist/decoder/payload-decoders/control.js","../../node_modules/@michaelhart/meshcore-decoder/dist/decoder/packet-decoder.js","../../node_modules/@michaelhart/meshcore-decoder/dist/utils/auth-token.js","../../node_modules/@michaelhart/meshcore-decoder/dist/index.js","../../node_modules/crypto-js/hmac-sha256.js","../../node_modules/crypto-js/enc-hex.js","../../node_modules/meshcore-hashtag-cracker/dist/core.js","../../node_modules/meshcore-hashtag-cracker/dist/gpu-bruteforce.js","../../node_modules/meshcore-hashtag-cracker/dist/cpu-bruteforce.js","../../node_modules/meshcore-hashtag-cracker/dist/cracker.js","../../node_modules/nosleep.js/src/media.js","../../node_modules/nosleep.js/src/index.js","../../src/components/CrackerPanel.tsx","../../src/components/ui/sheet.tsx","../../src/utils/urlHash.ts","../../src/App.tsx","../../src/main.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3(url: string, options?: RequestInit): Promise {\n const res = await fetch(`${API_BASE}${url}`, {\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options?.headers,\n },\n });\n if (!res.ok) {\n const error = await res.text();\n throw new Error(error || res.statusText);\n }\n return res.json();\n}\n\ninterface DecryptResult {\n started: boolean;\n total_packets: number;\n message: string;\n}\n\nexport const api = {\n // Health\n getHealth: () => fetchJson('/health'),\n\n // Radio config\n getRadioConfig: () => fetchJson('/radio/config'),\n updateRadioConfig: (config: RadioConfigUpdate) =>\n fetchJson('/radio/config', {\n method: 'PATCH',\n body: JSON.stringify(config),\n }),\n setPrivateKey: (privateKey: string) =>\n fetchJson<{ status: string }>('/radio/private-key', {\n method: 'PUT',\n body: JSON.stringify({ private_key: privateKey }),\n }),\n sendAdvertisement: (flood = true) =>\n fetchJson<{ status: string; flood: boolean }>(`/radio/advertise?flood=${flood}`, {\n method: 'POST',\n }),\n rebootRadio: () =>\n fetchJson<{ status: string; message: string }>('/radio/reboot', {\n method: 'POST',\n }),\n reconnectRadio: () =>\n fetchJson<{ status: string; message: string; connected: boolean }>('/radio/reconnect', {\n method: 'POST',\n }),\n\n // Contacts\n getContacts: (limit = 100, offset = 0) =>\n fetchJson(`/contacts?limit=${limit}&offset=${offset}`),\n getContact: (publicKey: string) => fetchJson(`/contacts/${publicKey}`),\n syncContacts: () => fetchJson<{ synced: number }>('/contacts/sync', { method: 'POST' }),\n addContactToRadio: (publicKey: string) =>\n fetchJson<{ status: string }>(`/contacts/${publicKey}/add-to-radio`, {\n method: 'POST',\n }),\n removeContactFromRadio: (publicKey: string) =>\n fetchJson<{ status: string }>(`/contacts/${publicKey}/remove-from-radio`, {\n method: 'POST',\n }),\n deleteContact: (publicKey: string) =>\n fetchJson<{ status: string }>(`/contacts/${publicKey}`, {\n method: 'DELETE',\n }),\n markContactRead: (publicKey: string) =>\n fetchJson<{ status: string; public_key: string }>(`/contacts/${publicKey}/mark-read`, {\n method: 'POST',\n }),\n requestTelemetry: (publicKey: string, password: string) =>\n fetchJson(`/contacts/${publicKey}/telemetry`, {\n method: 'POST',\n body: JSON.stringify({ password }),\n }),\n sendRepeaterCommand: (publicKey: string, command: string) =>\n fetchJson(`/contacts/${publicKey}/command`, {\n method: 'POST',\n body: JSON.stringify({ command }),\n }),\n\n // Channels\n getChannels: () => fetchJson('/channels'),\n getChannel: (key: string) => fetchJson(`/channels/${key}`),\n createChannel: (name: string, key?: string) =>\n fetchJson('/channels', {\n method: 'POST',\n body: JSON.stringify({ name, key }),\n }),\n syncChannels: () => fetchJson<{ synced: number }>('/channels/sync', { method: 'POST' }),\n deleteChannel: (key: string) =>\n fetchJson<{ status: string }>(`/channels/${key}`, { method: 'DELETE' }),\n markChannelRead: (key: string) =>\n fetchJson<{ status: string; key: string }>(`/channels/${key}/mark-read`, {\n method: 'POST',\n }),\n\n // Messages\n getMessages: (params?: {\n limit?: number;\n offset?: number;\n type?: 'PRIV' | 'CHAN';\n conversation_key?: string;\n }) => {\n const searchParams = new URLSearchParams();\n if (params?.limit) searchParams.set('limit', params.limit.toString());\n if (params?.offset) searchParams.set('offset', params.offset.toString());\n if (params?.type) searchParams.set('type', params.type);\n if (params?.conversation_key) searchParams.set('conversation_key', params.conversation_key);\n const query = searchParams.toString();\n return fetchJson(`/messages${query ? `?${query}` : ''}`);\n },\n getMessagesBulk: (\n conversations: Array<{ type: 'PRIV' | 'CHAN'; conversation_key: string }>,\n limitPerConversation: number = UNREAD_FETCH_LIMIT\n ) =>\n fetchJson>(\n `/messages/bulk?limit_per_conversation=${limitPerConversation}`,\n {\n method: 'POST',\n body: JSON.stringify(conversations),\n }\n ),\n sendDirectMessage: (destination: string, text: string) =>\n fetchJson('/messages/direct', {\n method: 'POST',\n body: JSON.stringify({ destination, text }),\n }),\n sendChannelMessage: (channelKey: string, text: string) =>\n fetchJson('/messages/channel', {\n method: 'POST',\n body: JSON.stringify({ channel_key: channelKey, text }),\n }),\n\n // Packets\n getUndecryptedPacketCount: () => fetchJson<{ count: number }>('/packets/undecrypted/count'),\n decryptHistoricalPackets: (params: {\n key_type: 'channel' | 'contact';\n channel_key?: string;\n channel_name?: string;\n }) =>\n fetchJson('/packets/decrypt/historical', {\n method: 'POST',\n body: JSON.stringify(params),\n }),\n runMaintenance: (pruneUndecryptedDays: number) =>\n fetchJson('/packets/maintenance', {\n method: 'POST',\n body: JSON.stringify({ prune_undecrypted_days: pruneUndecryptedDays }),\n }),\n deduplicatePackets: () => fetchJson('/packets/dedup', { method: 'POST' }),\n\n // Read State\n markAllRead: () =>\n fetchJson<{ status: string; timestamp: number }>('/read-state/mark-all-read', {\n method: 'POST',\n }),\n\n // App Settings\n getSettings: () => fetchJson('/settings'),\n updateSettings: (settings: AppSettingsUpdate) =>\n fetchJson('/settings', {\n method: 'PATCH',\n body: JSON.stringify(settings),\n }),\n};\n","import { useEffect, useRef, useCallback, useState } from 'react';\nimport type { HealthStatus, Contact, Channel, Message, RawPacket } from './types';\n\ninterface WebSocketMessage {\n type: string;\n data: unknown;\n}\n\ninterface ErrorEvent {\n message: string;\n details?: string;\n}\n\ninterface UseWebSocketOptions {\n onHealth?: (health: HealthStatus) => void;\n onContacts?: (contacts: Contact[]) => void;\n onChannels?: (channels: Channel[]) => void;\n onMessage?: (message: Message) => void;\n onContact?: (contact: Contact) => void;\n onRawPacket?: (packet: RawPacket) => void;\n onMessageAcked?: (messageId: number, ackCount: number) => void;\n onError?: (error: ErrorEvent) => void;\n}\n\nexport function useWebSocket(options: UseWebSocketOptions) {\n const wsRef = useRef(null);\n const reconnectTimeoutRef = useRef(null);\n const [connected, setConnected] = useState(false);\n\n const connect = useCallback(() => {\n // Determine WebSocket URL based on current location\n const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';\n // In development, connect directly to backend; in production, use same host\n const isDev = window.location.port === '5173';\n const wsUrl = isDev\n ? `ws://localhost:8000/api/ws`\n : `${protocol}//${window.location.host}/api/ws`;\n\n const ws = new WebSocket(wsUrl);\n\n ws.onopen = () => {\n console.log('WebSocket connected');\n setConnected(true);\n };\n\n ws.onclose = () => {\n console.log('WebSocket disconnected');\n setConnected(false);\n wsRef.current = null;\n\n // Reconnect after 3 seconds\n reconnectTimeoutRef.current = window.setTimeout(() => {\n console.log('Attempting WebSocket reconnect...');\n connect();\n }, 3000);\n };\n\n ws.onerror = (error) => {\n console.error('WebSocket error:', error);\n };\n\n ws.onmessage = (event) => {\n try {\n const msg: WebSocketMessage = JSON.parse(event.data);\n\n switch (msg.type) {\n case 'health':\n options.onHealth?.(msg.data as HealthStatus);\n break;\n case 'contacts':\n options.onContacts?.(msg.data as Contact[]);\n break;\n case 'channels':\n options.onChannels?.(msg.data as Channel[]);\n break;\n case 'message':\n options.onMessage?.(msg.data as Message);\n break;\n case 'contact':\n options.onContact?.(msg.data as Contact);\n break;\n case 'raw_packet':\n options.onRawPacket?.(msg.data as RawPacket);\n break;\n case 'message_acked': {\n const ackData = msg.data as { message_id: number; ack_count: number };\n options.onMessageAcked?.(ackData.message_id, ackData.ack_count);\n break;\n }\n case 'error':\n options.onError?.(msg.data as ErrorEvent);\n break;\n case 'pong':\n // Heartbeat response, ignore\n break;\n default:\n console.log('Unknown WebSocket message type:', msg.type);\n }\n } catch (e) {\n console.error('Failed to parse WebSocket message:', e);\n }\n };\n\n wsRef.current = ws;\n }, [options]);\n\n useEffect(() => {\n connect();\n\n // Ping every 30 seconds to keep connection alive\n const pingInterval = setInterval(() => {\n if (wsRef.current?.readyState === WebSocket.OPEN) {\n wsRef.current.send('ping');\n }\n }, 30000);\n\n return () => {\n clearInterval(pingInterval);\n if (reconnectTimeoutRef.current) {\n clearTimeout(reconnectTimeoutRef.current);\n }\n if (wsRef.current) {\n wsRef.current.close();\n }\n };\n }, [connect]);\n\n return { connected };\n}\n","/**\n * Type aliases for key types used throughout the application.\n * These are all hex strings but serve different purposes.\n */\n\n/** 64-character hex string identifying a contact/node */\nexport type PublicKey = string;\n\n/** 12-character hex prefix of a public key (used in message routing) */\nexport type PubkeyPrefix = string;\n\n/** 32-character hex string identifying a channel */\nexport type ChannelKey = string;\n\nexport interface RadioSettings {\n freq: number;\n bw: number;\n sf: number;\n cr: number;\n}\n\nexport interface RadioConfig {\n public_key: string;\n name: string;\n lat: number;\n lon: number;\n tx_power: number;\n max_tx_power: number;\n radio: RadioSettings;\n}\n\nexport interface RadioConfigUpdate {\n name?: string;\n lat?: number;\n lon?: number;\n tx_power?: number;\n radio?: RadioSettings;\n}\n\nexport interface HealthStatus {\n status: string;\n radio_connected: boolean;\n serial_port: string | null;\n database_size_mb: number;\n}\n\nexport interface MaintenanceResult {\n packets_deleted: number;\n vacuumed: boolean;\n}\n\nexport interface DedupResult {\n started: boolean;\n total_packets: number;\n message: string;\n}\n\nexport interface Contact {\n public_key: PublicKey;\n name: string | null;\n type: number;\n flags: number;\n last_path: string | null;\n last_path_len: number;\n last_advert: number | null;\n lat: number | null;\n lon: number | null;\n last_seen: number | null;\n on_radio: boolean;\n last_contacted: number | null;\n last_read_at: number | null;\n}\n\nexport interface Channel {\n key: ChannelKey;\n name: string;\n is_hashtag: boolean;\n on_radio: boolean;\n last_read_at: number | null;\n}\n\nexport interface Message {\n id: number;\n type: 'PRIV' | 'CHAN';\n /** For PRIV: sender's PublicKey (or prefix). For CHAN: ChannelKey */\n conversation_key: string;\n text: string;\n sender_timestamp: number | null;\n received_at: number;\n path_len: number | null;\n txt_type: number;\n signature: string | null;\n outgoing: boolean;\n /** ACK count: 0 = not acked, 1+ = number of acks/flood echoes received */\n acked: number;\n}\n\nexport type ConversationType = 'contact' | 'channel' | 'raw' | 'map';\n\nexport interface Conversation {\n type: ConversationType;\n /** PublicKey for contacts, ChannelKey for channels, 'raw'/'map' for special views */\n id: string;\n name: string;\n}\n\nexport interface RawPacket {\n id: number;\n timestamp: number;\n data: string; // hex\n payload_type: string;\n snr: number | null; // Signal-to-noise ratio in dB\n rssi: number | null; // Received signal strength in dBm\n decrypted: boolean;\n decrypted_info: {\n channel_name: string | null;\n sender: string | null;\n } | null;\n}\n\nexport interface AppSettings {\n max_radio_contacts: number;\n}\n\nexport interface AppSettingsUpdate {\n max_radio_contacts?: number;\n}\n\n/** Contact type constants */\nexport const CONTACT_TYPE_CLIENT = 1;\nexport const CONTACT_TYPE_REPEATER = 2;\n\nexport interface NeighborInfo {\n pubkey_prefix: string;\n name: string | null;\n snr: number;\n last_heard_seconds: number;\n}\n\nexport interface AclEntry {\n pubkey_prefix: string;\n name: string | null;\n permission: number;\n permission_name: string;\n}\n\nexport interface TelemetryResponse {\n pubkey_prefix: string;\n battery_volts: number;\n tx_queue_len: number;\n noise_floor_dbm: number;\n last_rssi_dbm: number;\n last_snr_db: number;\n packets_received: number;\n packets_sent: number;\n airtime_seconds: number;\n rx_airtime_seconds: number;\n uptime_seconds: number;\n sent_flood: number;\n sent_direct: number;\n recv_flood: number;\n recv_direct: number;\n flood_dups: number;\n direct_dups: number;\n full_events: number;\n neighbors: NeighborInfo[];\n acl: AclEntry[];\n}\n\nexport interface CommandResponse {\n command: string;\n response: string;\n sender_timestamp: number | null;\n}\n","import { useState, useCallback, useMemo, useEffect } from 'react';\nimport { api } from '../api';\nimport type {\n Contact,\n Conversation,\n Message,\n TelemetryResponse,\n NeighborInfo,\n AclEntry,\n} from '../types';\nimport { CONTACT_TYPE_REPEATER } from '../types';\n\n// Format seconds into human-readable duration (e.g., 1d17h2m, 1h5m, 3m)\nexport function formatDuration(seconds: number): string {\n if (seconds < 60) return `${seconds}s`;\n\n const days = Math.floor(seconds / 86400);\n const hours = Math.floor((seconds % 86400) / 3600);\n const mins = Math.floor((seconds % 3600) / 60);\n\n if (days > 0) {\n if (hours > 0 && mins > 0) return `${days}d${hours}h${mins}m`;\n if (hours > 0) return `${days}d${hours}h`;\n if (mins > 0) return `${days}d${mins}m`;\n return `${days}d`;\n }\n if (hours > 0) {\n return mins > 0 ? `${hours}h${mins}m` : `${hours}h`;\n }\n return `${mins}m`;\n}\n\n// Format telemetry response as human-readable text\nexport function formatTelemetry(telemetry: TelemetryResponse): string {\n const lines = [\n `Telemetry`,\n `Battery Voltage: ${telemetry.battery_volts.toFixed(3)}V`,\n `Uptime: ${formatDuration(telemetry.uptime_seconds)}`,\n `TX Airtime: ${formatDuration(telemetry.airtime_seconds)}`,\n `RX Airtime: ${formatDuration(telemetry.rx_airtime_seconds)}`,\n '',\n `Noise Floor: ${telemetry.noise_floor_dbm} dBm`,\n `Last RSSI: ${telemetry.last_rssi_dbm} dBm`,\n `Last SNR: ${telemetry.last_snr_db.toFixed(1)} dB`,\n '',\n `Packets: ${telemetry.packets_received.toLocaleString()} rx / ${telemetry.packets_sent.toLocaleString()} tx`,\n `Flood: ${telemetry.recv_flood.toLocaleString()} rx / ${telemetry.sent_flood.toLocaleString()} tx`,\n `Direct: ${telemetry.recv_direct.toLocaleString()} rx / ${telemetry.sent_direct.toLocaleString()} tx`,\n `Duplicates: ${telemetry.flood_dups.toLocaleString()} flood / ${telemetry.direct_dups.toLocaleString()} direct`,\n '',\n `TX Queue: ${telemetry.tx_queue_len}`,\n `Debug Flags: ${telemetry.full_events}`,\n ];\n return lines.join('\\n');\n}\n\n// Format neighbors list as human-readable text\nexport function formatNeighbors(neighbors: NeighborInfo[]): string {\n if (neighbors.length === 0) {\n return 'Neighbors\\nNo neighbors reported';\n }\n // Sort by SNR descending (highest first)\n const sorted = [...neighbors].sort((a, b) => b.snr - a.snr);\n const lines = [`Neighbors (${sorted.length})`];\n for (const n of sorted) {\n const name = n.name || n.pubkey_prefix;\n const snr = n.snr >= 0 ? `+${n.snr.toFixed(1)}` : n.snr.toFixed(1);\n lines.push(`${name}, ${snr} dB [${formatDuration(n.last_heard_seconds)} ago]`);\n }\n return lines.join('\\n');\n}\n\n// Format ACL list as human-readable text\nexport function formatAcl(acl: AclEntry[]): string {\n if (acl.length === 0) {\n return 'ACL\\nNo ACL entries';\n }\n const lines = [`ACL (${acl.length})`];\n for (const entry of acl) {\n const name = entry.name || entry.pubkey_prefix;\n lines.push(`${name}: ${entry.permission_name}`);\n }\n return lines.join('\\n');\n}\n\n// Create a local message object (not persisted to database)\nfunction createLocalMessage(\n conversationKey: string,\n text: string,\n outgoing: boolean,\n idOffset = 0\n): Message {\n const now = Math.floor(Date.now() / 1000);\n return {\n id: -Date.now() - idOffset,\n type: 'PRIV',\n conversation_key: conversationKey,\n text,\n sender_timestamp: now,\n received_at: now,\n path_len: null,\n txt_type: 0,\n signature: null,\n outgoing,\n acked: 1,\n };\n}\n\nexport interface UseRepeaterModeResult {\n repeaterLoggedIn: boolean;\n activeContactIsRepeater: boolean;\n handleTelemetryRequest: (password: string) => Promise;\n handleRepeaterCommand: (command: string) => Promise;\n}\n\nexport function useRepeaterMode(\n activeConversation: Conversation | null,\n contacts: Contact[],\n setMessages: React.Dispatch>\n): UseRepeaterModeResult {\n const [repeaterLoggedIn, setRepeaterLoggedIn] = useState(false);\n\n // Reset login state when conversation changes\n useEffect(() => {\n setRepeaterLoggedIn(false);\n }, [activeConversation?.id]);\n\n // Check if active conversation is a repeater\n const activeContactIsRepeater = useMemo(() => {\n if (!activeConversation || activeConversation.type !== 'contact') return false;\n const contact = contacts.find((c) => c.public_key === activeConversation.id);\n return contact?.type === CONTACT_TYPE_REPEATER;\n }, [activeConversation, contacts]);\n\n // Request telemetry from a repeater\n const handleTelemetryRequest = useCallback(\n async (password: string) => {\n if (!activeConversation || activeConversation.type !== 'contact') return;\n if (!activeContactIsRepeater) return;\n\n try {\n const telemetry = await api.requestTelemetry(activeConversation.id, password);\n\n // Create local messages to display the telemetry (not persisted to database)\n const telemetryMessage = createLocalMessage(\n activeConversation.id,\n formatTelemetry(telemetry),\n false,\n 0\n );\n\n const neighborsMessage = createLocalMessage(\n activeConversation.id,\n formatNeighbors(telemetry.neighbors),\n false,\n 1\n );\n\n const aclMessage = createLocalMessage(\n activeConversation.id,\n formatAcl(telemetry.acl),\n false,\n 2\n );\n\n // Add all messages to the list\n setMessages((prev) => [...prev, telemetryMessage, neighborsMessage, aclMessage]);\n\n // Mark as logged in for CLI command mode\n setRepeaterLoggedIn(true);\n } catch (err) {\n const errorMessage = createLocalMessage(\n activeConversation.id,\n `Telemetry request failed: ${err instanceof Error ? err.message : 'Unknown error'}`,\n false,\n 0\n );\n setMessages((prev) => [...prev, errorMessage]);\n }\n },\n [activeConversation, activeContactIsRepeater, setMessages]\n );\n\n // Send CLI command to a repeater (after logged in)\n const handleRepeaterCommand = useCallback(\n async (command: string) => {\n if (!activeConversation || activeConversation.type !== 'contact') return;\n if (!activeContactIsRepeater || !repeaterLoggedIn) return;\n\n // Show the command as an outgoing message\n const commandMessage = createLocalMessage(activeConversation.id, `> ${command}`, true, 0);\n setMessages((prev) => [...prev, commandMessage]);\n\n try {\n const response = await api.sendRepeaterCommand(activeConversation.id, command);\n\n // Use the actual timestamp from the repeater if available\n const responseMessage = createLocalMessage(\n activeConversation.id,\n response.response,\n false,\n 1\n );\n if (response.sender_timestamp) {\n responseMessage.sender_timestamp = response.sender_timestamp;\n }\n\n setMessages((prev) => [...prev, responseMessage]);\n } catch (err) {\n const errorMessage = createLocalMessage(\n activeConversation.id,\n `Command failed: ${err instanceof Error ? err.message : 'Unknown error'}`,\n false,\n 1\n );\n setMessages((prev) => [...prev, errorMessage]);\n }\n },\n [activeConversation, activeContactIsRepeater, repeaterLoggedIn, setMessages]\n );\n\n return {\n repeaterLoggedIn,\n activeContactIsRepeater,\n handleTelemetryRequest,\n handleRepeaterCommand,\n };\n}\n","/**\n * Public key utilities for consistent handling of 64-char full keys\n * and 12-char prefixes throughout the application.\n *\n * MeshCore uses 64-character hex strings for public keys, but messages\n * and some radio operations only provide 12-character prefixes. This\n * module provides utilities for working with both formats consistently.\n */\n\n/** Length of a full public key in hex characters */\nexport const PUBKEY_FULL_LENGTH = 64;\n\n/** Length of a public key prefix in hex characters */\nexport const PUBKEY_PREFIX_LENGTH = 12;\n\n/**\n * Extract the 12-character prefix from a public key.\n * Works with both full keys and existing prefixes.\n */\nexport function getPubkeyPrefix(key: string): string {\n return key.slice(0, PUBKEY_PREFIX_LENGTH);\n}\n\n/**\n * Check if two public keys match by comparing their prefixes.\n * This handles the case where one key is full (64 chars) and\n * the other is a prefix (12 chars).\n */\nexport function pubkeysMatch(a: string, b: string): boolean {\n if (!a || !b) return false;\n return getPubkeyPrefix(a) === getPubkeyPrefix(b);\n}\n\n/**\n * Check if a public key starts with the given prefix.\n * More explicit than using .startsWith() directly.\n */\nexport function pubkeyMatchesPrefix(fullKey: string, prefix: string): boolean {\n if (!fullKey || !prefix) return false;\n return fullKey.startsWith(prefix);\n}\n\n/**\n * Get a display name for a contact, falling back to pubkey prefix.\n */\nexport function getContactDisplayName(name: string | null | undefined, pubkey: string): string {\n return name || getPubkeyPrefix(pubkey);\n}\n\n/**\n * Check if a key is a full 64-character public key.\n */\nexport function isFullPubkey(key: string): boolean {\n return key.length === PUBKEY_FULL_LENGTH;\n}\n\n/**\n * Check if a key is a 12-character prefix.\n */\nexport function isPubkeyPrefix(key: string): boolean {\n return key.length === PUBKEY_PREFIX_LENGTH;\n}\n","/**\n * localStorage utilities for tracking conversation message times.\n *\n * Stores when each conversation last received a message, used for\n * sorting conversations by recency in the sidebar.\n *\n * Read state (last_read_at) is tracked server-side for consistency\n * across devices - see useUnreadCounts hook.\n */\n\nimport { getPubkeyPrefix } from './pubkey';\n\nconst LAST_MESSAGE_KEY = 'remoteterm-lastMessageTime';\n\nexport type ConversationTimes = Record;\n\nfunction loadTimes(key: string): ConversationTimes {\n try {\n const stored = localStorage.getItem(key);\n return stored ? JSON.parse(stored) : {};\n } catch {\n return {};\n }\n}\n\nfunction saveTimes(key: string, times: ConversationTimes): void {\n try {\n localStorage.setItem(key, JSON.stringify(times));\n } catch {\n // localStorage might be full or disabled\n }\n}\n\nexport function getLastMessageTimes(): ConversationTimes {\n return loadTimes(LAST_MESSAGE_KEY);\n}\n\nexport function setLastMessageTime(stateKey: string, timestamp: number): ConversationTimes {\n const times = loadTimes(LAST_MESSAGE_KEY);\n // Only update if this is a newer message\n if (!times[stateKey] || timestamp > times[stateKey]) {\n times[stateKey] = timestamp;\n saveTimes(LAST_MESSAGE_KEY, times);\n }\n return times;\n}\n\n/**\n * Generate a state tracking key for message times.\n *\n * This is NOT the same as Message.conversation_key (the database field).\n * This creates prefixed keys for localStorage/state tracking:\n * - Channels: \"channel-{channelKey}\"\n * - Contacts: \"contact-{12-char-pubkey-prefix}\"\n *\n * The 12-char prefix for contacts ensures consistent matching regardless\n * of whether we have a full 64-char pubkey or just a prefix.\n */\nexport function getStateKey(type: 'channel' | 'contact', id: string): string {\n if (type === 'channel') {\n return `channel-${id}`;\n }\n // For contacts, use 12-char prefix for consistent matching\n return `contact-${getPubkeyPrefix(id)}`;\n}\n","import { useState, useCallback, useEffect, useRef } from 'react';\nimport { api, UNREAD_FETCH_LIMIT } from '../api';\nimport {\n getLastMessageTimes,\n setLastMessageTime,\n getStateKey,\n type ConversationTimes,\n} from '../utils/conversationState';\nimport type { Channel, Contact, Conversation, Message } from '../types';\n\nexport interface UseUnreadCountsResult {\n unreadCounts: Record;\n /** Tracks which conversations have unread messages that mention the user */\n mentions: Record;\n lastMessageTimes: ConversationTimes;\n incrementUnread: (stateKey: string, hasMention?: boolean) => void;\n markAllRead: () => void;\n markConversationRead: (conv: Conversation) => void;\n trackNewMessage: (msg: Message) => void;\n}\n\n/** Check if a message text contains a mention of the given name in @[name] format */\nfunction messageContainsMention(text: string, name: string | null): boolean {\n if (!name) return false;\n // Escape special regex characters in the name\n const escaped = name.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const mentionPattern = new RegExp(`@\\\\[${escaped}\\\\]`, 'i');\n return mentionPattern.test(text);\n}\n\nexport function useUnreadCounts(\n channels: Channel[],\n contacts: Contact[],\n activeConversation: Conversation | null,\n myName: string | null = null\n): UseUnreadCountsResult {\n const [unreadCounts, setUnreadCounts] = useState>({});\n const [mentions, setMentions] = useState>({});\n const [lastMessageTimes, setLastMessageTimes] = useState(getLastMessageTimes);\n\n // Keep myName in a ref so callbacks always have current value\n const myNameRef = useRef(myName);\n useEffect(() => {\n myNameRef.current = myName;\n }, [myName]);\n\n // Track which channels/contacts we've already fetched unreads for\n const fetchedChannels = useRef>(new Set());\n const fetchedContacts = useRef>(new Set());\n\n // Fetch messages and count unreads for new channels/contacts\n // Uses server-side last_read_at for consistent read state across devices\n useEffect(() => {\n const newChannels = channels.filter((c) => !fetchedChannels.current.has(c.key));\n const newContacts = contacts.filter(\n (c) => c.public_key && !fetchedContacts.current.has(c.public_key)\n );\n\n if (newChannels.length === 0 && newContacts.length === 0) return;\n\n // Mark as fetched before starting (to avoid duplicate fetches if effect re-runs)\n newChannels.forEach((c) => fetchedChannels.current.add(c.key));\n newContacts.forEach((c) => fetchedContacts.current.add(c.public_key));\n\n const fetchAndCountUnreads = async () => {\n const conversations: Array<{ type: 'PRIV' | 'CHAN'; conversation_key: string }> = [\n ...newChannels.map((c) => ({ type: 'CHAN' as const, conversation_key: c.key })),\n ...newContacts.map((c) => ({ type: 'PRIV' as const, conversation_key: c.public_key })),\n ];\n\n if (conversations.length === 0) return;\n\n try {\n const bulkMessages = await api.getMessagesBulk(conversations, UNREAD_FETCH_LIMIT);\n const newUnreadCounts: Record = {};\n const newMentions: Record = {};\n const newLastMessageTimes: Record = {};\n\n // Process channel messages - use server-side last_read_at\n for (const channel of newChannels) {\n const msgs = bulkMessages[`CHAN:${channel.key}`] || [];\n if (msgs.length > 0) {\n const key = getStateKey('channel', channel.key);\n // Use server-side last_read_at, fallback to 0 if never read\n const lastRead = channel.last_read_at || 0;\n\n const unreadMsgs = msgs.filter((m) => !m.outgoing && m.received_at > lastRead);\n if (unreadMsgs.length > 0) {\n newUnreadCounts[key] = unreadMsgs.length;\n // Check if any unread message mentions the user\n if (unreadMsgs.some((m) => messageContainsMention(m.text, myNameRef.current))) {\n newMentions[key] = true;\n }\n }\n\n const latestTime = Math.max(...msgs.map((m) => m.received_at));\n newLastMessageTimes[key] = latestTime;\n setLastMessageTime(key, latestTime);\n }\n }\n\n // Process contact messages - use server-side last_read_at\n for (const contact of newContacts) {\n const msgs = bulkMessages[`PRIV:${contact.public_key}`] || [];\n if (msgs.length > 0) {\n const key = getStateKey('contact', contact.public_key);\n // Use server-side last_read_at, fallback to 0 if never read\n const lastRead = contact.last_read_at || 0;\n\n const unreadMsgs = msgs.filter((m) => !m.outgoing && m.received_at > lastRead);\n if (unreadMsgs.length > 0) {\n newUnreadCounts[key] = unreadMsgs.length;\n // Check if any unread message mentions the user\n if (unreadMsgs.some((m) => messageContainsMention(m.text, myNameRef.current))) {\n newMentions[key] = true;\n }\n }\n\n const latestTime = Math.max(...msgs.map((m) => m.received_at));\n newLastMessageTimes[key] = latestTime;\n setLastMessageTime(key, latestTime);\n }\n }\n\n if (Object.keys(newUnreadCounts).length > 0) {\n setUnreadCounts((prev) => ({ ...prev, ...newUnreadCounts }));\n }\n if (Object.keys(newMentions).length > 0) {\n setMentions((prev) => ({ ...prev, ...newMentions }));\n }\n setLastMessageTimes(getLastMessageTimes());\n } catch (err) {\n console.error('Failed to fetch messages bulk:', err);\n }\n };\n\n fetchAndCountUnreads();\n }, [channels, contacts]);\n\n // Mark conversation as read when user views it\n // Calls server API to persist read state across devices\n useEffect(() => {\n if (\n activeConversation &&\n activeConversation.type !== 'raw' &&\n activeConversation.type !== 'map'\n ) {\n const key = getStateKey(\n activeConversation.type as 'channel' | 'contact',\n activeConversation.id\n );\n\n // Update local state immediately for responsive UI\n setUnreadCounts((prev) => {\n if (prev[key]) {\n const next = { ...prev };\n delete next[key];\n return next;\n }\n return prev;\n });\n\n // Also clear mentions for this conversation\n setMentions((prev) => {\n if (prev[key]) {\n const next = { ...prev };\n delete next[key];\n return next;\n }\n return prev;\n });\n\n // Persist to server (fire-and-forget, errors logged but not blocking)\n if (activeConversation.type === 'channel') {\n api.markChannelRead(activeConversation.id).catch((err) => {\n console.error('Failed to mark channel as read on server:', err);\n });\n } else if (activeConversation.type === 'contact') {\n api.markContactRead(activeConversation.id).catch((err) => {\n console.error('Failed to mark contact as read on server:', err);\n });\n }\n }\n }, [activeConversation]);\n\n // Increment unread count for a conversation\n const incrementUnread = useCallback((stateKey: string, hasMention?: boolean) => {\n setUnreadCounts((prev) => ({\n ...prev,\n [stateKey]: (prev[stateKey] || 0) + 1,\n }));\n if (hasMention) {\n setMentions((prev) => ({\n ...prev,\n [stateKey]: true,\n }));\n }\n }, []);\n\n // Mark all conversations as read\n // Calls single bulk API endpoint to persist read state\n const markAllRead = useCallback(() => {\n // Update local state immediately\n setUnreadCounts({});\n setMentions({});\n\n // Persist to server with single bulk request\n api.markAllRead().catch((err) => {\n console.error('Failed to mark all as read on server:', err);\n });\n }, []);\n\n // Mark a specific conversation as read\n // Calls server API to persist read state across devices\n const markConversationRead = useCallback((conv: Conversation) => {\n if (conv.type === 'raw' || conv.type === 'map') return;\n\n const key = getStateKey(conv.type as 'channel' | 'contact', conv.id);\n\n // Update local state immediately\n setUnreadCounts((prev) => {\n if (prev[key]) {\n const next = { ...prev };\n delete next[key];\n return next;\n }\n return prev;\n });\n\n // Also clear mentions for this conversation\n setMentions((prev) => {\n if (prev[key]) {\n const next = { ...prev };\n delete next[key];\n return next;\n }\n return prev;\n });\n\n // Persist to server (fire-and-forget)\n if (conv.type === 'channel') {\n api.markChannelRead(conv.id).catch((err) => {\n console.error('Failed to mark channel as read on server:', err);\n });\n } else if (conv.type === 'contact') {\n api.markContactRead(conv.id).catch((err) => {\n console.error('Failed to mark contact as read on server:', err);\n });\n }\n }, []);\n\n // Track a new incoming message for unread counts\n const trackNewMessage = useCallback((msg: Message) => {\n let conversationKey: string | null = null;\n if (msg.type === 'CHAN' && msg.conversation_key) {\n conversationKey = getStateKey('channel', msg.conversation_key);\n } else if (msg.type === 'PRIV' && msg.conversation_key) {\n conversationKey = getStateKey('contact', msg.conversation_key);\n }\n\n if (conversationKey) {\n const timestamp = msg.received_at || Math.floor(Date.now() / 1000);\n const updated = setLastMessageTime(conversationKey, timestamp);\n setLastMessageTimes(updated);\n }\n }, []);\n\n return {\n unreadCounts,\n mentions,\n lastMessageTimes,\n incrementUnread,\n markAllRead,\n markConversationRead,\n trackNewMessage,\n };\n}\n","'use client';\nfunction __insertCSS(code) {\n if (!code || typeof document == 'undefined') return\n let head = document.head || document.getElementsByTagName('head')[0]\n let style = document.createElement('style')\n style.type = 'text/css'\n head.appendChild(style)\n ;style.styleSheet ? (style.styleSheet.cssText = code) : style.appendChild(document.createTextNode(code))\n}\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nconst getAsset = (type)=>{\n switch(type){\n case 'success':\n return SuccessIcon;\n case 'info':\n return InfoIcon;\n case 'warning':\n return WarningIcon;\n case 'error':\n return ErrorIcon;\n default:\n return null;\n }\n};\nconst bars = Array(12).fill(0);\nconst Loader = ({ visible, className })=>{\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: [\n 'sonner-loading-wrapper',\n className\n ].filter(Boolean).join(' '),\n \"data-visible\": visible\n }, /*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-spinner\"\n }, bars.map((_, i)=>/*#__PURE__*/ React.createElement(\"div\", {\n className: \"sonner-loading-bar\",\n key: `spinner-bar-${i}`\n }))));\n};\nconst SuccessIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z\",\n clipRule: \"evenodd\"\n}));\nconst WarningIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z\",\n clipRule: \"evenodd\"\n}));\nconst InfoIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z\",\n clipRule: \"evenodd\"\n}));\nconst ErrorIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n height: \"20\",\n width: \"20\"\n}, /*#__PURE__*/ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\",\n clipRule: \"evenodd\"\n}));\nconst CloseIcon = /*#__PURE__*/ React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"12\",\n height: \"12\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"18\",\n y1: \"6\",\n x2: \"6\",\n y2: \"18\"\n}), /*#__PURE__*/ React.createElement(\"line\", {\n x1: \"6\",\n y1: \"6\",\n x2: \"18\",\n y2: \"18\"\n}));\n\nconst useIsDocumentHidden = ()=>{\n const [isDocumentHidden, setIsDocumentHidden] = React.useState(document.hidden);\n React.useEffect(()=>{\n const callback = ()=>{\n setIsDocumentHidden(document.hidden);\n };\n document.addEventListener('visibilitychange', callback);\n return ()=>window.removeEventListener('visibilitychange', callback);\n }, []);\n return isDocumentHidden;\n};\n\nlet toastsCounter = 1;\nclass Observer {\n constructor(){\n // We use arrow functions to maintain the correct `this` reference\n this.subscribe = (subscriber)=>{\n this.subscribers.push(subscriber);\n return ()=>{\n const index = this.subscribers.indexOf(subscriber);\n this.subscribers.splice(index, 1);\n };\n };\n this.publish = (data)=>{\n this.subscribers.forEach((subscriber)=>subscriber(data));\n };\n this.addToast = (data)=>{\n this.publish(data);\n this.toasts = [\n ...this.toasts,\n data\n ];\n };\n this.create = (data)=>{\n var _data_id;\n const { message, ...rest } = data;\n const id = typeof (data == null ? void 0 : data.id) === 'number' || ((_data_id = data.id) == null ? void 0 : _data_id.length) > 0 ? data.id : toastsCounter++;\n const alreadyExists = this.toasts.find((toast)=>{\n return toast.id === id;\n });\n const dismissible = data.dismissible === undefined ? true : data.dismissible;\n if (this.dismissedToasts.has(id)) {\n this.dismissedToasts.delete(id);\n }\n if (alreadyExists) {\n this.toasts = this.toasts.map((toast)=>{\n if (toast.id === id) {\n this.publish({\n ...toast,\n ...data,\n id,\n title: message\n });\n return {\n ...toast,\n ...data,\n id,\n dismissible,\n title: message\n };\n }\n return toast;\n });\n } else {\n this.addToast({\n title: message,\n ...rest,\n dismissible,\n id\n });\n }\n return id;\n };\n this.dismiss = (id)=>{\n if (id) {\n this.dismissedToasts.add(id);\n requestAnimationFrame(()=>this.subscribers.forEach((subscriber)=>subscriber({\n id,\n dismiss: true\n })));\n } else {\n this.toasts.forEach((toast)=>{\n this.subscribers.forEach((subscriber)=>subscriber({\n id: toast.id,\n dismiss: true\n }));\n });\n }\n return id;\n };\n this.message = (message, data)=>{\n return this.create({\n ...data,\n message\n });\n };\n this.error = (message, data)=>{\n return this.create({\n ...data,\n message,\n type: 'error'\n });\n };\n this.success = (message, data)=>{\n return this.create({\n ...data,\n type: 'success',\n message\n });\n };\n this.info = (message, data)=>{\n return this.create({\n ...data,\n type: 'info',\n message\n });\n };\n this.warning = (message, data)=>{\n return this.create({\n ...data,\n type: 'warning',\n message\n });\n };\n this.loading = (message, data)=>{\n return this.create({\n ...data,\n type: 'loading',\n message\n });\n };\n this.promise = (promise, data)=>{\n if (!data) {\n // Nothing to show\n return;\n }\n let id = undefined;\n if (data.loading !== undefined) {\n id = this.create({\n ...data,\n promise,\n type: 'loading',\n message: data.loading,\n description: typeof data.description !== 'function' ? data.description : undefined\n });\n }\n const p = Promise.resolve(promise instanceof Function ? promise() : promise);\n let shouldDismiss = id !== undefined;\n let result;\n const originalPromise = p.then(async (response)=>{\n result = [\n 'resolve',\n response\n ];\n const isReactElementResponse = React.isValidElement(response);\n if (isReactElementResponse) {\n shouldDismiss = false;\n this.create({\n id,\n type: 'default',\n message: response\n });\n } else if (isHttpResponse(response) && !response.ok) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(`HTTP error! status: ${response.status}`) : data.error;\n const description = typeof data.description === 'function' ? await data.description(`HTTP error! status: ${response.status}`) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (response instanceof Error) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(response) : data.error;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n } else if (data.success !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.success === 'function' ? await data.success(response) : data.success;\n const description = typeof data.description === 'function' ? await data.description(response) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'success',\n description,\n ...toastSettings\n });\n }\n }).catch(async (error)=>{\n result = [\n 'reject',\n error\n ];\n if (data.error !== undefined) {\n shouldDismiss = false;\n const promiseData = typeof data.error === 'function' ? await data.error(error) : data.error;\n const description = typeof data.description === 'function' ? await data.description(error) : data.description;\n const isExtendedResult = typeof promiseData === 'object' && !React.isValidElement(promiseData);\n const toastSettings = isExtendedResult ? promiseData : {\n message: promiseData\n };\n this.create({\n id,\n type: 'error',\n description,\n ...toastSettings\n });\n }\n }).finally(()=>{\n if (shouldDismiss) {\n // Toast is still in load state (and will be indefinitely — dismiss it)\n this.dismiss(id);\n id = undefined;\n }\n data.finally == null ? void 0 : data.finally.call(data);\n });\n const unwrap = ()=>new Promise((resolve, reject)=>originalPromise.then(()=>result[0] === 'reject' ? reject(result[1]) : resolve(result[1])).catch(reject));\n if (typeof id !== 'string' && typeof id !== 'number') {\n // cannot Object.assign on undefined\n return {\n unwrap\n };\n } else {\n return Object.assign(id, {\n unwrap\n });\n }\n };\n this.custom = (jsx, data)=>{\n const id = (data == null ? void 0 : data.id) || toastsCounter++;\n this.create({\n jsx: jsx(id),\n id,\n ...data\n });\n return id;\n };\n this.getActiveToasts = ()=>{\n return this.toasts.filter((toast)=>!this.dismissedToasts.has(toast.id));\n };\n this.subscribers = [];\n this.toasts = [];\n this.dismissedToasts = new Set();\n }\n}\nconst ToastState = new Observer();\n// bind this to the toast function\nconst toastFunction = (message, data)=>{\n const id = (data == null ? void 0 : data.id) || toastsCounter++;\n ToastState.addToast({\n title: message,\n ...data,\n id\n });\n return id;\n};\nconst isHttpResponse = (data)=>{\n return data && typeof data === 'object' && 'ok' in data && typeof data.ok === 'boolean' && 'status' in data && typeof data.status === 'number';\n};\nconst basicToast = toastFunction;\nconst getHistory = ()=>ToastState.toasts;\nconst getToasts = ()=>ToastState.getActiveToasts();\n// We use `Object.assign` to maintain the correct types as we would lose them otherwise\nconst toast = Object.assign(basicToast, {\n success: ToastState.success,\n info: ToastState.info,\n warning: ToastState.warning,\n error: ToastState.error,\n custom: ToastState.custom,\n message: ToastState.message,\n promise: ToastState.promise,\n dismiss: ToastState.dismiss,\n loading: ToastState.loading\n}, {\n getHistory,\n getToasts\n});\n\n__insertCSS(\"[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}\");\n\nfunction isAction(action) {\n return action.label !== undefined;\n}\n\n// Visible toasts amount\nconst VISIBLE_TOASTS_AMOUNT = 3;\n// Viewport padding\nconst VIEWPORT_OFFSET = '24px';\n// Mobile viewport padding\nconst MOBILE_VIEWPORT_OFFSET = '16px';\n// Default lifetime of a toasts (in ms)\nconst TOAST_LIFETIME = 4000;\n// Default toast width\nconst TOAST_WIDTH = 356;\n// Default gap between toasts\nconst GAP = 14;\n// Threshold to dismiss a toast\nconst SWIPE_THRESHOLD = 45;\n// Equal to exit animation duration\nconst TIME_BEFORE_UNMOUNT = 200;\nfunction cn(...classes) {\n return classes.filter(Boolean).join(' ');\n}\nfunction getDefaultSwipeDirections(position) {\n const [y, x] = position.split('-');\n const directions = [];\n if (y) {\n directions.push(y);\n }\n if (x) {\n directions.push(x);\n }\n return directions;\n}\nconst Toast = (props)=>{\n var _toast_classNames, _toast_classNames1, _toast_classNames2, _toast_classNames3, _toast_classNames4, _toast_classNames5, _toast_classNames6, _toast_classNames7, _toast_classNames8;\n const { invert: ToasterInvert, toast, unstyled, interacting, setHeights, visibleToasts, heights, index, toasts, expanded, removeToast, defaultRichColors, closeButton: closeButtonFromToaster, style, cancelButtonStyle, actionButtonStyle, className = '', descriptionClassName = '', duration: durationFromToaster, position, gap, expandByDefault, classNames, icons, closeButtonAriaLabel = 'Close toast' } = props;\n const [swipeDirection, setSwipeDirection] = React.useState(null);\n const [swipeOutDirection, setSwipeOutDirection] = React.useState(null);\n const [mounted, setMounted] = React.useState(false);\n const [removed, setRemoved] = React.useState(false);\n const [swiping, setSwiping] = React.useState(false);\n const [swipeOut, setSwipeOut] = React.useState(false);\n const [isSwiped, setIsSwiped] = React.useState(false);\n const [offsetBeforeRemove, setOffsetBeforeRemove] = React.useState(0);\n const [initialHeight, setInitialHeight] = React.useState(0);\n const remainingTime = React.useRef(toast.duration || durationFromToaster || TOAST_LIFETIME);\n const dragStartTime = React.useRef(null);\n const toastRef = React.useRef(null);\n const isFront = index === 0;\n const isVisible = index + 1 <= visibleToasts;\n const toastType = toast.type;\n const dismissible = toast.dismissible !== false;\n const toastClassname = toast.className || '';\n const toastDescriptionClassname = toast.descriptionClassName || '';\n // Height index is used to calculate the offset as it gets updated before the toast array, which means we can calculate the new layout faster.\n const heightIndex = React.useMemo(()=>heights.findIndex((height)=>height.toastId === toast.id) || 0, [\n heights,\n toast.id\n ]);\n const closeButton = React.useMemo(()=>{\n var _toast_closeButton;\n return (_toast_closeButton = toast.closeButton) != null ? _toast_closeButton : closeButtonFromToaster;\n }, [\n toast.closeButton,\n closeButtonFromToaster\n ]);\n const duration = React.useMemo(()=>toast.duration || durationFromToaster || TOAST_LIFETIME, [\n toast.duration,\n durationFromToaster\n ]);\n const closeTimerStartTimeRef = React.useRef(0);\n const offset = React.useRef(0);\n const lastCloseTimerStartTimeRef = React.useRef(0);\n const pointerStartRef = React.useRef(null);\n const [y, x] = position.split('-');\n const toastsHeightBefore = React.useMemo(()=>{\n return heights.reduce((prev, curr, reducerIndex)=>{\n // Calculate offset up until current toast\n if (reducerIndex >= heightIndex) {\n return prev;\n }\n return prev + curr.height;\n }, 0);\n }, [\n heights,\n heightIndex\n ]);\n const isDocumentHidden = useIsDocumentHidden();\n const invert = toast.invert || ToasterInvert;\n const disabled = toastType === 'loading';\n offset.current = React.useMemo(()=>heightIndex * gap + toastsHeightBefore, [\n heightIndex,\n toastsHeightBefore\n ]);\n React.useEffect(()=>{\n remainingTime.current = duration;\n }, [\n duration\n ]);\n React.useEffect(()=>{\n // Trigger enter animation without using CSS animation\n setMounted(true);\n }, []);\n React.useEffect(()=>{\n const toastNode = toastRef.current;\n if (toastNode) {\n const height = toastNode.getBoundingClientRect().height;\n // Add toast height to heights array after the toast is mounted\n setInitialHeight(height);\n setHeights((h)=>[\n {\n toastId: toast.id,\n height,\n position: toast.position\n },\n ...h\n ]);\n return ()=>setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n }\n }, [\n setHeights,\n toast.id\n ]);\n React.useLayoutEffect(()=>{\n // Keep height up to date with the content in case it updates\n if (!mounted) return;\n const toastNode = toastRef.current;\n const originalHeight = toastNode.style.height;\n toastNode.style.height = 'auto';\n const newHeight = toastNode.getBoundingClientRect().height;\n toastNode.style.height = originalHeight;\n setInitialHeight(newHeight);\n setHeights((heights)=>{\n const alreadyExists = heights.find((height)=>height.toastId === toast.id);\n if (!alreadyExists) {\n return [\n {\n toastId: toast.id,\n height: newHeight,\n position: toast.position\n },\n ...heights\n ];\n } else {\n return heights.map((height)=>height.toastId === toast.id ? {\n ...height,\n height: newHeight\n } : height);\n }\n });\n }, [\n mounted,\n toast.title,\n toast.description,\n setHeights,\n toast.id,\n toast.jsx,\n toast.action,\n toast.cancel\n ]);\n const deleteToast = React.useCallback(()=>{\n // Save the offset for the exit swipe animation\n setRemoved(true);\n setOffsetBeforeRemove(offset.current);\n setHeights((h)=>h.filter((height)=>height.toastId !== toast.id));\n setTimeout(()=>{\n removeToast(toast);\n }, TIME_BEFORE_UNMOUNT);\n }, [\n toast,\n removeToast,\n setHeights,\n offset\n ]);\n React.useEffect(()=>{\n if (toast.promise && toastType === 'loading' || toast.duration === Infinity || toast.type === 'loading') return;\n let timeoutId;\n // Pause the timer on each hover\n const pauseTimer = ()=>{\n if (lastCloseTimerStartTimeRef.current < closeTimerStartTimeRef.current) {\n // Get the elapsed time since the timer started\n const elapsedTime = new Date().getTime() - closeTimerStartTimeRef.current;\n remainingTime.current = remainingTime.current - elapsedTime;\n }\n lastCloseTimerStartTimeRef.current = new Date().getTime();\n };\n const startTimer = ()=>{\n // setTimeout(, Infinity) behaves as if the delay is 0.\n // As a result, the toast would be closed immediately, giving the appearance that it was never rendered.\n // See: https://github.com/denysdovhan/wtfjs?tab=readme-ov-file#an-infinite-timeout\n if (remainingTime.current === Infinity) return;\n closeTimerStartTimeRef.current = new Date().getTime();\n // Let the toast know it has started\n timeoutId = setTimeout(()=>{\n toast.onAutoClose == null ? void 0 : toast.onAutoClose.call(toast, toast);\n deleteToast();\n }, remainingTime.current);\n };\n if (expanded || interacting || isDocumentHidden) {\n pauseTimer();\n } else {\n startTimer();\n }\n return ()=>clearTimeout(timeoutId);\n }, [\n expanded,\n interacting,\n toast,\n toastType,\n isDocumentHidden,\n deleteToast\n ]);\n React.useEffect(()=>{\n if (toast.delete) {\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n }\n }, [\n deleteToast,\n toast.delete\n ]);\n function getLoadingIcon() {\n var _toast_classNames;\n if (icons == null ? void 0 : icons.loading) {\n var _toast_classNames1;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1.loader, 'sonner-loader'),\n \"data-visible\": toastType === 'loading'\n }, icons.loading);\n }\n return /*#__PURE__*/ React.createElement(Loader, {\n className: cn(classNames == null ? void 0 : classNames.loader, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.loader),\n visible: toastType === 'loading'\n });\n }\n const icon = toast.icon || (icons == null ? void 0 : icons[toastType]) || getAsset(toastType);\n var _toast_richColors, _icons_close;\n return /*#__PURE__*/ React.createElement(\"li\", {\n tabIndex: 0,\n ref: toastRef,\n className: cn(className, toastClassname, classNames == null ? void 0 : classNames.toast, toast == null ? void 0 : (_toast_classNames = toast.classNames) == null ? void 0 : _toast_classNames.toast, classNames == null ? void 0 : classNames.default, classNames == null ? void 0 : classNames[toastType], toast == null ? void 0 : (_toast_classNames1 = toast.classNames) == null ? void 0 : _toast_classNames1[toastType]),\n \"data-sonner-toast\": \"\",\n \"data-rich-colors\": (_toast_richColors = toast.richColors) != null ? _toast_richColors : defaultRichColors,\n \"data-styled\": !Boolean(toast.jsx || toast.unstyled || unstyled),\n \"data-mounted\": mounted,\n \"data-promise\": Boolean(toast.promise),\n \"data-swiped\": isSwiped,\n \"data-removed\": removed,\n \"data-visible\": isVisible,\n \"data-y-position\": y,\n \"data-x-position\": x,\n \"data-index\": index,\n \"data-front\": isFront,\n \"data-swiping\": swiping,\n \"data-dismissible\": dismissible,\n \"data-type\": toastType,\n \"data-invert\": invert,\n \"data-swipe-out\": swipeOut,\n \"data-swipe-direction\": swipeOutDirection,\n \"data-expanded\": Boolean(expanded || expandByDefault && mounted),\n \"data-testid\": toast.testId,\n style: {\n '--index': index,\n '--toasts-before': index,\n '--z-index': toasts.length - index,\n '--offset': `${removed ? offsetBeforeRemove : offset.current}px`,\n '--initial-height': expandByDefault ? 'auto' : `${initialHeight}px`,\n ...style,\n ...toast.style\n },\n onDragEnd: ()=>{\n setSwiping(false);\n setSwipeDirection(null);\n pointerStartRef.current = null;\n },\n onPointerDown: (event)=>{\n if (event.button === 2) return; // Return early on right click\n if (disabled || !dismissible) return;\n dragStartTime.current = new Date();\n setOffsetBeforeRemove(offset.current);\n // Ensure we maintain correct pointer capture even when going outside of the toast (e.g. when swiping)\n event.target.setPointerCapture(event.pointerId);\n if (event.target.tagName === 'BUTTON') return;\n setSwiping(true);\n pointerStartRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n },\n onPointerUp: ()=>{\n var _toastRef_current, _toastRef_current1, _dragStartTime_current;\n if (swipeOut || !dismissible) return;\n pointerStartRef.current = null;\n const swipeAmountX = Number(((_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.getPropertyValue('--swipe-amount-x').replace('px', '')) || 0);\n const swipeAmountY = Number(((_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.getPropertyValue('--swipe-amount-y').replace('px', '')) || 0);\n const timeTaken = new Date().getTime() - ((_dragStartTime_current = dragStartTime.current) == null ? void 0 : _dragStartTime_current.getTime());\n const swipeAmount = swipeDirection === 'x' ? swipeAmountX : swipeAmountY;\n const velocity = Math.abs(swipeAmount) / timeTaken;\n if (Math.abs(swipeAmount) >= SWIPE_THRESHOLD || velocity > 0.11) {\n setOffsetBeforeRemove(offset.current);\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n if (swipeDirection === 'x') {\n setSwipeOutDirection(swipeAmountX > 0 ? 'right' : 'left');\n } else {\n setSwipeOutDirection(swipeAmountY > 0 ? 'down' : 'up');\n }\n deleteToast();\n setSwipeOut(true);\n return;\n } else {\n var _toastRef_current2, _toastRef_current3;\n (_toastRef_current2 = toastRef.current) == null ? void 0 : _toastRef_current2.style.setProperty('--swipe-amount-x', `0px`);\n (_toastRef_current3 = toastRef.current) == null ? void 0 : _toastRef_current3.style.setProperty('--swipe-amount-y', `0px`);\n }\n setIsSwiped(false);\n setSwiping(false);\n setSwipeDirection(null);\n },\n onPointerMove: (event)=>{\n var _window_getSelection, // Apply transform using both x and y values\n _toastRef_current, _toastRef_current1;\n if (!pointerStartRef.current || !dismissible) return;\n const isHighlighted = ((_window_getSelection = window.getSelection()) == null ? void 0 : _window_getSelection.toString().length) > 0;\n if (isHighlighted) return;\n const yDelta = event.clientY - pointerStartRef.current.y;\n const xDelta = event.clientX - pointerStartRef.current.x;\n var _props_swipeDirections;\n const swipeDirections = (_props_swipeDirections = props.swipeDirections) != null ? _props_swipeDirections : getDefaultSwipeDirections(position);\n // Determine swipe direction if not already locked\n if (!swipeDirection && (Math.abs(xDelta) > 1 || Math.abs(yDelta) > 1)) {\n setSwipeDirection(Math.abs(xDelta) > Math.abs(yDelta) ? 'x' : 'y');\n }\n let swipeAmount = {\n x: 0,\n y: 0\n };\n const getDampening = (delta)=>{\n const factor = Math.abs(delta) / 20;\n return 1 / (1.5 + factor);\n };\n // Only apply swipe in the locked direction\n if (swipeDirection === 'y') {\n // Handle vertical swipes\n if (swipeDirections.includes('top') || swipeDirections.includes('bottom')) {\n if (swipeDirections.includes('top') && yDelta < 0 || swipeDirections.includes('bottom') && yDelta > 0) {\n swipeAmount.y = yDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = yDelta * getDampening(yDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.y = Math.abs(dampenedDelta) < Math.abs(yDelta) ? dampenedDelta : yDelta;\n }\n }\n } else if (swipeDirection === 'x') {\n // Handle horizontal swipes\n if (swipeDirections.includes('left') || swipeDirections.includes('right')) {\n if (swipeDirections.includes('left') && xDelta < 0 || swipeDirections.includes('right') && xDelta > 0) {\n swipeAmount.x = xDelta;\n } else {\n // Smoothly transition to dampened movement\n const dampenedDelta = xDelta * getDampening(xDelta);\n // Ensure we don't jump when transitioning to dampened movement\n swipeAmount.x = Math.abs(dampenedDelta) < Math.abs(xDelta) ? dampenedDelta : xDelta;\n }\n }\n }\n if (Math.abs(swipeAmount.x) > 0 || Math.abs(swipeAmount.y) > 0) {\n setIsSwiped(true);\n }\n (_toastRef_current = toastRef.current) == null ? void 0 : _toastRef_current.style.setProperty('--swipe-amount-x', `${swipeAmount.x}px`);\n (_toastRef_current1 = toastRef.current) == null ? void 0 : _toastRef_current1.style.setProperty('--swipe-amount-y', `${swipeAmount.y}px`);\n }\n }, closeButton && !toast.jsx && toastType !== 'loading' ? /*#__PURE__*/ React.createElement(\"button\", {\n \"aria-label\": closeButtonAriaLabel,\n \"data-disabled\": disabled,\n \"data-close-button\": true,\n onClick: disabled || !dismissible ? ()=>{} : ()=>{\n deleteToast();\n toast.onDismiss == null ? void 0 : toast.onDismiss.call(toast, toast);\n },\n className: cn(classNames == null ? void 0 : classNames.closeButton, toast == null ? void 0 : (_toast_classNames2 = toast.classNames) == null ? void 0 : _toast_classNames2.closeButton)\n }, (_icons_close = icons == null ? void 0 : icons.close) != null ? _icons_close : CloseIcon) : null, (toastType || toast.icon || toast.promise) && toast.icon !== null && ((icons == null ? void 0 : icons[toastType]) !== null || toast.icon) ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-icon\": \"\",\n className: cn(classNames == null ? void 0 : classNames.icon, toast == null ? void 0 : (_toast_classNames3 = toast.classNames) == null ? void 0 : _toast_classNames3.icon)\n }, toast.promise || toast.type === 'loading' && !toast.icon ? toast.icon || getLoadingIcon() : null, toast.type !== 'loading' ? icon : null) : null, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-content\": \"\",\n className: cn(classNames == null ? void 0 : classNames.content, toast == null ? void 0 : (_toast_classNames4 = toast.classNames) == null ? void 0 : _toast_classNames4.content)\n }, /*#__PURE__*/ React.createElement(\"div\", {\n \"data-title\": \"\",\n className: cn(classNames == null ? void 0 : classNames.title, toast == null ? void 0 : (_toast_classNames5 = toast.classNames) == null ? void 0 : _toast_classNames5.title)\n }, toast.jsx ? toast.jsx : typeof toast.title === 'function' ? toast.title() : toast.title), toast.description ? /*#__PURE__*/ React.createElement(\"div\", {\n \"data-description\": \"\",\n className: cn(descriptionClassName, toastDescriptionClassname, classNames == null ? void 0 : classNames.description, toast == null ? void 0 : (_toast_classNames6 = toast.classNames) == null ? void 0 : _toast_classNames6.description)\n }, typeof toast.description === 'function' ? toast.description() : toast.description) : null), /*#__PURE__*/ React.isValidElement(toast.cancel) ? toast.cancel : toast.cancel && isAction(toast.cancel) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-cancel\": true,\n style: toast.cancelButtonStyle || cancelButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.cancel)) return;\n if (!dismissible) return;\n toast.cancel.onClick == null ? void 0 : toast.cancel.onClick.call(toast.cancel, event);\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.cancelButton, toast == null ? void 0 : (_toast_classNames7 = toast.classNames) == null ? void 0 : _toast_classNames7.cancelButton)\n }, toast.cancel.label) : null, /*#__PURE__*/ React.isValidElement(toast.action) ? toast.action : toast.action && isAction(toast.action) ? /*#__PURE__*/ React.createElement(\"button\", {\n \"data-button\": true,\n \"data-action\": true,\n style: toast.actionButtonStyle || actionButtonStyle,\n onClick: (event)=>{\n // We need to check twice because typescript\n if (!isAction(toast.action)) return;\n toast.action.onClick == null ? void 0 : toast.action.onClick.call(toast.action, event);\n if (event.defaultPrevented) return;\n deleteToast();\n },\n className: cn(classNames == null ? void 0 : classNames.actionButton, toast == null ? void 0 : (_toast_classNames8 = toast.classNames) == null ? void 0 : _toast_classNames8.actionButton)\n }, toast.action.label) : null);\n};\nfunction getDocumentDirection() {\n if (typeof window === 'undefined') return 'ltr';\n if (typeof document === 'undefined') return 'ltr'; // For Fresh purpose\n const dirAttribute = document.documentElement.getAttribute('dir');\n if (dirAttribute === 'auto' || !dirAttribute) {\n return window.getComputedStyle(document.documentElement).direction;\n }\n return dirAttribute;\n}\nfunction assignOffset(defaultOffset, mobileOffset) {\n const styles = {};\n [\n defaultOffset,\n mobileOffset\n ].forEach((offset, index)=>{\n const isMobile = index === 1;\n const prefix = isMobile ? '--mobile-offset' : '--offset';\n const defaultValue = isMobile ? MOBILE_VIEWPORT_OFFSET : VIEWPORT_OFFSET;\n function assignAll(offset) {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n styles[`${prefix}-${key}`] = typeof offset === 'number' ? `${offset}px` : offset;\n });\n }\n if (typeof offset === 'number' || typeof offset === 'string') {\n assignAll(offset);\n } else if (typeof offset === 'object') {\n [\n 'top',\n 'right',\n 'bottom',\n 'left'\n ].forEach((key)=>{\n if (offset[key] === undefined) {\n styles[`${prefix}-${key}`] = defaultValue;\n } else {\n styles[`${prefix}-${key}`] = typeof offset[key] === 'number' ? `${offset[key]}px` : offset[key];\n }\n });\n } else {\n assignAll(defaultValue);\n }\n });\n return styles;\n}\nfunction useSonner() {\n const [activeToasts, setActiveToasts] = React.useState([]);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>toasts.filter((t)=>t.id !== toast.id));\n });\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setActiveToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, []);\n return {\n toasts: activeToasts\n };\n}\nconst Toaster = /*#__PURE__*/ React.forwardRef(function Toaster(props, ref) {\n const { id, invert, position = 'bottom-right', hotkey = [\n 'altKey',\n 'KeyT'\n ], expand, closeButton, className, offset, mobileOffset, theme = 'light', richColors, duration, style, visibleToasts = VISIBLE_TOASTS_AMOUNT, toastOptions, dir = getDocumentDirection(), gap = GAP, icons, containerAriaLabel = 'Notifications' } = props;\n const [toasts, setToasts] = React.useState([]);\n const filteredToasts = React.useMemo(()=>{\n if (id) {\n return toasts.filter((toast)=>toast.toasterId === id);\n }\n return toasts.filter((toast)=>!toast.toasterId);\n }, [\n toasts,\n id\n ]);\n const possiblePositions = React.useMemo(()=>{\n return Array.from(new Set([\n position\n ].concat(filteredToasts.filter((toast)=>toast.position).map((toast)=>toast.position))));\n }, [\n filteredToasts,\n position\n ]);\n const [heights, setHeights] = React.useState([]);\n const [expanded, setExpanded] = React.useState(false);\n const [interacting, setInteracting] = React.useState(false);\n const [actualTheme, setActualTheme] = React.useState(theme !== 'system' ? theme : typeof window !== 'undefined' ? window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' : 'light');\n const listRef = React.useRef(null);\n const hotkeyLabel = hotkey.join('+').replace(/Key/g, '').replace(/Digit/g, '');\n const lastFocusedElementRef = React.useRef(null);\n const isFocusWithinRef = React.useRef(false);\n const removeToast = React.useCallback((toastToRemove)=>{\n setToasts((toasts)=>{\n var _toasts_find;\n if (!((_toasts_find = toasts.find((toast)=>toast.id === toastToRemove.id)) == null ? void 0 : _toasts_find.delete)) {\n ToastState.dismiss(toastToRemove.id);\n }\n return toasts.filter(({ id })=>id !== toastToRemove.id);\n });\n }, []);\n React.useEffect(()=>{\n return ToastState.subscribe((toast)=>{\n if (toast.dismiss) {\n // Prevent batching of other state updates\n requestAnimationFrame(()=>{\n setToasts((toasts)=>toasts.map((t)=>t.id === toast.id ? {\n ...t,\n delete: true\n } : t));\n });\n return;\n }\n // Prevent batching, temp solution.\n setTimeout(()=>{\n ReactDOM.flushSync(()=>{\n setToasts((toasts)=>{\n const indexOfExistingToast = toasts.findIndex((t)=>t.id === toast.id);\n // Update the toast if it already exists\n if (indexOfExistingToast !== -1) {\n return [\n ...toasts.slice(0, indexOfExistingToast),\n {\n ...toasts[indexOfExistingToast],\n ...toast\n },\n ...toasts.slice(indexOfExistingToast + 1)\n ];\n }\n return [\n toast,\n ...toasts\n ];\n });\n });\n });\n });\n }, [\n toasts\n ]);\n React.useEffect(()=>{\n if (theme !== 'system') {\n setActualTheme(theme);\n return;\n }\n if (theme === 'system') {\n // check if current preference is dark\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n // it's currently dark\n setActualTheme('dark');\n } else {\n // it's not dark\n setActualTheme('light');\n }\n }\n if (typeof window === 'undefined') return;\n const darkMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n try {\n // Chrome & Firefox\n darkMediaQuery.addEventListener('change', ({ matches })=>{\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n });\n } catch (error) {\n // Safari < 14\n darkMediaQuery.addListener(({ matches })=>{\n try {\n if (matches) {\n setActualTheme('dark');\n } else {\n setActualTheme('light');\n }\n } catch (e) {\n console.error(e);\n }\n });\n }\n }, [\n theme\n ]);\n React.useEffect(()=>{\n // Ensure expanded is always false when no toasts are present / only one left\n if (toasts.length <= 1) {\n setExpanded(false);\n }\n }, [\n toasts\n ]);\n React.useEffect(()=>{\n const handleKeyDown = (event)=>{\n var _listRef_current;\n const isHotkeyPressed = hotkey.every((key)=>event[key] || event.code === key);\n if (isHotkeyPressed) {\n var _listRef_current1;\n setExpanded(true);\n (_listRef_current1 = listRef.current) == null ? void 0 : _listRef_current1.focus();\n }\n if (event.code === 'Escape' && (document.activeElement === listRef.current || ((_listRef_current = listRef.current) == null ? void 0 : _listRef_current.contains(document.activeElement)))) {\n setExpanded(false);\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return ()=>document.removeEventListener('keydown', handleKeyDown);\n }, [\n hotkey\n ]);\n React.useEffect(()=>{\n if (listRef.current) {\n return ()=>{\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n isFocusWithinRef.current = false;\n }\n };\n }\n }, [\n listRef.current\n ]);\n return(// Remove item from normal navigation flow, only available via hotkey\n /*#__PURE__*/ React.createElement(\"section\", {\n ref: ref,\n \"aria-label\": `${containerAriaLabel} ${hotkeyLabel}`,\n tabIndex: -1,\n \"aria-live\": \"polite\",\n \"aria-relevant\": \"additions text\",\n \"aria-atomic\": \"false\",\n suppressHydrationWarning: true\n }, possiblePositions.map((position, index)=>{\n var _heights_;\n const [y, x] = position.split('-');\n if (!filteredToasts.length) return null;\n return /*#__PURE__*/ React.createElement(\"ol\", {\n key: position,\n dir: dir === 'auto' ? getDocumentDirection() : dir,\n tabIndex: -1,\n ref: listRef,\n className: className,\n \"data-sonner-toaster\": true,\n \"data-sonner-theme\": actualTheme,\n \"data-y-position\": y,\n \"data-x-position\": x,\n style: {\n '--front-toast-height': `${((_heights_ = heights[0]) == null ? void 0 : _heights_.height) || 0}px`,\n '--width': `${TOAST_WIDTH}px`,\n '--gap': `${gap}px`,\n ...style,\n ...assignOffset(offset, mobileOffset)\n },\n onBlur: (event)=>{\n if (isFocusWithinRef.current && !event.currentTarget.contains(event.relatedTarget)) {\n isFocusWithinRef.current = false;\n if (lastFocusedElementRef.current) {\n lastFocusedElementRef.current.focus({\n preventScroll: true\n });\n lastFocusedElementRef.current = null;\n }\n }\n },\n onFocus: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n if (!isFocusWithinRef.current) {\n isFocusWithinRef.current = true;\n lastFocusedElementRef.current = event.relatedTarget;\n }\n },\n onMouseEnter: ()=>setExpanded(true),\n onMouseMove: ()=>setExpanded(true),\n onMouseLeave: ()=>{\n // Avoid setting expanded to false when interacting with a toast, e.g. swiping\n if (!interacting) {\n setExpanded(false);\n }\n },\n onDragEnd: ()=>setExpanded(false),\n onPointerDown: (event)=>{\n const isNotDismissible = event.target instanceof HTMLElement && event.target.dataset.dismissible === 'false';\n if (isNotDismissible) return;\n setInteracting(true);\n },\n onPointerUp: ()=>setInteracting(false)\n }, filteredToasts.filter((toast)=>!toast.position && index === 0 || toast.position === position).map((toast, index)=>{\n var _toastOptions_duration, _toastOptions_closeButton;\n return /*#__PURE__*/ React.createElement(Toast, {\n key: toast.id,\n icons: icons,\n index: index,\n toast: toast,\n defaultRichColors: richColors,\n duration: (_toastOptions_duration = toastOptions == null ? void 0 : toastOptions.duration) != null ? _toastOptions_duration : duration,\n className: toastOptions == null ? void 0 : toastOptions.className,\n descriptionClassName: toastOptions == null ? void 0 : toastOptions.descriptionClassName,\n invert: invert,\n visibleToasts: visibleToasts,\n closeButton: (_toastOptions_closeButton = toastOptions == null ? void 0 : toastOptions.closeButton) != null ? _toastOptions_closeButton : closeButton,\n interacting: interacting,\n position: position,\n style: toastOptions == null ? void 0 : toastOptions.style,\n unstyled: toastOptions == null ? void 0 : toastOptions.unstyled,\n classNames: toastOptions == null ? void 0 : toastOptions.classNames,\n cancelButtonStyle: toastOptions == null ? void 0 : toastOptions.cancelButtonStyle,\n actionButtonStyle: toastOptions == null ? void 0 : toastOptions.actionButtonStyle,\n closeButtonAriaLabel: toastOptions == null ? void 0 : toastOptions.closeButtonAriaLabel,\n removeToast: removeToast,\n toasts: filteredToasts.filter((t)=>t.position == toast.position),\n heights: heights.filter((h)=>h.position == toast.position),\n setHeights: setHeights,\n expandByDefault: expand,\n gap: gap,\n expanded: expanded,\n swipeDirections: props.swipeDirections\n });\n }));\n })));\n});\n\nexport { Toaster, toast, useSonner };\n","import { Toaster as Sonner, toast } from 'sonner';\n\ntype ToasterProps = React.ComponentProps;\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n return (\n \n );\n};\n\nexport { Toaster, toast };\n","import { useState, useCallback, useEffect, useRef } from 'react';\nimport { toast } from '../components/ui/sonner';\nimport { api } from '../api';\nimport type { Conversation, Message } from '../types';\n\nconst MESSAGE_PAGE_SIZE = 200;\n\n// Generate a key for deduplicating messages by content\nexport function getMessageContentKey(msg: Message): string {\n return `${msg.type}-${msg.conversation_key}-${msg.text}-${msg.sender_timestamp}`;\n}\n\nexport interface UseConversationMessagesResult {\n messages: Message[];\n messagesLoading: boolean;\n loadingOlder: boolean;\n hasOlderMessages: boolean;\n setMessages: React.Dispatch>;\n fetchMessages: (showLoading?: boolean) => Promise;\n fetchOlderMessages: () => Promise;\n addMessageIfNew: (msg: Message) => boolean;\n updateMessageAck: (messageId: number, ackCount: number) => void;\n}\n\nexport function useConversationMessages(\n activeConversation: Conversation | null\n): UseConversationMessagesResult {\n const [messages, setMessages] = useState([]);\n const [messagesLoading, setMessagesLoading] = useState(false);\n const [loadingOlder, setLoadingOlder] = useState(false);\n const [hasOlderMessages, setHasOlderMessages] = useState(false);\n\n // Track seen message content for deduplication\n const seenMessageContent = useRef>(new Set());\n\n // Fetch messages for active conversation\n const fetchMessages = useCallback(\n async (showLoading = false) => {\n if (!activeConversation || activeConversation.type === 'raw') {\n setMessages([]);\n setHasOlderMessages(false);\n return;\n }\n\n if (showLoading) {\n setMessagesLoading(true);\n // Clear messages first so MessageList resets scroll state for new conversation\n setMessages([]);\n }\n try {\n const data = await api.getMessages({\n type: activeConversation.type === 'channel' ? 'CHAN' : 'PRIV',\n conversation_key: activeConversation.id,\n limit: MESSAGE_PAGE_SIZE,\n });\n setMessages(data);\n // Track seen content for new messages\n seenMessageContent.current.clear();\n for (const msg of data) {\n seenMessageContent.current.add(getMessageContentKey(msg));\n }\n // If we got a full page, there might be more\n setHasOlderMessages(data.length >= MESSAGE_PAGE_SIZE);\n } catch (err) {\n console.error('Failed to fetch messages:', err);\n toast.error('Failed to load messages', {\n description: err instanceof Error ? err.message : 'Check your connection',\n });\n } finally {\n if (showLoading) {\n setMessagesLoading(false);\n }\n }\n },\n [activeConversation]\n );\n\n // Fetch older messages (pagination)\n const fetchOlderMessages = useCallback(async () => {\n if (\n !activeConversation ||\n activeConversation.type === 'raw' ||\n loadingOlder ||\n !hasOlderMessages\n )\n return;\n\n setLoadingOlder(true);\n try {\n const data = await api.getMessages({\n type: activeConversation.type === 'channel' ? 'CHAN' : 'PRIV',\n conversation_key: activeConversation.id,\n limit: MESSAGE_PAGE_SIZE,\n offset: messages.length,\n });\n\n if (data.length > 0) {\n // Prepend older messages (they come sorted DESC, so older are at the end)\n setMessages((prev) => [...prev, ...data]);\n // Track seen content\n for (const msg of data) {\n seenMessageContent.current.add(getMessageContentKey(msg));\n }\n }\n // If we got less than a full page, no more messages\n setHasOlderMessages(data.length >= MESSAGE_PAGE_SIZE);\n } catch (err) {\n console.error('Failed to fetch older messages:', err);\n toast.error('Failed to load older messages', {\n description: err instanceof Error ? err.message : 'Check your connection',\n });\n } finally {\n setLoadingOlder(false);\n }\n }, [activeConversation, loadingOlder, hasOlderMessages, messages.length]);\n\n // Fetch messages when conversation changes\n useEffect(() => {\n fetchMessages(true);\n }, [fetchMessages]);\n\n // Add a message if it's new (deduplication)\n // Returns true if the message was added, false if it was a duplicate\n const addMessageIfNew = useCallback((msg: Message): boolean => {\n const contentKey = getMessageContentKey(msg);\n if (seenMessageContent.current.has(contentKey)) {\n console.debug('Duplicate message content ignored:', contentKey.slice(0, 50));\n return false;\n }\n seenMessageContent.current.add(contentKey);\n\n // Limit set size to prevent memory issues (keep last 500)\n if (seenMessageContent.current.size > 1000) {\n const entries = Array.from(seenMessageContent.current);\n seenMessageContent.current = new Set(entries.slice(-500));\n }\n\n setMessages((prev) => {\n if (prev.some((m) => m.id === msg.id)) {\n return prev;\n }\n return [...prev, msg];\n });\n\n return true;\n }, []);\n\n // Update a message's ack count\n const updateMessageAck = useCallback((messageId: number, ackCount: number) => {\n setMessages((prev) => {\n const idx = prev.findIndex((m) => m.id === messageId);\n if (idx >= 0) {\n const updated = [...prev];\n updated[idx] = { ...prev[idx], acked: ackCount };\n return updated;\n }\n return prev;\n });\n }, []);\n\n return {\n messages,\n messagesLoading,\n loadingOlder,\n hasOlderMessages,\n setMessages,\n fetchMessages,\n fetchOlderMessages,\n addMessageIfNew,\n updateMessageAck,\n };\n}\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M20 6 9 17l-5-5\", key: \"1gmf2c\" }]];\nconst Check = createLucideIcon(\"check\", __iconNode);\n\nexport { __iconNode, Check as default };\n//# sourceMappingURL=check.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M4 5h16\", key: \"1tepv9\" }],\n [\"path\", { d: \"M4 12h16\", key: \"1lakjw\" }],\n [\"path\", { d: \"M4 19h16\", key: \"1djgab\" }]\n];\nconst Menu = createLucideIcon(\"menu\", __iconNode);\n\nexport { __iconNode, Menu as default };\n//# sourceMappingURL=menu.js.map\n","/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","import { useState } from 'react';\nimport { Menu } from 'lucide-react';\nimport type { HealthStatus, RadioConfig } from '../types';\nimport { api } from '../api';\nimport { toast } from './ui/sonner';\n\ninterface StatusBarProps {\n health: HealthStatus | null;\n config: RadioConfig | null;\n onConfigClick: () => void;\n onMaintenanceClick: () => void;\n onAdvertise: () => void;\n onMenuClick?: () => void;\n}\n\nexport function StatusBar({\n health,\n config,\n onConfigClick,\n onMaintenanceClick,\n onAdvertise,\n onMenuClick,\n}: StatusBarProps) {\n const connected = health?.radio_connected ?? false;\n const [reconnecting, setReconnecting] = useState(false);\n\n const handleReconnect = async () => {\n setReconnecting(true);\n try {\n const result = await api.reconnectRadio();\n if (result.connected) {\n toast.success('Reconnected', { description: result.message });\n }\n } catch (err) {\n toast.error('Reconnection failed', {\n description: err instanceof Error ? err.message : 'Check radio connection and power',\n });\n } finally {\n setReconnecting(false);\n }\n };\n\n return (\n
\n {/* Mobile menu button - only visible on small screens */}\n {onMenuClick && (\n \n \n \n )}\n\n

RemoteTerm

\n\n
\n
\n \n {connected ? 'Connected' : 'Disconnected'}\n \n
\n\n {health?.serial_port && (\n
\n Port: {health.serial_port}\n
\n )}\n\n {config && (\n <>\n
\n {config.name || 'Unnamed'}\n
\n
\n {config.radio.freq} MHz/SF{config.radio.sf}/CR{config.radio.cr}/{config.tx_power}dBm\n
\n \n )}\n\n {/* Spacer to push buttons right on mobile */}\n
\n\n {!connected && (\n \n {reconnecting ? 'Reconnecting...' : 'Reconnect'}\n \n )}\n \n Advertise\n \n \n \n ⚙️\n \n \n \n \n 📻\n {' '}\n Config\n \n
\n );\n}\n","/**\n * Generate consistent profile \"images\" for contacts.\n *\n * Uses the contact's public key to generate a consistent background color,\n * and extracts initials or emoji from the name for display.\n * Repeaters (type=2) always show 🛜 with a gray background.\n */\n\n// Contact type constants (matches backend)\nexport const CONTACT_TYPE_REPEATER = 2;\n\n// Repeater avatar styling\nconst REPEATER_AVATAR = {\n text: '🛜',\n background: '#444444',\n textColor: '#ffffff',\n};\n\n// Simple hash function for strings\nfunction hashString(str: string): number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash; // Convert to 32-bit integer\n }\n return Math.abs(hash);\n}\n\n// Regex to match emoji (covers most common emoji ranges)\nconst emojiRegex =\n /[\\u{1F300}-\\u{1F9FF}]|[\\u{2600}-\\u{26FF}]|[\\u{2700}-\\u{27BF}]|[\\u{1F600}-\\u{1F64F}]|[\\u{1F680}-\\u{1F6FF}]|[\\u{1F1E0}-\\u{1F1FF}]/u;\n\n/**\n * Extract display characters from a contact name.\n * Priority:\n * 1. First emoji in the name\n * 2. First letter + first letter after first space (initials)\n * 3. First letter only\n */\nexport function getAvatarText(name: string | null, publicKey: string): string {\n if (!name) {\n // Use first 2 chars of public key as fallback\n return publicKey.slice(0, 2).toUpperCase();\n }\n\n // Check for emoji first\n const emojiMatch = name.match(emojiRegex);\n if (emojiMatch) {\n return emojiMatch[0];\n }\n\n // Find first letter\n const letters = name.match(/[a-zA-Z]/g);\n if (!letters || letters.length === 0) {\n // No letters, use first 2 chars of public key\n return publicKey.slice(0, 2).toUpperCase();\n }\n\n // Check for space - get initials\n const spaceIndex = name.indexOf(' ');\n if (spaceIndex !== -1) {\n const firstLetter = letters[0];\n // Find first letter after the space\n const afterSpace = name.slice(spaceIndex + 1).match(/[a-zA-Z]/);\n if (afterSpace) {\n return (firstLetter + afterSpace[0]).toUpperCase();\n }\n }\n\n // Single letter\n return letters[0].toUpperCase();\n}\n\n/**\n * Generate a consistent HSL color from a public key.\n * Uses saturation and lightness ranges that work well for backgrounds.\n */\nexport function getAvatarColor(publicKey: string): {\n background: string;\n text: string;\n} {\n const hash = hashString(publicKey);\n\n // Use hash to generate hue (0-360)\n const hue = hash % 360;\n\n // Use different bits of hash for saturation variation (50-80%)\n const saturation = 50 + ((hash >> 8) % 30);\n\n // Lightness in a range that allows readable text (35-55%)\n const lightness = 35 + ((hash >> 16) % 20);\n\n const background = `hsl(${hue}, ${saturation}%, ${lightness}%)`;\n\n // Calculate perceived luminance to determine text color\n // For HSL, we can approximate: if lightness < 50%, use white text\n // We'll use a slightly lower threshold since saturated colors appear darker\n const textColor = lightness < 45 ? '#ffffff' : '#000000';\n\n return { background, text: textColor };\n}\n\n/**\n * Get all avatar properties for a contact.\n * Repeaters (type=2) always get a special gray avatar with 🛜.\n */\nexport function getContactAvatar(\n name: string | null,\n publicKey: string,\n contactType?: number\n): {\n text: string;\n background: string;\n textColor: string;\n} {\n // Repeaters always get the repeater avatar\n if (contactType === CONTACT_TYPE_REPEATER) {\n return REPEATER_AVATAR;\n }\n\n const text = getAvatarText(name, publicKey);\n const colors = getAvatarColor(publicKey);\n\n return {\n text,\n background: colors.background,\n textColor: colors.text,\n };\n}\n","import { getContactAvatar } from '../utils/contactAvatar';\n\ninterface ContactAvatarProps {\n name: string | null;\n publicKey: string;\n size?: number;\n contactType?: number;\n}\n\nexport function ContactAvatar({ name, publicKey, size = 28, contactType }: ContactAvatarProps) {\n const avatar = getContactAvatar(name, publicKey, contactType);\n\n return (\n \n {avatar.text}\n
\n );\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t {\n // Pre-allocate for better V8 optimization\n const combinedArray = new Array(array1.length + array2.length);\n for (let i = 0; i < array1.length; i++) {\n combinedArray[i] = array1[i];\n }\n for (let i = 0; i < array2.length; i++) {\n combinedArray[array1.length + i] = array2[i];\n }\n return combinedArray;\n};\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (classGroupId, validator) => ({\n classGroupId,\n validator\n});\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (nextPart = new Map(), validators = null, classGroupId) => ({\n nextPart,\n validators,\n classGroupId\n});\nconst CLASS_PART_SEPARATOR = '-';\nconst EMPTY_CONFLICTS = [];\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n if (className.startsWith('[') && className.endsWith(']')) {\n return getGroupIdForArbitraryProperty(className);\n }\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0;\n return getGroupRecursive(classParts, startIndex, classMap);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n if (hasPostfixModifier) {\n const modifierConflicts = conflictingClassGroupModifiers[classGroupId];\n const baseConflicts = conflictingClassGroups[classGroupId];\n if (modifierConflicts) {\n if (baseConflicts) {\n // Merge base conflicts with modifier conflicts\n return concatArrays(baseConflicts, modifierConflicts);\n }\n // Only modifier conflicts\n return modifierConflicts;\n }\n // Fall back to without postfix if no modifier conflicts\n return baseConflicts || EMPTY_CONFLICTS;\n }\n return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, startIndex, classPartObject) => {\n const classPathsLength = classParts.length - startIndex;\n if (classPathsLength === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[startIndex];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n if (nextClassPartObject) {\n const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);\n if (result) return result;\n }\n const validators = classPartObject.validators;\n if (validators === null) {\n return undefined;\n }\n // Build classRest string efficiently by joining from startIndex onwards\n const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);\n const validatorsLength = validators.length;\n for (let i = 0; i < validatorsLength; i++) {\n const validatorObj = validators[i];\n if (validatorObj.validator(classRest)) {\n return validatorObj.classGroupId;\n }\n }\n return undefined;\n};\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = className => className.slice(1, -1).indexOf(':') === -1 ? undefined : (() => {\n const content = className.slice(1, -1);\n const colonIndex = content.indexOf(':');\n const property = content.slice(0, colonIndex);\n return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined;\n})();\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n return processClassGroups(classGroups, theme);\n};\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (classGroups, theme) => {\n const classMap = createClassPartObject();\n for (const classGroupId in classGroups) {\n const group = classGroups[classGroupId];\n processClassesRecursively(group, classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n const len = classGroup.length;\n for (let i = 0; i < len; i++) {\n const classDefinition = classGroup[i];\n processClassDefinition(classDefinition, classPartObject, classGroupId, theme);\n }\n};\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (typeof classDefinition === 'string') {\n processStringDefinition(classDefinition, classPartObject, classGroupId);\n return;\n }\n if (typeof classDefinition === 'function') {\n processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);\n return;\n }\n processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);\n};\nconst processStringDefinition = (classDefinition, classPartObject, classGroupId) => {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n};\nconst processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n if (classPartObject.validators === null) {\n classPartObject.validators = [];\n }\n classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));\n};\nconst processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n const entries = Object.entries(classDefinition);\n const len = entries.length;\n for (let i = 0; i < len; i++) {\n const [key, value] = entries[i];\n processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);\n }\n};\nconst getPart = (classPartObject, path) => {\n let current = classPartObject;\n const parts = path.split(CLASS_PART_SEPARATOR);\n const len = parts.length;\n for (let i = 0; i < len; i++) {\n const part = parts[i];\n let next = current.nextPart.get(part);\n if (!next) {\n next = createClassPartObject();\n current.nextPart.set(part, next);\n }\n current = next;\n }\n return current;\n};\n// Type guard maintains monomorphic check\nconst isThemeGetter = func => 'isThemeGetter' in func && func.isThemeGetter === true;\n\n// LRU cache implementation using plain objects for simplicity\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = Object.create(null);\n let previousCache = Object.create(null);\n const update = (key, value) => {\n cache[key] = value;\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = Object.create(null);\n }\n };\n return {\n get(key) {\n let value = cache[key];\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache[key]) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (key in cache) {\n cache[key] = value;\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst EMPTY_MODIFIERS = [];\n// Pre-allocated result object shape for consistency\nconst createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition,\n isExternal\n});\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n // Use simple array with push for better performance\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n const len = className.length;\n for (let index = 0; index < len; index++) {\n const currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + 1;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') bracketDepth++;else if (currentCharacter === ']') bracketDepth--;else if (currentCharacter === '(') parenDepth++;else if (currentCharacter === ')') parenDepth--;\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);\n // Inline important modifier check\n let baseClassName = baseClassNameWithImportantModifier;\n let hasImportantModifier = false;\n if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(0, -1);\n hasImportantModifier = true;\n } else if (\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {\n baseClassName = baseClassNameWithImportantModifier.slice(1);\n hasImportantModifier = true;\n }\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true);\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n // Pre-compute weights for all known modifiers for O(1) comparison\n const modifierWeights = new Map();\n // Assign weights to sensitive modifiers (highest priority, but preserve order)\n config.orderSensitiveModifiers.forEach((mod, index) => {\n modifierWeights.set(mod, 1000000 + index); // High weights for sensitive mods\n });\n return modifiers => {\n const result = [];\n let currentSegment = [];\n // Process modifiers in one pass\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i];\n // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n const isArbitrary = modifier[0] === '[';\n const isOrderSensitive = modifierWeights.has(modifier);\n if (isArbitrary || isOrderSensitive) {\n // Sort and flush current segment alphabetically\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n currentSegment = [];\n }\n result.push(modifier);\n } else {\n // Regular modifier - add to current segment for batch sorting\n currentSegment.push(modifier);\n }\n }\n // Sort and add any remaining segment items\n if (currentSegment.length > 0) {\n currentSegment.sort();\n result.push(...currentSegment);\n }\n return result;\n };\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n // Fast path: skip sorting for empty or single modifier\n const variantModifier = modifiers.length === 0 ? '' : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.indexOf(classId) > -1) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards (lukeed.com)\n */\nconst twJoin = (...classLists) => {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < classLists.length) {\n if (argument = classLists[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nconst toValue = mix => {\n // Fast path for strings\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nconst createTailwindMerge = (createConfigFirst, ...createConfigRest) => {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall;\n const initTailwindMerge = classList => {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n };\n const tailwindMerge = classList => {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n };\n functionToCall = initTailwindMerge;\n return (...args) => functionToCall(twJoin(...args));\n};\nconst fallbackThemeArr = [];\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || fallbackThemeArr;\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Input = React.forwardRef>(\n ({ className, type, ...props }, ref) => {\n return (\n \n );\n }\n);\nInput.displayName = 'Input';\n\nexport { Input };\n","// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\nvar REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nvar use = React[\" use \".trim().toString()];\nfunction isPromiseLike(value) {\n return typeof value === \"object\" && value !== null && \"then\" in value;\n}\nfunction isLazyComponent(element) {\n return element != null && typeof element === \"object\" && \"$$typeof\" in element && element.$$typeof === REACT_LAZY_TYPE && \"_payload\" in element && isPromiseLike(element._payload);\n}\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n if (isLazyComponent(children) && typeof use === \"function\") {\n children = use(children._payload);\n }\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes, VariantProps {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n return (\n \n );\n }\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import { useState } from 'react';\nimport type { Contact, Channel, Conversation } from '../types';\nimport { getStateKey, type ConversationTimes } from '../utils/conversationState';\nimport { getPubkeyPrefix, getContactDisplayName } from '../utils/pubkey';\nimport { ContactAvatar } from './ContactAvatar';\nimport { CONTACT_TYPE_REPEATER } from '../utils/contactAvatar';\nimport { UNREAD_FETCH_LIMIT } from '../api';\nimport { Input } from './ui/input';\nimport { Button } from './ui/button';\nimport { cn } from '@/lib/utils';\n\ntype SortOrder = 'alpha' | 'recent';\n\ninterface SidebarProps {\n contacts: Contact[];\n channels: Channel[];\n activeConversation: Conversation | null;\n onSelectConversation: (conversation: Conversation) => void;\n onNewMessage: () => void;\n lastMessageTimes: ConversationTimes;\n unreadCounts: Record;\n /** Tracks which conversations have unread messages that mention the user */\n mentions: Record;\n showCracker: boolean;\n crackerRunning: boolean;\n onToggleCracker: () => void;\n onMarkAllRead: () => void;\n}\n\n/** Format unread count, showing \"X+\" if at the fetch limit (indicating there may be more) */\nfunction formatUnreadCount(count: number): string {\n return count >= UNREAD_FETCH_LIMIT ? `${count}+` : `${count}`;\n}\n\n// Load sort preference from localStorage (default to 'recent')\nfunction loadSortOrder(): SortOrder {\n try {\n const stored = localStorage.getItem('remoteterm-sortOrder');\n return stored === 'alpha' ? 'alpha' : 'recent';\n } catch {\n return 'recent';\n }\n}\n\n// Save sort preference to localStorage\nfunction saveSortOrder(order: SortOrder): void {\n try {\n localStorage.setItem('remoteterm-sortOrder', order);\n } catch {\n // localStorage might be full or disabled\n }\n}\n\nexport function Sidebar({\n contacts,\n channels,\n activeConversation,\n onSelectConversation,\n onNewMessage,\n lastMessageTimes,\n unreadCounts,\n mentions,\n showCracker,\n crackerRunning,\n onToggleCracker,\n onMarkAllRead,\n}: SidebarProps) {\n const [sortOrder, setSortOrder] = useState(loadSortOrder);\n const [searchQuery, setSearchQuery] = useState('');\n\n const handleSortToggle = () => {\n const newOrder = sortOrder === 'alpha' ? 'recent' : 'alpha';\n setSortOrder(newOrder);\n saveSortOrder(newOrder);\n };\n\n const handleSelectConversation = (conversation: Conversation) => {\n setSearchQuery('');\n onSelectConversation(conversation);\n };\n\n const isActive = (type: 'contact' | 'channel' | 'raw' | 'map', id: string) =>\n activeConversation?.type === type && activeConversation?.id === id;\n\n // Get unread count for a conversation\n const getUnreadCount = (type: 'channel' | 'contact', id: string): number => {\n const key = getStateKey(type, id);\n return unreadCounts[key] || 0;\n };\n\n // Check if a conversation has a mention\n const hasMention = (type: 'channel' | 'contact', id: string): boolean => {\n const key = getStateKey(type, id);\n return mentions[key] || false;\n };\n\n const getLastMessageTime = (type: 'channel' | 'contact', id: string) => {\n const key = getStateKey(type, id);\n return lastMessageTimes[key] || 0;\n };\n\n // Deduplicate channels by name, keeping the first (lowest index)\n const uniqueChannels = channels.reduce((acc, channel) => {\n if (!acc.some((c) => c.name === channel.name)) {\n acc.push(channel);\n }\n return acc;\n }, []);\n\n // Deduplicate contacts by 12-char prefix, preferring ones with names\n // Also filter out any contacts with empty public keys\n const uniqueContacts = contacts\n .filter((c) => c.public_key && c.public_key.length > 0)\n .sort((a, b) => {\n // Sort contacts with names first\n if (a.name && !b.name) return -1;\n if (!a.name && b.name) return 1;\n return (a.name || '').localeCompare(b.name || '');\n })\n .reduce((acc, contact) => {\n const prefix = getPubkeyPrefix(contact.public_key);\n if (!acc.some((c) => getPubkeyPrefix(c.public_key) === prefix)) {\n acc.push(contact);\n }\n return acc;\n }, []);\n\n // Sort channels based on sort order, with Public always first\n const sortedChannels = [...uniqueChannels].sort((a, b) => {\n // Public channel always sorts to the top\n if (a.name === 'Public') return -1;\n if (b.name === 'Public') return 1;\n\n if (sortOrder === 'recent') {\n const timeA = getLastMessageTime('channel', a.key);\n const timeB = getLastMessageTime('channel', b.key);\n // If both have messages, sort by most recent first\n if (timeA && timeB) return timeB - timeA;\n // Items with messages come before items without\n if (timeA && !timeB) return -1;\n if (!timeA && timeB) return 1;\n // Fall back to alpha for items without messages\n }\n return a.name.localeCompare(b.name);\n });\n\n // Sort contacts: non-repeaters first (by recent or alpha), then repeaters (always alpha)\n const sortedContacts = [...uniqueContacts].sort((a, b) => {\n const aIsRepeater = a.type === CONTACT_TYPE_REPEATER;\n const bIsRepeater = b.type === CONTACT_TYPE_REPEATER;\n\n // Repeaters always go to the bottom\n if (aIsRepeater && !bIsRepeater) return 1;\n if (!aIsRepeater && bIsRepeater) return -1;\n\n // Both repeaters: always sort alphabetically\n if (aIsRepeater && bIsRepeater) {\n return (a.name || a.public_key).localeCompare(b.name || b.public_key);\n }\n\n // Both non-repeaters: use selected sort order\n if (sortOrder === 'recent') {\n const timeA = getLastMessageTime('contact', a.public_key);\n const timeB = getLastMessageTime('contact', b.public_key);\n // If both have messages, sort by most recent first\n if (timeA && timeB) return timeB - timeA;\n // Items with messages come before items without\n if (timeA && !timeB) return -1;\n if (!timeA && timeB) return 1;\n // Fall back to alpha for items without messages\n }\n return (a.name || a.public_key).localeCompare(b.name || b.public_key);\n });\n\n // Filter by search query\n const query = searchQuery.toLowerCase().trim();\n const filteredChannels = query\n ? sortedChannels.filter((c) => c.name.toLowerCase().includes(query))\n : sortedChannels;\n const filteredContacts = query\n ? sortedContacts.filter(\n (c) => c.name?.toLowerCase().includes(query) || c.public_key.toLowerCase().includes(query)\n )\n : sortedContacts;\n\n return (\n
\n {/* Header */}\n
\n

Conversations

\n \n +\n \n
\n\n {/* Search */}\n
\n setSearchQuery(e.target.value)}\n className=\"h-8 text-sm pr-8\"\n />\n {searchQuery && (\n setSearchQuery('')}\n title=\"Clear search\"\n >\n ×\n \n )}\n
\n\n {/* List */}\n
\n {/* Raw Packet Feed */}\n {!query && (\n \n handleSelectConversation({\n type: 'raw',\n id: 'raw',\n name: 'Raw Packet Feed',\n })\n }\n >\n 📡\n Packet Feed\n
\n )}\n\n {/* Node Map */}\n {!query && (\n \n handleSelectConversation({\n type: 'map',\n id: 'map',\n name: 'Node Map',\n })\n }\n >\n 🗺️\n Node Map\n
\n )}\n\n {/* Cracker Toggle */}\n {!query && (\n \n 🔓\n \n {showCracker ? 'Hide' : 'Show'} Cracker\n \n ({crackerRunning ? 'running' : 'stopped'})\n \n \n
\n )}\n\n {/* Mark All Read */}\n {!query && Object.keys(unreadCounts).length > 0 && (\n \n \n Mark all as read\n \n )}\n\n {/* Channels */}\n {filteredChannels.length > 0 && (\n <>\n
\n Channels\n \n {sortOrder === 'alpha' ? 'A-Z' : '⏱'}\n \n
\n {filteredChannels.map((channel) => {\n const unreadCount = getUnreadCount('channel', channel.key);\n const isMention = hasMention('channel', channel.key);\n return (\n 0 && '[&_.name]:font-bold [&_.name]:text-foreground'\n )}\n onClick={() =>\n handleSelectConversation({\n type: 'channel',\n id: channel.key,\n name: channel.name,\n })\n }\n >\n #\n {channel.name}\n {unreadCount > 0 && (\n \n {formatUnreadCount(unreadCount)}\n \n )}\n \n );\n })}\n \n )}\n\n {/* Contacts */}\n {filteredContacts.length > 0 && (\n <>\n
\n Contacts\n {filteredChannels.length === 0 && (\n \n {sortOrder === 'alpha' ? 'A-Z' : '⏱'}\n \n )}\n
\n {filteredContacts.map((contact) => {\n const unreadCount = getUnreadCount('contact', contact.public_key);\n const isMention = hasMention('contact', contact.public_key);\n return (\n 0 && '[&_.name]:font-bold [&_.name]:text-foreground'\n )}\n onClick={() =>\n handleSelectConversation({\n type: 'contact',\n id: contact.public_key,\n name: getContactDisplayName(contact.name, contact.public_key),\n })\n }\n >\n \n \n {getContactDisplayName(contact.name, contact.public_key)}\n \n {unreadCount > 0 && (\n \n {formatUnreadCount(unreadCount)}\n \n )}\n \n );\n })}\n \n )}\n\n {/* Empty state */}\n {filteredContacts.length === 0 && filteredChannels.length === 0 && (\n
\n {query ? 'No matches found' : 'No conversations yet'}\n
\n )}\n \n \n );\n}\n","/**\n * Parse sender from channel message text.\n * Channel messages have format \"sender: message\".\n */\nexport function parseSenderFromText(text: string): { sender: string | null; content: string } {\n const colonIndex = text.indexOf(': ');\n if (colonIndex > 0 && colonIndex < 50) {\n const potentialSender = text.substring(0, colonIndex);\n // Check for colon in potential sender (would indicate it's not a simple name)\n if (!potentialSender.includes(':')) {\n return {\n sender: potentialSender,\n content: text.substring(colonIndex + 2),\n };\n }\n }\n return { sender: null, content: text };\n}\n\n/**\n * Format a Unix timestamp to a time string.\n * Shows date for messages not from today.\n */\nexport function formatTime(timestamp: number): string {\n const date = new Date(timestamp * 1000);\n const now = new Date();\n const isToday = date.toDateString() === now.toDateString();\n\n const time = date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });\n\n if (isToday) {\n return time;\n }\n\n // Show short date for older messages\n const dateStr = date.toLocaleDateString([], { month: 'short', day: 'numeric' });\n return `${dateStr} ${time}`;\n}\n","import { useEffect, useLayoutEffect, useRef, useCallback, useState, type ReactNode } from 'react';\nimport type { Contact, Message } from '../types';\nimport { CONTACT_TYPE_REPEATER } from '../types';\nimport { formatTime, parseSenderFromText } from '../utils/messageParser';\nimport { pubkeysMatch } from '../utils/pubkey';\nimport { ContactAvatar } from './ContactAvatar';\nimport { cn } from '@/lib/utils';\n\ninterface MessageListProps {\n messages: Message[];\n contacts: Contact[];\n loading: boolean;\n loadingOlder?: boolean;\n hasOlderMessages?: boolean;\n onSenderClick?: (sender: string) => void;\n onLoadOlder?: () => void;\n radioName?: string;\n}\n\n// Helper to render text with highlighted @[Name] mentions\nfunction renderTextWithMentions(text: string, radioName?: string): ReactNode {\n if (!radioName) return text;\n\n const mentionPattern = /@\\[([^\\]]+)\\]/g;\n const parts: ReactNode[] = [];\n let lastIndex = 0;\n let match: RegExpExecArray | null;\n let keyIndex = 0;\n\n while ((match = mentionPattern.exec(text)) !== null) {\n // Add text before the match\n if (match.index > lastIndex) {\n parts.push(text.slice(lastIndex, match.index));\n }\n\n const mentionedName = match[1];\n const isOwnMention = mentionedName === radioName;\n\n parts.push(\n \n @[{mentionedName}]\n \n );\n\n lastIndex = match.index + match[0].length;\n }\n\n // Add remaining text after last match\n if (lastIndex < text.length) {\n parts.push(text.slice(lastIndex));\n }\n\n return parts.length > 0 ? parts : text;\n}\n\nexport function MessageList({\n messages,\n contacts,\n loading,\n loadingOlder = false,\n hasOlderMessages = false,\n onSenderClick,\n onLoadOlder,\n radioName,\n}: MessageListProps) {\n const listRef = useRef(null);\n const prevMessagesLengthRef = useRef(0);\n const isInitialLoadRef = useRef(true);\n const [showScrollToBottom, setShowScrollToBottom] = useState(false);\n\n // Capture scroll state in the scroll handler BEFORE any state updates\n const scrollStateRef = useRef({\n scrollTop: 0,\n scrollHeight: 0,\n clientHeight: 0,\n wasNearTop: false,\n wasNearBottom: true, // Default to true so initial messages scroll to bottom\n });\n\n // Handle scroll position AFTER render\n useLayoutEffect(() => {\n if (!listRef.current) return;\n\n const list = listRef.current;\n const messagesAdded = messages.length - prevMessagesLengthRef.current;\n\n if (isInitialLoadRef.current && messages.length > 0) {\n // Initial load - scroll to bottom\n list.scrollTop = list.scrollHeight;\n isInitialLoadRef.current = false;\n } else if (messagesAdded > 0 && prevMessagesLengthRef.current > 0) {\n // Messages were added - use scroll state captured before the update\n const scrollHeightDiff = list.scrollHeight - scrollStateRef.current.scrollHeight;\n\n if (scrollStateRef.current.wasNearTop && scrollHeightDiff > 0) {\n // User was near top (loading older) - preserve position by adding the height diff\n list.scrollTop = scrollStateRef.current.scrollTop + scrollHeightDiff;\n } else if (scrollStateRef.current.wasNearBottom) {\n // User was near bottom - scroll to bottom for new messages (including sent)\n list.scrollTop = list.scrollHeight;\n }\n }\n\n prevMessagesLengthRef.current = messages.length;\n }, [messages]);\n\n // Reset initial load flag when conversation changes (messages becomes empty then filled)\n useEffect(() => {\n if (messages.length === 0) {\n isInitialLoadRef.current = true;\n prevMessagesLengthRef.current = 0;\n scrollStateRef.current = {\n scrollTop: 0,\n scrollHeight: 0,\n clientHeight: 0,\n wasNearTop: false,\n wasNearBottom: true,\n };\n }\n }, [messages.length]);\n\n // Handle scroll - capture state and detect when user is near top/bottom\n const handleScroll = useCallback(() => {\n if (!listRef.current) return;\n\n const { scrollTop, scrollHeight, clientHeight } = listRef.current;\n const distanceFromBottom = scrollHeight - scrollTop - clientHeight;\n\n // Always capture current scroll state (needed for scroll preservation)\n scrollStateRef.current = {\n scrollTop,\n scrollHeight,\n clientHeight,\n wasNearTop: scrollTop < 150,\n wasNearBottom: distanceFromBottom < 100,\n };\n\n // Show scroll-to-bottom button when not near the bottom (more than 100px away)\n setShowScrollToBottom(distanceFromBottom > 100);\n\n if (!onLoadOlder || loadingOlder || !hasOlderMessages) return;\n\n // Trigger load when within 100px of top\n if (scrollTop < 100) {\n onLoadOlder();\n }\n }, [onLoadOlder, loadingOlder, hasOlderMessages]);\n\n // Scroll to bottom handler\n const scrollToBottom = useCallback(() => {\n if (listRef.current) {\n listRef.current.scrollTop = listRef.current.scrollHeight;\n }\n }, []);\n\n // Look up contact by public key or prefix\n const getContact = (conversationKey: string | null): Contact | null => {\n if (!conversationKey) return null;\n return contacts.find((c) => pubkeysMatch(c.public_key, conversationKey)) || null;\n };\n\n // Look up contact by name (for channel messages where we parse sender from text)\n const getContactByName = (name: string): Contact | null => {\n return contacts.find((c) => c.name === name) || null;\n };\n\n if (loading) {\n return (\n
\n Loading messages...\n
\n );\n }\n\n if (messages.length === 0) {\n return (\n
\n No messages yet\n
\n );\n }\n\n // Sort messages by received_at ascending (oldest first)\n // Note: Deduplication is handled by useConversationMessages.addMessageIfNew()\n // and the database UNIQUE constraint on (type, conversation_key, text, sender_timestamp)\n const sortedMessages = [...messages].sort((a, b) => a.received_at - b.received_at);\n\n // Helper to get a unique sender key for grouping messages\n const getSenderKey = (msg: Message, sender: string | null): string => {\n if (msg.outgoing) return '__outgoing__';\n if (msg.type === 'PRIV' && msg.conversation_key) return msg.conversation_key;\n return sender || '__unknown__';\n };\n\n return (\n
\n \n {loadingOlder && (\n
\n Loading older messages...\n
\n )}\n {!loadingOlder && hasOlderMessages && (\n
\n Scroll up for older messages\n
\n )}\n {sortedMessages.map((msg, index) => {\n // For DMs, look up contact; for channel messages, use parsed sender\n const contact = msg.type === 'PRIV' ? getContact(msg.conversation_key) : null;\n const isRepeater = contact?.type === CONTACT_TYPE_REPEATER;\n\n // Skip sender parsing for repeater messages (CLI responses often have colons)\n const { sender, content } = isRepeater\n ? { sender: null, content: msg.text }\n : parseSenderFromText(msg.text);\n const displaySender = msg.outgoing\n ? 'You'\n : contact?.name || sender || msg.conversation_key?.slice(0, 8) || 'Unknown';\n\n const canClickSender = !msg.outgoing && onSenderClick && displaySender !== 'Unknown';\n\n // Determine if we should show avatar (first message in a chunk from same sender)\n const currentSenderKey = getSenderKey(msg, sender);\n const prevMsg = sortedMessages[index - 1];\n const prevSenderKey = prevMsg\n ? getSenderKey(prevMsg, parseSenderFromText(prevMsg.text).sender)\n : null;\n const showAvatar = !msg.outgoing && currentSenderKey !== prevSenderKey;\n const isFirstMessage = index === 0;\n\n // Get avatar info for incoming messages\n let avatarName: string | null = null;\n let avatarKey: string = '';\n if (!msg.outgoing) {\n if (msg.type === 'PRIV' && msg.conversation_key) {\n // DM: use conversation_key (sender's public key)\n avatarName = contact?.name || null;\n avatarKey = msg.conversation_key;\n } else if (sender) {\n // Channel message: try to find contact by name, or use sender name as pseudo-key\n const senderContact = getContactByName(sender);\n avatarName = sender;\n avatarKey = senderContact?.public_key || `name:${sender}`;\n }\n }\n\n return (\n \n {!msg.outgoing && (\n
\n {showAvatar && avatarKey && (\n \n )}\n
\n )}\n \n {showAvatar && (\n
\n {canClickSender ? (\n onSenderClick(displaySender)}\n title={`Mention ${displaySender}`}\n >\n {displaySender}\n \n ) : (\n displaySender\n )}\n \n {formatTime(msg.sender_timestamp || msg.received_at)}\n \n
\n )}\n
\n {content.split('\\n').map((line, i, arr) => (\n \n {renderTextWithMentions(line, radioName)}\n {i < arr.length - 1 &&
}\n
\n ))}\n {!showAvatar && (\n \n {formatTime(msg.sender_timestamp || msg.received_at)}\n \n )}\n {msg.outgoing && (msg.acked > 0 ? ` ✓${msg.acked > 1 ? msg.acked : ''}` : ' ?')}\n
\n
\n \n );\n })}\n \n\n {/* Scroll to bottom button */}\n {showScrollToBottom && (\n \n \n \n \n \n )}\n \n );\n}\n","import {\n useState,\n useCallback,\n useImperativeHandle,\n forwardRef,\n useRef,\n useMemo,\n type FormEvent,\n type KeyboardEvent,\n} from 'react';\nimport { Input } from './ui/input';\nimport { Button } from './ui/button';\nimport { toast } from './ui/sonner';\nimport { cn } from '@/lib/utils';\n\n// MeshCore message size limits (empirically determined from LoRa packet constraints)\n// Direct delivery allows ~156 bytes; multi-hop requires buffer for path growth.\n// Channels include \"sender: \" prefix in the encrypted payload.\nconst DM_HARD_LIMIT = 156; // Max for direct delivery\nconst DM_WARNING_THRESHOLD = 140; // Conservative for multi-hop\nconst CHANNEL_HARD_LIMIT = 156; // Base limit before sender overhead\nconst CHANNEL_WARNING_THRESHOLD = 120; // Conservative for multi-hop\nconst CHANNEL_DANGER_BUFFER = 8; // Red zone starts this many chars before hard limit\n\ninterface MessageInputProps {\n onSend: (text: string) => Promise;\n disabled: boolean;\n placeholder?: string;\n /** When true, input becomes password field for repeater telemetry */\n isRepeaterMode?: boolean;\n /** Conversation type for character limit calculation */\n conversationType?: 'contact' | 'channel' | 'raw';\n /** Sender name (radio name) for channel message limit calculation */\n senderName?: string;\n}\n\ntype LimitState = 'normal' | 'warning' | 'danger' | 'error';\n\nexport interface MessageInputHandle {\n appendText: (text: string) => void;\n}\n\nexport const MessageInput = forwardRef(function MessageInput(\n { onSend, disabled, placeholder, isRepeaterMode, conversationType, senderName },\n ref\n) {\n const [text, setText] = useState('');\n const [sending, setSending] = useState(false);\n const inputRef = useRef(null);\n\n useImperativeHandle(ref, () => ({\n appendText: (appendedText: string) => {\n setText((prev) => prev + appendedText);\n // Focus the input after appending\n inputRef.current?.focus();\n },\n }));\n\n // Calculate character limits based on conversation type\n const limits = useMemo(() => {\n if (conversationType === 'contact') {\n return {\n warningAt: DM_WARNING_THRESHOLD,\n dangerAt: DM_HARD_LIMIT, // Same as hard limit for DMs (no intermediate red zone)\n hardLimit: DM_HARD_LIMIT,\n };\n } else if (conversationType === 'channel') {\n // Channel hard limit = 156 - senderName.length - 2 (for \": \" separator)\n const nameLen = senderName?.length ?? 10;\n const hardLimit = Math.max(1, CHANNEL_HARD_LIMIT - nameLen - 2);\n return {\n warningAt: CHANNEL_WARNING_THRESHOLD,\n dangerAt: Math.max(1, hardLimit - CHANNEL_DANGER_BUFFER),\n hardLimit,\n };\n }\n return null; // Raw/other - no limits\n }, [conversationType, senderName]);\n\n // Determine current limit state\n const { limitState, warningMessage } = useMemo((): {\n limitState: LimitState;\n warningMessage: string | null;\n } => {\n if (!limits) return { limitState: 'normal', warningMessage: null };\n\n const len = text.length;\n if (len >= limits.hardLimit) {\n return { limitState: 'error', warningMessage: 'likely truncated by radio' };\n }\n if (len >= limits.dangerAt) {\n return { limitState: 'danger', warningMessage: 'may impact multi-repeater hop delivery' };\n }\n if (len >= limits.warningAt) {\n return { limitState: 'warning', warningMessage: 'may impact multi-repeater hop delivery' };\n }\n return { limitState: 'normal', warningMessage: null };\n }, [text.length, limits]);\n\n const remaining = limits ? limits.hardLimit - text.length : 0;\n\n const handleSubmit = useCallback(\n async (e: FormEvent) => {\n e.preventDefault();\n const trimmed = text.trim();\n\n // For repeater mode, empty password means guest login\n if (isRepeaterMode) {\n if (sending || disabled) return;\n setSending(true);\n try {\n await onSend(trimmed);\n setText('');\n } catch (err) {\n console.error('Failed to request telemetry:', err);\n toast.error('Failed to request telemetry', {\n description: err instanceof Error ? err.message : 'Check radio connection',\n });\n return;\n } finally {\n setSending(false);\n }\n // Refocus after React re-enables the input (now in CLI command mode)\n setTimeout(() => inputRef.current?.focus(), 0);\n } else {\n if (!trimmed || sending || disabled) return;\n setSending(true);\n try {\n await onSend(trimmed);\n setText('');\n } catch (err) {\n console.error('Failed to send message:', err);\n toast.error('Failed to send message', {\n description: err instanceof Error ? err.message : 'Check radio connection',\n });\n return;\n } finally {\n setSending(false);\n }\n // Refocus after React re-enables the input\n setTimeout(() => inputRef.current?.focus(), 0);\n }\n },\n [text, sending, disabled, onSend, isRepeaterMode]\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n handleSubmit(e as unknown as FormEvent);\n }\n },\n [handleSubmit]\n );\n\n // For repeater mode, always allow submit (empty = guest login)\n const canSubmit = isRepeaterMode ? true : text.trim().length > 0;\n\n // Show character counter for messages (not repeater mode or raw)\n const showCharCounter = !isRepeaterMode && limits !== null;\n\n return (\n
\n
\n setText(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={\n placeholder ||\n (isRepeaterMode ? 'Enter password for admin login...' : 'Type a message...')\n }\n disabled={disabled || sending}\n className=\"flex-1 min-w-0\"\n />\n \n {sending\n ? isRepeaterMode\n ? 'Logging in...'\n : 'Sending...'\n : isRepeaterMode\n ? text.trim()\n ? 'Log in with password'\n : 'Log in as guest/use repeater ACLs'\n : 'Send'}\n \n
\n {showCharCounter && (\n
\n \n {text.length}/{limits!.hardLimit}\n {remaining < 0 && ` (${remaining})`}\n \n {warningMessage && (\n \n — {warningMessage}\n \n )}\n
\n )}\n
\n );\n});\n","// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\" useId \".trim().toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n },\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (true) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (true) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/use-escape-keydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// src/use-state-machine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef(null);\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n stylesRef.current = node2 ? getComputedStyle(node2) : null;\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Presence;\nexport {\n Presence,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-guards.tsx\nimport * as React from \"react\";\nvar count = 0;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n count++;\n return () => {\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nexport {\n FocusGuards,\n FocusGuards as Root,\n useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noRelative = props.noRelative, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noRelative\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noRelative: noRelative, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n if (!target) {\n break;\n }\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n var parent_1 = target.parentNode;\n // we will \"bubble\" from ShadowDom in case we are, or just to the parent in normal case\n // this is the same logic used in focus-lock\n target = (parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1);\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n // allow drag selection (iOS); check if selection's anchorNode is the same as target or contains target\n var selection = window.getSelection();\n var anchorNode = selection && selection.anchorNode;\n var isTouchingSelection = anchorNode ? anchorNode === target || anchorNode.contains(target) : false;\n if (isTouchingSelection) {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide aria-live elements - https://github.com/theKashey/aria-hidden/issues/10\n // and script elements, as they have no impact on accessibility.\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live], script')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar Slot = createSlot(\"DialogOverlay.RemoveScroll\");\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { X } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, children, ...props }, ref) => (\n \n \n \n {children}\n \n \n Close\n \n \n \n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes) => (\n
\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes) => (\n \n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/collection-legacy.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\n\n// src/collection.tsx\nimport React2 from \"react\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createSlot as createSlot2 } from \"@radix-ui/react-slot\";\n\n// src/ordered-dictionary.ts\nvar __instanciated = /* @__PURE__ */ new WeakMap();\nvar OrderedDict = class _OrderedDict extends Map {\n #keys;\n constructor(entries) {\n super(entries);\n this.#keys = [...super.keys()];\n __instanciated.set(this, true);\n }\n set(key, value) {\n if (__instanciated.get(this)) {\n if (this.has(key)) {\n this.#keys[this.#keys.indexOf(key)] = key;\n } else {\n this.#keys.push(key);\n }\n }\n super.set(key, value);\n return this;\n }\n insert(index, key, value) {\n const has = this.has(key);\n const length = this.#keys.length;\n const relativeIndex = toSafeInteger(index);\n let actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n const safeIndex = actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n if (safeIndex === this.size || has && safeIndex === this.size - 1 || safeIndex === -1) {\n this.set(key, value);\n return this;\n }\n const size = this.size + (has ? 0 : 1);\n if (relativeIndex < 0) {\n actualIndex++;\n }\n const keys = [...this.#keys];\n let nextValue;\n let shouldSkip = false;\n for (let i = actualIndex; i < size; i++) {\n if (actualIndex === i) {\n let nextKey = keys[i];\n if (keys[i] === key) {\n nextKey = keys[i + 1];\n }\n if (has) {\n this.delete(key);\n }\n nextValue = this.get(nextKey);\n this.set(key, value);\n } else {\n if (!shouldSkip && keys[i - 1] === key) {\n shouldSkip = true;\n }\n const currentKey = keys[shouldSkip ? i : i - 1];\n const currentValue = nextValue;\n nextValue = this.get(currentKey);\n this.delete(currentKey);\n this.set(currentKey, currentValue);\n }\n }\n return this;\n }\n with(index, key, value) {\n const copy = new _OrderedDict(this);\n copy.insert(index, key, value);\n return copy;\n }\n before(key) {\n const index = this.#keys.indexOf(key) - 1;\n if (index < 0) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position before the given key.\n */\n setBefore(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index, newKey, value);\n }\n after(key) {\n let index = this.#keys.indexOf(key);\n index = index === -1 || index === this.size - 1 ? -1 : index + 1;\n if (index === -1) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position after the given key.\n */\n setAfter(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index + 1, newKey, value);\n }\n first() {\n return this.entryAt(0);\n }\n last() {\n return this.entryAt(-1);\n }\n clear() {\n this.#keys = [];\n return super.clear();\n }\n delete(key) {\n const deleted = super.delete(key);\n if (deleted) {\n this.#keys.splice(this.#keys.indexOf(key), 1);\n }\n return deleted;\n }\n deleteAt(index) {\n const key = this.keyAt(index);\n if (key !== void 0) {\n return this.delete(key);\n }\n return false;\n }\n at(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return this.get(key);\n }\n }\n entryAt(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return [key, this.get(key)];\n }\n }\n indexOf(key) {\n return this.#keys.indexOf(key);\n }\n keyAt(index) {\n return at(this.#keys, index);\n }\n from(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.at(dest);\n }\n keyFrom(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.keyAt(dest);\n }\n find(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return entry;\n }\n index++;\n }\n return void 0;\n }\n findIndex(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n filter(predicate, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n entries.push(entry);\n }\n index++;\n }\n return new _OrderedDict(entries);\n }\n map(callbackfn, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n entries.push([entry[0], Reflect.apply(callbackfn, thisArg, [entry, index, this])]);\n index++;\n }\n return new _OrderedDict(entries);\n }\n reduce(...args) {\n const [callbackfn, initialValue] = args;\n let index = 0;\n let accumulator = initialValue ?? this.at(0);\n for (const entry of this) {\n if (index === 0 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n index++;\n }\n return accumulator;\n }\n reduceRight(...args) {\n const [callbackfn, initialValue] = args;\n let accumulator = initialValue ?? this.at(-1);\n for (let index = this.size - 1; index >= 0; index--) {\n const entry = this.at(index);\n if (index === this.size - 1 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n }\n return accumulator;\n }\n toSorted(compareFn) {\n const entries = [...this.entries()].sort(compareFn);\n return new _OrderedDict(entries);\n }\n toReversed() {\n const reversed = new _OrderedDict();\n for (let index = this.size - 1; index >= 0; index--) {\n const key = this.keyAt(index);\n const element = this.get(key);\n reversed.set(key, element);\n }\n return reversed;\n }\n toSpliced(...args) {\n const entries = [...this.entries()];\n entries.splice(...args);\n return new _OrderedDict(entries);\n }\n slice(start, end) {\n const result = new _OrderedDict();\n let stop = this.size - 1;\n if (start === void 0) {\n return result;\n }\n if (start < 0) {\n start = start + this.size;\n }\n if (end !== void 0 && end > 0) {\n stop = end - 1;\n }\n for (let index = start; index <= stop; index++) {\n const key = this.keyAt(index);\n const element = this.get(key);\n result.set(key, element);\n }\n return result;\n }\n every(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (!Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return false;\n }\n index++;\n }\n return true;\n }\n some(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return true;\n }\n index++;\n }\n return false;\n }\n};\nfunction at(array, index) {\n if (\"at\" in Array.prototype) {\n return Array.prototype.at.call(array, index);\n }\n const actualIndex = toSafeIndex(array, index);\n return actualIndex === -1 ? void 0 : array[actualIndex];\n}\nfunction toSafeIndex(array, index) {\n const length = array.length;\n const relativeIndex = toSafeInteger(index);\n const actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n return actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n}\nfunction toSafeInteger(number) {\n return number !== number || number === 0 ? 0 : Math.trunc(number);\n}\n\n// src/collection.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nfunction createCollection2(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope2(PROVIDER_NAME);\n const [CollectionContextProvider, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n {\n collectionElement: null,\n collectionRef: { current: null },\n collectionRefObject: { current: null },\n itemMap: new OrderedDict(),\n setItemMap: () => void 0\n }\n );\n const CollectionProvider = ({ state, ...props }) => {\n return state ? /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state }) : /* @__PURE__ */ jsx2(CollectionInit, { ...props });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const CollectionInit = (props) => {\n const state = useInitCollection();\n return /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state });\n };\n CollectionInit.displayName = PROVIDER_NAME + \"Init\";\n const CollectionProviderImpl = (props) => {\n const { scope, children, state } = props;\n const ref = React2.useRef(null);\n const [collectionElement, setCollectionElement] = React2.useState(\n null\n );\n const composeRefs = useComposedRefs2(ref, setCollectionElement);\n const [itemMap, setItemMap] = state;\n React2.useEffect(() => {\n if (!collectionElement) return;\n const observer = getChildListObserver(() => {\n });\n observer.observe(collectionElement, {\n childList: true,\n subtree: true\n });\n return () => {\n observer.disconnect();\n };\n }, [collectionElement]);\n return /* @__PURE__ */ jsx2(\n CollectionContextProvider,\n {\n scope,\n itemMap,\n setItemMap,\n collectionRef: composeRefs,\n collectionRefObject: ref,\n collectionElement,\n children\n }\n );\n };\n CollectionProviderImpl.displayName = PROVIDER_NAME + \"Impl\";\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot2(COLLECTION_SLOT_NAME);\n const CollectionSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs2(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx2(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot2(ITEM_SLOT_NAME);\n const CollectionItemSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React2.useRef(null);\n const [element, setElement] = React2.useState(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref, setElement);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n const { setItemMap } = context;\n const itemDataRef = React2.useRef(itemData);\n if (!shallowEqual(itemDataRef.current, itemData)) {\n itemDataRef.current = itemData;\n }\n const memoizedItemData = itemDataRef.current;\n React2.useEffect(() => {\n const itemData2 = memoizedItemData;\n setItemMap((map) => {\n if (!element) {\n return map;\n }\n if (!map.has(element)) {\n map.set(element, { ...itemData2, element });\n return map.toSorted(sortByDocumentPosition);\n }\n return map.set(element, { ...itemData2, element }).toSorted(sortByDocumentPosition);\n });\n return () => {\n setItemMap((map) => {\n if (!element || !map.has(element)) {\n return map;\n }\n map.delete(element);\n return new OrderedDict(map);\n });\n };\n }, [element, memoizedItemData, setItemMap]);\n return /* @__PURE__ */ jsx2(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useInitCollection() {\n return React2.useState(new OrderedDict());\n }\n function useCollection(scope) {\n const { itemMap } = useCollectionContext(name + \"CollectionConsumer\", scope);\n return itemMap;\n }\n const functions = {\n createCollectionScope,\n useCollection,\n useInitCollection\n };\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n functions\n ];\n}\nfunction shallowEqual(a, b) {\n if (a === b) return true;\n if (typeof a !== \"object\" || typeof b !== \"object\") return false;\n if (a == null || b == null) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\nfunction isElementPreceding(a, b) {\n return !!(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\nfunction sortByDocumentPosition(a, b) {\n return !a[1].element || !b[1].element ? 0 : isElementPreceding(a[1].element, b[1].element) ? -1 : 1;\n}\nfunction getChildListObserver(callback) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === \"childList\") {\n callback();\n return;\n }\n }\n });\n return observer;\n}\nexport {\n createCollection,\n createCollection2 as unstable_createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\n\nimport { cn } from '@/lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst labelVariants = cva(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n);\n\nconst Label = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef & VariantProps\n>(({ className, ...props }, ref) => (\n \n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","// packages/react/use-previous/src/use-previous.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/use-size.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nfunction CheckboxProvider(props) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n disabled,\n setChecked,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(\n CheckboxProviderImpl,\n {\n scope: __scopeCheckbox,\n ...context,\n children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children\n }\n );\n}\nvar TRIGGER_NAME = \"CheckboxTrigger\";\nvar CheckboxTrigger = React.forwardRef(\n ({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener(\"reset\", reset);\n return () => form.removeEventListener(\"reset\", reset);\n }\n }, [control, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }\n);\nCheckboxTrigger.displayName = TRIGGER_NAME;\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n return /* @__PURE__ */ jsx(\n CheckboxProvider,\n {\n __scopeCheckbox,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n CheckboxTrigger,\n {\n ...checkboxProps,\n ref: forwardedRef,\n __scopeCheckbox\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n CheckboxBubbleInput,\n {\n __scopeCheckbox\n }\n )\n ] })\n }\n );\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(context.checked) || context.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n )\n }\n );\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"CheckboxBubbleInput\";\nvar CheckboxBubbleInput = React.forwardRef(\n ({ __scopeCheckbox, ...props }, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }\n);\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nexport {\n Checkbox,\n CheckboxIndicator,\n CheckboxIndicator as Indicator,\n Checkbox as Root,\n createCheckboxScope,\n CheckboxBubbleInput as unstable_BubbleInput,\n CheckboxBubbleInput as unstable_CheckboxBubbleInput,\n CheckboxProvider as unstable_CheckboxProvider,\n CheckboxTrigger as unstable_CheckboxTrigger,\n CheckboxProvider as unstable_Provider,\n CheckboxTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { Check } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Checkbox = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n \n \n \n \n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import { useState, useRef } from 'react';\nimport type { Contact, Conversation } from '../types';\nimport { getContactDisplayName } from '../utils/pubkey';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from './ui/dialog';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from './ui/tabs';\nimport { Input } from './ui/input';\nimport { Label } from './ui/label';\nimport { Checkbox } from './ui/checkbox';\nimport { Button } from './ui/button';\n\ntype Tab = 'existing' | 'new-contact' | 'new-room' | 'hashtag';\n\ninterface NewMessageModalProps {\n open: boolean;\n contacts: Contact[];\n undecryptedCount: number;\n onClose: () => void;\n onSelectConversation: (conversation: Conversation) => void;\n onCreateContact: (name: string, publicKey: string, tryHistorical: boolean) => Promise;\n onCreateChannel: (name: string, key: string, tryHistorical: boolean) => Promise;\n onCreateHashtagChannel: (name: string, tryHistorical: boolean) => Promise;\n}\n\nexport function NewMessageModal({\n open,\n contacts,\n undecryptedCount,\n onClose,\n onSelectConversation,\n onCreateContact,\n onCreateChannel,\n onCreateHashtagChannel,\n}: NewMessageModalProps) {\n const [tab, setTab] = useState('existing');\n const [name, setName] = useState('');\n const [key, setKey] = useState('');\n const [tryHistorical, setTryHistorical] = useState(false);\n const [error, setError] = useState('');\n const [loading, setLoading] = useState(false);\n const hashtagInputRef = useRef(null);\n\n const handleCreate = async () => {\n setError('');\n setLoading(true);\n\n try {\n if (tab === 'new-contact') {\n if (!name.trim() || !key.trim()) {\n setError('Name and public key are required');\n return;\n }\n await onCreateContact(name.trim(), key.trim(), tryHistorical);\n onSelectConversation({\n type: 'contact',\n id: key.trim(),\n name: name.trim(),\n });\n } else if (tab === 'new-room') {\n if (!name.trim() || !key.trim()) {\n setError('Room name and key are required');\n return;\n }\n await onCreateChannel(name.trim(), key.trim(), tryHistorical);\n } else if (tab === 'hashtag') {\n const channelName = name.trim();\n const validationError = validateHashtagName(channelName);\n if (validationError) {\n setError(validationError);\n return;\n }\n await onCreateHashtagChannel(`#${channelName}`, tryHistorical);\n }\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to create');\n } finally {\n setLoading(false);\n }\n };\n\n const validateHashtagName = (channelName: string): string | null => {\n if (!channelName) {\n return 'Channel name is required';\n }\n if (!/^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/.test(channelName)) {\n return 'Use letters, numbers, and single dashes (no leading/trailing dashes)';\n }\n return null;\n };\n\n const handleCreateAndAddAnother = async () => {\n setError('');\n const channelName = name.trim();\n const validationError = validateHashtagName(channelName);\n if (validationError) {\n setError(validationError);\n return;\n }\n\n setLoading(true);\n try {\n await onCreateHashtagChannel(`#${channelName}`, tryHistorical);\n setName('');\n hashtagInputRef.current?.focus();\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to create');\n } finally {\n setLoading(false);\n }\n };\n\n const showHistoricalOption = tab !== 'existing' && undecryptedCount > 0;\n\n return (\n !isOpen && onClose()}>\n \n \n New Conversation\n \n\n setTab(v as Tab)} className=\"w-full\">\n \n Existing\n Contact\n Room\n Hashtag\n \n\n \n
\n {contacts.length === 0 ? (\n
No contacts available
\n ) : (\n contacts.map((contact) => (\n {\n onSelectConversation({\n type: 'contact',\n id: contact.public_key,\n name: getContactDisplayName(contact.name, contact.public_key),\n });\n onClose();\n }}\n >\n {getContactDisplayName(contact.name, contact.public_key)}\n
\n ))\n )}\n
\n \n\n \n
\n \n setName(e.target.value)}\n placeholder=\"Contact name\"\n />\n
\n
\n \n setKey(e.target.value)}\n placeholder=\"64-character hex public key\"\n />\n
\n
\n\n \n
\n \n setName(e.target.value)}\n placeholder=\"Room name\"\n />\n
\n
\n \n setKey(e.target.value)}\n placeholder=\"Pre-shared key (hex)\"\n />\n
\n
\n\n \n
\n \n
\n #\n setName(e.target.value)}\n placeholder=\"channel-name\"\n className=\"flex-1\"\n />\n
\n
\n
\n \n\n {showHistoricalOption && (\n
\n
\n \n Try decrypting {undecryptedCount.toLocaleString()} stored packet\n {undecryptedCount !== 1 ? 's' : ''}\n \n setTryHistorical(checked === true)}\n />\n
\n {tryHistorical && (\n

\n Messages will stream in as they decrypt in the background\n

\n )}\n
\n )}\n\n {error &&
{error}
}\n\n \n \n {tab === 'hashtag' && (\n \n )}\n {tab !== 'existing' && (\n \n )}\n \n \n \n );\n}\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport * as SeparatorPrimitive from '@radix-ui/react-separator';\n\nimport { cn } from '@/lib/utils';\n\nconst Separator = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\n \n));\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground',\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground',\n destructive:\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\n warning: 'border-yellow-500/50 bg-yellow-500/10 text-yellow-200 [&>svg]:text-yellow-500',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes & VariantProps\n>(({ className, variant, ...props }, ref) => (\n
\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef>(\n ({ className, ...props }, ref) => (\n \n )\n);\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n
\n));\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n","import { useState, useEffect } from 'react';\nimport type { AppSettings, AppSettingsUpdate, RadioConfig, RadioConfigUpdate } from '../types';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from './ui/dialog';\nimport { Input } from './ui/input';\nimport { Label } from './ui/label';\nimport { Button } from './ui/button';\nimport { Separator } from './ui/separator';\nimport { Alert, AlertDescription } from './ui/alert';\n\ninterface ConfigModalProps {\n open: boolean;\n config: RadioConfig | null;\n appSettings: AppSettings | null;\n onClose: () => void;\n onSave: (update: RadioConfigUpdate) => Promise;\n onSaveAppSettings: (update: AppSettingsUpdate) => Promise;\n onSetPrivateKey: (key: string) => Promise;\n onReboot: () => Promise;\n}\n\nexport function ConfigModal({\n open,\n config,\n appSettings,\n onClose,\n onSave,\n onSaveAppSettings,\n onSetPrivateKey,\n onReboot,\n}: ConfigModalProps) {\n const [name, setName] = useState('');\n const [lat, setLat] = useState('');\n const [lon, setLon] = useState('');\n const [txPower, setTxPower] = useState('');\n const [freq, setFreq] = useState('');\n const [bw, setBw] = useState('');\n const [sf, setSf] = useState('');\n const [cr, setCr] = useState('');\n const [privateKey, setPrivateKey] = useState('');\n const [maxRadioContacts, setMaxRadioContacts] = useState('');\n const [loading, setLoading] = useState(false);\n const [rebooting, setRebooting] = useState(false);\n const [error, setError] = useState('');\n\n useEffect(() => {\n if (config) {\n setName(config.name);\n setLat(String(config.lat));\n setLon(String(config.lon));\n setTxPower(String(config.tx_power));\n setFreq(String(config.radio.freq));\n setBw(String(config.radio.bw));\n setSf(String(config.radio.sf));\n setCr(String(config.radio.cr));\n }\n }, [config]);\n\n useEffect(() => {\n if (appSettings) {\n setMaxRadioContacts(String(appSettings.max_radio_contacts));\n }\n }, [appSettings]);\n\n const handleSave = async () => {\n setError('');\n setLoading(true);\n\n try {\n const update: RadioConfigUpdate = {\n name,\n lat: parseFloat(lat),\n lon: parseFloat(lon),\n tx_power: parseInt(txPower, 10),\n radio: {\n freq: parseFloat(freq),\n bw: parseFloat(bw),\n sf: parseInt(sf, 10),\n cr: parseInt(cr, 10),\n },\n };\n await onSave(update);\n\n const newMaxRadioContacts = parseInt(maxRadioContacts, 10);\n if (!isNaN(newMaxRadioContacts) && newMaxRadioContacts !== appSettings?.max_radio_contacts) {\n await onSaveAppSettings({ max_radio_contacts: newMaxRadioContacts });\n }\n\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to save');\n } finally {\n setLoading(false);\n }\n };\n\n const handleSetPrivateKey = async () => {\n if (!privateKey.trim()) {\n setError('Private key is required');\n return;\n }\n setError('');\n setLoading(true);\n\n try {\n await onSetPrivateKey(privateKey.trim());\n setPrivateKey('');\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to set private key');\n } finally {\n setLoading(false);\n }\n };\n\n const handleReboot = async () => {\n if (\n !confirm('Are you sure you want to reboot the radio? The connection will drop temporarily.')\n ) {\n return;\n }\n setError('');\n setRebooting(true);\n\n try {\n await onReboot();\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to reboot radio');\n } finally {\n setRebooting(false);\n }\n };\n\n return (\n !isOpen && onClose()}>\n \n \n Radio Configuration\n \n\n {!config ? (\n
Loading configuration...
\n ) : (\n
\n
\n \n \n
\n\n
\n \n setName(e.target.value)} />\n
\n\n
\n
\n \n setLat(e.target.value)}\n />\n
\n
\n \n setLon(e.target.value)}\n />\n
\n
\n\n
\n
\n \n setFreq(e.target.value)}\n />\n
\n
\n \n setBw(e.target.value)}\n />\n
\n
\n\n
\n
\n \n setSf(e.target.value)}\n />\n
\n
\n \n setCr(e.target.value)}\n />\n
\n
\n\n
\n
\n \n setTxPower(e.target.value)}\n />\n
\n
\n \n \n
\n
\n\n \n\n
\n \n setMaxRadioContacts(e.target.value)}\n />\n

\n Recent non-repeater contacts loaded to radio for DM auto-ACK (1-1000)\n

\n
\n\n \n\n
\n \n
\n setPrivateKey(e.target.value)}\n placeholder=\"64-character hex private key\"\n className=\"flex-1\"\n />\n \n
\n
\n\n \n\n
\n \n \n \n Some configuration changes (like name) require a radio reboot to take effect. The\n connection will temporarily drop and automatically reconnect.\n \n \n \n {rebooting ? 'Rebooting...' : 'Reboot Radio'}\n \n
\n\n {error &&
{error}
}\n
\n )}\n\n \n \n \n \n
\n
\n );\n}\n","import { useState } from 'react';\nimport type { HealthStatus } from '../types';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from './ui/dialog';\nimport { Input } from './ui/input';\nimport { Label } from './ui/label';\nimport { Button } from './ui/button';\nimport { toast } from './ui/sonner';\nimport { api } from '../api';\n\ninterface MaintenanceModalProps {\n open: boolean;\n health: HealthStatus | null;\n onClose: () => void;\n onHealthRefresh: () => Promise;\n}\n\nexport function MaintenanceModal({\n open,\n health,\n onClose,\n onHealthRefresh,\n}: MaintenanceModalProps) {\n const [retentionDays, setRetentionDays] = useState('14');\n const [cleaning, setCleaning] = useState(false);\n const [deduping, setDeduping] = useState(false);\n\n const handleCleanup = async () => {\n const days = parseInt(retentionDays, 10);\n if (isNaN(days) || days < 1) {\n toast.error('Invalid retention days', {\n description: 'Retention days must be at least 1',\n });\n return;\n }\n\n setCleaning(true);\n\n try {\n const result = await api.runMaintenance(days);\n toast.success('Database cleanup complete', {\n description: `Deleted ${result.packets_deleted} old packet${result.packets_deleted === 1 ? '' : 's'}`,\n });\n // Refresh health to get updated database size\n await onHealthRefresh();\n } catch (err) {\n console.error('Failed to run maintenance:', err);\n toast.error('Database cleanup failed', {\n description: err instanceof Error ? err.message : 'Unknown error',\n });\n } finally {\n setCleaning(false);\n }\n };\n\n const handleDedup = async () => {\n setDeduping(true);\n\n try {\n const result = await api.deduplicatePackets();\n if (result.started) {\n toast.success('Deduplication started', {\n description: result.message,\n });\n } else {\n toast.info('Deduplication', {\n description: result.message,\n });\n }\n } catch (err) {\n console.error('Failed to start deduplication:', err);\n toast.error('Deduplication failed', {\n description: err instanceof Error ? err.message : 'Unknown error',\n });\n } finally {\n setDeduping(false);\n }\n };\n\n return (\n !isOpen && onClose()}>\n \n \n Database Maintenance\n \n\n
\n

\n Current database size:{' '}\n {health?.database_size_mb ?? '?'} MB\n

\n\n
\n \n

\n Delete undecrypted packets older than the specified days. This helps manage storage\n for packets that couldn't be decrypted (unknown channel keys).\n

\n
\n
\n \n setRetentionDays(e.target.value)}\n className=\"w-20\"\n />\n
\n \n
\n
\n\n
\n \n

\n Remove packets with duplicate payloads (same message received via different paths).\n Runs in background and may take a long time.\n

\n \n
\n
\n
\n
\n );\n}\n","import { useEffect, useRef } from 'react';\nimport type { RawPacket } from '../types';\n\ninterface RawPacketListProps {\n packets: RawPacket[];\n}\n\nfunction formatTime(timestamp: number): string {\n const date = new Date(timestamp * 1000);\n return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit' });\n}\n\nfunction formatPayloadType(type: string): string {\n // Convert SNAKE_CASE to Title Case\n return type\n .split('_')\n .map((word) => word.charAt(0) + word.slice(1).toLowerCase())\n .join(' ');\n}\n\nfunction getDecryptedLabel(packet: RawPacket): string {\n if (!packet.decrypted || !packet.decrypted_info) {\n return formatPayloadType(packet.payload_type);\n }\n\n const info = packet.decrypted_info;\n if (packet.payload_type === 'GROUP_TEXT' && info.channel_name) {\n return `GroupText to ${info.channel_name}`;\n }\n if (packet.payload_type === 'TEXT_MESSAGE' && info.sender) {\n return `TextMessage from ${info.sender}`;\n }\n\n return formatPayloadType(packet.payload_type);\n}\n\nfunction formatSignalInfo(packet: RawPacket): string {\n const parts: string[] = [];\n if (packet.snr !== null && packet.snr !== undefined) {\n parts.push(`SNR: ${packet.snr.toFixed(1)} dB`);\n }\n if (packet.rssi !== null && packet.rssi !== undefined) {\n parts.push(`RSSI: ${packet.rssi} dBm`);\n }\n return parts.join(' | ');\n}\n\nexport function RawPacketList({ packets }: RawPacketListProps) {\n const listRef = useRef(null);\n\n useEffect(() => {\n if (listRef.current) {\n listRef.current.scrollTop = listRef.current.scrollHeight;\n }\n }, [packets]);\n\n if (packets.length === 0) {\n return (\n
\n No packets received yet. Packets will appear here in real-time.\n
\n );\n }\n\n // Sort packets by timestamp ascending (oldest first)\n const sortedPackets = [...packets].sort((a, b) => a.timestamp - b.timestamp);\n\n return (\n
\n {sortedPackets.map((packet) => (\n
\n
\n {!packet.decrypted && 🔒}\n {getDecryptedLabel(packet)}\n {' • '}\n {formatTime(packet.timestamp)}\n
\n {(packet.snr !== null || packet.rssi !== null) && (\n
\n {formatSignalInfo(packet)}\n
\n )}\n
\n {packet.data.toUpperCase()}\n
\n
\n ))}\n
\n );\n}\n","import { useEffect, useRef } from 'react';\nexport function useAttribution(map, attribution) {\n const attributionRef = useRef(attribution);\n useEffect(function updateAttribution() {\n if (attribution !== attributionRef.current && map.attributionControl != null) {\n if (attributionRef.current != null) {\n map.attributionControl.removeAttribution(attributionRef.current);\n }\n if (attribution != null) {\n map.attributionControl.addAttribution(attribution);\n }\n }\n attributionRef.current = attribution;\n }, [\n map,\n attribution\n ]);\n}\n","export function updateCircle(layer, props, prevProps) {\n if (props.center !== prevProps.center) {\n layer.setLatLng(props.center);\n }\n if (props.radius != null && props.radius !== prevProps.radius) {\n layer.setRadius(props.radius);\n }\n}\n","import { createContext, useContext } from 'react';\nexport const CONTEXT_VERSION = 1;\nexport function createLeafletContext(map) {\n return Object.freeze({\n __version: CONTEXT_VERSION,\n map\n });\n}\nexport function extendContext(source, extra) {\n return Object.freeze({\n ...source,\n ...extra\n });\n}\nexport const LeafletContext = createContext(null);\nexport const LeafletProvider = LeafletContext.Provider;\nexport function useLeafletContext() {\n const context = useContext(LeafletContext);\n if (context == null) {\n throw new Error('No context provided: useLeafletContext() can only be used in a descendant of ');\n }\n return context;\n}\n","import React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { LeafletProvider } from './context.js';\nexport function createContainerComponent(useElement) {\n function ContainerComponent(props, forwardedRef) {\n const { instance , context } = useElement(props).current;\n useImperativeHandle(forwardedRef, ()=>instance);\n return props.children == null ? null : /*#__PURE__*/ React.createElement(LeafletProvider, {\n value: context\n }, props.children);\n }\n return /*#__PURE__*/ forwardRef(ContainerComponent);\n}\nexport function createDivOverlayComponent(useElement) {\n function OverlayComponent(props, forwardedRef) {\n const [isOpen, setOpen] = useState(false);\n const { instance } = useElement(props, setOpen).current;\n useImperativeHandle(forwardedRef, ()=>instance);\n useEffect(function updateOverlay() {\n if (isOpen) {\n instance.update();\n }\n }, [\n instance,\n isOpen,\n props.children\n ]);\n // @ts-ignore _contentNode missing in type definition\n const contentNode = instance._contentNode;\n return contentNode ? /*#__PURE__*/ createPortal(props.children, contentNode) : null;\n }\n return /*#__PURE__*/ forwardRef(OverlayComponent);\n}\nexport function createLeafComponent(useElement) {\n function LeafComponent(props, forwardedRef) {\n const { instance } = useElement(props).current;\n useImperativeHandle(forwardedRef, ()=>instance);\n return null;\n }\n return /*#__PURE__*/ forwardRef(LeafComponent);\n}\n","import { useEffect, useRef } from 'react';\nexport function useEventHandlers(element, eventHandlers) {\n const eventHandlersRef = useRef();\n useEffect(function addEventHandlers() {\n if (eventHandlers != null) {\n element.instance.on(eventHandlers);\n }\n eventHandlersRef.current = eventHandlers;\n return function removeEventHandlers() {\n if (eventHandlersRef.current != null) {\n element.instance.off(eventHandlersRef.current);\n }\n eventHandlersRef.current = null;\n };\n }, [\n element,\n eventHandlers\n ]);\n}\n","export function withPane(props, context) {\n const pane = props.pane ?? context.pane;\n return pane ? {\n ...props,\n pane\n } : props;\n}\n","import { useAttribution } from './attribution.js';\nimport { useLeafletContext } from './context.js';\nimport { useEventHandlers } from './events.js';\nimport { withPane } from './pane.js';\nexport function createDivOverlayHook(useElement, useLifecycle) {\n return function useDivOverlay(props, setOpen) {\n const context = useLeafletContext();\n const elementRef = useElement(withPane(props, context), context);\n useAttribution(context.map, props.attribution);\n useEventHandlers(elementRef.current, props.eventHandlers);\n useLifecycle(elementRef.current, context, props, setOpen);\n return elementRef;\n };\n}\n","/* @preserve\n * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com\n * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.leaflet = {}));\n})(this, (function (exports) { 'use strict';\n\n var version = \"1.9.4\";\n\n /*\r\n * @namespace Util\r\n *\r\n * Various utility functions, used by Leaflet internally.\r\n */\r\n\r\n // @function extend(dest: Object, src?: Object): Object\r\n // Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\n function extend(dest) {\r\n \tvar i, j, len, src;\r\n\r\n \tfor (j = 1, len = arguments.length; j < len; j++) {\r\n \t\tsrc = arguments[j];\r\n \t\tfor (i in src) {\r\n \t\t\tdest[i] = src[i];\r\n \t\t}\r\n \t}\r\n \treturn dest;\r\n }\r\n\r\n // @function create(proto: Object, properties?: Object): Object\r\n // Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)\r\n var create$2 = Object.create || (function () {\r\n \tfunction F() {}\r\n \treturn function (proto) {\r\n \t\tF.prototype = proto;\r\n \t\treturn new F();\r\n \t};\r\n })();\r\n\r\n // @function bind(fn: Function, …): Function\r\n // Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\r\n // Has a `L.bind()` shortcut.\r\n function bind(fn, obj) {\r\n \tvar slice = Array.prototype.slice;\r\n\r\n \tif (fn.bind) {\r\n \t\treturn fn.bind.apply(fn, slice.call(arguments, 1));\r\n \t}\r\n\r\n \tvar args = slice.call(arguments, 2);\r\n\r\n \treturn function () {\r\n \t\treturn fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);\r\n \t};\r\n }\r\n\r\n // @property lastId: Number\r\n // Last unique ID used by [`stamp()`](#util-stamp)\r\n var lastId = 0;\r\n\r\n // @function stamp(obj: Object): Number\r\n // Returns the unique ID of an object, assigning it one if it doesn't have it.\r\n function stamp(obj) {\r\n \tif (!('_leaflet_id' in obj)) {\r\n \t\tobj['_leaflet_id'] = ++lastId;\r\n \t}\r\n \treturn obj._leaflet_id;\r\n }\r\n\r\n // @function throttle(fn: Function, time: Number, context: Object): Function\r\n // Returns a function which executes function `fn` with the given scope `context`\r\n // (so that the `this` keyword refers to `context` inside `fn`'s code). The function\r\n // `fn` will be called no more than one time per given amount of `time`. The arguments\r\n // received by the bound function will be any arguments passed when binding the\r\n // function, followed by any arguments passed when invoking the bound function.\r\n // Has an `L.throttle` shortcut.\r\n function throttle(fn, time, context) {\r\n \tvar lock, args, wrapperFn, later;\r\n\r\n \tlater = function () {\r\n \t\t// reset lock and call if queued\r\n \t\tlock = false;\r\n \t\tif (args) {\r\n \t\t\twrapperFn.apply(context, args);\r\n \t\t\targs = false;\r\n \t\t}\r\n \t};\r\n\r\n \twrapperFn = function () {\r\n \t\tif (lock) {\r\n \t\t\t// called too soon, queue to call later\r\n \t\t\targs = arguments;\r\n\r\n \t\t} else {\r\n \t\t\t// call and lock until later\r\n \t\t\tfn.apply(context, arguments);\r\n \t\t\tsetTimeout(later, time);\r\n \t\t\tlock = true;\r\n \t\t}\r\n \t};\r\n\r\n \treturn wrapperFn;\r\n }\r\n\r\n // @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number\r\n // Returns the number `num` modulo `range` in such a way so it lies within\r\n // `range[0]` and `range[1]`. The returned value will be always smaller than\r\n // `range[1]` unless `includeMax` is set to `true`.\r\n function wrapNum(x, range, includeMax) {\r\n \tvar max = range[1],\r\n \t min = range[0],\r\n \t d = max - min;\r\n \treturn x === max && includeMax ? x : ((x - min) % d + d) % d + min;\r\n }\r\n\r\n // @function falseFn(): Function\r\n // Returns a function which always returns `false`.\r\n function falseFn() { return false; }\r\n\r\n // @function formatNum(num: Number, precision?: Number|false): Number\r\n // Returns the number `num` rounded with specified `precision`.\r\n // The default `precision` value is 6 decimal places.\r\n // `false` can be passed to skip any processing (can be useful to avoid round-off errors).\r\n function formatNum(num, precision) {\r\n \tif (precision === false) { return num; }\r\n \tvar pow = Math.pow(10, precision === undefined ? 6 : precision);\r\n \treturn Math.round(num * pow) / pow;\r\n }\r\n\r\n // @function trim(str: String): String\r\n // Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)\r\n function trim(str) {\r\n \treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n\r\n // @function splitWords(str: String): String[]\r\n // Trims and splits the string on whitespace and returns the array of parts.\r\n function splitWords(str) {\r\n \treturn trim(str).split(/\\s+/);\r\n }\r\n\r\n // @function setOptions(obj: Object, options: Object): Object\r\n // Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.\r\n function setOptions(obj, options) {\r\n \tif (!Object.prototype.hasOwnProperty.call(obj, 'options')) {\r\n \t\tobj.options = obj.options ? create$2(obj.options) : {};\r\n \t}\r\n \tfor (var i in options) {\r\n \t\tobj.options[i] = options[i];\r\n \t}\r\n \treturn obj.options;\r\n }\r\n\r\n // @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String\r\n // Converts an object into a parameter URL string, e.g. `{a: \"foo\", b: \"bar\"}`\r\n // translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will\r\n // be appended at the end. If `uppercase` is `true`, the parameter names will\r\n // be uppercased (e.g. `'?A=foo&B=bar'`)\r\n function getParamString(obj, existingUrl, uppercase) {\r\n \tvar params = [];\r\n \tfor (var i in obj) {\r\n \t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n \t}\r\n \treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n }\r\n\r\n var templateRe = /\\{ *([\\w_ -]+) *\\}/g;\r\n\r\n // @function template(str: String, data: Object): String\r\n // Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`\r\n // and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string\r\n // `('Hello foo, bar')`. You can also specify functions instead of strings for\r\n // data values — they will be evaluated passing `data` as an argument.\r\n function template(str, data) {\r\n \treturn str.replace(templateRe, function (str, key) {\r\n \t\tvar value = data[key];\r\n\r\n \t\tif (value === undefined) {\r\n \t\t\tthrow new Error('No value provided for variable ' + str);\r\n\r\n \t\t} else if (typeof value === 'function') {\r\n \t\t\tvalue = value(data);\r\n \t\t}\r\n \t\treturn value;\r\n \t});\r\n }\r\n\r\n // @function isArray(obj): Boolean\r\n // Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\r\n var isArray = Array.isArray || function (obj) {\r\n \treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n };\r\n\r\n // @function indexOf(array: Array, el: Object): Number\r\n // Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\r\n function indexOf(array, el) {\r\n \tfor (var i = 0; i < array.length; i++) {\r\n \t\tif (array[i] === el) { return i; }\r\n \t}\r\n \treturn -1;\r\n }\r\n\r\n // @property emptyImageUrl: String\r\n // Data URI string containing a base64-encoded empty GIF image.\r\n // Used as a hack to free memory from unused images on WebKit-powered\r\n // mobile devices (by setting image `src` to this string).\r\n var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\r\n\r\n // inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\n function getPrefixed(name) {\r\n \treturn window['webkit' + name] || window['moz' + name] || window['ms' + name];\r\n }\r\n\r\n var lastTime = 0;\r\n\r\n // fallback for IE 7-8\r\n function timeoutDefer(fn) {\r\n \tvar time = +new Date(),\r\n \t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n \tlastTime = time + timeToCall;\r\n \treturn window.setTimeout(fn, timeToCall);\r\n }\r\n\r\n var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\n var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||\r\n \t\tgetPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };\r\n\r\n // @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number\r\n // Schedules `fn` to be executed when the browser repaints. `fn` is bound to\r\n // `context` if given. When `immediate` is set, `fn` is called immediately if\r\n // the browser doesn't have native support for\r\n // [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),\r\n // otherwise it's delayed. Returns a request ID that can be used to cancel the request.\r\n function requestAnimFrame(fn, context, immediate) {\r\n \tif (immediate && requestFn === timeoutDefer) {\r\n \t\tfn.call(context);\r\n \t} else {\r\n \t\treturn requestFn.call(window, bind(fn, context));\r\n \t}\r\n }\r\n\r\n // @function cancelAnimFrame(id: Number): undefined\r\n // Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).\r\n function cancelAnimFrame(id) {\r\n \tif (id) {\r\n \t\tcancelFn.call(window, id);\r\n \t}\r\n }\n\n var Util = {\n __proto__: null,\n extend: extend,\n create: create$2,\n bind: bind,\n get lastId () { return lastId; },\n stamp: stamp,\n throttle: throttle,\n wrapNum: wrapNum,\n falseFn: falseFn,\n formatNum: formatNum,\n trim: trim,\n splitWords: splitWords,\n setOptions: setOptions,\n getParamString: getParamString,\n template: template,\n isArray: isArray,\n indexOf: indexOf,\n emptyImageUrl: emptyImageUrl,\n requestFn: requestFn,\n cancelFn: cancelFn,\n requestAnimFrame: requestAnimFrame,\n cancelAnimFrame: cancelAnimFrame\n };\n\n // @class Class\r\n // @aka L.Class\r\n\r\n // @section\r\n // @uninheritable\r\n\r\n // Thanks to John Resig and Dean Edwards for inspiration!\r\n\r\n function Class() {}\r\n\r\n Class.extend = function (props) {\r\n\r\n \t// @function extend(props: Object): Function\r\n \t// [Extends the current class](#class-inheritance) given the properties to be included.\r\n \t// Returns a Javascript function that is a class constructor (to be called with `new`).\r\n \tvar NewClass = function () {\r\n\r\n \t\tsetOptions(this);\r\n\r\n \t\t// call the constructor\r\n \t\tif (this.initialize) {\r\n \t\t\tthis.initialize.apply(this, arguments);\r\n \t\t}\r\n\r\n \t\t// call all constructor hooks\r\n \t\tthis.callInitHooks();\r\n \t};\r\n\r\n \tvar parentProto = NewClass.__super__ = this.prototype;\r\n\r\n \tvar proto = create$2(parentProto);\r\n \tproto.constructor = NewClass;\r\n\r\n \tNewClass.prototype = proto;\r\n\r\n \t// inherit parent's statics\r\n \tfor (var i in this) {\r\n \t\tif (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {\r\n \t\t\tNewClass[i] = this[i];\r\n \t\t}\r\n \t}\r\n\r\n \t// mix static properties into the class\r\n \tif (props.statics) {\r\n \t\textend(NewClass, props.statics);\r\n \t}\r\n\r\n \t// mix includes into the prototype\r\n \tif (props.includes) {\r\n \t\tcheckDeprecatedMixinEvents(props.includes);\r\n \t\textend.apply(null, [proto].concat(props.includes));\r\n \t}\r\n\r\n \t// mix given properties into the prototype\r\n \textend(proto, props);\r\n \tdelete proto.statics;\r\n \tdelete proto.includes;\r\n\r\n \t// merge options\r\n \tif (proto.options) {\r\n \t\tproto.options = parentProto.options ? create$2(parentProto.options) : {};\r\n \t\textend(proto.options, props.options);\r\n \t}\r\n\r\n \tproto._initHooks = [];\r\n\r\n \t// add method for calling all hooks\r\n \tproto.callInitHooks = function () {\r\n\r\n \t\tif (this._initHooksCalled) { return; }\r\n\r\n \t\tif (parentProto.callInitHooks) {\r\n \t\t\tparentProto.callInitHooks.call(this);\r\n \t\t}\r\n\r\n \t\tthis._initHooksCalled = true;\r\n\r\n \t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n \t\t\tproto._initHooks[i].call(this);\r\n \t\t}\r\n \t};\r\n\r\n \treturn NewClass;\r\n };\r\n\r\n\r\n // @function include(properties: Object): this\r\n // [Includes a mixin](#class-includes) into the current class.\r\n Class.include = function (props) {\r\n \tvar parentOptions = this.prototype.options;\r\n \textend(this.prototype, props);\r\n \tif (props.options) {\r\n \t\tthis.prototype.options = parentOptions;\r\n \t\tthis.mergeOptions(props.options);\r\n \t}\r\n \treturn this;\r\n };\r\n\r\n // @function mergeOptions(options: Object): this\r\n // [Merges `options`](#class-options) into the defaults of the class.\r\n Class.mergeOptions = function (options) {\r\n \textend(this.prototype.options, options);\r\n \treturn this;\r\n };\r\n\r\n // @function addInitHook(fn: Function): this\r\n // Adds a [constructor hook](#class-constructor-hooks) to the class.\r\n Class.addInitHook = function (fn) { // (Function) || (String, args...)\r\n \tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n \tvar init = typeof fn === 'function' ? fn : function () {\r\n \t\tthis[fn].apply(this, args);\r\n \t};\r\n\r\n \tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n \tthis.prototype._initHooks.push(init);\r\n \treturn this;\r\n };\r\n\r\n function checkDeprecatedMixinEvents(includes) {\r\n \t/* global L: true */\r\n \tif (typeof L === 'undefined' || !L || !L.Mixin) { return; }\r\n\r\n \tincludes = isArray(includes) ? includes : [includes];\r\n\r\n \tfor (var i = 0; i < includes.length; i++) {\r\n \t\tif (includes[i] === L.Mixin.Events) {\r\n \t\t\tconsole.warn('Deprecated include of L.Mixin.Events: ' +\r\n \t\t\t\t'this property will be removed in future releases, ' +\r\n \t\t\t\t'please inherit from L.Evented instead.', new Error().stack);\r\n \t\t}\r\n \t}\r\n }\n\n /*\r\n * @class Evented\r\n * @aka L.Evented\r\n * @inherits Class\r\n *\r\n * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * map.on('click', function(e) {\r\n * \talert(e.latlng);\r\n * } );\r\n * ```\r\n *\r\n * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:\r\n *\r\n * ```js\r\n * function onClick(e) { ... }\r\n *\r\n * map.on('click', onClick);\r\n * map.off('click', onClick);\r\n * ```\r\n */\r\n\r\n var Events = {\r\n \t/* @method on(type: String, fn: Function, context?: Object): this\r\n \t * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).\r\n \t *\r\n \t * @alternative\r\n \t * @method on(eventMap: Object): this\r\n \t * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n \t */\r\n \ton: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t/* @method off(type: String, fn?: Function, context?: Object): this\r\n \t * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.\r\n \t *\r\n \t * @alternative\r\n \t * @method off(eventMap: Object): this\r\n \t * Removes a set of type/listener pairs.\r\n \t *\r\n \t * @alternative\r\n \t * @method off: this\r\n \t * Removes all listeners to all events on the object. This includes implicitly attached events.\r\n \t */\r\n \toff: function (types, fn, context) {\r\n\r\n \t\tif (!arguments.length) {\r\n \t\t\t// clear all listeners if called without arguments\r\n \t\t\tdelete this._events;\r\n\r\n \t\t} else if (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\tthis._off(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tvar removeAll = arguments.length === 1;\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tif (removeAll) {\r\n \t\t\t\t\tthis._off(types[i]);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tthis._off(types[i], fn, context);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// attach listener (without syntactic sugar now)\r\n \t_on: function (type, fn, context, _once) {\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// check if fn already there\r\n \t\tif (this._listens(type, fn, context) !== false) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar newListener = {fn: fn, ctx: context};\r\n \t\tif (_once) {\r\n \t\t\tnewListener.once = true;\r\n \t\t}\r\n\r\n \t\tthis._events = this._events || {};\r\n \t\tthis._events[type] = this._events[type] || [];\r\n \t\tthis._events[type].push(newListener);\r\n \t},\r\n\r\n \t_off: function (type, fn, context) {\r\n \t\tvar listeners,\r\n \t\t i,\r\n \t\t len;\r\n\r\n \t\tif (!this._events) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tlisteners = this._events[type];\r\n \t\tif (!listeners) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (arguments.length === 1) { // remove all\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// Set all removed listeners to noop\r\n \t\t\t\t// so they are not called if remove happens in fire\r\n \t\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tlisteners[i].fn = falseFn;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\t// clear all listeners for a type if function isn't specified\r\n \t\t\tdelete this._events[type];\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// find fn and remove it\r\n \t\tvar index = this._listens(type, fn, context);\r\n \t\tif (index !== false) {\r\n \t\t\tvar listener = listeners[index];\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// set the removed listener to noop so that's not called if remove happens in fire\r\n \t\t\t\tlistener.fn = falseFn;\r\n\r\n \t\t\t\t/* copy array in case events are being fired */\r\n \t\t\t\tthis._events[type] = listeners = listeners.slice();\r\n \t\t\t}\r\n \t\t\tlisteners.splice(index, 1);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method fire(type: String, data?: Object, propagate?: Boolean): this\r\n \t// Fires an event of the specified type. You can optionally provide a data\r\n \t// object — the first argument of the listener function will contain its\r\n \t// properties. The event can optionally be propagated to event parents.\r\n \tfire: function (type, data, propagate) {\r\n \t\tif (!this.listens(type, propagate)) { return this; }\r\n\r\n \t\tvar event = extend({}, data, {\r\n \t\t\ttype: type,\r\n \t\t\ttarget: this,\r\n \t\t\tsourceTarget: data && data.sourceTarget || this\r\n \t\t});\r\n\r\n \t\tif (this._events) {\r\n \t\t\tvar listeners = this._events[type];\r\n \t\t\tif (listeners) {\r\n \t\t\t\tthis._firingCount = (this._firingCount + 1) || 1;\r\n \t\t\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tvar l = listeners[i];\r\n \t\t\t\t\t// off overwrites l.fn, so we need to copy fn to a var\r\n \t\t\t\t\tvar fn = l.fn;\r\n \t\t\t\t\tif (l.once) {\r\n \t\t\t\t\t\tthis.off(type, fn, l.ctx);\r\n \t\t\t\t\t}\r\n \t\t\t\t\tfn.call(l.ctx || this, event);\r\n \t\t\t\t}\r\n\r\n \t\t\t\tthis._firingCount--;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// propagate the event to parents (set with addEventParent)\r\n \t\t\tthis._propagateEvent(event);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method listens(type: String, propagate?: Boolean): Boolean\r\n \t// @method listens(type: String, fn: Function, context?: Object, propagate?: Boolean): Boolean\r\n \t// Returns `true` if a particular event type has any listeners attached to it.\r\n \t// The verification can optionally be propagated, it will return `true` if parents have the listener attached to it.\r\n \tlistens: function (type, fn, context, propagate) {\r\n \t\tif (typeof type !== 'string') {\r\n \t\t\tconsole.warn('\"string\" type argument expected');\r\n \t\t}\r\n\r\n \t\t// we don't overwrite the input `fn` value, because we need to use it for propagation\r\n \t\tvar _fn = fn;\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tpropagate = !!fn;\r\n \t\t\t_fn = undefined;\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events && this._events[type];\r\n \t\tif (listeners && listeners.length) {\r\n \t\t\tif (this._listens(type, _fn, context) !== false) {\r\n \t\t\t\treturn true;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// also check parents for listeners if event propagates\r\n \t\t\tfor (var id in this._eventParents) {\r\n \t\t\t\tif (this._eventParents[id].listens(type, fn, context, propagate)) { return true; }\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n \t},\r\n\r\n \t// returns the index (number) or false\r\n \t_listens: function (type, fn, context) {\r\n \t\tif (!this._events) {\r\n \t\t\treturn false;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events[type] || [];\r\n \t\tif (!fn) {\r\n \t\t\treturn !!listeners.length;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\tif (listeners[i].fn === fn && listeners[i].ctx === context) {\r\n \t\t\t\treturn i;\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n\r\n \t},\r\n\r\n \t// @method once(…): this\r\n \t// Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.\r\n \tonce: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn, true);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context, true);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method addEventParent(obj: Evented): this\r\n \t// Adds an event parent - an `Evented` that will receive propagated events\r\n \taddEventParent: function (obj) {\r\n \t\tthis._eventParents = this._eventParents || {};\r\n \t\tthis._eventParents[stamp(obj)] = obj;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeEventParent(obj: Evented): this\r\n \t// Removes an event parent, so it will stop receiving propagated events\r\n \tremoveEventParent: function (obj) {\r\n \t\tif (this._eventParents) {\r\n \t\t\tdelete this._eventParents[stamp(obj)];\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_propagateEvent: function (e) {\r\n \t\tfor (var id in this._eventParents) {\r\n \t\t\tthis._eventParents[id].fire(e.type, extend({\r\n \t\t\t\tlayer: e.target,\r\n \t\t\t\tpropagatedFrom: e.target\r\n \t\t\t}, e), true);\r\n \t\t}\r\n \t}\r\n };\r\n\r\n // aliases; we should ditch those eventually\r\n\r\n // @method addEventListener(…): this\r\n // Alias to [`on(…)`](#evented-on)\r\n Events.addEventListener = Events.on;\r\n\r\n // @method removeEventListener(…): this\r\n // Alias to [`off(…)`](#evented-off)\r\n\r\n // @method clearAllEventListeners(…): this\r\n // Alias to [`off()`](#evented-off)\r\n Events.removeEventListener = Events.clearAllEventListeners = Events.off;\r\n\r\n // @method addOneTimeEventListener(…): this\r\n // Alias to [`once(…)`](#evented-once)\r\n Events.addOneTimeEventListener = Events.once;\r\n\r\n // @method fireEvent(…): this\r\n // Alias to [`fire(…)`](#evented-fire)\r\n Events.fireEvent = Events.fire;\r\n\r\n // @method hasEventListeners(…): Boolean\r\n // Alias to [`listens(…)`](#evented-listens)\r\n Events.hasEventListeners = Events.listens;\r\n\r\n var Evented = Class.extend(Events);\n\n /*\r\n * @class Point\r\n * @aka L.Point\r\n *\r\n * Represents a point with `x` and `y` coordinates in pixels.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var point = L.point(200, 300);\r\n * ```\r\n *\r\n * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```js\r\n * map.panBy([200, 300]);\r\n * map.panBy(L.point(200, 300));\r\n * ```\r\n *\r\n * Note that `Point` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Point(x, y, round) {\r\n \t// @property x: Number; The `x` coordinate of the point\r\n \tthis.x = (round ? Math.round(x) : x);\r\n \t// @property y: Number; The `y` coordinate of the point\r\n \tthis.y = (round ? Math.round(y) : y);\r\n }\r\n\r\n var trunc = Math.trunc || function (v) {\r\n \treturn v > 0 ? Math.floor(v) : Math.ceil(v);\r\n };\r\n\r\n Point.prototype = {\r\n\r\n \t// @method clone(): Point\r\n \t// Returns a copy of the current point.\r\n \tclone: function () {\r\n \t\treturn new Point(this.x, this.y);\r\n \t},\r\n\r\n \t// @method add(otherPoint: Point): Point\r\n \t// Returns the result of addition of the current and the given points.\r\n \tadd: function (point) {\r\n \t\t// non-destructive, returns a new point\r\n \t\treturn this.clone()._add(toPoint(point));\r\n \t},\r\n\r\n \t_add: function (point) {\r\n \t\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n \t\tthis.x += point.x;\r\n \t\tthis.y += point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method subtract(otherPoint: Point): Point\r\n \t// Returns the result of subtraction of the given point from the current.\r\n \tsubtract: function (point) {\r\n \t\treturn this.clone()._subtract(toPoint(point));\r\n \t},\r\n\r\n \t_subtract: function (point) {\r\n \t\tthis.x -= point.x;\r\n \t\tthis.y -= point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method divideBy(num: Number): Point\r\n \t// Returns the result of division of the current point by the given number.\r\n \tdivideBy: function (num) {\r\n \t\treturn this.clone()._divideBy(num);\r\n \t},\r\n\r\n \t_divideBy: function (num) {\r\n \t\tthis.x /= num;\r\n \t\tthis.y /= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method multiplyBy(num: Number): Point\r\n \t// Returns the result of multiplication of the current point by the given number.\r\n \tmultiplyBy: function (num) {\r\n \t\treturn this.clone()._multiplyBy(num);\r\n \t},\r\n\r\n \t_multiplyBy: function (num) {\r\n \t\tthis.x *= num;\r\n \t\tthis.y *= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method scaleBy(scale: Point): Point\r\n \t// Multiply each coordinate of the current point by each coordinate of\r\n \t// `scale`. In linear algebra terms, multiply the point by the\r\n \t// [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)\r\n \t// defined by `scale`.\r\n \tscaleBy: function (point) {\r\n \t\treturn new Point(this.x * point.x, this.y * point.y);\r\n \t},\r\n\r\n \t// @method unscaleBy(scale: Point): Point\r\n \t// Inverse of `scaleBy`. Divide each coordinate of the current point by\r\n \t// each coordinate of `scale`.\r\n \tunscaleBy: function (point) {\r\n \t\treturn new Point(this.x / point.x, this.y / point.y);\r\n \t},\r\n\r\n \t// @method round(): Point\r\n \t// Returns a copy of the current point with rounded coordinates.\r\n \tround: function () {\r\n \t\treturn this.clone()._round();\r\n \t},\r\n\r\n \t_round: function () {\r\n \t\tthis.x = Math.round(this.x);\r\n \t\tthis.y = Math.round(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method floor(): Point\r\n \t// Returns a copy of the current point with floored coordinates (rounded down).\r\n \tfloor: function () {\r\n \t\treturn this.clone()._floor();\r\n \t},\r\n\r\n \t_floor: function () {\r\n \t\tthis.x = Math.floor(this.x);\r\n \t\tthis.y = Math.floor(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method ceil(): Point\r\n \t// Returns a copy of the current point with ceiled coordinates (rounded up).\r\n \tceil: function () {\r\n \t\treturn this.clone()._ceil();\r\n \t},\r\n\r\n \t_ceil: function () {\r\n \t\tthis.x = Math.ceil(this.x);\r\n \t\tthis.y = Math.ceil(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method trunc(): Point\r\n \t// Returns a copy of the current point with truncated coordinates (rounded towards zero).\r\n \ttrunc: function () {\r\n \t\treturn this.clone()._trunc();\r\n \t},\r\n\r\n \t_trunc: function () {\r\n \t\tthis.x = trunc(this.x);\r\n \t\tthis.y = trunc(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method distanceTo(otherPoint: Point): Number\r\n \t// Returns the cartesian distance between the current and the given points.\r\n \tdistanceTo: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\tvar x = point.x - this.x,\r\n \t\t y = point.y - this.y;\r\n\r\n \t\treturn Math.sqrt(x * x + y * y);\r\n \t},\r\n\r\n \t// @method equals(otherPoint: Point): Boolean\r\n \t// Returns `true` if the given point has the same coordinates.\r\n \tequals: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn point.x === this.x &&\r\n \t\t point.y === this.y;\r\n \t},\r\n\r\n \t// @method contains(otherPoint: Point): Boolean\r\n \t// Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).\r\n \tcontains: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n \t\t Math.abs(point.y) <= Math.abs(this.y);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point for debugging purposes.\r\n \ttoString: function () {\r\n \t\treturn 'Point(' +\r\n \t\t formatNum(this.x) + ', ' +\r\n \t\t formatNum(this.y) + ')';\r\n \t}\r\n };\r\n\r\n // @factory L.point(x: Number, y: Number, round?: Boolean)\r\n // Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Number[])\r\n // Expects an array of the form `[x, y]` instead.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Object)\r\n // Expects a plain object of the form `{x: Number, y: Number}` instead.\r\n function toPoint(x, y, round) {\r\n \tif (x instanceof Point) {\r\n \t\treturn x;\r\n \t}\r\n \tif (isArray(x)) {\r\n \t\treturn new Point(x[0], x[1]);\r\n \t}\r\n \tif (x === undefined || x === null) {\r\n \t\treturn x;\r\n \t}\r\n \tif (typeof x === 'object' && 'x' in x && 'y' in x) {\r\n \t\treturn new Point(x.x, x.y);\r\n \t}\r\n \treturn new Point(x, y, round);\r\n }\n\n /*\r\n * @class Bounds\r\n * @aka L.Bounds\r\n *\r\n * Represents a rectangular area in pixel coordinates.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var p1 = L.point(10, 10),\r\n * p2 = L.point(40, 60),\r\n * bounds = L.bounds(p1, p2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * otherBounds.intersects([[10, 10], [40, 60]]);\r\n * ```\r\n *\r\n * Note that `Bounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Bounds(a, b) {\r\n \tif (!a) { return; }\r\n\r\n \tvar points = b ? [a, b] : a;\r\n\r\n \tfor (var i = 0, len = points.length; i < len; i++) {\r\n \t\tthis.extend(points[i]);\r\n \t}\r\n }\r\n\r\n Bounds.prototype = {\r\n \t// @method extend(point: Point): this\r\n \t// Extends the bounds to contain the given point.\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: Bounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar min2, max2;\r\n \t\tif (!obj) { return this; }\r\n\r\n \t\tif (obj instanceof Point || typeof obj[0] === 'number' || 'x' in obj) {\r\n \t\t\tmin2 = max2 = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t\tmin2 = obj.min;\r\n \t\t\tmax2 = obj.max;\r\n\r\n \t\t\tif (!min2 || !max2) { return this; }\r\n \t\t}\r\n\r\n \t\t// @property min: Point\r\n \t\t// The top left corner of the rectangle.\r\n \t\t// @property max: Point\r\n \t\t// The bottom right corner of the rectangle.\r\n \t\tif (!this.min && !this.max) {\r\n \t\t\tthis.min = min2.clone();\r\n \t\t\tthis.max = max2.clone();\r\n \t\t} else {\r\n \t\t\tthis.min.x = Math.min(min2.x, this.min.x);\r\n \t\t\tthis.max.x = Math.max(max2.x, this.max.x);\r\n \t\t\tthis.min.y = Math.min(min2.y, this.min.y);\r\n \t\t\tthis.max.y = Math.max(max2.y, this.max.y);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getCenter(round?: Boolean): Point\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function (round) {\r\n \t\treturn toPoint(\r\n \t\t (this.min.x + this.max.x) / 2,\r\n \t\t (this.min.y + this.max.y) / 2, round);\r\n \t},\r\n\r\n \t// @method getBottomLeft(): Point\r\n \t// Returns the bottom-left point of the bounds.\r\n \tgetBottomLeft: function () {\r\n \t\treturn toPoint(this.min.x, this.max.y);\r\n \t},\r\n\r\n \t// @method getTopRight(): Point\r\n \t// Returns the top-right point of the bounds.\r\n \tgetTopRight: function () { // -> Point\r\n \t\treturn toPoint(this.max.x, this.min.y);\r\n \t},\r\n\r\n \t// @method getTopLeft(): Point\r\n \t// Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).\r\n \tgetTopLeft: function () {\r\n \t\treturn this.min; // left, top\r\n \t},\r\n\r\n \t// @method getBottomRight(): Point\r\n \t// Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).\r\n \tgetBottomRight: function () {\r\n \t\treturn this.max; // right, bottom\r\n \t},\r\n\r\n \t// @method getSize(): Point\r\n \t// Returns the size of the given bounds\r\n \tgetSize: function () {\r\n \t\treturn this.max.subtract(this.min);\r\n \t},\r\n\r\n \t// @method contains(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n \t// @alternative\r\n \t// @method contains(point: Point): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) {\r\n \t\tvar min, max;\r\n\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof Point) {\r\n \t\t\tobj = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t}\r\n\r\n \t\tif (obj instanceof Bounds) {\r\n \t\t\tmin = obj.min;\r\n \t\t\tmax = obj.max;\r\n \t\t} else {\r\n \t\t\tmin = max = obj;\r\n \t\t}\r\n\r\n \t\treturn (min.x >= this.min.x) &&\r\n \t\t (max.x <= this.max.x) &&\r\n \t\t (min.y >= this.min.y) &&\r\n \t\t (max.y <= this.max.y);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds\r\n \t// intersect if they have at least one point in common.\r\n \tintersects: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n \t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n \t\treturn xIntersects && yIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds\r\n \t// overlap if their intersection is an area.\r\n \toverlaps: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xOverlaps = (max2.x > min.x) && (min2.x < max.x),\r\n \t\t yOverlaps = (max2.y > min.y) && (min2.y < max.y);\r\n\r\n \t\treturn xOverlaps && yOverlaps;\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this.min && this.max);\r\n \t},\r\n\r\n\r\n \t// @method pad(bufferRatio: Number): Bounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar min = this.min,\r\n \t\tmax = this.max,\r\n \t\theightBuffer = Math.abs(min.x - max.x) * bufferRatio,\r\n \t\twidthBuffer = Math.abs(min.y - max.y) * bufferRatio;\r\n\r\n\r\n \t\treturn toBounds(\r\n \t\t\ttoPoint(min.x - heightBuffer, min.y - widthBuffer),\r\n \t\t\ttoPoint(max.x + heightBuffer, max.y + widthBuffer));\r\n \t},\r\n\r\n\r\n \t// @method equals(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle is equivalent to the given bounds.\r\n \tequals: function (bounds) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\treturn this.min.equals(bounds.getTopLeft()) &&\r\n \t\t\tthis.max.equals(bounds.getBottomRight());\r\n \t},\r\n };\r\n\r\n\r\n // @factory L.bounds(corner1: Point, corner2: Point)\r\n // Creates a Bounds object from two corners coordinate pairs.\r\n // @alternative\r\n // @factory L.bounds(points: Point[])\r\n // Creates a Bounds object from the given array of points.\r\n function toBounds(a, b) {\r\n \tif (!a || a instanceof Bounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new Bounds(a, b);\r\n }\n\n /*\r\n * @class LatLngBounds\r\n * @aka L.LatLngBounds\r\n *\r\n * Represents a rectangular geographical area on a map.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var corner1 = L.latLng(40.712, -74.227),\r\n * corner2 = L.latLng(40.774, -74.125),\r\n * bounds = L.latLngBounds(corner1, corner2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * map.fitBounds([\r\n * \t[40.712, -74.227],\r\n * \t[40.774, -74.125]\r\n * ]);\r\n * ```\r\n *\r\n * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.\r\n *\r\n * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])\r\n \tif (!corner1) { return; }\r\n\r\n \tvar latlngs = corner2 ? [corner1, corner2] : corner1;\r\n\r\n \tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n \t\tthis.extend(latlngs[i]);\r\n \t}\r\n }\r\n\r\n LatLngBounds.prototype = {\r\n\r\n \t// @method extend(latlng: LatLng): this\r\n \t// Extend the bounds to contain the given point\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: LatLngBounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLng) {\r\n \t\t\tsw2 = obj;\r\n \t\t\tne2 = obj;\r\n\r\n \t\t} else if (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj._southWest;\r\n \t\t\tne2 = obj._northEast;\r\n\r\n \t\t\tif (!sw2 || !ne2) { return this; }\r\n\r\n \t\t} else {\r\n \t\t\treturn obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;\r\n \t\t}\r\n\r\n \t\tif (!sw && !ne) {\r\n \t\t\tthis._southWest = new LatLng(sw2.lat, sw2.lng);\r\n \t\t\tthis._northEast = new LatLng(ne2.lat, ne2.lng);\r\n \t\t} else {\r\n \t\t\tsw.lat = Math.min(sw2.lat, sw.lat);\r\n \t\t\tsw.lng = Math.min(sw2.lng, sw.lng);\r\n \t\t\tne.lat = Math.max(ne2.lat, ne.lat);\r\n \t\t\tne.lng = Math.max(ne2.lng, ne.lng);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method pad(bufferRatio: Number): LatLngBounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n \t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n \t\treturn new LatLngBounds(\r\n \t\t new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n \t\t new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n \t},\r\n\r\n \t// @method getCenter(): LatLng\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function () {\r\n \t\treturn new LatLng(\r\n \t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n \t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n \t},\r\n\r\n \t// @method getSouthWest(): LatLng\r\n \t// Returns the south-west point of the bounds.\r\n \tgetSouthWest: function () {\r\n \t\treturn this._southWest;\r\n \t},\r\n\r\n \t// @method getNorthEast(): LatLng\r\n \t// Returns the north-east point of the bounds.\r\n \tgetNorthEast: function () {\r\n \t\treturn this._northEast;\r\n \t},\r\n\r\n \t// @method getNorthWest(): LatLng\r\n \t// Returns the north-west point of the bounds.\r\n \tgetNorthWest: function () {\r\n \t\treturn new LatLng(this.getNorth(), this.getWest());\r\n \t},\r\n\r\n \t// @method getSouthEast(): LatLng\r\n \t// Returns the south-east point of the bounds.\r\n \tgetSouthEast: function () {\r\n \t\treturn new LatLng(this.getSouth(), this.getEast());\r\n \t},\r\n\r\n \t// @method getWest(): Number\r\n \t// Returns the west longitude of the bounds\r\n \tgetWest: function () {\r\n \t\treturn this._southWest.lng;\r\n \t},\r\n\r\n \t// @method getSouth(): Number\r\n \t// Returns the south latitude of the bounds\r\n \tgetSouth: function () {\r\n \t\treturn this._southWest.lat;\r\n \t},\r\n\r\n \t// @method getEast(): Number\r\n \t// Returns the east longitude of the bounds\r\n \tgetEast: function () {\r\n \t\treturn this._northEast.lng;\r\n \t},\r\n\r\n \t// @method getNorth(): Number\r\n \t// Returns the north latitude of the bounds\r\n \tgetNorth: function () {\r\n \t\treturn this._northEast.lat;\r\n \t},\r\n\r\n \t// @method contains(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n\r\n \t// @alternative\r\n \t// @method contains (latlng: LatLng): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {\r\n \t\t\tobj = toLatLng(obj);\r\n \t\t} else {\r\n \t\t\tobj = toLatLngBounds(obj);\r\n \t\t}\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj.getSouthWest();\r\n \t\t\tne2 = obj.getNorthEast();\r\n \t\t} else {\r\n \t\t\tsw2 = ne2 = obj;\r\n \t\t}\r\n\r\n \t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n \t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.\r\n \tintersects: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n \t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n \t\treturn latIntersects && lngIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.\r\n \toverlaps: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),\r\n \t\t lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);\r\n\r\n \t\treturn latOverlaps && lngOverlaps;\r\n \t},\r\n\r\n \t// @method toBBoxString(): String\r\n \t// Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.\r\n \ttoBBoxString: function () {\r\n \t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n \t},\r\n\r\n \t// @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (bounds, maxMargin) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\treturn this._southWest.equals(bounds.getSouthWest(), maxMargin) &&\r\n \t\t this._northEast.equals(bounds.getNorthEast(), maxMargin);\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this._southWest && this._northEast);\r\n \t}\r\n };\r\n\r\n // TODO International date line?\r\n\r\n // @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)\r\n // Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.\r\n\r\n // @alternative\r\n // @factory L.latLngBounds(latlngs: LatLng[])\r\n // Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).\r\n function toLatLngBounds(a, b) {\r\n \tif (a instanceof LatLngBounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new LatLngBounds(a, b);\r\n }\n\n /* @class LatLng\r\n * @aka L.LatLng\r\n *\r\n * Represents a geographical point with a certain latitude and longitude.\r\n *\r\n * @example\r\n *\r\n * ```\r\n * var latlng = L.latLng(50.5, 30.5);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```\r\n * map.panTo([50, 30]);\r\n * map.panTo({lon: 30, lat: 50});\r\n * map.panTo({lat: 50, lng: 30});\r\n * map.panTo(L.latLng(50, 30));\r\n * ```\r\n *\r\n * Note that `LatLng` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLng(lat, lng, alt) {\r\n \tif (isNaN(lat) || isNaN(lng)) {\r\n \t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n \t}\r\n\r\n \t// @property lat: Number\r\n \t// Latitude in degrees\r\n \tthis.lat = +lat;\r\n\r\n \t// @property lng: Number\r\n \t// Longitude in degrees\r\n \tthis.lng = +lng;\r\n\r\n \t// @property alt: Number\r\n \t// Altitude in meters (optional)\r\n \tif (alt !== undefined) {\r\n \t\tthis.alt = +alt;\r\n \t}\r\n }\r\n\r\n LatLng.prototype = {\r\n \t// @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (obj, maxMargin) {\r\n \t\tif (!obj) { return false; }\r\n\r\n \t\tobj = toLatLng(obj);\r\n\r\n \t\tvar margin = Math.max(\r\n \t\t Math.abs(this.lat - obj.lat),\r\n \t\t Math.abs(this.lng - obj.lng));\r\n\r\n \t\treturn margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point (for debugging purposes).\r\n \ttoString: function (precision) {\r\n \t\treturn 'LatLng(' +\r\n \t\t formatNum(this.lat, precision) + ', ' +\r\n \t\t formatNum(this.lng, precision) + ')';\r\n \t},\r\n\r\n \t// @method distanceTo(otherLatLng: LatLng): Number\r\n \t// Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).\r\n \tdistanceTo: function (other) {\r\n \t\treturn Earth.distance(this, toLatLng(other));\r\n \t},\r\n\r\n \t// @method wrap(): LatLng\r\n \t// Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.\r\n \twrap: function () {\r\n \t\treturn Earth.wrapLatLng(this);\r\n \t},\r\n\r\n \t// @method toBounds(sizeInMeters: Number): LatLngBounds\r\n \t// Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.\r\n \ttoBounds: function (sizeInMeters) {\r\n \t\tvar latAccuracy = 180 * sizeInMeters / 40075017,\r\n \t\t lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);\r\n\r\n \t\treturn toLatLngBounds(\r\n \t\t [this.lat - latAccuracy, this.lng - lngAccuracy],\r\n \t\t [this.lat + latAccuracy, this.lng + lngAccuracy]);\r\n \t},\r\n\r\n \tclone: function () {\r\n \t\treturn new LatLng(this.lat, this.lng, this.alt);\r\n \t}\r\n };\r\n\r\n\r\n\r\n // @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng\r\n // Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Array): LatLng\r\n // Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Object): LatLng\r\n // Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.\r\n\r\n function toLatLng(a, b, c) {\r\n \tif (a instanceof LatLng) {\r\n \t\treturn a;\r\n \t}\r\n \tif (isArray(a) && typeof a[0] !== 'object') {\r\n \t\tif (a.length === 3) {\r\n \t\t\treturn new LatLng(a[0], a[1], a[2]);\r\n \t\t}\r\n \t\tif (a.length === 2) {\r\n \t\t\treturn new LatLng(a[0], a[1]);\r\n \t\t}\r\n \t\treturn null;\r\n \t}\r\n \tif (a === undefined || a === null) {\r\n \t\treturn a;\r\n \t}\r\n \tif (typeof a === 'object' && 'lat' in a) {\r\n \t\treturn new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);\r\n \t}\r\n \tif (b === undefined) {\r\n \t\treturn null;\r\n \t}\r\n \treturn new LatLng(a, b, c);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.Base\r\n * Object that defines coordinate reference systems for projecting\r\n * geographical points into pixel (screen) coordinates and back (and to\r\n * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See\r\n * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system).\r\n *\r\n * Leaflet defines the most usual CRSs by default. If you want to use a\r\n * CRS not defined by default, take a look at the\r\n * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.\r\n *\r\n * Note that the CRS instances do not inherit from Leaflet's `Class` object,\r\n * and can't be instantiated. Also, new classes can't inherit from them,\r\n * and methods can't be added to them with the `include` function.\r\n */\r\n\r\n var CRS = {\r\n \t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n \t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n \tlatLngToPoint: function (latlng, zoom) {\r\n \t\tvar projectedPoint = this.projection.project(latlng),\r\n \t\t scale = this.scale(zoom);\r\n\r\n \t\treturn this.transformation._transform(projectedPoint, scale);\r\n \t},\r\n\r\n \t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n \t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n \t// zoom into geographical coordinates.\r\n \tpointToLatLng: function (point, zoom) {\r\n \t\tvar scale = this.scale(zoom),\r\n \t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n \t\treturn this.projection.unproject(untransformedPoint);\r\n \t},\r\n\r\n \t// @method project(latlng: LatLng): Point\r\n \t// Projects geographical coordinates into coordinates in units accepted for\r\n \t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n \tproject: function (latlng) {\r\n \t\treturn this.projection.project(latlng);\r\n \t},\r\n\r\n \t// @method unproject(point: Point): LatLng\r\n \t// Given a projected coordinate returns the corresponding LatLng.\r\n \t// The inverse of `project`.\r\n \tunproject: function (point) {\r\n \t\treturn this.projection.unproject(point);\r\n \t},\r\n\r\n \t// @method scale(zoom: Number): Number\r\n \t// Returns the scale used when transforming projected coordinates into\r\n \t// pixel coordinates for a particular zoom. For example, it returns\r\n \t// `256 * 2^zoom` for Mercator-based CRS.\r\n \tscale: function (zoom) {\r\n \t\treturn 256 * Math.pow(2, zoom);\r\n \t},\r\n\r\n \t// @method zoom(scale: Number): Number\r\n \t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n \t// factor of `scale`.\r\n \tzoom: function (scale) {\r\n \t\treturn Math.log(scale / 256) / Math.LN2;\r\n \t},\r\n\r\n \t// @method getProjectedBounds(zoom: Number): Bounds\r\n \t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n \tgetProjectedBounds: function (zoom) {\r\n \t\tif (this.infinite) { return null; }\r\n\r\n \t\tvar b = this.projection.bounds,\r\n \t\t s = this.scale(zoom),\r\n \t\t min = this.transformation.transform(b.min, s),\r\n \t\t max = this.transformation.transform(b.max, s);\r\n\r\n \t\treturn new Bounds(min, max);\r\n \t},\r\n\r\n \t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n \t// Returns the distance between two geographical coordinates.\r\n\r\n \t// @property code: String\r\n \t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n \t//\r\n \t// @property wrapLng: Number[]\r\n \t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n \t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n \t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n \t//\r\n \t// @property wrapLat: Number[]\r\n \t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n \t// wrapLng: [min, max],\r\n \t// wrapLat: [min, max],\r\n\r\n \t// @property infinite: Boolean\r\n \t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n \tinfinite: false,\r\n\r\n \t// @method wrapLatLng(latlng: LatLng): LatLng\r\n \t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n \t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n \twrapLatLng: function (latlng) {\r\n \t\tvar lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,\r\n \t\t lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,\r\n \t\t alt = latlng.alt;\r\n\r\n \t\treturn new LatLng(lat, lng, alt);\r\n \t},\r\n\r\n \t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n \t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n \t// that its center is within the CRS's bounds.\r\n \t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n \twrapLatLngBounds: function (bounds) {\r\n \t\tvar center = bounds.getCenter(),\r\n \t\t newCenter = this.wrapLatLng(center),\r\n \t\t latShift = center.lat - newCenter.lat,\r\n \t\t lngShift = center.lng - newCenter.lng;\r\n\r\n \t\tif (latShift === 0 && lngShift === 0) {\r\n \t\t\treturn bounds;\r\n \t\t}\r\n\r\n \t\tvar sw = bounds.getSouthWest(),\r\n \t\t ne = bounds.getNorthEast(),\r\n \t\t newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),\r\n \t\t newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n \t\treturn new LatLngBounds(newSw, newNe);\r\n \t}\r\n };\n\n /*\n * @namespace CRS\n * @crs L.CRS.Earth\n *\n * Serves as the base for CRS that are global such that they cover the earth.\n * Can only be used as the base for other CRS and cannot be used directly,\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\n * meters.\n */\n\n var Earth = extend({}, CRS, {\n \twrapLng: [-180, 180],\n\n \t// Mean Earth Radius, as recommended for use by\n \t// the International Union of Geodesy and Geophysics,\n \t// see https://rosettacode.org/wiki/Haversine_formula\n \tR: 6371000,\n\n \t// distance between two geographical points using spherical law of cosines approximation\n \tdistance: function (latlng1, latlng2) {\n \t\tvar rad = Math.PI / 180,\n \t\t lat1 = latlng1.lat * rad,\n \t\t lat2 = latlng2.lat * rad,\n \t\t sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),\n \t\t sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),\n \t\t a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,\n \t\t c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n \t\treturn this.R * c;\n \t}\n });\n\n /*\r\n * @namespace Projection\r\n * @projection L.Projection.SphericalMercator\r\n *\r\n * Spherical Mercator projection — the most common projection for online maps,\r\n * used by almost all free and commercial tile providers. Assumes that Earth is\r\n * a sphere. Used by the `EPSG:3857` CRS.\r\n */\r\n\r\n var earthRadius = 6378137;\r\n\r\n var SphericalMercator = {\r\n\r\n \tR: earthRadius,\r\n \tMAX_LATITUDE: 85.0511287798,\r\n\r\n \tproject: function (latlng) {\r\n \t\tvar d = Math.PI / 180,\r\n \t\t max = this.MAX_LATITUDE,\r\n \t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n \t\t sin = Math.sin(lat * d);\r\n\r\n \t\treturn new Point(\r\n \t\t\tthis.R * latlng.lng * d,\r\n \t\t\tthis.R * Math.log((1 + sin) / (1 - sin)) / 2);\r\n \t},\r\n\r\n \tunproject: function (point) {\r\n \t\tvar d = 180 / Math.PI;\r\n\r\n \t\treturn new LatLng(\r\n \t\t\t(2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,\r\n \t\t\tpoint.x * d / this.R);\r\n \t},\r\n\r\n \tbounds: (function () {\r\n \t\tvar d = earthRadius * Math.PI;\r\n \t\treturn new Bounds([-d, -d], [d, d]);\r\n \t})()\r\n };\n\n /*\r\n * @class Transformation\r\n * @aka L.Transformation\r\n *\r\n * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`\r\n * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing\r\n * the reverse. Used by Leaflet in its projections code.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var transformation = L.transformation(2, 5, -1, 10),\r\n * \tp = L.point(1, 2),\r\n * \tp2 = transformation.transform(p), // L.point(7, 8)\r\n * \tp3 = transformation.untransform(p2); // L.point(1, 2)\r\n * ```\r\n */\r\n\r\n\r\n // factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Creates a `Transformation` object with the given coefficients.\r\n function Transformation(a, b, c, d) {\r\n \tif (isArray(a)) {\r\n \t\t// use array properties\r\n \t\tthis._a = a[0];\r\n \t\tthis._b = a[1];\r\n \t\tthis._c = a[2];\r\n \t\tthis._d = a[3];\r\n \t\treturn;\r\n \t}\r\n \tthis._a = a;\r\n \tthis._b = b;\r\n \tthis._c = c;\r\n \tthis._d = d;\r\n }\r\n\r\n Transformation.prototype = {\r\n \t// @method transform(point: Point, scale?: Number): Point\r\n \t// Returns a transformed point, optionally multiplied by the given scale.\r\n \t// Only accepts actual `L.Point` instances, not arrays.\r\n \ttransform: function (point, scale) { // (Point, Number) -> Point\r\n \t\treturn this._transform(point.clone(), scale);\r\n \t},\r\n\r\n \t// destructive transform (faster)\r\n \t_transform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\tpoint.x = scale * (this._a * point.x + this._b);\r\n \t\tpoint.y = scale * (this._c * point.y + this._d);\r\n \t\treturn point;\r\n \t},\r\n\r\n \t// @method untransform(point: Point, scale?: Number): Point\r\n \t// Returns the reverse transformation of the given point, optionally divided\r\n \t// by the given scale. Only accepts actual `L.Point` instances, not arrays.\r\n \tuntransform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\treturn new Point(\r\n \t\t (point.x / scale - this._b) / this._a,\r\n \t\t (point.y / scale - this._d) / this._c);\r\n \t}\r\n };\r\n\r\n // factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n\r\n // @factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Instantiates a Transformation object with the given coefficients.\r\n\r\n // @alternative\r\n // @factory L.transformation(coefficients: Array): Transformation\r\n // Expects an coefficients array of the form\r\n // `[a: Number, b: Number, c: Number, d: Number]`.\r\n\r\n function toTransformation(a, b, c, d) {\r\n \treturn new Transformation(a, b, c, d);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3857\r\n *\r\n * The most common CRS for online maps, used by almost all free and commercial\r\n * tile providers. Uses Spherical Mercator projection. Set in by default in\r\n * Map's `crs` option.\r\n */\r\n\r\n var EPSG3857 = extend({}, Earth, {\r\n \tcode: 'EPSG:3857',\r\n \tprojection: SphericalMercator,\r\n\r\n \ttransformation: (function () {\r\n \t\tvar scale = 0.5 / (Math.PI * SphericalMercator.R);\r\n \t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n \t}())\r\n });\r\n\r\n var EPSG900913 = extend({}, EPSG3857, {\r\n \tcode: 'EPSG:900913'\r\n });\n\n // @namespace SVG; @section\n // There are several static functions which can be called without instantiating L.SVG:\n\n // @function create(name: String): SVGElement\n // Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),\n // corresponding to the class name passed. For example, using 'line' will return\n // an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).\n function svgCreate(name) {\n \treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n }\n\n // @function pointsToPath(rings: Point[], closed: Boolean): String\n // Generates a SVG path string for multiple rings, with each ring turning\n // into \"M..L..L..\" instructions\n function pointsToPath(rings, closed) {\n \tvar str = '',\n \ti, j, len, len2, points, p;\n\n \tfor (i = 0, len = rings.length; i < len; i++) {\n \t\tpoints = rings[i];\n\n \t\tfor (j = 0, len2 = points.length; j < len2; j++) {\n \t\t\tp = points[j];\n \t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\n \t\t}\n\n \t\t// closes the ring for polygons; \"x\" is VML syntax\n \t\tstr += closed ? (Browser.svg ? 'z' : 'x') : '';\n \t}\n\n \t// SVG complains about empty path strings\n \treturn str || 'M0 0';\n }\n\n /*\r\n * @namespace Browser\r\n * @aka L.Browser\r\n *\r\n * A namespace with static properties for browser/feature detection used by Leaflet internally.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * if (L.Browser.ielt9) {\r\n * alert('Upgrade your browser, dude!');\r\n * }\r\n * ```\r\n */\r\n\r\n var style = document.documentElement.style;\r\n\r\n // @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).\r\n var ie = 'ActiveXObject' in window;\r\n\r\n // @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.\r\n var ielt9 = ie && !document.addEventListener;\r\n\r\n // @property edge: Boolean; `true` for the Edge web browser.\r\n var edge = 'msLaunchUri' in navigator && !('documentMode' in document);\r\n\r\n // @property webkit: Boolean;\r\n // `true` for webkit-based browsers like Chrome and Safari (including mobile versions).\r\n var webkit = userAgentContains('webkit');\r\n\r\n // @property android: Boolean\r\n // **Deprecated.** `true` for any browser running on an Android platform.\r\n var android = userAgentContains('android');\r\n\r\n // @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3.\r\n var android23 = userAgentContains('android 2') || userAgentContains('android 3');\r\n\r\n /* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */\r\n var webkitVer = parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit\r\n // @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome)\r\n var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);\r\n\r\n // @property opera: Boolean; `true` for the Opera browser\r\n var opera = !!window.opera;\r\n\r\n // @property chrome: Boolean; `true` for the Chrome browser.\r\n var chrome = !edge && userAgentContains('chrome');\r\n\r\n // @property gecko: Boolean; `true` for gecko-based browsers like Firefox.\r\n var gecko = userAgentContains('gecko') && !webkit && !opera && !ie;\r\n\r\n // @property safari: Boolean; `true` for the Safari browser.\r\n var safari = !chrome && userAgentContains('safari');\r\n\r\n var phantom = userAgentContains('phantom');\r\n\r\n // @property opera12: Boolean\r\n // `true` for the Opera browser supporting CSS transforms (version 12 or later).\r\n var opera12 = 'OTransition' in style;\r\n\r\n // @property win: Boolean; `true` when the browser is running in a Windows platform\r\n var win = navigator.platform.indexOf('Win') === 0;\r\n\r\n // @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.\r\n var ie3d = ie && ('transition' in style);\r\n\r\n // @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.\r\n var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\r\n\r\n // @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.\r\n var gecko3d = 'MozPerspective' in style;\r\n\r\n // @property any3d: Boolean\r\n // `true` for all browsers supporting CSS transforms.\r\n var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;\r\n\r\n // @property mobile: Boolean; `true` for all browsers running in a mobile device.\r\n var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');\r\n\r\n // @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.\r\n var mobileWebkit = mobile && webkit;\r\n\r\n // @property mobileWebkit3d: Boolean\r\n // `true` for all webkit-based browsers in a mobile device supporting CSS transforms.\r\n var mobileWebkit3d = mobile && webkit3d;\r\n\r\n // @property msPointer: Boolean\r\n // `true` for browsers implementing the Microsoft touch events model (notably IE10).\r\n var msPointer = !window.PointerEvent && window.MSPointerEvent;\r\n\r\n // @property pointer: Boolean\r\n // `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).\r\n var pointer = !!(window.PointerEvent || msPointer);\r\n\r\n // @property touchNative: Boolean\r\n // `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).\r\n // **This does not necessarily mean** that the browser is running in a computer with\r\n // a touchscreen, it only means that the browser is capable of understanding\r\n // touch events.\r\n var touchNative = 'ontouchstart' in window || !!window.TouchEvent;\r\n\r\n // @property touch: Boolean\r\n // `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events.\r\n // Note: pointer events will be preferred (if available), and processed for all `touch*` listeners.\r\n var touch = !window.L_NO_TOUCH && (touchNative || pointer);\r\n\r\n // @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.\r\n var mobileOpera = mobile && opera;\r\n\r\n // @property mobileGecko: Boolean\r\n // `true` for gecko-based browsers running in a mobile device.\r\n var mobileGecko = mobile && gecko;\r\n\r\n // @property retina: Boolean\r\n // `true` for browsers on a high-resolution \"retina\" screen or on any screen when browser's display zoom is more than 100%.\r\n var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;\r\n\r\n // @property passiveEvents: Boolean\r\n // `true` for browsers that support passive events.\r\n var passiveEvents = (function () {\r\n \tvar supportsPassiveOption = false;\r\n \ttry {\r\n \t\tvar opts = Object.defineProperty({}, 'passive', {\r\n \t\t\tget: function () { // eslint-disable-line getter-return\r\n \t\t\t\tsupportsPassiveOption = true;\r\n \t\t\t}\r\n \t\t});\r\n \t\twindow.addEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t\twindow.removeEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t} catch (e) {\r\n \t\t// Errors can safely be ignored since this is only a browser support test.\r\n \t}\r\n \treturn supportsPassiveOption;\r\n }());\r\n\r\n // @property canvas: Boolean\r\n // `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API).\r\n var canvas$1 = (function () {\r\n \treturn !!document.createElement('canvas').getContext;\r\n }());\r\n\r\n // @property svg: Boolean\r\n // `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG).\r\n var svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect);\r\n\r\n var inlineSvg = !!svg$1 && (function () {\r\n \tvar div = document.createElement('div');\r\n \tdiv.innerHTML = '';\r\n \treturn (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg';\r\n })();\r\n\r\n // @property vml: Boolean\r\n // `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language).\r\n var vml = !svg$1 && (function () {\r\n \ttry {\r\n \t\tvar div = document.createElement('div');\r\n \t\tdiv.innerHTML = '';\r\n\r\n \t\tvar shape = div.firstChild;\r\n \t\tshape.style.behavior = 'url(#default#VML)';\r\n\r\n \t\treturn shape && (typeof shape.adj === 'object');\r\n\r\n \t} catch (e) {\r\n \t\treturn false;\r\n \t}\r\n }());\r\n\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Mac platform\r\n var mac = navigator.platform.indexOf('Mac') === 0;\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Linux platform\r\n var linux = navigator.platform.indexOf('Linux') === 0;\r\n\r\n function userAgentContains(str) {\r\n \treturn navigator.userAgent.toLowerCase().indexOf(str) >= 0;\r\n }\r\n\r\n\r\n var Browser = {\r\n \tie: ie,\r\n \tielt9: ielt9,\r\n \tedge: edge,\r\n \twebkit: webkit,\r\n \tandroid: android,\r\n \tandroid23: android23,\r\n \tandroidStock: androidStock,\r\n \topera: opera,\r\n \tchrome: chrome,\r\n \tgecko: gecko,\r\n \tsafari: safari,\r\n \tphantom: phantom,\r\n \topera12: opera12,\r\n \twin: win,\r\n \tie3d: ie3d,\r\n \twebkit3d: webkit3d,\r\n \tgecko3d: gecko3d,\r\n \tany3d: any3d,\r\n \tmobile: mobile,\r\n \tmobileWebkit: mobileWebkit,\r\n \tmobileWebkit3d: mobileWebkit3d,\r\n \tmsPointer: msPointer,\r\n \tpointer: pointer,\r\n \ttouch: touch,\r\n \ttouchNative: touchNative,\r\n \tmobileOpera: mobileOpera,\r\n \tmobileGecko: mobileGecko,\r\n \tretina: retina,\r\n \tpassiveEvents: passiveEvents,\r\n \tcanvas: canvas$1,\r\n \tsvg: svg$1,\r\n \tvml: vml,\r\n \tinlineSvg: inlineSvg,\r\n \tmac: mac,\r\n \tlinux: linux\r\n };\n\n /*\n * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.\n */\n\n var POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown';\n var POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove';\n var POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup';\n var POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel';\n var pEvent = {\n \ttouchstart : POINTER_DOWN,\n \ttouchmove : POINTER_MOVE,\n \ttouchend : POINTER_UP,\n \ttouchcancel : POINTER_CANCEL\n };\n var handle = {\n \ttouchstart : _onPointerStart,\n \ttouchmove : _handlePointer,\n \ttouchend : _handlePointer,\n \ttouchcancel : _handlePointer\n };\n var _pointers = {};\n var _pointerDocListener = false;\n\n // Provides a touch events wrapper for (ms)pointer events.\n // ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890\n\n function addPointerListener(obj, type, handler) {\n \tif (type === 'touchstart') {\n \t\t_addPointerDocListener();\n \t}\n \tif (!handle[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn falseFn;\n \t}\n \thandler = handle[type].bind(this, handler);\n \tobj.addEventListener(pEvent[type], handler, false);\n \treturn handler;\n }\n\n function removePointerListener(obj, type, handler) {\n \tif (!pEvent[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn;\n \t}\n \tobj.removeEventListener(pEvent[type], handler, false);\n }\n\n function _globalPointerDown(e) {\n \t_pointers[e.pointerId] = e;\n }\n\n function _globalPointerMove(e) {\n \tif (_pointers[e.pointerId]) {\n \t\t_pointers[e.pointerId] = e;\n \t}\n }\n\n function _globalPointerUp(e) {\n \tdelete _pointers[e.pointerId];\n }\n\n function _addPointerDocListener() {\n \t// need to keep track of what pointers and how many are active to provide e.touches emulation\n \tif (!_pointerDocListener) {\n \t\t// we listen document as any drags that end by moving the touch off the screen get fired there\n \t\tdocument.addEventListener(POINTER_DOWN, _globalPointerDown, true);\n \t\tdocument.addEventListener(POINTER_MOVE, _globalPointerMove, true);\n \t\tdocument.addEventListener(POINTER_UP, _globalPointerUp, true);\n \t\tdocument.addEventListener(POINTER_CANCEL, _globalPointerUp, true);\n\n \t\t_pointerDocListener = true;\n \t}\n }\n\n function _handlePointer(handler, e) {\n \tif (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { return; }\n\n \te.touches = [];\n \tfor (var i in _pointers) {\n \t\te.touches.push(_pointers[i]);\n \t}\n \te.changedTouches = [e];\n\n \thandler(e);\n }\n\n function _onPointerStart(handler, e) {\n \t// IE10 specific: MsTouch needs preventDefault. See #2000\n \tif (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) {\n \t\tpreventDefault(e);\n \t}\n \t_handlePointer(handler, e);\n }\n\n /*\r\n * Extends the event handling code with double tap support for mobile browsers.\r\n *\r\n * Note: currently most browsers fire native dblclick, with only a few exceptions\r\n * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386)\r\n */\r\n\r\n function makeDblclick(event) {\r\n \t// in modern browsers `type` cannot be just overridden:\r\n \t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only\r\n \tvar newEvent = {},\r\n \t prop, i;\r\n \tfor (i in event) {\r\n \t\tprop = event[i];\r\n \t\tnewEvent[i] = prop && prop.bind ? prop.bind(event) : prop;\r\n \t}\r\n \tevent = newEvent;\r\n \tnewEvent.type = 'dblclick';\r\n \tnewEvent.detail = 2;\r\n \tnewEvent.isTrusted = false;\r\n \tnewEvent._simulated = true; // for debug purposes\r\n \treturn newEvent;\r\n }\r\n\r\n var delay = 200;\r\n function addDoubleTapListener(obj, handler) {\r\n \t// Most browsers handle double tap natively\r\n \tobj.addEventListener('dblclick', handler);\r\n\r\n \t// On some platforms the browser doesn't fire native dblclicks for touch events.\r\n \t// It seems that in all such cases `detail` property of `click` event is always `1`.\r\n \t// So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed.\r\n \tvar last = 0,\r\n \t detail;\r\n \tfunction simDblclick(e) {\r\n \t\tif (e.detail !== 1) {\r\n \t\t\tdetail = e.detail; // keep in sync to avoid false dblclick in some cases\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (e.pointerType === 'mouse' ||\r\n \t\t\t(e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents)) {\r\n\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// When clicking on an , the browser generates a click on its\r\n \t\t//
\n
\n );\n}\n","/**\n * Parse sender from channel message text.\n * Channel messages have format \"sender: message\".\n */\nexport function parseSenderFromText(text: string): { sender: string | null; content: string } {\n const colonIndex = text.indexOf(': ');\n if (colonIndex > 0 && colonIndex < 50) {\n const potentialSender = text.substring(0, colonIndex);\n // Check for colon in potential sender (would indicate it's not a simple name)\n if (!potentialSender.includes(':')) {\n return {\n sender: potentialSender,\n content: text.substring(colonIndex + 2),\n };\n }\n }\n return { sender: null, content: text };\n}\n\n/**\n * Format a Unix timestamp to a time string.\n * Shows date for messages not from today.\n */\nexport function formatTime(timestamp: number): string {\n const date = new Date(timestamp * 1000);\n const now = new Date();\n const isToday = date.toDateString() === now.toDateString();\n\n const time = date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });\n\n if (isToday) {\n return time;\n }\n\n // Show short date for older messages\n const dateStr = date.toLocaleDateString([], { month: 'short', day: 'numeric' });\n return `${dateStr} ${time}`;\n}\n","import { useEffect, useLayoutEffect, useRef, useCallback, useState, type ReactNode } from 'react';\nimport type { Contact, Message } from '../types';\nimport { CONTACT_TYPE_REPEATER } from '../types';\nimport { formatTime, parseSenderFromText } from '../utils/messageParser';\nimport { pubkeysMatch } from '../utils/pubkey';\nimport { ContactAvatar } from './ContactAvatar';\nimport { cn } from '@/lib/utils';\n\ninterface MessageListProps {\n messages: Message[];\n contacts: Contact[];\n loading: boolean;\n loadingOlder?: boolean;\n hasOlderMessages?: boolean;\n onSenderClick?: (sender: string) => void;\n onLoadOlder?: () => void;\n radioName?: string;\n}\n\n// Helper to render text with highlighted @[Name] mentions\nfunction renderTextWithMentions(text: string, radioName?: string): ReactNode {\n if (!radioName) return text;\n\n const mentionPattern = /@\\[([^\\]]+)\\]/g;\n const parts: ReactNode[] = [];\n let lastIndex = 0;\n let match: RegExpExecArray | null;\n let keyIndex = 0;\n\n while ((match = mentionPattern.exec(text)) !== null) {\n // Add text before the match\n if (match.index > lastIndex) {\n parts.push(text.slice(lastIndex, match.index));\n }\n\n const mentionedName = match[1];\n const isOwnMention = mentionedName === radioName;\n\n parts.push(\n \n @[{mentionedName}]\n \n );\n\n lastIndex = match.index + match[0].length;\n }\n\n // Add remaining text after last match\n if (lastIndex < text.length) {\n parts.push(text.slice(lastIndex));\n }\n\n return parts.length > 0 ? parts : text;\n}\n\nexport function MessageList({\n messages,\n contacts,\n loading,\n loadingOlder = false,\n hasOlderMessages = false,\n onSenderClick,\n onLoadOlder,\n radioName,\n}: MessageListProps) {\n const listRef = useRef(null);\n const prevMessagesLengthRef = useRef(0);\n const isInitialLoadRef = useRef(true);\n const [showScrollToBottom, setShowScrollToBottom] = useState(false);\n\n // Capture scroll state in the scroll handler BEFORE any state updates\n const scrollStateRef = useRef({\n scrollTop: 0,\n scrollHeight: 0,\n clientHeight: 0,\n wasNearTop: false,\n wasNearBottom: true, // Default to true so initial messages scroll to bottom\n });\n\n // Handle scroll position AFTER render\n useLayoutEffect(() => {\n if (!listRef.current) return;\n\n const list = listRef.current;\n const messagesAdded = messages.length - prevMessagesLengthRef.current;\n\n if (isInitialLoadRef.current && messages.length > 0) {\n // Initial load - scroll to bottom\n list.scrollTop = list.scrollHeight;\n isInitialLoadRef.current = false;\n } else if (messagesAdded > 0 && prevMessagesLengthRef.current > 0) {\n // Messages were added - use scroll state captured before the update\n const scrollHeightDiff = list.scrollHeight - scrollStateRef.current.scrollHeight;\n\n if (scrollStateRef.current.wasNearTop && scrollHeightDiff > 0) {\n // User was near top (loading older) - preserve position by adding the height diff\n list.scrollTop = scrollStateRef.current.scrollTop + scrollHeightDiff;\n } else if (scrollStateRef.current.wasNearBottom) {\n // User was near bottom - scroll to bottom for new messages (including sent)\n list.scrollTop = list.scrollHeight;\n }\n }\n\n prevMessagesLengthRef.current = messages.length;\n }, [messages]);\n\n // Reset initial load flag when conversation changes (messages becomes empty then filled)\n useEffect(() => {\n if (messages.length === 0) {\n isInitialLoadRef.current = true;\n prevMessagesLengthRef.current = 0;\n scrollStateRef.current = {\n scrollTop: 0,\n scrollHeight: 0,\n clientHeight: 0,\n wasNearTop: false,\n wasNearBottom: true,\n };\n }\n }, [messages.length]);\n\n // Handle scroll - capture state and detect when user is near top/bottom\n const handleScroll = useCallback(() => {\n if (!listRef.current) return;\n\n const { scrollTop, scrollHeight, clientHeight } = listRef.current;\n const distanceFromBottom = scrollHeight - scrollTop - clientHeight;\n\n // Always capture current scroll state (needed for scroll preservation)\n scrollStateRef.current = {\n scrollTop,\n scrollHeight,\n clientHeight,\n wasNearTop: scrollTop < 150,\n wasNearBottom: distanceFromBottom < 100,\n };\n\n // Show scroll-to-bottom button when not near the bottom (more than 100px away)\n setShowScrollToBottom(distanceFromBottom > 100);\n\n if (!onLoadOlder || loadingOlder || !hasOlderMessages) return;\n\n // Trigger load when within 100px of top\n if (scrollTop < 100) {\n onLoadOlder();\n }\n }, [onLoadOlder, loadingOlder, hasOlderMessages]);\n\n // Scroll to bottom handler\n const scrollToBottom = useCallback(() => {\n if (listRef.current) {\n listRef.current.scrollTop = listRef.current.scrollHeight;\n }\n }, []);\n\n // Look up contact by public key or prefix\n const getContact = (conversationKey: string | null): Contact | null => {\n if (!conversationKey) return null;\n return contacts.find((c) => pubkeysMatch(c.public_key, conversationKey)) || null;\n };\n\n // Look up contact by name (for channel messages where we parse sender from text)\n const getContactByName = (name: string): Contact | null => {\n return contacts.find((c) => c.name === name) || null;\n };\n\n if (loading) {\n return (\n
\n Loading messages...\n
\n );\n }\n\n if (messages.length === 0) {\n return (\n
\n No messages yet\n
\n );\n }\n\n // Sort messages by received_at ascending (oldest first)\n // Note: Deduplication is handled by useConversationMessages.addMessageIfNew()\n // and the database UNIQUE constraint on (type, conversation_key, text, sender_timestamp)\n const sortedMessages = [...messages].sort((a, b) => a.received_at - b.received_at);\n\n // Helper to get a unique sender key for grouping messages\n const getSenderKey = (msg: Message, sender: string | null): string => {\n if (msg.outgoing) return '__outgoing__';\n if (msg.type === 'PRIV' && msg.conversation_key) return msg.conversation_key;\n return sender || '__unknown__';\n };\n\n return (\n
\n \n {loadingOlder && (\n
\n Loading older messages...\n
\n )}\n {!loadingOlder && hasOlderMessages && (\n
\n Scroll up for older messages\n
\n )}\n {sortedMessages.map((msg, index) => {\n // For DMs, look up contact; for channel messages, use parsed sender\n const contact = msg.type === 'PRIV' ? getContact(msg.conversation_key) : null;\n const isRepeater = contact?.type === CONTACT_TYPE_REPEATER;\n\n // Skip sender parsing for repeater messages (CLI responses often have colons)\n const { sender, content } = isRepeater\n ? { sender: null, content: msg.text }\n : parseSenderFromText(msg.text);\n const displaySender = msg.outgoing\n ? 'You'\n : contact?.name || sender || msg.conversation_key?.slice(0, 8) || 'Unknown';\n\n const canClickSender = !msg.outgoing && onSenderClick && displaySender !== 'Unknown';\n\n // Determine if we should show avatar (first message in a chunk from same sender)\n const currentSenderKey = getSenderKey(msg, sender);\n const prevMsg = sortedMessages[index - 1];\n const prevSenderKey = prevMsg\n ? getSenderKey(prevMsg, parseSenderFromText(prevMsg.text).sender)\n : null;\n const showAvatar = !msg.outgoing && currentSenderKey !== prevSenderKey;\n const isFirstMessage = index === 0;\n\n // Get avatar info for incoming messages\n let avatarName: string | null = null;\n let avatarKey: string = '';\n if (!msg.outgoing) {\n if (msg.type === 'PRIV' && msg.conversation_key) {\n // DM: use conversation_key (sender's public key)\n avatarName = contact?.name || null;\n avatarKey = msg.conversation_key;\n } else if (sender) {\n // Channel message: try to find contact by name, or use sender name as pseudo-key\n const senderContact = getContactByName(sender);\n avatarName = sender;\n avatarKey = senderContact?.public_key || `name:${sender}`;\n }\n }\n\n return (\n \n {!msg.outgoing && (\n
\n {showAvatar && avatarKey && (\n \n )}\n
\n )}\n \n {showAvatar && (\n
\n {canClickSender ? (\n onSenderClick(displaySender)}\n title={`Mention ${displaySender}`}\n >\n {displaySender}\n \n ) : (\n displaySender\n )}\n \n {formatTime(msg.sender_timestamp || msg.received_at)}\n \n
\n )}\n
\n {content.split('\\n').map((line, i, arr) => (\n \n {renderTextWithMentions(line, radioName)}\n {i < arr.length - 1 &&
}\n
\n ))}\n {!showAvatar && (\n \n {formatTime(msg.sender_timestamp || msg.received_at)}\n \n )}\n {msg.outgoing && (msg.acked > 0 ? ` ✓${msg.acked > 1 ? msg.acked : ''}` : ' ?')}\n
\n
\n \n );\n })}\n \n\n {/* Scroll to bottom button */}\n {showScrollToBottom && (\n \n \n \n \n \n )}\n \n );\n}\n","import {\n useState,\n useCallback,\n useImperativeHandle,\n forwardRef,\n useRef,\n useMemo,\n type FormEvent,\n type KeyboardEvent,\n} from 'react';\nimport { Input } from './ui/input';\nimport { Button } from './ui/button';\nimport { toast } from './ui/sonner';\nimport { cn } from '@/lib/utils';\n\n// MeshCore message size limits (empirically determined from LoRa packet constraints)\n// Direct delivery allows ~156 bytes; multi-hop requires buffer for path growth.\n// Channels include \"sender: \" prefix in the encrypted payload.\nconst DM_HARD_LIMIT = 156; // Max for direct delivery\nconst DM_WARNING_THRESHOLD = 140; // Conservative for multi-hop\nconst CHANNEL_HARD_LIMIT = 156; // Base limit before sender overhead\nconst CHANNEL_WARNING_THRESHOLD = 120; // Conservative for multi-hop\nconst CHANNEL_DANGER_BUFFER = 8; // Red zone starts this many chars before hard limit\n\ninterface MessageInputProps {\n onSend: (text: string) => Promise;\n disabled: boolean;\n placeholder?: string;\n /** When true, input becomes password field for repeater telemetry */\n isRepeaterMode?: boolean;\n /** Conversation type for character limit calculation */\n conversationType?: 'contact' | 'channel' | 'raw';\n /** Sender name (radio name) for channel message limit calculation */\n senderName?: string;\n}\n\ntype LimitState = 'normal' | 'warning' | 'danger' | 'error';\n\nexport interface MessageInputHandle {\n appendText: (text: string) => void;\n}\n\nexport const MessageInput = forwardRef(function MessageInput(\n { onSend, disabled, placeholder, isRepeaterMode, conversationType, senderName },\n ref\n) {\n const [text, setText] = useState('');\n const [sending, setSending] = useState(false);\n const inputRef = useRef(null);\n\n useImperativeHandle(ref, () => ({\n appendText: (appendedText: string) => {\n setText((prev) => prev + appendedText);\n // Focus the input after appending\n inputRef.current?.focus();\n },\n }));\n\n // Calculate character limits based on conversation type\n const limits = useMemo(() => {\n if (conversationType === 'contact') {\n return {\n warningAt: DM_WARNING_THRESHOLD,\n dangerAt: DM_HARD_LIMIT, // Same as hard limit for DMs (no intermediate red zone)\n hardLimit: DM_HARD_LIMIT,\n };\n } else if (conversationType === 'channel') {\n // Channel hard limit = 156 - senderName.length - 2 (for \": \" separator)\n const nameLen = senderName?.length ?? 10;\n const hardLimit = Math.max(1, CHANNEL_HARD_LIMIT - nameLen - 2);\n return {\n warningAt: CHANNEL_WARNING_THRESHOLD,\n dangerAt: Math.max(1, hardLimit - CHANNEL_DANGER_BUFFER),\n hardLimit,\n };\n }\n return null; // Raw/other - no limits\n }, [conversationType, senderName]);\n\n // Determine current limit state\n const { limitState, warningMessage } = useMemo((): {\n limitState: LimitState;\n warningMessage: string | null;\n } => {\n if (!limits) return { limitState: 'normal', warningMessage: null };\n\n const len = text.length;\n if (len >= limits.hardLimit) {\n return { limitState: 'error', warningMessage: 'likely truncated by radio' };\n }\n if (len >= limits.dangerAt) {\n return { limitState: 'danger', warningMessage: 'may impact multi-repeater hop delivery' };\n }\n if (len >= limits.warningAt) {\n return { limitState: 'warning', warningMessage: 'may impact multi-repeater hop delivery' };\n }\n return { limitState: 'normal', warningMessage: null };\n }, [text.length, limits]);\n\n const remaining = limits ? limits.hardLimit - text.length : 0;\n\n const handleSubmit = useCallback(\n async (e: FormEvent) => {\n e.preventDefault();\n const trimmed = text.trim();\n\n // For repeater mode, empty password means guest login\n if (isRepeaterMode) {\n if (sending || disabled) return;\n setSending(true);\n try {\n await onSend(trimmed);\n setText('');\n } catch (err) {\n console.error('Failed to request telemetry:', err);\n toast.error('Failed to request telemetry', {\n description: err instanceof Error ? err.message : 'Check radio connection',\n });\n return;\n } finally {\n setSending(false);\n }\n // Refocus after React re-enables the input (now in CLI command mode)\n setTimeout(() => inputRef.current?.focus(), 0);\n } else {\n if (!trimmed || sending || disabled) return;\n setSending(true);\n try {\n await onSend(trimmed);\n setText('');\n } catch (err) {\n console.error('Failed to send message:', err);\n toast.error('Failed to send message', {\n description: err instanceof Error ? err.message : 'Check radio connection',\n });\n return;\n } finally {\n setSending(false);\n }\n // Refocus after React re-enables the input\n setTimeout(() => inputRef.current?.focus(), 0);\n }\n },\n [text, sending, disabled, onSend, isRepeaterMode]\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n handleSubmit(e as unknown as FormEvent);\n }\n },\n [handleSubmit]\n );\n\n // For repeater mode, always allow submit (empty = guest login)\n const canSubmit = isRepeaterMode ? true : text.trim().length > 0;\n\n // Show character counter for messages (not repeater mode or raw)\n const showCharCounter = !isRepeaterMode && limits !== null;\n\n return (\n \n
\n setText(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={\n placeholder ||\n (isRepeaterMode ? 'Enter password for admin login...' : 'Type a message...')\n }\n disabled={disabled || sending}\n className=\"flex-1 min-w-0\"\n />\n \n {sending\n ? isRepeaterMode\n ? 'Logging in...'\n : 'Sending...'\n : isRepeaterMode\n ? text.trim()\n ? 'Log in with password'\n : 'Log in as guest/use repeater ACLs'\n : 'Send'}\n \n
\n {showCharCounter && (\n
\n \n {text.length}/{limits!.hardLimit}\n {remaining < 0 && ` (${remaining})`}\n \n {warningMessage && (\n \n — {warningMessage}\n \n )}\n
\n )}\n \n );\n});\n","// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\" useId \".trim().toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n },\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (true) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (true) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/use-escape-keydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-scope.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { jsx } from \"react/jsx-runtime\";\nvar AUTOFOCUS_ON_MOUNT = \"focusScope.autoFocusOnMount\";\nvar AUTOFOCUS_ON_UNMOUNT = \"focusScope.autoFocusOnUnmount\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar FOCUS_SCOPE_NAME = \"FocusScope\";\nvar FocusScope = React.forwardRef((props, forwardedRef) => {\n const {\n loop = false,\n trapped = false,\n onMountAutoFocus: onMountAutoFocusProp,\n onUnmountAutoFocus: onUnmountAutoFocusProp,\n ...scopeProps\n } = props;\n const [container, setContainer] = React.useState(null);\n const onMountAutoFocus = useCallbackRef(onMountAutoFocusProp);\n const onUnmountAutoFocus = useCallbackRef(onUnmountAutoFocusProp);\n const lastFocusedElementRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setContainer(node));\n const focusScope = React.useRef({\n paused: false,\n pause() {\n this.paused = true;\n },\n resume() {\n this.paused = false;\n }\n }).current;\n React.useEffect(() => {\n if (trapped) {\n let handleFocusIn2 = function(event) {\n if (focusScope.paused || !container) return;\n const target = event.target;\n if (container.contains(target)) {\n lastFocusedElementRef.current = target;\n } else {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleFocusOut2 = function(event) {\n if (focusScope.paused || !container) return;\n const relatedTarget = event.relatedTarget;\n if (relatedTarget === null) return;\n if (!container.contains(relatedTarget)) {\n focus(lastFocusedElementRef.current, { select: true });\n }\n }, handleMutations2 = function(mutations) {\n const focusedElement = document.activeElement;\n if (focusedElement !== document.body) return;\n for (const mutation of mutations) {\n if (mutation.removedNodes.length > 0) focus(container);\n }\n };\n var handleFocusIn = handleFocusIn2, handleFocusOut = handleFocusOut2, handleMutations = handleMutations2;\n document.addEventListener(\"focusin\", handleFocusIn2);\n document.addEventListener(\"focusout\", handleFocusOut2);\n const mutationObserver = new MutationObserver(handleMutations2);\n if (container) mutationObserver.observe(container, { childList: true, subtree: true });\n return () => {\n document.removeEventListener(\"focusin\", handleFocusIn2);\n document.removeEventListener(\"focusout\", handleFocusOut2);\n mutationObserver.disconnect();\n };\n }\n }, [trapped, container, focusScope.paused]);\n React.useEffect(() => {\n if (container) {\n focusScopesStack.add(focusScope);\n const previouslyFocusedElement = document.activeElement;\n const hasFocusedCandidate = container.contains(previouslyFocusedElement);\n if (!hasFocusedCandidate) {\n const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n container.dispatchEvent(mountEvent);\n if (!mountEvent.defaultPrevented) {\n focusFirst(removeLinks(getTabbableCandidates(container)), { select: true });\n if (document.activeElement === previouslyFocusedElement) {\n focus(container);\n }\n }\n }\n return () => {\n container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);\n setTimeout(() => {\n const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);\n container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n container.dispatchEvent(unmountEvent);\n if (!unmountEvent.defaultPrevented) {\n focus(previouslyFocusedElement ?? document.body, { select: true });\n }\n container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus);\n focusScopesStack.remove(focusScope);\n }, 0);\n };\n }\n }, [container, onMountAutoFocus, onUnmountAutoFocus, focusScope]);\n const handleKeyDown = React.useCallback(\n (event) => {\n if (!loop && !trapped) return;\n if (focusScope.paused) return;\n const isTabKey = event.key === \"Tab\" && !event.altKey && !event.ctrlKey && !event.metaKey;\n const focusedElement = document.activeElement;\n if (isTabKey && focusedElement) {\n const container2 = event.currentTarget;\n const [first, last] = getTabbableEdges(container2);\n const hasTabbableElementsInside = first && last;\n if (!hasTabbableElementsInside) {\n if (focusedElement === container2) event.preventDefault();\n } else {\n if (!event.shiftKey && focusedElement === last) {\n event.preventDefault();\n if (loop) focus(first, { select: true });\n } else if (event.shiftKey && focusedElement === first) {\n event.preventDefault();\n if (loop) focus(last, { select: true });\n }\n }\n }\n },\n [loop, trapped, focusScope.paused]\n );\n return /* @__PURE__ */ jsx(Primitive.div, { tabIndex: -1, ...scopeProps, ref: composedRefs, onKeyDown: handleKeyDown });\n});\nFocusScope.displayName = FOCUS_SCOPE_NAME;\nfunction focusFirst(candidates, { select = false } = {}) {\n const previouslyFocusedElement = document.activeElement;\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (document.activeElement !== previouslyFocusedElement) return;\n }\n}\nfunction getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\nfunction getTabbableCandidates(container) {\n const nodes = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n });\n while (walker.nextNode()) nodes.push(walker.currentNode);\n return nodes;\n}\nfunction findVisible(elements, container) {\n for (const element of elements) {\n if (!isHidden(element, { upTo: container })) return element;\n }\n}\nfunction isHidden(node, { upTo }) {\n if (getComputedStyle(node).visibility === \"hidden\") return true;\n while (node) {\n if (upTo !== void 0 && node === upTo) return false;\n if (getComputedStyle(node).display === \"none\") return true;\n node = node.parentElement;\n }\n return false;\n}\nfunction isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\nfunction focus(element, { select = false } = {}) {\n if (element && element.focus) {\n const previouslyFocusedElement = document.activeElement;\n element.focus({ preventScroll: true });\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select)\n element.select();\n }\n}\nvar focusScopesStack = createFocusScopesStack();\nfunction createFocusScopesStack() {\n let stack = [];\n return {\n add(focusScope) {\n const activeFocusScope = stack[0];\n if (focusScope !== activeFocusScope) {\n activeFocusScope?.pause();\n }\n stack = arrayRemove(stack, focusScope);\n stack.unshift(focusScope);\n },\n remove(focusScope) {\n stack = arrayRemove(stack, focusScope);\n stack[0]?.resume();\n }\n };\n}\nfunction arrayRemove(array, item) {\n const updatedArray = [...array];\n const index = updatedArray.indexOf(item);\n if (index !== -1) {\n updatedArray.splice(index, 1);\n }\n return updatedArray;\n}\nfunction removeLinks(items) {\n return items.filter((item) => item.tagName !== \"A\");\n}\nvar Root = FocusScope;\nexport {\n FocusScope,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n const { container: containerProp, ...portalProps } = props;\n const [mounted, setMounted] = React.useState(false);\n useLayoutEffect(() => setMounted(true), []);\n const container = containerProp || mounted && globalThis?.document?.body;\n return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n Portal,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// src/use-state-machine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// src/presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef(null);\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n let timeoutId;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n send(\"ANIMATION_END\");\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = \"forwards\";\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === \"forwards\") {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n stylesRef.current = node2 ? getComputedStyle(node2) : null;\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Presence;\nexport {\n Presence,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/focus-guards.tsx\nimport * as React from \"react\";\nvar count = 0;\nfunction FocusGuards(props) {\n useFocusGuards();\n return props.children;\n}\nfunction useFocusGuards() {\n React.useEffect(() => {\n const edgeGuards = document.querySelectorAll(\"[data-radix-focus-guard]\");\n document.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n document.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n count++;\n return () => {\n if (count === 1) {\n document.querySelectorAll(\"[data-radix-focus-guard]\").forEach((node) => node.remove());\n }\n count--;\n };\n }, []);\n}\nfunction createFocusGuard() {\n const element = document.createElement(\"span\");\n element.setAttribute(\"data-radix-focus-guard\", \"\");\n element.tabIndex = 0;\n element.style.outline = \"none\";\n element.style.opacity = \"0\";\n element.style.position = \"fixed\";\n element.style.pointerEvents = \"none\";\n return element;\n}\nexport {\n FocusGuards,\n FocusGuards as Root,\n useFocusGuards\n};\n//# sourceMappingURL=index.mjs.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","export var zeroRightClassName = 'right-scroll-bar-position';\nexport var fullWidthClassName = 'width-before-scroll-bar';\nexport var noScrollbarsClassName = 'with-scroll-bars-hidden';\n/**\n * Name of a CSS variable containing the amount of \"hidden\" scrollbar\n * ! might be undefined ! use will fallback!\n */\nexport var removedBarSizeVariable = '--removed-body-scroll-bar-size';\n","/**\n * Assigns a value for a given ref, no matter of the ref format\n * @param {RefObject} ref - a callback function or ref object\n * @param value - a new value\n *\n * @see https://github.com/theKashey/use-callback-ref#assignref\n * @example\n * const refObject = useRef();\n * const refFn = (ref) => {....}\n *\n * assignRef(refObject, \"refValue\");\n * assignRef(refFn, \"refValue\");\n */\nexport function assignRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n return ref;\n}\n","import { useState } from 'react';\n/**\n * creates a MutableRef with ref change callback\n * @param initialValue - initial ref value\n * @param {Function} callback - a callback to run when value changes\n *\n * @example\n * const ref = useCallbackRef(0, (newValue, oldValue) => console.log(oldValue, '->', newValue);\n * ref.current = 1;\n * // prints 0 -> 1\n *\n * @see https://reactjs.org/docs/hooks-reference.html#useref\n * @see https://github.com/theKashey/use-callback-ref#usecallbackref---to-replace-reactuseref\n * @returns {MutableRefObject}\n */\nexport function useCallbackRef(initialValue, callback) {\n var ref = useState(function () { return ({\n // value\n value: initialValue,\n // last callback\n callback: callback,\n // \"memoized\" public interface\n facade: {\n get current() {\n return ref.value;\n },\n set current(value) {\n var last = ref.value;\n if (last !== value) {\n ref.value = value;\n ref.callback(value, last);\n }\n },\n },\n }); })[0];\n // update callback\n ref.callback = callback;\n return ref.facade;\n}\n","import * as React from 'react';\nimport { assignRef } from './assignRef';\nimport { useCallbackRef } from './useRef';\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nvar currentValues = new WeakMap();\n/**\n * Merges two or more refs together providing a single interface to set their value\n * @param {RefObject|Ref} refs\n * @returns {MutableRefObject} - a new ref, which translates all changes to {refs}\n *\n * @see {@link mergeRefs} a version without buit-in memoization\n * @see https://github.com/theKashey/use-callback-ref#usemergerefs\n * @example\n * const Component = React.forwardRef((props, ref) => {\n * const ownRef = useRef();\n * const domRef = useMergeRefs([ref, ownRef]); // 👈 merge together\n * return
...
\n * }\n */\nexport function useMergeRefs(refs, defaultValue) {\n var callbackRef = useCallbackRef(defaultValue || null, function (newValue) {\n return refs.forEach(function (ref) { return assignRef(ref, newValue); });\n });\n // handle refs changes - added or removed\n useIsomorphicLayoutEffect(function () {\n var oldValue = currentValues.get(callbackRef);\n if (oldValue) {\n var prevRefs_1 = new Set(oldValue);\n var nextRefs_1 = new Set(refs);\n var current_1 = callbackRef.current;\n prevRefs_1.forEach(function (ref) {\n if (!nextRefs_1.has(ref)) {\n assignRef(ref, null);\n }\n });\n nextRefs_1.forEach(function (ref) {\n if (!prevRefs_1.has(ref)) {\n assignRef(ref, current_1);\n }\n });\n }\n currentValues.set(callbackRef, refs);\n }, [refs]);\n return callbackRef;\n}\n","import { __assign } from \"tslib\";\nfunction ItoI(a) {\n return a;\n}\nfunction innerCreateMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n var buffer = [];\n var assigned = false;\n var medium = {\n read: function () {\n if (assigned) {\n throw new Error('Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.');\n }\n if (buffer.length) {\n return buffer[buffer.length - 1];\n }\n return defaults;\n },\n useMedium: function (data) {\n var item = middleware(data, assigned);\n buffer.push(item);\n return function () {\n buffer = buffer.filter(function (x) { return x !== item; });\n };\n },\n assignSyncMedium: function (cb) {\n assigned = true;\n while (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n }\n buffer = {\n push: function (x) { return cb(x); },\n filter: function () { return buffer; },\n };\n },\n assignMedium: function (cb) {\n assigned = true;\n var pendingQueue = [];\n if (buffer.length) {\n var cbs = buffer;\n buffer = [];\n cbs.forEach(cb);\n pendingQueue = buffer;\n }\n var executeQueue = function () {\n var cbs = pendingQueue;\n pendingQueue = [];\n cbs.forEach(cb);\n };\n var cycle = function () { return Promise.resolve().then(executeQueue); };\n cycle();\n buffer = {\n push: function (x) {\n pendingQueue.push(x);\n cycle();\n },\n filter: function (filter) {\n pendingQueue = pendingQueue.filter(filter);\n return buffer;\n },\n };\n },\n };\n return medium;\n}\nexport function createMedium(defaults, middleware) {\n if (middleware === void 0) { middleware = ItoI; }\n return innerCreateMedium(defaults, middleware);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function createSidecarMedium(options) {\n if (options === void 0) { options = {}; }\n var medium = innerCreateMedium(null);\n medium.options = __assign({ async: true, ssr: false }, options);\n return medium;\n}\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nvar SideCar = function (_a) {\n var sideCar = _a.sideCar, rest = __rest(_a, [\"sideCar\"]);\n if (!sideCar) {\n throw new Error('Sidecar: please provide `sideCar` property to import the right car');\n }\n var Target = sideCar.read();\n if (!Target) {\n throw new Error('Sidecar medium not found');\n }\n return React.createElement(Target, __assign({}, rest));\n};\nSideCar.isSideCarExport = true;\nexport function exportSidecar(medium, exported) {\n medium.useMedium(exported);\n return SideCar;\n}\n","import { createSidecarMedium } from 'use-sidecar';\nexport var effectCar = createSidecarMedium();\n","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { fullWidthClassName, zeroRightClassName } from 'react-remove-scroll-bar/constants';\nimport { useMergeRefs } from 'use-callback-ref';\nimport { effectCar } from './medium';\nvar nothing = function () {\n return;\n};\n/**\n * Removes scrollbar from the page and contain the scroll within the Lock\n */\nvar RemoveScroll = React.forwardRef(function (props, parentRef) {\n var ref = React.useRef(null);\n var _a = React.useState({\n onScrollCapture: nothing,\n onWheelCapture: nothing,\n onTouchMoveCapture: nothing,\n }), callbacks = _a[0], setCallbacks = _a[1];\n var forwardProps = props.forwardProps, children = props.children, className = props.className, removeScrollBar = props.removeScrollBar, enabled = props.enabled, shards = props.shards, sideCar = props.sideCar, noRelative = props.noRelative, noIsolation = props.noIsolation, inert = props.inert, allowPinchZoom = props.allowPinchZoom, _b = props.as, Container = _b === void 0 ? 'div' : _b, gapMode = props.gapMode, rest = __rest(props, [\"forwardProps\", \"children\", \"className\", \"removeScrollBar\", \"enabled\", \"shards\", \"sideCar\", \"noRelative\", \"noIsolation\", \"inert\", \"allowPinchZoom\", \"as\", \"gapMode\"]);\n var SideCar = sideCar;\n var containerRef = useMergeRefs([ref, parentRef]);\n var containerProps = __assign(__assign({}, rest), callbacks);\n return (React.createElement(React.Fragment, null,\n enabled && (React.createElement(SideCar, { sideCar: effectCar, removeScrollBar: removeScrollBar, shards: shards, noRelative: noRelative, noIsolation: noIsolation, inert: inert, setCallbacks: setCallbacks, allowPinchZoom: !!allowPinchZoom, lockRef: ref, gapMode: gapMode })),\n forwardProps ? (React.cloneElement(React.Children.only(children), __assign(__assign({}, containerProps), { ref: containerRef }))) : (React.createElement(Container, __assign({}, containerProps, { className: className, ref: containerRef }), children))));\n});\nRemoveScroll.defaultProps = {\n enabled: true,\n removeScrollBar: true,\n inert: false,\n};\nRemoveScroll.classNames = {\n fullWidth: fullWidthClassName,\n zeroRight: zeroRightClassName,\n};\nexport { RemoveScroll };\n","var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n","import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n","import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n","import { styleHookSingleton } from './hook';\n/**\n * create a Component to add styles on demand\n * - styles are added when first instance is mounted\n * - styles are removed when the last instance is unmounted\n * - changing styles in runtime does nothing unless dynamic is set. But with multiple components that can lead to the undefined behavior\n */\nexport var styleSingleton = function () {\n var useStyle = styleHookSingleton();\n var Sheet = function (_a) {\n var styles = _a.styles, dynamic = _a.dynamic;\n useStyle(styles, dynamic);\n return null;\n };\n return Sheet;\n};\n","export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n","import * as React from 'react';\nimport { styleSingleton } from 'react-style-singleton';\nimport { fullWidthClassName, zeroRightClassName, noScrollbarsClassName, removedBarSizeVariable } from './constants';\nimport { getGapWidth } from './utils';\nvar Style = styleSingleton();\nexport var lockAttribute = 'data-scroll-locked';\n// important tip - once we measure scrollBar width and remove them\n// we could not repeat this operation\n// thus we are using style-singleton - only the first \"yet correct\" style will be applied.\nvar getStyles = function (_a, allowRelative, gapMode, important) {\n var left = _a.left, top = _a.top, right = _a.right, gap = _a.gap;\n if (gapMode === void 0) { gapMode = 'margin'; }\n return \"\\n .\".concat(noScrollbarsClassName, \" {\\n overflow: hidden \").concat(important, \";\\n padding-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n body[\").concat(lockAttribute, \"] {\\n overflow: hidden \").concat(important, \";\\n overscroll-behavior: contain;\\n \").concat([\n allowRelative && \"position: relative \".concat(important, \";\"),\n gapMode === 'margin' &&\n \"\\n padding-left: \".concat(left, \"px;\\n padding-top: \").concat(top, \"px;\\n padding-right: \").concat(right, \"px;\\n margin-left:0;\\n margin-top:0;\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n \"),\n gapMode === 'padding' && \"padding-right: \".concat(gap, \"px \").concat(important, \";\"),\n ]\n .filter(Boolean)\n .join(''), \"\\n }\\n \\n .\").concat(zeroRightClassName, \" {\\n right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" {\\n margin-right: \").concat(gap, \"px \").concat(important, \";\\n }\\n \\n .\").concat(zeroRightClassName, \" .\").concat(zeroRightClassName, \" {\\n right: 0 \").concat(important, \";\\n }\\n \\n .\").concat(fullWidthClassName, \" .\").concat(fullWidthClassName, \" {\\n margin-right: 0 \").concat(important, \";\\n }\\n \\n body[\").concat(lockAttribute, \"] {\\n \").concat(removedBarSizeVariable, \": \").concat(gap, \"px;\\n }\\n\");\n};\nvar getCurrentUseCounter = function () {\n var counter = parseInt(document.body.getAttribute(lockAttribute) || '0', 10);\n return isFinite(counter) ? counter : 0;\n};\nexport var useLockAttribute = function () {\n React.useEffect(function () {\n document.body.setAttribute(lockAttribute, (getCurrentUseCounter() + 1).toString());\n return function () {\n var newCounter = getCurrentUseCounter() - 1;\n if (newCounter <= 0) {\n document.body.removeAttribute(lockAttribute);\n }\n else {\n document.body.setAttribute(lockAttribute, newCounter.toString());\n }\n };\n }, []);\n};\n/**\n * Removes page scrollbar and blocks page scroll when mounted\n */\nexport var RemoveScrollBar = function (_a) {\n var noRelative = _a.noRelative, noImportant = _a.noImportant, _b = _a.gapMode, gapMode = _b === void 0 ? 'margin' : _b;\n useLockAttribute();\n /*\n gap will be measured on every component mount\n however it will be used only by the \"first\" invocation\n due to singleton nature of clientHeight) {\n return true;\n }\n }\n current = current.parentNode;\n } while (current && current !== ownerDocument.body);\n return false;\n};\nvar getVScrollVariables = function (_a) {\n var scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;\n return [\n scrollTop,\n scrollHeight,\n clientHeight,\n ];\n};\nvar getHScrollVariables = function (_a) {\n var scrollLeft = _a.scrollLeft, scrollWidth = _a.scrollWidth, clientWidth = _a.clientWidth;\n return [\n scrollLeft,\n scrollWidth,\n clientWidth,\n ];\n};\nvar elementCouldBeScrolled = function (axis, node) {\n return axis === 'v' ? elementCouldBeVScrolled(node) : elementCouldBeHScrolled(node);\n};\nvar getScrollVariables = function (axis, node) {\n return axis === 'v' ? getVScrollVariables(node) : getHScrollVariables(node);\n};\nvar getDirectionFactor = function (axis, direction) {\n /**\n * If the element's direction is rtl (right-to-left), then scrollLeft is 0 when the scrollbar is at its rightmost position,\n * and then increasingly negative as you scroll towards the end of the content.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollLeft\n */\n return axis === 'h' && direction === 'rtl' ? -1 : 1;\n};\nexport var handleScroll = function (axis, endTarget, event, sourceDelta, noOverscroll) {\n var directionFactor = getDirectionFactor(axis, window.getComputedStyle(endTarget).direction);\n var delta = directionFactor * sourceDelta;\n // find scrollable target\n var target = event.target;\n var targetInLock = endTarget.contains(target);\n var shouldCancelScroll = false;\n var isDeltaPositive = delta > 0;\n var availableScroll = 0;\n var availableScrollTop = 0;\n do {\n if (!target) {\n break;\n }\n var _a = getScrollVariables(axis, target), position = _a[0], scroll_1 = _a[1], capacity = _a[2];\n var elementScroll = scroll_1 - capacity - directionFactor * position;\n if (position || elementScroll) {\n if (elementCouldBeScrolled(axis, target)) {\n availableScroll += elementScroll;\n availableScrollTop += position;\n }\n }\n var parent_1 = target.parentNode;\n // we will \"bubble\" from ShadowDom in case we are, or just to the parent in normal case\n // this is the same logic used in focus-lock\n target = (parent_1 && parent_1.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? parent_1.host : parent_1);\n } while (\n // portaled content\n (!targetInLock && target !== document.body) ||\n // self content\n (targetInLock && (endTarget.contains(target) || endTarget === target)));\n // handle epsilon around 0 (non standard zoom levels)\n if (isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScroll) < 1) || (!noOverscroll && delta > availableScroll))) {\n shouldCancelScroll = true;\n }\n else if (!isDeltaPositive &&\n ((noOverscroll && Math.abs(availableScrollTop) < 1) || (!noOverscroll && -delta > availableScrollTop))) {\n shouldCancelScroll = true;\n }\n return shouldCancelScroll;\n};\n","import { __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScrollBar } from 'react-remove-scroll-bar';\nimport { styleSingleton } from 'react-style-singleton';\nimport { nonPassive } from './aggresiveCapture';\nimport { handleScroll, locationCouldBeScrolled } from './handleScroll';\nexport var getTouchXY = function (event) {\n return 'changedTouches' in event ? [event.changedTouches[0].clientX, event.changedTouches[0].clientY] : [0, 0];\n};\nexport var getDeltaXY = function (event) { return [event.deltaX, event.deltaY]; };\nvar extractRef = function (ref) {\n return ref && 'current' in ref ? ref.current : ref;\n};\nvar deltaCompare = function (x, y) { return x[0] === y[0] && x[1] === y[1]; };\nvar generateStyle = function (id) { return \"\\n .block-interactivity-\".concat(id, \" {pointer-events: none;}\\n .allow-interactivity-\").concat(id, \" {pointer-events: all;}\\n\"); };\nvar idCounter = 0;\nvar lockStack = [];\nexport function RemoveScrollSideCar(props) {\n var shouldPreventQueue = React.useRef([]);\n var touchStartRef = React.useRef([0, 0]);\n var activeAxis = React.useRef();\n var id = React.useState(idCounter++)[0];\n var Style = React.useState(styleSingleton)[0];\n var lastProps = React.useRef(props);\n React.useEffect(function () {\n lastProps.current = props;\n }, [props]);\n React.useEffect(function () {\n if (props.inert) {\n document.body.classList.add(\"block-interactivity-\".concat(id));\n var allow_1 = __spreadArray([props.lockRef.current], (props.shards || []).map(extractRef), true).filter(Boolean);\n allow_1.forEach(function (el) { return el.classList.add(\"allow-interactivity-\".concat(id)); });\n return function () {\n document.body.classList.remove(\"block-interactivity-\".concat(id));\n allow_1.forEach(function (el) { return el.classList.remove(\"allow-interactivity-\".concat(id)); });\n };\n }\n return;\n }, [props.inert, props.lockRef.current, props.shards]);\n var shouldCancelEvent = React.useCallback(function (event, parent) {\n if (('touches' in event && event.touches.length === 2) || (event.type === 'wheel' && event.ctrlKey)) {\n return !lastProps.current.allowPinchZoom;\n }\n var touch = getTouchXY(event);\n var touchStart = touchStartRef.current;\n var deltaX = 'deltaX' in event ? event.deltaX : touchStart[0] - touch[0];\n var deltaY = 'deltaY' in event ? event.deltaY : touchStart[1] - touch[1];\n var currentAxis;\n var target = event.target;\n var moveDirection = Math.abs(deltaX) > Math.abs(deltaY) ? 'h' : 'v';\n // allow horizontal touch move on Range inputs. They will not cause any scroll\n if ('touches' in event && moveDirection === 'h' && target.type === 'range') {\n return false;\n }\n // allow drag selection (iOS); check if selection's anchorNode is the same as target or contains target\n var selection = window.getSelection();\n var anchorNode = selection && selection.anchorNode;\n var isTouchingSelection = anchorNode ? anchorNode === target || anchorNode.contains(target) : false;\n if (isTouchingSelection) {\n return false;\n }\n var canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n if (!canBeScrolledInMainDirection) {\n return true;\n }\n if (canBeScrolledInMainDirection) {\n currentAxis = moveDirection;\n }\n else {\n currentAxis = moveDirection === 'v' ? 'h' : 'v';\n canBeScrolledInMainDirection = locationCouldBeScrolled(moveDirection, target);\n // other axis might be not scrollable\n }\n if (!canBeScrolledInMainDirection) {\n return false;\n }\n if (!activeAxis.current && 'changedTouches' in event && (deltaX || deltaY)) {\n activeAxis.current = currentAxis;\n }\n if (!currentAxis) {\n return true;\n }\n var cancelingAxis = activeAxis.current || currentAxis;\n return handleScroll(cancelingAxis, parent, event, cancelingAxis === 'h' ? deltaX : deltaY, true);\n }, []);\n var shouldPrevent = React.useCallback(function (_event) {\n var event = _event;\n if (!lockStack.length || lockStack[lockStack.length - 1] !== Style) {\n // not the last active\n return;\n }\n var delta = 'deltaY' in event ? getDeltaXY(event) : getTouchXY(event);\n var sourceEvent = shouldPreventQueue.current.filter(function (e) { return e.name === event.type && (e.target === event.target || event.target === e.shadowParent) && deltaCompare(e.delta, delta); })[0];\n // self event, and should be canceled\n if (sourceEvent && sourceEvent.should) {\n if (event.cancelable) {\n event.preventDefault();\n }\n return;\n }\n // outside or shard event\n if (!sourceEvent) {\n var shardNodes = (lastProps.current.shards || [])\n .map(extractRef)\n .filter(Boolean)\n .filter(function (node) { return node.contains(event.target); });\n var shouldStop = shardNodes.length > 0 ? shouldCancelEvent(event, shardNodes[0]) : !lastProps.current.noIsolation;\n if (shouldStop) {\n if (event.cancelable) {\n event.preventDefault();\n }\n }\n }\n }, []);\n var shouldCancel = React.useCallback(function (name, delta, target, should) {\n var event = { name: name, delta: delta, target: target, should: should, shadowParent: getOutermostShadowParent(target) };\n shouldPreventQueue.current.push(event);\n setTimeout(function () {\n shouldPreventQueue.current = shouldPreventQueue.current.filter(function (e) { return e !== event; });\n }, 1);\n }, []);\n var scrollTouchStart = React.useCallback(function (event) {\n touchStartRef.current = getTouchXY(event);\n activeAxis.current = undefined;\n }, []);\n var scrollWheel = React.useCallback(function (event) {\n shouldCancel(event.type, getDeltaXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n var scrollTouchMove = React.useCallback(function (event) {\n shouldCancel(event.type, getTouchXY(event), event.target, shouldCancelEvent(event, props.lockRef.current));\n }, []);\n React.useEffect(function () {\n lockStack.push(Style);\n props.setCallbacks({\n onScrollCapture: scrollWheel,\n onWheelCapture: scrollWheel,\n onTouchMoveCapture: scrollTouchMove,\n });\n document.addEventListener('wheel', shouldPrevent, nonPassive);\n document.addEventListener('touchmove', shouldPrevent, nonPassive);\n document.addEventListener('touchstart', scrollTouchStart, nonPassive);\n return function () {\n lockStack = lockStack.filter(function (inst) { return inst !== Style; });\n document.removeEventListener('wheel', shouldPrevent, nonPassive);\n document.removeEventListener('touchmove', shouldPrevent, nonPassive);\n document.removeEventListener('touchstart', scrollTouchStart, nonPassive);\n };\n }, []);\n var removeScrollBar = props.removeScrollBar, inert = props.inert;\n return (React.createElement(React.Fragment, null,\n inert ? React.createElement(Style, { styles: generateStyle(id) }) : null,\n removeScrollBar ? React.createElement(RemoveScrollBar, { noRelative: props.noRelative, gapMode: props.gapMode }) : null));\n}\nfunction getOutermostShadowParent(node) {\n var shadowParent = null;\n while (node !== null) {\n if (node instanceof ShadowRoot) {\n shadowParent = node.host;\n node = node.host;\n }\n node = node.parentNode;\n }\n return shadowParent;\n}\n","import { exportSidecar } from 'use-sidecar';\nimport { RemoveScrollSideCar } from './SideEffect';\nimport { effectCar } from './medium';\nexport default exportSidecar(effectCar, RemoveScrollSideCar);\n","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { RemoveScroll } from './UI';\nimport SideCar from './sidecar';\nvar ReactRemoveScroll = React.forwardRef(function (props, ref) { return (React.createElement(RemoveScroll, __assign({}, props, { ref: ref, sideCar: SideCar }))); });\nReactRemoveScroll.classNames = RemoveScroll.classNames;\nexport default ReactRemoveScroll;\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide aria-live elements - https://github.com/theKashey/aria-hidden/issues/10\n // and script elements, as they have no impact on accessibility.\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live], script')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dialog.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContext, createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { hideOthers } from \"aria-hidden\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar DIALOG_NAME = \"Dialog\";\nvar [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\nvar [DialogProvider, useDialogContext] = createDialogContext(DIALOG_NAME);\nvar Dialog = (props) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true\n } = props;\n const triggerRef = React.useRef(null);\n const contentRef = React.useRef(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME\n });\n return /* @__PURE__ */ jsx(\n DialogProvider,\n {\n scope: __scopeDialog,\n triggerRef,\n contentRef,\n contentId: useId(),\n titleId: useId(),\n descriptionId: useId(),\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n modal,\n children\n }\n );\n};\nDialog.displayName = DIALOG_NAME;\nvar TRIGGER_NAME = \"DialogTrigger\";\nvar DialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n }\n);\nDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"DialogPortal\";\nvar [PortalProvider, usePortalContext] = createDialogContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar DialogPortal = (props) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeDialog, forceMount, children: React.Children.map(children, (child) => /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children: child }) })) });\n};\nDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"DialogOverlay\";\nvar DialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(DialogOverlayImpl, { ...overlayProps, ref: forwardedRef }) }) : null;\n }\n);\nDialogOverlay.displayName = OVERLAY_NAME;\nvar Slot = createSlot(\"DialogOverlay.RemoveScroll\");\nvar DialogOverlayImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, shards: [context.contentRef], children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": getState(context.open),\n ...overlayProps,\n ref: forwardedRef,\n style: { pointerEvents: \"auto\", ...overlayProps.style }\n }\n ) })\n );\n }\n);\nvar CONTENT_NAME = \"DialogContent\";\nvar DialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(DialogContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(DialogContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nDialogContent.displayName = CONTENT_NAME;\nvar DialogContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n if (isRightClick) event.preventDefault();\n }),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault()\n )\n }\n );\n }\n);\nvar DialogContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n DialogContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar DialogContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n useFocusGuards();\n return /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n role: \"dialog\",\n id: context.contentId,\n \"aria-describedby\": context.descriptionId,\n \"aria-labelledby\": context.titleId,\n \"data-state\": getState(context.open),\n ...contentProps,\n ref: composedRefs,\n onDismiss: () => context.onOpenChange(false)\n }\n )\n }\n ),\n /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(TitleWarning, { titleId: context.titleId }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef, descriptionId: context.descriptionId })\n ] })\n ] });\n }\n);\nvar TITLE_NAME = \"DialogTitle\";\nvar DialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.h2, { id: context.titleId, ...titleProps, ref: forwardedRef });\n }\n);\nDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"DialogDescription\";\nvar DialogDescription = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(Primitive.p, { id: context.descriptionId, ...descriptionProps, ref: forwardedRef });\n }\n);\nDialogDescription.displayName = DESCRIPTION_NAME;\nvar CLOSE_NAME = \"DialogClose\";\nvar DialogClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nDialogClose.displayName = CLOSE_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar TITLE_WARNING_NAME = \"DialogTitleWarning\";\nvar [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"dialog\"\n});\nvar TitleWarning = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n return null;\n};\nvar DESCRIPTION_WARNING_NAME = \"DialogDescriptionWarning\";\nvar DescriptionWarning = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute(\"aria-describedby\");\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n return null;\n};\nvar Root = Dialog;\nvar Trigger = DialogTrigger;\nvar Portal = DialogPortal;\nvar Overlay = DialogOverlay;\nvar Content = DialogContent;\nvar Title = DialogTitle;\nvar Description = DialogDescription;\nvar Close = DialogClose;\nexport {\n Close,\n Content,\n Description,\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n Overlay,\n Portal,\n Root,\n Title,\n Trigger,\n WarningProvider,\n createDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { X } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, children, ...props }, ref) => (\n \n \n \n {children}\n \n \n Close\n \n \n \n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes) => (\n
\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes) => (\n \n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/collection-legacy.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\n\n// src/collection.tsx\nimport React2 from \"react\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createSlot as createSlot2 } from \"@radix-ui/react-slot\";\n\n// src/ordered-dictionary.ts\nvar __instanciated = /* @__PURE__ */ new WeakMap();\nvar OrderedDict = class _OrderedDict extends Map {\n #keys;\n constructor(entries) {\n super(entries);\n this.#keys = [...super.keys()];\n __instanciated.set(this, true);\n }\n set(key, value) {\n if (__instanciated.get(this)) {\n if (this.has(key)) {\n this.#keys[this.#keys.indexOf(key)] = key;\n } else {\n this.#keys.push(key);\n }\n }\n super.set(key, value);\n return this;\n }\n insert(index, key, value) {\n const has = this.has(key);\n const length = this.#keys.length;\n const relativeIndex = toSafeInteger(index);\n let actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n const safeIndex = actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n if (safeIndex === this.size || has && safeIndex === this.size - 1 || safeIndex === -1) {\n this.set(key, value);\n return this;\n }\n const size = this.size + (has ? 0 : 1);\n if (relativeIndex < 0) {\n actualIndex++;\n }\n const keys = [...this.#keys];\n let nextValue;\n let shouldSkip = false;\n for (let i = actualIndex; i < size; i++) {\n if (actualIndex === i) {\n let nextKey = keys[i];\n if (keys[i] === key) {\n nextKey = keys[i + 1];\n }\n if (has) {\n this.delete(key);\n }\n nextValue = this.get(nextKey);\n this.set(key, value);\n } else {\n if (!shouldSkip && keys[i - 1] === key) {\n shouldSkip = true;\n }\n const currentKey = keys[shouldSkip ? i : i - 1];\n const currentValue = nextValue;\n nextValue = this.get(currentKey);\n this.delete(currentKey);\n this.set(currentKey, currentValue);\n }\n }\n return this;\n }\n with(index, key, value) {\n const copy = new _OrderedDict(this);\n copy.insert(index, key, value);\n return copy;\n }\n before(key) {\n const index = this.#keys.indexOf(key) - 1;\n if (index < 0) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position before the given key.\n */\n setBefore(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index, newKey, value);\n }\n after(key) {\n let index = this.#keys.indexOf(key);\n index = index === -1 || index === this.size - 1 ? -1 : index + 1;\n if (index === -1) {\n return void 0;\n }\n return this.entryAt(index);\n }\n /**\n * Sets a new key-value pair at the position after the given key.\n */\n setAfter(key, newKey, value) {\n const index = this.#keys.indexOf(key);\n if (index === -1) {\n return this;\n }\n return this.insert(index + 1, newKey, value);\n }\n first() {\n return this.entryAt(0);\n }\n last() {\n return this.entryAt(-1);\n }\n clear() {\n this.#keys = [];\n return super.clear();\n }\n delete(key) {\n const deleted = super.delete(key);\n if (deleted) {\n this.#keys.splice(this.#keys.indexOf(key), 1);\n }\n return deleted;\n }\n deleteAt(index) {\n const key = this.keyAt(index);\n if (key !== void 0) {\n return this.delete(key);\n }\n return false;\n }\n at(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return this.get(key);\n }\n }\n entryAt(index) {\n const key = at(this.#keys, index);\n if (key !== void 0) {\n return [key, this.get(key)];\n }\n }\n indexOf(key) {\n return this.#keys.indexOf(key);\n }\n keyAt(index) {\n return at(this.#keys, index);\n }\n from(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.at(dest);\n }\n keyFrom(key, offset) {\n const index = this.indexOf(key);\n if (index === -1) {\n return void 0;\n }\n let dest = index + offset;\n if (dest < 0) dest = 0;\n if (dest >= this.size) dest = this.size - 1;\n return this.keyAt(dest);\n }\n find(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return entry;\n }\n index++;\n }\n return void 0;\n }\n findIndex(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return index;\n }\n index++;\n }\n return -1;\n }\n filter(predicate, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n entries.push(entry);\n }\n index++;\n }\n return new _OrderedDict(entries);\n }\n map(callbackfn, thisArg) {\n const entries = [];\n let index = 0;\n for (const entry of this) {\n entries.push([entry[0], Reflect.apply(callbackfn, thisArg, [entry, index, this])]);\n index++;\n }\n return new _OrderedDict(entries);\n }\n reduce(...args) {\n const [callbackfn, initialValue] = args;\n let index = 0;\n let accumulator = initialValue ?? this.at(0);\n for (const entry of this) {\n if (index === 0 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n index++;\n }\n return accumulator;\n }\n reduceRight(...args) {\n const [callbackfn, initialValue] = args;\n let accumulator = initialValue ?? this.at(-1);\n for (let index = this.size - 1; index >= 0; index--) {\n const entry = this.at(index);\n if (index === this.size - 1 && args.length === 1) {\n accumulator = entry;\n } else {\n accumulator = Reflect.apply(callbackfn, this, [accumulator, entry, index, this]);\n }\n }\n return accumulator;\n }\n toSorted(compareFn) {\n const entries = [...this.entries()].sort(compareFn);\n return new _OrderedDict(entries);\n }\n toReversed() {\n const reversed = new _OrderedDict();\n for (let index = this.size - 1; index >= 0; index--) {\n const key = this.keyAt(index);\n const element = this.get(key);\n reversed.set(key, element);\n }\n return reversed;\n }\n toSpliced(...args) {\n const entries = [...this.entries()];\n entries.splice(...args);\n return new _OrderedDict(entries);\n }\n slice(start, end) {\n const result = new _OrderedDict();\n let stop = this.size - 1;\n if (start === void 0) {\n return result;\n }\n if (start < 0) {\n start = start + this.size;\n }\n if (end !== void 0 && end > 0) {\n stop = end - 1;\n }\n for (let index = start; index <= stop; index++) {\n const key = this.keyAt(index);\n const element = this.get(key);\n result.set(key, element);\n }\n return result;\n }\n every(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (!Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return false;\n }\n index++;\n }\n return true;\n }\n some(predicate, thisArg) {\n let index = 0;\n for (const entry of this) {\n if (Reflect.apply(predicate, thisArg, [entry, index, this])) {\n return true;\n }\n index++;\n }\n return false;\n }\n};\nfunction at(array, index) {\n if (\"at\" in Array.prototype) {\n return Array.prototype.at.call(array, index);\n }\n const actualIndex = toSafeIndex(array, index);\n return actualIndex === -1 ? void 0 : array[actualIndex];\n}\nfunction toSafeIndex(array, index) {\n const length = array.length;\n const relativeIndex = toSafeInteger(index);\n const actualIndex = relativeIndex >= 0 ? relativeIndex : length + relativeIndex;\n return actualIndex < 0 || actualIndex >= length ? -1 : actualIndex;\n}\nfunction toSafeInteger(number) {\n return number !== number || number === 0 ? 0 : Math.trunc(number);\n}\n\n// src/collection.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nfunction createCollection2(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope2(PROVIDER_NAME);\n const [CollectionContextProvider, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n {\n collectionElement: null,\n collectionRef: { current: null },\n collectionRefObject: { current: null },\n itemMap: new OrderedDict(),\n setItemMap: () => void 0\n }\n );\n const CollectionProvider = ({ state, ...props }) => {\n return state ? /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state }) : /* @__PURE__ */ jsx2(CollectionInit, { ...props });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const CollectionInit = (props) => {\n const state = useInitCollection();\n return /* @__PURE__ */ jsx2(CollectionProviderImpl, { ...props, state });\n };\n CollectionInit.displayName = PROVIDER_NAME + \"Init\";\n const CollectionProviderImpl = (props) => {\n const { scope, children, state } = props;\n const ref = React2.useRef(null);\n const [collectionElement, setCollectionElement] = React2.useState(\n null\n );\n const composeRefs = useComposedRefs2(ref, setCollectionElement);\n const [itemMap, setItemMap] = state;\n React2.useEffect(() => {\n if (!collectionElement) return;\n const observer = getChildListObserver(() => {\n });\n observer.observe(collectionElement, {\n childList: true,\n subtree: true\n });\n return () => {\n observer.disconnect();\n };\n }, [collectionElement]);\n return /* @__PURE__ */ jsx2(\n CollectionContextProvider,\n {\n scope,\n itemMap,\n setItemMap,\n collectionRef: composeRefs,\n collectionRefObject: ref,\n collectionElement,\n children\n }\n );\n };\n CollectionProviderImpl.displayName = PROVIDER_NAME + \"Impl\";\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlotImpl = createSlot2(COLLECTION_SLOT_NAME);\n const CollectionSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs2(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx2(CollectionSlotImpl, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlotImpl = createSlot2(ITEM_SLOT_NAME);\n const CollectionItemSlot = React2.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React2.useRef(null);\n const [element, setElement] = React2.useState(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref, setElement);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n const { setItemMap } = context;\n const itemDataRef = React2.useRef(itemData);\n if (!shallowEqual(itemDataRef.current, itemData)) {\n itemDataRef.current = itemData;\n }\n const memoizedItemData = itemDataRef.current;\n React2.useEffect(() => {\n const itemData2 = memoizedItemData;\n setItemMap((map) => {\n if (!element) {\n return map;\n }\n if (!map.has(element)) {\n map.set(element, { ...itemData2, element });\n return map.toSorted(sortByDocumentPosition);\n }\n return map.set(element, { ...itemData2, element }).toSorted(sortByDocumentPosition);\n });\n return () => {\n setItemMap((map) => {\n if (!element || !map.has(element)) {\n return map;\n }\n map.delete(element);\n return new OrderedDict(map);\n });\n };\n }, [element, memoizedItemData, setItemMap]);\n return /* @__PURE__ */ jsx2(CollectionItemSlotImpl, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useInitCollection() {\n return React2.useState(new OrderedDict());\n }\n function useCollection(scope) {\n const { itemMap } = useCollectionContext(name + \"CollectionConsumer\", scope);\n return itemMap;\n }\n const functions = {\n createCollectionScope,\n useCollection,\n useInitCollection\n };\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n functions\n ];\n}\nfunction shallowEqual(a, b) {\n if (a === b) return true;\n if (typeof a !== \"object\" || typeof b !== \"object\") return false;\n if (a == null || b == null) return false;\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n for (const key of keysA) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) return false;\n if (a[key] !== b[key]) return false;\n }\n return true;\n}\nfunction isElementPreceding(a, b) {\n return !!(b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING);\n}\nfunction sortByDocumentPosition(a, b) {\n return !a[1].element || !b[1].element ? 0 : isElementPreceding(a[1].element, b[1].element) ? -1 : 1;\n}\nfunction getChildListObserver(callback) {\n const observer = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === \"childList\") {\n callback();\n return;\n }\n }\n });\n return observer;\n}\nexport {\n createCollection,\n createCollection2 as unstable_createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/roving-focus-group.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ENTRY_FOCUS = \"rovingFocusGroup.onEntryFocus\";\nvar EVENT_OPTIONS = { bubbles: false, cancelable: true };\nvar GROUP_NAME = \"RovingFocusGroup\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME);\nvar [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(\n GROUP_NAME,\n [createCollectionScope]\n);\nvar [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME);\nvar RovingFocusGroup = React.forwardRef(\n (props, forwardedRef) => {\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) });\n }\n);\nRovingFocusGroup.displayName = GROUP_NAME;\nvar RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n orientation,\n loop = false,\n dir,\n currentTabStopId: currentTabStopIdProp,\n defaultCurrentTabStopId,\n onCurrentTabStopIdChange,\n onEntryFocus,\n preventScrollOnEntryFocus = false,\n ...groupProps\n } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const direction = useDirection(dir);\n const [currentTabStopId, setCurrentTabStopId] = useControllableState({\n prop: currentTabStopIdProp,\n defaultProp: defaultCurrentTabStopId ?? null,\n onChange: onCurrentTabStopIdChange,\n caller: GROUP_NAME\n });\n const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);\n const handleEntryFocus = useCallbackRef(onEntryFocus);\n const getItems = useCollection(__scopeRovingFocusGroup);\n const isClickFocusRef = React.useRef(false);\n const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n node.addEventListener(ENTRY_FOCUS, handleEntryFocus);\n return () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);\n }\n }, [handleEntryFocus]);\n return /* @__PURE__ */ jsx(\n RovingFocusProvider,\n {\n scope: __scopeRovingFocusGroup,\n orientation,\n dir: direction,\n loop,\n currentTabStopId,\n onItemFocus: React.useCallback(\n (tabStopId) => setCurrentTabStopId(tabStopId),\n [setCurrentTabStopId]\n ),\n onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),\n onFocusableItemAdd: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount + 1),\n []\n ),\n onFocusableItemRemove: React.useCallback(\n () => setFocusableItemsCount((prevCount) => prevCount - 1),\n []\n ),\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,\n \"data-orientation\": orientation,\n ...groupProps,\n ref: composedRefs,\n style: { outline: \"none\", ...props.style },\n onMouseDown: composeEventHandlers(props.onMouseDown, () => {\n isClickFocusRef.current = true;\n }),\n onFocus: composeEventHandlers(props.onFocus, (event) => {\n const isKeyboardFocus = !isClickFocusRef.current;\n if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {\n const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);\n event.currentTarget.dispatchEvent(entryFocusEvent);\n if (!entryFocusEvent.defaultPrevented) {\n const items = getItems().filter((item) => item.focusable);\n const activeItem = items.find((item) => item.active);\n const currentItem = items.find((item) => item.id === currentTabStopId);\n const candidateItems = [activeItem, currentItem, ...items].filter(\n Boolean\n );\n const candidateNodes = candidateItems.map((item) => item.ref.current);\n focusFirst(candidateNodes, preventScrollOnEntryFocus);\n }\n }\n isClickFocusRef.current = false;\n }),\n onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))\n }\n )\n }\n );\n});\nvar ITEM_NAME = \"RovingFocusGroupItem\";\nvar RovingFocusGroupItem = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRovingFocusGroup,\n focusable = true,\n active = false,\n tabStopId,\n children,\n ...itemProps\n } = props;\n const autoId = useId();\n const id = tabStopId || autoId;\n const context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup);\n const isCurrentTabStop = context.currentTabStopId === id;\n const getItems = useCollection(__scopeRovingFocusGroup);\n const { onFocusableItemAdd, onFocusableItemRemove, currentTabStopId } = context;\n React.useEffect(() => {\n if (focusable) {\n onFocusableItemAdd();\n return () => onFocusableItemRemove();\n }\n }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);\n return /* @__PURE__ */ jsx(\n Collection.ItemSlot,\n {\n scope: __scopeRovingFocusGroup,\n id,\n focusable,\n active,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n tabIndex: isCurrentTabStop ? 0 : -1,\n \"data-orientation\": context.orientation,\n ...itemProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!focusable) event.preventDefault();\n else context.onItemFocus(id);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n context.onItemShiftTab();\n return;\n }\n if (event.target !== event.currentTarget) return;\n const focusIntent = getFocusIntent(event, context.orientation, context.dir);\n if (focusIntent !== void 0) {\n if (event.metaKey || event.ctrlKey || event.altKey || event.shiftKey) return;\n event.preventDefault();\n const items = getItems().filter((item) => item.focusable);\n let candidateNodes = items.map((item) => item.ref.current);\n if (focusIntent === \"last\") candidateNodes.reverse();\n else if (focusIntent === \"prev\" || focusIntent === \"next\") {\n if (focusIntent === \"prev\") candidateNodes.reverse();\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);\n }\n setTimeout(() => focusFirst(candidateNodes));\n }\n }),\n children: typeof children === \"function\" ? children({ isCurrentTabStop, hasTabStop: currentTabStopId != null }) : children\n }\n )\n }\n );\n }\n);\nRovingFocusGroupItem.displayName = ITEM_NAME;\nvar MAP_KEY_TO_FOCUS_INTENT = {\n ArrowLeft: \"prev\",\n ArrowUp: \"prev\",\n ArrowRight: \"next\",\n ArrowDown: \"next\",\n PageUp: \"first\",\n Home: \"first\",\n PageDown: \"last\",\n End: \"last\"\n};\nfunction getDirectionAwareKey(key, dir) {\n if (dir !== \"rtl\") return key;\n return key === \"ArrowLeft\" ? \"ArrowRight\" : key === \"ArrowRight\" ? \"ArrowLeft\" : key;\n}\nfunction getFocusIntent(event, orientation, dir) {\n const key = getDirectionAwareKey(event.key, dir);\n if (orientation === \"vertical\" && [\"ArrowLeft\", \"ArrowRight\"].includes(key)) return void 0;\n if (orientation === \"horizontal\" && [\"ArrowUp\", \"ArrowDown\"].includes(key)) return void 0;\n return MAP_KEY_TO_FOCUS_INTENT[key];\n}\nfunction focusFirst(candidates, preventScroll = false) {\n const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;\n for (const candidate of candidates) {\n if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;\n candidate.focus({ preventScroll });\n if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;\n }\n}\nfunction wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\nvar Root = RovingFocusGroup;\nvar Item = RovingFocusGroupItem;\nexport {\n Item,\n Root,\n RovingFocusGroup,\n RovingFocusGroupItem,\n createRovingFocusGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\n\nimport { cn } from '@/lib/utils';\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst labelVariants = cva(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n);\n\nconst Label = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef & VariantProps\n>(({ className, ...props }, ref) => (\n \n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","// packages/react/use-previous/src/use-previous.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/use-size.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n const [size, setSize] = React.useState(void 0);\n useLayoutEffect(() => {\n if (element) {\n setSize({ width: element.offsetWidth, height: element.offsetHeight });\n const resizeObserver = new ResizeObserver((entries) => {\n if (!Array.isArray(entries)) {\n return;\n }\n if (!entries.length) {\n return;\n }\n const entry = entries[0];\n let width;\n let height;\n if (\"borderBoxSize\" in entry) {\n const borderSizeEntry = entry[\"borderBoxSize\"];\n const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n width = borderSize[\"inlineSize\"];\n height = borderSize[\"blockSize\"];\n } else {\n width = element.offsetWidth;\n height = element.offsetHeight;\n }\n setSize({ width, height });\n });\n resizeObserver.observe(element, { box: \"border-box\" });\n return () => resizeObserver.unobserve(element);\n } else {\n setSize(void 0);\n }\n }, [element]);\n return size;\n}\nexport {\n useSize\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProviderImpl, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nfunction CheckboxProvider(props) {\n const {\n __scopeCheckbox,\n checked: checkedProp,\n children,\n defaultChecked,\n disabled,\n form,\n name,\n onCheckedChange,\n required,\n value = \"on\",\n // @ts-expect-error\n internal_do_not_use_render\n } = props;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: CHECKBOX_NAME\n });\n const [control, setControl] = React.useState(null);\n const [bubbleInput, setBubbleInput] = React.useState(null);\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = control ? !!form || !!control.closest(\"form\") : (\n // We set this to true by default so that events bubble to forms without JS (SSR)\n true\n );\n const context = {\n checked,\n disabled,\n setChecked,\n control,\n setControl,\n name,\n form,\n value,\n hasConsumerStoppedPropagationRef,\n required,\n defaultChecked: isIndeterminate(defaultChecked) ? false : defaultChecked,\n isFormControl,\n bubbleInput,\n setBubbleInput\n };\n return /* @__PURE__ */ jsx(\n CheckboxProviderImpl,\n {\n scope: __scopeCheckbox,\n ...context,\n children: isFunction(internal_do_not_use_render) ? internal_do_not_use_render(context) : children\n }\n );\n}\nvar TRIGGER_NAME = \"CheckboxTrigger\";\nvar CheckboxTrigger = React.forwardRef(\n ({ __scopeCheckbox, onKeyDown, onClick, ...checkboxProps }, forwardedRef) => {\n const {\n control,\n value,\n disabled,\n checked,\n required,\n setControl,\n setChecked,\n hasConsumerStoppedPropagationRef,\n isFormControl,\n bubbleInput\n } = useCheckboxContext(TRIGGER_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setControl);\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = control?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener(\"reset\", reset);\n return () => form.removeEventListener(\"reset\", reset);\n }\n }, [control, setChecked]);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (bubbleInput && isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n );\n }\n);\nCheckboxTrigger.displayName = TRIGGER_NAME;\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked,\n defaultChecked,\n required,\n disabled,\n value,\n onCheckedChange,\n form,\n ...checkboxProps\n } = props;\n return /* @__PURE__ */ jsx(\n CheckboxProvider,\n {\n __scopeCheckbox,\n checked,\n defaultChecked,\n disabled,\n required,\n onCheckedChange,\n name,\n form,\n value,\n internal_do_not_use_render: ({ isFormControl }) => /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(\n CheckboxTrigger,\n {\n ...checkboxProps,\n ref: forwardedRef,\n __scopeCheckbox\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n CheckboxBubbleInput,\n {\n __scopeCheckbox\n }\n )\n ] })\n }\n );\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(\n Presence,\n {\n present: forceMount || isIndeterminate(context.checked) || context.checked === true,\n children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n )\n }\n );\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"CheckboxBubbleInput\";\nvar CheckboxBubbleInput = React.forwardRef(\n ({ __scopeCheckbox, ...props }, forwardedRef) => {\n const {\n control,\n hasConsumerStoppedPropagationRef,\n checked,\n defaultChecked,\n required,\n disabled,\n name,\n value,\n form,\n bubbleInput,\n setBubbleInput\n } = useCheckboxContext(BUBBLE_INPUT_NAME, __scopeCheckbox);\n const composedRefs = useComposedRefs(forwardedRef, setBubbleInput);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = bubbleInput;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n const bubbles = !hasConsumerStoppedPropagationRef.current;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [bubbleInput, prevChecked, checked, hasConsumerStoppedPropagationRef]);\n const defaultCheckedRef = React.useRef(isIndeterminate(checked) ? false : checked);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: defaultChecked ?? defaultCheckedRef.current,\n required,\n disabled,\n name,\n value,\n form,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0,\n // We transform because the input is absolutely positioned but we have\n // rendered it **after** the button. This pulls it back to sit on top\n // of the button.\n transform: \"translateX(-100%)\"\n }\n }\n );\n }\n);\nCheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nexport {\n Checkbox,\n CheckboxIndicator,\n CheckboxIndicator as Indicator,\n Checkbox as Root,\n createCheckboxScope,\n CheckboxBubbleInput as unstable_BubbleInput,\n CheckboxBubbleInput as unstable_CheckboxBubbleInput,\n CheckboxProvider as unstable_CheckboxProvider,\n CheckboxTrigger as unstable_CheckboxTrigger,\n CheckboxProvider as unstable_Provider,\n CheckboxTrigger as unstable_Trigger\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport { Check } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Checkbox = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n \n \n \n \n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import { useState, useRef } from 'react';\nimport type { Contact, Conversation } from '../types';\nimport { getContactDisplayName } from '../utils/pubkey';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from './ui/dialog';\nimport { Tabs, TabsList, TabsTrigger, TabsContent } from './ui/tabs';\nimport { Input } from './ui/input';\nimport { Label } from './ui/label';\nimport { Checkbox } from './ui/checkbox';\nimport { Button } from './ui/button';\n\ntype Tab = 'existing' | 'new-contact' | 'new-room' | 'hashtag';\n\ninterface NewMessageModalProps {\n open: boolean;\n contacts: Contact[];\n undecryptedCount: number;\n onClose: () => void;\n onSelectConversation: (conversation: Conversation) => void;\n onCreateContact: (name: string, publicKey: string, tryHistorical: boolean) => Promise;\n onCreateChannel: (name: string, key: string, tryHistorical: boolean) => Promise;\n onCreateHashtagChannel: (name: string, tryHistorical: boolean) => Promise;\n}\n\nexport function NewMessageModal({\n open,\n contacts,\n undecryptedCount,\n onClose,\n onSelectConversation,\n onCreateContact,\n onCreateChannel,\n onCreateHashtagChannel,\n}: NewMessageModalProps) {\n const [tab, setTab] = useState('existing');\n const [name, setName] = useState('');\n const [key, setKey] = useState('');\n const [tryHistorical, setTryHistorical] = useState(false);\n const [error, setError] = useState('');\n const [loading, setLoading] = useState(false);\n const hashtagInputRef = useRef(null);\n\n const handleCreate = async () => {\n setError('');\n setLoading(true);\n\n try {\n if (tab === 'new-contact') {\n if (!name.trim() || !key.trim()) {\n setError('Name and public key are required');\n return;\n }\n await onCreateContact(name.trim(), key.trim(), tryHistorical);\n onSelectConversation({\n type: 'contact',\n id: key.trim(),\n name: name.trim(),\n });\n } else if (tab === 'new-room') {\n if (!name.trim() || !key.trim()) {\n setError('Room name and key are required');\n return;\n }\n await onCreateChannel(name.trim(), key.trim(), tryHistorical);\n } else if (tab === 'hashtag') {\n const channelName = name.trim();\n const validationError = validateHashtagName(channelName);\n if (validationError) {\n setError(validationError);\n return;\n }\n await onCreateHashtagChannel(`#${channelName}`, tryHistorical);\n }\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to create');\n } finally {\n setLoading(false);\n }\n };\n\n const validateHashtagName = (channelName: string): string | null => {\n if (!channelName) {\n return 'Channel name is required';\n }\n if (!/^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/.test(channelName)) {\n return 'Use letters, numbers, and single dashes (no leading/trailing dashes)';\n }\n return null;\n };\n\n const handleCreateAndAddAnother = async () => {\n setError('');\n const channelName = name.trim();\n const validationError = validateHashtagName(channelName);\n if (validationError) {\n setError(validationError);\n return;\n }\n\n setLoading(true);\n try {\n await onCreateHashtagChannel(`#${channelName}`, tryHistorical);\n setName('');\n hashtagInputRef.current?.focus();\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to create');\n } finally {\n setLoading(false);\n }\n };\n\n const showHistoricalOption = tab !== 'existing' && undecryptedCount > 0;\n\n return (\n !isOpen && onClose()}>\n \n \n New Conversation\n \n\n setTab(v as Tab)} className=\"w-full\">\n \n Existing\n Contact\n Room\n Hashtag\n \n\n \n
\n {contacts.length === 0 ? (\n
No contacts available
\n ) : (\n contacts.map((contact) => (\n {\n onSelectConversation({\n type: 'contact',\n id: contact.public_key,\n name: getContactDisplayName(contact.name, contact.public_key),\n });\n onClose();\n }}\n >\n {getContactDisplayName(contact.name, contact.public_key)}\n
\n ))\n )}\n
\n \n\n \n
\n \n setName(e.target.value)}\n placeholder=\"Contact name\"\n />\n
\n
\n \n setKey(e.target.value)}\n placeholder=\"64-character hex public key\"\n />\n
\n
\n\n \n
\n \n setName(e.target.value)}\n placeholder=\"Room name\"\n />\n
\n
\n \n setKey(e.target.value)}\n placeholder=\"Pre-shared key (hex)\"\n />\n
\n
\n\n \n
\n \n
\n #\n setName(e.target.value)}\n placeholder=\"channel-name\"\n className=\"flex-1\"\n />\n
\n
\n
\n \n\n {showHistoricalOption && (\n
\n
\n \n Try decrypting {undecryptedCount.toLocaleString()} stored packet\n {undecryptedCount !== 1 ? 's' : ''}\n \n setTryHistorical(checked === true)}\n />\n
\n {tryHistorical && (\n

\n Messages will stream in as they decrypt in the background\n

\n )}\n
\n )}\n\n {error &&
{error}
}\n\n \n \n {tab === 'hashtag' && (\n \n )}\n {tab !== 'existing' && (\n \n )}\n \n \n \n );\n}\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// src/separator.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Separator\";\nvar DEFAULT_ORIENTATION = \"horizontal\";\nvar ORIENTATIONS = [\"horizontal\", \"vertical\"];\nvar Separator = React.forwardRef((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n const ariaOrientation = orientation === \"vertical\" ? orientation : void 0;\n const semanticProps = decorative ? { role: \"none\" } : { \"aria-orientation\": ariaOrientation, role: \"separator\" };\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-orientation\": orientation,\n ...semanticProps,\n ...domProps,\n ref: forwardedRef\n }\n );\n});\nSeparator.displayName = NAME;\nfunction isValidOrientation(orientation) {\n return ORIENTATIONS.includes(orientation);\n}\nvar Root = Separator;\nexport {\n Root,\n Separator\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport * as SeparatorPrimitive from '@radix-ui/react-separator';\n\nimport { cn } from '@/lib/utils';\n\nconst Separator = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\n \n));\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst alertVariants = cva(\n 'relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground',\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground',\n destructive:\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\n warning: 'border-yellow-500/50 bg-yellow-500/10 text-yellow-200 [&>svg]:text-yellow-500',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes & VariantProps\n>(({ className, variant, ...props }, ref) => (\n
\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef>(\n ({ className, ...props }, ref) => (\n \n )\n);\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n
\n));\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n","import { useState, useEffect } from 'react';\nimport type { AppSettings, AppSettingsUpdate, RadioConfig, RadioConfigUpdate } from '../types';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from './ui/dialog';\nimport { Input } from './ui/input';\nimport { Label } from './ui/label';\nimport { Button } from './ui/button';\nimport { Separator } from './ui/separator';\nimport { Alert, AlertDescription } from './ui/alert';\n\ninterface ConfigModalProps {\n open: boolean;\n config: RadioConfig | null;\n appSettings: AppSettings | null;\n onClose: () => void;\n onSave: (update: RadioConfigUpdate) => Promise;\n onSaveAppSettings: (update: AppSettingsUpdate) => Promise;\n onSetPrivateKey: (key: string) => Promise;\n onReboot: () => Promise;\n}\n\nexport function ConfigModal({\n open,\n config,\n appSettings,\n onClose,\n onSave,\n onSaveAppSettings,\n onSetPrivateKey,\n onReboot,\n}: ConfigModalProps) {\n const [name, setName] = useState('');\n const [lat, setLat] = useState('');\n const [lon, setLon] = useState('');\n const [txPower, setTxPower] = useState('');\n const [freq, setFreq] = useState('');\n const [bw, setBw] = useState('');\n const [sf, setSf] = useState('');\n const [cr, setCr] = useState('');\n const [privateKey, setPrivateKey] = useState('');\n const [maxRadioContacts, setMaxRadioContacts] = useState('');\n const [loading, setLoading] = useState(false);\n const [rebooting, setRebooting] = useState(false);\n const [error, setError] = useState('');\n\n useEffect(() => {\n if (config) {\n setName(config.name);\n setLat(String(config.lat));\n setLon(String(config.lon));\n setTxPower(String(config.tx_power));\n setFreq(String(config.radio.freq));\n setBw(String(config.radio.bw));\n setSf(String(config.radio.sf));\n setCr(String(config.radio.cr));\n }\n }, [config]);\n\n useEffect(() => {\n if (appSettings) {\n setMaxRadioContacts(String(appSettings.max_radio_contacts));\n }\n }, [appSettings]);\n\n const handleSave = async () => {\n setError('');\n setLoading(true);\n\n try {\n const update: RadioConfigUpdate = {\n name,\n lat: parseFloat(lat),\n lon: parseFloat(lon),\n tx_power: parseInt(txPower, 10),\n radio: {\n freq: parseFloat(freq),\n bw: parseFloat(bw),\n sf: parseInt(sf, 10),\n cr: parseInt(cr, 10),\n },\n };\n await onSave(update);\n\n const newMaxRadioContacts = parseInt(maxRadioContacts, 10);\n if (!isNaN(newMaxRadioContacts) && newMaxRadioContacts !== appSettings?.max_radio_contacts) {\n await onSaveAppSettings({ max_radio_contacts: newMaxRadioContacts });\n }\n\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to save');\n } finally {\n setLoading(false);\n }\n };\n\n const handleSetPrivateKey = async () => {\n if (!privateKey.trim()) {\n setError('Private key is required');\n return;\n }\n setError('');\n setLoading(true);\n\n try {\n await onSetPrivateKey(privateKey.trim());\n setPrivateKey('');\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to set private key');\n } finally {\n setLoading(false);\n }\n };\n\n const handleReboot = async () => {\n if (\n !confirm('Are you sure you want to reboot the radio? The connection will drop temporarily.')\n ) {\n return;\n }\n setError('');\n setRebooting(true);\n\n try {\n await onReboot();\n onClose();\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to reboot radio');\n } finally {\n setRebooting(false);\n }\n };\n\n return (\n !isOpen && onClose()}>\n \n \n Radio Configuration\n \n\n {!config ? (\n
Loading configuration...
\n ) : (\n
\n
\n \n \n
\n\n
\n \n setName(e.target.value)} />\n
\n\n
\n
\n \n setLat(e.target.value)}\n />\n
\n
\n \n setLon(e.target.value)}\n />\n
\n
\n\n
\n
\n \n setFreq(e.target.value)}\n />\n
\n
\n \n setBw(e.target.value)}\n />\n
\n
\n\n
\n
\n \n setSf(e.target.value)}\n />\n
\n
\n \n setCr(e.target.value)}\n />\n
\n
\n\n
\n
\n \n setTxPower(e.target.value)}\n />\n
\n
\n \n \n
\n
\n\n \n\n
\n \n setMaxRadioContacts(e.target.value)}\n />\n

\n Recent non-repeater contacts loaded to radio for DM auto-ACK (1-1000)\n

\n
\n\n \n\n
\n \n
\n setPrivateKey(e.target.value)}\n placeholder=\"64-character hex private key\"\n className=\"flex-1\"\n />\n \n
\n
\n\n \n\n
\n \n \n \n Some configuration changes (like name) require a radio reboot to take effect. The\n connection will temporarily drop and automatically reconnect.\n \n \n \n {rebooting ? 'Rebooting...' : 'Reboot Radio'}\n \n
\n\n {error &&
{error}
}\n
\n )}\n\n \n \n \n \n
\n
\n );\n}\n","import { useState } from 'react';\nimport type { HealthStatus } from '../types';\nimport { Dialog, DialogContent, DialogHeader, DialogTitle } from './ui/dialog';\nimport { Input } from './ui/input';\nimport { Label } from './ui/label';\nimport { Button } from './ui/button';\nimport { toast } from './ui/sonner';\nimport { api } from '../api';\n\ninterface MaintenanceModalProps {\n open: boolean;\n health: HealthStatus | null;\n onClose: () => void;\n onHealthRefresh: () => Promise;\n}\n\nexport function MaintenanceModal({\n open,\n health,\n onClose,\n onHealthRefresh,\n}: MaintenanceModalProps) {\n const [retentionDays, setRetentionDays] = useState('14');\n const [cleaning, setCleaning] = useState(false);\n const [deduping, setDeduping] = useState(false);\n\n const handleCleanup = async () => {\n const days = parseInt(retentionDays, 10);\n if (isNaN(days) || days < 1) {\n toast.error('Invalid retention days', {\n description: 'Retention days must be at least 1',\n });\n return;\n }\n\n setCleaning(true);\n\n try {\n const result = await api.runMaintenance(days);\n toast.success('Database cleanup complete', {\n description: `Deleted ${result.packets_deleted} old packet${result.packets_deleted === 1 ? '' : 's'}`,\n });\n // Refresh health to get updated database size\n await onHealthRefresh();\n } catch (err) {\n console.error('Failed to run maintenance:', err);\n toast.error('Database cleanup failed', {\n description: err instanceof Error ? err.message : 'Unknown error',\n });\n } finally {\n setCleaning(false);\n }\n };\n\n const handleDedup = async () => {\n setDeduping(true);\n\n try {\n const result = await api.deduplicatePackets();\n if (result.started) {\n toast.success('Deduplication started', {\n description: result.message,\n });\n } else {\n toast.info('Deduplication', {\n description: result.message,\n });\n }\n } catch (err) {\n console.error('Failed to start deduplication:', err);\n toast.error('Deduplication failed', {\n description: err instanceof Error ? err.message : 'Unknown error',\n });\n } finally {\n setDeduping(false);\n }\n };\n\n return (\n !isOpen && onClose()}>\n \n \n Database Maintenance\n \n\n
\n

\n Current database size:{' '}\n {health?.database_size_mb ?? '?'} MB\n

\n\n
\n \n

\n Delete undecrypted packets older than the specified days. This helps manage storage\n for packets that couldn't be decrypted (unknown channel keys).\n

\n
\n
\n \n setRetentionDays(e.target.value)}\n className=\"w-20\"\n />\n
\n \n
\n
\n\n
\n \n

\n Remove packets with duplicate payloads (same message received via different paths).\n Runs in background and may take a long time.\n

\n \n
\n
\n
\n
\n );\n}\n","import { useEffect, useRef } from 'react';\nimport type { RawPacket } from '../types';\n\ninterface RawPacketListProps {\n packets: RawPacket[];\n}\n\nfunction formatTime(timestamp: number): string {\n const date = new Date(timestamp * 1000);\n return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit' });\n}\n\nfunction formatPayloadType(type: string): string {\n // Convert SNAKE_CASE to Title Case\n return type\n .split('_')\n .map((word) => word.charAt(0) + word.slice(1).toLowerCase())\n .join(' ');\n}\n\nfunction getDecryptedLabel(packet: RawPacket): string {\n if (!packet.decrypted || !packet.decrypted_info) {\n return formatPayloadType(packet.payload_type);\n }\n\n const info = packet.decrypted_info;\n if (packet.payload_type === 'GROUP_TEXT' && info.channel_name) {\n return `GroupText to ${info.channel_name}`;\n }\n if (packet.payload_type === 'TEXT_MESSAGE' && info.sender) {\n return `TextMessage from ${info.sender}`;\n }\n\n return formatPayloadType(packet.payload_type);\n}\n\nfunction formatSignalInfo(packet: RawPacket): string {\n const parts: string[] = [];\n if (packet.snr !== null && packet.snr !== undefined) {\n parts.push(`SNR: ${packet.snr.toFixed(1)} dB`);\n }\n if (packet.rssi !== null && packet.rssi !== undefined) {\n parts.push(`RSSI: ${packet.rssi} dBm`);\n }\n return parts.join(' | ');\n}\n\nexport function RawPacketList({ packets }: RawPacketListProps) {\n const listRef = useRef(null);\n\n useEffect(() => {\n if (listRef.current) {\n listRef.current.scrollTop = listRef.current.scrollHeight;\n }\n }, [packets]);\n\n if (packets.length === 0) {\n return (\n
\n No packets received yet. Packets will appear here in real-time.\n
\n );\n }\n\n // Sort packets by timestamp ascending (oldest first)\n const sortedPackets = [...packets].sort((a, b) => a.timestamp - b.timestamp);\n\n return (\n
\n {sortedPackets.map((packet) => (\n
\n
\n {!packet.decrypted && 🔒}\n {getDecryptedLabel(packet)}\n {' • '}\n {formatTime(packet.timestamp)}\n
\n {(packet.snr !== null || packet.rssi !== null) && (\n
\n {formatSignalInfo(packet)}\n
\n )}\n
\n {packet.data.toUpperCase()}\n
\n
\n ))}\n
\n );\n}\n","import { useEffect, useRef } from 'react';\nexport function useAttribution(map, attribution) {\n const attributionRef = useRef(attribution);\n useEffect(function updateAttribution() {\n if (attribution !== attributionRef.current && map.attributionControl != null) {\n if (attributionRef.current != null) {\n map.attributionControl.removeAttribution(attributionRef.current);\n }\n if (attribution != null) {\n map.attributionControl.addAttribution(attribution);\n }\n }\n attributionRef.current = attribution;\n }, [\n map,\n attribution\n ]);\n}\n","export function updateCircle(layer, props, prevProps) {\n if (props.center !== prevProps.center) {\n layer.setLatLng(props.center);\n }\n if (props.radius != null && props.radius !== prevProps.radius) {\n layer.setRadius(props.radius);\n }\n}\n","import { createContext, useContext } from 'react';\nexport const CONTEXT_VERSION = 1;\nexport function createLeafletContext(map) {\n return Object.freeze({\n __version: CONTEXT_VERSION,\n map\n });\n}\nexport function extendContext(source, extra) {\n return Object.freeze({\n ...source,\n ...extra\n });\n}\nexport const LeafletContext = createContext(null);\nexport const LeafletProvider = LeafletContext.Provider;\nexport function useLeafletContext() {\n const context = useContext(LeafletContext);\n if (context == null) {\n throw new Error('No context provided: useLeafletContext() can only be used in a descendant of ');\n }\n return context;\n}\n","import React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { LeafletProvider } from './context.js';\nexport function createContainerComponent(useElement) {\n function ContainerComponent(props, forwardedRef) {\n const { instance , context } = useElement(props).current;\n useImperativeHandle(forwardedRef, ()=>instance);\n return props.children == null ? null : /*#__PURE__*/ React.createElement(LeafletProvider, {\n value: context\n }, props.children);\n }\n return /*#__PURE__*/ forwardRef(ContainerComponent);\n}\nexport function createDivOverlayComponent(useElement) {\n function OverlayComponent(props, forwardedRef) {\n const [isOpen, setOpen] = useState(false);\n const { instance } = useElement(props, setOpen).current;\n useImperativeHandle(forwardedRef, ()=>instance);\n useEffect(function updateOverlay() {\n if (isOpen) {\n instance.update();\n }\n }, [\n instance,\n isOpen,\n props.children\n ]);\n // @ts-ignore _contentNode missing in type definition\n const contentNode = instance._contentNode;\n return contentNode ? /*#__PURE__*/ createPortal(props.children, contentNode) : null;\n }\n return /*#__PURE__*/ forwardRef(OverlayComponent);\n}\nexport function createLeafComponent(useElement) {\n function LeafComponent(props, forwardedRef) {\n const { instance } = useElement(props).current;\n useImperativeHandle(forwardedRef, ()=>instance);\n return null;\n }\n return /*#__PURE__*/ forwardRef(LeafComponent);\n}\n","import { useEffect, useRef } from 'react';\nexport function useEventHandlers(element, eventHandlers) {\n const eventHandlersRef = useRef();\n useEffect(function addEventHandlers() {\n if (eventHandlers != null) {\n element.instance.on(eventHandlers);\n }\n eventHandlersRef.current = eventHandlers;\n return function removeEventHandlers() {\n if (eventHandlersRef.current != null) {\n element.instance.off(eventHandlersRef.current);\n }\n eventHandlersRef.current = null;\n };\n }, [\n element,\n eventHandlers\n ]);\n}\n","export function withPane(props, context) {\n const pane = props.pane ?? context.pane;\n return pane ? {\n ...props,\n pane\n } : props;\n}\n","import { useAttribution } from './attribution.js';\nimport { useLeafletContext } from './context.js';\nimport { useEventHandlers } from './events.js';\nimport { withPane } from './pane.js';\nexport function createDivOverlayHook(useElement, useLifecycle) {\n return function useDivOverlay(props, setOpen) {\n const context = useLeafletContext();\n const elementRef = useElement(withPane(props, context), context);\n useAttribution(context.map, props.attribution);\n useEventHandlers(elementRef.current, props.eventHandlers);\n useLifecycle(elementRef.current, context, props, setOpen);\n return elementRef;\n };\n}\n","/* @preserve\n * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com\n * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.leaflet = {}));\n})(this, (function (exports) { 'use strict';\n\n var version = \"1.9.4\";\n\n /*\r\n * @namespace Util\r\n *\r\n * Various utility functions, used by Leaflet internally.\r\n */\r\n\r\n // @function extend(dest: Object, src?: Object): Object\r\n // Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.\r\n function extend(dest) {\r\n \tvar i, j, len, src;\r\n\r\n \tfor (j = 1, len = arguments.length; j < len; j++) {\r\n \t\tsrc = arguments[j];\r\n \t\tfor (i in src) {\r\n \t\t\tdest[i] = src[i];\r\n \t\t}\r\n \t}\r\n \treturn dest;\r\n }\r\n\r\n // @function create(proto: Object, properties?: Object): Object\r\n // Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)\r\n var create$2 = Object.create || (function () {\r\n \tfunction F() {}\r\n \treturn function (proto) {\r\n \t\tF.prototype = proto;\r\n \t\treturn new F();\r\n \t};\r\n })();\r\n\r\n // @function bind(fn: Function, …): Function\r\n // Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\r\n // Has a `L.bind()` shortcut.\r\n function bind(fn, obj) {\r\n \tvar slice = Array.prototype.slice;\r\n\r\n \tif (fn.bind) {\r\n \t\treturn fn.bind.apply(fn, slice.call(arguments, 1));\r\n \t}\r\n\r\n \tvar args = slice.call(arguments, 2);\r\n\r\n \treturn function () {\r\n \t\treturn fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);\r\n \t};\r\n }\r\n\r\n // @property lastId: Number\r\n // Last unique ID used by [`stamp()`](#util-stamp)\r\n var lastId = 0;\r\n\r\n // @function stamp(obj: Object): Number\r\n // Returns the unique ID of an object, assigning it one if it doesn't have it.\r\n function stamp(obj) {\r\n \tif (!('_leaflet_id' in obj)) {\r\n \t\tobj['_leaflet_id'] = ++lastId;\r\n \t}\r\n \treturn obj._leaflet_id;\r\n }\r\n\r\n // @function throttle(fn: Function, time: Number, context: Object): Function\r\n // Returns a function which executes function `fn` with the given scope `context`\r\n // (so that the `this` keyword refers to `context` inside `fn`'s code). The function\r\n // `fn` will be called no more than one time per given amount of `time`. The arguments\r\n // received by the bound function will be any arguments passed when binding the\r\n // function, followed by any arguments passed when invoking the bound function.\r\n // Has an `L.throttle` shortcut.\r\n function throttle(fn, time, context) {\r\n \tvar lock, args, wrapperFn, later;\r\n\r\n \tlater = function () {\r\n \t\t// reset lock and call if queued\r\n \t\tlock = false;\r\n \t\tif (args) {\r\n \t\t\twrapperFn.apply(context, args);\r\n \t\t\targs = false;\r\n \t\t}\r\n \t};\r\n\r\n \twrapperFn = function () {\r\n \t\tif (lock) {\r\n \t\t\t// called too soon, queue to call later\r\n \t\t\targs = arguments;\r\n\r\n \t\t} else {\r\n \t\t\t// call and lock until later\r\n \t\t\tfn.apply(context, arguments);\r\n \t\t\tsetTimeout(later, time);\r\n \t\t\tlock = true;\r\n \t\t}\r\n \t};\r\n\r\n \treturn wrapperFn;\r\n }\r\n\r\n // @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number\r\n // Returns the number `num` modulo `range` in such a way so it lies within\r\n // `range[0]` and `range[1]`. The returned value will be always smaller than\r\n // `range[1]` unless `includeMax` is set to `true`.\r\n function wrapNum(x, range, includeMax) {\r\n \tvar max = range[1],\r\n \t min = range[0],\r\n \t d = max - min;\r\n \treturn x === max && includeMax ? x : ((x - min) % d + d) % d + min;\r\n }\r\n\r\n // @function falseFn(): Function\r\n // Returns a function which always returns `false`.\r\n function falseFn() { return false; }\r\n\r\n // @function formatNum(num: Number, precision?: Number|false): Number\r\n // Returns the number `num` rounded with specified `precision`.\r\n // The default `precision` value is 6 decimal places.\r\n // `false` can be passed to skip any processing (can be useful to avoid round-off errors).\r\n function formatNum(num, precision) {\r\n \tif (precision === false) { return num; }\r\n \tvar pow = Math.pow(10, precision === undefined ? 6 : precision);\r\n \treturn Math.round(num * pow) / pow;\r\n }\r\n\r\n // @function trim(str: String): String\r\n // Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)\r\n function trim(str) {\r\n \treturn str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n\r\n // @function splitWords(str: String): String[]\r\n // Trims and splits the string on whitespace and returns the array of parts.\r\n function splitWords(str) {\r\n \treturn trim(str).split(/\\s+/);\r\n }\r\n\r\n // @function setOptions(obj: Object, options: Object): Object\r\n // Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.\r\n function setOptions(obj, options) {\r\n \tif (!Object.prototype.hasOwnProperty.call(obj, 'options')) {\r\n \t\tobj.options = obj.options ? create$2(obj.options) : {};\r\n \t}\r\n \tfor (var i in options) {\r\n \t\tobj.options[i] = options[i];\r\n \t}\r\n \treturn obj.options;\r\n }\r\n\r\n // @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String\r\n // Converts an object into a parameter URL string, e.g. `{a: \"foo\", b: \"bar\"}`\r\n // translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will\r\n // be appended at the end. If `uppercase` is `true`, the parameter names will\r\n // be uppercased (e.g. `'?A=foo&B=bar'`)\r\n function getParamString(obj, existingUrl, uppercase) {\r\n \tvar params = [];\r\n \tfor (var i in obj) {\r\n \t\tparams.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));\r\n \t}\r\n \treturn ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');\r\n }\r\n\r\n var templateRe = /\\{ *([\\w_ -]+) *\\}/g;\r\n\r\n // @function template(str: String, data: Object): String\r\n // Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`\r\n // and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string\r\n // `('Hello foo, bar')`. You can also specify functions instead of strings for\r\n // data values — they will be evaluated passing `data` as an argument.\r\n function template(str, data) {\r\n \treturn str.replace(templateRe, function (str, key) {\r\n \t\tvar value = data[key];\r\n\r\n \t\tif (value === undefined) {\r\n \t\t\tthrow new Error('No value provided for variable ' + str);\r\n\r\n \t\t} else if (typeof value === 'function') {\r\n \t\t\tvalue = value(data);\r\n \t\t}\r\n \t\treturn value;\r\n \t});\r\n }\r\n\r\n // @function isArray(obj): Boolean\r\n // Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)\r\n var isArray = Array.isArray || function (obj) {\r\n \treturn (Object.prototype.toString.call(obj) === '[object Array]');\r\n };\r\n\r\n // @function indexOf(array: Array, el: Object): Number\r\n // Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)\r\n function indexOf(array, el) {\r\n \tfor (var i = 0; i < array.length; i++) {\r\n \t\tif (array[i] === el) { return i; }\r\n \t}\r\n \treturn -1;\r\n }\r\n\r\n // @property emptyImageUrl: String\r\n // Data URI string containing a base64-encoded empty GIF image.\r\n // Used as a hack to free memory from unused images on WebKit-powered\r\n // mobile devices (by setting image `src` to this string).\r\n var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';\r\n\r\n // inspired by https://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n\r\n function getPrefixed(name) {\r\n \treturn window['webkit' + name] || window['moz' + name] || window['ms' + name];\r\n }\r\n\r\n var lastTime = 0;\r\n\r\n // fallback for IE 7-8\r\n function timeoutDefer(fn) {\r\n \tvar time = +new Date(),\r\n \t timeToCall = Math.max(0, 16 - (time - lastTime));\r\n\r\n \tlastTime = time + timeToCall;\r\n \treturn window.setTimeout(fn, timeToCall);\r\n }\r\n\r\n var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;\r\n var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||\r\n \t\tgetPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };\r\n\r\n // @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number\r\n // Schedules `fn` to be executed when the browser repaints. `fn` is bound to\r\n // `context` if given. When `immediate` is set, `fn` is called immediately if\r\n // the browser doesn't have native support for\r\n // [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),\r\n // otherwise it's delayed. Returns a request ID that can be used to cancel the request.\r\n function requestAnimFrame(fn, context, immediate) {\r\n \tif (immediate && requestFn === timeoutDefer) {\r\n \t\tfn.call(context);\r\n \t} else {\r\n \t\treturn requestFn.call(window, bind(fn, context));\r\n \t}\r\n }\r\n\r\n // @function cancelAnimFrame(id: Number): undefined\r\n // Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).\r\n function cancelAnimFrame(id) {\r\n \tif (id) {\r\n \t\tcancelFn.call(window, id);\r\n \t}\r\n }\n\n var Util = {\n __proto__: null,\n extend: extend,\n create: create$2,\n bind: bind,\n get lastId () { return lastId; },\n stamp: stamp,\n throttle: throttle,\n wrapNum: wrapNum,\n falseFn: falseFn,\n formatNum: formatNum,\n trim: trim,\n splitWords: splitWords,\n setOptions: setOptions,\n getParamString: getParamString,\n template: template,\n isArray: isArray,\n indexOf: indexOf,\n emptyImageUrl: emptyImageUrl,\n requestFn: requestFn,\n cancelFn: cancelFn,\n requestAnimFrame: requestAnimFrame,\n cancelAnimFrame: cancelAnimFrame\n };\n\n // @class Class\r\n // @aka L.Class\r\n\r\n // @section\r\n // @uninheritable\r\n\r\n // Thanks to John Resig and Dean Edwards for inspiration!\r\n\r\n function Class() {}\r\n\r\n Class.extend = function (props) {\r\n\r\n \t// @function extend(props: Object): Function\r\n \t// [Extends the current class](#class-inheritance) given the properties to be included.\r\n \t// Returns a Javascript function that is a class constructor (to be called with `new`).\r\n \tvar NewClass = function () {\r\n\r\n \t\tsetOptions(this);\r\n\r\n \t\t// call the constructor\r\n \t\tif (this.initialize) {\r\n \t\t\tthis.initialize.apply(this, arguments);\r\n \t\t}\r\n\r\n \t\t// call all constructor hooks\r\n \t\tthis.callInitHooks();\r\n \t};\r\n\r\n \tvar parentProto = NewClass.__super__ = this.prototype;\r\n\r\n \tvar proto = create$2(parentProto);\r\n \tproto.constructor = NewClass;\r\n\r\n \tNewClass.prototype = proto;\r\n\r\n \t// inherit parent's statics\r\n \tfor (var i in this) {\r\n \t\tif (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {\r\n \t\t\tNewClass[i] = this[i];\r\n \t\t}\r\n \t}\r\n\r\n \t// mix static properties into the class\r\n \tif (props.statics) {\r\n \t\textend(NewClass, props.statics);\r\n \t}\r\n\r\n \t// mix includes into the prototype\r\n \tif (props.includes) {\r\n \t\tcheckDeprecatedMixinEvents(props.includes);\r\n \t\textend.apply(null, [proto].concat(props.includes));\r\n \t}\r\n\r\n \t// mix given properties into the prototype\r\n \textend(proto, props);\r\n \tdelete proto.statics;\r\n \tdelete proto.includes;\r\n\r\n \t// merge options\r\n \tif (proto.options) {\r\n \t\tproto.options = parentProto.options ? create$2(parentProto.options) : {};\r\n \t\textend(proto.options, props.options);\r\n \t}\r\n\r\n \tproto._initHooks = [];\r\n\r\n \t// add method for calling all hooks\r\n \tproto.callInitHooks = function () {\r\n\r\n \t\tif (this._initHooksCalled) { return; }\r\n\r\n \t\tif (parentProto.callInitHooks) {\r\n \t\t\tparentProto.callInitHooks.call(this);\r\n \t\t}\r\n\r\n \t\tthis._initHooksCalled = true;\r\n\r\n \t\tfor (var i = 0, len = proto._initHooks.length; i < len; i++) {\r\n \t\t\tproto._initHooks[i].call(this);\r\n \t\t}\r\n \t};\r\n\r\n \treturn NewClass;\r\n };\r\n\r\n\r\n // @function include(properties: Object): this\r\n // [Includes a mixin](#class-includes) into the current class.\r\n Class.include = function (props) {\r\n \tvar parentOptions = this.prototype.options;\r\n \textend(this.prototype, props);\r\n \tif (props.options) {\r\n \t\tthis.prototype.options = parentOptions;\r\n \t\tthis.mergeOptions(props.options);\r\n \t}\r\n \treturn this;\r\n };\r\n\r\n // @function mergeOptions(options: Object): this\r\n // [Merges `options`](#class-options) into the defaults of the class.\r\n Class.mergeOptions = function (options) {\r\n \textend(this.prototype.options, options);\r\n \treturn this;\r\n };\r\n\r\n // @function addInitHook(fn: Function): this\r\n // Adds a [constructor hook](#class-constructor-hooks) to the class.\r\n Class.addInitHook = function (fn) { // (Function) || (String, args...)\r\n \tvar args = Array.prototype.slice.call(arguments, 1);\r\n\r\n \tvar init = typeof fn === 'function' ? fn : function () {\r\n \t\tthis[fn].apply(this, args);\r\n \t};\r\n\r\n \tthis.prototype._initHooks = this.prototype._initHooks || [];\r\n \tthis.prototype._initHooks.push(init);\r\n \treturn this;\r\n };\r\n\r\n function checkDeprecatedMixinEvents(includes) {\r\n \t/* global L: true */\r\n \tif (typeof L === 'undefined' || !L || !L.Mixin) { return; }\r\n\r\n \tincludes = isArray(includes) ? includes : [includes];\r\n\r\n \tfor (var i = 0; i < includes.length; i++) {\r\n \t\tif (includes[i] === L.Mixin.Events) {\r\n \t\t\tconsole.warn('Deprecated include of L.Mixin.Events: ' +\r\n \t\t\t\t'this property will be removed in future releases, ' +\r\n \t\t\t\t'please inherit from L.Evented instead.', new Error().stack);\r\n \t\t}\r\n \t}\r\n }\n\n /*\r\n * @class Evented\r\n * @aka L.Evented\r\n * @inherits Class\r\n *\r\n * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * map.on('click', function(e) {\r\n * \talert(e.latlng);\r\n * } );\r\n * ```\r\n *\r\n * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:\r\n *\r\n * ```js\r\n * function onClick(e) { ... }\r\n *\r\n * map.on('click', onClick);\r\n * map.off('click', onClick);\r\n * ```\r\n */\r\n\r\n var Events = {\r\n \t/* @method on(type: String, fn: Function, context?: Object): this\r\n \t * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).\r\n \t *\r\n \t * @alternative\r\n \t * @method on(eventMap: Object): this\r\n \t * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`\r\n \t */\r\n \ton: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t/* @method off(type: String, fn?: Function, context?: Object): this\r\n \t * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.\r\n \t *\r\n \t * @alternative\r\n \t * @method off(eventMap: Object): this\r\n \t * Removes a set of type/listener pairs.\r\n \t *\r\n \t * @alternative\r\n \t * @method off: this\r\n \t * Removes all listeners to all events on the object. This includes implicitly attached events.\r\n \t */\r\n \toff: function (types, fn, context) {\r\n\r\n \t\tif (!arguments.length) {\r\n \t\t\t// clear all listeners if called without arguments\r\n \t\t\tdelete this._events;\r\n\r\n \t\t} else if (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\tthis._off(type, types[type], fn);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tvar removeAll = arguments.length === 1;\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tif (removeAll) {\r\n \t\t\t\t\tthis._off(types[i]);\r\n \t\t\t\t} else {\r\n \t\t\t\t\tthis._off(types[i], fn, context);\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// attach listener (without syntactic sugar now)\r\n \t_on: function (type, fn, context, _once) {\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// check if fn already there\r\n \t\tif (this._listens(type, fn, context) !== false) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar newListener = {fn: fn, ctx: context};\r\n \t\tif (_once) {\r\n \t\t\tnewListener.once = true;\r\n \t\t}\r\n\r\n \t\tthis._events = this._events || {};\r\n \t\tthis._events[type] = this._events[type] || [];\r\n \t\tthis._events[type].push(newListener);\r\n \t},\r\n\r\n \t_off: function (type, fn, context) {\r\n \t\tvar listeners,\r\n \t\t i,\r\n \t\t len;\r\n\r\n \t\tif (!this._events) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tlisteners = this._events[type];\r\n \t\tif (!listeners) {\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (arguments.length === 1) { // remove all\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// Set all removed listeners to noop\r\n \t\t\t\t// so they are not called if remove happens in fire\r\n \t\t\t\tfor (i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tlisteners[i].fn = falseFn;\r\n \t\t\t\t}\r\n \t\t\t}\r\n \t\t\t// clear all listeners for a type if function isn't specified\r\n \t\t\tdelete this._events[type];\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tconsole.warn('wrong listener type: ' + typeof fn);\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// find fn and remove it\r\n \t\tvar index = this._listens(type, fn, context);\r\n \t\tif (index !== false) {\r\n \t\t\tvar listener = listeners[index];\r\n \t\t\tif (this._firingCount) {\r\n \t\t\t\t// set the removed listener to noop so that's not called if remove happens in fire\r\n \t\t\t\tlistener.fn = falseFn;\r\n\r\n \t\t\t\t/* copy array in case events are being fired */\r\n \t\t\t\tthis._events[type] = listeners = listeners.slice();\r\n \t\t\t}\r\n \t\t\tlisteners.splice(index, 1);\r\n \t\t}\r\n \t},\r\n\r\n \t// @method fire(type: String, data?: Object, propagate?: Boolean): this\r\n \t// Fires an event of the specified type. You can optionally provide a data\r\n \t// object — the first argument of the listener function will contain its\r\n \t// properties. The event can optionally be propagated to event parents.\r\n \tfire: function (type, data, propagate) {\r\n \t\tif (!this.listens(type, propagate)) { return this; }\r\n\r\n \t\tvar event = extend({}, data, {\r\n \t\t\ttype: type,\r\n \t\t\ttarget: this,\r\n \t\t\tsourceTarget: data && data.sourceTarget || this\r\n \t\t});\r\n\r\n \t\tif (this._events) {\r\n \t\t\tvar listeners = this._events[type];\r\n \t\t\tif (listeners) {\r\n \t\t\t\tthis._firingCount = (this._firingCount + 1) || 1;\r\n \t\t\t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\t\t\tvar l = listeners[i];\r\n \t\t\t\t\t// off overwrites l.fn, so we need to copy fn to a var\r\n \t\t\t\t\tvar fn = l.fn;\r\n \t\t\t\t\tif (l.once) {\r\n \t\t\t\t\t\tthis.off(type, fn, l.ctx);\r\n \t\t\t\t\t}\r\n \t\t\t\t\tfn.call(l.ctx || this, event);\r\n \t\t\t\t}\r\n\r\n \t\t\t\tthis._firingCount--;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// propagate the event to parents (set with addEventParent)\r\n \t\t\tthis._propagateEvent(event);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method listens(type: String, propagate?: Boolean): Boolean\r\n \t// @method listens(type: String, fn: Function, context?: Object, propagate?: Boolean): Boolean\r\n \t// Returns `true` if a particular event type has any listeners attached to it.\r\n \t// The verification can optionally be propagated, it will return `true` if parents have the listener attached to it.\r\n \tlistens: function (type, fn, context, propagate) {\r\n \t\tif (typeof type !== 'string') {\r\n \t\t\tconsole.warn('\"string\" type argument expected');\r\n \t\t}\r\n\r\n \t\t// we don't overwrite the input `fn` value, because we need to use it for propagation\r\n \t\tvar _fn = fn;\r\n \t\tif (typeof fn !== 'function') {\r\n \t\t\tpropagate = !!fn;\r\n \t\t\t_fn = undefined;\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events && this._events[type];\r\n \t\tif (listeners && listeners.length) {\r\n \t\t\tif (this._listens(type, _fn, context) !== false) {\r\n \t\t\t\treturn true;\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\tif (propagate) {\r\n \t\t\t// also check parents for listeners if event propagates\r\n \t\t\tfor (var id in this._eventParents) {\r\n \t\t\t\tif (this._eventParents[id].listens(type, fn, context, propagate)) { return true; }\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n \t},\r\n\r\n \t// returns the index (number) or false\r\n \t_listens: function (type, fn, context) {\r\n \t\tif (!this._events) {\r\n \t\t\treturn false;\r\n \t\t}\r\n\r\n \t\tvar listeners = this._events[type] || [];\r\n \t\tif (!fn) {\r\n \t\t\treturn !!listeners.length;\r\n \t\t}\r\n\r\n \t\tif (context === this) {\r\n \t\t\t// Less memory footprint.\r\n \t\t\tcontext = undefined;\r\n \t\t}\r\n\r\n \t\tfor (var i = 0, len = listeners.length; i < len; i++) {\r\n \t\t\tif (listeners[i].fn === fn && listeners[i].ctx === context) {\r\n \t\t\t\treturn i;\r\n \t\t\t}\r\n \t\t}\r\n \t\treturn false;\r\n\r\n \t},\r\n\r\n \t// @method once(…): this\r\n \t// Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.\r\n \tonce: function (types, fn, context) {\r\n\r\n \t\t// types can be a map of types/handlers\r\n \t\tif (typeof types === 'object') {\r\n \t\t\tfor (var type in types) {\r\n \t\t\t\t// we don't process space-separated events here for performance;\r\n \t\t\t\t// it's a hot path since Layer uses the on(obj) syntax\r\n \t\t\t\tthis._on(type, types[type], fn, true);\r\n \t\t\t}\r\n\r\n \t\t} else {\r\n \t\t\t// types can be a string of space-separated words\r\n \t\t\ttypes = splitWords(types);\r\n\r\n \t\t\tfor (var i = 0, len = types.length; i < len; i++) {\r\n \t\t\t\tthis._on(types[i], fn, context, true);\r\n \t\t\t}\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method addEventParent(obj: Evented): this\r\n \t// Adds an event parent - an `Evented` that will receive propagated events\r\n \taddEventParent: function (obj) {\r\n \t\tthis._eventParents = this._eventParents || {};\r\n \t\tthis._eventParents[stamp(obj)] = obj;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method removeEventParent(obj: Evented): this\r\n \t// Removes an event parent, so it will stop receiving propagated events\r\n \tremoveEventParent: function (obj) {\r\n \t\tif (this._eventParents) {\r\n \t\t\tdelete this._eventParents[stamp(obj)];\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t_propagateEvent: function (e) {\r\n \t\tfor (var id in this._eventParents) {\r\n \t\t\tthis._eventParents[id].fire(e.type, extend({\r\n \t\t\t\tlayer: e.target,\r\n \t\t\t\tpropagatedFrom: e.target\r\n \t\t\t}, e), true);\r\n \t\t}\r\n \t}\r\n };\r\n\r\n // aliases; we should ditch those eventually\r\n\r\n // @method addEventListener(…): this\r\n // Alias to [`on(…)`](#evented-on)\r\n Events.addEventListener = Events.on;\r\n\r\n // @method removeEventListener(…): this\r\n // Alias to [`off(…)`](#evented-off)\r\n\r\n // @method clearAllEventListeners(…): this\r\n // Alias to [`off()`](#evented-off)\r\n Events.removeEventListener = Events.clearAllEventListeners = Events.off;\r\n\r\n // @method addOneTimeEventListener(…): this\r\n // Alias to [`once(…)`](#evented-once)\r\n Events.addOneTimeEventListener = Events.once;\r\n\r\n // @method fireEvent(…): this\r\n // Alias to [`fire(…)`](#evented-fire)\r\n Events.fireEvent = Events.fire;\r\n\r\n // @method hasEventListeners(…): Boolean\r\n // Alias to [`listens(…)`](#evented-listens)\r\n Events.hasEventListeners = Events.listens;\r\n\r\n var Evented = Class.extend(Events);\n\n /*\r\n * @class Point\r\n * @aka L.Point\r\n *\r\n * Represents a point with `x` and `y` coordinates in pixels.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var point = L.point(200, 300);\r\n * ```\r\n *\r\n * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```js\r\n * map.panBy([200, 300]);\r\n * map.panBy(L.point(200, 300));\r\n * ```\r\n *\r\n * Note that `Point` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Point(x, y, round) {\r\n \t// @property x: Number; The `x` coordinate of the point\r\n \tthis.x = (round ? Math.round(x) : x);\r\n \t// @property y: Number; The `y` coordinate of the point\r\n \tthis.y = (round ? Math.round(y) : y);\r\n }\r\n\r\n var trunc = Math.trunc || function (v) {\r\n \treturn v > 0 ? Math.floor(v) : Math.ceil(v);\r\n };\r\n\r\n Point.prototype = {\r\n\r\n \t// @method clone(): Point\r\n \t// Returns a copy of the current point.\r\n \tclone: function () {\r\n \t\treturn new Point(this.x, this.y);\r\n \t},\r\n\r\n \t// @method add(otherPoint: Point): Point\r\n \t// Returns the result of addition of the current and the given points.\r\n \tadd: function (point) {\r\n \t\t// non-destructive, returns a new point\r\n \t\treturn this.clone()._add(toPoint(point));\r\n \t},\r\n\r\n \t_add: function (point) {\r\n \t\t// destructive, used directly for performance in situations where it's safe to modify existing point\r\n \t\tthis.x += point.x;\r\n \t\tthis.y += point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method subtract(otherPoint: Point): Point\r\n \t// Returns the result of subtraction of the given point from the current.\r\n \tsubtract: function (point) {\r\n \t\treturn this.clone()._subtract(toPoint(point));\r\n \t},\r\n\r\n \t_subtract: function (point) {\r\n \t\tthis.x -= point.x;\r\n \t\tthis.y -= point.y;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method divideBy(num: Number): Point\r\n \t// Returns the result of division of the current point by the given number.\r\n \tdivideBy: function (num) {\r\n \t\treturn this.clone()._divideBy(num);\r\n \t},\r\n\r\n \t_divideBy: function (num) {\r\n \t\tthis.x /= num;\r\n \t\tthis.y /= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method multiplyBy(num: Number): Point\r\n \t// Returns the result of multiplication of the current point by the given number.\r\n \tmultiplyBy: function (num) {\r\n \t\treturn this.clone()._multiplyBy(num);\r\n \t},\r\n\r\n \t_multiplyBy: function (num) {\r\n \t\tthis.x *= num;\r\n \t\tthis.y *= num;\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method scaleBy(scale: Point): Point\r\n \t// Multiply each coordinate of the current point by each coordinate of\r\n \t// `scale`. In linear algebra terms, multiply the point by the\r\n \t// [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)\r\n \t// defined by `scale`.\r\n \tscaleBy: function (point) {\r\n \t\treturn new Point(this.x * point.x, this.y * point.y);\r\n \t},\r\n\r\n \t// @method unscaleBy(scale: Point): Point\r\n \t// Inverse of `scaleBy`. Divide each coordinate of the current point by\r\n \t// each coordinate of `scale`.\r\n \tunscaleBy: function (point) {\r\n \t\treturn new Point(this.x / point.x, this.y / point.y);\r\n \t},\r\n\r\n \t// @method round(): Point\r\n \t// Returns a copy of the current point with rounded coordinates.\r\n \tround: function () {\r\n \t\treturn this.clone()._round();\r\n \t},\r\n\r\n \t_round: function () {\r\n \t\tthis.x = Math.round(this.x);\r\n \t\tthis.y = Math.round(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method floor(): Point\r\n \t// Returns a copy of the current point with floored coordinates (rounded down).\r\n \tfloor: function () {\r\n \t\treturn this.clone()._floor();\r\n \t},\r\n\r\n \t_floor: function () {\r\n \t\tthis.x = Math.floor(this.x);\r\n \t\tthis.y = Math.floor(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method ceil(): Point\r\n \t// Returns a copy of the current point with ceiled coordinates (rounded up).\r\n \tceil: function () {\r\n \t\treturn this.clone()._ceil();\r\n \t},\r\n\r\n \t_ceil: function () {\r\n \t\tthis.x = Math.ceil(this.x);\r\n \t\tthis.y = Math.ceil(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method trunc(): Point\r\n \t// Returns a copy of the current point with truncated coordinates (rounded towards zero).\r\n \ttrunc: function () {\r\n \t\treturn this.clone()._trunc();\r\n \t},\r\n\r\n \t_trunc: function () {\r\n \t\tthis.x = trunc(this.x);\r\n \t\tthis.y = trunc(this.y);\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method distanceTo(otherPoint: Point): Number\r\n \t// Returns the cartesian distance between the current and the given points.\r\n \tdistanceTo: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\tvar x = point.x - this.x,\r\n \t\t y = point.y - this.y;\r\n\r\n \t\treturn Math.sqrt(x * x + y * y);\r\n \t},\r\n\r\n \t// @method equals(otherPoint: Point): Boolean\r\n \t// Returns `true` if the given point has the same coordinates.\r\n \tequals: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn point.x === this.x &&\r\n \t\t point.y === this.y;\r\n \t},\r\n\r\n \t// @method contains(otherPoint: Point): Boolean\r\n \t// Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).\r\n \tcontains: function (point) {\r\n \t\tpoint = toPoint(point);\r\n\r\n \t\treturn Math.abs(point.x) <= Math.abs(this.x) &&\r\n \t\t Math.abs(point.y) <= Math.abs(this.y);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point for debugging purposes.\r\n \ttoString: function () {\r\n \t\treturn 'Point(' +\r\n \t\t formatNum(this.x) + ', ' +\r\n \t\t formatNum(this.y) + ')';\r\n \t}\r\n };\r\n\r\n // @factory L.point(x: Number, y: Number, round?: Boolean)\r\n // Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Number[])\r\n // Expects an array of the form `[x, y]` instead.\r\n\r\n // @alternative\r\n // @factory L.point(coords: Object)\r\n // Expects a plain object of the form `{x: Number, y: Number}` instead.\r\n function toPoint(x, y, round) {\r\n \tif (x instanceof Point) {\r\n \t\treturn x;\r\n \t}\r\n \tif (isArray(x)) {\r\n \t\treturn new Point(x[0], x[1]);\r\n \t}\r\n \tif (x === undefined || x === null) {\r\n \t\treturn x;\r\n \t}\r\n \tif (typeof x === 'object' && 'x' in x && 'y' in x) {\r\n \t\treturn new Point(x.x, x.y);\r\n \t}\r\n \treturn new Point(x, y, round);\r\n }\n\n /*\r\n * @class Bounds\r\n * @aka L.Bounds\r\n *\r\n * Represents a rectangular area in pixel coordinates.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var p1 = L.point(10, 10),\r\n * p2 = L.point(40, 60),\r\n * bounds = L.bounds(p1, p2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * otherBounds.intersects([[10, 10], [40, 60]]);\r\n * ```\r\n *\r\n * Note that `Bounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function Bounds(a, b) {\r\n \tif (!a) { return; }\r\n\r\n \tvar points = b ? [a, b] : a;\r\n\r\n \tfor (var i = 0, len = points.length; i < len; i++) {\r\n \t\tthis.extend(points[i]);\r\n \t}\r\n }\r\n\r\n Bounds.prototype = {\r\n \t// @method extend(point: Point): this\r\n \t// Extends the bounds to contain the given point.\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: Bounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar min2, max2;\r\n \t\tif (!obj) { return this; }\r\n\r\n \t\tif (obj instanceof Point || typeof obj[0] === 'number' || 'x' in obj) {\r\n \t\t\tmin2 = max2 = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t\tmin2 = obj.min;\r\n \t\t\tmax2 = obj.max;\r\n\r\n \t\t\tif (!min2 || !max2) { return this; }\r\n \t\t}\r\n\r\n \t\t// @property min: Point\r\n \t\t// The top left corner of the rectangle.\r\n \t\t// @property max: Point\r\n \t\t// The bottom right corner of the rectangle.\r\n \t\tif (!this.min && !this.max) {\r\n \t\t\tthis.min = min2.clone();\r\n \t\t\tthis.max = max2.clone();\r\n \t\t} else {\r\n \t\t\tthis.min.x = Math.min(min2.x, this.min.x);\r\n \t\t\tthis.max.x = Math.max(max2.x, this.max.x);\r\n \t\t\tthis.min.y = Math.min(min2.y, this.min.y);\r\n \t\t\tthis.max.y = Math.max(max2.y, this.max.y);\r\n \t\t}\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method getCenter(round?: Boolean): Point\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function (round) {\r\n \t\treturn toPoint(\r\n \t\t (this.min.x + this.max.x) / 2,\r\n \t\t (this.min.y + this.max.y) / 2, round);\r\n \t},\r\n\r\n \t// @method getBottomLeft(): Point\r\n \t// Returns the bottom-left point of the bounds.\r\n \tgetBottomLeft: function () {\r\n \t\treturn toPoint(this.min.x, this.max.y);\r\n \t},\r\n\r\n \t// @method getTopRight(): Point\r\n \t// Returns the top-right point of the bounds.\r\n \tgetTopRight: function () { // -> Point\r\n \t\treturn toPoint(this.max.x, this.min.y);\r\n \t},\r\n\r\n \t// @method getTopLeft(): Point\r\n \t// Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).\r\n \tgetTopLeft: function () {\r\n \t\treturn this.min; // left, top\r\n \t},\r\n\r\n \t// @method getBottomRight(): Point\r\n \t// Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).\r\n \tgetBottomRight: function () {\r\n \t\treturn this.max; // right, bottom\r\n \t},\r\n\r\n \t// @method getSize(): Point\r\n \t// Returns the size of the given bounds\r\n \tgetSize: function () {\r\n \t\treturn this.max.subtract(this.min);\r\n \t},\r\n\r\n \t// @method contains(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n \t// @alternative\r\n \t// @method contains(point: Point): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) {\r\n \t\tvar min, max;\r\n\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof Point) {\r\n \t\t\tobj = toPoint(obj);\r\n \t\t} else {\r\n \t\t\tobj = toBounds(obj);\r\n \t\t}\r\n\r\n \t\tif (obj instanceof Bounds) {\r\n \t\t\tmin = obj.min;\r\n \t\t\tmax = obj.max;\r\n \t\t} else {\r\n \t\t\tmin = max = obj;\r\n \t\t}\r\n\r\n \t\treturn (min.x >= this.min.x) &&\r\n \t\t (max.x <= this.max.x) &&\r\n \t\t (min.y >= this.min.y) &&\r\n \t\t (max.y <= this.max.y);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds\r\n \t// intersect if they have at least one point in common.\r\n \tintersects: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xIntersects = (max2.x >= min.x) && (min2.x <= max.x),\r\n \t\t yIntersects = (max2.y >= min.y) && (min2.y <= max.y);\r\n\r\n \t\treturn xIntersects && yIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds\r\n \t// overlap if their intersection is an area.\r\n \toverlaps: function (bounds) { // (Bounds) -> Boolean\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\tvar min = this.min,\r\n \t\t max = this.max,\r\n \t\t min2 = bounds.min,\r\n \t\t max2 = bounds.max,\r\n \t\t xOverlaps = (max2.x > min.x) && (min2.x < max.x),\r\n \t\t yOverlaps = (max2.y > min.y) && (min2.y < max.y);\r\n\r\n \t\treturn xOverlaps && yOverlaps;\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this.min && this.max);\r\n \t},\r\n\r\n\r\n \t// @method pad(bufferRatio: Number): Bounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar min = this.min,\r\n \t\tmax = this.max,\r\n \t\theightBuffer = Math.abs(min.x - max.x) * bufferRatio,\r\n \t\twidthBuffer = Math.abs(min.y - max.y) * bufferRatio;\r\n\r\n\r\n \t\treturn toBounds(\r\n \t\t\ttoPoint(min.x - heightBuffer, min.y - widthBuffer),\r\n \t\t\ttoPoint(max.x + heightBuffer, max.y + widthBuffer));\r\n \t},\r\n\r\n\r\n \t// @method equals(otherBounds: Bounds): Boolean\r\n \t// Returns `true` if the rectangle is equivalent to the given bounds.\r\n \tequals: function (bounds) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toBounds(bounds);\r\n\r\n \t\treturn this.min.equals(bounds.getTopLeft()) &&\r\n \t\t\tthis.max.equals(bounds.getBottomRight());\r\n \t},\r\n };\r\n\r\n\r\n // @factory L.bounds(corner1: Point, corner2: Point)\r\n // Creates a Bounds object from two corners coordinate pairs.\r\n // @alternative\r\n // @factory L.bounds(points: Point[])\r\n // Creates a Bounds object from the given array of points.\r\n function toBounds(a, b) {\r\n \tif (!a || a instanceof Bounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new Bounds(a, b);\r\n }\n\n /*\r\n * @class LatLngBounds\r\n * @aka L.LatLngBounds\r\n *\r\n * Represents a rectangular geographical area on a map.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var corner1 = L.latLng(40.712, -74.227),\r\n * corner2 = L.latLng(40.774, -74.125),\r\n * bounds = L.latLngBounds(corner1, corner2);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:\r\n *\r\n * ```js\r\n * map.fitBounds([\r\n * \t[40.712, -74.227],\r\n * \t[40.774, -74.125]\r\n * ]);\r\n * ```\r\n *\r\n * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.\r\n *\r\n * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])\r\n \tif (!corner1) { return; }\r\n\r\n \tvar latlngs = corner2 ? [corner1, corner2] : corner1;\r\n\r\n \tfor (var i = 0, len = latlngs.length; i < len; i++) {\r\n \t\tthis.extend(latlngs[i]);\r\n \t}\r\n }\r\n\r\n LatLngBounds.prototype = {\r\n\r\n \t// @method extend(latlng: LatLng): this\r\n \t// Extend the bounds to contain the given point\r\n\r\n \t// @alternative\r\n \t// @method extend(otherBounds: LatLngBounds): this\r\n \t// Extend the bounds to contain the given bounds\r\n \textend: function (obj) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLng) {\r\n \t\t\tsw2 = obj;\r\n \t\t\tne2 = obj;\r\n\r\n \t\t} else if (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj._southWest;\r\n \t\t\tne2 = obj._northEast;\r\n\r\n \t\t\tif (!sw2 || !ne2) { return this; }\r\n\r\n \t\t} else {\r\n \t\t\treturn obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;\r\n \t\t}\r\n\r\n \t\tif (!sw && !ne) {\r\n \t\t\tthis._southWest = new LatLng(sw2.lat, sw2.lng);\r\n \t\t\tthis._northEast = new LatLng(ne2.lat, ne2.lng);\r\n \t\t} else {\r\n \t\t\tsw.lat = Math.min(sw2.lat, sw.lat);\r\n \t\t\tsw.lng = Math.min(sw2.lng, sw.lng);\r\n \t\t\tne.lat = Math.max(ne2.lat, ne.lat);\r\n \t\t\tne.lng = Math.max(ne2.lng, ne.lng);\r\n \t\t}\r\n\r\n \t\treturn this;\r\n \t},\r\n\r\n \t// @method pad(bufferRatio: Number): LatLngBounds\r\n \t// Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.\r\n \t// For example, a ratio of 0.5 extends the bounds by 50% in each direction.\r\n \t// Negative values will retract the bounds.\r\n \tpad: function (bufferRatio) {\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,\r\n \t\t widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;\r\n\r\n \t\treturn new LatLngBounds(\r\n \t\t new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),\r\n \t\t new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));\r\n \t},\r\n\r\n \t// @method getCenter(): LatLng\r\n \t// Returns the center point of the bounds.\r\n \tgetCenter: function () {\r\n \t\treturn new LatLng(\r\n \t\t (this._southWest.lat + this._northEast.lat) / 2,\r\n \t\t (this._southWest.lng + this._northEast.lng) / 2);\r\n \t},\r\n\r\n \t// @method getSouthWest(): LatLng\r\n \t// Returns the south-west point of the bounds.\r\n \tgetSouthWest: function () {\r\n \t\treturn this._southWest;\r\n \t},\r\n\r\n \t// @method getNorthEast(): LatLng\r\n \t// Returns the north-east point of the bounds.\r\n \tgetNorthEast: function () {\r\n \t\treturn this._northEast;\r\n \t},\r\n\r\n \t// @method getNorthWest(): LatLng\r\n \t// Returns the north-west point of the bounds.\r\n \tgetNorthWest: function () {\r\n \t\treturn new LatLng(this.getNorth(), this.getWest());\r\n \t},\r\n\r\n \t// @method getSouthEast(): LatLng\r\n \t// Returns the south-east point of the bounds.\r\n \tgetSouthEast: function () {\r\n \t\treturn new LatLng(this.getSouth(), this.getEast());\r\n \t},\r\n\r\n \t// @method getWest(): Number\r\n \t// Returns the west longitude of the bounds\r\n \tgetWest: function () {\r\n \t\treturn this._southWest.lng;\r\n \t},\r\n\r\n \t// @method getSouth(): Number\r\n \t// Returns the south latitude of the bounds\r\n \tgetSouth: function () {\r\n \t\treturn this._southWest.lat;\r\n \t},\r\n\r\n \t// @method getEast(): Number\r\n \t// Returns the east longitude of the bounds\r\n \tgetEast: function () {\r\n \t\treturn this._northEast.lng;\r\n \t},\r\n\r\n \t// @method getNorth(): Number\r\n \t// Returns the north latitude of the bounds\r\n \tgetNorth: function () {\r\n \t\treturn this._northEast.lat;\r\n \t},\r\n\r\n \t// @method contains(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle contains the given one.\r\n\r\n \t// @alternative\r\n \t// @method contains (latlng: LatLng): Boolean\r\n \t// Returns `true` if the rectangle contains the given point.\r\n \tcontains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean\r\n \t\tif (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {\r\n \t\t\tobj = toLatLng(obj);\r\n \t\t} else {\r\n \t\t\tobj = toLatLngBounds(obj);\r\n \t\t}\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2, ne2;\r\n\r\n \t\tif (obj instanceof LatLngBounds) {\r\n \t\t\tsw2 = obj.getSouthWest();\r\n \t\t\tne2 = obj.getNorthEast();\r\n \t\t} else {\r\n \t\t\tsw2 = ne2 = obj;\r\n \t\t}\r\n\r\n \t\treturn (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&\r\n \t\t (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);\r\n \t},\r\n\r\n \t// @method intersects(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.\r\n \tintersects: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),\r\n \t\t lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);\r\n\r\n \t\treturn latIntersects && lngIntersects;\r\n \t},\r\n\r\n \t// @method overlaps(otherBounds: LatLngBounds): Boolean\r\n \t// Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.\r\n \toverlaps: function (bounds) {\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\tvar sw = this._southWest,\r\n \t\t ne = this._northEast,\r\n \t\t sw2 = bounds.getSouthWest(),\r\n \t\t ne2 = bounds.getNorthEast(),\r\n\r\n \t\t latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),\r\n \t\t lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);\r\n\r\n \t\treturn latOverlaps && lngOverlaps;\r\n \t},\r\n\r\n \t// @method toBBoxString(): String\r\n \t// Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.\r\n \ttoBBoxString: function () {\r\n \t\treturn [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');\r\n \t},\r\n\r\n \t// @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (bounds, maxMargin) {\r\n \t\tif (!bounds) { return false; }\r\n\r\n \t\tbounds = toLatLngBounds(bounds);\r\n\r\n \t\treturn this._southWest.equals(bounds.getSouthWest(), maxMargin) &&\r\n \t\t this._northEast.equals(bounds.getNorthEast(), maxMargin);\r\n \t},\r\n\r\n \t// @method isValid(): Boolean\r\n \t// Returns `true` if the bounds are properly initialized.\r\n \tisValid: function () {\r\n \t\treturn !!(this._southWest && this._northEast);\r\n \t}\r\n };\r\n\r\n // TODO International date line?\r\n\r\n // @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)\r\n // Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.\r\n\r\n // @alternative\r\n // @factory L.latLngBounds(latlngs: LatLng[])\r\n // Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).\r\n function toLatLngBounds(a, b) {\r\n \tif (a instanceof LatLngBounds) {\r\n \t\treturn a;\r\n \t}\r\n \treturn new LatLngBounds(a, b);\r\n }\n\n /* @class LatLng\r\n * @aka L.LatLng\r\n *\r\n * Represents a geographical point with a certain latitude and longitude.\r\n *\r\n * @example\r\n *\r\n * ```\r\n * var latlng = L.latLng(50.5, 30.5);\r\n * ```\r\n *\r\n * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:\r\n *\r\n * ```\r\n * map.panTo([50, 30]);\r\n * map.panTo({lon: 30, lat: 50});\r\n * map.panTo({lat: 50, lng: 30});\r\n * map.panTo(L.latLng(50, 30));\r\n * ```\r\n *\r\n * Note that `LatLng` does not inherit from Leaflet's `Class` object,\r\n * which means new classes can't inherit from it, and new methods\r\n * can't be added to it with the `include` function.\r\n */\r\n\r\n function LatLng(lat, lng, alt) {\r\n \tif (isNaN(lat) || isNaN(lng)) {\r\n \t\tthrow new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');\r\n \t}\r\n\r\n \t// @property lat: Number\r\n \t// Latitude in degrees\r\n \tthis.lat = +lat;\r\n\r\n \t// @property lng: Number\r\n \t// Longitude in degrees\r\n \tthis.lng = +lng;\r\n\r\n \t// @property alt: Number\r\n \t// Altitude in meters (optional)\r\n \tif (alt !== undefined) {\r\n \t\tthis.alt = +alt;\r\n \t}\r\n }\r\n\r\n LatLng.prototype = {\r\n \t// @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean\r\n \t// Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.\r\n \tequals: function (obj, maxMargin) {\r\n \t\tif (!obj) { return false; }\r\n\r\n \t\tobj = toLatLng(obj);\r\n\r\n \t\tvar margin = Math.max(\r\n \t\t Math.abs(this.lat - obj.lat),\r\n \t\t Math.abs(this.lng - obj.lng));\r\n\r\n \t\treturn margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);\r\n \t},\r\n\r\n \t// @method toString(): String\r\n \t// Returns a string representation of the point (for debugging purposes).\r\n \ttoString: function (precision) {\r\n \t\treturn 'LatLng(' +\r\n \t\t formatNum(this.lat, precision) + ', ' +\r\n \t\t formatNum(this.lng, precision) + ')';\r\n \t},\r\n\r\n \t// @method distanceTo(otherLatLng: LatLng): Number\r\n \t// Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).\r\n \tdistanceTo: function (other) {\r\n \t\treturn Earth.distance(this, toLatLng(other));\r\n \t},\r\n\r\n \t// @method wrap(): LatLng\r\n \t// Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.\r\n \twrap: function () {\r\n \t\treturn Earth.wrapLatLng(this);\r\n \t},\r\n\r\n \t// @method toBounds(sizeInMeters: Number): LatLngBounds\r\n \t// Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.\r\n \ttoBounds: function (sizeInMeters) {\r\n \t\tvar latAccuracy = 180 * sizeInMeters / 40075017,\r\n \t\t lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);\r\n\r\n \t\treturn toLatLngBounds(\r\n \t\t [this.lat - latAccuracy, this.lng - lngAccuracy],\r\n \t\t [this.lat + latAccuracy, this.lng + lngAccuracy]);\r\n \t},\r\n\r\n \tclone: function () {\r\n \t\treturn new LatLng(this.lat, this.lng, this.alt);\r\n \t}\r\n };\r\n\r\n\r\n\r\n // @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng\r\n // Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Array): LatLng\r\n // Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.\r\n\r\n // @alternative\r\n // @factory L.latLng(coords: Object): LatLng\r\n // Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.\r\n\r\n function toLatLng(a, b, c) {\r\n \tif (a instanceof LatLng) {\r\n \t\treturn a;\r\n \t}\r\n \tif (isArray(a) && typeof a[0] !== 'object') {\r\n \t\tif (a.length === 3) {\r\n \t\t\treturn new LatLng(a[0], a[1], a[2]);\r\n \t\t}\r\n \t\tif (a.length === 2) {\r\n \t\t\treturn new LatLng(a[0], a[1]);\r\n \t\t}\r\n \t\treturn null;\r\n \t}\r\n \tif (a === undefined || a === null) {\r\n \t\treturn a;\r\n \t}\r\n \tif (typeof a === 'object' && 'lat' in a) {\r\n \t\treturn new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);\r\n \t}\r\n \tif (b === undefined) {\r\n \t\treturn null;\r\n \t}\r\n \treturn new LatLng(a, b, c);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.Base\r\n * Object that defines coordinate reference systems for projecting\r\n * geographical points into pixel (screen) coordinates and back (and to\r\n * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See\r\n * [spatial reference system](https://en.wikipedia.org/wiki/Spatial_reference_system).\r\n *\r\n * Leaflet defines the most usual CRSs by default. If you want to use a\r\n * CRS not defined by default, take a look at the\r\n * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.\r\n *\r\n * Note that the CRS instances do not inherit from Leaflet's `Class` object,\r\n * and can't be instantiated. Also, new classes can't inherit from them,\r\n * and methods can't be added to them with the `include` function.\r\n */\r\n\r\n var CRS = {\r\n \t// @method latLngToPoint(latlng: LatLng, zoom: Number): Point\r\n \t// Projects geographical coordinates into pixel coordinates for a given zoom.\r\n \tlatLngToPoint: function (latlng, zoom) {\r\n \t\tvar projectedPoint = this.projection.project(latlng),\r\n \t\t scale = this.scale(zoom);\r\n\r\n \t\treturn this.transformation._transform(projectedPoint, scale);\r\n \t},\r\n\r\n \t// @method pointToLatLng(point: Point, zoom: Number): LatLng\r\n \t// The inverse of `latLngToPoint`. Projects pixel coordinates on a given\r\n \t// zoom into geographical coordinates.\r\n \tpointToLatLng: function (point, zoom) {\r\n \t\tvar scale = this.scale(zoom),\r\n \t\t untransformedPoint = this.transformation.untransform(point, scale);\r\n\r\n \t\treturn this.projection.unproject(untransformedPoint);\r\n \t},\r\n\r\n \t// @method project(latlng: LatLng): Point\r\n \t// Projects geographical coordinates into coordinates in units accepted for\r\n \t// this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).\r\n \tproject: function (latlng) {\r\n \t\treturn this.projection.project(latlng);\r\n \t},\r\n\r\n \t// @method unproject(point: Point): LatLng\r\n \t// Given a projected coordinate returns the corresponding LatLng.\r\n \t// The inverse of `project`.\r\n \tunproject: function (point) {\r\n \t\treturn this.projection.unproject(point);\r\n \t},\r\n\r\n \t// @method scale(zoom: Number): Number\r\n \t// Returns the scale used when transforming projected coordinates into\r\n \t// pixel coordinates for a particular zoom. For example, it returns\r\n \t// `256 * 2^zoom` for Mercator-based CRS.\r\n \tscale: function (zoom) {\r\n \t\treturn 256 * Math.pow(2, zoom);\r\n \t},\r\n\r\n \t// @method zoom(scale: Number): Number\r\n \t// Inverse of `scale()`, returns the zoom level corresponding to a scale\r\n \t// factor of `scale`.\r\n \tzoom: function (scale) {\r\n \t\treturn Math.log(scale / 256) / Math.LN2;\r\n \t},\r\n\r\n \t// @method getProjectedBounds(zoom: Number): Bounds\r\n \t// Returns the projection's bounds scaled and transformed for the provided `zoom`.\r\n \tgetProjectedBounds: function (zoom) {\r\n \t\tif (this.infinite) { return null; }\r\n\r\n \t\tvar b = this.projection.bounds,\r\n \t\t s = this.scale(zoom),\r\n \t\t min = this.transformation.transform(b.min, s),\r\n \t\t max = this.transformation.transform(b.max, s);\r\n\r\n \t\treturn new Bounds(min, max);\r\n \t},\r\n\r\n \t// @method distance(latlng1: LatLng, latlng2: LatLng): Number\r\n \t// Returns the distance between two geographical coordinates.\r\n\r\n \t// @property code: String\r\n \t// Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)\r\n \t//\r\n \t// @property wrapLng: Number[]\r\n \t// An array of two numbers defining whether the longitude (horizontal) coordinate\r\n \t// axis wraps around a given range and how. Defaults to `[-180, 180]` in most\r\n \t// geographical CRSs. If `undefined`, the longitude axis does not wrap around.\r\n \t//\r\n \t// @property wrapLat: Number[]\r\n \t// Like `wrapLng`, but for the latitude (vertical) axis.\r\n\r\n \t// wrapLng: [min, max],\r\n \t// wrapLat: [min, max],\r\n\r\n \t// @property infinite: Boolean\r\n \t// If true, the coordinate space will be unbounded (infinite in both axes)\r\n \tinfinite: false,\r\n\r\n \t// @method wrapLatLng(latlng: LatLng): LatLng\r\n \t// Returns a `LatLng` where lat and lng has been wrapped according to the\r\n \t// CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.\r\n \twrapLatLng: function (latlng) {\r\n \t\tvar lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,\r\n \t\t lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,\r\n \t\t alt = latlng.alt;\r\n\r\n \t\treturn new LatLng(lat, lng, alt);\r\n \t},\r\n\r\n \t// @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds\r\n \t// Returns a `LatLngBounds` with the same size as the given one, ensuring\r\n \t// that its center is within the CRS's bounds.\r\n \t// Only accepts actual `L.LatLngBounds` instances, not arrays.\r\n \twrapLatLngBounds: function (bounds) {\r\n \t\tvar center = bounds.getCenter(),\r\n \t\t newCenter = this.wrapLatLng(center),\r\n \t\t latShift = center.lat - newCenter.lat,\r\n \t\t lngShift = center.lng - newCenter.lng;\r\n\r\n \t\tif (latShift === 0 && lngShift === 0) {\r\n \t\t\treturn bounds;\r\n \t\t}\r\n\r\n \t\tvar sw = bounds.getSouthWest(),\r\n \t\t ne = bounds.getNorthEast(),\r\n \t\t newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),\r\n \t\t newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);\r\n\r\n \t\treturn new LatLngBounds(newSw, newNe);\r\n \t}\r\n };\n\n /*\n * @namespace CRS\n * @crs L.CRS.Earth\n *\n * Serves as the base for CRS that are global such that they cover the earth.\n * Can only be used as the base for other CRS and cannot be used directly,\n * since it does not have a `code`, `projection` or `transformation`. `distance()` returns\n * meters.\n */\n\n var Earth = extend({}, CRS, {\n \twrapLng: [-180, 180],\n\n \t// Mean Earth Radius, as recommended for use by\n \t// the International Union of Geodesy and Geophysics,\n \t// see https://rosettacode.org/wiki/Haversine_formula\n \tR: 6371000,\n\n \t// distance between two geographical points using spherical law of cosines approximation\n \tdistance: function (latlng1, latlng2) {\n \t\tvar rad = Math.PI / 180,\n \t\t lat1 = latlng1.lat * rad,\n \t\t lat2 = latlng2.lat * rad,\n \t\t sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),\n \t\t sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),\n \t\t a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,\n \t\t c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n \t\treturn this.R * c;\n \t}\n });\n\n /*\r\n * @namespace Projection\r\n * @projection L.Projection.SphericalMercator\r\n *\r\n * Spherical Mercator projection — the most common projection for online maps,\r\n * used by almost all free and commercial tile providers. Assumes that Earth is\r\n * a sphere. Used by the `EPSG:3857` CRS.\r\n */\r\n\r\n var earthRadius = 6378137;\r\n\r\n var SphericalMercator = {\r\n\r\n \tR: earthRadius,\r\n \tMAX_LATITUDE: 85.0511287798,\r\n\r\n \tproject: function (latlng) {\r\n \t\tvar d = Math.PI / 180,\r\n \t\t max = this.MAX_LATITUDE,\r\n \t\t lat = Math.max(Math.min(max, latlng.lat), -max),\r\n \t\t sin = Math.sin(lat * d);\r\n\r\n \t\treturn new Point(\r\n \t\t\tthis.R * latlng.lng * d,\r\n \t\t\tthis.R * Math.log((1 + sin) / (1 - sin)) / 2);\r\n \t},\r\n\r\n \tunproject: function (point) {\r\n \t\tvar d = 180 / Math.PI;\r\n\r\n \t\treturn new LatLng(\r\n \t\t\t(2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,\r\n \t\t\tpoint.x * d / this.R);\r\n \t},\r\n\r\n \tbounds: (function () {\r\n \t\tvar d = earthRadius * Math.PI;\r\n \t\treturn new Bounds([-d, -d], [d, d]);\r\n \t})()\r\n };\n\n /*\r\n * @class Transformation\r\n * @aka L.Transformation\r\n *\r\n * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`\r\n * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing\r\n * the reverse. Used by Leaflet in its projections code.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * var transformation = L.transformation(2, 5, -1, 10),\r\n * \tp = L.point(1, 2),\r\n * \tp2 = transformation.transform(p), // L.point(7, 8)\r\n * \tp3 = transformation.untransform(p2); // L.point(1, 2)\r\n * ```\r\n */\r\n\r\n\r\n // factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Creates a `Transformation` object with the given coefficients.\r\n function Transformation(a, b, c, d) {\r\n \tif (isArray(a)) {\r\n \t\t// use array properties\r\n \t\tthis._a = a[0];\r\n \t\tthis._b = a[1];\r\n \t\tthis._c = a[2];\r\n \t\tthis._d = a[3];\r\n \t\treturn;\r\n \t}\r\n \tthis._a = a;\r\n \tthis._b = b;\r\n \tthis._c = c;\r\n \tthis._d = d;\r\n }\r\n\r\n Transformation.prototype = {\r\n \t// @method transform(point: Point, scale?: Number): Point\r\n \t// Returns a transformed point, optionally multiplied by the given scale.\r\n \t// Only accepts actual `L.Point` instances, not arrays.\r\n \ttransform: function (point, scale) { // (Point, Number) -> Point\r\n \t\treturn this._transform(point.clone(), scale);\r\n \t},\r\n\r\n \t// destructive transform (faster)\r\n \t_transform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\tpoint.x = scale * (this._a * point.x + this._b);\r\n \t\tpoint.y = scale * (this._c * point.y + this._d);\r\n \t\treturn point;\r\n \t},\r\n\r\n \t// @method untransform(point: Point, scale?: Number): Point\r\n \t// Returns the reverse transformation of the given point, optionally divided\r\n \t// by the given scale. Only accepts actual `L.Point` instances, not arrays.\r\n \tuntransform: function (point, scale) {\r\n \t\tscale = scale || 1;\r\n \t\treturn new Point(\r\n \t\t (point.x / scale - this._b) / this._a,\r\n \t\t (point.y / scale - this._d) / this._c);\r\n \t}\r\n };\r\n\r\n // factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n\r\n // @factory L.transformation(a: Number, b: Number, c: Number, d: Number)\r\n // Instantiates a Transformation object with the given coefficients.\r\n\r\n // @alternative\r\n // @factory L.transformation(coefficients: Array): Transformation\r\n // Expects an coefficients array of the form\r\n // `[a: Number, b: Number, c: Number, d: Number]`.\r\n\r\n function toTransformation(a, b, c, d) {\r\n \treturn new Transformation(a, b, c, d);\r\n }\n\n /*\r\n * @namespace CRS\r\n * @crs L.CRS.EPSG3857\r\n *\r\n * The most common CRS for online maps, used by almost all free and commercial\r\n * tile providers. Uses Spherical Mercator projection. Set in by default in\r\n * Map's `crs` option.\r\n */\r\n\r\n var EPSG3857 = extend({}, Earth, {\r\n \tcode: 'EPSG:3857',\r\n \tprojection: SphericalMercator,\r\n\r\n \ttransformation: (function () {\r\n \t\tvar scale = 0.5 / (Math.PI * SphericalMercator.R);\r\n \t\treturn toTransformation(scale, 0.5, -scale, 0.5);\r\n \t}())\r\n });\r\n\r\n var EPSG900913 = extend({}, EPSG3857, {\r\n \tcode: 'EPSG:900913'\r\n });\n\n // @namespace SVG; @section\n // There are several static functions which can be called without instantiating L.SVG:\n\n // @function create(name: String): SVGElement\n // Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),\n // corresponding to the class name passed. For example, using 'line' will return\n // an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).\n function svgCreate(name) {\n \treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n }\n\n // @function pointsToPath(rings: Point[], closed: Boolean): String\n // Generates a SVG path string for multiple rings, with each ring turning\n // into \"M..L..L..\" instructions\n function pointsToPath(rings, closed) {\n \tvar str = '',\n \ti, j, len, len2, points, p;\n\n \tfor (i = 0, len = rings.length; i < len; i++) {\n \t\tpoints = rings[i];\n\n \t\tfor (j = 0, len2 = points.length; j < len2; j++) {\n \t\t\tp = points[j];\n \t\t\tstr += (j ? 'L' : 'M') + p.x + ' ' + p.y;\n \t\t}\n\n \t\t// closes the ring for polygons; \"x\" is VML syntax\n \t\tstr += closed ? (Browser.svg ? 'z' : 'x') : '';\n \t}\n\n \t// SVG complains about empty path strings\n \treturn str || 'M0 0';\n }\n\n /*\r\n * @namespace Browser\r\n * @aka L.Browser\r\n *\r\n * A namespace with static properties for browser/feature detection used by Leaflet internally.\r\n *\r\n * @example\r\n *\r\n * ```js\r\n * if (L.Browser.ielt9) {\r\n * alert('Upgrade your browser, dude!');\r\n * }\r\n * ```\r\n */\r\n\r\n var style = document.documentElement.style;\r\n\r\n // @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).\r\n var ie = 'ActiveXObject' in window;\r\n\r\n // @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.\r\n var ielt9 = ie && !document.addEventListener;\r\n\r\n // @property edge: Boolean; `true` for the Edge web browser.\r\n var edge = 'msLaunchUri' in navigator && !('documentMode' in document);\r\n\r\n // @property webkit: Boolean;\r\n // `true` for webkit-based browsers like Chrome and Safari (including mobile versions).\r\n var webkit = userAgentContains('webkit');\r\n\r\n // @property android: Boolean\r\n // **Deprecated.** `true` for any browser running on an Android platform.\r\n var android = userAgentContains('android');\r\n\r\n // @property android23: Boolean; **Deprecated.** `true` for browsers running on Android 2 or Android 3.\r\n var android23 = userAgentContains('android 2') || userAgentContains('android 3');\r\n\r\n /* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */\r\n var webkitVer = parseInt(/WebKit\\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit\r\n // @property androidStock: Boolean; **Deprecated.** `true` for the Android stock browser (i.e. not Chrome)\r\n var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);\r\n\r\n // @property opera: Boolean; `true` for the Opera browser\r\n var opera = !!window.opera;\r\n\r\n // @property chrome: Boolean; `true` for the Chrome browser.\r\n var chrome = !edge && userAgentContains('chrome');\r\n\r\n // @property gecko: Boolean; `true` for gecko-based browsers like Firefox.\r\n var gecko = userAgentContains('gecko') && !webkit && !opera && !ie;\r\n\r\n // @property safari: Boolean; `true` for the Safari browser.\r\n var safari = !chrome && userAgentContains('safari');\r\n\r\n var phantom = userAgentContains('phantom');\r\n\r\n // @property opera12: Boolean\r\n // `true` for the Opera browser supporting CSS transforms (version 12 or later).\r\n var opera12 = 'OTransition' in style;\r\n\r\n // @property win: Boolean; `true` when the browser is running in a Windows platform\r\n var win = navigator.platform.indexOf('Win') === 0;\r\n\r\n // @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.\r\n var ie3d = ie && ('transition' in style);\r\n\r\n // @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.\r\n var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;\r\n\r\n // @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.\r\n var gecko3d = 'MozPerspective' in style;\r\n\r\n // @property any3d: Boolean\r\n // `true` for all browsers supporting CSS transforms.\r\n var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;\r\n\r\n // @property mobile: Boolean; `true` for all browsers running in a mobile device.\r\n var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');\r\n\r\n // @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.\r\n var mobileWebkit = mobile && webkit;\r\n\r\n // @property mobileWebkit3d: Boolean\r\n // `true` for all webkit-based browsers in a mobile device supporting CSS transforms.\r\n var mobileWebkit3d = mobile && webkit3d;\r\n\r\n // @property msPointer: Boolean\r\n // `true` for browsers implementing the Microsoft touch events model (notably IE10).\r\n var msPointer = !window.PointerEvent && window.MSPointerEvent;\r\n\r\n // @property pointer: Boolean\r\n // `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).\r\n var pointer = !!(window.PointerEvent || msPointer);\r\n\r\n // @property touchNative: Boolean\r\n // `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).\r\n // **This does not necessarily mean** that the browser is running in a computer with\r\n // a touchscreen, it only means that the browser is capable of understanding\r\n // touch events.\r\n var touchNative = 'ontouchstart' in window || !!window.TouchEvent;\r\n\r\n // @property touch: Boolean\r\n // `true` for all browsers supporting either [touch](#browser-touch) or [pointer](#browser-pointer) events.\r\n // Note: pointer events will be preferred (if available), and processed for all `touch*` listeners.\r\n var touch = !window.L_NO_TOUCH && (touchNative || pointer);\r\n\r\n // @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.\r\n var mobileOpera = mobile && opera;\r\n\r\n // @property mobileGecko: Boolean\r\n // `true` for gecko-based browsers running in a mobile device.\r\n var mobileGecko = mobile && gecko;\r\n\r\n // @property retina: Boolean\r\n // `true` for browsers on a high-resolution \"retina\" screen or on any screen when browser's display zoom is more than 100%.\r\n var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;\r\n\r\n // @property passiveEvents: Boolean\r\n // `true` for browsers that support passive events.\r\n var passiveEvents = (function () {\r\n \tvar supportsPassiveOption = false;\r\n \ttry {\r\n \t\tvar opts = Object.defineProperty({}, 'passive', {\r\n \t\t\tget: function () { // eslint-disable-line getter-return\r\n \t\t\t\tsupportsPassiveOption = true;\r\n \t\t\t}\r\n \t\t});\r\n \t\twindow.addEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t\twindow.removeEventListener('testPassiveEventSupport', falseFn, opts);\r\n \t} catch (e) {\r\n \t\t// Errors can safely be ignored since this is only a browser support test.\r\n \t}\r\n \treturn supportsPassiveOption;\r\n }());\r\n\r\n // @property canvas: Boolean\r\n // `true` when the browser supports [``](https://developer.mozilla.org/docs/Web/API/Canvas_API).\r\n var canvas$1 = (function () {\r\n \treturn !!document.createElement('canvas').getContext;\r\n }());\r\n\r\n // @property svg: Boolean\r\n // `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG).\r\n var svg$1 = !!(document.createElementNS && svgCreate('svg').createSVGRect);\r\n\r\n var inlineSvg = !!svg$1 && (function () {\r\n \tvar div = document.createElement('div');\r\n \tdiv.innerHTML = '';\r\n \treturn (div.firstChild && div.firstChild.namespaceURI) === 'http://www.w3.org/2000/svg';\r\n })();\r\n\r\n // @property vml: Boolean\r\n // `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language).\r\n var vml = !svg$1 && (function () {\r\n \ttry {\r\n \t\tvar div = document.createElement('div');\r\n \t\tdiv.innerHTML = '';\r\n\r\n \t\tvar shape = div.firstChild;\r\n \t\tshape.style.behavior = 'url(#default#VML)';\r\n\r\n \t\treturn shape && (typeof shape.adj === 'object');\r\n\r\n \t} catch (e) {\r\n \t\treturn false;\r\n \t}\r\n }());\r\n\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Mac platform\r\n var mac = navigator.platform.indexOf('Mac') === 0;\r\n\r\n // @property mac: Boolean; `true` when the browser is running in a Linux platform\r\n var linux = navigator.platform.indexOf('Linux') === 0;\r\n\r\n function userAgentContains(str) {\r\n \treturn navigator.userAgent.toLowerCase().indexOf(str) >= 0;\r\n }\r\n\r\n\r\n var Browser = {\r\n \tie: ie,\r\n \tielt9: ielt9,\r\n \tedge: edge,\r\n \twebkit: webkit,\r\n \tandroid: android,\r\n \tandroid23: android23,\r\n \tandroidStock: androidStock,\r\n \topera: opera,\r\n \tchrome: chrome,\r\n \tgecko: gecko,\r\n \tsafari: safari,\r\n \tphantom: phantom,\r\n \topera12: opera12,\r\n \twin: win,\r\n \tie3d: ie3d,\r\n \twebkit3d: webkit3d,\r\n \tgecko3d: gecko3d,\r\n \tany3d: any3d,\r\n \tmobile: mobile,\r\n \tmobileWebkit: mobileWebkit,\r\n \tmobileWebkit3d: mobileWebkit3d,\r\n \tmsPointer: msPointer,\r\n \tpointer: pointer,\r\n \ttouch: touch,\r\n \ttouchNative: touchNative,\r\n \tmobileOpera: mobileOpera,\r\n \tmobileGecko: mobileGecko,\r\n \tretina: retina,\r\n \tpassiveEvents: passiveEvents,\r\n \tcanvas: canvas$1,\r\n \tsvg: svg$1,\r\n \tvml: vml,\r\n \tinlineSvg: inlineSvg,\r\n \tmac: mac,\r\n \tlinux: linux\r\n };\n\n /*\n * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.\n */\n\n var POINTER_DOWN = Browser.msPointer ? 'MSPointerDown' : 'pointerdown';\n var POINTER_MOVE = Browser.msPointer ? 'MSPointerMove' : 'pointermove';\n var POINTER_UP = Browser.msPointer ? 'MSPointerUp' : 'pointerup';\n var POINTER_CANCEL = Browser.msPointer ? 'MSPointerCancel' : 'pointercancel';\n var pEvent = {\n \ttouchstart : POINTER_DOWN,\n \ttouchmove : POINTER_MOVE,\n \ttouchend : POINTER_UP,\n \ttouchcancel : POINTER_CANCEL\n };\n var handle = {\n \ttouchstart : _onPointerStart,\n \ttouchmove : _handlePointer,\n \ttouchend : _handlePointer,\n \ttouchcancel : _handlePointer\n };\n var _pointers = {};\n var _pointerDocListener = false;\n\n // Provides a touch events wrapper for (ms)pointer events.\n // ref https://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890\n\n function addPointerListener(obj, type, handler) {\n \tif (type === 'touchstart') {\n \t\t_addPointerDocListener();\n \t}\n \tif (!handle[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn falseFn;\n \t}\n \thandler = handle[type].bind(this, handler);\n \tobj.addEventListener(pEvent[type], handler, false);\n \treturn handler;\n }\n\n function removePointerListener(obj, type, handler) {\n \tif (!pEvent[type]) {\n \t\tconsole.warn('wrong event specified:', type);\n \t\treturn;\n \t}\n \tobj.removeEventListener(pEvent[type], handler, false);\n }\n\n function _globalPointerDown(e) {\n \t_pointers[e.pointerId] = e;\n }\n\n function _globalPointerMove(e) {\n \tif (_pointers[e.pointerId]) {\n \t\t_pointers[e.pointerId] = e;\n \t}\n }\n\n function _globalPointerUp(e) {\n \tdelete _pointers[e.pointerId];\n }\n\n function _addPointerDocListener() {\n \t// need to keep track of what pointers and how many are active to provide e.touches emulation\n \tif (!_pointerDocListener) {\n \t\t// we listen document as any drags that end by moving the touch off the screen get fired there\n \t\tdocument.addEventListener(POINTER_DOWN, _globalPointerDown, true);\n \t\tdocument.addEventListener(POINTER_MOVE, _globalPointerMove, true);\n \t\tdocument.addEventListener(POINTER_UP, _globalPointerUp, true);\n \t\tdocument.addEventListener(POINTER_CANCEL, _globalPointerUp, true);\n\n \t\t_pointerDocListener = true;\n \t}\n }\n\n function _handlePointer(handler, e) {\n \tif (e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { return; }\n\n \te.touches = [];\n \tfor (var i in _pointers) {\n \t\te.touches.push(_pointers[i]);\n \t}\n \te.changedTouches = [e];\n\n \thandler(e);\n }\n\n function _onPointerStart(handler, e) {\n \t// IE10 specific: MsTouch needs preventDefault. See #2000\n \tif (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) {\n \t\tpreventDefault(e);\n \t}\n \t_handlePointer(handler, e);\n }\n\n /*\r\n * Extends the event handling code with double tap support for mobile browsers.\r\n *\r\n * Note: currently most browsers fire native dblclick, with only a few exceptions\r\n * (see https://github.com/Leaflet/Leaflet/issues/7012#issuecomment-595087386)\r\n */\r\n\r\n function makeDblclick(event) {\r\n \t// in modern browsers `type` cannot be just overridden:\r\n \t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only\r\n \tvar newEvent = {},\r\n \t prop, i;\r\n \tfor (i in event) {\r\n \t\tprop = event[i];\r\n \t\tnewEvent[i] = prop && prop.bind ? prop.bind(event) : prop;\r\n \t}\r\n \tevent = newEvent;\r\n \tnewEvent.type = 'dblclick';\r\n \tnewEvent.detail = 2;\r\n \tnewEvent.isTrusted = false;\r\n \tnewEvent._simulated = true; // for debug purposes\r\n \treturn newEvent;\r\n }\r\n\r\n var delay = 200;\r\n function addDoubleTapListener(obj, handler) {\r\n \t// Most browsers handle double tap natively\r\n \tobj.addEventListener('dblclick', handler);\r\n\r\n \t// On some platforms the browser doesn't fire native dblclicks for touch events.\r\n \t// It seems that in all such cases `detail` property of `click` event is always `1`.\r\n \t// So here we rely on that fact to avoid excessive 'dblclick' simulation when not needed.\r\n \tvar last = 0,\r\n \t detail;\r\n \tfunction simDblclick(e) {\r\n \t\tif (e.detail !== 1) {\r\n \t\t\tdetail = e.detail; // keep in sync to avoid false dblclick in some cases\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\tif (e.pointerType === 'mouse' ||\r\n \t\t\t(e.sourceCapabilities && !e.sourceCapabilities.firesTouchEvents)) {\r\n\r\n \t\t\treturn;\r\n \t\t}\r\n\r\n \t\t// When clicking on an , the browser generates a click on its\r\n \t\t//