diff --git a/frontend/dist/assets/index-B4aoszDr.js b/frontend/dist/assets/index-FM2HgcXA.js similarity index 99% rename from frontend/dist/assets/index-B4aoszDr.js rename to frontend/dist/assets/index-FM2HgcXA.js index 20bc78c..a3646c6 100644 --- a/frontend/dist/assets/index-B4aoszDr.js +++ b/frontend/dist/assets/index-FM2HgcXA.js @@ -72,7 +72,7 @@ Error generating stack: `+b.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const bk=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Wg=Pu("x",bk);var Gg=Vg();const Qg=Fo(Gg);function fk(a){if(typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r.appendChild(o),o.styleSheet?o.styleSheet.cssText=a:o.appendChild(document.createTextNode(a))}const vk=a=>{switch(a){case"success":return xk;case"info":return qk;case"warning":return zk;case"error":return jk;default:return null}},kk=Array(12).fill(0),wk=({visible:a,className:r})=>me.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":a},me.createElement("div",{className:"sonner-spinner"},kk.map((o,t)=>me.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${t}`})))),xk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.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"})),zk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},me.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"})),qk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.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"})),jk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.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"})),Ak=me.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"},me.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),me.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Ck=()=>{const[a,r]=me.useState(document.hidden);return me.useEffect(()=>{const o=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),a};let vu=1;class Ek{constructor(){this.subscribe=r=>(this.subscribers.push(r),()=>{const o=this.subscribers.indexOf(r);this.subscribers.splice(o,1)}),this.publish=r=>{this.subscribers.forEach(o=>o(r))},this.addToast=r=>{this.publish(r),this.toasts=[...this.toasts,r]},this.create=r=>{var o;const{message:t,...u}=r,l=typeof(r==null?void 0:r.id)=="number"||((o=r.id)==null?void 0:o.length)>0?r.id:vu++,m=this.toasts.find(h=>h.id===l),c=r.dismissible===void 0?!0:r.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),m?this.toasts=this.toasts.map(h=>h.id===l?(this.publish({...h,...r,id:l,title:t}),{...h,...r,id:l,dismissible:c,title:t}):h):this.addToast({title:t,...u,dismissible:c,id:l}),l},this.dismiss=r=>(r?(this.dismissedToasts.add(r),requestAnimationFrame(()=>this.subscribers.forEach(o=>o({id:r,dismiss:!0})))):this.toasts.forEach(o=>{this.subscribers.forEach(t=>t({id:o.id,dismiss:!0}))}),r),this.message=(r,o)=>this.create({...o,message:r}),this.error=(r,o)=>this.create({...o,message:r,type:"error"}),this.success=(r,o)=>this.create({...o,type:"success",message:r}),this.info=(r,o)=>this.create({...o,type:"info",message:r}),this.warning=(r,o)=>this.create({...o,type:"warning",message:r}),this.loading=(r,o)=>this.create({...o,type:"loading",message:r}),this.promise=(r,o)=>{if(!o)return;let t;o.loading!==void 0&&(t=this.create({...o,promise:r,type:"loading",message:o.loading,description:typeof o.description!="function"?o.description:void 0}));const u=Promise.resolve(r instanceof Function?r():r);let l=t!==void 0,m;const c=u.then(async d=>{if(m=["resolve",d],me.isValidElement(d))l=!1,this.create({id:t,type:"default",message:d});else if(Bk(d)&&!d.ok){l=!1;const g=typeof o.error=="function"?await o.error(`HTTP error! status: ${d.status}`):o.error,f=typeof o.description=="function"?await o.description(`HTTP error! status: ${d.status}`):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"error",description:f,...w})}else if(d instanceof Error){l=!1;const g=typeof o.error=="function"?await o.error(d):o.error,f=typeof o.description=="function"?await o.description(d):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"error",description:f,...w})}else if(o.success!==void 0){l=!1;const g=typeof o.success=="function"?await o.success(d):o.success,f=typeof o.description=="function"?await o.description(d):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"success",description:f,...w})}}).catch(async d=>{if(m=["reject",d],o.error!==void 0){l=!1;const y=typeof o.error=="function"?await o.error(d):o.error,g=typeof o.description=="function"?await o.description(d):o.description,x=typeof y=="object"&&!me.isValidElement(y)?y:{message:y};this.create({id:t,type:"error",description:g,...x})}}).finally(()=>{l&&(this.dismiss(t),t=void 0),o.finally==null||o.finally.call(o)}),h=()=>new Promise((d,y)=>c.then(()=>m[0]==="reject"?y(m[1]):d(m[1])).catch(y));return typeof t!="string"&&typeof t!="number"?{unwrap:h}:Object.assign(t,{unwrap:h})},this.custom=(r,o)=>{const t=(o==null?void 0:o.id)||vu++;return this.create({jsx:r(t),id:t,...o}),t},this.getActiveToasts=()=>this.toasts.filter(r=>!this.dismissedToasts.has(r.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const na=new Ek,Sk=(a,r)=>{const o=(r==null?void 0:r.id)||vu++;return na.addToast({title:a,...r,id:o}),o},Bk=a=>a&&typeof a=="object"&&"ok"in a&&typeof a.ok=="boolean"&&"status"in a&&typeof a.status=="number",_k=Sk,Dk=()=>na.toasts,Fk=()=>na.getActiveToasts(),Tr=Object.assign(_k,{success:na.success,info:na.info,warning:na.warning,error:na.error,custom:na.custom,message:na.message,promise:na.promise,dismiss:na.dismiss,loading:na.loading},{getHistory:Dk,getToasts:Fk});fk("[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 Ys(a){return a.label!==void 0}const Rk=3,Tk="24px",Pk="16px",$m=4e3,Nk=356,Ik=14,Mk=45,Ok=200;function Na(...a){return a.filter(Boolean).join(" ")}function Hk(a){const[r,o]=a.split("-"),t=[];return r&&t.push(r),o&&t.push(o),t}const Lk=a=>{var r,o,t,u,l,m,c,h,d;const{invert:y,toast:g,unstyled:f,interacting:x,setHeights:w,visibleToasts:j,heights:v,index:A,toasts:q,expanded:k,removeToast:C,defaultRichColors:S,closeButton:D,style:T,cancelButtonStyle:F,actionButtonStyle:O,className:N="",descriptionClassName:R="",duration:V,position:H,gap:$,expandByDefault:ae,classNames:J,icons:ie,closeButtonAriaLabel:W="Close toast"}=a,[oe,ee]=me.useState(null),[z,I]=me.useState(null),[L,G]=me.useState(!1),[ue,he]=me.useState(!1),[ge,re]=me.useState(!1),[le,je]=me.useState(!1),[Pe,Ze]=me.useState(!1),[Je,_e]=me.useState(0),[Ge,ei]=me.useState(0),Ve=me.useRef(g.duration||V||$m),xi=me.useRef(null),ai=me.useRef(null),Ti=A===0,si=A+1<=j,We=g.type,mi=g.dismissible!==!1,$i=g.className||"",va=g.descriptionClassName||"",zi=me.useMemo(()=>v.findIndex(Ae=>Ae.toastId===g.id)||0,[v,g.id]),Oi=me.useMemo(()=>{var Ae;return(Ae=g.closeButton)!=null?Ae:D},[g.closeButton,D]),Ki=me.useMemo(()=>g.duration||V||$m,[g.duration,V]),oa=me.useRef(0),qi=me.useRef(0),ci=me.useRef(0),Z=me.useRef(null),[de,ze]=H.split("-"),K=me.useMemo(()=>v.reduce((Ae,Oe,Ue)=>Ue>=zi?Ae:Ae+Oe.height,0),[v,zi]),ne=Ck(),ye=g.invert||y,Fe=We==="loading";qi.current=me.useMemo(()=>zi*$+K,[zi,K]),me.useEffect(()=>{Ve.current=Ki},[Ki]),me.useEffect(()=>{G(!0)},[]),me.useEffect(()=>{const Ae=ai.current;if(Ae){const Oe=Ae.getBoundingClientRect().height;return ei(Oe),w(Ue=>[{toastId:g.id,height:Oe,position:g.position},...Ue]),()=>w(Ue=>Ue.filter(hi=>hi.toastId!==g.id))}},[w,g.id]),me.useLayoutEffect(()=>{if(!L)return;const Ae=ai.current,Oe=Ae.style.height;Ae.style.height="auto";const Ue=Ae.getBoundingClientRect().height;Ae.style.height=Oe,ei(Ue),w(hi=>hi.find(He=>He.toastId===g.id)?hi.map(He=>He.toastId===g.id?{...He,height:Ue}:He):[{toastId:g.id,height:Ue,position:g.position},...hi])},[L,g.title,g.description,w,g.id,g.jsx,g.action,g.cancel]);const Be=me.useCallback(()=>{he(!0),_e(qi.current),w(Ae=>Ae.filter(Oe=>Oe.toastId!==g.id)),setTimeout(()=>{C(g)},Ok)},[g,C,w,qi]);me.useEffect(()=>{if(g.promise&&We==="loading"||g.duration===1/0||g.type==="loading")return;let Ae;return k||x||ne?(()=>{if(ci.current{Ve.current!==1/0&&(oa.current=new Date().getTime(),Ae=setTimeout(()=>{g.onAutoClose==null||g.onAutoClose.call(g,g),Be()},Ve.current))})(),()=>clearTimeout(Ae)},[k,x,g,We,ne,Be]),me.useEffect(()=>{g.delete&&(Be(),g.onDismiss==null||g.onDismiss.call(g,g))},[Be,g.delete]);function Ne(){var Ae;if(ie!=null&&ie.loading){var Oe;return me.createElement("div",{className:Na(J==null?void 0:J.loader,g==null||(Oe=g.classNames)==null?void 0:Oe.loader,"sonner-loader"),"data-visible":We==="loading"},ie.loading)}return me.createElement(wk,{className:Na(J==null?void 0:J.loader,g==null||(Ae=g.classNames)==null?void 0:Ae.loader),visible:We==="loading"})}const Re=g.icon||(ie==null?void 0:ie[We])||vk(We);var Te,ji;return me.createElement("li",{tabIndex:0,ref:ai,className:Na(N,$i,J==null?void 0:J.toast,g==null||(r=g.classNames)==null?void 0:r.toast,J==null?void 0:J.default,J==null?void 0:J[We],g==null||(o=g.classNames)==null?void 0:o[We]),"data-sonner-toast":"","data-rich-colors":(Te=g.richColors)!=null?Te:S,"data-styled":!(g.jsx||g.unstyled||f),"data-mounted":L,"data-promise":!!g.promise,"data-swiped":Pe,"data-removed":ue,"data-visible":si,"data-y-position":de,"data-x-position":ze,"data-index":A,"data-front":Ti,"data-swiping":ge,"data-dismissible":mi,"data-type":We,"data-invert":ye,"data-swipe-out":le,"data-swipe-direction":z,"data-expanded":!!(k||ae&&L),"data-testid":g.testId,style:{"--index":A,"--toasts-before":A,"--z-index":q.length-A,"--offset":`${ue?Je:qi.current}px`,"--initial-height":ae?"auto":`${Ge}px`,...T,...g.style},onDragEnd:()=>{re(!1),ee(null),Z.current=null},onPointerDown:Ae=>{Ae.button!==2&&(Fe||!mi||(xi.current=new Date,_e(qi.current),Ae.target.setPointerCapture(Ae.pointerId),Ae.target.tagName!=="BUTTON"&&(re(!0),Z.current={x:Ae.clientX,y:Ae.clientY})))},onPointerUp:()=>{var Ae,Oe,Ue;if(le||!mi)return;Z.current=null;const hi=Number(((Ae=ai.current)==null?void 0:Ae.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),da=Number(((Oe=ai.current)==null?void 0:Oe.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),He=new Date().getTime()-((Ue=xi.current)==null?void 0:Ue.getTime()),ni=oe==="x"?hi:da,ka=Math.abs(ni)/He;if(Math.abs(ni)>=Mk||ka>.11){_e(qi.current),g.onDismiss==null||g.onDismiss.call(g,g),I(oe==="x"?hi>0?"right":"left":da>0?"down":"up"),Be(),je(!0);return}else{var Ye,gi;(Ye=ai.current)==null||Ye.style.setProperty("--swipe-amount-x","0px"),(gi=ai.current)==null||gi.style.setProperty("--swipe-amount-y","0px")}Ze(!1),re(!1),ee(null)},onPointerMove:Ae=>{var Oe,Ue,hi;if(!Z.current||!mi||((Oe=window.getSelection())==null?void 0:Oe.toString().length)>0)return;const He=Ae.clientY-Z.current.y,ni=Ae.clientX-Z.current.x;var ka;const Ye=(ka=a.swipeDirections)!=null?ka:Hk(H);!oe&&(Math.abs(ni)>1||Math.abs(He)>1)&&ee(Math.abs(ni)>Math.abs(He)?"x":"y");let gi={x:0,y:0};const wa=Yi=>1/(1.5+Math.abs(Yi)/20);if(oe==="y"){if(Ye.includes("top")||Ye.includes("bottom"))if(Ye.includes("top")&&He<0||Ye.includes("bottom")&&He>0)gi.y=He;else{const Yi=He*wa(He);gi.y=Math.abs(Yi)0)gi.x=ni;else{const Yi=ni*wa(ni);gi.x=Math.abs(Yi)0||Math.abs(gi.y)>0)&&Ze(!0),(Ue=ai.current)==null||Ue.style.setProperty("--swipe-amount-x",`${gi.x}px`),(hi=ai.current)==null||hi.style.setProperty("--swipe-amount-y",`${gi.y}px`)}},Oi&&!g.jsx&&We!=="loading"?me.createElement("button",{"aria-label":W,"data-disabled":Fe,"data-close-button":!0,onClick:Fe||!mi?()=>{}:()=>{Be(),g.onDismiss==null||g.onDismiss.call(g,g)},className:Na(J==null?void 0:J.closeButton,g==null||(t=g.classNames)==null?void 0:t.closeButton)},(ji=ie==null?void 0:ie.close)!=null?ji:Ak):null,(We||g.icon||g.promise)&&g.icon!==null&&((ie==null?void 0:ie[We])!==null||g.icon)?me.createElement("div",{"data-icon":"",className:Na(J==null?void 0:J.icon,g==null||(u=g.classNames)==null?void 0:u.icon)},g.promise||g.type==="loading"&&!g.icon?g.icon||Ne():null,g.type!=="loading"?Re:null):null,me.createElement("div",{"data-content":"",className:Na(J==null?void 0:J.content,g==null||(l=g.classNames)==null?void 0:l.content)},me.createElement("div",{"data-title":"",className:Na(J==null?void 0:J.title,g==null||(m=g.classNames)==null?void 0:m.title)},g.jsx?g.jsx:typeof g.title=="function"?g.title():g.title),g.description?me.createElement("div",{"data-description":"",className:Na(R,va,J==null?void 0:J.description,g==null||(c=g.classNames)==null?void 0:c.description)},typeof g.description=="function"?g.description():g.description):null),me.isValidElement(g.cancel)?g.cancel:g.cancel&&Ys(g.cancel)?me.createElement("button",{"data-button":!0,"data-cancel":!0,style:g.cancelButtonStyle||F,onClick:Ae=>{Ys(g.cancel)&&mi&&(g.cancel.onClick==null||g.cancel.onClick.call(g.cancel,Ae),Be())},className:Na(J==null?void 0:J.cancelButton,g==null||(h=g.classNames)==null?void 0:h.cancelButton)},g.cancel.label):null,me.isValidElement(g.action)?g.action:g.action&&Ys(g.action)?me.createElement("button",{"data-button":!0,"data-action":!0,style:g.actionButtonStyle||O,onClick:Ae=>{Ys(g.action)&&(g.action.onClick==null||g.action.onClick.call(g.action,Ae),!Ae.defaultPrevented&&Be())},className:Na(J==null?void 0:J.actionButton,g==null||(d=g.classNames)==null?void 0:d.actionButton)},g.action.label):null)};function Km(){if(typeof window>"u"||typeof document>"u")return"ltr";const a=document.documentElement.getAttribute("dir");return a==="auto"||!a?window.getComputedStyle(document.documentElement).direction:a}function Vk(a,r){const o={};return[a,r].forEach((t,u)=>{const l=u===1,m=l?"--mobile-offset":"--offset",c=l?Pk:Tk;function h(d){["top","right","bottom","left"].forEach(y=>{o[`${m}-${y}`]=typeof d=="number"?`${d}px`:d})}typeof t=="number"||typeof t=="string"?h(t):typeof t=="object"?["top","right","bottom","left"].forEach(d=>{t[d]===void 0?o[`${m}-${d}`]=c:o[`${m}-${d}`]=typeof t[d]=="number"?`${t[d]}px`:t[d]}):h(c)}),o}const Uk=me.forwardRef(function(r,o){const{id:t,invert:u,position:l="bottom-right",hotkey:m=["altKey","KeyT"],expand:c,closeButton:h,className:d,offset:y,mobileOffset:g,theme:f="light",richColors:x,duration:w,style:j,visibleToasts:v=Rk,toastOptions:A,dir:q=Km(),gap:k=Ik,icons:C,containerAriaLabel:S="Notifications"}=r,[D,T]=me.useState([]),F=me.useMemo(()=>t?D.filter(L=>L.toasterId===t):D.filter(L=>!L.toasterId),[D,t]),O=me.useMemo(()=>Array.from(new Set([l].concat(F.filter(L=>L.position).map(L=>L.position)))),[F,l]),[N,R]=me.useState([]),[V,H]=me.useState(!1),[$,ae]=me.useState(!1),[J,ie]=me.useState(f!=="system"?f:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),W=me.useRef(null),oe=m.join("+").replace(/Key/g,"").replace(/Digit/g,""),ee=me.useRef(null),z=me.useRef(!1),I=me.useCallback(L=>{T(G=>{var ue;return(ue=G.find(he=>he.id===L.id))!=null&&ue.delete||na.dismiss(L.id),G.filter(({id:he})=>he!==L.id)})},[]);return me.useEffect(()=>na.subscribe(L=>{if(L.dismiss){requestAnimationFrame(()=>{T(G=>G.map(ue=>ue.id===L.id?{...ue,delete:!0}:ue))});return}setTimeout(()=>{Qg.flushSync(()=>{T(G=>{const ue=G.findIndex(he=>he.id===L.id);return ue!==-1?[...G.slice(0,ue),{...G[ue],...L},...G.slice(ue+1)]:[L,...G]})})})}),[D]),me.useEffect(()=>{if(f!=="system"){ie(f);return}if(f==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?ie("dark"):ie("light")),typeof window>"u")return;const L=window.matchMedia("(prefers-color-scheme: dark)");try{L.addEventListener("change",({matches:G})=>{ie(G?"dark":"light")})}catch{L.addListener(({matches:ue})=>{try{ie(ue?"dark":"light")}catch(he){console.error(he)}})}},[f]),me.useEffect(()=>{D.length<=1&&H(!1)},[D]),me.useEffect(()=>{const L=G=>{var ue;if(m.every(re=>G[re]||G.code===re)){var ge;H(!0),(ge=W.current)==null||ge.focus()}G.code==="Escape"&&(document.activeElement===W.current||(ue=W.current)!=null&&ue.contains(document.activeElement))&&H(!1)};return document.addEventListener("keydown",L),()=>document.removeEventListener("keydown",L)},[m]),me.useEffect(()=>{if(W.current)return()=>{ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null,z.current=!1)}},[W.current]),me.createElement("section",{ref:o,"aria-label":`${S} ${oe}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},O.map((L,G)=>{var ue;const[he,ge]=L.split("-");return F.length?me.createElement("ol",{key:L,dir:q==="auto"?Km():q,tabIndex:-1,ref:W,className:d,"data-sonner-toaster":!0,"data-sonner-theme":J,"data-y-position":he,"data-x-position":ge,style:{"--front-toast-height":`${((ue=N[0])==null?void 0:ue.height)||0}px`,"--width":`${Nk}px`,"--gap":`${k}px`,...j,...Vk(y,g)},onBlur:re=>{z.current&&!re.currentTarget.contains(re.relatedTarget)&&(z.current=!1,ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null))},onFocus:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||z.current||(z.current=!0,ee.current=re.relatedTarget)},onMouseEnter:()=>H(!0),onMouseMove:()=>H(!0),onMouseLeave:()=>{$||H(!1)},onDragEnd:()=>H(!1),onPointerDown:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||ae(!0)},onPointerUp:()=>ae(!1)},F.filter(re=>!re.position&&G===0||re.position===L).map((re,le)=>{var je,Pe;return me.createElement(Lk,{key:re.id,icons:C,index:le,toast:re,defaultRichColors:x,duration:(je=A==null?void 0:A.duration)!=null?je:w,className:A==null?void 0:A.className,descriptionClassName:A==null?void 0:A.descriptionClassName,invert:u,visibleToasts:v,closeButton:(Pe=A==null?void 0:A.closeButton)!=null?Pe:h,interacting:$,position:L,style:A==null?void 0:A.style,unstyled:A==null?void 0:A.unstyled,classNames:A==null?void 0:A.classNames,cancelButtonStyle:A==null?void 0:A.cancelButtonStyle,actionButtonStyle:A==null?void 0:A.actionButtonStyle,closeButtonAriaLabel:A==null?void 0:A.closeButtonAriaLabel,removeToast:I,toasts:F.filter(Ze=>Ze.position==re.position),heights:N.filter(Ze=>Ze.position==re.position),setHeights:R,expandByDefault:c,gap:k,expanded:V,swipeDirections:r.swipeDirections})})):null}))}),Wk=({...a})=>_.jsx(Uk,{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]"}},...a});function Gk({health:a,config:r,onConfigClick:o,onAdvertise:t,onMenuClick:u}){const l=(a==null?void 0:a.radio_connected)??!1,[m,c]=B.useState(!1),h=async()=>{c(!0);try{const d=await ii.reconnectRadio();d.connected&&Tr.success("Reconnected",{description:d.message})}catch(d){Tr.error("Reconnection failed",{description:d instanceof Error?d.message:"Check radio connection and power"})}finally{c(!1)}};return _.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-[#252525] border-b border-[#333] text-xs",children:[u&&_.jsx("button",{onClick:u,className:"md:hidden p-1 bg-transparent border-none text-[#e0e0e0] cursor-pointer","aria-label":"Open menu",children:_.jsx(yk,{className:"h-5 w-5"})}),_.jsx("h1",{className:"hidden lg:block text-base font-semibold mr-auto",children:"RemoteTerm"}),_.jsxs("div",{className:"flex items-center gap-1 text-[#888]",children:[_.jsx("div",{className:`w-2 h-2 rounded-full ${l?"bg-[#4caf50]":"bg-[#666]"}`}),_.jsx("span",{className:"hidden lg:inline text-[#e0e0e0]",children:l?"Connected":"Disconnected"})]}),(a==null?void 0:a.serial_port)&&_.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["Port: ",_.jsx("span",{className:"text-[#e0e0e0]",children:a.serial_port})]}),r&&_.jsxs(_.Fragment,{children:[_.jsxs("div",{className:"hidden lg:flex items-center gap-1 text-[#888]",children:["Name: ",_.jsx("span",{className:"text-[#e0e0e0]",children:r.name||"Unnamed"})]}),_.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["Freq: ",_.jsxs("span",{className:"text-[#e0e0e0]",children:[r.radio.freq," MHz"]})]}),_.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["SF",r.radio.sf,"/CR",r.radio.cr]}),_.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["TX: ",_.jsxs("span",{className:"text-[#e0e0e0]",children:[r.tx_power," dBm"]})]})]}),_.jsx("div",{className:"flex-1 lg:hidden"}),!l&&_.jsx("button",{onClick:h,disabled:m,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:m?"Reconnecting...":"Reconnect"}),_.jsx("button",{onClick:t,disabled:!l,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"}),_.jsx("button",{onClick:o,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",children:"Config"})]})}const Qk=12;function Bo(a){return a.slice(0,Qk)}function $g(a,r){return!a||!r?!1:Bo(a)===Bo(r)}function Kn(a,r){return a||Bo(r)}const ku="remoteterm-lastMessageTime",wu="remoteterm-lastReadTime";function el(a){try{const r=localStorage.getItem(a);return r?JSON.parse(r):{}}catch{return{}}}function Kg(a,r){try{localStorage.setItem(a,JSON.stringify(r))}catch{}}function Ym(){return el(ku)}function $k(){return el(wu)}function au(a,r){const o=el(ku);return(!o[a]||r>o[a])&&(o[a]=r,Kg(ku,o)),o}function nu(a,r){const o=el(wu);return o[a]=r,Kg(wu,o),o}function an(a,r){return a==="channel"?`channel-${r}`:`contact-${Bo(r)}`}const xu=2,Kk={text:"🛜",background:"#444444",textColor:"#ffffff"};function Yk(a){let r=0;for(let o=0;o>8)%30,u=35+(r>>16)%20,l=`hsl(${o}, ${t}%, ${u}%)`,m=u<45?"#ffffff":"#000000";return{background:l,text:m}}function ew(a,r,o){if(o===xu)return Kk;const t=Xk(a,r),u=Jk(r);return{text:t,background:u.background,textColor:u.text}}function Yg({name:a,publicKey:r,size:o=28,contactType:t}){const u=ew(a,r,t);return _.jsx("div",{className:"flex items-center justify-center rounded-full font-semibold flex-shrink-0 select-none",style:{backgroundColor:u.background,color:u.textColor,width:o,height:o,fontSize:o*.45},children:u.text})}function Zg(a){var r,o,t="";if(typeof a=="string"||typeof a=="number")t+=a;else if(typeof a=="object")if(Array.isArray(a)){var u=a.length;for(r=0;r{const o=new Array(a.length+r.length);for(let t=0;t({classGroupId:a,validator:r}),Jg=(a=new Map,r=null,o)=>({nextPart:a,validators:r,classGroupId:o}),Qt="-",Zm=[],nw="arbitrary..",ow=a=>{const r=sw(a),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=a;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return rw(m);const c=m.split(Qt),h=c[0]===""&&c.length>1?1:0;return ey(c,h,r)},getConflictingClassGroupIds:(m,c)=>{if(c){const h=t[m],d=o[m];return h?d?iw(d,h):h:d||Zm}return o[m]||Zm}}},ey=(a,r,o)=>{if(a.length-r===0)return o.classGroupId;const u=a[r],l=o.nextPart.get(u);if(l){const d=ey(a,r+1,l);if(d)return d}const m=o.validators;if(m===null)return;const c=r===0?a.join(Qt):a.slice(r).join(Qt),h=m.length;for(let d=0;da.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=a.slice(1,-1),o=r.indexOf(":"),t=r.slice(0,o);return t?nw+t:void 0})(),sw=a=>{const{theme:r,classGroups:o}=a;return tw(o,r)},tw=(a,r)=>{const o=Jg();for(const t in a){const u=a[t];Nu(u,o,t,r)}return o},Nu=(a,r,o,t)=>{const u=a.length;for(let l=0;l{if(typeof a=="string"){cw(a,r,o);return}if(typeof a=="function"){uw(a,r,o,t);return}dw(a,r,o,t)},cw=(a,r,o)=>{const t=a===""?r:iy(r,a);t.classGroupId=o},uw=(a,r,o,t)=>{if(pw(a)){Nu(a(t),r,o,t);return}r.validators===null&&(r.validators=[]),r.validators.push(aw(o,a))},dw=(a,r,o,t)=>{const u=Object.entries(a),l=u.length;for(let m=0;m{let o=a;const t=r.split(Qt),u=t.length;for(let l=0;l"isThemeGetter"in a&&a.isThemeGetter===!0,mw=a=>{if(a<1)return{get:()=>{},set:()=>{}};let r=0,o=Object.create(null),t=Object.create(null);const u=(l,m)=>{o[l]=m,r++,r>a&&(r=0,t=o,o=Object.create(null))};return{get(l){let m=o[l];if(m!==void 0)return m;if((m=t[l])!==void 0)return u(l,m),m},set(l,m){l in o?o[l]=m:u(l,m)}}},zu="!",Xm=":",hw=[],Jm=(a,r,o,t,u)=>({modifiers:a,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:t,isExternal:u}),gw=a=>{const{prefix:r,experimentalParseClassName:o}=a;let t=u=>{const l=[];let m=0,c=0,h=0,d;const y=u.length;for(let j=0;jh?d-h:void 0;return Jm(l,x,f,w)};if(r){const u=r+Xm,l=t;t=m=>m.startsWith(u)?l(m.slice(u.length)):Jm(hw,!1,m,void 0,!0)}if(o){const u=t;t=l=>o({className:l,parseClassName:u})}return t},yw=a=>{const r=new Map;return a.orderSensitiveModifiers.forEach((o,t)=>{r.set(o,1e6+t)}),o=>{const t=[];let u=[];for(let l=0;l0&&(u.sort(),t.push(...u),u=[]),t.push(m)):u.push(m)}return u.length>0&&(u.sort(),t.push(...u)),t}},bw=a=>({cache:mw(a.cacheSize),parseClassName:gw(a),sortModifiers:yw(a),...ow(a)}),fw=/\s+/,vw=(a,r)=>{const{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:u,sortModifiers:l}=r,m=[],c=a.trim().split(fw);let h="";for(let d=c.length-1;d>=0;d-=1){const y=c[d],{isExternal:g,modifiers:f,hasImportantModifier:x,baseClassName:w,maybePostfixModifierPosition:j}=o(y);if(g){h=y+(h.length>0?" "+h:h);continue}let v=!!j,A=t(v?w.substring(0,j):w);if(!A){if(!v){h=y+(h.length>0?" "+h:h);continue}if(A=t(w),!A){h=y+(h.length>0?" "+h:h);continue}v=!1}const q=f.length===0?"":f.length===1?f[0]:l(f).join(":"),k=x?q+zu:q,C=k+A;if(m.indexOf(C)>-1)continue;m.push(C);const S=u(A,v);for(let D=0;D0?" "+h:h)}return h},kw=(...a)=>{let r=0,o,t,u="";for(;r{if(typeof a=="string")return a;let r,o="";for(let t=0;t{let o,t,u,l;const m=h=>{const d=r.reduce((y,g)=>g(y),a());return o=bw(d),t=o.cache.get,u=o.cache.set,l=c,c(h)},c=h=>{const d=t(h);if(d)return d;const y=vw(h,o);return u(h,y),y};return l=m,(...h)=>l(kw(...h))},xw=[],Ei=a=>{const r=o=>o[a]||xw;return r.isThemeGetter=!0,r},ny=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,oy=/^\((?:(\w[\w-]*):)?(.+)\)$/i,zw=/^\d+\/\d+$/,qw=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,jw=/\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$/,Aw=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Cw=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ew=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,zo=a=>zw.test(a),Ie=a=>!!a&&!Number.isNaN(Number(a)),zn=a=>!!a&&Number.isInteger(Number(a)),ou=a=>a.endsWith("%")&&Ie(a.slice(0,-1)),Za=a=>qw.test(a),Sw=()=>!0,Bw=a=>jw.test(a)&&!Aw.test(a),ry=()=>!1,_w=a=>Cw.test(a),Dw=a=>Ew.test(a),Fw=a=>!ke(a)&&!we(a),Rw=a=>Ro(a,ly,ry),ke=a=>ny.test(a),Ln=a=>Ro(a,cy,Bw),ru=a=>Ro(a,Mw,Ie),eh=a=>Ro(a,sy,ry),Tw=a=>Ro(a,ty,Dw),Zs=a=>Ro(a,uy,_w),we=a=>oy.test(a),fr=a=>To(a,cy),Pw=a=>To(a,Ow),ih=a=>To(a,sy),Nw=a=>To(a,ly),Iw=a=>To(a,ty),Xs=a=>To(a,uy,!0),Ro=(a,r,o)=>{const t=ny.exec(a);return t?t[1]?r(t[1]):o(t[2]):!1},To=(a,r,o=!1)=>{const t=oy.exec(a);return t?t[1]?r(t[1]):o:!1},sy=a=>a==="position"||a==="percentage",ty=a=>a==="image"||a==="url",ly=a=>a==="length"||a==="size"||a==="bg-size",cy=a=>a==="length",Mw=a=>a==="number",Ow=a=>a==="family-name",uy=a=>a==="shadow",Hw=()=>{const a=Ei("color"),r=Ei("font"),o=Ei("text"),t=Ei("font-weight"),u=Ei("tracking"),l=Ei("leading"),m=Ei("breakpoint"),c=Ei("container"),h=Ei("spacing"),d=Ei("radius"),y=Ei("shadow"),g=Ei("inset-shadow"),f=Ei("text-shadow"),x=Ei("drop-shadow"),w=Ei("blur"),j=Ei("perspective"),v=Ei("aspect"),A=Ei("ease"),q=Ei("animate"),k=()=>["auto","avoid","all","avoid-page","page","left","right","column"],C=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],S=()=>[...C(),we,ke],D=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],F=()=>[we,ke,h],O=()=>[zo,"full","auto",...F()],N=()=>[zn,"none","subgrid",we,ke],R=()=>["auto",{span:["full",zn,we,ke]},zn,we,ke],V=()=>[zn,"auto",we,ke],H=()=>["auto","min","max","fr",we,ke],$=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ae=()=>["start","end","center","stretch","center-safe","end-safe"],J=()=>["auto",...F()],ie=()=>[zo,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...F()],W=()=>[a,we,ke],oe=()=>[...C(),ih,eh,{position:[we,ke]}],ee=()=>["no-repeat",{repeat:["","x","y","space","round"]}],z=()=>["auto","cover","contain",Nw,Rw,{size:[we,ke]}],I=()=>[ou,fr,Ln],L=()=>["","none","full",d,we,ke],G=()=>["",Ie,fr,Ln],ue=()=>["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"],ge=()=>[Ie,ou,ih,eh],re=()=>["","none",w,we,ke],le=()=>["none",Ie,we,ke],je=()=>["none",Ie,we,ke],Pe=()=>[Ie,we,ke],Ze=()=>[zo,"full",...F()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Za],breakpoint:[Za],color:[Sw],container:[Za],"drop-shadow":[Za],ease:["in","out","in-out"],font:[Fw],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Za],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Za],shadow:[Za],spacing:["px",Ie],text:[Za],"text-shadow":[Za],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",zo,ke,we,v]}],container:["container"],columns:[{columns:[Ie,ke,we,c]}],"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:S()}],overflow:[{overflow:D()}],"overflow-x":[{"overflow-x":D()}],"overflow-y":[{"overflow-y":D()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:O()}],"inset-x":[{"inset-x":O()}],"inset-y":[{"inset-y":O()}],start:[{start:O()}],end:[{end:O()}],top:[{top:O()}],right:[{right:O()}],bottom:[{bottom:O()}],left:[{left:O()}],visibility:["visible","invisible","collapse"],z:[{z:[zn,"auto",we,ke]}],basis:[{basis:[zo,"full","auto",c,...F()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ie,zo,"auto","initial","none",ke]}],grow:[{grow:["",Ie,we,ke]}],shrink:[{shrink:["",Ie,we,ke]}],order:[{order:[zn,"first","last","none",we,ke]}],"grid-cols":[{"grid-cols":N()}],"col-start-end":[{col:R()}],"col-start":[{"col-start":V()}],"col-end":[{"col-end":V()}],"grid-rows":[{"grid-rows":N()}],"row-start-end":[{row:R()}],"row-start":[{"row-start":V()}],"row-end":[{"row-end":V()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":H()}],"auto-rows":[{"auto-rows":H()}],gap:[{gap:F()}],"gap-x":[{"gap-x":F()}],"gap-y":[{"gap-y":F()}],"justify-content":[{justify:[...$(),"normal"]}],"justify-items":[{"justify-items":[...ae(),"normal"]}],"justify-self":[{"justify-self":["auto",...ae()]}],"align-content":[{content:["normal",...$()]}],"align-items":[{items:[...ae(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ae(),{baseline:["","last"]}]}],"place-content":[{"place-content":$()}],"place-items":[{"place-items":[...ae(),"baseline"]}],"place-self":[{"place-self":["auto",...ae()]}],p:[{p:F()}],px:[{px:F()}],py:[{py:F()}],ps:[{ps:F()}],pe:[{pe:F()}],pt:[{pt:F()}],pr:[{pr:F()}],pb:[{pb:F()}],pl:[{pl:F()}],m:[{m:J()}],mx:[{mx:J()}],my:[{my:J()}],ms:[{ms:J()}],me:[{me:J()}],mt:[{mt:J()}],mr:[{mr:J()}],mb:[{mb:J()}],ml:[{ml:J()}],"space-x":[{"space-x":F()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":F()}],"space-y-reverse":["space-y-reverse"],size:[{size:ie()}],w:[{w:[c,"screen",...ie()]}],"min-w":[{"min-w":[c,"screen","none",...ie()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[m]},...ie()]}],h:[{h:["screen","lh",...ie()]}],"min-h":[{"min-h":["screen","lh","none",...ie()]}],"max-h":[{"max-h":["screen","lh",...ie()]}],"font-size":[{text:["base",o,fr,Ln]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,we,ru]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ou,ke]}],"font-family":[{font:[Pw,ke,r]}],"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:[u,we,ke]}],"line-clamp":[{"line-clamp":[Ie,"none",we,ru]}],leading:[{leading:[l,...F()]}],"list-image":[{"list-image":["none",we,ke]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",we,ke]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:W()}],"text-color":[{text:W()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ue(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ie,"from-font","auto",we,Ln]}],"text-decoration-color":[{decoration:W()}],"underline-offset":[{"underline-offset":[Ie,"auto",we,ke]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:F()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",we,ke]}],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",we,ke]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:oe()}],"bg-repeat":[{bg:ee()}],"bg-size":[{bg:z()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},zn,we,ke],radial:["",we,ke],conic:[zn,we,ke]},Iw,Tw]}],"bg-color":[{bg:W()}],"gradient-from-pos":[{from:I()}],"gradient-via-pos":[{via:I()}],"gradient-to-pos":[{to:I()}],"gradient-from":[{from:W()}],"gradient-via":[{via:W()}],"gradient-to":[{to:W()}],rounded:[{rounded:L()}],"rounded-s":[{"rounded-s":L()}],"rounded-e":[{"rounded-e":L()}],"rounded-t":[{"rounded-t":L()}],"rounded-r":[{"rounded-r":L()}],"rounded-b":[{"rounded-b":L()}],"rounded-l":[{"rounded-l":L()}],"rounded-ss":[{"rounded-ss":L()}],"rounded-se":[{"rounded-se":L()}],"rounded-ee":[{"rounded-ee":L()}],"rounded-es":[{"rounded-es":L()}],"rounded-tl":[{"rounded-tl":L()}],"rounded-tr":[{"rounded-tr":L()}],"rounded-br":[{"rounded-br":L()}],"rounded-bl":[{"rounded-bl":L()}],"border-w":[{border:G()}],"border-w-x":[{"border-x":G()}],"border-w-y":[{"border-y":G()}],"border-w-s":[{"border-s":G()}],"border-w-e":[{"border-e":G()}],"border-w-t":[{"border-t":G()}],"border-w-r":[{"border-r":G()}],"border-w-b":[{"border-b":G()}],"border-w-l":[{"border-l":G()}],"divide-x":[{"divide-x":G()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":G()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ue(),"hidden","none"]}],"divide-style":[{divide:[...ue(),"hidden","none"]}],"border-color":[{border:W()}],"border-color-x":[{"border-x":W()}],"border-color-y":[{"border-y":W()}],"border-color-s":[{"border-s":W()}],"border-color-e":[{"border-e":W()}],"border-color-t":[{"border-t":W()}],"border-color-r":[{"border-r":W()}],"border-color-b":[{"border-b":W()}],"border-color-l":[{"border-l":W()}],"divide-color":[{divide:W()}],"outline-style":[{outline:[...ue(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ie,we,ke]}],"outline-w":[{outline:["",Ie,fr,Ln]}],"outline-color":[{outline:W()}],shadow:[{shadow:["","none",y,Xs,Zs]}],"shadow-color":[{shadow:W()}],"inset-shadow":[{"inset-shadow":["none",g,Xs,Zs]}],"inset-shadow-color":[{"inset-shadow":W()}],"ring-w":[{ring:G()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:W()}],"ring-offset-w":[{"ring-offset":[Ie,Ln]}],"ring-offset-color":[{"ring-offset":W()}],"inset-ring-w":[{"inset-ring":G()}],"inset-ring-color":[{"inset-ring":W()}],"text-shadow":[{"text-shadow":["none",f,Xs,Zs]}],"text-shadow-color":[{"text-shadow":W()}],opacity:[{opacity:[Ie,we,ke]}],"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":[Ie]}],"mask-image-linear-from-pos":[{"mask-linear-from":ge()}],"mask-image-linear-to-pos":[{"mask-linear-to":ge()}],"mask-image-linear-from-color":[{"mask-linear-from":W()}],"mask-image-linear-to-color":[{"mask-linear-to":W()}],"mask-image-t-from-pos":[{"mask-t-from":ge()}],"mask-image-t-to-pos":[{"mask-t-to":ge()}],"mask-image-t-from-color":[{"mask-t-from":W()}],"mask-image-t-to-color":[{"mask-t-to":W()}],"mask-image-r-from-pos":[{"mask-r-from":ge()}],"mask-image-r-to-pos":[{"mask-r-to":ge()}],"mask-image-r-from-color":[{"mask-r-from":W()}],"mask-image-r-to-color":[{"mask-r-to":W()}],"mask-image-b-from-pos":[{"mask-b-from":ge()}],"mask-image-b-to-pos":[{"mask-b-to":ge()}],"mask-image-b-from-color":[{"mask-b-from":W()}],"mask-image-b-to-color":[{"mask-b-to":W()}],"mask-image-l-from-pos":[{"mask-l-from":ge()}],"mask-image-l-to-pos":[{"mask-l-to":ge()}],"mask-image-l-from-color":[{"mask-l-from":W()}],"mask-image-l-to-color":[{"mask-l-to":W()}],"mask-image-x-from-pos":[{"mask-x-from":ge()}],"mask-image-x-to-pos":[{"mask-x-to":ge()}],"mask-image-x-from-color":[{"mask-x-from":W()}],"mask-image-x-to-color":[{"mask-x-to":W()}],"mask-image-y-from-pos":[{"mask-y-from":ge()}],"mask-image-y-to-pos":[{"mask-y-to":ge()}],"mask-image-y-from-color":[{"mask-y-from":W()}],"mask-image-y-to-color":[{"mask-y-to":W()}],"mask-image-radial":[{"mask-radial":[we,ke]}],"mask-image-radial-from-pos":[{"mask-radial-from":ge()}],"mask-image-radial-to-pos":[{"mask-radial-to":ge()}],"mask-image-radial-from-color":[{"mask-radial-from":W()}],"mask-image-radial-to-color":[{"mask-radial-to":W()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":C()}],"mask-image-conic-pos":[{"mask-conic":[Ie]}],"mask-image-conic-from-pos":[{"mask-conic-from":ge()}],"mask-image-conic-to-pos":[{"mask-conic-to":ge()}],"mask-image-conic-from-color":[{"mask-conic-from":W()}],"mask-image-conic-to-color":[{"mask-conic-to":W()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:oe()}],"mask-repeat":[{mask:ee()}],"mask-size":[{mask:z()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",we,ke]}],filter:[{filter:["","none",we,ke]}],blur:[{blur:re()}],brightness:[{brightness:[Ie,we,ke]}],contrast:[{contrast:[Ie,we,ke]}],"drop-shadow":[{"drop-shadow":["","none",x,Xs,Zs]}],"drop-shadow-color":[{"drop-shadow":W()}],grayscale:[{grayscale:["",Ie,we,ke]}],"hue-rotate":[{"hue-rotate":[Ie,we,ke]}],invert:[{invert:["",Ie,we,ke]}],saturate:[{saturate:[Ie,we,ke]}],sepia:[{sepia:["",Ie,we,ke]}],"backdrop-filter":[{"backdrop-filter":["","none",we,ke]}],"backdrop-blur":[{"backdrop-blur":re()}],"backdrop-brightness":[{"backdrop-brightness":[Ie,we,ke]}],"backdrop-contrast":[{"backdrop-contrast":[Ie,we,ke]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ie,we,ke]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ie,we,ke]}],"backdrop-invert":[{"backdrop-invert":["",Ie,we,ke]}],"backdrop-opacity":[{"backdrop-opacity":[Ie,we,ke]}],"backdrop-saturate":[{"backdrop-saturate":[Ie,we,ke]}],"backdrop-sepia":[{"backdrop-sepia":["",Ie,we,ke]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":F()}],"border-spacing-x":[{"border-spacing-x":F()}],"border-spacing-y":[{"border-spacing-y":F()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",we,ke]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ie,"initial",we,ke]}],ease:[{ease:["linear","initial",A,we,ke]}],delay:[{delay:[Ie,we,ke]}],animate:[{animate:["none",q,we,ke]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[j,we,ke]}],"perspective-origin":[{"perspective-origin":S()}],rotate:[{rotate:le()}],"rotate-x":[{"rotate-x":le()}],"rotate-y":[{"rotate-y":le()}],"rotate-z":[{"rotate-z":le()}],scale:[{scale:je()}],"scale-x":[{"scale-x":je()}],"scale-y":[{"scale-y":je()}],"scale-z":[{"scale-z":je()}],"scale-3d":["scale-3d"],skew:[{skew:Pe()}],"skew-x":[{"skew-x":Pe()}],"skew-y":[{"skew-y":Pe()}],transform:[{transform:[we,ke,"","none","gpu","cpu"]}],"transform-origin":[{origin:S()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ze()}],"translate-x":[{"translate-x":Ze()}],"translate-y":[{"translate-y":Ze()}],"translate-z":[{"translate-z":Ze()}],"translate-none":["translate-none"],accent:[{accent:W()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:W()}],"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",we,ke]}],"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":F()}],"scroll-mx":[{"scroll-mx":F()}],"scroll-my":[{"scroll-my":F()}],"scroll-ms":[{"scroll-ms":F()}],"scroll-me":[{"scroll-me":F()}],"scroll-mt":[{"scroll-mt":F()}],"scroll-mr":[{"scroll-mr":F()}],"scroll-mb":[{"scroll-mb":F()}],"scroll-ml":[{"scroll-ml":F()}],"scroll-p":[{"scroll-p":F()}],"scroll-px":[{"scroll-px":F()}],"scroll-py":[{"scroll-py":F()}],"scroll-ps":[{"scroll-ps":F()}],"scroll-pe":[{"scroll-pe":F()}],"scroll-pt":[{"scroll-pt":F()}],"scroll-pr":[{"scroll-pr":F()}],"scroll-pb":[{"scroll-pb":F()}],"scroll-pl":[{"scroll-pl":F()}],"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",we,ke]}],fill:[{fill:["none",...W()]}],"stroke-w":[{stroke:[Ie,fr,Ln,ru]}],stroke:[{stroke:["none",...W()]}],"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"]}},Lw=ww(Hw);function Ke(...a){return Lw(Xg(a))}const wi=B.forwardRef(({className:a,type:r,...o},t)=>_.jsx("input",{type:r,className:Ke("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",a),ref:t,...o}));wi.displayName="Input";function ah(a,r){if(typeof a=="function")return a(r);a!=null&&(a.current=r)}function Or(...a){return r=>{let o=!1;const t=a.map(u=>{const l=ah(u,r);return!o&&typeof l=="function"&&(o=!0),l});if(o)return()=>{for(let u=0;u{let{children:l,...m}=t;dy(l)&&typeof $t=="function"&&(l=$t(l._payload));const c=B.Children.toArray(l),h=c.find($w);if(h){const d=h.props.children,y=c.map(g=>g===h?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:g);return _.jsx(r,{...m,ref:u,children:B.isValidElement(d)?B.cloneElement(d,void 0,y):null})}return _.jsx(r,{...m,ref:u,children:l})});return o.displayName=`${a}.Slot`,o}var Ww=Iu("Slot");function Gw(a){const r=B.forwardRef((o,t)=>{let{children:u,...l}=o;if(dy(u)&&typeof $t=="function"&&(u=$t(u._payload)),B.isValidElement(u)){const m=Yw(u),c=Kw(l,u.props);return u.type!==B.Fragment&&(c.ref=t?Or(t,m):m),B.cloneElement(u,c)}return B.Children.count(u)>1?B.Children.only(null):null});return r.displayName=`${a}.SlotClone`,r}var Qw=Symbol("radix.slottable");function $w(a){return B.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===Qw}function Kw(a,r){const o={...r};for(const t in r){const u=a[t],l=r[t];/^on[A-Z]/.test(t)?u&&l?o[t]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[t]=u):t==="style"?o[t]={...u,...l}:t==="className"&&(o[t]=[u,l].filter(Boolean).join(" "))}return{...a,...o}}function Yw(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}const nh=a=>typeof a=="boolean"?`${a}`:a===0?"0":a,oh=Xg,il=(a,r)=>o=>{var t;if((r==null?void 0:r.variants)==null)return oh(a,o==null?void 0:o.class,o==null?void 0:o.className);const{variants:u,defaultVariants:l}=r,m=Object.keys(u).map(d=>{const y=o==null?void 0:o[d],g=l==null?void 0:l[d];if(y===null)return null;const f=nh(y)||nh(g);return u[d][f]}),c=o&&Object.entries(o).reduce((d,y)=>{let[g,f]=y;return f===void 0||(d[g]=f),d},{}),h=r==null||(t=r.compoundVariants)===null||t===void 0?void 0:t.reduce((d,y)=>{let{class:g,className:f,...x}=y;return Object.entries(x).every(w=>{let[j,v]=w;return Array.isArray(v)?v.includes({...l,...c}[j]):{...l,...c}[j]===v})?[...d,g,f]:d},[]);return oh(a,m,h,o==null?void 0:o.class,o==null?void 0:o.className)},Zw=il("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"}}),Ha=B.forwardRef(({className:a,variant:r,size:o,asChild:t=!1,...u},l)=>{const m=t?Ww:"button";return _.jsx(m,{className:Ke(Zw({variant:r,size:o,className:a})),ref:l,...u})});Ha.displayName="Button";function Xw(){try{return localStorage.getItem("remoteterm-sortOrder")==="alpha"?"alpha":"recent"}catch{return"recent"}}function Jw(a){try{localStorage.setItem("remoteterm-sortOrder",a)}catch{}}function ex({contacts:a,channels:r,activeConversation:o,onSelectConversation:t,onNewMessage:u,lastMessageTimes:l,unreadCounts:m,showCracker:c,crackerRunning:h,onToggleCracker:d,onMarkAllRead:y}){const[g,f]=B.useState(Xw),[x,w]=B.useState(""),j=()=>{const R=g==="alpha"?"recent":"alpha";f(R),Jw(R)},v=R=>{w(""),t(R)},A=(R,V)=>(o==null?void 0:o.type)===R&&(o==null?void 0:o.id)===V,q=(R,V)=>{const H=an(R,V);return m[H]||0},k=(R,V)=>{const H=an(R,V);return l[H]||0},C=r.reduce((R,V)=>(R.some(H=>H.name===V.name)||R.push(V),R),[]),S=a.filter(R=>R.public_key&&R.public_key.length>0).sort((R,V)=>R.name&&!V.name?-1:!R.name&&V.name?1:(R.name||"").localeCompare(V.name||"")).reduce((R,V)=>{const H=Bo(V.public_key);return R.some($=>Bo($.public_key)===H)||R.push(V),R},[]),D=[...C].sort((R,V)=>{if(R.name==="Public")return-1;if(V.name==="Public")return 1;if(g==="recent"){const H=k("channel",R.key),$=k("channel",V.key);if(H&&$)return $-H;if(H&&!$)return-1;if(!H&&$)return 1}return R.name.localeCompare(V.name)}),T=[...S].sort((R,V)=>{const H=R.type===xu,$=V.type===xu;if(H&&!$)return 1;if(!H&&$)return-1;if(H&&$)return(R.name||R.public_key).localeCompare(V.name||V.public_key);if(g==="recent"){const ae=k("contact",R.public_key),J=k("contact",V.public_key);if(ae&&J)return J-ae;if(ae&&!J)return-1;if(!ae&&J)return 1}return(R.name||R.public_key).localeCompare(V.name||V.public_key)}),F=x.toLowerCase().trim(),O=F?D.filter(R=>R.name.toLowerCase().includes(F)):D,N=F?T.filter(R=>{var V;return((V=R.name)==null?void 0:V.toLowerCase().includes(F))||R.public_key.toLowerCase().includes(F)}):T;return _.jsxs("div",{className:"sidebar w-60 h-full min-h-0 bg-card border-r border-border flex flex-col",children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-3 border-b border-border",children:[_.jsx("h2",{className:"text-xs uppercase text-muted-foreground font-medium",children:"Conversations"}),_.jsx(Ha,{variant:"ghost",size:"sm",onClick:u,title:"New Message",className:"h-6 w-6 p-0 text-muted-foreground hover:text-foreground",children:"+"})]}),_.jsxs("div",{className:"relative px-3 py-2 border-b border-border",children:[_.jsx(wi,{type:"text",placeholder:"Search...",value:x,onChange:R=>w(R.target.value),className:"h-8 text-sm pr-8"}),x&&_.jsx("button",{className:"absolute right-4 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground text-lg leading-none",onClick:()=>w(""),title:"Clear search",children:"×"})]}),_.jsxs("div",{className:"flex-1 overflow-y-auto",children:[!F&&_.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("raw","raw")&&"bg-accent border-l-primary"),onClick:()=>v({type:"raw",id:"raw",name:"Raw Packet Feed"}),children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"📡"}),_.jsx("span",{className:"flex-1 truncate",children:"Packet Feed"})]}),!F&&_.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",c&&"bg-accent border-l-primary"),onClick:d,children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"🔓"}),_.jsxs("span",{className:"flex-1 truncate",children:[c?"Hide":"Show"," Cracker",_.jsxs("span",{className:Ke("ml-1 text-xs",h?"text-green-500":"text-muted-foreground"),children:["(",h?"running":"stopped",")"]})]})]}),!F&&Object.keys(m).length>0&&_.jsxs("div",{className:"px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",onClick:y,children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"✓"}),_.jsx("span",{className:"flex-1 truncate text-muted-foreground",children:"Mark all as read"})]}),O.length>0&&_.jsxs(_.Fragment,{children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[_.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Channels"}),_.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:j,title:g==="alpha"?"Sort by recent":"Sort alphabetically",children:g==="alpha"?"A-Z":"⏱"})]}),O.map(R=>{const V=q("channel",R.key);return _.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("channel",R.key)&&"bg-accent border-l-primary",V>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"channel",id:R.key,name:R.name}),children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"#"}),_.jsx("span",{className:"name flex-1 truncate",children:R.name}),V>0&&_.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:V})]},`chan-${R.key}`)})]}),N.length>0&&_.jsxs(_.Fragment,{children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[_.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Contacts"}),O.length===0&&_.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:j,title:g==="alpha"?"Sort by recent":"Sort alphabetically",children:g==="alpha"?"A-Z":"⏱"})]}),N.map(R=>{const V=q("contact",R.public_key);return _.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("contact",R.public_key)&&"bg-accent border-l-primary",V>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"contact",id:R.public_key,name:Kn(R.name,R.public_key)}),children:[_.jsx(Yg,{name:R.name,publicKey:R.public_key,size:24,contactType:R.type}),_.jsx("span",{className:"name flex-1 truncate",children:Kn(R.name,R.public_key)}),V>0&&_.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:V})]},R.public_key)})]}),N.length===0&&O.length===0&&_.jsx("div",{className:"p-5 text-center text-muted-foreground",children:F?"No matches found":"No conversations yet"})]})]})}function rh(a){const r=a.indexOf(": ");if(r>0&&r<50){const o=a.substring(0,r);if(!/[:\[\]]/.test(o))return{sender:o,content:a.substring(r+2)}}return{sender:null,content:a}}function sh(a){const r=new Date(a*1e3),o=new Date,t=r.toDateString()===o.toDateString(),u=r.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return t?u:`${r.toLocaleDateString([],{month:"short",day:"numeric"})} ${u}`}function ix({messages:a,contacts:r,loading:o,loadingOlder:t=!1,hasOlderMessages:u=!1,onSenderClick:l,onLoadOlder:m}){const c=B.useRef(null),h=B.useRef(0),d=B.useRef(!0),[y,g]=B.useState(!1),f=B.useRef({scrollTop:0,scrollHeight:0,wasNearTop:!1});B.useLayoutEffect(()=>{if(!c.current)return;const C=c.current,S=a.length-h.current;if(d.current&&a.length>0)C.scrollTop=C.scrollHeight,d.current=!1;else if(S>0&&h.current>0){const D=C.scrollHeight-f.current.scrollHeight;f.current.wasNearTop&&D>0?C.scrollTop=f.current.scrollTop+D:f.current.wasNearTop||(C.scrollTop=C.scrollHeight)}h.current=a.length},[a]),B.useEffect(()=>{a.length===0&&(d.current=!0,h.current=0,f.current={scrollTop:0,scrollHeight:0,wasNearTop:!1})},[a.length]);const x=B.useCallback(()=>{if(!c.current)return;const{scrollTop:C,scrollHeight:S,clientHeight:D}=c.current;f.current={scrollTop:C,scrollHeight:S,wasNearTop:C<150};const T=S-C-D;g(T>100),!(!m||t||!u)&&C<100&&m()},[m,t,u]),w=B.useCallback(()=>{c.current&&(c.current.scrollTop=c.current.scrollHeight)},[]),j=C=>C&&r.find(S=>$g(S.public_key,C))||null,v=C=>r.find(S=>S.name===C)||null;if(o)return _.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"Loading messages..."});if(a.length===0)return _.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"No messages yet"});const q=[...a.reduce((C,S)=>{const D=`${S.type}-${S.conversation_key}-${S.text}-${S.sender_timestamp}`;return C.find(F=>`${F.type}-${F.conversation_key}-${F.text}-${F.sender_timestamp}`===D)||C.push(S),C},[])].sort((C,S)=>C.received_at-S.received_at),k=(C,S)=>C.outgoing?"__outgoing__":C.type==="PRIV"&&C.conversation_key?C.conversation_key:S||"__unknown__";return _.jsxs("div",{className:"flex-1 overflow-hidden relative",children:[_.jsxs("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-0.5",ref:c,onScroll:x,children:[t&&_.jsx("div",{className:"text-center py-2 text-muted-foreground text-sm",children:"Loading older messages..."}),!t&&u&&_.jsx("div",{className:"text-center py-2 text-muted-foreground text-xs",children:"Scroll up for older messages"}),q.map((C,S)=>{var W;const{sender:D,content:T}=rh(C.text),F=C.type==="PRIV"?j(C.conversation_key):null,O=C.outgoing?"You":(F==null?void 0:F.name)||D||((W=C.conversation_key)==null?void 0:W.slice(0,8))||"Unknown",N=!C.outgoing&&l&&O!=="Unknown",R=k(C,D),V=q[S-1],H=V?k(V,rh(V.text).sender):null,$=!C.outgoing&&R!==H,ae=S===0;let J=null,ie="";if(!C.outgoing){if(C.type==="PRIV"&&C.conversation_key)J=(F==null?void 0:F.name)||null,ie=C.conversation_key;else if(D){const oe=v(D);J=D,ie=(oe==null?void 0:oe.public_key)||`name:${D}`}}return _.jsxs("div",{className:Ke("flex items-start max-w-[85%]",C.outgoing&&"flex-row-reverse self-end",$&&!ae&&"mt-3"),children:[!C.outgoing&&_.jsx("div",{className:"w-10 flex-shrink-0 flex items-start pt-0.5",children:$&&ie&&_.jsx(Yg,{name:J,publicKey:ie,size:32})}),_.jsxs("div",{className:Ke("py-1.5 px-3 rounded-lg min-w-0",C.outgoing?"bg-[#1e3a29]":"bg-muted"),children:[$&&_.jsxs("div",{className:"text-[13px] font-semibold text-muted-foreground mb-0.5",children:[N?_.jsx("span",{className:"cursor-pointer hover:text-primary hover:underline",onClick:()=>l(O),title:`Mention ${O}`,children:O}):O,_.jsx("span",{className:"font-normal text-muted-foreground/70 ml-2 text-[11px]",children:sh(C.sender_timestamp||C.received_at)})]}),_.jsxs("div",{className:"break-words whitespace-pre-wrap",children:[T.split(` + */const bk=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Wg=Pu("x",bk);var Gg=Vg();const Qg=Fo(Gg);function fk(a){if(typeof document>"u")return;let r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r.appendChild(o),o.styleSheet?o.styleSheet.cssText=a:o.appendChild(document.createTextNode(a))}const vk=a=>{switch(a){case"success":return xk;case"info":return qk;case"warning":return zk;case"error":return jk;default:return null}},kk=Array(12).fill(0),wk=({visible:a,className:r})=>me.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":a},me.createElement("div",{className:"sonner-spinner"},kk.map((o,t)=>me.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${t}`})))),xk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.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"})),zk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},me.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"})),qk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.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"})),jk=me.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},me.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"})),Ak=me.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"},me.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),me.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Ck=()=>{const[a,r]=me.useState(document.hidden);return me.useEffect(()=>{const o=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),a};let vu=1;class Ek{constructor(){this.subscribe=r=>(this.subscribers.push(r),()=>{const o=this.subscribers.indexOf(r);this.subscribers.splice(o,1)}),this.publish=r=>{this.subscribers.forEach(o=>o(r))},this.addToast=r=>{this.publish(r),this.toasts=[...this.toasts,r]},this.create=r=>{var o;const{message:t,...u}=r,l=typeof(r==null?void 0:r.id)=="number"||((o=r.id)==null?void 0:o.length)>0?r.id:vu++,m=this.toasts.find(h=>h.id===l),c=r.dismissible===void 0?!0:r.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),m?this.toasts=this.toasts.map(h=>h.id===l?(this.publish({...h,...r,id:l,title:t}),{...h,...r,id:l,dismissible:c,title:t}):h):this.addToast({title:t,...u,dismissible:c,id:l}),l},this.dismiss=r=>(r?(this.dismissedToasts.add(r),requestAnimationFrame(()=>this.subscribers.forEach(o=>o({id:r,dismiss:!0})))):this.toasts.forEach(o=>{this.subscribers.forEach(t=>t({id:o.id,dismiss:!0}))}),r),this.message=(r,o)=>this.create({...o,message:r}),this.error=(r,o)=>this.create({...o,message:r,type:"error"}),this.success=(r,o)=>this.create({...o,type:"success",message:r}),this.info=(r,o)=>this.create({...o,type:"info",message:r}),this.warning=(r,o)=>this.create({...o,type:"warning",message:r}),this.loading=(r,o)=>this.create({...o,type:"loading",message:r}),this.promise=(r,o)=>{if(!o)return;let t;o.loading!==void 0&&(t=this.create({...o,promise:r,type:"loading",message:o.loading,description:typeof o.description!="function"?o.description:void 0}));const u=Promise.resolve(r instanceof Function?r():r);let l=t!==void 0,m;const c=u.then(async d=>{if(m=["resolve",d],me.isValidElement(d))l=!1,this.create({id:t,type:"default",message:d});else if(Bk(d)&&!d.ok){l=!1;const g=typeof o.error=="function"?await o.error(`HTTP error! status: ${d.status}`):o.error,f=typeof o.description=="function"?await o.description(`HTTP error! status: ${d.status}`):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"error",description:f,...w})}else if(d instanceof Error){l=!1;const g=typeof o.error=="function"?await o.error(d):o.error,f=typeof o.description=="function"?await o.description(d):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"error",description:f,...w})}else if(o.success!==void 0){l=!1;const g=typeof o.success=="function"?await o.success(d):o.success,f=typeof o.description=="function"?await o.description(d):o.description,w=typeof g=="object"&&!me.isValidElement(g)?g:{message:g};this.create({id:t,type:"success",description:f,...w})}}).catch(async d=>{if(m=["reject",d],o.error!==void 0){l=!1;const y=typeof o.error=="function"?await o.error(d):o.error,g=typeof o.description=="function"?await o.description(d):o.description,x=typeof y=="object"&&!me.isValidElement(y)?y:{message:y};this.create({id:t,type:"error",description:g,...x})}}).finally(()=>{l&&(this.dismiss(t),t=void 0),o.finally==null||o.finally.call(o)}),h=()=>new Promise((d,y)=>c.then(()=>m[0]==="reject"?y(m[1]):d(m[1])).catch(y));return typeof t!="string"&&typeof t!="number"?{unwrap:h}:Object.assign(t,{unwrap:h})},this.custom=(r,o)=>{const t=(o==null?void 0:o.id)||vu++;return this.create({jsx:r(t),id:t,...o}),t},this.getActiveToasts=()=>this.toasts.filter(r=>!this.dismissedToasts.has(r.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const na=new Ek,Sk=(a,r)=>{const o=(r==null?void 0:r.id)||vu++;return na.addToast({title:a,...r,id:o}),o},Bk=a=>a&&typeof a=="object"&&"ok"in a&&typeof a.ok=="boolean"&&"status"in a&&typeof a.status=="number",_k=Sk,Dk=()=>na.toasts,Fk=()=>na.getActiveToasts(),Tr=Object.assign(_k,{success:na.success,info:na.info,warning:na.warning,error:na.error,custom:na.custom,message:na.message,promise:na.promise,dismiss:na.dismiss,loading:na.loading},{getHistory:Dk,getToasts:Fk});fk("[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 Ys(a){return a.label!==void 0}const Rk=3,Tk="24px",Pk="16px",$m=4e3,Nk=356,Ik=14,Mk=45,Ok=200;function Na(...a){return a.filter(Boolean).join(" ")}function Hk(a){const[r,o]=a.split("-"),t=[];return r&&t.push(r),o&&t.push(o),t}const Lk=a=>{var r,o,t,u,l,m,c,h,d;const{invert:y,toast:g,unstyled:f,interacting:x,setHeights:w,visibleToasts:j,heights:v,index:A,toasts:q,expanded:k,removeToast:C,defaultRichColors:S,closeButton:D,style:T,cancelButtonStyle:F,actionButtonStyle:O,className:N="",descriptionClassName:R="",duration:V,position:H,gap:$,expandByDefault:ae,classNames:J,icons:ie,closeButtonAriaLabel:W="Close toast"}=a,[oe,ee]=me.useState(null),[z,I]=me.useState(null),[L,G]=me.useState(!1),[ue,he]=me.useState(!1),[ge,re]=me.useState(!1),[le,je]=me.useState(!1),[Pe,Ze]=me.useState(!1),[Je,_e]=me.useState(0),[Ge,ei]=me.useState(0),Ve=me.useRef(g.duration||V||$m),xi=me.useRef(null),ai=me.useRef(null),Ti=A===0,si=A+1<=j,We=g.type,mi=g.dismissible!==!1,$i=g.className||"",va=g.descriptionClassName||"",zi=me.useMemo(()=>v.findIndex(Ae=>Ae.toastId===g.id)||0,[v,g.id]),Oi=me.useMemo(()=>{var Ae;return(Ae=g.closeButton)!=null?Ae:D},[g.closeButton,D]),Ki=me.useMemo(()=>g.duration||V||$m,[g.duration,V]),oa=me.useRef(0),qi=me.useRef(0),ci=me.useRef(0),Z=me.useRef(null),[de,ze]=H.split("-"),K=me.useMemo(()=>v.reduce((Ae,Oe,Ue)=>Ue>=zi?Ae:Ae+Oe.height,0),[v,zi]),ne=Ck(),ye=g.invert||y,Fe=We==="loading";qi.current=me.useMemo(()=>zi*$+K,[zi,K]),me.useEffect(()=>{Ve.current=Ki},[Ki]),me.useEffect(()=>{G(!0)},[]),me.useEffect(()=>{const Ae=ai.current;if(Ae){const Oe=Ae.getBoundingClientRect().height;return ei(Oe),w(Ue=>[{toastId:g.id,height:Oe,position:g.position},...Ue]),()=>w(Ue=>Ue.filter(hi=>hi.toastId!==g.id))}},[w,g.id]),me.useLayoutEffect(()=>{if(!L)return;const Ae=ai.current,Oe=Ae.style.height;Ae.style.height="auto";const Ue=Ae.getBoundingClientRect().height;Ae.style.height=Oe,ei(Ue),w(hi=>hi.find(He=>He.toastId===g.id)?hi.map(He=>He.toastId===g.id?{...He,height:Ue}:He):[{toastId:g.id,height:Ue,position:g.position},...hi])},[L,g.title,g.description,w,g.id,g.jsx,g.action,g.cancel]);const Be=me.useCallback(()=>{he(!0),_e(qi.current),w(Ae=>Ae.filter(Oe=>Oe.toastId!==g.id)),setTimeout(()=>{C(g)},Ok)},[g,C,w,qi]);me.useEffect(()=>{if(g.promise&&We==="loading"||g.duration===1/0||g.type==="loading")return;let Ae;return k||x||ne?(()=>{if(ci.current{Ve.current!==1/0&&(oa.current=new Date().getTime(),Ae=setTimeout(()=>{g.onAutoClose==null||g.onAutoClose.call(g,g),Be()},Ve.current))})(),()=>clearTimeout(Ae)},[k,x,g,We,ne,Be]),me.useEffect(()=>{g.delete&&(Be(),g.onDismiss==null||g.onDismiss.call(g,g))},[Be,g.delete]);function Ne(){var Ae;if(ie!=null&&ie.loading){var Oe;return me.createElement("div",{className:Na(J==null?void 0:J.loader,g==null||(Oe=g.classNames)==null?void 0:Oe.loader,"sonner-loader"),"data-visible":We==="loading"},ie.loading)}return me.createElement(wk,{className:Na(J==null?void 0:J.loader,g==null||(Ae=g.classNames)==null?void 0:Ae.loader),visible:We==="loading"})}const Re=g.icon||(ie==null?void 0:ie[We])||vk(We);var Te,ji;return me.createElement("li",{tabIndex:0,ref:ai,className:Na(N,$i,J==null?void 0:J.toast,g==null||(r=g.classNames)==null?void 0:r.toast,J==null?void 0:J.default,J==null?void 0:J[We],g==null||(o=g.classNames)==null?void 0:o[We]),"data-sonner-toast":"","data-rich-colors":(Te=g.richColors)!=null?Te:S,"data-styled":!(g.jsx||g.unstyled||f),"data-mounted":L,"data-promise":!!g.promise,"data-swiped":Pe,"data-removed":ue,"data-visible":si,"data-y-position":de,"data-x-position":ze,"data-index":A,"data-front":Ti,"data-swiping":ge,"data-dismissible":mi,"data-type":We,"data-invert":ye,"data-swipe-out":le,"data-swipe-direction":z,"data-expanded":!!(k||ae&&L),"data-testid":g.testId,style:{"--index":A,"--toasts-before":A,"--z-index":q.length-A,"--offset":`${ue?Je:qi.current}px`,"--initial-height":ae?"auto":`${Ge}px`,...T,...g.style},onDragEnd:()=>{re(!1),ee(null),Z.current=null},onPointerDown:Ae=>{Ae.button!==2&&(Fe||!mi||(xi.current=new Date,_e(qi.current),Ae.target.setPointerCapture(Ae.pointerId),Ae.target.tagName!=="BUTTON"&&(re(!0),Z.current={x:Ae.clientX,y:Ae.clientY})))},onPointerUp:()=>{var Ae,Oe,Ue;if(le||!mi)return;Z.current=null;const hi=Number(((Ae=ai.current)==null?void 0:Ae.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),da=Number(((Oe=ai.current)==null?void 0:Oe.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),He=new Date().getTime()-((Ue=xi.current)==null?void 0:Ue.getTime()),ni=oe==="x"?hi:da,ka=Math.abs(ni)/He;if(Math.abs(ni)>=Mk||ka>.11){_e(qi.current),g.onDismiss==null||g.onDismiss.call(g,g),I(oe==="x"?hi>0?"right":"left":da>0?"down":"up"),Be(),je(!0);return}else{var Ye,gi;(Ye=ai.current)==null||Ye.style.setProperty("--swipe-amount-x","0px"),(gi=ai.current)==null||gi.style.setProperty("--swipe-amount-y","0px")}Ze(!1),re(!1),ee(null)},onPointerMove:Ae=>{var Oe,Ue,hi;if(!Z.current||!mi||((Oe=window.getSelection())==null?void 0:Oe.toString().length)>0)return;const He=Ae.clientY-Z.current.y,ni=Ae.clientX-Z.current.x;var ka;const Ye=(ka=a.swipeDirections)!=null?ka:Hk(H);!oe&&(Math.abs(ni)>1||Math.abs(He)>1)&&ee(Math.abs(ni)>Math.abs(He)?"x":"y");let gi={x:0,y:0};const wa=Yi=>1/(1.5+Math.abs(Yi)/20);if(oe==="y"){if(Ye.includes("top")||Ye.includes("bottom"))if(Ye.includes("top")&&He<0||Ye.includes("bottom")&&He>0)gi.y=He;else{const Yi=He*wa(He);gi.y=Math.abs(Yi)0)gi.x=ni;else{const Yi=ni*wa(ni);gi.x=Math.abs(Yi)0||Math.abs(gi.y)>0)&&Ze(!0),(Ue=ai.current)==null||Ue.style.setProperty("--swipe-amount-x",`${gi.x}px`),(hi=ai.current)==null||hi.style.setProperty("--swipe-amount-y",`${gi.y}px`)}},Oi&&!g.jsx&&We!=="loading"?me.createElement("button",{"aria-label":W,"data-disabled":Fe,"data-close-button":!0,onClick:Fe||!mi?()=>{}:()=>{Be(),g.onDismiss==null||g.onDismiss.call(g,g)},className:Na(J==null?void 0:J.closeButton,g==null||(t=g.classNames)==null?void 0:t.closeButton)},(ji=ie==null?void 0:ie.close)!=null?ji:Ak):null,(We||g.icon||g.promise)&&g.icon!==null&&((ie==null?void 0:ie[We])!==null||g.icon)?me.createElement("div",{"data-icon":"",className:Na(J==null?void 0:J.icon,g==null||(u=g.classNames)==null?void 0:u.icon)},g.promise||g.type==="loading"&&!g.icon?g.icon||Ne():null,g.type!=="loading"?Re:null):null,me.createElement("div",{"data-content":"",className:Na(J==null?void 0:J.content,g==null||(l=g.classNames)==null?void 0:l.content)},me.createElement("div",{"data-title":"",className:Na(J==null?void 0:J.title,g==null||(m=g.classNames)==null?void 0:m.title)},g.jsx?g.jsx:typeof g.title=="function"?g.title():g.title),g.description?me.createElement("div",{"data-description":"",className:Na(R,va,J==null?void 0:J.description,g==null||(c=g.classNames)==null?void 0:c.description)},typeof g.description=="function"?g.description():g.description):null),me.isValidElement(g.cancel)?g.cancel:g.cancel&&Ys(g.cancel)?me.createElement("button",{"data-button":!0,"data-cancel":!0,style:g.cancelButtonStyle||F,onClick:Ae=>{Ys(g.cancel)&&mi&&(g.cancel.onClick==null||g.cancel.onClick.call(g.cancel,Ae),Be())},className:Na(J==null?void 0:J.cancelButton,g==null||(h=g.classNames)==null?void 0:h.cancelButton)},g.cancel.label):null,me.isValidElement(g.action)?g.action:g.action&&Ys(g.action)?me.createElement("button",{"data-button":!0,"data-action":!0,style:g.actionButtonStyle||O,onClick:Ae=>{Ys(g.action)&&(g.action.onClick==null||g.action.onClick.call(g.action,Ae),!Ae.defaultPrevented&&Be())},className:Na(J==null?void 0:J.actionButton,g==null||(d=g.classNames)==null?void 0:d.actionButton)},g.action.label):null)};function Km(){if(typeof window>"u"||typeof document>"u")return"ltr";const a=document.documentElement.getAttribute("dir");return a==="auto"||!a?window.getComputedStyle(document.documentElement).direction:a}function Vk(a,r){const o={};return[a,r].forEach((t,u)=>{const l=u===1,m=l?"--mobile-offset":"--offset",c=l?Pk:Tk;function h(d){["top","right","bottom","left"].forEach(y=>{o[`${m}-${y}`]=typeof d=="number"?`${d}px`:d})}typeof t=="number"||typeof t=="string"?h(t):typeof t=="object"?["top","right","bottom","left"].forEach(d=>{t[d]===void 0?o[`${m}-${d}`]=c:o[`${m}-${d}`]=typeof t[d]=="number"?`${t[d]}px`:t[d]}):h(c)}),o}const Uk=me.forwardRef(function(r,o){const{id:t,invert:u,position:l="bottom-right",hotkey:m=["altKey","KeyT"],expand:c,closeButton:h,className:d,offset:y,mobileOffset:g,theme:f="light",richColors:x,duration:w,style:j,visibleToasts:v=Rk,toastOptions:A,dir:q=Km(),gap:k=Ik,icons:C,containerAriaLabel:S="Notifications"}=r,[D,T]=me.useState([]),F=me.useMemo(()=>t?D.filter(L=>L.toasterId===t):D.filter(L=>!L.toasterId),[D,t]),O=me.useMemo(()=>Array.from(new Set([l].concat(F.filter(L=>L.position).map(L=>L.position)))),[F,l]),[N,R]=me.useState([]),[V,H]=me.useState(!1),[$,ae]=me.useState(!1),[J,ie]=me.useState(f!=="system"?f:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),W=me.useRef(null),oe=m.join("+").replace(/Key/g,"").replace(/Digit/g,""),ee=me.useRef(null),z=me.useRef(!1),I=me.useCallback(L=>{T(G=>{var ue;return(ue=G.find(he=>he.id===L.id))!=null&&ue.delete||na.dismiss(L.id),G.filter(({id:he})=>he!==L.id)})},[]);return me.useEffect(()=>na.subscribe(L=>{if(L.dismiss){requestAnimationFrame(()=>{T(G=>G.map(ue=>ue.id===L.id?{...ue,delete:!0}:ue))});return}setTimeout(()=>{Qg.flushSync(()=>{T(G=>{const ue=G.findIndex(he=>he.id===L.id);return ue!==-1?[...G.slice(0,ue),{...G[ue],...L},...G.slice(ue+1)]:[L,...G]})})})}),[D]),me.useEffect(()=>{if(f!=="system"){ie(f);return}if(f==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?ie("dark"):ie("light")),typeof window>"u")return;const L=window.matchMedia("(prefers-color-scheme: dark)");try{L.addEventListener("change",({matches:G})=>{ie(G?"dark":"light")})}catch{L.addListener(({matches:ue})=>{try{ie(ue?"dark":"light")}catch(he){console.error(he)}})}},[f]),me.useEffect(()=>{D.length<=1&&H(!1)},[D]),me.useEffect(()=>{const L=G=>{var ue;if(m.every(re=>G[re]||G.code===re)){var ge;H(!0),(ge=W.current)==null||ge.focus()}G.code==="Escape"&&(document.activeElement===W.current||(ue=W.current)!=null&&ue.contains(document.activeElement))&&H(!1)};return document.addEventListener("keydown",L),()=>document.removeEventListener("keydown",L)},[m]),me.useEffect(()=>{if(W.current)return()=>{ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null,z.current=!1)}},[W.current]),me.createElement("section",{ref:o,"aria-label":`${S} ${oe}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},O.map((L,G)=>{var ue;const[he,ge]=L.split("-");return F.length?me.createElement("ol",{key:L,dir:q==="auto"?Km():q,tabIndex:-1,ref:W,className:d,"data-sonner-toaster":!0,"data-sonner-theme":J,"data-y-position":he,"data-x-position":ge,style:{"--front-toast-height":`${((ue=N[0])==null?void 0:ue.height)||0}px`,"--width":`${Nk}px`,"--gap":`${k}px`,...j,...Vk(y,g)},onBlur:re=>{z.current&&!re.currentTarget.contains(re.relatedTarget)&&(z.current=!1,ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null))},onFocus:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||z.current||(z.current=!0,ee.current=re.relatedTarget)},onMouseEnter:()=>H(!0),onMouseMove:()=>H(!0),onMouseLeave:()=>{$||H(!1)},onDragEnd:()=>H(!1),onPointerDown:re=>{re.target instanceof HTMLElement&&re.target.dataset.dismissible==="false"||ae(!0)},onPointerUp:()=>ae(!1)},F.filter(re=>!re.position&&G===0||re.position===L).map((re,le)=>{var je,Pe;return me.createElement(Lk,{key:re.id,icons:C,index:le,toast:re,defaultRichColors:x,duration:(je=A==null?void 0:A.duration)!=null?je:w,className:A==null?void 0:A.className,descriptionClassName:A==null?void 0:A.descriptionClassName,invert:u,visibleToasts:v,closeButton:(Pe=A==null?void 0:A.closeButton)!=null?Pe:h,interacting:$,position:L,style:A==null?void 0:A.style,unstyled:A==null?void 0:A.unstyled,classNames:A==null?void 0:A.classNames,cancelButtonStyle:A==null?void 0:A.cancelButtonStyle,actionButtonStyle:A==null?void 0:A.actionButtonStyle,closeButtonAriaLabel:A==null?void 0:A.closeButtonAriaLabel,removeToast:I,toasts:F.filter(Ze=>Ze.position==re.position),heights:N.filter(Ze=>Ze.position==re.position),setHeights:R,expandByDefault:c,gap:k,expanded:V,swipeDirections:r.swipeDirections})})):null}))}),Wk=({...a})=>_.jsx(Uk,{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]"}},...a});function Gk({health:a,config:r,onConfigClick:o,onAdvertise:t,onMenuClick:u}){const l=(a==null?void 0:a.radio_connected)??!1,[m,c]=B.useState(!1),h=async()=>{c(!0);try{const d=await ii.reconnectRadio();d.connected&&Tr.success("Reconnected",{description:d.message})}catch(d){Tr.error("Reconnection failed",{description:d instanceof Error?d.message:"Check radio connection and power"})}finally{c(!1)}};return _.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-[#252525] border-b border-[#333] text-xs",children:[u&&_.jsx("button",{onClick:u,className:"md:hidden p-1 bg-transparent border-none text-[#e0e0e0] cursor-pointer","aria-label":"Open menu",children:_.jsx(yk,{className:"h-5 w-5"})}),_.jsx("h1",{className:"hidden lg:block text-base font-semibold mr-auto",children:"RemoteTerm"}),_.jsxs("div",{className:"flex items-center gap-1 text-[#888]",children:[_.jsx("div",{className:`w-2 h-2 rounded-full ${l?"bg-[#4caf50]":"bg-[#666]"}`}),_.jsx("span",{className:"hidden lg:inline text-[#e0e0e0]",children:l?"Connected":"Disconnected"})]}),(a==null?void 0:a.serial_port)&&_.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["Port: ",_.jsx("span",{className:"text-[#e0e0e0]",children:a.serial_port})]}),r&&_.jsxs(_.Fragment,{children:[_.jsx("div",{className:"hidden lg:flex items-center gap-1 text-[#888]",children:_.jsx("span",{className:"text-[#e0e0e0]",children:r.name||"Unnamed"})}),_.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:[r.radio.freq," MHz/SF",r.radio.sf,"/CR",r.radio.cr,"/",r.tx_power,"dBm"]})]}),_.jsx("div",{className:"flex-1 lg:hidden"}),!l&&_.jsx("button",{onClick:h,disabled:m,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:m?"Reconnecting...":"Reconnect"}),_.jsx("button",{onClick:t,disabled:!l,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"}),_.jsx("button",{onClick:o,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",children:"Config"})]})}const Qk=12;function Bo(a){return a.slice(0,Qk)}function $g(a,r){return!a||!r?!1:Bo(a)===Bo(r)}function Kn(a,r){return a||Bo(r)}const ku="remoteterm-lastMessageTime",wu="remoteterm-lastReadTime";function el(a){try{const r=localStorage.getItem(a);return r?JSON.parse(r):{}}catch{return{}}}function Kg(a,r){try{localStorage.setItem(a,JSON.stringify(r))}catch{}}function Ym(){return el(ku)}function $k(){return el(wu)}function au(a,r){const o=el(ku);return(!o[a]||r>o[a])&&(o[a]=r,Kg(ku,o)),o}function nu(a,r){const o=el(wu);return o[a]=r,Kg(wu,o),o}function an(a,r){return a==="channel"?`channel-${r}`:`contact-${Bo(r)}`}const xu=2,Kk={text:"🛜",background:"#444444",textColor:"#ffffff"};function Yk(a){let r=0;for(let o=0;o>8)%30,u=35+(r>>16)%20,l=`hsl(${o}, ${t}%, ${u}%)`,m=u<45?"#ffffff":"#000000";return{background:l,text:m}}function ew(a,r,o){if(o===xu)return Kk;const t=Xk(a,r),u=Jk(r);return{text:t,background:u.background,textColor:u.text}}function Yg({name:a,publicKey:r,size:o=28,contactType:t}){const u=ew(a,r,t);return _.jsx("div",{className:"flex items-center justify-center rounded-full font-semibold flex-shrink-0 select-none",style:{backgroundColor:u.background,color:u.textColor,width:o,height:o,fontSize:o*.45},children:u.text})}function Zg(a){var r,o,t="";if(typeof a=="string"||typeof a=="number")t+=a;else if(typeof a=="object")if(Array.isArray(a)){var u=a.length;for(r=0;r{const o=new Array(a.length+r.length);for(let t=0;t({classGroupId:a,validator:r}),Jg=(a=new Map,r=null,o)=>({nextPart:a,validators:r,classGroupId:o}),Qt="-",Zm=[],nw="arbitrary..",ow=a=>{const r=sw(a),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=a;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return rw(m);const c=m.split(Qt),h=c[0]===""&&c.length>1?1:0;return ey(c,h,r)},getConflictingClassGroupIds:(m,c)=>{if(c){const h=t[m],d=o[m];return h?d?iw(d,h):h:d||Zm}return o[m]||Zm}}},ey=(a,r,o)=>{if(a.length-r===0)return o.classGroupId;const u=a[r],l=o.nextPart.get(u);if(l){const d=ey(a,r+1,l);if(d)return d}const m=o.validators;if(m===null)return;const c=r===0?a.join(Qt):a.slice(r).join(Qt),h=m.length;for(let d=0;da.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=a.slice(1,-1),o=r.indexOf(":"),t=r.slice(0,o);return t?nw+t:void 0})(),sw=a=>{const{theme:r,classGroups:o}=a;return tw(o,r)},tw=(a,r)=>{const o=Jg();for(const t in a){const u=a[t];Nu(u,o,t,r)}return o},Nu=(a,r,o,t)=>{const u=a.length;for(let l=0;l{if(typeof a=="string"){cw(a,r,o);return}if(typeof a=="function"){uw(a,r,o,t);return}dw(a,r,o,t)},cw=(a,r,o)=>{const t=a===""?r:iy(r,a);t.classGroupId=o},uw=(a,r,o,t)=>{if(pw(a)){Nu(a(t),r,o,t);return}r.validators===null&&(r.validators=[]),r.validators.push(aw(o,a))},dw=(a,r,o,t)=>{const u=Object.entries(a),l=u.length;for(let m=0;m{let o=a;const t=r.split(Qt),u=t.length;for(let l=0;l"isThemeGetter"in a&&a.isThemeGetter===!0,mw=a=>{if(a<1)return{get:()=>{},set:()=>{}};let r=0,o=Object.create(null),t=Object.create(null);const u=(l,m)=>{o[l]=m,r++,r>a&&(r=0,t=o,o=Object.create(null))};return{get(l){let m=o[l];if(m!==void 0)return m;if((m=t[l])!==void 0)return u(l,m),m},set(l,m){l in o?o[l]=m:u(l,m)}}},zu="!",Xm=":",hw=[],Jm=(a,r,o,t,u)=>({modifiers:a,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:t,isExternal:u}),gw=a=>{const{prefix:r,experimentalParseClassName:o}=a;let t=u=>{const l=[];let m=0,c=0,h=0,d;const y=u.length;for(let j=0;jh?d-h:void 0;return Jm(l,x,f,w)};if(r){const u=r+Xm,l=t;t=m=>m.startsWith(u)?l(m.slice(u.length)):Jm(hw,!1,m,void 0,!0)}if(o){const u=t;t=l=>o({className:l,parseClassName:u})}return t},yw=a=>{const r=new Map;return a.orderSensitiveModifiers.forEach((o,t)=>{r.set(o,1e6+t)}),o=>{const t=[];let u=[];for(let l=0;l0&&(u.sort(),t.push(...u),u=[]),t.push(m)):u.push(m)}return u.length>0&&(u.sort(),t.push(...u)),t}},bw=a=>({cache:mw(a.cacheSize),parseClassName:gw(a),sortModifiers:yw(a),...ow(a)}),fw=/\s+/,vw=(a,r)=>{const{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:u,sortModifiers:l}=r,m=[],c=a.trim().split(fw);let h="";for(let d=c.length-1;d>=0;d-=1){const y=c[d],{isExternal:g,modifiers:f,hasImportantModifier:x,baseClassName:w,maybePostfixModifierPosition:j}=o(y);if(g){h=y+(h.length>0?" "+h:h);continue}let v=!!j,A=t(v?w.substring(0,j):w);if(!A){if(!v){h=y+(h.length>0?" "+h:h);continue}if(A=t(w),!A){h=y+(h.length>0?" "+h:h);continue}v=!1}const q=f.length===0?"":f.length===1?f[0]:l(f).join(":"),k=x?q+zu:q,C=k+A;if(m.indexOf(C)>-1)continue;m.push(C);const S=u(A,v);for(let D=0;D0?" "+h:h)}return h},kw=(...a)=>{let r=0,o,t,u="";for(;r{if(typeof a=="string")return a;let r,o="";for(let t=0;t{let o,t,u,l;const m=h=>{const d=r.reduce((y,g)=>g(y),a());return o=bw(d),t=o.cache.get,u=o.cache.set,l=c,c(h)},c=h=>{const d=t(h);if(d)return d;const y=vw(h,o);return u(h,y),y};return l=m,(...h)=>l(kw(...h))},xw=[],Ei=a=>{const r=o=>o[a]||xw;return r.isThemeGetter=!0,r},ny=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,oy=/^\((?:(\w[\w-]*):)?(.+)\)$/i,zw=/^\d+\/\d+$/,qw=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,jw=/\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$/,Aw=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Cw=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ew=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,zo=a=>zw.test(a),Ie=a=>!!a&&!Number.isNaN(Number(a)),zn=a=>!!a&&Number.isInteger(Number(a)),ou=a=>a.endsWith("%")&&Ie(a.slice(0,-1)),Za=a=>qw.test(a),Sw=()=>!0,Bw=a=>jw.test(a)&&!Aw.test(a),ry=()=>!1,_w=a=>Cw.test(a),Dw=a=>Ew.test(a),Fw=a=>!ke(a)&&!we(a),Rw=a=>Ro(a,ly,ry),ke=a=>ny.test(a),Ln=a=>Ro(a,cy,Bw),ru=a=>Ro(a,Mw,Ie),eh=a=>Ro(a,sy,ry),Tw=a=>Ro(a,ty,Dw),Zs=a=>Ro(a,uy,_w),we=a=>oy.test(a),fr=a=>To(a,cy),Pw=a=>To(a,Ow),ih=a=>To(a,sy),Nw=a=>To(a,ly),Iw=a=>To(a,ty),Xs=a=>To(a,uy,!0),Ro=(a,r,o)=>{const t=ny.exec(a);return t?t[1]?r(t[1]):o(t[2]):!1},To=(a,r,o=!1)=>{const t=oy.exec(a);return t?t[1]?r(t[1]):o:!1},sy=a=>a==="position"||a==="percentage",ty=a=>a==="image"||a==="url",ly=a=>a==="length"||a==="size"||a==="bg-size",cy=a=>a==="length",Mw=a=>a==="number",Ow=a=>a==="family-name",uy=a=>a==="shadow",Hw=()=>{const a=Ei("color"),r=Ei("font"),o=Ei("text"),t=Ei("font-weight"),u=Ei("tracking"),l=Ei("leading"),m=Ei("breakpoint"),c=Ei("container"),h=Ei("spacing"),d=Ei("radius"),y=Ei("shadow"),g=Ei("inset-shadow"),f=Ei("text-shadow"),x=Ei("drop-shadow"),w=Ei("blur"),j=Ei("perspective"),v=Ei("aspect"),A=Ei("ease"),q=Ei("animate"),k=()=>["auto","avoid","all","avoid-page","page","left","right","column"],C=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],S=()=>[...C(),we,ke],D=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],F=()=>[we,ke,h],O=()=>[zo,"full","auto",...F()],N=()=>[zn,"none","subgrid",we,ke],R=()=>["auto",{span:["full",zn,we,ke]},zn,we,ke],V=()=>[zn,"auto",we,ke],H=()=>["auto","min","max","fr",we,ke],$=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ae=()=>["start","end","center","stretch","center-safe","end-safe"],J=()=>["auto",...F()],ie=()=>[zo,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...F()],W=()=>[a,we,ke],oe=()=>[...C(),ih,eh,{position:[we,ke]}],ee=()=>["no-repeat",{repeat:["","x","y","space","round"]}],z=()=>["auto","cover","contain",Nw,Rw,{size:[we,ke]}],I=()=>[ou,fr,Ln],L=()=>["","none","full",d,we,ke],G=()=>["",Ie,fr,Ln],ue=()=>["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"],ge=()=>[Ie,ou,ih,eh],re=()=>["","none",w,we,ke],le=()=>["none",Ie,we,ke],je=()=>["none",Ie,we,ke],Pe=()=>[Ie,we,ke],Ze=()=>[zo,"full",...F()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Za],breakpoint:[Za],color:[Sw],container:[Za],"drop-shadow":[Za],ease:["in","out","in-out"],font:[Fw],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Za],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Za],shadow:[Za],spacing:["px",Ie],text:[Za],"text-shadow":[Za],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",zo,ke,we,v]}],container:["container"],columns:[{columns:[Ie,ke,we,c]}],"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:S()}],overflow:[{overflow:D()}],"overflow-x":[{"overflow-x":D()}],"overflow-y":[{"overflow-y":D()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:O()}],"inset-x":[{"inset-x":O()}],"inset-y":[{"inset-y":O()}],start:[{start:O()}],end:[{end:O()}],top:[{top:O()}],right:[{right:O()}],bottom:[{bottom:O()}],left:[{left:O()}],visibility:["visible","invisible","collapse"],z:[{z:[zn,"auto",we,ke]}],basis:[{basis:[zo,"full","auto",c,...F()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ie,zo,"auto","initial","none",ke]}],grow:[{grow:["",Ie,we,ke]}],shrink:[{shrink:["",Ie,we,ke]}],order:[{order:[zn,"first","last","none",we,ke]}],"grid-cols":[{"grid-cols":N()}],"col-start-end":[{col:R()}],"col-start":[{"col-start":V()}],"col-end":[{"col-end":V()}],"grid-rows":[{"grid-rows":N()}],"row-start-end":[{row:R()}],"row-start":[{"row-start":V()}],"row-end":[{"row-end":V()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":H()}],"auto-rows":[{"auto-rows":H()}],gap:[{gap:F()}],"gap-x":[{"gap-x":F()}],"gap-y":[{"gap-y":F()}],"justify-content":[{justify:[...$(),"normal"]}],"justify-items":[{"justify-items":[...ae(),"normal"]}],"justify-self":[{"justify-self":["auto",...ae()]}],"align-content":[{content:["normal",...$()]}],"align-items":[{items:[...ae(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ae(),{baseline:["","last"]}]}],"place-content":[{"place-content":$()}],"place-items":[{"place-items":[...ae(),"baseline"]}],"place-self":[{"place-self":["auto",...ae()]}],p:[{p:F()}],px:[{px:F()}],py:[{py:F()}],ps:[{ps:F()}],pe:[{pe:F()}],pt:[{pt:F()}],pr:[{pr:F()}],pb:[{pb:F()}],pl:[{pl:F()}],m:[{m:J()}],mx:[{mx:J()}],my:[{my:J()}],ms:[{ms:J()}],me:[{me:J()}],mt:[{mt:J()}],mr:[{mr:J()}],mb:[{mb:J()}],ml:[{ml:J()}],"space-x":[{"space-x":F()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":F()}],"space-y-reverse":["space-y-reverse"],size:[{size:ie()}],w:[{w:[c,"screen",...ie()]}],"min-w":[{"min-w":[c,"screen","none",...ie()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[m]},...ie()]}],h:[{h:["screen","lh",...ie()]}],"min-h":[{"min-h":["screen","lh","none",...ie()]}],"max-h":[{"max-h":["screen","lh",...ie()]}],"font-size":[{text:["base",o,fr,Ln]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,we,ru]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ou,ke]}],"font-family":[{font:[Pw,ke,r]}],"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:[u,we,ke]}],"line-clamp":[{"line-clamp":[Ie,"none",we,ru]}],leading:[{leading:[l,...F()]}],"list-image":[{"list-image":["none",we,ke]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",we,ke]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:W()}],"text-color":[{text:W()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ue(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ie,"from-font","auto",we,Ln]}],"text-decoration-color":[{decoration:W()}],"underline-offset":[{"underline-offset":[Ie,"auto",we,ke]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:F()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",we,ke]}],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",we,ke]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:oe()}],"bg-repeat":[{bg:ee()}],"bg-size":[{bg:z()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},zn,we,ke],radial:["",we,ke],conic:[zn,we,ke]},Iw,Tw]}],"bg-color":[{bg:W()}],"gradient-from-pos":[{from:I()}],"gradient-via-pos":[{via:I()}],"gradient-to-pos":[{to:I()}],"gradient-from":[{from:W()}],"gradient-via":[{via:W()}],"gradient-to":[{to:W()}],rounded:[{rounded:L()}],"rounded-s":[{"rounded-s":L()}],"rounded-e":[{"rounded-e":L()}],"rounded-t":[{"rounded-t":L()}],"rounded-r":[{"rounded-r":L()}],"rounded-b":[{"rounded-b":L()}],"rounded-l":[{"rounded-l":L()}],"rounded-ss":[{"rounded-ss":L()}],"rounded-se":[{"rounded-se":L()}],"rounded-ee":[{"rounded-ee":L()}],"rounded-es":[{"rounded-es":L()}],"rounded-tl":[{"rounded-tl":L()}],"rounded-tr":[{"rounded-tr":L()}],"rounded-br":[{"rounded-br":L()}],"rounded-bl":[{"rounded-bl":L()}],"border-w":[{border:G()}],"border-w-x":[{"border-x":G()}],"border-w-y":[{"border-y":G()}],"border-w-s":[{"border-s":G()}],"border-w-e":[{"border-e":G()}],"border-w-t":[{"border-t":G()}],"border-w-r":[{"border-r":G()}],"border-w-b":[{"border-b":G()}],"border-w-l":[{"border-l":G()}],"divide-x":[{"divide-x":G()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":G()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ue(),"hidden","none"]}],"divide-style":[{divide:[...ue(),"hidden","none"]}],"border-color":[{border:W()}],"border-color-x":[{"border-x":W()}],"border-color-y":[{"border-y":W()}],"border-color-s":[{"border-s":W()}],"border-color-e":[{"border-e":W()}],"border-color-t":[{"border-t":W()}],"border-color-r":[{"border-r":W()}],"border-color-b":[{"border-b":W()}],"border-color-l":[{"border-l":W()}],"divide-color":[{divide:W()}],"outline-style":[{outline:[...ue(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ie,we,ke]}],"outline-w":[{outline:["",Ie,fr,Ln]}],"outline-color":[{outline:W()}],shadow:[{shadow:["","none",y,Xs,Zs]}],"shadow-color":[{shadow:W()}],"inset-shadow":[{"inset-shadow":["none",g,Xs,Zs]}],"inset-shadow-color":[{"inset-shadow":W()}],"ring-w":[{ring:G()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:W()}],"ring-offset-w":[{"ring-offset":[Ie,Ln]}],"ring-offset-color":[{"ring-offset":W()}],"inset-ring-w":[{"inset-ring":G()}],"inset-ring-color":[{"inset-ring":W()}],"text-shadow":[{"text-shadow":["none",f,Xs,Zs]}],"text-shadow-color":[{"text-shadow":W()}],opacity:[{opacity:[Ie,we,ke]}],"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":[Ie]}],"mask-image-linear-from-pos":[{"mask-linear-from":ge()}],"mask-image-linear-to-pos":[{"mask-linear-to":ge()}],"mask-image-linear-from-color":[{"mask-linear-from":W()}],"mask-image-linear-to-color":[{"mask-linear-to":W()}],"mask-image-t-from-pos":[{"mask-t-from":ge()}],"mask-image-t-to-pos":[{"mask-t-to":ge()}],"mask-image-t-from-color":[{"mask-t-from":W()}],"mask-image-t-to-color":[{"mask-t-to":W()}],"mask-image-r-from-pos":[{"mask-r-from":ge()}],"mask-image-r-to-pos":[{"mask-r-to":ge()}],"mask-image-r-from-color":[{"mask-r-from":W()}],"mask-image-r-to-color":[{"mask-r-to":W()}],"mask-image-b-from-pos":[{"mask-b-from":ge()}],"mask-image-b-to-pos":[{"mask-b-to":ge()}],"mask-image-b-from-color":[{"mask-b-from":W()}],"mask-image-b-to-color":[{"mask-b-to":W()}],"mask-image-l-from-pos":[{"mask-l-from":ge()}],"mask-image-l-to-pos":[{"mask-l-to":ge()}],"mask-image-l-from-color":[{"mask-l-from":W()}],"mask-image-l-to-color":[{"mask-l-to":W()}],"mask-image-x-from-pos":[{"mask-x-from":ge()}],"mask-image-x-to-pos":[{"mask-x-to":ge()}],"mask-image-x-from-color":[{"mask-x-from":W()}],"mask-image-x-to-color":[{"mask-x-to":W()}],"mask-image-y-from-pos":[{"mask-y-from":ge()}],"mask-image-y-to-pos":[{"mask-y-to":ge()}],"mask-image-y-from-color":[{"mask-y-from":W()}],"mask-image-y-to-color":[{"mask-y-to":W()}],"mask-image-radial":[{"mask-radial":[we,ke]}],"mask-image-radial-from-pos":[{"mask-radial-from":ge()}],"mask-image-radial-to-pos":[{"mask-radial-to":ge()}],"mask-image-radial-from-color":[{"mask-radial-from":W()}],"mask-image-radial-to-color":[{"mask-radial-to":W()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":C()}],"mask-image-conic-pos":[{"mask-conic":[Ie]}],"mask-image-conic-from-pos":[{"mask-conic-from":ge()}],"mask-image-conic-to-pos":[{"mask-conic-to":ge()}],"mask-image-conic-from-color":[{"mask-conic-from":W()}],"mask-image-conic-to-color":[{"mask-conic-to":W()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:oe()}],"mask-repeat":[{mask:ee()}],"mask-size":[{mask:z()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",we,ke]}],filter:[{filter:["","none",we,ke]}],blur:[{blur:re()}],brightness:[{brightness:[Ie,we,ke]}],contrast:[{contrast:[Ie,we,ke]}],"drop-shadow":[{"drop-shadow":["","none",x,Xs,Zs]}],"drop-shadow-color":[{"drop-shadow":W()}],grayscale:[{grayscale:["",Ie,we,ke]}],"hue-rotate":[{"hue-rotate":[Ie,we,ke]}],invert:[{invert:["",Ie,we,ke]}],saturate:[{saturate:[Ie,we,ke]}],sepia:[{sepia:["",Ie,we,ke]}],"backdrop-filter":[{"backdrop-filter":["","none",we,ke]}],"backdrop-blur":[{"backdrop-blur":re()}],"backdrop-brightness":[{"backdrop-brightness":[Ie,we,ke]}],"backdrop-contrast":[{"backdrop-contrast":[Ie,we,ke]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ie,we,ke]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ie,we,ke]}],"backdrop-invert":[{"backdrop-invert":["",Ie,we,ke]}],"backdrop-opacity":[{"backdrop-opacity":[Ie,we,ke]}],"backdrop-saturate":[{"backdrop-saturate":[Ie,we,ke]}],"backdrop-sepia":[{"backdrop-sepia":["",Ie,we,ke]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":F()}],"border-spacing-x":[{"border-spacing-x":F()}],"border-spacing-y":[{"border-spacing-y":F()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",we,ke]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ie,"initial",we,ke]}],ease:[{ease:["linear","initial",A,we,ke]}],delay:[{delay:[Ie,we,ke]}],animate:[{animate:["none",q,we,ke]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[j,we,ke]}],"perspective-origin":[{"perspective-origin":S()}],rotate:[{rotate:le()}],"rotate-x":[{"rotate-x":le()}],"rotate-y":[{"rotate-y":le()}],"rotate-z":[{"rotate-z":le()}],scale:[{scale:je()}],"scale-x":[{"scale-x":je()}],"scale-y":[{"scale-y":je()}],"scale-z":[{"scale-z":je()}],"scale-3d":["scale-3d"],skew:[{skew:Pe()}],"skew-x":[{"skew-x":Pe()}],"skew-y":[{"skew-y":Pe()}],transform:[{transform:[we,ke,"","none","gpu","cpu"]}],"transform-origin":[{origin:S()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ze()}],"translate-x":[{"translate-x":Ze()}],"translate-y":[{"translate-y":Ze()}],"translate-z":[{"translate-z":Ze()}],"translate-none":["translate-none"],accent:[{accent:W()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:W()}],"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",we,ke]}],"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":F()}],"scroll-mx":[{"scroll-mx":F()}],"scroll-my":[{"scroll-my":F()}],"scroll-ms":[{"scroll-ms":F()}],"scroll-me":[{"scroll-me":F()}],"scroll-mt":[{"scroll-mt":F()}],"scroll-mr":[{"scroll-mr":F()}],"scroll-mb":[{"scroll-mb":F()}],"scroll-ml":[{"scroll-ml":F()}],"scroll-p":[{"scroll-p":F()}],"scroll-px":[{"scroll-px":F()}],"scroll-py":[{"scroll-py":F()}],"scroll-ps":[{"scroll-ps":F()}],"scroll-pe":[{"scroll-pe":F()}],"scroll-pt":[{"scroll-pt":F()}],"scroll-pr":[{"scroll-pr":F()}],"scroll-pb":[{"scroll-pb":F()}],"scroll-pl":[{"scroll-pl":F()}],"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",we,ke]}],fill:[{fill:["none",...W()]}],"stroke-w":[{stroke:[Ie,fr,Ln,ru]}],stroke:[{stroke:["none",...W()]}],"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"]}},Lw=ww(Hw);function Ke(...a){return Lw(Xg(a))}const wi=B.forwardRef(({className:a,type:r,...o},t)=>_.jsx("input",{type:r,className:Ke("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",a),ref:t,...o}));wi.displayName="Input";function ah(a,r){if(typeof a=="function")return a(r);a!=null&&(a.current=r)}function Or(...a){return r=>{let o=!1;const t=a.map(u=>{const l=ah(u,r);return!o&&typeof l=="function"&&(o=!0),l});if(o)return()=>{for(let u=0;u{let{children:l,...m}=t;dy(l)&&typeof $t=="function"&&(l=$t(l._payload));const c=B.Children.toArray(l),h=c.find($w);if(h){const d=h.props.children,y=c.map(g=>g===h?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:g);return _.jsx(r,{...m,ref:u,children:B.isValidElement(d)?B.cloneElement(d,void 0,y):null})}return _.jsx(r,{...m,ref:u,children:l})});return o.displayName=`${a}.Slot`,o}var Ww=Iu("Slot");function Gw(a){const r=B.forwardRef((o,t)=>{let{children:u,...l}=o;if(dy(u)&&typeof $t=="function"&&(u=$t(u._payload)),B.isValidElement(u)){const m=Yw(u),c=Kw(l,u.props);return u.type!==B.Fragment&&(c.ref=t?Or(t,m):m),B.cloneElement(u,c)}return B.Children.count(u)>1?B.Children.only(null):null});return r.displayName=`${a}.SlotClone`,r}var Qw=Symbol("radix.slottable");function $w(a){return B.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===Qw}function Kw(a,r){const o={...r};for(const t in r){const u=a[t],l=r[t];/^on[A-Z]/.test(t)?u&&l?o[t]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[t]=u):t==="style"?o[t]={...u,...l}:t==="className"&&(o[t]=[u,l].filter(Boolean).join(" "))}return{...a,...o}}function Yw(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}const nh=a=>typeof a=="boolean"?`${a}`:a===0?"0":a,oh=Xg,il=(a,r)=>o=>{var t;if((r==null?void 0:r.variants)==null)return oh(a,o==null?void 0:o.class,o==null?void 0:o.className);const{variants:u,defaultVariants:l}=r,m=Object.keys(u).map(d=>{const y=o==null?void 0:o[d],g=l==null?void 0:l[d];if(y===null)return null;const f=nh(y)||nh(g);return u[d][f]}),c=o&&Object.entries(o).reduce((d,y)=>{let[g,f]=y;return f===void 0||(d[g]=f),d},{}),h=r==null||(t=r.compoundVariants)===null||t===void 0?void 0:t.reduce((d,y)=>{let{class:g,className:f,...x}=y;return Object.entries(x).every(w=>{let[j,v]=w;return Array.isArray(v)?v.includes({...l,...c}[j]):{...l,...c}[j]===v})?[...d,g,f]:d},[]);return oh(a,m,h,o==null?void 0:o.class,o==null?void 0:o.className)},Zw=il("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"}}),Ha=B.forwardRef(({className:a,variant:r,size:o,asChild:t=!1,...u},l)=>{const m=t?Ww:"button";return _.jsx(m,{className:Ke(Zw({variant:r,size:o,className:a})),ref:l,...u})});Ha.displayName="Button";function Xw(){try{return localStorage.getItem("remoteterm-sortOrder")==="alpha"?"alpha":"recent"}catch{return"recent"}}function Jw(a){try{localStorage.setItem("remoteterm-sortOrder",a)}catch{}}function ex({contacts:a,channels:r,activeConversation:o,onSelectConversation:t,onNewMessage:u,lastMessageTimes:l,unreadCounts:m,showCracker:c,crackerRunning:h,onToggleCracker:d,onMarkAllRead:y}){const[g,f]=B.useState(Xw),[x,w]=B.useState(""),j=()=>{const R=g==="alpha"?"recent":"alpha";f(R),Jw(R)},v=R=>{w(""),t(R)},A=(R,V)=>(o==null?void 0:o.type)===R&&(o==null?void 0:o.id)===V,q=(R,V)=>{const H=an(R,V);return m[H]||0},k=(R,V)=>{const H=an(R,V);return l[H]||0},C=r.reduce((R,V)=>(R.some(H=>H.name===V.name)||R.push(V),R),[]),S=a.filter(R=>R.public_key&&R.public_key.length>0).sort((R,V)=>R.name&&!V.name?-1:!R.name&&V.name?1:(R.name||"").localeCompare(V.name||"")).reduce((R,V)=>{const H=Bo(V.public_key);return R.some($=>Bo($.public_key)===H)||R.push(V),R},[]),D=[...C].sort((R,V)=>{if(R.name==="Public")return-1;if(V.name==="Public")return 1;if(g==="recent"){const H=k("channel",R.key),$=k("channel",V.key);if(H&&$)return $-H;if(H&&!$)return-1;if(!H&&$)return 1}return R.name.localeCompare(V.name)}),T=[...S].sort((R,V)=>{const H=R.type===xu,$=V.type===xu;if(H&&!$)return 1;if(!H&&$)return-1;if(H&&$)return(R.name||R.public_key).localeCompare(V.name||V.public_key);if(g==="recent"){const ae=k("contact",R.public_key),J=k("contact",V.public_key);if(ae&&J)return J-ae;if(ae&&!J)return-1;if(!ae&&J)return 1}return(R.name||R.public_key).localeCompare(V.name||V.public_key)}),F=x.toLowerCase().trim(),O=F?D.filter(R=>R.name.toLowerCase().includes(F)):D,N=F?T.filter(R=>{var V;return((V=R.name)==null?void 0:V.toLowerCase().includes(F))||R.public_key.toLowerCase().includes(F)}):T;return _.jsxs("div",{className:"sidebar w-60 h-full min-h-0 bg-card border-r border-border flex flex-col",children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-3 border-b border-border",children:[_.jsx("h2",{className:"text-xs uppercase text-muted-foreground font-medium",children:"Conversations"}),_.jsx(Ha,{variant:"ghost",size:"sm",onClick:u,title:"New Message",className:"h-6 w-6 p-0 text-muted-foreground hover:text-foreground",children:"+"})]}),_.jsxs("div",{className:"relative px-3 py-2 border-b border-border",children:[_.jsx(wi,{type:"text",placeholder:"Search...",value:x,onChange:R=>w(R.target.value),className:"h-8 text-sm pr-8"}),x&&_.jsx("button",{className:"absolute right-4 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground text-lg leading-none",onClick:()=>w(""),title:"Clear search",children:"×"})]}),_.jsxs("div",{className:"flex-1 overflow-y-auto",children:[!F&&_.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("raw","raw")&&"bg-accent border-l-primary"),onClick:()=>v({type:"raw",id:"raw",name:"Raw Packet Feed"}),children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"📡"}),_.jsx("span",{className:"flex-1 truncate",children:"Packet Feed"})]}),!F&&_.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",c&&"bg-accent border-l-primary"),onClick:d,children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"🔓"}),_.jsxs("span",{className:"flex-1 truncate",children:[c?"Hide":"Show"," Cracker",_.jsxs("span",{className:Ke("ml-1 text-xs",h?"text-green-500":"text-muted-foreground"),children:["(",h?"running":"stopped",")"]})]})]}),!F&&Object.keys(m).length>0&&_.jsxs("div",{className:"px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",onClick:y,children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"✓"}),_.jsx("span",{className:"flex-1 truncate text-muted-foreground",children:"Mark all as read"})]}),O.length>0&&_.jsxs(_.Fragment,{children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[_.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Channels"}),_.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:j,title:g==="alpha"?"Sort by recent":"Sort alphabetically",children:g==="alpha"?"A-Z":"⏱"})]}),O.map(R=>{const V=q("channel",R.key);return _.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("channel",R.key)&&"bg-accent border-l-primary",V>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"channel",id:R.key,name:R.name}),children:[_.jsx("span",{className:"text-muted-foreground text-xs",children:"#"}),_.jsx("span",{className:"name flex-1 truncate",children:R.name}),V>0&&_.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:V})]},`chan-${R.key}`)})]}),N.length>0&&_.jsxs(_.Fragment,{children:[_.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[_.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Contacts"}),O.length===0&&_.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:j,title:g==="alpha"?"Sort by recent":"Sort alphabetically",children:g==="alpha"?"A-Z":"⏱"})]}),N.map(R=>{const V=q("contact",R.public_key);return _.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",A("contact",R.public_key)&&"bg-accent border-l-primary",V>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"contact",id:R.public_key,name:Kn(R.name,R.public_key)}),children:[_.jsx(Yg,{name:R.name,publicKey:R.public_key,size:24,contactType:R.type}),_.jsx("span",{className:"name flex-1 truncate",children:Kn(R.name,R.public_key)}),V>0&&_.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:V})]},R.public_key)})]}),N.length===0&&O.length===0&&_.jsx("div",{className:"p-5 text-center text-muted-foreground",children:F?"No matches found":"No conversations yet"})]})]})}function rh(a){const r=a.indexOf(": ");if(r>0&&r<50){const o=a.substring(0,r);if(!/[:\[\]]/.test(o))return{sender:o,content:a.substring(r+2)}}return{sender:null,content:a}}function sh(a){const r=new Date(a*1e3),o=new Date,t=r.toDateString()===o.toDateString(),u=r.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return t?u:`${r.toLocaleDateString([],{month:"short",day:"numeric"})} ${u}`}function ix({messages:a,contacts:r,loading:o,loadingOlder:t=!1,hasOlderMessages:u=!1,onSenderClick:l,onLoadOlder:m}){const c=B.useRef(null),h=B.useRef(0),d=B.useRef(!0),[y,g]=B.useState(!1),f=B.useRef({scrollTop:0,scrollHeight:0,wasNearTop:!1});B.useLayoutEffect(()=>{if(!c.current)return;const C=c.current,S=a.length-h.current;if(d.current&&a.length>0)C.scrollTop=C.scrollHeight,d.current=!1;else if(S>0&&h.current>0){const D=C.scrollHeight-f.current.scrollHeight;f.current.wasNearTop&&D>0?C.scrollTop=f.current.scrollTop+D:f.current.wasNearTop||(C.scrollTop=C.scrollHeight)}h.current=a.length},[a]),B.useEffect(()=>{a.length===0&&(d.current=!0,h.current=0,f.current={scrollTop:0,scrollHeight:0,wasNearTop:!1})},[a.length]);const x=B.useCallback(()=>{if(!c.current)return;const{scrollTop:C,scrollHeight:S,clientHeight:D}=c.current;f.current={scrollTop:C,scrollHeight:S,wasNearTop:C<150};const T=S-C-D;g(T>100),!(!m||t||!u)&&C<100&&m()},[m,t,u]),w=B.useCallback(()=>{c.current&&(c.current.scrollTop=c.current.scrollHeight)},[]),j=C=>C&&r.find(S=>$g(S.public_key,C))||null,v=C=>r.find(S=>S.name===C)||null;if(o)return _.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"Loading messages..."});if(a.length===0)return _.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"No messages yet"});const q=[...a.reduce((C,S)=>{const D=`${S.type}-${S.conversation_key}-${S.text}-${S.sender_timestamp}`;return C.find(F=>`${F.type}-${F.conversation_key}-${F.text}-${F.sender_timestamp}`===D)||C.push(S),C},[])].sort((C,S)=>C.received_at-S.received_at),k=(C,S)=>C.outgoing?"__outgoing__":C.type==="PRIV"&&C.conversation_key?C.conversation_key:S||"__unknown__";return _.jsxs("div",{className:"flex-1 overflow-hidden relative",children:[_.jsxs("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-0.5",ref:c,onScroll:x,children:[t&&_.jsx("div",{className:"text-center py-2 text-muted-foreground text-sm",children:"Loading older messages..."}),!t&&u&&_.jsx("div",{className:"text-center py-2 text-muted-foreground text-xs",children:"Scroll up for older messages"}),q.map((C,S)=>{var W;const{sender:D,content:T}=rh(C.text),F=C.type==="PRIV"?j(C.conversation_key):null,O=C.outgoing?"You":(F==null?void 0:F.name)||D||((W=C.conversation_key)==null?void 0:W.slice(0,8))||"Unknown",N=!C.outgoing&&l&&O!=="Unknown",R=k(C,D),V=q[S-1],H=V?k(V,rh(V.text).sender):null,$=!C.outgoing&&R!==H,ae=S===0;let J=null,ie="";if(!C.outgoing){if(C.type==="PRIV"&&C.conversation_key)J=(F==null?void 0:F.name)||null,ie=C.conversation_key;else if(D){const oe=v(D);J=D,ie=(oe==null?void 0:oe.public_key)||`name:${D}`}}return _.jsxs("div",{className:Ke("flex items-start max-w-[85%]",C.outgoing&&"flex-row-reverse self-end",$&&!ae&&"mt-3"),children:[!C.outgoing&&_.jsx("div",{className:"w-10 flex-shrink-0 flex items-start pt-0.5",children:$&&ie&&_.jsx(Yg,{name:J,publicKey:ie,size:32})}),_.jsxs("div",{className:Ke("py-1.5 px-3 rounded-lg min-w-0",C.outgoing?"bg-[#1e3a29]":"bg-muted"),children:[$&&_.jsxs("div",{className:"text-[13px] font-semibold text-muted-foreground mb-0.5",children:[N?_.jsx("span",{className:"cursor-pointer hover:text-primary hover:underline",onClick:()=>l(O),title:`Mention ${O}`,children:O}):O,_.jsx("span",{className:"font-normal text-muted-foreground/70 ml-2 text-[11px]",children:sh(C.sender_timestamp||C.received_at)})]}),_.jsxs("div",{className:"break-words whitespace-pre-wrap",children:[T.split(` `).map((oe,ee,z)=>_.jsxs("span",{children:[oe,ee({appendText:f=>{var x;m(w=>w+f),(x=d.current)==null||x.focus()}}));const y=B.useCallback(async f=>{f.preventDefault();const x=l.trim();if(!(!x||c||o)){h(!0);try{await r(x),m("")}catch(w){console.error("Failed to send message:",w)}finally{h(!1)}}},[l,c,o,r]),g=B.useCallback(f=>{f.key==="Enter"&&!f.shiftKey&&(f.preventDefault(),y(f))},[y]);return _.jsxs("form",{className:"px-4 py-3 border-t border-border flex gap-2",onSubmit:y,children:[_.jsx(wi,{ref:d,type:"text",value:l,onChange:f=>m(f.target.value),onKeyDown:g,placeholder:t||"Type a message...",disabled:o||c,className:"flex-1"}),_.jsx(Ha,{type:"submit",disabled:o||c||!l.trim(),children:c?"Sending...":"Send"})]})});function Si(a,r,{checkForDefaultPrevented:o=!0}={}){return function(u){if(a==null||a(u),o===!1||!u.defaultPrevented)return r==null?void 0:r(u)}}function nx(a,r){const o=B.createContext(r),t=l=>{const{children:m,...c}=l,h=B.useMemo(()=>c,Object.values(c));return _.jsx(o.Provider,{value:h,children:m})};t.displayName=a+"Provider";function u(l){const m=B.useContext(o);if(m)return m;if(r!==void 0)return r;throw new Error(`\`${l}\` must be used within \`${a}\``)}return[t,u]}function Hr(a,r=[]){let o=[];function t(l,m){const c=B.createContext(m),h=o.length;o=[...o,m];const d=g=>{var A;const{scope:f,children:x,...w}=g,j=((A=f==null?void 0:f[a])==null?void 0:A[h])||c,v=B.useMemo(()=>w,Object.values(w));return _.jsx(j.Provider,{value:v,children:x})};d.displayName=l+"Provider";function y(g,f){var j;const x=((j=f==null?void 0:f[a])==null?void 0:j[h])||c,w=B.useContext(x);if(w)return w;if(m!==void 0)return m;throw new Error(`\`${g}\` must be used within \`${l}\``)}return[d,y]}const u=()=>{const l=o.map(m=>B.createContext(m));return function(c){const h=(c==null?void 0:c[a])||l;return B.useMemo(()=>({[`__scope${a}`]:{...c,[a]:h}}),[c,h])}};return u.scopeName=a,[t,ox(u,...r)]}function ox(...a){const r=a[0];if(a.length===1)return r;const o=()=>{const t=a.map(u=>({useScope:u(),scopeName:u.scopeName}));return function(l){const m=t.reduce((c,{useScope:h,scopeName:d})=>{const g=h(l)[`__scope${d}`];return{...c,...g}},{});return B.useMemo(()=>({[`__scope${r.scopeName}`]:m}),[m])}};return o.scopeName=r.scopeName,o}var _o=globalThis!=null&&globalThis.document?B.useLayoutEffect:()=>{},rx=Tu[" useId ".trim().toString()]||(()=>{}),sx=0;function Pr(a){const[r,o]=B.useState(rx());return _o(()=>{o(t=>t??String(sx++))},[a]),r?`radix-${r}`:""}var tx=Tu[" useInsertionEffect ".trim().toString()]||_o;function al({prop:a,defaultProp:r,onChange:o=()=>{},caller:t}){const[u,l,m]=lx({defaultProp:r,onChange:o}),c=a!==void 0,h=c?a:u;{const y=B.useRef(a!==void 0);B.useEffect(()=>{const g=y.current;g!==c&&console.warn(`${t} is changing from ${g?"controlled":"uncontrolled"} to ${c?"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=c},[c,t])}const d=B.useCallback(y=>{var g;if(c){const f=cx(y)?y(a):y;f!==a&&((g=m.current)==null||g.call(m,f))}else l(y)},[c,a,l,m]);return[h,d]}function lx({defaultProp:a,onChange:r}){const[o,t]=B.useState(a),u=B.useRef(o),l=B.useRef(r);return tx(()=>{l.current=r},[r]),B.useEffect(()=>{var m;u.current!==o&&((m=l.current)==null||m.call(l,o),u.current=o)},[o,u]),[o,t,l]}function cx(a){return typeof a=="function"}function ux(a){const r=dx(a),o=B.forwardRef((t,u)=>{const{children:l,...m}=t,c=B.Children.toArray(l),h=c.find(mx);if(h){const d=h.props.children,y=c.map(g=>g===h?B.Children.count(d)>1?B.Children.only(null):B.isValidElement(d)?d.props.children:null:g);return _.jsx(r,{...m,ref:u,children:B.isValidElement(d)?B.cloneElement(d,void 0,y):null})}return _.jsx(r,{...m,ref:u,children:l})});return o.displayName=`${a}.Slot`,o}function dx(a){const r=B.forwardRef((o,t)=>{const{children:u,...l}=o;if(B.isValidElement(u)){const m=gx(u),c=hx(l,u.props);return u.type!==B.Fragment&&(c.ref=t?Or(t,m):m),B.cloneElement(u,c)}return B.Children.count(u)>1?B.Children.only(null):null});return r.displayName=`${a}.SlotClone`,r}var px=Symbol("radix.slottable");function mx(a){return B.isValidElement(a)&&typeof a.type=="function"&&"__radixId"in a.type&&a.type.__radixId===px}function hx(a,r){const o={...r};for(const t in r){const u=a[t],l=r[t];/^on[A-Z]/.test(t)?u&&l?o[t]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[t]=u):t==="style"?o[t]={...u,...l}:t==="className"&&(o[t]=[u,l].filter(Boolean).join(" "))}return{...a,...o}}function gx(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}var yx=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Fi=yx.reduce((a,r)=>{const o=ux(`Primitive.${r}`),t=B.forwardRef((u,l)=>{const{asChild:m,...c}=u,h=m?o:r;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),_.jsx(h,{...c,ref:l})});return t.displayName=`Primitive.${r}`,{...a,[r]:t}},{});function bx(a,r){a&&Gg.flushSync(()=>a.dispatchEvent(r))}function Do(a){const r=B.useRef(a);return B.useEffect(()=>{r.current=a}),B.useMemo(()=>(...o)=>{var t;return(t=r.current)==null?void 0:t.call(r,...o)},[])}function fx(a,r=globalThis==null?void 0:globalThis.document){const o=Do(a);B.useEffect(()=>{const t=u=>{u.key==="Escape"&&o(u)};return r.addEventListener("keydown",t,{capture:!0}),()=>r.removeEventListener("keydown",t,{capture:!0})},[o,r])}var vx="DismissableLayer",qu="dismissableLayer.update",kx="dismissableLayer.pointerDownOutside",wx="dismissableLayer.focusOutside",th,py=B.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),my=B.forwardRef((a,r)=>{const{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:t,onPointerDownOutside:u,onFocusOutside:l,onInteractOutside:m,onDismiss:c,...h}=a,d=B.useContext(py),[y,g]=B.useState(null),f=(y==null?void 0:y.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,x]=B.useState({}),w=fa(r,T=>g(T)),j=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),A=j.indexOf(v),q=y?j.indexOf(y):-1,k=d.layersWithOutsidePointerEventsDisabled.size>0,C=q>=A,S=qx(T=>{const F=T.target,O=[...d.branches].some(N=>N.contains(F));!C||O||(u==null||u(T),m==null||m(T),T.defaultPrevented||c==null||c())},f),D=jx(T=>{const F=T.target;[...d.branches].some(N=>N.contains(F))||(l==null||l(T),m==null||m(T),T.defaultPrevented||c==null||c())},f);return fx(T=>{q===d.layers.size-1&&(t==null||t(T),!T.defaultPrevented&&c&&(T.preventDefault(),c()))},f),B.useEffect(()=>{if(y)return o&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(th=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(y)),d.layers.add(y),lh(),()=>{o&&d.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=th)}},[y,f,o,d]),B.useEffect(()=>()=>{y&&(d.layers.delete(y),d.layersWithOutsidePointerEventsDisabled.delete(y),lh())},[y,d]),B.useEffect(()=>{const T=()=>x({});return document.addEventListener(qu,T),()=>document.removeEventListener(qu,T)},[]),_.jsx(Fi.div,{...h,ref:w,style:{pointerEvents:k?C?"auto":"none":void 0,...a.style},onFocusCapture:Si(a.onFocusCapture,D.onFocusCapture),onBlurCapture:Si(a.onBlurCapture,D.onBlurCapture),onPointerDownCapture:Si(a.onPointerDownCapture,S.onPointerDownCapture)})});my.displayName=vx;var xx="DismissableLayerBranch",zx=B.forwardRef((a,r)=>{const o=B.useContext(py),t=B.useRef(null),u=fa(r,t);return B.useEffect(()=>{const l=t.current;if(l)return o.branches.add(l),()=>{o.branches.delete(l)}},[o.branches]),_.jsx(Fi.div,{...a,ref:u})});zx.displayName=xx;function qx(a,r=globalThis==null?void 0:globalThis.document){const o=Do(a),t=B.useRef(!1),u=B.useRef(()=>{});return B.useEffect(()=>{const l=c=>{if(c.target&&!t.current){let h=function(){hy(kx,o,d,{discrete:!0})};const d={originalEvent:c};c.pointerType==="touch"?(r.removeEventListener("click",u.current),u.current=h,r.addEventListener("click",u.current,{once:!0})):h()}else r.removeEventListener("click",u.current);t.current=!1},m=window.setTimeout(()=>{r.addEventListener("pointerdown",l)},0);return()=>{window.clearTimeout(m),r.removeEventListener("pointerdown",l),r.removeEventListener("click",u.current)}},[r,o]),{onPointerDownCapture:()=>t.current=!0}}function jx(a,r=globalThis==null?void 0:globalThis.document){const o=Do(a),t=B.useRef(!1);return B.useEffect(()=>{const u=l=>{l.target&&!t.current&&hy(wx,o,{originalEvent:l},{discrete:!1})};return r.addEventListener("focusin",u),()=>r.removeEventListener("focusin",u)},[r,o]),{onFocusCapture:()=>t.current=!0,onBlurCapture:()=>t.current=!1}}function lh(){const a=new CustomEvent(qu);document.dispatchEvent(a)}function hy(a,r,o,{discrete:t}){const u=o.originalEvent.target,l=new CustomEvent(a,{bubbles:!1,cancelable:!0,detail:o});r&&u.addEventListener(a,r,{once:!0}),t?bx(u,l):u.dispatchEvent(l)}var su="focusScope.autoFocusOnMount",tu="focusScope.autoFocusOnUnmount",ch={bubbles:!1,cancelable:!0},Ax="FocusScope",gy=B.forwardRef((a,r)=>{const{loop:o=!1,trapped:t=!1,onMountAutoFocus:u,onUnmountAutoFocus:l,...m}=a,[c,h]=B.useState(null),d=Do(u),y=Do(l),g=B.useRef(null),f=fa(r,j=>h(j)),x=B.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;B.useEffect(()=>{if(t){let j=function(k){if(x.paused||!c)return;const C=k.target;c.contains(C)?g.current=C:qn(g.current,{select:!0})},v=function(k){if(x.paused||!c)return;const C=k.relatedTarget;C!==null&&(c.contains(C)||qn(g.current,{select:!0}))},A=function(k){if(document.activeElement===document.body)for(const S of k)S.removedNodes.length>0&&qn(c)};document.addEventListener("focusin",j),document.addEventListener("focusout",v);const q=new MutationObserver(A);return c&&q.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",j),document.removeEventListener("focusout",v),q.disconnect()}}},[t,c,x.paused]),B.useEffect(()=>{if(c){dh.add(x);const j=document.activeElement;if(!c.contains(j)){const A=new CustomEvent(su,ch);c.addEventListener(su,d),c.dispatchEvent(A),A.defaultPrevented||(Cx(Dx(yy(c)),{select:!0}),document.activeElement===j&&qn(c))}return()=>{c.removeEventListener(su,d),setTimeout(()=>{const A=new CustomEvent(tu,ch);c.addEventListener(tu,y),c.dispatchEvent(A),A.defaultPrevented||qn(j??document.body,{select:!0}),c.removeEventListener(tu,y),dh.remove(x)},0)}}},[c,d,y,x]);const w=B.useCallback(j=>{if(!o&&!t||x.paused)return;const v=j.key==="Tab"&&!j.altKey&&!j.ctrlKey&&!j.metaKey,A=document.activeElement;if(v&&A){const q=j.currentTarget,[k,C]=Ex(q);k&&C?!j.shiftKey&&A===C?(j.preventDefault(),o&&qn(k,{select:!0})):j.shiftKey&&A===k&&(j.preventDefault(),o&&qn(C,{select:!0})):A===q&&j.preventDefault()}},[o,t,x.paused]);return _.jsx(Fi.div,{tabIndex:-1,...m,ref:f,onKeyDown:w})});gy.displayName=Ax;function Cx(a,{select:r=!1}={}){const o=document.activeElement;for(const t of a)if(qn(t,{select:r}),document.activeElement!==o)return}function Ex(a){const r=yy(a),o=uh(r,a),t=uh(r.reverse(),a);return[o,t]}function yy(a){const r=[],o=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>{const u=t.tagName==="INPUT"&&t.type==="hidden";return t.disabled||t.hidden||u?NodeFilter.FILTER_SKIP:t.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)r.push(o.currentNode);return r}function uh(a,r){for(const o of a)if(!Sx(o,{upTo:r}))return o}function Sx(a,{upTo:r}){if(getComputedStyle(a).visibility==="hidden")return!0;for(;a;){if(r!==void 0&&a===r)return!1;if(getComputedStyle(a).display==="none")return!0;a=a.parentElement}return!1}function Bx(a){return a instanceof HTMLInputElement&&"select"in a}function qn(a,{select:r=!1}={}){if(a&&a.focus){const o=document.activeElement;a.focus({preventScroll:!0}),a!==o&&Bx(a)&&r&&a.select()}}var dh=_x();function _x(){let a=[];return{add(r){const o=a[0];r!==o&&(o==null||o.pause()),a=ph(a,r),a.unshift(r)},remove(r){var o;a=ph(a,r),(o=a[0])==null||o.resume()}}}function ph(a,r){const o=[...a],t=o.indexOf(r);return t!==-1&&o.splice(t,1),o}function Dx(a){return a.filter(r=>r.tagName!=="A")}var Fx="Portal",by=B.forwardRef((a,r)=>{var c;const{container:o,...t}=a,[u,l]=B.useState(!1);_o(()=>l(!0),[]);const m=o||u&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return m?Qg.createPortal(_.jsx(Fi.div,{...t,ref:r}),m):null});by.displayName=Fx;function Rx(a,r){return B.useReducer((o,t)=>r[o][t]??o,a)}var Po=a=>{const{present:r,children:o}=a,t=Tx(r),u=typeof o=="function"?o({present:t.isPresent}):B.Children.only(o),l=fa(t.ref,Px(u));return typeof o=="function"||t.isPresent?B.cloneElement(u,{ref:l}):null};Po.displayName="Presence";function Tx(a){const[r,o]=B.useState(),t=B.useRef(null),u=B.useRef(a),l=B.useRef("none"),m=a?"mounted":"unmounted",[c,h]=Rx(m,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return B.useEffect(()=>{const d=Js(t.current);l.current=c==="mounted"?d:"none"},[c]),_o(()=>{const d=t.current,y=u.current;if(y!==a){const f=l.current,x=Js(d);a?h("MOUNT"):x==="none"||(d==null?void 0:d.display)==="none"?h("UNMOUNT"):h(y&&f!==x?"ANIMATION_OUT":"UNMOUNT"),u.current=a}},[a,h]),_o(()=>{if(r){let d;const y=r.ownerDocument.defaultView??window,g=x=>{const j=Js(t.current).includes(CSS.escape(x.animationName));if(x.target===r&&j&&(h("ANIMATION_END"),!u.current)){const v=r.style.animationFillMode;r.style.animationFillMode="forwards",d=y.setTimeout(()=>{r.style.animationFillMode==="forwards"&&(r.style.animationFillMode=v)})}},f=x=>{x.target===r&&(l.current=Js(t.current))};return r.addEventListener("animationstart",f),r.addEventListener("animationcancel",g),r.addEventListener("animationend",g),()=>{y.clearTimeout(d),r.removeEventListener("animationstart",f),r.removeEventListener("animationcancel",g),r.removeEventListener("animationend",g)}}else h("ANIMATION_END")},[r,h]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:B.useCallback(d=>{t.current=d?getComputedStyle(d):null,o(d)},[])}}function Js(a){return(a==null?void 0:a.animationName)||"none"}function Px(a){var t,u;let r=(t=Object.getOwnPropertyDescriptor(a.props,"ref"))==null?void 0:t.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?a.ref:(r=(u=Object.getOwnPropertyDescriptor(a,"ref"))==null?void 0:u.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?a.props.ref:a.props.ref||a.ref)}var lu=0;function Nx(){B.useEffect(()=>{const a=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",a[0]??mh()),document.body.insertAdjacentElement("beforeend",a[1]??mh()),lu++,()=>{lu===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(r=>r.remove()),lu--}},[])}function mh(){const a=document.createElement("span");return a.setAttribute("data-radix-focus-guard",""),a.tabIndex=0,a.style.outline="none",a.style.opacity="0",a.style.position="fixed",a.style.pointerEvents="none",a}var Oa=function(){return Oa=Object.assign||function(r){for(var o,t=1,u=arguments.length;t"u")return ez;var r=iz(a),o=document.documentElement.clientWidth,t=window.innerWidth;return{left:r[0],top:r[1],right:r[2],gap:Math.max(0,t-o+r[2]-r[0])}},nz=wy(),Eo="data-scroll-locked",oz=function(a,r,o,t){var u=a.left,l=a.top,m=a.right,c=a.gap;return o===void 0&&(o="margin"),` .`.concat(Mx,` { overflow: hidden `).concat(t,`; diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 8de8eaa..627b40b 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -4,7 +4,7 @@ RemoteTerm for MeshCore - + diff --git a/frontend/src/components/StatusBar.tsx b/frontend/src/components/StatusBar.tsx index 41c609b..68bab29 100644 --- a/frontend/src/components/StatusBar.tsx +++ b/frontend/src/components/StatusBar.tsx @@ -61,16 +61,10 @@ export function StatusBar({ health, config, onConfigClick, onAdvertise, onMenuCl {config && ( <>
- Name: {config.name || 'Unnamed'} + {config.name || 'Unnamed'}
- Freq: {config.radio.freq} MHz -
-
- SF{config.radio.sf}/CR{config.radio.cr} -
-
- TX: {config.tx_power} dBm + {config.radio.freq} MHz/SF{config.radio.sf}/CR{config.radio.cr}/{config.tx_power}dBm
)}