tmex-cli 0.15.0 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -15
- package/dist/runtime/server.js +2 -2
- package/package.json +1 -1
- package/resources/fe-dist/assets/{DevicePage-kndrXVHE.js → DevicePage--HOY0kN6.js} +1 -1
- package/resources/fe-dist/assets/{DevicesPage-CZLzOS04.js → DevicesPage-Ngrej5Ot.js} +1 -1
- package/resources/fe-dist/assets/{FilePage-CxVqdlbt.js → FilePage-HbiQHaa9.js} +1 -1
- package/resources/fe-dist/assets/{SettingsPage-C50JRe91.js → SettingsPage-CPdwRwyS.js} +1 -1
- package/resources/fe-dist/assets/{agent-tab-BVWxou-d.js → agent-tab--8AsTl-t.js} +1 -1
- package/resources/fe-dist/assets/{api-CrHrQflz.js → api-BLIQkwae.js} +1 -1
- package/resources/fe-dist/assets/{arc-fsY_kDTa.js → arc-BxPdcU4u.js} +1 -1
- package/resources/fe-dist/assets/{architectureDiagram-3BPJPVTR-Vsg8Cd3e.js → architectureDiagram-3BPJPVTR-BTgMKoOk.js} +1 -1
- package/resources/fe-dist/assets/{blockDiagram-GPEHLZMM-G7sC3DZO.js → blockDiagram-GPEHLZMM-DGbVoBx0.js} +1 -1
- package/resources/fe-dist/assets/{c4Diagram-AAUBKEIU-C1AfLOva.js → c4Diagram-AAUBKEIU-6Xsfbwgs.js} +1 -1
- package/resources/fe-dist/assets/{card-CXa-2u8i.js → card-LIHKdO48.js} +1 -1
- package/resources/fe-dist/assets/channel-BGHWdKHN.js +1 -0
- package/resources/fe-dist/assets/{chunk-2J33WTMH-C1p02eGI.js → chunk-2J33WTMH-gstBqLVO.js} +1 -1
- package/resources/fe-dist/assets/{chunk-4BX2VUAB-C8n2FURp.js → chunk-4BX2VUAB-C-o3q6jv.js} +1 -1
- package/resources/fe-dist/assets/{chunk-55IACEB6-Da0nuNCD.js → chunk-55IACEB6-DddgDLxO.js} +1 -1
- package/resources/fe-dist/assets/{chunk-727SXJPM-C1TXyDEt.js → chunk-727SXJPM-CXYmmkMi.js} +1 -1
- package/resources/fe-dist/assets/{chunk-AQP2D5EJ-CnRKlbXo.js → chunk-AQP2D5EJ-DRLECkLk.js} +1 -1
- package/resources/fe-dist/assets/{chunk-FMBD7UC4-B8HGrJ3t.js → chunk-FMBD7UC4-BExWPgsD.js} +1 -1
- package/resources/fe-dist/assets/{chunk-ND2GUHAM-CcN2Ou-o.js → chunk-ND2GUHAM-C7VdaZU9.js} +1 -1
- package/resources/fe-dist/assets/{chunk-QZHKN3VN-DfWJ_tl5.js → chunk-QZHKN3VN-BzDQ08zM.js} +1 -1
- package/resources/fe-dist/assets/classDiagram-4FO5ZUOK-B47Acuru.js +1 -0
- package/resources/fe-dist/assets/classDiagram-v2-Q7XG4LA2-B47Acuru.js +1 -0
- package/resources/fe-dist/assets/{copy-BveLgJe5.js → copy-BF0hUIaY.js} +1 -1
- package/resources/fe-dist/assets/{cose-bilkent-S5V4N54A-BkmsTzwU.js → cose-bilkent-S5V4N54A-D6PcYL8a.js} +1 -1
- package/resources/fe-dist/assets/{dagre-BM42HDAG-pGgtc4EE.js → dagre-BM42HDAG-CRImj5gw.js} +1 -1
- package/resources/fe-dist/assets/{diagram-2AECGRRQ-DJxixZvm.js → diagram-2AECGRRQ-rxXesmyb.js} +1 -1
- package/resources/fe-dist/assets/{diagram-5GNKFQAL-2ITViev7.js → diagram-5GNKFQAL-1cV1ezU8.js} +1 -1
- package/resources/fe-dist/assets/{diagram-KO2AKTUF-EMcadaeo.js → diagram-KO2AKTUF-D_t6oZ15.js} +1 -1
- package/resources/fe-dist/assets/{diagram-LMA3HP47-w3sLU7zY.js → diagram-LMA3HP47-Bv2rw6Uu.js} +1 -1
- package/resources/fe-dist/assets/{diagram-OG6HWLK6-B4KGMQr7.js → diagram-OG6HWLK6-CDr2E2aw.js} +1 -1
- package/resources/fe-dist/assets/{erDiagram-TEJ5UH35-CB0P-Wz7.js → erDiagram-TEJ5UH35-Dji-ptHQ.js} +1 -1
- package/resources/fe-dist/assets/{files-tab-lNenDPFy.js → files-tab-BW0vpgW7.js} +1 -1
- package/resources/fe-dist/assets/{flowDiagram-I6XJVG4X-CmBc7GAX.js → flowDiagram-I6XJVG4X-CeBLfMwm.js} +1 -1
- package/resources/fe-dist/assets/{ganttDiagram-6RSMTGT7-CHNf7S_K.js → ganttDiagram-6RSMTGT7-C0W5vjVi.js} +1 -1
- package/resources/fe-dist/assets/{gitGraphDiagram-PVQCEYII-CabspIF1.js → gitGraphDiagram-PVQCEYII-1BOW9mBR.js} +1 -1
- package/resources/fe-dist/assets/{index-DOaZjm8K.js → index-B3aiK6xC.js} +3 -3
- package/resources/fe-dist/assets/{index-BQbq6q_-.js → index-BbHTMCQt.js} +1 -1
- package/resources/fe-dist/assets/index-CHeveVji.css +1 -0
- package/resources/fe-dist/assets/{infoDiagram-5YYISTIA-ny6wqvHH.js → infoDiagram-5YYISTIA-rY2E1Qtb.js} +1 -1
- package/resources/fe-dist/assets/{ishikawaDiagram-YF4QCWOH-EFCdGVsV.js → ishikawaDiagram-YF4QCWOH-bISKs9QA.js} +1 -1
- package/resources/fe-dist/assets/{journeyDiagram-JHISSGLW-Cvi8jO9a.js → journeyDiagram-JHISSGLW-D5V6twg8.js} +1 -1
- package/resources/fe-dist/assets/{kanban-definition-UN3LZRKU-nKej8tSo.js → kanban-definition-UN3LZRKU-DqOygrx5.js} +1 -1
- package/resources/fe-dist/assets/{linear-leOPyu29.js → linear-CvBar11D.js} +1 -1
- package/resources/fe-dist/assets/{markdown-preview-rqUSs5w8.js → markdown-preview-sViGxElv.js} +3 -3
- package/resources/fe-dist/assets/{mermaid.core-QvhJBi8f.js → mermaid.core-m9JEGou3.js} +5 -5
- package/resources/fe-dist/assets/{mindmap-definition-RKZ34NQL-xWje0B_-.js → mindmap-definition-RKZ34NQL-DMyUzSwg.js} +1 -1
- package/resources/fe-dist/assets/{pieDiagram-4H26LBE5-DT1i53ec.js → pieDiagram-4H26LBE5-Cp3KArEr.js} +1 -1
- package/resources/fe-dist/assets/{quadrantDiagram-W4KKPZXB-C1zbS4Tx.js → quadrantDiagram-W4KKPZXB-B7aVg4vb.js} +1 -1
- package/resources/fe-dist/assets/{requirementDiagram-4Y6WPE33-By_eNRll.js → requirementDiagram-4Y6WPE33-WDLGaUPr.js} +1 -1
- package/resources/fe-dist/assets/{sankeyDiagram-5OEKKPKP-CG7jC05N.js → sankeyDiagram-5OEKKPKP-AElPZwq5.js} +1 -1
- package/resources/fe-dist/assets/{send-CcFyyX2G.js → send-DjlZMim3.js} +1 -1
- package/resources/fe-dist/assets/{sequenceDiagram-3UESZ5HK-C9yK_EKN.js → sequenceDiagram-3UESZ5HK-CUYki1W3.js} +1 -1
- package/resources/fe-dist/assets/{stateDiagram-AJRCARHV-B-ROUwGP.js → stateDiagram-AJRCARHV-BlImbgYm.js} +1 -1
- package/resources/fe-dist/assets/stateDiagram-v2-BHNVJYJU-CzqYErp9.js +1 -0
- package/resources/fe-dist/assets/{terminal-settings-panel-CNwWqOMV.js → terminal-settings-panel-DCm6ZfTX.js} +1 -1
- package/resources/fe-dist/assets/{timeline-definition-PNZ67QCA-yMM8VB4U.js → timeline-definition-PNZ67QCA-DnXXxVyb.js} +1 -1
- package/resources/fe-dist/assets/{transfer-toast-mQs0hgyg.js → transfer-toast-BWwT4yFg.js} +1 -1
- package/resources/fe-dist/assets/{triangle-alert-DMp7kMmJ.js → triangle-alert-D1TuPKVl.js} +1 -1
- package/resources/fe-dist/assets/{vennDiagram-CIIHVFJN-CE08llZ3.js → vennDiagram-CIIHVFJN-BziXMAwl.js} +1 -1
- package/resources/fe-dist/assets/{wardley-L42UT6IY-BKLGCmLJ.js → wardley-L42UT6IY-B6fovAcQ.js} +1 -1
- package/resources/fe-dist/assets/{wardleyDiagram-YWT4CUSO-BsjwfO3P.js → wardleyDiagram-YWT4CUSO-DdAfrCkO.js} +1 -1
- package/resources/fe-dist/assets/{xychartDiagram-2RQKCTM6-Bhz6AI7w.js → xychartDiagram-2RQKCTM6-CWuCpr0w.js} +1 -1
- package/resources/fe-dist/assets/{zap-DPwn8lbv.js → zap-CCdOD6uR.js} +1 -1
- package/resources/fe-dist/index.html +2 -2
- package/resources/fe-dist/assets/channel-DS4kWkSb.js +0 -1
- package/resources/fe-dist/assets/classDiagram-4FO5ZUOK-BfsrnUi9.js +0 -1
- package/resources/fe-dist/assets/classDiagram-v2-Q7XG4LA2-BfsrnUi9.js +0 -1
- package/resources/fe-dist/assets/index-DaOR3c0u.css +0 -1
- package/resources/fe-dist/assets/stateDiagram-v2-BHNVJYJU-iopOcale.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/agent-tab-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/agent-tab--8AsTl-t.js","assets/index-BbHTMCQt.js","assets/send-DjlZMim3.js","assets/zap-CCdOD6uR.js","assets/files-tab-BW0vpgW7.js","assets/selection-clipboard-Dq6Zemfd.js","assets/api-BLIQkwae.js","assets/transfer-toast-BWwT4yFg.js","assets/copy-BF0hUIaY.js","assets/triangle-alert-D1TuPKVl.js","assets/SettingsPage-CPdwRwyS.js","assets/card-LIHKdO48.js","assets/terminal-settings-panel-DCm6ZfTX.js","assets/markdown-preview-sViGxElv.js","assets/markdown-preview-Bf_6UH9R.css","assets/DevicesPage-Ngrej5Ot.js","assets/DevicePage--HOY0kN6.js","assets/FilePage-HbiQHaa9.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var WA=Object.defineProperty;var ZS=e=>{throw TypeError(e)};var QA=(e,t,n)=>t in e?WA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var We=(e,t,n)=>QA(e,typeof t!="symbol"?t+"":t,n),xg=(e,t,n)=>t.has(e)||ZS("Cannot "+n);var te=(e,t,n)=>(xg(e,t,"read from private field"),n?n.call(e):t.get(e)),ut=(e,t,n)=>t.has(e)?ZS("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Ge=(e,t,n,a)=>(xg(e,t,"write to private field"),a?a.call(e,n):t.set(e,n),n),_t=(e,t,n)=>(xg(e,t,"access private method"),n);var Rf=(e,t,n,a)=>({set _(i){Ge(e,t,i,n)},get _(){return te(e,t,a)}});function ZA(e,t){for(var n=0;n<t.length;n++){const a=t[n];if(typeof a!="string"&&!Array.isArray(a)){for(const i in a)if(i!=="default"&&!(i in e)){const s=Object.getOwnPropertyDescriptor(a,i);s&&Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:()=>a[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))a(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const c of s.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&a(c)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function a(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();const JA="modulepreload",eD=function(e){return"/"+e},JS={},So=function(t,n,a){let i=Promise.resolve();if(n&&n.length>0){let c=function(f){return Promise.all(f.map(g=>Promise.resolve(g).then(m=>({status:"fulfilled",value:m}),m=>({status:"rejected",reason:m}))))};document.getElementsByTagName("link");const d=document.querySelector("meta[property=csp-nonce]"),h=(d==null?void 0:d.nonce)||(d==null?void 0:d.getAttribute("nonce"));i=c(n.map(f=>{if(f=eD(f),f in JS)return;JS[f]=!0;const g=f.endsWith(".css"),m=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${f}"]${m}`))return;const b=document.createElement("link");if(b.rel=g?"stylesheet":JA,g||(b.as="script"),b.crossOrigin="",b.href=f,h&&b.setAttribute("nonce",h),document.head.appendChild(b),g)return new Promise((x,w)=>{b.addEventListener("load",x),b.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${f}`)))})}))}function s(c){const d=new Event("vite:preloadError",{cancelable:!0});if(d.payload=c,window.dispatchEvent(d),!d.defaultPrevented)throw c}return i.then(c=>{for(const d of c||[])d.status==="rejected"&&s(d.reason);return t().catch(s)})};function mT(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wg={exports:{}},Xc={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react-jsx-runtime.production.js
|
|
@@ -67,7 +67,7 @@ Please change the parent <Route path="${C}"> to <Route path="${C==="/"?"*":`${C}
|
|
|
67
67
|
*
|
|
68
68
|
* This source code is licensed under the MIT license found in the
|
|
69
69
|
* LICENSE file in the root directory of this source tree.
|
|
70
|
-
*/var y1;function Kz(){if(y1)return Hg;y1=1;var e=qu();function t(m,b){return m===b&&(m!==0||1/m===1/b)||m!==m&&b!==b}var n=typeof Object.is=="function"?Object.is:t,a=e.useState,i=e.useEffect,s=e.useLayoutEffect,c=e.useDebugValue;function d(m,b){var x=b(),w=a({inst:{value:x,getSnapshot:b}}),S=w[0].inst,E=w[1];return s(function(){S.value=x,S.getSnapshot=b,h(S)&&E({inst:S})},[m,x,b]),i(function(){return h(S)&&E({inst:S}),m(function(){h(S)&&E({inst:S})})},[m]),c(x),x}function h(m){var b=m.getSnapshot;m=m.value;try{var x=b();return!n(m,x)}catch{return!0}}function f(m,b){return b()}var g=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:d;return Hg.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:g,Hg}var v1;function pC(){return v1||(v1=1,Ug.exports=Kz()),Ug.exports}var tb=pC();const Gz=(e,t)=>ys(t)?t:_z(t)&&ys(t.defaultValue)?t.defaultValue:Array.isArray(e)?e[e.length-1]:e,Xz={t:Gz,ready:!1},Wz=()=>()=>{},gr=(e,t={})=>{var B,G,K;const{i18n:n}=t,{i18n:a,defaultNS:i}=y.useContext(qz)||{},s=n||a||Vz();s&&!s.reportNamespaces&&(s.reportNamespaces=new $z),s||fC(s,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const c=y.useMemo(()=>{var I;return{...Bz(),...(I=s==null?void 0:s.options)==null?void 0:I.react,...t}},[s,t]),{useSuspense:d,keyPrefix:h}=c,f=i||((B=s==null?void 0:s.options)==null?void 0:B.defaultNS),g=ys(f)?[f]:f||["translation"],m=y.useMemo(()=>g,g);(K=(G=s==null?void 0:s.reportNamespaces)==null?void 0:G.addUsedNamespaces)==null||K.call(G,m);const b=y.useRef(0),x=y.useCallback(I=>{if(!s)return Wz;const{bindI18n:H,bindI18nStore:F}=c,V=()=>{b.current+=1,I()};return H&&s.on(H,V),F&&s.store.on(F,V),()=>{H&&H.split(" ").forEach(L=>s.off(L,V)),F&&F.split(" ").forEach(L=>s.store.off(L,V))}},[s,c]),w=y.useRef(),S=y.useCallback(()=>{if(!s)return Xz;const I=!!(s.isInitialized||s.initializedStoreOnce)&&m.every(z=>Lz(z,s,c)),H=t.lng||s.language,F=b.current,V=w.current;if(V&&V.ready===I&&V.lng===H&&V.keyPrefix===h&&V.revision===F)return V;const _={t:s.getFixedT(H,c.nsMode==="fallback"?m:m[0],h),ready:I,lng:H,keyPrefix:h,revision:F};return w.current=_,_},[s,m,h,c,t.lng]),[E,T]=y.useState(0),{t:C,ready:M}=tb.useSyncExternalStore(x,S,S);y.useEffect(()=>{if(s&&!M&&!d){const I=()=>T(H=>H+1);t.lng?g1(s,t.lng,m,I):Yy(s,m,I)}},[s,t.lng,m,M,d,E]);const O=s||{},D=y.useRef(null),k=y.useRef(),A=I=>{const H=Object.getOwnPropertyDescriptors(I);H.__original&&delete H.__original;const F=Object.create(Object.getPrototypeOf(I),H);if(!Object.prototype.hasOwnProperty.call(F,"__original"))try{Object.defineProperty(F,"__original",{value:I,writable:!1,enumerable:!1,configurable:!1})}catch{}return F},j=y.useMemo(()=>{const I=O,H=I==null?void 0:I.language;let F=I;I&&(D.current&&D.current.__original===I?k.current!==H?(F=A(I),D.current=F,k.current=H):F=D.current:(F=A(I),D.current=F,k.current=H));const V=[C,F,M];return V.t=C,V.i18n=F,V.ready=M,V},[C,O,M,O.resolvedLanguage,O.language,O.languages]);if(s&&d&&!M)throw new Promise(I=>{const H=()=>I();t.lng?g1(s,t.lng,m,H):Yy(s,m,H)});return j},Qz=Object.assign({"../../../../packages/shared/src/i18n/locales/en_US.json":()=>So(()=>import("./en_US-Chxeay8F.js"),[]),"../../../../packages/shared/src/i18n/locales/ja_JP.json":()=>So(()=>import("./ja_JP-BI-C8I9X.js"),[]),"../../../../packages/shared/src/i18n/locales/zh_CN.json":()=>So(()=>import("./zh_CN-DE-BaQ3P.js"),[])});function Zz(e){const t=Object.entries(Qz).find(([n])=>n.endsWith(`/${e}.json`));return t==null?void 0:t[1]}function Jz(){const e=navigator.language;return e.startsWith("zh")?"zh_CN":e.startsWith("ja")?"ja_JP":Hv}const eP=qt.use(kz(async(e,t)=>{const n=Zz(e);return n?(await n()).default[t]??{}:{}})).use(Yz).init({lng:Jz(),fallbackLng:Hv,ns:["translation"],defaultNS:"translation",interpolation:{escapeValue:!1},returnNull:!1,react:{useSuspense:!1}}),tP={background:"#e1e1e1",foreground:"#616161",cursor:"#616161",selectionBackground:"rgba(97, 97, 97, 0.25)",black:"#171717",red:"#bf2172",green:"#009799",yellow:"#9a7200",blue:"#007299",magenta:"#9b1d72",cyan:"#007173",white:"#d9d9d9",brightBlack:"#4e4e4e",brightRed:"#e12672",brightGreen:"#00bddf",brightYellow:"#ffdd00",brightBlue:"#7299bc",brightMagenta:"#e17899",brightCyan:"#6fbcbd",brightWhite:"#f1f1f1"},nP={background:"#262626",foreground:"#d0d0d0",cursor:"#c5c5c5",selectionBackground:"rgba(197, 197, 197, 0.25)",black:"#000000",red:"#ba3c3c",green:"#5d876d",yellow:"#d5a54e",blue:"#887c8d",magenta:"#cd6d6d",cyan:"#618484",white:"#cfcdc3",brightBlack:"#000000",brightRed:"#ea7171",brightGreen:"#7aab7a",brightYellow:"#d1d194",brightBlue:"#afa3b5",brightMagenta:"#e29f9f",brightCyan:"#a0aea3",brightWhite:"#d0d0d0"};function rP(e){const t=e==="light"?tP:nP;return`fg=${t.foreground},bg=${t.background}`}let rh=null;function b1(e){rh=e}function aP(e,t){rh==null||rh(e,t)}let wo=null;function x1(e){wo=e}function H7(){wo!=null&&wo.isMobile&&wo.setOpenMobile(!0)}function oP(){wo!=null&&wo.isMobile&&wo.setOpenMobile(!1)}const iP=/^\/devices\/([^/]+)\/windows\/([^/]+)\/panes\/([^/]+)$/;function sP(e){try{const t=new URL(e,window.location.origin);return t.pathname+t.search+t.hash}catch{return e}}function gh(e){const t=sP(e),n=iP.exec(t);if(n){const[,a,i,s]=n;window.dispatchEvent(new CustomEvent("tmex:user-initiated-selection",{detail:{deviceId:a,windowId:i,paneId:decodeURIComponent(s)}}))}aP(t,{replace:!0}),oP()}const lP=`${typeof window<"u"&&window.location.protocol==="https:"?"wss:":"ws:"}//${typeof window<"u"?window.location.host:""}/ws`,cP={clientImpl:"tmex-fe",clientVersion:"0.1.0",maxFrameBytes:1048576,reconnectDelayMs:1e3,maxReconnectAttempts:5,heartbeatIntervalMs:15e3};class uP{constructor(t={}){We(this,"ws",null);We(this,"options");We(this,"state","IDLE");We(this,"seq",0);We(this,"chunkReassembler",new Wj);We(this,"reconnectAttempts",0);We(this,"reconnectTimer",null);We(this,"heartbeatTimer",null);We(this,"pongTimeoutTimer",null);We(this,"lastPingSentAt",0);We(this,"messageHandlers",new Set);We(this,"stateChangeHandlers",new Set);We(this,"errorHandlers",new Set);We(this,"latencyHandlers",new Set);We(this,"visibilityHandler",null);We(this,"lastVisibilityReconnectAt",0);We(this,"pendingMessages",[]);We(this,"maxPendingMessages",100);We(this,"hasConnectedOnce",!1);We(this,"latencyMs",null);this.options={...cP,...t}}setState(t){if(this.state!==t){console.log(`[borsh-client] State: ${this.state} -> ${t}`),this.state=t;for(const n of this.stateChangeHandlers)try{n(t)}catch(a){console.error("[borsh-client] State change handler error:",a)}t==="READY"&&this.flushPendingMessages()}}getState(){return this.state}isReady(){return this.state==="READY"}onMessage(t){return this.messageHandlers.add(t),()=>this.messageHandlers.delete(t)}onStateChange(t){return this.stateChangeHandlers.add(t),()=>this.stateChangeHandlers.delete(t)}onError(t){return this.errorHandlers.add(t),()=>this.errorHandlers.delete(t)}onLatency(t){return this.latencyHandlers.add(t),()=>this.latencyHandlers.delete(t)}connect(){var t,n;if(this.setupVisibilityListener(),!(((t=this.ws)==null?void 0:t.readyState)===WebSocket.OPEN||((n=this.ws)==null?void 0:n.readyState)===WebSocket.CONNECTING)){this.setState("WS_CONNECTING");try{this.ws=new WebSocket(lP),this.ws.binaryType="arraybuffer",this.ws.onopen=()=>{this.sendHello()},this.ws.onmessage=a=>{this.handleMessage(a.data)},this.ws.onclose=()=>{this.handleClose()},this.ws.onerror=()=>{this.handleError(new Error("WebSocket error"))}}catch(a){this.handleError(a instanceof Error?a:new Error(String(a)))}}}disconnect(){this.setState("CLOSED"),this.clearTimers(),this.latencyMs=null,this.ws&&(this.ws.close(),this.ws=null),this.visibilityHandler&&(document.removeEventListener("visibilitychange",this.visibilityHandler),this.visibilityHandler=null)}handleMessage(t){if(typeof t=="string")return;const n=new Uint8Array(t);if(!Gj(n)){console.warn("[borsh-client] Received message without magic, ignoring");return}try{const a=qj(n);if(a.kind===wk){const i=Kj(a.payload),s=this.chunkReassembler.addChunk(i);s&&this.dispatchMessage({kind:s.kind,seq:s.seq,payload:s.payload});return}if(a.kind===$D){this.handleHelloS2C(a.payload);return}if(a.kind===GD){if(this.clearPongTimeout(),this.lastPingSentAt>0){const i=Date.now()-this.lastPingSentAt;this.latencyMs=i;for(const s of this.latencyHandlers)try{s(i)}catch{}}return}this.dispatchMessage({kind:a.kind,seq:a.seq,payload:a.payload})}catch(a){console.error("[borsh-client] Failed to decode message:",a)}}dispatchMessage(t){for(const n of this.messageHandlers)try{n(t)}catch(a){console.error("[borsh-client] Message handler error:",a)}}handleHelloS2C(t){try{const n=Aa(tj,t);console.log("[borsh-client] HELLO_S2C received:",n),this.setState("READY"),this.hasConnectedOnce=!0,this.startHeartbeat(),this.sendPing(),this.reconnectAttempts=0}catch(n){console.error("[borsh-client] Failed to decode HELLO_S2C:",n),this.handleError(new Error("HELLO negotiation failed"))}}handleClose(){this.stopHeartbeat(),this.state!=="CLOSED"&&(this.reconnectAttempts<this.options.maxReconnectAttempts?this.scheduleReconnect():(this.setState("CLOSED"),this.handleError(new Error("Max reconnection attempts reached"))))}handleError(t){console.error("[borsh-client] Error:",t);for(const n of this.errorHandlers)try{n(t)}catch(a){console.error("[borsh-client] Error handler error:",a)}}sendHello(){const t={clientImpl:this.options.clientImpl,clientVersion:this.options.clientVersion,maxFrameBytes:this.options.maxFrameBytes,supportsCompression:!1,supportsDiffSnapshot:!1},n=$n(ej,t),a=this.nextSeq(),i=Jf(qD,n,a);this.sendRaw(i),this.setState("HELLO_NEGOTIATING")}send(t,n){if(!this.isReady())return this.pendingMessages.length<this.maxPendingMessages&&this.pendingMessages.push({kind:t,payload:n}),!1;const a=this.nextSeq(),i=Qj(n,t,a,{maxFrameBytes:this.options.maxFrameBytes,chunkStreamId:Zj()});if(i.totalChunks===0){const s=Jf(t,n,a);this.sendRaw(s)}else for(const s of i.chunks){const c=$j(s,this.nextSeq());this.sendRaw(c)}return!0}sendRaw(t){var n;((n=this.ws)==null?void 0:n.readyState)===WebSocket.OPEN&&this.ws.send(t)}flushPendingMessages(){for(;this.pendingMessages.length>0;){const t=this.pendingMessages.shift();t&&this.send(t.kind,t.payload)}}startHeartbeat(){this.stopHeartbeat(),this.heartbeatTimer=setInterval(()=>{this.sendPing()},this.options.heartbeatIntervalMs)}stopHeartbeat(){this.heartbeatTimer&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}sendPing(){if(!this.isReady())return;const t={nonce:Math.floor(Math.random()*4294967295),timeMs:BigInt(Date.now())},n=$n(nj,t),a=this.nextSeq(),i=Jf(KD,n,a);this.sendRaw(i),this.lastPingSentAt=Date.now(),this.clearPongTimeout(),this.pongTimeoutTimer=setTimeout(()=>{var s;this.pongTimeoutTimer=null,(s=this.ws)==null||s.close()},1e4)}scheduleReconnect(){if(this.reconnectTimer)return;this.reconnectAttempts++,this.setState("RECONNECT_BACKOFF");const t=Math.min(this.options.reconnectDelayMs*2**(this.reconnectAttempts-1),3e4);console.log(`[borsh-client] Reconnecting in ${t}ms (attempt ${this.reconnectAttempts})`),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}clearTimers(){this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.stopHeartbeat(),this.clearPongTimeout()}clearPongTimeout(){this.pongTimeoutTimer&&(clearTimeout(this.pongTimeoutTimer),this.pongTimeoutTimer=null)}setupVisibilityListener(){if(this.visibilityHandler||typeof document>"u")return;const t=()=>{if(document.visibilityState==="visible")if(this.clearPongTimeout(),this.state==="CLOSED"){const n=Date.now();if(n-this.lastVisibilityReconnectAt<5e3)return;this.lastVisibilityReconnectAt=n,this.reconnectAttempts=0,this.connect()}else this.state==="RECONNECT_BACKOFF"?(this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.reconnectAttempts=0,this.connect()):this.state==="READY"&&this.sendPing()};document.addEventListener("visibilitychange",t),this.visibilityHandler=t}reconnect(){this.clearTimers(),this.latencyMs=null,this.ws&&(this.ws.onclose=null,this.ws.onerror=null,this.ws.close(),this.ws=null),this.reconnectAttempts=0,this.setState("IDLE"),this.connect()}nextSeq(){return this.seq=(this.seq+1)%4294967295,this.seq}}let Bg=null;function Sn(){return Bg||(Bg=new uP),Bg}class dP{constructor(t={}){We(this,"transactions",new Map);We(this,"outputGates",new Map);We(this,"deferredResets",new Set);We(this,"deferredHistories",new Map);We(this,"deferredFlushes",new Map);We(this,"deferredOutputs",new Map);We(this,"callbacks");We(this,"ackTimeoutMs",1500);We(this,"liveResumeTimeoutMs",2e3);We(this,"timers",new Map);this.callbacks=t}setCallbacks(t){this.callbacks=t;for(const n of this.transactions.keys())this.replayDeferred(n);for(const n of this.deferredResets)this.replayDeferred(n);for(const n of this.deferredHistories.keys())this.replayDeferred(n);for(const n of this.deferredFlushes.keys())this.replayDeferred(n);for(const n of this.deferredOutputs.keys())this.replayDeferred(n)}getTransaction(t){return this.transactions.get(t)}getState(t){var n;return((n=this.transactions.get(t))==null?void 0:n.state)??"STABLE"}isStable(t){return this.getState(t)==="STABLE"}isBuffering(t){var n;return((n=this.outputGates.get(t))==null?void 0:n.state)==="BUFFERING"}dispatch(t){switch(t.type){case"SELECT_START":this.handleSelectStart(t);break;case"SWITCH_ACK":this.handleSwitchAck(t);break;case"HISTORY":this.handleHistory(t);break;case"LIVE_RESUME":this.handleLiveResume(t);break;case"OUTPUT":this.handleOutput(t);break;case"SELECT_FAILED":this.handleSelectFailed(t);break}}handleSelectStart(t){const{deviceId:n,windowId:a,paneId:i,selectToken:s,wantHistory:c}=t;this.cancelTransaction(n),this.clearDeferred(n);const d={state:"SELECTING",deviceId:n,windowId:a,paneId:i,selectToken:new Uint8Array(s),wantHistory:c,startedAt:Date.now()};this.transactions.set(n,d),this.startOutputBuffering(n),this.setTimer(n,()=>{this.handleTimeout(n,"ack")},this.ackTimeoutMs)}handleSwitchAck(t){const{deviceId:n,selectToken:a}=t,i=this.transactions.get(n);!i||!this.validateToken(i.selectToken,a)||i.state==="SELECTING"&&(this.clearTimer(n),i.state="ACKED",this.callbacks.onResetTerminal?this.callbacks.onResetTerminal(n):this.deferredResets.add(n),this.setTimer(n,()=>{this.handleTimeout(n,"live")},this.liveResumeTimeoutMs))}handleHistory(t){const{deviceId:n,selectToken:a,data:i}=t,s=this.transactions.get(n);!s||!this.validateToken(s.selectToken,a)||s.state==="ACKED"&&(s.state="HISTORY_APPLIED",this.callbacks.onApplyHistory?this.callbacks.onApplyHistory(n,i,t.alternateScreen):this.deferredHistories.set(n,{data:i,alternateScreen:t.alternateScreen}),this.setTimer(n,()=>{this.handleTimeout(n,"live")},this.liveResumeTimeoutMs))}handleLiveResume(t){const{deviceId:n,selectToken:a}=t,i=this.transactions.get(n);if(!i||!this.validateToken(i.selectToken,a)||i.state!=="ACKED"&&i.state!=="HISTORY_APPLIED")return;this.clearTimer(n),i.state="LIVE";const s=this.stopOutputBuffering(n);this.completeTransaction(n),this.callbacks.onFlushBuffer?this.callbacks.onFlushBuffer(n,s):s.length>0&&this.deferredFlushes.set(n,s),this.replayDeferred(n)}handleOutput(t){const{deviceId:n,paneId:a,data:i}=t,s=this.transactions.get(n);if(s&&s.paneId!==a)return;if(this.isBuffering(n)){this.bufferOutput(n,i);return}if(this.callbacks.onOutput){this.callbacks.onOutput(n,a,i);return}const c=this.deferredOutputs.get(n)??[];c.push({paneId:a,data:new Uint8Array(i)}),this.deferredOutputs.set(n,c)}handleSelectFailed(t){const{deviceId:n}=t;this.failTransaction(n)}handleTimeout(t,n){console.warn(`[select-sm] Timeout at ${n} for ${t}`),this.failTransaction(t)}completeTransaction(t){const n=this.transactions.get(t);n&&(n.state="STABLE",this.transactions.delete(t))}failTransaction(t){var a,i;const n=this.transactions.get(t);n&&(n.state="SELECT_FAILED",this.stopOutputBuffering(t),(i=(a=this.callbacks).onSelectFailed)==null||i.call(a,t),this.transactions.delete(t),this.clearTimer(t),this.clearDeferred(t))}cancelTransaction(t){this.transactions.get(t)&&(this.stopOutputBuffering(t),this.transactions.delete(t),this.clearTimer(t),this.clearDeferred(t))}startOutputBuffering(t){this.outputGates.set(t,{state:"BUFFERING",buffer:[]})}stopOutputBuffering(t){const n=this.outputGates.get(t);if(!n)return[];const a=[...n.buffer];return this.outputGates.delete(t),a}bufferOutput(t,n){const a=this.outputGates.get(t);a&&(a.buffer.length>=1e3&&a.buffer.shift(),a.buffer.push(new Uint8Array(n)))}validateToken(t,n){if(t.length!==n.length)return!1;for(let a=0;a<t.length;a++)if(t[a]!==n[a])return!1;return!0}replayDeferred(t){var s,c;this.deferredResets.has(t)&&(this.deferredResets.delete(t),(c=(s=this.callbacks).onResetTerminal)==null||c.call(s,t));const n=this.deferredHistories.get(t);n!==void 0&&this.callbacks.onApplyHistory&&(this.callbacks.onApplyHistory(t,n.data,n.alternateScreen),this.deferredHistories.delete(t));const a=this.deferredFlushes.get(t);a&&this.callbacks.onFlushBuffer&&(this.callbacks.onFlushBuffer(t,a),this.deferredFlushes.delete(t));const i=this.deferredOutputs.get(t);if(i&&this.callbacks.onOutput){for(const d of i)this.callbacks.onOutput(t,d.paneId,d.data);this.deferredOutputs.delete(t)}}clearDeferred(t){this.deferredResets.delete(t),this.deferredHistories.delete(t),this.deferredFlushes.delete(t),this.deferredOutputs.delete(t)}setTimer(t,n,a){this.clearTimer(t);const i=setTimeout(n,a);this.timers.set(t,i)}clearTimer(t){const n=this.timers.get(t);n&&(clearTimeout(n),this.timers.delete(t))}cleanup(t){this.cancelTransaction(t),this.outputGates.delete(t),this.clearDeferred(t)}cleanupAll(){for(const t of this.transactions.keys())this.cleanup(t);this.transactions.clear(),this.outputGates.clear(),this.deferredResets.clear(),this.deferredHistories.clear(),this.deferredFlushes.clear(),this.deferredOutputs.clear();for(const t of this.timers.values())clearTimeout(t);this.timers.clear()}}let tu=null;function ku(e){return tu?(e&&tu.setCallbacks(e),tu):(tu=new dP(e),tu)}function fP(){return crypto.getRandomValues(new Uint8Array(16))}function gC(e){const t=$n(rj,{deviceId:e});return{kind:WD,payload:t}}function hP(e){const t=$n(oj,{deviceId:e});return{kind:ZD,payload:t}}function mP(e){const t=$n(lj,{deviceId:e.deviceId,windowId:e.windowId??null,paneId:e.paneId??null,selectToken:e.selectToken,wantHistory:e.wantHistory,cols:e.cols??null,rows:e.rows??null});return{kind:tk,payload:t}}function pP(e,t){const n=$n(cj,{deviceId:e,windowId:t});return{kind:nk,payload:n}}function gP(e,t){const n=$n(uj,{deviceId:e,name:t??null});return{kind:rk,payload:n}}function yP(e,t){const n=$n(dj,{deviceId:e,windowId:t});return{kind:ak,payload:n}}function vP(e,t){const n=$n(fj,{deviceId:e,paneId:t});return{kind:ok,payload:n}}function bP(e,t,n){const a=$n(hj,{deviceId:e,windowId:t,name:n});return{kind:ik,payload:a}}function xP(e,t){const n=$n(mj,{deviceId:e,style:t});return{kind:ck,payload:n}}function wP(e,t){const n=$n(pj,{deviceId:e,windowIds:t});return{kind:uk,payload:n}}function SP(e,t,n){const a=$n(gj,{deviceId:e,windowId:t,paneIds:n});return{kind:dk,payload:a}}function EP(e,t,n,a=!1){const i=new TextEncoder,s=$n(vj,{deviceId:e,paneId:t,encoding:2,data:i.encode(n),isComposing:a});return{kind:fk,payload:s}}function RP(e,t,n){const a=new TextEncoder,i=$n(bj,{deviceId:e,paneId:t,encoding:2,data:a.encode(n),isComposing:!1});return{kind:hk,payload:i}}function TP(e,t,n,a){const i=$n(NT,{deviceId:e,paneId:t,cols:n,rows:a});return{kind:mk,payload:i}}function CP(e,t,n,a){const i=$n(xj,{deviceId:e,paneId:t,cols:n,rows:a});return{kind:pk,payload:i}}function OP(e){const t=$n(Aj,{sessionId:e});return{kind:Sk,payload:t}}function MP(e){const t=$n(Dj,{sessionId:e});return{kind:Ek,payload:t}}const w1=e=>{let t;const n=new Set,a=(f,g)=>{const m=typeof f=="function"?f(t):f;if(!Object.is(m,t)){const b=t;t=g??(typeof m!="object"||m===null)?m:Object.assign({},t,m),n.forEach(x=>x(t,b))}},i=()=>t,d={setState:a,getState:i,getInitialState:()=>h,subscribe:f=>(n.add(f),()=>n.delete(f))},h=t=e(a,i,d);return d},NP=(e=>e?w1(e):w1),AP=e=>e;function DP(e,t=AP){const n=Le.useSyncExternalStore(e.subscribe,Le.useCallback(()=>t(e.getState()),[e,t]),Le.useCallback(()=>t(e.getInitialState()),[e,t]));return Le.useDebugValue(n),n}const S1=e=>{const t=NP(e),n=a=>DP(t,a);return Object.assign(n,t),n},Bh=(e=>e?S1(e):S1),Fg={siteName:"tmex",siteUrl:typeof window<"u"?window.location.origin:"http://localhost:9663",bellThrottleSeconds:6,notificationThrottleSeconds:3,enableBrowserBellToast:!0,enableBrowserNotificationToast:!0,enableTelegramBellPush:!0,enableTelegramNotificationPush:!0,enableWeixinBellPush:!1,enableWeixinNotificationPush:!1,sshReconnectMaxRetries:2,sshReconnectDelaySeconds:10,language:Hv,updatedAt:new Date(0).toISOString()};async function E1(){const e=await fetch("/api/settings/site");if(!e.ok)throw new Error("Failed to load site settings");return(await e.json()).settings}const vs=Bh((e,t)=>({settings:null,loading:!1,fetchSettings:async()=>{const n=t().settings;if(n)return n;e({loading:!0});try{const a=await E1();return e({settings:a,loading:!1}),qt.changeLanguage(a.language),a}catch(a){return console.error("[site] failed to fetch settings:",a),e({settings:Fg,loading:!1}),qt.changeLanguage(Fg.language),Fg}},refreshSettings:async()=>{e({loading:!0});try{const n=await E1();return e({settings:n,loading:!1}),qt.changeLanguage(n.language),n}catch(n){throw console.error("[site] failed to refresh settings:",n),e({loading:!1}),n}}}));function kP(e){return typeof e.paneTitle=="string"&&e.paneTitle?e.paneTitle:typeof e.paneCurrentCommand=="string"&&e.paneCurrentCommand?e.paneCurrentCommand:typeof e.paneIndex=="number"?qt.t("terminal.paneTitle",{index:e.paneIndex}):typeof e.paneId=="string"&&e.paneId?qt.t("terminal.paneTitle",{index:e.paneId}):""}function yC(e){const t=typeof e.windowIndex=="number"?String(e.windowIndex):typeof e.windowId=="string"&&e.windowId?e.windowId:"",n=kP(e);return t&&n?qt.t("terminal.bellDescriptionWithTitle",{window:t,paneLabel:n}):t?`${qt.t("notification.window")} ${t}`:n||""}function jP(e){const t=typeof e.title=="string"&&e.title?e.title:qt.t("terminal.notificationFallbackTitle"),n=yC(e),a=typeof e.body=="string"&&e.body?e.body:typeof e.source=="string"&&e.source?qt.t("terminal.notificationSourceLabel",{source:e.source}):qt.t("terminal.notificationFallbackDetail");return{title:t,description:n?`${n}
|
|
70
|
+
*/var y1;function Kz(){if(y1)return Hg;y1=1;var e=qu();function t(m,b){return m===b&&(m!==0||1/m===1/b)||m!==m&&b!==b}var n=typeof Object.is=="function"?Object.is:t,a=e.useState,i=e.useEffect,s=e.useLayoutEffect,c=e.useDebugValue;function d(m,b){var x=b(),w=a({inst:{value:x,getSnapshot:b}}),S=w[0].inst,E=w[1];return s(function(){S.value=x,S.getSnapshot=b,h(S)&&E({inst:S})},[m,x,b]),i(function(){return h(S)&&E({inst:S}),m(function(){h(S)&&E({inst:S})})},[m]),c(x),x}function h(m){var b=m.getSnapshot;m=m.value;try{var x=b();return!n(m,x)}catch{return!0}}function f(m,b){return b()}var g=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:d;return Hg.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:g,Hg}var v1;function pC(){return v1||(v1=1,Ug.exports=Kz()),Ug.exports}var tb=pC();const Gz=(e,t)=>ys(t)?t:_z(t)&&ys(t.defaultValue)?t.defaultValue:Array.isArray(e)?e[e.length-1]:e,Xz={t:Gz,ready:!1},Wz=()=>()=>{},gr=(e,t={})=>{var B,G,K;const{i18n:n}=t,{i18n:a,defaultNS:i}=y.useContext(qz)||{},s=n||a||Vz();s&&!s.reportNamespaces&&(s.reportNamespaces=new $z),s||fC(s,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const c=y.useMemo(()=>{var I;return{...Bz(),...(I=s==null?void 0:s.options)==null?void 0:I.react,...t}},[s,t]),{useSuspense:d,keyPrefix:h}=c,f=i||((B=s==null?void 0:s.options)==null?void 0:B.defaultNS),g=ys(f)?[f]:f||["translation"],m=y.useMemo(()=>g,g);(K=(G=s==null?void 0:s.reportNamespaces)==null?void 0:G.addUsedNamespaces)==null||K.call(G,m);const b=y.useRef(0),x=y.useCallback(I=>{if(!s)return Wz;const{bindI18n:H,bindI18nStore:F}=c,V=()=>{b.current+=1,I()};return H&&s.on(H,V),F&&s.store.on(F,V),()=>{H&&H.split(" ").forEach(L=>s.off(L,V)),F&&F.split(" ").forEach(L=>s.store.off(L,V))}},[s,c]),w=y.useRef(),S=y.useCallback(()=>{if(!s)return Xz;const I=!!(s.isInitialized||s.initializedStoreOnce)&&m.every(z=>Lz(z,s,c)),H=t.lng||s.language,F=b.current,V=w.current;if(V&&V.ready===I&&V.lng===H&&V.keyPrefix===h&&V.revision===F)return V;const _={t:s.getFixedT(H,c.nsMode==="fallback"?m:m[0],h),ready:I,lng:H,keyPrefix:h,revision:F};return w.current=_,_},[s,m,h,c,t.lng]),[E,T]=y.useState(0),{t:C,ready:M}=tb.useSyncExternalStore(x,S,S);y.useEffect(()=>{if(s&&!M&&!d){const I=()=>T(H=>H+1);t.lng?g1(s,t.lng,m,I):Yy(s,m,I)}},[s,t.lng,m,M,d,E]);const O=s||{},D=y.useRef(null),k=y.useRef(),A=I=>{const H=Object.getOwnPropertyDescriptors(I);H.__original&&delete H.__original;const F=Object.create(Object.getPrototypeOf(I),H);if(!Object.prototype.hasOwnProperty.call(F,"__original"))try{Object.defineProperty(F,"__original",{value:I,writable:!1,enumerable:!1,configurable:!1})}catch{}return F},j=y.useMemo(()=>{const I=O,H=I==null?void 0:I.language;let F=I;I&&(D.current&&D.current.__original===I?k.current!==H?(F=A(I),D.current=F,k.current=H):F=D.current:(F=A(I),D.current=F,k.current=H));const V=[C,F,M];return V.t=C,V.i18n=F,V.ready=M,V},[C,O,M,O.resolvedLanguage,O.language,O.languages]);if(s&&d&&!M)throw new Promise(I=>{const H=()=>I();t.lng?g1(s,t.lng,m,H):Yy(s,m,H)});return j},Qz=Object.assign({"../../../../packages/shared/src/i18n/locales/en_US.json":()=>So(()=>import("./en_US-Chxeay8F.js"),[]),"../../../../packages/shared/src/i18n/locales/ja_JP.json":()=>So(()=>import("./ja_JP-BI-C8I9X.js"),[]),"../../../../packages/shared/src/i18n/locales/zh_CN.json":()=>So(()=>import("./zh_CN-DE-BaQ3P.js"),[])});function Zz(e){const t=Object.entries(Qz).find(([n])=>n.endsWith(`/${e}.json`));return t==null?void 0:t[1]}function Jz(){const e=navigator.language;return e.startsWith("zh")?"zh_CN":e.startsWith("ja")?"ja_JP":Hv}const eP=qt.use(kz(async(e,t)=>{const n=Zz(e);return n?(await n()).default[t]??{}:{}})).use(Yz).init({lng:Jz(),fallbackLng:Hv,ns:["translation"],defaultNS:"translation",interpolation:{escapeValue:!1},returnNull:!1,react:{useSuspense:!1}}),tP={background:"#e1e1e1",foreground:"#616161",cursor:"#616161",selectionBackground:"rgba(97, 97, 97, 0.25)",black:"#171717",red:"#bf2172",green:"#009799",yellow:"#9a7200",blue:"#007299",magenta:"#9b1d72",cyan:"#007173",white:"#d9d9d9",brightBlack:"#4e4e4e",brightRed:"#e12672",brightGreen:"#00bddf",brightYellow:"#ffdd00",brightBlue:"#7299bc",brightMagenta:"#e17899",brightCyan:"#6fbcbd",brightWhite:"#f1f1f1"},nP={background:"#262626",foreground:"#d0d0d0",cursor:"#c5c5c5",selectionBackground:"rgba(197, 197, 197, 0.25)",black:"#000000",red:"#ba3c3c",green:"#5d876d",yellow:"#d5a54e",blue:"#887c8d",magenta:"#cd6d6d",cyan:"#618484",white:"#cfcdc3",brightBlack:"#000000",brightRed:"#ea7171",brightGreen:"#7aab7a",brightYellow:"#d1d194",brightBlue:"#afa3b5",brightMagenta:"#e29f9f",brightCyan:"#a0aea3",brightWhite:"#d0d0d0"};function rP(e){const t=e==="light"?tP:nP;return`fg=${t.foreground},bg=${t.background}`}let rh=null;function b1(e){rh=e}function aP(e,t){rh==null||rh(e,t)}let wo=null;function x1(e){wo=e}function H7(){wo!=null&&wo.isMobile&&wo.setOpenMobile(!0)}function oP(){wo!=null&&wo.isMobile&&wo.setOpenMobile(!1)}const iP=/^\/devices\/([^/]+)\/windows\/([^/]+)\/panes\/([^/]+)$/;function sP(e){try{const t=new URL(e,window.location.origin);return t.pathname+t.search+t.hash}catch{return e}}function gh(e){const t=sP(e),n=iP.exec(t);if(n){const[,a,i,s]=n;window.dispatchEvent(new CustomEvent("tmex:user-initiated-selection",{detail:{deviceId:a,windowId:i,paneId:decodeURIComponent(s)}}))}aP(t,{replace:!0}),oP()}const lP=`${typeof window<"u"&&window.location.protocol==="https:"?"wss:":"ws:"}//${typeof window<"u"?window.location.host:""}/ws`,cP={clientImpl:"tmex-fe",clientVersion:"0.1.0",maxFrameBytes:1048576,reconnectDelayMs:1e3,maxReconnectAttempts:5,heartbeatIntervalMs:5e3};class uP{constructor(t={}){We(this,"ws",null);We(this,"options");We(this,"state","IDLE");We(this,"seq",0);We(this,"chunkReassembler",new Wj);We(this,"reconnectAttempts",0);We(this,"reconnectTimer",null);We(this,"heartbeatTimer",null);We(this,"pongTimeoutTimer",null);We(this,"lastPingSentAt",0);We(this,"messageHandlers",new Set);We(this,"stateChangeHandlers",new Set);We(this,"errorHandlers",new Set);We(this,"latencyHandlers",new Set);We(this,"visibilityHandler",null);We(this,"lastVisibilityReconnectAt",0);We(this,"pendingMessages",[]);We(this,"maxPendingMessages",100);We(this,"hasConnectedOnce",!1);We(this,"latencyMs",null);this.options={...cP,...t}}setState(t){if(this.state!==t){console.log(`[borsh-client] State: ${this.state} -> ${t}`),this.state=t;for(const n of this.stateChangeHandlers)try{n(t)}catch(a){console.error("[borsh-client] State change handler error:",a)}t==="READY"&&this.flushPendingMessages()}}getState(){return this.state}isReady(){return this.state==="READY"}onMessage(t){return this.messageHandlers.add(t),()=>this.messageHandlers.delete(t)}onStateChange(t){return this.stateChangeHandlers.add(t),()=>this.stateChangeHandlers.delete(t)}onError(t){return this.errorHandlers.add(t),()=>this.errorHandlers.delete(t)}onLatency(t){return this.latencyHandlers.add(t),()=>this.latencyHandlers.delete(t)}connect(){var t,n;if(this.setupVisibilityListener(),!(((t=this.ws)==null?void 0:t.readyState)===WebSocket.OPEN||((n=this.ws)==null?void 0:n.readyState)===WebSocket.CONNECTING)){this.setState("WS_CONNECTING");try{this.ws=new WebSocket(lP),this.ws.binaryType="arraybuffer",this.ws.onopen=()=>{this.sendHello()},this.ws.onmessage=a=>{this.handleMessage(a.data)},this.ws.onclose=()=>{this.handleClose()},this.ws.onerror=()=>{this.handleError(new Error("WebSocket error"))}}catch(a){this.handleError(a instanceof Error?a:new Error(String(a)))}}}disconnect(){this.setState("CLOSED"),this.clearTimers(),this.latencyMs=null,this.ws&&(this.ws.close(),this.ws=null),this.visibilityHandler&&(document.removeEventListener("visibilitychange",this.visibilityHandler),this.visibilityHandler=null)}handleMessage(t){if(typeof t=="string")return;const n=new Uint8Array(t);if(!Gj(n)){console.warn("[borsh-client] Received message without magic, ignoring");return}try{const a=qj(n);if(a.kind===wk){const i=Kj(a.payload),s=this.chunkReassembler.addChunk(i);s&&this.dispatchMessage({kind:s.kind,seq:s.seq,payload:s.payload});return}if(a.kind===$D){this.handleHelloS2C(a.payload);return}if(a.kind===GD){if(this.clearPongTimeout(),this.lastPingSentAt>0){const i=Date.now()-this.lastPingSentAt;this.latencyMs=i;for(const s of this.latencyHandlers)try{s(i)}catch{}}return}this.dispatchMessage({kind:a.kind,seq:a.seq,payload:a.payload})}catch(a){console.error("[borsh-client] Failed to decode message:",a)}}dispatchMessage(t){for(const n of this.messageHandlers)try{n(t)}catch(a){console.error("[borsh-client] Message handler error:",a)}}handleHelloS2C(t){try{const n=Aa(tj,t);console.log("[borsh-client] HELLO_S2C received:",n),this.setState("READY"),this.hasConnectedOnce=!0,this.startHeartbeat(),this.sendPing(),this.reconnectAttempts=0}catch(n){console.error("[borsh-client] Failed to decode HELLO_S2C:",n),this.handleError(new Error("HELLO negotiation failed"))}}handleClose(){this.stopHeartbeat(),this.state!=="CLOSED"&&(this.reconnectAttempts<this.options.maxReconnectAttempts?this.scheduleReconnect():(this.setState("CLOSED"),this.handleError(new Error("Max reconnection attempts reached"))))}handleError(t){console.error("[borsh-client] Error:",t);for(const n of this.errorHandlers)try{n(t)}catch(a){console.error("[borsh-client] Error handler error:",a)}}sendHello(){const t={clientImpl:this.options.clientImpl,clientVersion:this.options.clientVersion,maxFrameBytes:this.options.maxFrameBytes,supportsCompression:!1,supportsDiffSnapshot:!1},n=$n(ej,t),a=this.nextSeq(),i=Jf(qD,n,a);this.sendRaw(i),this.setState("HELLO_NEGOTIATING")}send(t,n){if(!this.isReady())return this.pendingMessages.length<this.maxPendingMessages&&this.pendingMessages.push({kind:t,payload:n}),!1;const a=this.nextSeq(),i=Qj(n,t,a,{maxFrameBytes:this.options.maxFrameBytes,chunkStreamId:Zj()});if(i.totalChunks===0){const s=Jf(t,n,a);this.sendRaw(s)}else for(const s of i.chunks){const c=$j(s,this.nextSeq());this.sendRaw(c)}return!0}sendRaw(t){var n;((n=this.ws)==null?void 0:n.readyState)===WebSocket.OPEN&&this.ws.send(t)}flushPendingMessages(){for(;this.pendingMessages.length>0;){const t=this.pendingMessages.shift();t&&this.send(t.kind,t.payload)}}startHeartbeat(){this.stopHeartbeat(),this.heartbeatTimer=setInterval(()=>{this.sendPing()},this.options.heartbeatIntervalMs)}stopHeartbeat(){this.heartbeatTimer&&(clearInterval(this.heartbeatTimer),this.heartbeatTimer=null)}sendPing(){if(!this.isReady())return;const t={nonce:Math.floor(Math.random()*4294967295),timeMs:BigInt(Date.now())},n=$n(nj,t),a=this.nextSeq(),i=Jf(KD,n,a);this.sendRaw(i),this.lastPingSentAt=Date.now(),this.clearPongTimeout(),this.pongTimeoutTimer=setTimeout(()=>{var s;this.pongTimeoutTimer=null,(s=this.ws)==null||s.close()},1e4)}scheduleReconnect(){if(this.reconnectTimer)return;this.reconnectAttempts++,this.setState("RECONNECT_BACKOFF");const t=Math.min(this.options.reconnectDelayMs*2**(this.reconnectAttempts-1),3e4);console.log(`[borsh-client] Reconnecting in ${t}ms (attempt ${this.reconnectAttempts})`),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}clearTimers(){this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.stopHeartbeat(),this.clearPongTimeout()}clearPongTimeout(){this.pongTimeoutTimer&&(clearTimeout(this.pongTimeoutTimer),this.pongTimeoutTimer=null)}setupVisibilityListener(){if(this.visibilityHandler||typeof document>"u")return;const t=()=>{if(document.visibilityState==="visible")if(this.clearPongTimeout(),this.state==="CLOSED"){const n=Date.now();if(n-this.lastVisibilityReconnectAt<5e3)return;this.lastVisibilityReconnectAt=n,this.reconnectAttempts=0,this.connect()}else this.state==="RECONNECT_BACKOFF"?(this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.reconnectAttempts=0,this.connect()):this.state==="READY"&&this.sendPing()};document.addEventListener("visibilitychange",t),this.visibilityHandler=t}reconnect(){this.clearTimers(),this.latencyMs=null,this.ws&&(this.ws.onclose=null,this.ws.onerror=null,this.ws.close(),this.ws=null),this.reconnectAttempts=0,this.setState("IDLE"),this.connect()}nextSeq(){return this.seq=(this.seq+1)%4294967295,this.seq}}let Bg=null;function Sn(){return Bg||(Bg=new uP),Bg}class dP{constructor(t={}){We(this,"transactions",new Map);We(this,"outputGates",new Map);We(this,"deferredResets",new Set);We(this,"deferredHistories",new Map);We(this,"deferredFlushes",new Map);We(this,"deferredOutputs",new Map);We(this,"callbacks");We(this,"ackTimeoutMs",1500);We(this,"liveResumeTimeoutMs",2e3);We(this,"timers",new Map);this.callbacks=t}setCallbacks(t){this.callbacks=t;for(const n of this.transactions.keys())this.replayDeferred(n);for(const n of this.deferredResets)this.replayDeferred(n);for(const n of this.deferredHistories.keys())this.replayDeferred(n);for(const n of this.deferredFlushes.keys())this.replayDeferred(n);for(const n of this.deferredOutputs.keys())this.replayDeferred(n)}getTransaction(t){return this.transactions.get(t)}getState(t){var n;return((n=this.transactions.get(t))==null?void 0:n.state)??"STABLE"}isStable(t){return this.getState(t)==="STABLE"}isBuffering(t){var n;return((n=this.outputGates.get(t))==null?void 0:n.state)==="BUFFERING"}dispatch(t){switch(t.type){case"SELECT_START":this.handleSelectStart(t);break;case"SWITCH_ACK":this.handleSwitchAck(t);break;case"HISTORY":this.handleHistory(t);break;case"LIVE_RESUME":this.handleLiveResume(t);break;case"OUTPUT":this.handleOutput(t);break;case"SELECT_FAILED":this.handleSelectFailed(t);break}}handleSelectStart(t){const{deviceId:n,windowId:a,paneId:i,selectToken:s,wantHistory:c}=t;this.cancelTransaction(n),this.clearDeferred(n);const d={state:"SELECTING",deviceId:n,windowId:a,paneId:i,selectToken:new Uint8Array(s),wantHistory:c,startedAt:Date.now()};this.transactions.set(n,d),this.startOutputBuffering(n),this.setTimer(n,()=>{this.handleTimeout(n,"ack")},this.ackTimeoutMs)}handleSwitchAck(t){const{deviceId:n,selectToken:a}=t,i=this.transactions.get(n);!i||!this.validateToken(i.selectToken,a)||i.state==="SELECTING"&&(this.clearTimer(n),i.state="ACKED",this.callbacks.onResetTerminal?this.callbacks.onResetTerminal(n):this.deferredResets.add(n),this.setTimer(n,()=>{this.handleTimeout(n,"live")},this.liveResumeTimeoutMs))}handleHistory(t){const{deviceId:n,selectToken:a,data:i}=t,s=this.transactions.get(n);!s||!this.validateToken(s.selectToken,a)||s.state==="ACKED"&&(s.state="HISTORY_APPLIED",this.callbacks.onApplyHistory?this.callbacks.onApplyHistory(n,i,t.alternateScreen):this.deferredHistories.set(n,{data:i,alternateScreen:t.alternateScreen}),this.setTimer(n,()=>{this.handleTimeout(n,"live")},this.liveResumeTimeoutMs))}handleLiveResume(t){const{deviceId:n,selectToken:a}=t,i=this.transactions.get(n);if(!i||!this.validateToken(i.selectToken,a)||i.state!=="ACKED"&&i.state!=="HISTORY_APPLIED")return;this.clearTimer(n),i.state="LIVE";const s=this.stopOutputBuffering(n);this.completeTransaction(n),this.callbacks.onFlushBuffer?this.callbacks.onFlushBuffer(n,s):s.length>0&&this.deferredFlushes.set(n,s),this.replayDeferred(n)}handleOutput(t){const{deviceId:n,paneId:a,data:i}=t,s=this.transactions.get(n);if(s&&s.paneId!==a)return;if(this.isBuffering(n)){this.bufferOutput(n,i);return}if(this.callbacks.onOutput){this.callbacks.onOutput(n,a,i);return}const c=this.deferredOutputs.get(n)??[];c.push({paneId:a,data:new Uint8Array(i)}),this.deferredOutputs.set(n,c)}handleSelectFailed(t){const{deviceId:n}=t;this.failTransaction(n)}handleTimeout(t,n){console.warn(`[select-sm] Timeout at ${n} for ${t}`),this.failTransaction(t)}completeTransaction(t){const n=this.transactions.get(t);n&&(n.state="STABLE",this.transactions.delete(t))}failTransaction(t){var a,i;const n=this.transactions.get(t);n&&(n.state="SELECT_FAILED",this.stopOutputBuffering(t),(i=(a=this.callbacks).onSelectFailed)==null||i.call(a,t),this.transactions.delete(t),this.clearTimer(t),this.clearDeferred(t))}cancelTransaction(t){this.transactions.get(t)&&(this.stopOutputBuffering(t),this.transactions.delete(t),this.clearTimer(t),this.clearDeferred(t))}startOutputBuffering(t){this.outputGates.set(t,{state:"BUFFERING",buffer:[]})}stopOutputBuffering(t){const n=this.outputGates.get(t);if(!n)return[];const a=[...n.buffer];return this.outputGates.delete(t),a}bufferOutput(t,n){const a=this.outputGates.get(t);a&&(a.buffer.length>=1e3&&a.buffer.shift(),a.buffer.push(new Uint8Array(n)))}validateToken(t,n){if(t.length!==n.length)return!1;for(let a=0;a<t.length;a++)if(t[a]!==n[a])return!1;return!0}replayDeferred(t){var s,c;this.deferredResets.has(t)&&(this.deferredResets.delete(t),(c=(s=this.callbacks).onResetTerminal)==null||c.call(s,t));const n=this.deferredHistories.get(t);n!==void 0&&this.callbacks.onApplyHistory&&(this.callbacks.onApplyHistory(t,n.data,n.alternateScreen),this.deferredHistories.delete(t));const a=this.deferredFlushes.get(t);a&&this.callbacks.onFlushBuffer&&(this.callbacks.onFlushBuffer(t,a),this.deferredFlushes.delete(t));const i=this.deferredOutputs.get(t);if(i&&this.callbacks.onOutput){for(const d of i)this.callbacks.onOutput(t,d.paneId,d.data);this.deferredOutputs.delete(t)}}clearDeferred(t){this.deferredResets.delete(t),this.deferredHistories.delete(t),this.deferredFlushes.delete(t),this.deferredOutputs.delete(t)}setTimer(t,n,a){this.clearTimer(t);const i=setTimeout(n,a);this.timers.set(t,i)}clearTimer(t){const n=this.timers.get(t);n&&(clearTimeout(n),this.timers.delete(t))}cleanup(t){this.cancelTransaction(t),this.outputGates.delete(t),this.clearDeferred(t)}cleanupAll(){for(const t of this.transactions.keys())this.cleanup(t);this.transactions.clear(),this.outputGates.clear(),this.deferredResets.clear(),this.deferredHistories.clear(),this.deferredFlushes.clear(),this.deferredOutputs.clear();for(const t of this.timers.values())clearTimeout(t);this.timers.clear()}}let tu=null;function ku(e){return tu?(e&&tu.setCallbacks(e),tu):(tu=new dP(e),tu)}function fP(){return crypto.getRandomValues(new Uint8Array(16))}function gC(e){const t=$n(rj,{deviceId:e});return{kind:WD,payload:t}}function hP(e){const t=$n(oj,{deviceId:e});return{kind:ZD,payload:t}}function mP(e){const t=$n(lj,{deviceId:e.deviceId,windowId:e.windowId??null,paneId:e.paneId??null,selectToken:e.selectToken,wantHistory:e.wantHistory,cols:e.cols??null,rows:e.rows??null});return{kind:tk,payload:t}}function pP(e,t){const n=$n(cj,{deviceId:e,windowId:t});return{kind:nk,payload:n}}function gP(e,t){const n=$n(uj,{deviceId:e,name:t??null});return{kind:rk,payload:n}}function yP(e,t){const n=$n(dj,{deviceId:e,windowId:t});return{kind:ak,payload:n}}function vP(e,t){const n=$n(fj,{deviceId:e,paneId:t});return{kind:ok,payload:n}}function bP(e,t,n){const a=$n(hj,{deviceId:e,windowId:t,name:n});return{kind:ik,payload:a}}function xP(e,t){const n=$n(mj,{deviceId:e,style:t});return{kind:ck,payload:n}}function wP(e,t){const n=$n(pj,{deviceId:e,windowIds:t});return{kind:uk,payload:n}}function SP(e,t,n){const a=$n(gj,{deviceId:e,windowId:t,paneIds:n});return{kind:dk,payload:a}}function EP(e,t,n,a=!1){const i=new TextEncoder,s=$n(vj,{deviceId:e,paneId:t,encoding:2,data:i.encode(n),isComposing:a});return{kind:fk,payload:s}}function RP(e,t,n){const a=new TextEncoder,i=$n(bj,{deviceId:e,paneId:t,encoding:2,data:a.encode(n),isComposing:!1});return{kind:hk,payload:i}}function TP(e,t,n,a){const i=$n(NT,{deviceId:e,paneId:t,cols:n,rows:a});return{kind:mk,payload:i}}function CP(e,t,n,a){const i=$n(xj,{deviceId:e,paneId:t,cols:n,rows:a});return{kind:pk,payload:i}}function OP(e){const t=$n(Aj,{sessionId:e});return{kind:Sk,payload:t}}function MP(e){const t=$n(Dj,{sessionId:e});return{kind:Ek,payload:t}}const w1=e=>{let t;const n=new Set,a=(f,g)=>{const m=typeof f=="function"?f(t):f;if(!Object.is(m,t)){const b=t;t=g??(typeof m!="object"||m===null)?m:Object.assign({},t,m),n.forEach(x=>x(t,b))}},i=()=>t,d={setState:a,getState:i,getInitialState:()=>h,subscribe:f=>(n.add(f),()=>n.delete(f))},h=t=e(a,i,d);return d},NP=(e=>e?w1(e):w1),AP=e=>e;function DP(e,t=AP){const n=Le.useSyncExternalStore(e.subscribe,Le.useCallback(()=>t(e.getState()),[e,t]),Le.useCallback(()=>t(e.getInitialState()),[e,t]));return Le.useDebugValue(n),n}const S1=e=>{const t=NP(e),n=a=>DP(t,a);return Object.assign(n,t),n},Bh=(e=>e?S1(e):S1),Fg={siteName:"tmex",siteUrl:typeof window<"u"?window.location.origin:"http://localhost:9663",bellThrottleSeconds:6,notificationThrottleSeconds:3,enableBrowserBellToast:!0,enableBrowserNotificationToast:!0,enableTelegramBellPush:!0,enableTelegramNotificationPush:!0,enableWeixinBellPush:!1,enableWeixinNotificationPush:!1,sshReconnectMaxRetries:2,sshReconnectDelaySeconds:10,language:Hv,updatedAt:new Date(0).toISOString()};async function E1(){const e=await fetch("/api/settings/site");if(!e.ok)throw new Error("Failed to load site settings");return(await e.json()).settings}const vs=Bh((e,t)=>({settings:null,loading:!1,fetchSettings:async()=>{const n=t().settings;if(n)return n;e({loading:!0});try{const a=await E1();return e({settings:a,loading:!1}),qt.changeLanguage(a.language),a}catch(a){return console.error("[site] failed to fetch settings:",a),e({settings:Fg,loading:!1}),qt.changeLanguage(Fg.language),Fg}},refreshSettings:async()=>{e({loading:!0});try{const n=await E1();return e({settings:n,loading:!1}),qt.changeLanguage(n.language),n}catch(n){throw console.error("[site] failed to refresh settings:",n),e({loading:!1}),n}}}));function kP(e){return typeof e.paneTitle=="string"&&e.paneTitle?e.paneTitle:typeof e.paneCurrentCommand=="string"&&e.paneCurrentCommand?e.paneCurrentCommand:typeof e.paneIndex=="number"?qt.t("terminal.paneTitle",{index:e.paneIndex}):typeof e.paneId=="string"&&e.paneId?qt.t("terminal.paneTitle",{index:e.paneId}):""}function yC(e){const t=typeof e.windowIndex=="number"?String(e.windowIndex):typeof e.windowId=="string"&&e.windowId?e.windowId:"",n=kP(e);return t&&n?qt.t("terminal.bellDescriptionWithTitle",{window:t,paneLabel:n}):t?`${qt.t("notification.window")} ${t}`:n||""}function jP(e){const t=typeof e.title=="string"&&e.title?e.title:qt.t("terminal.notificationFallbackTitle"),n=yC(e),a=typeof e.body=="string"&&e.body?e.body:typeof e.source=="string"&&e.source?qt.t("terminal.notificationSourceLabel",{source:e.source}):qt.t("terminal.notificationFallbackDetail");return{title:t,description:n?`${n}
|
|
71
71
|
${a}`:a}}const Vg=[{id:"geist-mono",displayName:"Geist Mono",cssFamily:"GeistMonoTmex",bundled:!0,isDefault:!0,files:{regular:"/fonts/GeistMonoNerdFontMono-Regular.woff2",bold:"/fonts/GeistMonoNerdFontMono-Bold.woff2"}},{id:"jetbrains-mono",displayName:"JetBrains Mono",cssFamily:"JetBrainsMonoTmex",bundled:!0,files:{regular:"/fonts/generated/jetbrains-mono/jetbrains-mono-regular.woff2",bold:"/fonts/generated/jetbrains-mono/jetbrains-mono-bold.woff2"}},{id:"fira-code",displayName:"Fira Code",cssFamily:"FiraCodeTmex",bundled:!0,files:{regular:"/fonts/generated/fira-code/fira-code-regular.woff2",bold:"/fonts/generated/fira-code/fira-code-bold.woff2"}},{id:"blex-mono",displayName:"Blex Mono (IBM Plex Mono)",cssFamily:"BlexMonoTmex",bundled:!0,files:{regular:"/fonts/generated/blex-mono/blex-mono-regular.woff2",bold:"/fonts/generated/blex-mono/blex-mono-bold.woff2"}},{id:"noto-sans-mono",displayName:"Noto Sans Mono",cssFamily:"NotoSansMTmex",bundled:!0,files:{regular:"/fonts/generated/noto-sans-mono/noto-sans-mono-regular.woff2",bold:"/fonts/generated/noto-sans-mono/noto-sans-mono-bold.woff2"}},{id:"zed-mono",displayName:"Zed Mono",cssFamily:"ZedMonoTmex",bundled:!0,files:{regular:"/fonts/generated/zed-mono/zed-mono-regular.woff2",bold:"/fonts/generated/zed-mono/zed-mono-bold.woff2"}},{id:"victor-mono",displayName:"Victor Mono",cssFamily:"VictorMonoTmex",bundled:!0,files:{regular:"/fonts/generated/victor-mono/victor-mono-regular.woff2",bold:"/fonts/generated/victor-mono/victor-mono-bold.woff2"}}],vC="geist-mono";function LP(e,t){let n;try{n=e()}catch{return}return{getItem:i=>{var s;const c=h=>h===null?null:JSON.parse(h,void 0),d=(s=n.getItem(i))!=null?s:null;return d instanceof Promise?d.then(c):c(d)},setItem:(i,s)=>n.setItem(i,JSON.stringify(s,void 0)),removeItem:i=>n.removeItem(i)}}const $y=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then(a){return $y(a)(n)},catch(a){return this}}}catch(n){return{then(a){return this},catch(a){return $y(a)(n)}}}},_P=(e,t)=>(n,a,i)=>{let s={storage:LP(()=>window.localStorage),partialize:E=>E,version:0,merge:(E,T)=>({...T,...E}),...t},c=!1,d=0;const h=new Set,f=new Set;let g=s.storage;if(!g)return e((...E)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),n(...E)},a,i);const m=()=>{const E=s.partialize({...a()});return g.setItem(s.name,{state:E,version:s.version})},b=i.setState;i.setState=(E,T)=>(b(E,T),m());const x=e((...E)=>(n(...E),m()),a,i);i.getInitialState=()=>x;let w;const S=()=>{var E,T;if(!g)return;const C=++d;c=!1,h.forEach(O=>{var D;return O((D=a())!=null?D:x)});const M=((T=s.onRehydrateStorage)==null?void 0:T.call(s,(E=a())!=null?E:x))||void 0;return $y(g.getItem.bind(g))(s.name).then(O=>{if(O)if(typeof O.version=="number"&&O.version!==s.version){if(s.migrate){const D=s.migrate(O.state,O.version);return D instanceof Promise?D.then(k=>[!0,k]):[!0,D]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,O.state];return[!1,void 0]}).then(O=>{var D;if(C!==d)return;const[k,A]=O;if(w=s.merge(A,(D=a())!=null?D:x),n(w,!0),k)return m()}).then(()=>{C===d&&(M==null||M(w,void 0),w=a(),c=!0,f.forEach(O=>O(w)))}).catch(O=>{C===d&&(M==null||M(void 0,O))})};return i.persist={setOptions:E=>{s={...s,...E},E.storage&&(g=E.storage)},clearStorage:()=>{g==null||g.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>S(),hasHydrated:()=>c,onHydrate:E=>(h.add(E),()=>{h.delete(E)}),onFinishHydration:E=>(f.add(E),()=>{f.delete(E)})},s.skipHydration||S(),w||x},bC=_P,IP=13,zP=1.2,Fr=Bh()(bC(e=>({sidebarCollapsed:!1,sidebarTab:"panes",inputMode:"direct",editorSendWithEnter:!0,theme:"dark",keyboardBehaviorMode:"follow",editorHistory:[],editorDrafts:{},terminalFontSize:IP,terminalLineHeight:zP,terminalFontId:vC,setSidebarCollapsed:t=>e({sidebarCollapsed:t}),setSidebarTab:t=>e({sidebarTab:t}),setInputMode:t=>e({inputMode:t}),setKeyboardBehaviorMode:t=>e({keyboardBehaviorMode:t}),setEditorSendWithEnter:t=>e({editorSendWithEnter:t}),setTheme:t=>e({theme:t}),setTerminalFontSize:t=>e({terminalFontSize:t}),setTerminalLineHeight:t=>e({terminalLineHeight:t}),setTerminalFontId:t=>e({terminalFontId:t}),addEditorHistory:t=>e(n=>({editorHistory:[t,...n.editorHistory.slice(0,49)]})),setEditorDraft:(t,n)=>e(a=>({editorDrafts:{...a.editorDrafts,[t]:n}})),removeEditorDraft:t=>e(n=>{if(!(t in n.editorDrafts))return n;const a={...n.editorDrafts};return delete a[t],{editorDrafts:a}})}),{name:"tmex-ui",partialize:e=>({sidebarCollapsed:e.sidebarCollapsed,inputMode:e.inputMode,editorSendWithEnter:e.editorSendWithEnter,theme:e.theme,keyboardBehaviorMode:e.keyboardBehaviorMode,editorHistory:e.editorHistory,editorDrafts:e.editorDrafts,terminalFontSize:e.terminalFontSize,terminalLineHeight:e.terminalLineHeight,terminalFontId:e.terminalFontId}),merge:(e,t)=>{const{sidebarTab:n,...a}=e??{};return{...t,...a}}})),PP=500,R1=new Map,Yg=new Map;function xC(e){const t=Date.now(),n=R1.get(e);return n!==void 0&&t-n<PP?!0:(R1.set(e,t),!1)}let T1=!1;function qg(e){const t=rP(Fr.getState().theme),n=xP(e,t);Sn().send(n.kind,n.payload)}function $g(e,t){if(typeof e!="number"||typeof t!="number")return null;const n=Math.max(2,Math.floor(e)),a=Math.max(2,Math.floor(t));return{cols:n,rows:a}}function UP(e,t){if(T1)return;T1=!0;const n=Sn(),a=s=>{const c=t().selectedPanes[s];!c||ku().getTransaction(s)||t().selectPane(s,c.windowId,c.paneId)};n.onStateChange(s=>{e(c=>({connectionState:s,hasConnectedOnce:s==="READY"?!0:c.hasConnectedOnce,wsLatencyMs:s==="READY"?c.wsLatencyMs:null}))}),n.onMessage(s=>{const c=ku();switch(s.kind){case QD:{const d=Aa(aj,s.payload);e(h=>({deviceConnected:{...h.deviceConnected,[d.deviceId]:!0},deviceErrors:{...h.deviceErrors,[d.deviceId]:void 0},deviceReconnecting:{...h.deviceReconnecting,[d.deviceId]:void 0}})),qg(d.deviceId),a(d.deviceId);return}case JD:{const d=Aa(ij,s.payload);c.cleanup(d.deviceId),e(h=>({deviceConnected:{...h.deviceConnected,[d.deviceId]:!1}}));return}case ek:{const d=eL(s.payload);HP(e,d),d.type==="reconnected"&&(qg(d.deviceId),a(d.deviceId));return}case lk:{const d=rL(s.payload);e(h=>({snapshots:{...h.snapshots,[d.deviceId]:d}}));return}case sk:{const d=tL(s.payload);BP(e,d);return}case bk:{const d=Aa(Rj,s.payload);c.dispatch({type:"SWITCH_ACK",deviceId:d.deviceId,selectToken:d.selectToken});return}case yk:{const d=Aa(Sj,s.payload),h=new TextDecoder().decode(d.data);c.dispatch({type:"HISTORY",deviceId:d.deviceId,selectToken:d.selectToken,data:h,alternateScreen:d.alternateScreen});return}case xk:{const d=Aa(Tj,s.payload);c.dispatch({type:"LIVE_RESUME",deviceId:d.deviceId,selectToken:d.selectToken});return}case gk:{const d=Aa(wj,s.payload);c.dispatch({type:"OUTPUT",deviceId:d.deviceId,paneId:d.paneId,data:d.data});return}case vk:{const d=Aa(Ej,s.payload);if(document.visibilityState!=="visible")return;const h=t().selectedPanes[d.deviceId];if(!h||h.paneId!==d.paneId)return;navigator.clipboard.writeText(d.text).then(()=>{cn.success(qt.t("terminal.copied"))},f=>{console.warn("[tmux] clipboard write failed:",f)});return}case XD:return}}),n.onError(s=>{console.error("[tmux] borsh ws error:",s)}),n.onLatency(s=>{e({wsLatencyMs:s})}),n.onStateChange(s=>{if(s!=="READY")return;const c=t().connectedDevices;for(const d of c){if(xC(d))continue;const h=gC(d);n.send(h.kind,h.payload)}});let i=Fr.getState().theme;Fr.subscribe(s=>{if(s.theme===i)return;i=s.theme;const c=t();for(const d of c.connectedDevices)c.deviceConnected[d]&&qg(d)})}function HP(e,t){if(t.type==="error"){const n=t.message??"Device Error",a=t.errorType??"unknown";if(a==="reconnecting"){e(i=>({deviceReconnecting:{...i.deviceReconnecting,[t.deviceId]:{message:n,at:Date.now()}}}));return}e(i=>{const s=i.deviceErrors[t.deviceId];return(!s||s.type!==a)&&cn.error(n),{deviceErrors:{...i.deviceErrors,[t.deviceId]:{message:n,type:a,rawMessage:t.rawMessage,at:Date.now()}},deviceReconnecting:{...i.deviceReconnecting,[t.deviceId]:void 0}}});return}if(t.type==="disconnected"){ku().cleanup(t.deviceId),e(n=>({deviceConnected:{...n.deviceConnected,[t.deviceId]:!1}}));return}t.type==="reconnected"&&e(n=>({deviceConnected:{...n.deviceConnected,[t.deviceId]:!0},deviceErrors:{...n.deviceErrors,[t.deviceId]:void 0},deviceReconnecting:{...n.deviceReconnecting,[t.deviceId]:void 0}}))}function BP(e,t){if(t.type==="bell"){console.log("[tmex] bell",t.data);const n=vs.getState().settings;if((n==null?void 0:n.enableBrowserBellToast)===!1)return;const a=t.data??{},i=qt.t("terminal.bellNotification"),s=yC(a),c=typeof a.paneUrl=="string"?a.paneUrl:void 0;cn(i,{description:s||qt.t("terminal.bellFallback"),action:c?{label:"Open",onClick:()=>{gh(c)}}:void 0})}if(t.type==="notification"){console.log("[tmex] notification",t.data);const n=vs.getState().settings;if((n==null?void 0:n.enableBrowserNotificationToast)===!1)return;const a=t.data??{},{title:i,description:s}=jP(a),c=typeof a.paneUrl=="string"?a.paneUrl:void 0;cn(i,{description:s,action:c?{label:"Open",onClick:()=>{gh(c)}}:void 0})}if(t.type==="pane-active"){const n=t.data;n!=null&&n.windowId&&(n!=null&&n.paneId)&&e(a=>({activePaneFromEvent:{...a.activePaneFromEvent,[t.deviceId]:{windowId:n.windowId,paneId:n.paneId}}}))}}const xn=Bh((e,t)=>({connectionState:"IDLE",hasConnectedOnce:!1,wsLatencyMs:null,snapshots:{},connectedDevices:new Set,deviceConnected:{},deviceErrors:{},deviceReconnecting:{},selectedPanes:{},activePaneFromEvent:{},pendingCreateWindowAt:{},ensureSocketConnected(){UP(e,t),Sn().connect()},connectDevice(n){if(!n||(e(i=>{const s=new Set(i.connectedDevices);return s.add(n),{connectedDevices:s}}),t().ensureSocketConnected(),xC(n)))return;const a=gC(n);Sn().send(a.kind,a.payload)},disconnectDevice(n){if(!n)return;e(i=>{const s=new Set(i.connectedDevices);return s.delete(n),{connectedDevices:s}}),ku().cleanup(n);const a=hP(n);Sn().send(a.kind,a.payload)},clearDeviceError(n){e(a=>({deviceErrors:{...a.deviceErrors,[n]:void 0},deviceReconnecting:{...a.deviceReconnecting,[n]:void 0}}))},hydrateDeviceErrors(n){e(a=>{const i={...a.deviceErrors};for(const s of n)i[s.deviceId]||!s.lastError||!s.lastErrorType||(i[s.deviceId]={message:s.lastError,type:s.lastErrorType,at:0});return{deviceErrors:i}})},selectPane(n,a,i,s){if(!n||!a||!i)return;e(g=>({selectedPanes:{...g.selectedPanes,[n]:{windowId:a,paneId:i}}}));const c=fP(),d=!0;ku().dispatch({type:"SELECT_START",deviceId:n,windowId:a,paneId:i,selectToken:c,wantHistory:d});const h=$g(s==null?void 0:s.cols,s==null?void 0:s.rows)??Yg.get(n)??null,f=mP({deviceId:n,windowId:a,paneId:i,selectToken:c,wantHistory:d,cols:h==null?void 0:h.cols,rows:h==null?void 0:h.rows});Sn().send(f.kind,f.payload)},selectWindow(n,a){if(!n||!a)return;const i=pP(n,a);Sn().send(i.kind,i.payload)},sendInput(n,a,i,s=!1){if(!n||!a)return;const c=EP(n,a,i,s);Sn().send(c.kind,c.payload)},resizePane(n,a,i,s){if(!n||!a)return;const c=$g(i,s);c&&Yg.set(n,{...c,at:Date.now()});const d=TP(n,a,i,s);Sn().send(d.kind,d.payload)},syncPaneSize(n,a,i,s){if(!n||!a)return;const c=$g(i,s);c&&Yg.set(n,{...c,at:Date.now()});const d=CP(n,a,i,s);Sn().send(d.kind,d.payload)},paste(n,a,i){if(!n||!a)return;const s=RP(n,a,i);Sn().send(s.kind,s.payload)},createWindow(n,a){if(!n)return;const i=gP(n,a);Sn().send(i.kind,i.payload),e(s=>({pendingCreateWindowAt:{...s.pendingCreateWindowAt,[n]:Date.now()}}))},clearPendingCreateWindow(n){n&&e(a=>{if(a.pendingCreateWindowAt[n]===void 0)return a;const i={...a.pendingCreateWindowAt};return delete i[n],{pendingCreateWindowAt:i}})},closeWindow(n,a){if(!n||!a)return;const i=yP(n,a);Sn().send(i.kind,i.payload)},closePane(n,a){if(!n||!a)return;const i=vP(n,a);Sn().send(i.kind,i.payload)},renameWindow(n,a,i){if(!n||!a)return;const s=bP(n,a,i);Sn().send(s.kind,s.payload)},reorderWindows(n,a){if(!n||a.length===0)return;e(s=>{const c=s.snapshots[n],d=c==null?void 0:c.session;if(!d)return{};const h=new Map(d.windows.map(m=>[m.id,m])),f=a.map(m=>h.get(m)).filter(m=>m!==void 0),g=d.windows.filter(m=>!a.includes(m.id));return{snapshots:{...s.snapshots,[n]:{...c,session:{...d,windows:[...f,...g]}}}}});const i=wP(n,a);Sn().send(i.kind,i.payload)},reorderPanes(n,a,i){if(!n||!a||i.length===0)return;e(c=>{const d=c.snapshots[n],h=d==null?void 0:d.session;if(!h)return{};const f=h.windows.map(g=>{if(g.id!==a)return g;const m=new Map(g.panes.map(w=>[w.id,w])),b=i.map(w=>m.get(w)).filter(w=>w!==void 0),x=g.panes.filter(w=>!i.includes(w.id));return{...g,panes:[...b,...x]}});return{snapshots:{...c.snapshots,[n]:{...d,session:{...h,windows:f}}}}});const s=SP(n,a,i);Sn().send(s.kind,s.payload)}}));/**
|
|
72
72
|
* @license lucide-react v0.564.0 - ISC
|
|
73
73
|
*
|
|
@@ -296,4 +296,4 @@ ${a}`:a}}const Vg=[{id:"geist-mono",displayName:"Geist Mono",cssFamily:"GeistMon
|
|
|
296
296
|
To pick up a draggable item, press the space bar.
|
|
297
297
|
While dragging, use the arrow keys to move the item.
|
|
298
298
|
Press space again to drop the item in its new position, or press escape to cancel.
|
|
299
|
-
`},EV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function RV(e){let{announcements:t=EV,container:n,hiddenTextDescribedById:a,screenReaderInstructions:i=SV}=e;const{announce:s,announcement:c}=bV(),d=ud("DndLiveRegion"),[h,f]=y.useState(!1);if(y.useEffect(()=>{f(!0)},[]),xV(y.useMemo(()=>({onDragStart(m){let{active:b}=m;s(t.onDragStart({active:b}))},onDragMove(m){let{active:b,over:x}=m;t.onDragMove&&s(t.onDragMove({active:b,over:x}))},onDragOver(m){let{active:b,over:x}=m;s(t.onDragOver({active:b,over:x}))},onDragEnd(m){let{active:b,over:x}=m;s(t.onDragEnd({active:b,over:x}))},onDragCancel(m){let{active:b,over:x}=m;s(t.onDragCancel({active:b,over:x}))}}),[s,t])),!h)return null;const g=Le.createElement(Le.Fragment,null,Le.createElement(yV,{id:a,value:i.draggable}),Le.createElement(vV,{id:d,announcement:c}));return n?or.createPortal(g,n):g}var Vn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(Vn||(Vn={}));function _h(){}function yy(e,t){return y.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function TV(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return y.useMemo(()=>[...t].filter(a=>a!=null),[...t])}const Sa=Object.freeze({x:0,y:0});function m2(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function p2(e,t){let{data:{value:n}}=e,{data:{value:a}}=t;return n-a}function CV(e,t){let{data:{value:n}}=e,{data:{value:a}}=t;return a-n}function PR(e){let{left:t,top:n,height:a,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+a},{x:t+i,y:n+a}]}function g2(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function UR(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const a0=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:a}=e;const i=UR(t,t.left,t.top),s=[];for(const c of a){const{id:d}=c,h=n.get(d);if(h){const f=m2(UR(h),i);s.push({id:d,data:{droppableContainer:c,value:f}})}}return s.sort(p2)},OV=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:a}=e;const i=PR(t),s=[];for(const c of a){const{id:d}=c,h=n.get(d);if(h){const f=PR(h),g=i.reduce((b,x,w)=>b+m2(f[w],x),0),m=Number((g/4).toFixed(4));s.push({id:d,data:{droppableContainer:c,value:m}})}}return s.sort(p2)};function MV(e,t){const n=Math.max(t.top,e.top),a=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),s=Math.min(t.top+t.height,e.top+e.height),c=i-a,d=s-n;if(a<i&&n<s){const h=t.width*t.height,f=e.width*e.height,g=c*d,m=g/(h+f-g);return Number(m.toFixed(4))}return 0}const NV=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:a}=e;const i=[];for(const s of a){const{id:c}=s,d=n.get(c);if(d){const h=MV(d,t);h>0&&i.push({id:c,data:{droppableContainer:s,value:h}})}}return i.sort(CV)};function AV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function y2(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Sa}function DV(e){return function(n){for(var a=arguments.length,i=new Array(a>1?a-1:0),s=1;s<a;s++)i[s-1]=arguments[s];return i.reduce((c,d)=>({...c,top:c.top+e*d.y,bottom:c.bottom+e*d.y,left:c.left+e*d.x,right:c.right+e*d.x}),{...n})}}const kV=DV(1);function jV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function LV(e,t,n){const a=jV(t);if(!a)return e;const{scaleX:i,scaleY:s,x:c,y:d}=a,h=e.left-c-(1-i)*parseFloat(n),f=e.top-d-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),g=i?e.width/i:e.width,m=s?e.height/s:e.height;return{width:g,height:m,top:f,right:h+g,bottom:f+m,left:h}}const _V={ignoreTransform:!1};function ic(e,t){t===void 0&&(t=_V);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:f,transformOrigin:g}=Nr(e).getComputedStyle(e);f&&(n=LV(n,f,g))}const{top:a,left:i,width:s,height:c,bottom:d,right:h}=n;return{top:a,left:i,width:s,height:c,bottom:d,right:h}}function HR(e){return ic(e,{ignoreTransform:!0})}function IV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function zV(e,t){return t===void 0&&(t=Nr(e).getComputedStyle(e)),t.position==="fixed"}function PV(e,t){t===void 0&&(t=Nr(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(i=>{const s=t[i];return typeof s=="string"?n.test(s):!1})}function dm(e,t){const n=[];function a(i){if(t!=null&&n.length>=t||!i)return n;if(t0(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!ld(i)||d2(i)||n.includes(i))return n;const s=Nr(e).getComputedStyle(i);return i!==e&&PV(i,s)&&n.push(i),zV(i,s)?n:a(i.parentNode)}return e?a(e):n}function v2(e){const[t]=dm(e,1);return t??null}function vy(e){return!um||!e?null:ac(e)?e:e0(e)?t0(e)||e===oc(e).scrollingElement?window:ld(e)?e:null:null}function b2(e){return ac(e)?e.scrollX:e.scrollLeft}function x2(e){return ac(e)?e.scrollY:e.scrollTop}function Av(e){return{x:b2(e),y:x2(e)}}var Qn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(Qn||(Qn={}));function w2(e){return!um||!e?!1:e===document.scrollingElement}function S2(e){const t={x:0,y:0},n=w2(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},a={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},i=e.scrollTop<=t.y,s=e.scrollLeft<=t.x,c=e.scrollTop>=a.y,d=e.scrollLeft>=a.x;return{isTop:i,isLeft:s,isBottom:c,isRight:d,maxScroll:a,minScroll:t}}const UV={x:.2,y:.2};function HV(e,t,n,a,i){let{top:s,left:c,right:d,bottom:h}=n;a===void 0&&(a=10),i===void 0&&(i=UV);const{isTop:f,isBottom:g,isLeft:m,isRight:b}=S2(e),x={x:0,y:0},w={x:0,y:0},S={height:t.height*i.y,width:t.width*i.x};return!f&&s<=t.top+S.height?(x.y=Qn.Backward,w.y=a*Math.abs((t.top+S.height-s)/S.height)):!g&&h>=t.bottom-S.height&&(x.y=Qn.Forward,w.y=a*Math.abs((t.bottom-S.height-h)/S.height)),!b&&d>=t.right-S.width?(x.x=Qn.Forward,w.x=a*Math.abs((t.right-S.width-d)/S.width)):!m&&c<=t.left+S.width&&(x.x=Qn.Backward,w.x=a*Math.abs((t.left+S.width-c)/S.width)),{direction:x,speed:w}}function BV(e){if(e===document.scrollingElement){const{innerWidth:s,innerHeight:c}=window;return{top:0,left:0,right:s,bottom:c,width:s,height:c}}const{top:t,left:n,right:a,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:a,bottom:i,width:e.clientWidth,height:e.clientHeight}}function E2(e){return e.reduce((t,n)=>Rl(t,Av(n)),Sa)}function FV(e){return e.reduce((t,n)=>t+b2(n),0)}function VV(e){return e.reduce((t,n)=>t+x2(n),0)}function YV(e,t){if(t===void 0&&(t=ic),!e)return;const{top:n,left:a,bottom:i,right:s}=t(e);v2(e)&&(i<=0||s<=0||n>=window.innerHeight||a>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const qV=[["x",["left","right"],FV],["y",["top","bottom"],VV]];class o0{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const a=dm(n),i=E2(a);this.rect={...t},this.width=t.width,this.height=t.height;for(const[s,c,d]of qV)for(const h of c)Object.defineProperty(this,h,{get:()=>{const f=d(a),g=i[s]-f;return this.rect[h]+g},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Su{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var a;return(a=this.target)==null?void 0:a.removeEventListener(...n)})},this.target=t}add(t,n,a){var i;(i=this.target)==null||i.addEventListener(t,n,a),this.listeners.push([t,n,a])}}function $V(e){const{EventTarget:t}=Nr(e);return e instanceof t?e:oc(e)}function by(e,t){const n=Math.abs(e.x),a=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+a**2)>t:"x"in t&&"y"in t?n>t.x&&a>t.y:"x"in t?n>t.x:"y"in t?a>t.y:!1}var aa;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(aa||(aa={}));function BR(e){e.preventDefault()}function KV(e){e.stopPropagation()}var Qt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(Qt||(Qt={}));const R2={start:[Qt.Space,Qt.Enter],cancel:[Qt.Esc],end:[Qt.Space,Qt.Enter,Qt.Tab]},GV=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case Qt.Right:return{...n,x:n.x+25};case Qt.Left:return{...n,x:n.x-25};case Qt.Down:return{...n,y:n.y+25};case Qt.Up:return{...n,y:n.y-25}}};class i0{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Su(oc(n)),this.windowListeners=new Su(Nr(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(aa.Resize,this.handleCancel),this.windowListeners.add(aa.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(aa.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,a=t.node.current;a&&YV(a),n(Sa)}handleKeyDown(t){if(r0(t)){const{active:n,context:a,options:i}=this.props,{keyboardCodes:s=R2,coordinateGetter:c=GV,scrollBehavior:d="smooth"}=i,{code:h}=t;if(s.end.includes(h)){this.handleEnd(t);return}if(s.cancel.includes(h)){this.handleCancel(t);return}const{collisionRect:f}=a.current,g=f?{x:f.left,y:f.top}:Sa;this.referenceCoordinates||(this.referenceCoordinates=g);const m=c(t,{active:n,context:a.current,currentCoordinates:g});if(m){const b=zu(m,g),x={x:0,y:0},{scrollableAncestors:w}=a.current;for(const S of w){const E=t.code,{isTop:T,isRight:C,isLeft:M,isBottom:O,maxScroll:D,minScroll:k}=S2(S),A=BV(S),j={x:Math.min(E===Qt.Right?A.right-A.width/2:A.right,Math.max(E===Qt.Right?A.left:A.left+A.width/2,m.x)),y:Math.min(E===Qt.Down?A.bottom-A.height/2:A.bottom,Math.max(E===Qt.Down?A.top:A.top+A.height/2,m.y))},B=E===Qt.Right&&!C||E===Qt.Left&&!M,G=E===Qt.Down&&!O||E===Qt.Up&&!T;if(B&&j.x!==m.x){const K=S.scrollLeft+b.x,I=E===Qt.Right&&K<=D.x||E===Qt.Left&&K>=k.x;if(I&&!b.y){S.scrollTo({left:K,behavior:d});return}I?x.x=S.scrollLeft-K:x.x=E===Qt.Right?S.scrollLeft-D.x:S.scrollLeft-k.x,x.x&&S.scrollBy({left:-x.x,behavior:d});break}else if(G&&j.y!==m.y){const K=S.scrollTop+b.y,I=E===Qt.Down&&K<=D.y||E===Qt.Up&&K>=k.y;if(I&&!b.x){S.scrollTo({top:K,behavior:d});return}I?x.y=S.scrollTop-K:x.y=E===Qt.Down?S.scrollTop-D.y:S.scrollTop-k.y,x.y&&S.scrollBy({top:-x.y,behavior:d});break}}this.handleMove(t,Rl(zu(m,this.referenceCoordinates),x))}}}handleMove(t,n){const{onMove:a}=this.props;t.preventDefault(),a(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}i0.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:a=R2,onActivation:i}=t,{active:s}=n;const{code:c}=e.nativeEvent;if(a.start.includes(c)){const d=s.activatorNode.current;return d&&e.target!==d?!1:(e.preventDefault(),i==null||i({event:e.nativeEvent}),!0)}return!1}}];function FR(e){return!!(e&&"distance"in e)}function VR(e){return!!(e&&"delay"in e)}class s0{constructor(t,n,a){var i;a===void 0&&(a=$V(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:s}=t,{target:c}=s;this.props=t,this.events=n,this.document=oc(c),this.documentListeners=new Su(this.document),this.listeners=new Su(a),this.windowListeners=new Su(Nr(c)),this.initialCoordinates=(i=Nv(s))!=null?i:Sa,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:a}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(aa.Resize,this.handleCancel),this.windowListeners.add(aa.DragStart,BR),this.windowListeners.add(aa.VisibilityChange,this.handleCancel),this.windowListeners.add(aa.ContextMenu,BR),this.documentListeners.add(aa.Keydown,this.handleKeydown),n){if(a!=null&&a({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(VR(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(FR(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:a,onPending:i}=this.props;i(a,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(aa.Click,KV,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(aa.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:a,initialCoordinates:i,props:s}=this,{onMove:c,options:{activationConstraint:d}}=s;if(!i)return;const h=(n=Nv(t))!=null?n:Sa,f=zu(i,h);if(!a&&d){if(FR(d)){if(d.tolerance!=null&&by(f,d.tolerance))return this.handleCancel();if(by(f,d.distance))return this.handleStart()}if(VR(d)&&by(f,d.tolerance))return this.handleCancel();this.handlePending(d,f);return}t.cancelable&&t.preventDefault(),c(h)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===Qt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const XV={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class T2 extends s0{constructor(t){const{event:n}=t,a=oc(n.target);super(t,XV,a)}}T2.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;return!n.isPrimary||n.button!==0?!1:(a==null||a({event:n}),!0)}}];const WV={move:{name:"mousemove"},end:{name:"mouseup"}};var Dv;(function(e){e[e.RightClick=2]="RightClick"})(Dv||(Dv={}));class C2 extends s0{constructor(t){super(t,WV,oc(t.event.target))}}C2.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;return n.button===Dv.RightClick?!1:(a==null||a({event:n}),!0)}}];const xy={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class O2 extends s0{constructor(t){super(t,xy)}static setup(){return window.addEventListener(xy.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(xy.move.name,t)};function t(){}}}O2.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;const{touches:i}=n;return i.length>1?!1:(a==null||a({event:n}),!0)}}];var Eu;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Eu||(Eu={}));var Ih;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Ih||(Ih={}));function QV(e){let{acceleration:t,activator:n=Eu.Pointer,canScroll:a,draggingRect:i,enabled:s,interval:c=5,order:d=Ih.TreeOrder,pointerCoordinates:h,scrollableAncestors:f,scrollableAncestorRects:g,delta:m,threshold:b}=e;const x=JV({delta:m,disabled:!s}),[w,S]=fV(),E=y.useRef({x:0,y:0}),T=y.useRef({x:0,y:0}),C=y.useMemo(()=>{switch(n){case Eu.Pointer:return h?{top:h.y,bottom:h.y,left:h.x,right:h.x}:null;case Eu.DraggableRect:return i}},[n,i,h]),M=y.useRef(null),O=y.useCallback(()=>{const k=M.current;if(!k)return;const A=E.current.x*T.current.x,j=E.current.y*T.current.y;k.scrollBy(A,j)},[]),D=y.useMemo(()=>d===Ih.TreeOrder?[...f].reverse():f,[d,f]);y.useEffect(()=>{if(!s||!f.length||!C){S();return}for(const k of D){if((a==null?void 0:a(k))===!1)continue;const A=f.indexOf(k),j=g[A];if(!j)continue;const{direction:B,speed:G}=HV(k,j,C,t,b);for(const K of["x","y"])x[K][B[K]]||(G[K]=0,B[K]=0);if(G.x>0||G.y>0){S(),M.current=k,w(O,c),E.current=G,T.current=B;return}}E.current={x:0,y:0},T.current={x:0,y:0},S()},[t,O,a,S,s,c,JSON.stringify(C),JSON.stringify(x),w,f,D,g,JSON.stringify(b)])}const ZV={x:{[Qn.Backward]:!1,[Qn.Forward]:!1},y:{[Qn.Backward]:!1,[Qn.Forward]:!1}};function JV(e){let{delta:t,disabled:n}=e;const a=Mv(t);return cd(i=>{if(n||!a||!i)return ZV;const s={x:Math.sign(t.x-a.x),y:Math.sign(t.y-a.y)};return{x:{[Qn.Backward]:i.x[Qn.Backward]||s.x===-1,[Qn.Forward]:i.x[Qn.Forward]||s.x===1},y:{[Qn.Backward]:i.y[Qn.Backward]||s.y===-1,[Qn.Forward]:i.y[Qn.Forward]||s.y===1}}},[n,t,a])}function e9(e,t){const n=t!=null?e.get(t):void 0,a=n?n.node.current:null;return cd(i=>{var s;return t==null?null:(s=a??i)!=null?s:null},[a,t])}function t9(e,t){return y.useMemo(()=>e.reduce((n,a)=>{const{sensor:i}=a,s=i.activators.map(c=>({eventName:c.eventName,handler:t(c.handler,a)}));return[...n,...s]},[]),[e,t])}var Pu;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(Pu||(Pu={}));var kv;(function(e){e.Optimized="optimized"})(kv||(kv={}));const YR=new Map;function n9(e,t){let{dragging:n,dependencies:a,config:i}=t;const[s,c]=y.useState(null),{frequency:d,measure:h,strategy:f}=i,g=y.useRef(e),m=E(),b=Iu(m),x=y.useCallback(function(T){T===void 0&&(T=[]),!b.current&&c(C=>C===null?T:C.concat(T.filter(M=>!C.includes(M))))},[b]),w=y.useRef(null),S=cd(T=>{if(m&&!n)return YR;if(!T||T===YR||g.current!==e||s!=null){const C=new Map;for(let M of e){if(!M)continue;if(s&&s.length>0&&!s.includes(M.id)&&M.rect.current){C.set(M.id,M.rect.current);continue}const O=M.node.current,D=O?new o0(h(O),O):null;M.rect.current=D,D&&C.set(M.id,D)}return C}return T},[e,s,n,m,h]);return y.useEffect(()=>{g.current=e},[e]),y.useEffect(()=>{m||x()},[n,m]),y.useEffect(()=>{s&&s.length>0&&c(null)},[JSON.stringify(s)]),y.useEffect(()=>{m||typeof d!="number"||w.current!==null||(w.current=setTimeout(()=>{x(),w.current=null},d))},[d,m,x,...a]),{droppableRects:S,measureDroppableContainers:x,measuringScheduled:s!=null};function E(){switch(f){case Pu.Always:return!1;case Pu.BeforeDragging:return n;default:return!n}}}function M2(e,t){return cd(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function r9(e,t){return M2(e,t)}function a9(e){let{callback:t,disabled:n}=e;const a=n0(t),i=y.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(a)},[a,n]);return y.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function fm(e){let{callback:t,disabled:n}=e;const a=n0(t),i=y.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(a)},[n]);return y.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function o9(e){return new o0(ic(e),e)}function qR(e,t,n){t===void 0&&(t=o9);const[a,i]=y.useState(null);function s(){i(h=>{if(!e)return null;if(e.isConnected===!1){var f;return(f=h??n)!=null?f:null}const g=t(e);return JSON.stringify(h)===JSON.stringify(g)?h:g})}const c=a9({callback(h){if(e)for(const f of h){const{type:g,target:m}=f;if(g==="childList"&&m instanceof HTMLElement&&m.contains(e)){s();break}}}}),d=fm({callback:s});return Fa(()=>{s(),e?(d==null||d.observe(e),c==null||c.observe(document.body,{childList:!0,subtree:!0})):(d==null||d.disconnect(),c==null||c.disconnect())},[e]),a}function i9(e){const t=M2(e);return y2(e,t)}const $R=[];function s9(e){const t=y.useRef(e),n=cd(a=>e?a&&a!==$R&&e&&t.current&&e.parentNode===t.current.parentNode?a:dm(e):$R,[e]);return y.useEffect(()=>{t.current=e},[e]),n}function l9(e){const[t,n]=y.useState(null),a=y.useRef(e),i=y.useCallback(s=>{const c=vy(s.target);c&&n(d=>d?(d.set(c,Av(c)),new Map(d)):null)},[]);return y.useEffect(()=>{const s=a.current;if(e!==s){c(s);const d=e.map(h=>{const f=vy(h);return f?(f.addEventListener("scroll",i,{passive:!0}),[f,Av(f)]):null}).filter(h=>h!=null);n(d.length?new Map(d):null),a.current=e}return()=>{c(e),c(s)};function c(d){d.forEach(h=>{const f=vy(h);f==null||f.removeEventListener("scroll",i)})}},[i,e]),y.useMemo(()=>e.length?t?Array.from(t.values()).reduce((s,c)=>Rl(s,c),Sa):E2(e):Sa,[e,t])}function KR(e,t){t===void 0&&(t=[]);const n=y.useRef(null);return y.useEffect(()=>{n.current=null},t),y.useEffect(()=>{const a=e!==Sa;a&&!n.current&&(n.current=e),!a&&n.current&&(n.current=null)},[e]),n.current?zu(e,n.current):Sa}function c9(e){y.useEffect(()=>{if(!um)return;const t=e.map(n=>{let{sensor:a}=n;return a.setup==null?void 0:a.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function u9(e,t){return y.useMemo(()=>e.reduce((n,a)=>{let{eventName:i,handler:s}=a;return n[i]=c=>{s(c,t)},n},{}),[e,t])}function N2(e){return y.useMemo(()=>e?IV(e):null,[e])}const GR=[];function d9(e,t){t===void 0&&(t=ic);const[n]=e,a=N2(n?Nr(n):null),[i,s]=y.useState(GR);function c(){s(()=>e.length?e.map(h=>w2(h)?a:new o0(t(h),h)):GR)}const d=fm({callback:c});return Fa(()=>{d==null||d.disconnect(),c(),e.forEach(h=>d==null?void 0:d.observe(h))},[e]),i}function f9(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return ld(t)?t:e}function h9(e){let{measure:t}=e;const[n,a]=y.useState(null),i=y.useCallback(f=>{for(const{target:g}of f)if(ld(g)){a(m=>{const b=t(g);return m?{...m,width:b.width,height:b.height}:b});break}},[t]),s=fm({callback:i}),c=y.useCallback(f=>{const g=f9(f);s==null||s.disconnect(),g&&(s==null||s.observe(g)),a(g?t(g):null)},[t,s]),[d,h]=Lh(c);return y.useMemo(()=>({nodeRef:d,rect:n,setRef:h}),[n,d,h])}const m9=[{sensor:T2,options:{}},{sensor:i0,options:{}}],p9={current:{}},uh={draggable:{measure:HR},droppable:{measure:HR,strategy:Pu.WhileDragging,frequency:kv.Optimized},dragOverlay:{measure:ic}};class Ru extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,a;return(n=(a=this.get(t))==null?void 0:a.node.current)!=null?n:void 0}}const g9={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Ru,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:_h},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:uh,measureDroppableContainers:_h,windowRect:null,measuringScheduled:!1},y9={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:_h,draggableNodes:new Map,over:null,measureDroppableContainers:_h},hm=y.createContext(y9),A2=y.createContext(g9);function v9(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Ru}}}function b9(e,t){switch(t.type){case Vn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Vn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Vn.DragEnd:case Vn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Vn.RegisterDroppable:{const{element:n}=t,{id:a}=n,i=new Ru(e.droppable.containers);return i.set(a,n),{...e,droppable:{...e.droppable,containers:i}}}case Vn.SetDroppableDisabled:{const{id:n,key:a,disabled:i}=t,s=e.droppable.containers.get(n);if(!s||a!==s.key)return e;const c=new Ru(e.droppable.containers);return c.set(n,{...s,disabled:i}),{...e,droppable:{...e.droppable,containers:c}}}case Vn.UnregisterDroppable:{const{id:n,key:a}=t,i=e.droppable.containers.get(n);if(!i||a!==i.key)return e;const s=new Ru(e.droppable.containers);return s.delete(n),{...e,droppable:{...e.droppable,containers:s}}}default:return e}}function x9(e){let{disabled:t}=e;const{active:n,activatorEvent:a,draggableNodes:i}=y.useContext(hm),s=Mv(a),c=Mv(n==null?void 0:n.id);return y.useEffect(()=>{if(!t&&!a&&s&&c!=null){if(!r0(s)||document.activeElement===s.target)return;const d=i.get(c);if(!d)return;const{activatorNode:h,node:f}=d;if(!h.current&&!f.current)return;requestAnimationFrame(()=>{for(const g of[h.current,f.current]){if(!g)continue;const m=pV(g);if(m){m.focus();break}}})}},[a,t,i,c,s]),null}function w9(e,t){let{transform:n,...a}=t;return e!=null&&e.length?e.reduce((i,s)=>s({transform:i,...a}),n):n}function S9(e){return y.useMemo(()=>({draggable:{...uh.draggable,...e==null?void 0:e.draggable},droppable:{...uh.droppable,...e==null?void 0:e.droppable},dragOverlay:{...uh.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function E9(e){let{activeNode:t,measure:n,initialRect:a,config:i=!0}=e;const s=y.useRef(!1),{x:c,y:d}=typeof i=="boolean"?{x:i,y:i}:i;Fa(()=>{if(!c&&!d||!t){s.current=!1;return}if(s.current||!a)return;const f=t==null?void 0:t.node.current;if(!f||f.isConnected===!1)return;const g=n(f),m=y2(g,a);if(c||(m.x=0),d||(m.y=0),s.current=!0,Math.abs(m.x)>0||Math.abs(m.y)>0){const b=v2(f);b&&b.scrollBy({top:m.y,left:m.x})}},[t,c,d,a,n])}const D2=y.createContext({...Sa,scaleX:1,scaleY:1});var ti;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(ti||(ti={}));const l0=y.memo(function(t){var n,a,i,s;let{id:c,accessibility:d,autoScroll:h=!0,children:f,sensors:g=m9,collisionDetection:m=NV,measuring:b,modifiers:x,...w}=t;const S=y.useReducer(b9,void 0,v9),[E,T]=S,[C,M]=wV(),[O,D]=y.useState(ti.Uninitialized),k=O===ti.Initialized,{draggable:{active:A,nodes:j,translate:B},droppable:{containers:G}}=E,K=A!=null?j.get(A):null,I=y.useRef({initial:null,translated:null}),H=y.useMemo(()=>{var lt;return A!=null?{id:A,data:(lt=K==null?void 0:K.data)!=null?lt:p9,rect:I}:null},[A,K]),F=y.useRef(null),[V,L]=y.useState(null),[_,z]=y.useState(null),Y=Iu(w,Object.values(w)),Q=ud("DndDescribedBy",c),P=y.useMemo(()=>G.getEnabled(),[G]),q=S9(b),{droppableRects:W,measureDroppableContainers:X,measuringScheduled:ce}=n9(P,{dragging:k,dependencies:[B.x,B.y],config:q.droppable}),ie=e9(j,A),de=y.useMemo(()=>_?Nv(_):null,[_]),ve=et(),Se=r9(ie,q.draggable.measure);E9({activeNode:A!=null?j.get(A):null,config:ve.layoutShiftCompensation,initialRect:Se,measure:q.draggable.measure});const Me=qR(ie,q.draggable.measure,Se),ke=qR(ie?ie.parentElement:null),J=y.useRef({activatorEvent:null,active:null,activeNode:ie,collisionRect:null,collisions:null,droppableRects:W,draggableNodes:j,draggingNode:null,draggingNodeRect:null,droppableContainers:G,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ue=G.getNodeFor((n=J.current.over)==null?void 0:n.id),pe=h9({measure:q.dragOverlay.measure}),De=(a=pe.nodeRef.current)!=null?a:ie,Ce=k?(i=pe.rect)!=null?i:Me:null,we=!!(pe.nodeRef.current&&pe.rect),Te=i9(we?null:Me),Z=N2(De?Nr(De):null),be=s9(k?ue??ie:null),ge=d9(be),Pe=w9(x,{transform:{x:B.x-Te.x,y:B.y-Te.y,scaleX:1,scaleY:1},activatorEvent:_,active:H,activeNodeRect:Me,containerNodeRect:ke,draggingNodeRect:Ce,over:J.current.over,overlayNodeRect:pe.rect,scrollableAncestors:be,scrollableAncestorRects:ge,windowRect:Z}),Be=de?Rl(de,B):null,Ae=l9(be),it=KR(Ae),wt=KR(Ae,[Me]),xt=Rl(Pe,it),oe=Ce?kV(Ce,Pe):null,xe=H&&oe?m({active:H,collisionRect:oe,droppableRects:W,droppableContainers:P,pointerCoordinates:Be}):null,Ie=g2(xe,"id"),[qe,Ke]=y.useState(null),st=we?Pe:Rl(Pe,wt),ze=AV(st,(s=qe==null?void 0:qe.rect)!=null?s:null,Me),Je=y.useRef(null),ft=y.useCallback((lt,mt)=>{let{sensor:Ve,options:Et}=mt;if(F.current==null)return;const Dt=j.get(F.current);if(!Dt)return;const St=lt.nativeEvent,rn=new Ve({active:F.current,activeNode:Dt,event:St,options:Et,context:J,onAbort(Xe){if(!j.get(Xe))return;const{onDragAbort:$}=Y.current,ne={id:Xe};$==null||$(ne),C({type:"onDragAbort",event:ne})},onPending(Xe,Rt,$,ne){if(!j.get(Xe))return;const{onDragPending:Ee}=Y.current,je={id:Xe,constraint:Rt,initialCoordinates:$,offset:ne};Ee==null||Ee(je),C({type:"onDragPending",event:je})},onStart(Xe){const Rt=F.current;if(Rt==null)return;const $=j.get(Rt);if(!$)return;const{onDragStart:ne}=Y.current,le={activatorEvent:St,active:{id:Rt,data:$.data,rect:I}};or.unstable_batchedUpdates(()=>{ne==null||ne(le),D(ti.Initializing),T({type:Vn.DragStart,initialCoordinates:Xe,active:Rt}),C({type:"onDragStart",event:le}),L(Je.current),z(St)})},onMove(Xe){T({type:Vn.DragMove,coordinates:Xe})},onEnd:It(Vn.DragEnd),onCancel:It(Vn.DragCancel)});Je.current=rn;function It(Xe){return async function(){const{active:$,collisions:ne,over:le,scrollAdjustedTranslate:Ee}=J.current;let je=null;if($&&Ee){const{cancelDrop:Ze}=Y.current;je={activatorEvent:St,active:$,collisions:ne,delta:Ee,over:le},Xe===Vn.DragEnd&&typeof Ze=="function"&&await Promise.resolve(Ze(je))&&(Xe=Vn.DragCancel)}F.current=null,or.unstable_batchedUpdates(()=>{T({type:Xe}),D(ti.Uninitialized),Ke(null),L(null),z(null),Je.current=null;const Ze=Xe===Vn.DragEnd?"onDragEnd":"onDragCancel";if(je){const Qe=Y.current[Ze];Qe==null||Qe(je),C({type:Ze,event:je})}})}}},[j]),jt=y.useCallback((lt,mt)=>(Ve,Et)=>{const Dt=Ve.nativeEvent,St=j.get(Et);if(F.current!==null||!St||Dt.dndKit||Dt.defaultPrevented)return;const rn={active:St};lt(Ve,mt.options,rn)===!0&&(Dt.dndKit={capturedBy:mt.sensor},F.current=Et,ft(Ve,mt))},[j,ft]),nn=t9(g,jt);c9(g),Fa(()=>{Me&&O===ti.Initializing&&D(ti.Initialized)},[Me,O]),y.useEffect(()=>{const{onDragMove:lt}=Y.current,{active:mt,activatorEvent:Ve,collisions:Et,over:Dt}=J.current;if(!mt||!Ve)return;const St={active:mt,activatorEvent:Ve,collisions:Et,delta:{x:xt.x,y:xt.y},over:Dt};or.unstable_batchedUpdates(()=>{lt==null||lt(St),C({type:"onDragMove",event:St})})},[xt.x,xt.y]),y.useEffect(()=>{const{active:lt,activatorEvent:mt,collisions:Ve,droppableContainers:Et,scrollAdjustedTranslate:Dt}=J.current;if(!lt||F.current==null||!mt||!Dt)return;const{onDragOver:St}=Y.current,rn=Et.get(Ie),It=rn&&rn.rect.current?{id:rn.id,rect:rn.rect.current,data:rn.data,disabled:rn.disabled}:null,Xe={active:lt,activatorEvent:mt,collisions:Ve,delta:{x:Dt.x,y:Dt.y},over:It};or.unstable_batchedUpdates(()=>{Ke(It),St==null||St(Xe),C({type:"onDragOver",event:Xe})})},[Ie]),Fa(()=>{J.current={activatorEvent:_,active:H,activeNode:ie,collisionRect:oe,collisions:xe,droppableRects:W,draggableNodes:j,draggingNode:De,draggingNodeRect:Ce,droppableContainers:G,over:qe,scrollableAncestors:be,scrollAdjustedTranslate:xt},I.current={initial:Ce,translated:oe}},[H,ie,xe,oe,j,De,Ce,W,G,qe,be,xt]),QV({...ve,delta:B,draggingRect:oe,pointerCoordinates:Be,scrollableAncestors:be,scrollableAncestorRects:ge});const ht=y.useMemo(()=>({active:H,activeNode:ie,activeNodeRect:Me,activatorEvent:_,collisions:xe,containerNodeRect:ke,dragOverlay:pe,draggableNodes:j,droppableContainers:G,droppableRects:W,over:qe,measureDroppableContainers:X,scrollableAncestors:be,scrollableAncestorRects:ge,measuringConfiguration:q,measuringScheduled:ce,windowRect:Z}),[H,ie,Me,_,xe,ke,pe,j,G,W,qe,X,be,ge,q,ce,Z]),Ct=y.useMemo(()=>({activatorEvent:_,activators:nn,active:H,activeNodeRect:Me,ariaDescribedById:{draggable:Q},dispatch:T,draggableNodes:j,over:qe,measureDroppableContainers:X}),[_,nn,H,Me,T,Q,j,qe,X]);return Le.createElement(h2.Provider,{value:M},Le.createElement(hm.Provider,{value:Ct},Le.createElement(A2.Provider,{value:ht},Le.createElement(D2.Provider,{value:ze},f)),Le.createElement(x9,{disabled:(d==null?void 0:d.restoreFocus)===!1})),Le.createElement(RV,{...d,hiddenTextDescribedById:Q}));function et(){const lt=(V==null?void 0:V.autoScrollEnabled)===!1,mt=typeof h=="object"?h.enabled===!1:h===!1,Ve=k&&!lt&&!mt;return typeof h=="object"?{...h,enabled:Ve}:{enabled:Ve}}}),R9=y.createContext(null),XR="button",T9="Draggable";function C9(e){let{id:t,data:n,disabled:a=!1,attributes:i}=e;const s=ud(T9),{activators:c,activatorEvent:d,active:h,activeNodeRect:f,ariaDescribedById:g,draggableNodes:m,over:b}=y.useContext(hm),{role:x=XR,roleDescription:w="draggable",tabIndex:S=0}=i??{},E=(h==null?void 0:h.id)===t,T=y.useContext(E?D2:R9),[C,M]=Lh(),[O,D]=Lh(),k=u9(c,t),A=Iu(n);Fa(()=>(m.set(t,{id:t,key:s,node:C,activatorNode:O,data:A}),()=>{const B=m.get(t);B&&B.key===s&&m.delete(t)}),[m,t]);const j=y.useMemo(()=>({role:x,tabIndex:S,"aria-disabled":a,"aria-pressed":E&&x===XR?!0:void 0,"aria-roledescription":w,"aria-describedby":g.draggable}),[a,x,S,E,w,g.draggable]);return{active:h,activatorEvent:d,activeNodeRect:f,attributes:j,isDragging:E,listeners:a?void 0:k,node:C,over:b,setNodeRef:M,setActivatorNodeRef:D,transform:T}}function O9(){return y.useContext(A2)}const M9="Droppable",N9={timeout:25};function A9(e){let{data:t,disabled:n=!1,id:a,resizeObserverConfig:i}=e;const s=ud(M9),{active:c,dispatch:d,over:h,measureDroppableContainers:f}=y.useContext(hm),g=y.useRef({disabled:n}),m=y.useRef(!1),b=y.useRef(null),x=y.useRef(null),{disabled:w,updateMeasurementsFor:S,timeout:E}={...N9,...i},T=Iu(S??a),C=y.useCallback(()=>{if(!m.current){m.current=!0;return}x.current!=null&&clearTimeout(x.current),x.current=setTimeout(()=>{f(Array.isArray(T.current)?T.current:[T.current]),x.current=null},E)},[E]),M=fm({callback:C,disabled:w||!c}),O=y.useCallback((j,B)=>{M&&(B&&(M.unobserve(B),m.current=!1),j&&M.observe(j))},[M]),[D,k]=Lh(O),A=Iu(t);return y.useEffect(()=>{!M||!D.current||(M.disconnect(),m.current=!1,M.observe(D.current))},[D,M]),y.useEffect(()=>(d({type:Vn.RegisterDroppable,element:{id:a,key:s,disabled:n,node:D,rect:b,data:A}}),()=>d({type:Vn.UnregisterDroppable,key:s,id:a})),[a]),y.useEffect(()=>{n!==g.current.disabled&&(d({type:Vn.SetDroppableDisabled,id:a,key:s,disabled:n}),g.current.disabled=n)},[a,s,n,d]),{active:c,rect:b,isOver:(h==null?void 0:h.id)===a,node:D,over:h,setNodeRef:k}}function dd(e,t,n){const a=e.slice();return a.splice(n<0?a.length+n:n,0,a.splice(t,1)[0]),a}function D9(e,t){return e.reduce((n,a,i)=>{const s=t.get(a);return s&&(n[i]=s),n},Array(e.length))}function Gf(e){return e!==null&&e>=0}function k9(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function j9(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const k2=e=>{let{rects:t,activeIndex:n,overIndex:a,index:i}=e;const s=dd(t,a,n),c=t[i],d=s[i];return!d||!c?null:{x:d.left-c.left,y:d.top-c.top,scaleX:d.width/c.width,scaleY:d.height/c.height}},Xf={scaleX:1,scaleY:1},c0=e=>{var t;let{activeIndex:n,activeNodeRect:a,index:i,rects:s,overIndex:c}=e;const d=(t=s[n])!=null?t:a;if(!d)return null;if(i===n){const f=s[c];return f?{x:0,y:n<c?f.top+f.height-(d.top+d.height):f.top-d.top,...Xf}:null}const h=L9(s,i,n);return i>n&&i<=c?{x:0,y:-d.height-h,...Xf}:i<n&&i>=c?{x:0,y:d.height+h,...Xf}:{x:0,y:0,...Xf}};function L9(e,t,n){const a=e[t],i=e[t-1],s=e[t+1];return a?n<t?i?a.top-(i.top+i.height):s?s.top-(a.top+a.height):0:s?s.top-(a.top+a.height):i?a.top-(i.top+i.height):0:0}const j2="Sortable",L2=Le.createContext({activeIndex:-1,containerId:j2,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:k2,disabled:{draggable:!1,droppable:!1}});function u0(e){let{children:t,id:n,items:a,strategy:i=k2,disabled:s=!1}=e;const{active:c,dragOverlay:d,droppableRects:h,over:f,measureDroppableContainers:g}=O9(),m=ud(j2,n),b=d.rect!==null,x=y.useMemo(()=>a.map(k=>typeof k=="object"&&"id"in k?k.id:k),[a]),w=c!=null,S=c?x.indexOf(c.id):-1,E=f?x.indexOf(f.id):-1,T=y.useRef(x),C=!k9(x,T.current),M=E!==-1&&S===-1||C,O=j9(s);Fa(()=>{C&&w&&g(x)},[C,x,w,g]),y.useEffect(()=>{T.current=x},[x]);const D=y.useMemo(()=>({activeIndex:S,containerId:m,disabled:O,disableTransforms:M,items:x,overIndex:E,useDragOverlay:b,sortedRects:D9(x,h),strategy:i}),[S,m,O.draggable,O.droppable,M,x,E,h,b,i]);return Le.createElement(L2.Provider,{value:D},t)}const _9=e=>{let{id:t,items:n,activeIndex:a,overIndex:i}=e;return dd(n,a,i).indexOf(t)},I9=e=>{let{containerId:t,isSorting:n,wasDragging:a,index:i,items:s,newIndex:c,previousItems:d,previousContainerId:h,transition:f}=e;return!f||!a||d!==s&&i===c?!1:n?!0:c!==i&&t===h},z9={duration:200,easing:"ease"},_2="transform",P9=Rs.Transition.toString({property:_2,duration:0,easing:"linear"}),U9={roleDescription:"sortable"};function H9(e){let{disabled:t,index:n,node:a,rect:i}=e;const[s,c]=y.useState(null),d=y.useRef(n);return Fa(()=>{if(!t&&n!==d.current&&a.current){const h=i.current;if(h){const f=ic(a.current,{ignoreTransform:!0}),g={x:h.left-f.left,y:h.top-f.top,scaleX:h.width/f.width,scaleY:h.height/f.height};(g.x||g.y)&&c(g)}}n!==d.current&&(d.current=n)},[t,n,a,i]),y.useEffect(()=>{s&&c(null)},[s]),s}function d0(e){let{animateLayoutChanges:t=I9,attributes:n,disabled:a,data:i,getNewIndex:s=_9,id:c,strategy:d,resizeObserverConfig:h,transition:f=z9}=e;const{items:g,containerId:m,activeIndex:b,disabled:x,disableTransforms:w,sortedRects:S,overIndex:E,useDragOverlay:T,strategy:C}=y.useContext(L2),M=B9(a,x),O=g.indexOf(c),D=y.useMemo(()=>({sortable:{containerId:m,index:O,items:g},...i}),[m,i,O,g]),k=y.useMemo(()=>g.slice(g.indexOf(c)),[g,c]),{rect:A,node:j,isOver:B,setNodeRef:G}=A9({id:c,data:D,disabled:M.droppable,resizeObserverConfig:{updateMeasurementsFor:k,...h}}),{active:K,activatorEvent:I,activeNodeRect:H,attributes:F,setNodeRef:V,listeners:L,isDragging:_,over:z,setActivatorNodeRef:Y,transform:Q}=C9({id:c,data:D,attributes:{...U9,...n},disabled:M.draggable}),P=dV(G,V),q=!!K,W=q&&!w&&Gf(b)&&Gf(E),X=!T&&_,ce=X&&W?Q:null,de=W?ce??(d??C)({rects:S,activeNodeRect:H,activeIndex:b,overIndex:E,index:O}):null,ve=Gf(b)&&Gf(E)?s({id:c,items:g,activeIndex:b,overIndex:E}):O,Se=K==null?void 0:K.id,Me=y.useRef({activeId:Se,items:g,newIndex:ve,containerId:m}),ke=g!==Me.current.items,J=t({active:K,containerId:m,isDragging:_,isSorting:q,id:c,index:O,items:g,newIndex:Me.current.newIndex,previousItems:Me.current.items,previousContainerId:Me.current.containerId,transition:f,wasDragging:Me.current.activeId!=null}),ue=H9({disabled:!J,index:O,node:j,rect:A});return y.useEffect(()=>{q&&Me.current.newIndex!==ve&&(Me.current.newIndex=ve),m!==Me.current.containerId&&(Me.current.containerId=m),g!==Me.current.items&&(Me.current.items=g)},[q,ve,m,g]),y.useEffect(()=>{if(Se===Me.current.activeId)return;if(Se!=null&&Me.current.activeId==null){Me.current.activeId=Se;return}const De=setTimeout(()=>{Me.current.activeId=Se},50);return()=>clearTimeout(De)},[Se]),{active:K,activeIndex:b,attributes:F,data:D,rect:A,index:O,newIndex:ve,items:g,isOver:B,isSorting:q,isDragging:_,listeners:L,node:j,overIndex:E,over:z,setNodeRef:P,setActivatorNodeRef:Y,setDroppableNodeRef:G,setDraggableNodeRef:V,transform:ue??de,transition:pe()};function pe(){if(ue||ke&&Me.current.newIndex===O)return P9;if(!(X&&!r0(I)||!f)&&(q||J))return Rs.Transition.toString({...f,property:_2})}}function B9(e,t){var n,a;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(a=e==null?void 0:e.droppable)!=null?a:t.droppable}}function zh(e){if(!e)return!1;const t=e.data.current;return!!(t&&"sortable"in t&&typeof t.sortable=="object"&&"containerId"in t.sortable&&"items"in t.sortable&&"index"in t.sortable)}const F9=[Qt.Down,Qt.Right,Qt.Up,Qt.Left],V9=(e,t)=>{let{context:{active:n,collisionRect:a,droppableRects:i,droppableContainers:s,over:c,scrollableAncestors:d}}=t;if(F9.includes(e.code)){if(e.preventDefault(),!n||!a)return;const h=[];s.getEnabled().forEach(m=>{if(!m||m!=null&&m.disabled)return;const b=i.get(m.id);if(b)switch(e.code){case Qt.Down:a.top<b.top&&h.push(m);break;case Qt.Up:a.top>b.top&&h.push(m);break;case Qt.Left:a.left>b.left&&h.push(m);break;case Qt.Right:a.left<b.left&&h.push(m);break}});const f=OV({collisionRect:a,droppableRects:i,droppableContainers:h});let g=g2(f,"id");if(g===(c==null?void 0:c.id)&&f.length>1&&(g=f[1].id),g!=null){const m=s.get(n.id),b=s.get(g),x=b?i.get(b.id):null,w=b==null?void 0:b.node.current;if(w&&x&&m&&b){const E=dm(w).some((k,A)=>d[A]!==k),T=I2(m,b),C=Y9(m,b),M=E||!T?{x:0,y:0}:{x:C?a.width-x.width:0,y:C?a.height-x.height:0},O={x:x.left,y:x.top};return M.x&&M.y?O:zu(O,M)}}}};function I2(e,t){return!zh(e)||!zh(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Y9(e,t){return!zh(e)||!zh(t)||!I2(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}function q9(){const e=vs.getState().settings;return(e==null?void 0:e.siteName)||"tmex"}function WR(e){const t=e==null?void 0:e.trim();return t&&t.length>0?t:"?"}function $7({paneIdx:e,windowIdx:t,paneTitle:n,windowName:a,windowCustomName:i,deviceName:s}){const c=t??"?",d=e??"?",h=WR(i??n??a),f=WR(s);return`${c}/${d}: ${h}@${f}`}function f0(e){var d,h;const t=(d=e.customName)==null?void 0:d.trim(),n=e.panes.find(f=>f.active)??e.panes[0],a=e.name.trim(),i=(h=n==null?void 0:n.title)==null?void 0:h.trim(),s=t||i||a;return{title:s,processName:!!a&&a!==s?a:void 0}}function $9(e){const{title:t,processName:n}=f0(e);return n?`${n}: ${t}`:t}function K7(e){const t=q9();return e!=null&&e.trim()?`[${t}]${e}`:t}function G7(e){return e}function z2(e){return encodeURIComponent(e)}function P2({status:e}){return R.jsx("span",{className:_e("size-2 shrink-0 rounded-full",e==="running"?"bg-emerald-500 animate-pulse":e==="error"?"bg-destructive":e==="waiting_confirmation"?"bg-amber-500":"bg-muted-foreground/40")})}function h0(){return TV(yy(C2,{activationConstraint:{distance:8}}),yy(O2,{activationConstraint:{delay:250,tolerance:5}}),yy(i0,{coordinateGetter:V9}))}function K9(){const{t:e}=gr(),t=Va(),n=Xv(),{isMobile:a,setOpenMobile:i}=Yr(),{toggleDevice:s}=PB(),c=Ji(oe=>oe.sessions),d=Ji(oe=>oe.activeSessionId),h=Fr(oe=>oe.setSidebarTab);y.useEffect(()=>{const oe=Ji.getState();oe.ensureInitialized(),oe.loadSessions()},[]);const f=Pl("/devices/:deviceId/windows/:windowId/panes/:paneId",t.pathname),g=f==null?void 0:f.params.deviceId,m=f==null?void 0:f.params.windowId,b=f==null?void 0:f.params.paneId,x=xn(oe=>oe.snapshots),w=xn(oe=>oe.connectedDevices),S=xn(oe=>oe.closeWindow),E=xn(oe=>oe.closePane),T=xn(oe=>oe.renameWindow),C=vs(oe=>{var xe;return((xe=oe.settings)==null?void 0:xe.language)??"en_US"}),{data:M}=Ku({queryKey:["devices"],queryFn:async()=>{const oe=await fetch("/api/devices");if(!oe.ok)throw new Error("Failed to fetch devices");return oe.json()},throwOnError:!1}),O=xn(oe=>oe.hydrateDeviceErrors);y.useEffect(()=>{M!=null&&M.devices&&O(M.devices.map(oe=>({deviceId:oe.id,lastError:oe.lastError??null,lastErrorType:oe.lastErrorType??null})))},[M,O]);const D=y.useCallback((oe,xe)=>{n(oe,{replace:(xe==null?void 0:xe.replace)??!0}),a&&!(xe!=null&&xe.keepSidebarOpen)&&i(!1)},[n,a,i]),k=y.useCallback((oe,xe,Ie,qe)=>{G.current=null,window.dispatchEvent(new CustomEvent("tmex:user-initiated-selection",{detail:{deviceId:oe,windowId:xe,paneId:Ie}})),D(`/devices/${oe}/windows/${xe}/panes/${z2(Ie)}`,{keepSidebarOpen:qe==null?void 0:qe.keepSidebarOpen})},[D]),A=y.useCallback(oe=>{var xe,Ie;if(Ji.getState().setActiveSession(oe.id),h("agent"),oe.deviceId&&oe.paneId){const qe=(Ie=(xe=xn.getState().snapshots[oe.deviceId])==null?void 0:xe.session)==null?void 0:Ie.windows,Ke=qe==null?void 0:qe.find(st=>st.panes.some(ze=>ze.id===oe.paneId));Ke&&k(oe.deviceId,Ke.id,oe.paneId,{keepSidebarOpen:!0})}},[h,k]),j=y.useCallback((oe,xe,Ie)=>{k(oe,xe,Ie.id,{keepSidebarOpen:!0}),Ji.getState().startDraft(oe,Ie.id,Ie.title??null),h("agent")},[k,h]),B=xn(oe=>oe.selectWindow),G=y.useRef(null);y.useEffect(()=>{var Je,ft;const oe=G.current;if(!oe)return;if(Date.now()-oe.at>5e3){G.current=null;return}const{deviceId:xe,windowId:Ie}=oe,qe=x[xe],Ke=(Je=qe==null?void 0:qe.session)==null?void 0:Je.windows;if(!Ke)return;const st=Ke.find(jt=>jt.id===Ie);if(!((ft=st==null?void 0:st.panes)!=null&&ft.length))return;G.current=null;const ze=st.panes.find(jt=>jt.active)??st.panes[0];k(xe,Ie,ze.id)},[x,k]);const K=y.useCallback((oe,xe,Ie)=>{B(oe,xe);const qe=Ie.find(Ke=>Ke.active)??Ie[0];qe?(k(oe,xe,qe.id),G.current=null):G.current={deviceId:oe,windowId:xe,at:Date.now()}},[k,B]),I=y.useCallback((oe,xe)=>{xe?oe===g&&D("/devices"):D(`/devices/${oe}`),s(oe,xe)},[s,g,D]),H=y.useCallback((oe,xe)=>{oe===g&&xe===m&&D("/devices"),S(oe,xe)},[S,g,m,D]),[F,V]=y.useState(null),L=y.useCallback((oe,xe)=>{var Ke,st;const Ie=(st=(Ke=xn.getState().snapshots[oe])==null?void 0:Ke.session)==null?void 0:st.windows,qe=Ie==null?void 0:Ie.find(ze=>ze.id===xe);V({kind:"window",deviceId:oe,windowId:xe,name:qe?$9(qe):""})},[]),_=y.useCallback((oe,xe,Ie)=>{var st,ze,Je,ft;const qe=(ze=(st=xn.getState().snapshots[oe])==null?void 0:st.session)==null?void 0:ze.windows,Ke=(ft=(Je=qe==null?void 0:qe.find(jt=>jt.id===xe))==null?void 0:Je.panes)==null?void 0:ft.find(jt=>jt.id===Ie);V({kind:"pane",deviceId:oe,paneId:Ie,name:(Ke==null?void 0:Ke.title)||`Pane ${(Ke==null?void 0:Ke.index)??""}`})},[]),z=y.useCallback(()=>{F&&(F.kind==="window"?H(F.deviceId,F.windowId):E(F.deviceId,F.paneId),V(null))},[F,H,E]),[Y,Q]=y.useState(null),[P,q]=y.useState(""),W=y.useCallback((oe,xe)=>{var Ke,st;const Ie=(st=(Ke=xn.getState().snapshots[oe])==null?void 0:Ke.session)==null?void 0:st.windows,qe=Ie==null?void 0:Ie.find(ze=>ze.id===xe);qe&&(q(qe.customName??f0(qe).title),Q({deviceId:oe,windowId:xe,hasCustomName:!!qe.customName}))},[]),X=y.useCallback(()=>{if(!Y)return;const oe=P.trim();oe&&(T(Y.deviceId,Y.windowId,oe),Q(null))},[Y,P,T]),ce=y.useCallback(()=>{Y&&(T(Y.deviceId,Y.windowId,""),Q(null))},[Y,T]),ie=y.useCallback(oe=>{xn.getState().createWindow(oe)},[]),[de,ve]=y.useState(null),Se=y.useCallback((oe,xe)=>{ve({deviceId:oe,paneId:xe})},[]),[Me,ke]=y.useState(null),[J,ue]=y.useState(""),[pe,De]=y.useState(null),Ce=y.useCallback(oe=>{ue(oe.title),ke(oe)},[]),we=y.useCallback(()=>{if(!Me)return;const oe=J.trim();oe&&(Ji.getState().renameSession(Me.id,oe),ke(null))},[Me,J]),Te=y.useCallback(oe=>{De(oe)},[]),Z=y.useCallback(()=>{pe&&(Ji.getState().deleteSession(pe.id),De(null))},[pe]),be=$u(),ge=h0(),Pe=Cu({mutationFn:async oe=>{const xe=await fetch("/api/devices/order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceIds:oe})});if(!xe.ok)throw new Error("Failed to reorder devices");return xe.json()},onMutate:async oe=>{await be.cancelQueries({queryKey:["devices"]});const xe=be.getQueryData(["devices"]);if(xe){const Ie=new Map(xe.devices.map(st=>[st.id,st])),qe=oe.map((st,ze)=>{const Je=Ie.get(st);return Je?{...Je,sortOrder:ze}:void 0}).filter(st=>st!==void 0),Ke=xe.devices.filter(st=>!oe.includes(st.id));be.setQueryData(["devices"],{devices:[...qe,...Ke]})}return{previous:xe}},onError:(oe,xe,Ie)=>{Ie!=null&&Ie.previous&&be.setQueryData(["devices"],Ie.previous),cn.error(e("device.reorderFailed"))},onSettled:()=>{be.invalidateQueries({queryKey:["devices"]})}}),Be=(M==null?void 0:M.devices)??[],Ae=y.useMemo(()=>[...Be].sort((oe,xe)=>oe.sortOrder-xe.sortOrder||oe.name.localeCompare(xe.name,CT(C),{numeric:!0,sensitivity:"base"})),[Be,C]),it=y.useCallback(oe=>{const{active:xe,over:Ie}=oe;if(!Ie||xe.id===Ie.id)return;const qe=Ae.map(ze=>ze.id),Ke=qe.indexOf(String(xe.id)),st=qe.indexOf(String(Ie.id));Ke<0||st<0||Pe.mutate(dd(qe,Ke,st))},[Ae,Pe]),{sessionsByPane:wt,orphanSessions:xt}=y.useMemo(()=>{const oe=new Set(Be.map(Ke=>Ke.id)),xe=new Map,Ie=[],qe=Object.values(c).filter(Ke=>!!Ke).sort((Ke,st)=>Ke.updatedAt<st.updatedAt?1:-1);for(const Ke of qe){if(!Ke.deviceId||!Ke.paneId||!oe.has(Ke.deviceId)){Ie.push(Ke);continue}const st=`${Ke.deviceId}:${Ke.paneId}`,ze=xe.get(st);ze?ze.push(Ke):xe.set(st,[Ke])}return{sessionsByPane:xe,orphanSessions:Ie}},[c,Be]);return R.jsxs(vM,{className:"flex flex-col flex-1 min-h-0 pt-0",children:[R.jsx(l0,{sensors:ge,collisionDetection:a0,onDragEnd:it,children:R.jsx(dF,{className:"flex-1 min-h-0",children:R.jsxs("div",{className:"space-y-1.5 pb-2 pt-1 select-none [-webkit-user-select:none] [-webkit-touch-callout:none]",children:[R.jsx(u0,{items:Ae.map(oe=>oe.id),strategy:c0,children:Ae.map(oe=>{var xe,Ie;return R.jsx(G9,{device:oe,windows:((Ie=(xe=x[oe.id])==null?void 0:xe.session)==null?void 0:Ie.windows)??null,isConnected:w.has(oe.id),isSelected:oe.id===g,selectedWindowId:m,selectedPaneId:b,onConnectToggle:()=>I(oe.id,w.has(oe.id)),onCreateWindow:ie,onCloseWindow:L,onClosePane:_,onRenameWindow:W,onPaneClick:k,onWindowClick:K,onWatchPane:Se,sessionsByPane:wt,activeSessionId:d,onSelectSession:A,onCreateSessionForPane:j,onRenameSession:Ce,onDeleteSession:Te},oe.id)})}),Ae.length===0&&R.jsx("div",{className:"text-center text-sm text-muted-foreground py-4",children:e("sidebar.noDevices")}),xt.length>0&&R.jsx(Q9,{sessions:xt,activeSessionId:d,onSelectSession:A,onRenameSession:Ce,onDeleteSession:Te})]})})}),R.jsx(dv,{open:F!==null,onOpenChange:oe=>!oe&&V(null),children:R.jsxs(fv,{children:[R.jsxs(hv,{children:[R.jsx(xR,{className:"bg-destructive/10",children:R.jsx(Hl,{className:"h-5 w-5 text-destructive"})}),R.jsx(pv,{children:(F==null?void 0:F.kind)==="pane"?e("window.closePaneConfirmTitle"):e("window.closeConfirmTitle")}),R.jsx(gv,{children:e("window.closeConfirmDesc",{name:(F==null?void 0:F.name)??""})})]}),R.jsxs(mv,{children:[R.jsx(vv,{children:e("common.cancel")}),R.jsx(yv,{variant:"destructive",disabled:!F,onClick:z,children:e("common.close")})]})]})}),R.jsx(bv,{open:Y!==null,onOpenChange:oe=>!oe&&Q(null),children:R.jsx(xv,{"data-testid":"window-rename-dialog",children:R.jsxs("form",{onSubmit:oe=>{oe.preventDefault(),X()},children:[R.jsxs(wv,{children:[R.jsx(Sv,{children:e("window.rename")}),R.jsx(_M,{children:e("window.renameDesc")})]}),R.jsx("div",{className:"py-4",children:R.jsx(ya,{autoFocus:!0,maxLength:64,value:P,onChange:oe=>q(oe.target.value),placeholder:e("window.renamePlaceholder"),"data-testid":"window-rename-input"})}),R.jsxs(wR,{children:[(Y==null?void 0:Y.hasCustomName)&&R.jsx(Rn,{type:"button",variant:"ghost",onClick:ce,"data-testid":"window-rename-reset",children:e("window.renameReset")}),R.jsx(Rn,{type:"button",variant:"outline",onClick:()=>Q(null),children:e("common.cancel")}),R.jsx(Rn,{type:"submit",disabled:!P.trim(),"data-testid":"window-rename-save",children:e("common.save")})]})]})})}),R.jsx(bv,{open:Me!==null,onOpenChange:oe=>!oe&&ke(null),children:R.jsx(xv,{"data-testid":"agent-session-rename-dialog",children:R.jsxs("form",{onSubmit:oe=>{oe.preventDefault(),we()},children:[R.jsx(wv,{children:R.jsx(Sv,{children:e("agent.session.renameTitle")})}),R.jsx("div",{className:"py-4",children:R.jsx(ya,{autoFocus:!0,maxLength:120,value:J,onChange:oe=>ue(oe.target.value),placeholder:e("agent.session.renamePlaceholder"),"data-testid":"agent-session-rename-input"})}),R.jsxs(wR,{children:[R.jsx(Rn,{type:"button",variant:"outline",onClick:()=>ke(null),children:e("agent.session.cancel")}),R.jsx(Rn,{type:"submit",disabled:!J.trim(),"data-testid":"agent-session-rename-save",children:e("agent.session.save")})]})]})})}),R.jsx(dv,{open:pe!==null,onOpenChange:oe=>!oe&&De(null),children:R.jsxs(fv,{children:[R.jsxs(hv,{children:[R.jsx(xR,{className:"bg-destructive/10",children:R.jsx(Hl,{className:"h-5 w-5 text-destructive"})}),R.jsx(pv,{children:e("agent.session.deleteTitle")}),R.jsx(gv,{children:e("agent.session.deleteDesc",{title:(pe==null?void 0:pe.title)??""})})]}),R.jsxs(mv,{children:[R.jsx(vv,{children:e("common.cancel")}),R.jsx(yv,{variant:"destructive",disabled:!pe,onClick:Z,"data-testid":"agent-session-delete-confirm",children:e("agent.session.deleteConfirm")})]})]})}),de&&R.jsx(nV,{open:!0,onOpenChange:oe=>!oe&&ve(null),deviceId:de.deviceId,paneId:de.paneId})]})}function G9({device:e,windows:t,isConnected:n,isSelected:a,selectedWindowId:i,selectedPaneId:s,onConnectToggle:c,onCreateWindow:d,onCloseWindow:h,onClosePane:f,onRenameWindow:g,onPaneClick:m,onWindowClick:b,onWatchPane:x,sessionsByPane:w,activeSessionId:S,onSelectSession:E,onCreateSessionForPane:T,onRenameSession:C,onDeleteSession:M}){const{t:O}=gr(),D=e.type==="local"?TC:m5,{attributes:k,listeners:A,setNodeRef:j,setActivatorNodeRef:B,transform:G,transition:K,isDragging:I}=d0({id:e.id}),H=h0(),F=V=>{const{active:L,over:_}=V;if(!_||L.id===_.id||!t)return;const z=t.map(P=>P.id),Y=z.indexOf(String(L.id)),Q=z.indexOf(String(_.id));Y<0||Q<0||xn.getState().reorderWindows(e.id,dd(z,Y,Q))};return R.jsxs("div",{ref:j,style:{transform:Rs.Translate.toString(G),transition:K},"data-testid":`device-item-${e.id}`,className:_e("group/device rounded-xl border border-border/60 overflow-hidden",a?"bg-chat-surface":n?"bg-muted/40":"bg-muted/20",I&&"opacity-60 shadow-lg"),onClick:n?void 0:c,children:[R.jsxs("div",{className:"relative px-3 py-1.5",children:[a&&R.jsx("span",{className:"absolute left-0 top-0 bottom-0 w-0.5 bg-muted-foreground/70"}),R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx("button",{type:"button",ref:B,...k,...A,"aria-label":O("device.dragHandle"),onClick:V=>V.stopPropagation(),className:"touch-none cursor-grab shrink-0 -ml-1 text-muted-foreground/50 hover:text-muted-foreground opacity-100",children:R.jsx(rb,{className:"h-3.5 w-3.5 [@media(any-pointer:coarse)]:h-5 [@media(any-pointer:coarse)]:w-5"})}),R.jsx(D,{className:"h-4 w-4 text-muted-foreground shrink-0"}),R.jsx("span",{className:"flex-1 truncate text-xs font-medium",children:e.name}),R.jsx(w8,{deviceId:e.id,className:"shrink-0"}),R.jsx("div",{className:_e("h-2 w-2 rounded-full shrink-0",n?"bg-emerald-500":"bg-gray-400")}),R.jsx(Rn,{variant:"ghost",size:"icon-xs",onClick:V=>{V.stopPropagation(),c()},"data-testid":n?`device-disconnect-${e.id}`:`device-connect-${e.id}`,title:O(n?"device.disconnect":"device.connect"),children:n?R.jsx(D5,{className:"h-3.5 w-3.5 text-orange-500"}):R.jsx(j5,{className:"h-3.5 w-3.5 text-emerald-500"})})]})]}),n&&R.jsxs("div",{className:"p-1.5 space-y-1.5 [@media(any-pointer:coarse)]:space-y-2",children:[!t&&R.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1.5 text-center",children:O("device.connecting")}),(t==null?void 0:t.length)===0&&R.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1.5 text-center",children:O("window.noWindows")}),t&&t.length>0&&R.jsx(l0,{sensors:H,collisionDetection:a0,onDragEnd:F,children:R.jsx(u0,{items:t.map(V=>V.id),strategy:c0,children:t.map(V=>R.jsx(X9,{deviceId:e.id,window:V,isSelected:V.id===i,selectedPaneId:s,onPaneClick:m,onWindowClick:b,onCloseWindow:h,onClosePane:f,onRenameWindow:g,onWatchPane:x,sessionsByPane:w,activeSessionId:S,onSelectSession:E,onCreateSessionForPane:T,onRenameSession:C,onDeleteSession:M},V.id))})}),R.jsxs("button",{type:"button","data-testid":`window-create-${e.id}`,onPointerDown:V=>V.stopPropagation(),onMouseDown:V=>V.stopPropagation(),onClick:()=>d(e.id),className:"w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left transition-colors text-muted-foreground hover:text-foreground hover:bg-accent/30 border border-dashed border-border/50 hover:border-border",children:[R.jsx(ob,{className:"h-3.5 w-3.5 shrink-0"}),R.jsx("span",{className:"text-xs",children:O("window.new")})]})]})]})}function X9({deviceId:e,window:t,isSelected:n,selectedPaneId:a,onPaneClick:i,onWindowClick:s,onCloseWindow:c,onClosePane:d,onRenameWindow:h,onWatchPane:f,sessionsByPane:g,activeSessionId:m,onSelectSession:b,onCreateSessionForPane:x,onRenameSession:w,onDeleteSession:S}){const{t:E}=gr(),{isMobile:T}=Yr(),C=t.panes.length>1,M=f0(t),O=t.panes.find(V=>V.id===a),D=n&&!!O,{attributes:k,listeners:A,setNodeRef:j,setActivatorNodeRef:B,transform:G,transition:K,isDragging:I}=d0({id:t.id}),H=h0(),F=V=>{const{active:L,over:_}=V;if(!_||L.id===_.id)return;const z=t.panes.map(P=>P.id),Y=z.indexOf(String(L.id)),Q=z.indexOf(String(_.id));Y<0||Q<0||xn.getState().reorderPanes(e,t.id,dd(z,Y,Q))};return R.jsxs("div",{ref:j,style:{transform:Rs.Translate.toString(G),transition:K},className:_e("space-y-1",I&&"opacity-60"),children:[R.jsxs("div",{className:"group relative flex items-center gap-1",children:[R.jsx("button",{type:"button",ref:B,...k,...A,"aria-label":E("window.dragHandle"),onClick:V=>V.stopPropagation(),className:_e("touch-none cursor-grab shrink-0 flex items-center justify-center text-muted-foreground/50 hover:text-muted-foreground opacity-100",T?"h-9 w-4":"h-6 w-3.5 [@media(any-pointer:coarse)]:h-9 [@media(any-pointer:coarse)]:w-4"),children:R.jsx(rb,{className:_e(T?"h-4 w-4":"h-3.5 w-3.5")})}),R.jsxs("button",{type:"button",onClick:()=>s(e,t.id,t.panes),"data-testid":`window-item-${t.id}`,className:_e("flex-1 min-w-0 flex items-center gap-2 px-2 py-1.5 rounded-lg text-left transition-colors pr-7 [@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:pr-12",T&&"py-2.5 pr-13",D?"bg-primary/10 text-primary":t.active?"bg-accent text-accent-foreground":"hover:bg-accent/50 text-foreground"),children:[R.jsx($l,{variant:D?"default":"outline",className:"h-5 text-[10px] px-1.5 shrink-0",children:t.index}),R.jsxs("span",{className:"flex-1 min-w-0",children:[R.jsx("span",{className:"font-mono text-[11px] leading-tight font-medium line-clamp-2 [overflow-wrap:break-word]",children:M.title}),M.processName&&R.jsx("span",{className:"font-mono text-[10.5px] leading-tight text-muted-foreground line-clamp-1 break-all",children:M.processName})]})]}),R.jsxs(Gb,{children:[R.jsx(Xb,{"data-testid":`window-menu-${t.id}`,"aria-label":E("window.menu"),title:E("window.menu"),className:_e("absolute top-1/2 -translate-y-1/2 flex items-center justify-center rounded text-muted-foreground hover:bg-background hover:text-foreground transition-opacity data-popup-open:opacity-100",T?"h-11 w-11 right-0 rounded-lg bg-background/40 opacity-100":"h-5 w-5 right-1.5 [@media(any-pointer:coarse)]:h-10 [@media(any-pointer:coarse)]:w-10 [@media(any-pointer:coarse)]:right-0.5 [@media(any-pointer:coarse)]:rounded-lg",D?"opacity-100":"opacity-0 group-hover:opacity-100 [@media(any-pointer:coarse)]:opacity-100"),children:R.jsx(RC,{className:_e(T?"h-5 w-5":"h-3.5 w-3.5 [@media(any-pointer:coarse)]:h-4.5 [@media(any-pointer:coarse)]:w-4.5")})}),R.jsxs(Wb,{align:"end",backdrop:!0,className:"w-auto min-w-36 [@media(any-pointer:coarse)]:min-w-48",children:[R.jsxs(Sl,{"data-testid":`window-menu-rename-${t.id}`,className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",T&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>h(e,t.id),children:[R.jsx(ab,{className:_e("h-4 w-4",T&&"h-5 w-5")}),E("window.rename")]}),R.jsxs(Sl,{"data-testid":`window-menu-new-session-${t.id}`,className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",T&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>x(e,t.id,O||t.panes[0]),children:[R.jsx(ob,{className:_e("h-4 w-4",T&&"h-5 w-5")}),E("agent.session.new")]}),R.jsxs(Sl,{variant:"destructive","data-testid":`window-menu-close-${t.id}`,className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",T&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>c(e,t.id),children:[R.jsx(Hl,{className:_e("h-4 w-4",T&&"h-5 w-5")}),E("window.close")]})]})]})]}),C&&R.jsx("div",{className:"ml-4 pl-2 border-l border-border/50 space-y-1 [@media(any-pointer:coarse)]:space-y-1.5",children:R.jsx(l0,{sensors:H,collisionDetection:a0,onDragEnd:F,children:R.jsx(u0,{items:t.panes.map(V=>V.id),strategy:c0,children:t.panes.map(V=>R.jsx(W9,{deviceId:e,windowId:t.id,pane:V,isActive:V.id===a,isMobile:T,onPaneClick:i,onClosePane:d,onWatchPane:f,sessions:g.get(`${e}:${V.id}`),activeSessionId:m,onSelectSession:b,onRenameSession:w,onDeleteSession:S},V.id))})})}),!C&&t.panes[0]&&R.jsx("div",{className:"ml-[36px] pl-2 border-l border-border/50",children:R.jsx(H2,{sessions:g.get(`${e}:${t.panes[0].id}`),activeSessionId:m,onSelectSession:b,onRenameSession:w,onDeleteSession:S})})]})}function W9({deviceId:e,windowId:t,pane:n,isActive:a,isMobile:i,onPaneClick:s,onClosePane:c,onWatchPane:d,sessions:h,activeSessionId:f,onSelectSession:g,onRenameSession:m,onDeleteSession:b}){const{t:x}=gr(),{attributes:w,listeners:S,setNodeRef:E,setActivatorNodeRef:T,transform:C,transition:M,isDragging:O}=d0({id:n.id});return R.jsxs("div",{ref:E,style:{transform:Rs.Translate.toString(C),transition:M},className:_e("group relative",O&&"opacity-60"),children:[R.jsxs("div",{className:"flex items-center gap-1",children:[R.jsx("button",{type:"button",ref:T,...w,...S,"aria-label":x("window.dragHandlePane"),onClick:D=>D.stopPropagation(),className:_e("touch-none cursor-grab shrink-0 flex items-center justify-center text-muted-foreground/50 hover:text-muted-foreground opacity-100",i?"h-9 w-4":"h-6 w-3 [@media(any-pointer:coarse)]:h-9 [@media(any-pointer:coarse)]:w-4"),children:R.jsx(rb,{className:_e(i?"h-4 w-4":"h-3 w-3")})}),R.jsxs("button",{type:"button",onClick:()=>s(e,t,n.id),"data-testid":`pane-item-${n.id}`,className:_e("flex-1 min-w-0 flex items-center gap-2 px-2 py-1 rounded-lg text-left transition-colors pr-13 [@media(any-pointer:coarse)]:py-2 [@media(any-pointer:coarse)]:pr-21",i&&"py-2.5 pr-24",a?"bg-primary/10 text-primary":n.active?"bg-accent text-accent-foreground":"hover:bg-accent/30 text-muted-foreground"),children:[R.jsx("span",{className:"text-[10px] font-mono opacity-60 w-4",children:n.index}),R.jsx("span",{className:"flex-1 text-xs line-clamp-2 break-all",children:n.title||`Pane ${n.index}`})]})]}),R.jsxs(Gb,{children:[R.jsx(Xb,{"data-testid":`pane-menu-${n.id}`,"aria-label":x("watch.openMonitor"),className:_e("absolute top-1/2 -translate-y-1/2 flex items-center justify-center rounded text-muted-foreground hover:bg-background hover:text-foreground transition-opacity data-popup-open:opacity-100",i?"h-11 w-11 right-11 rounded-lg bg-background/40 opacity-100":"h-5 w-5 right-7 [@media(any-pointer:coarse)]:h-10 [@media(any-pointer:coarse)]:w-10 [@media(any-pointer:coarse)]:right-10.5 [@media(any-pointer:coarse)]:rounded-lg",a?"opacity-100":"opacity-0 group-hover:opacity-100 [@media(any-pointer:coarse)]:opacity-100"),children:R.jsx(RC,{className:_e(i?"h-5 w-5":"h-3.5 w-3.5")})}),R.jsx(Wb,{align:"end",backdrop:!0,className:"w-auto min-w-36 [@media(any-pointer:coarse)]:min-w-48",children:R.jsxs(Sl,{"data-testid":`pane-watch-${n.id}`,className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",i&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>d(e,n.id),children:[R.jsx(_5,{className:_e("h-4 w-4",i&&"h-5 w-5")}),x("watch.openMonitor")]})})]}),R.jsx("button",{type:"button",onClick:D=>{D.stopPropagation(),c(e,t,n.id)},"data-testid":`pane-close-${n.id}`,className:_e("absolute top-1/2 -translate-y-1/2 flex items-center justify-center rounded text-muted-foreground hover:bg-background hover:text-foreground transition-opacity",i?"h-11 w-11 right-0 rounded-lg bg-background/40 opacity-100":"h-5 w-5 right-1.5 [@media(any-pointer:coarse)]:h-10 [@media(any-pointer:coarse)]:w-10 [@media(any-pointer:coarse)]:right-0.5 [@media(any-pointer:coarse)]:rounded-lg",a?"opacity-100":"opacity-0 group-hover:opacity-100 [@media(any-pointer:coarse)]:opacity-100"),title:x("window.closePane"),children:R.jsx("span",{className:_e("leading-none",i?"text-base":"text-xs"),children:"×"})}),R.jsx(H2,{sessions:h,activeSessionId:f,onSelectSession:g,onRenameSession:m,onDeleteSession:b})]})}function U2({session:e,onRenameSession:t,onDeleteSession:n,className:a,enlargeOnTouch:i=!1}){const{t:s}=gr(),{isMobile:c}=Yr(),d=i&&c;return R.jsxs(Gb,{children:[R.jsx(Xb,{render:R.jsx(Rn,{variant:"ghost",size:"icon-sm","data-testid":`agent-session-menu-${e.id}`,"aria-label":s("agent.session.rename"),onClick:h=>h.stopPropagation(),className:_e("size-5 shrink-0 text-muted-foreground transition-opacity data-popup-open:opacity-100",c?"opacity-100":"opacity-0 group-hover:opacity-100 [@media(any-pointer:coarse)]:opacity-100",d&&"size-9",a)}),children:R.jsx(u5,{className:_e("size-3.5",d&&"size-5")})}),R.jsxs(Wb,{align:"end",backdrop:!0,className:"w-auto min-w-36 [@media(any-pointer:coarse)]:min-w-48",children:[R.jsxs(Sl,{"data-testid":"agent-session-rename",className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",c&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>t(e),children:[R.jsx(ab,{className:_e("h-4 w-4",c&&"h-5 w-5")}),s("agent.session.rename")]}),R.jsxs(Sl,{variant:"destructive","data-testid":"agent-session-delete",className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",c&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>n(e),children:[R.jsx(OC,{className:_e("h-4 w-4",c&&"h-5 w-5")}),s("agent.session.delete")]})]})]})}function H2({sessions:e,activeSessionId:t,onSelectSession:n,onRenameSession:a,onDeleteSession:i}){const{isMobile:s}=Yr();return R.jsx("div",{className:"mt-1 space-y-0.5 [@media(any-pointer:coarse)]:space-y-1",children:e==null?void 0:e.map(c=>{const d=c.id===t;return R.jsxs("div",{className:"group relative",children:[R.jsxs("button",{type:"button","data-testid":`agent-session-item-${c.id}`,onClick:()=>n(c),className:_e("w-full flex items-center gap-1.5 px-2 py-1 pr-7 rounded-md text-left transition-colors [@media(any-pointer:coarse)]:min-h-11 [@media(any-pointer:coarse)]:py-2 [@media(any-pointer:coarse)]:pr-12",s&&"min-h-11 py-2 pr-12",d?"bg-primary/10 text-primary":"hover:bg-accent/30 text-muted-foreground"),children:[R.jsx(nb,{className:"size-3 shrink-0 opacity-70"}),R.jsx("span",{className:"min-w-0 flex-1 truncate text-[11px]",children:c.title}),R.jsx(P2,{status:c.status})]}),R.jsx("div",{className:"absolute right-0.5 top-1/2 -translate-y-1/2",children:R.jsx(U2,{session:c,onRenameSession:a,onDeleteSession:i,enlargeOnTouch:!0})})]},c.id)})})}function Q9({sessions:e,activeSessionId:t,onSelectSession:n,onRenameSession:a,onDeleteSession:i}){const{t:s}=gr(),[c,d]=y.useState(!1),h=vs(f=>{var g;return((g=f.settings)==null?void 0:g.language)??"en_US"});return R.jsxs(kM,{open:c,onOpenChange:d,className:"rounded-xl border border-border/60 bg-muted/20",children:[R.jsxs(jM,{"data-testid":"agent-orphan-sessions-trigger",className:"flex w-full items-center gap-2 px-3 py-1.5 text-left",children:[R.jsx(y5,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),R.jsx("span",{className:"flex-1 truncate text-xs font-medium text-muted-foreground",children:s("agent.orphan.title",{count:e.length})}),R.jsx(EC,{className:_e("h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform",c&&"rotate-90")})]}),R.jsx(LM,{className:"space-y-0.5 px-1.5 pb-1.5",children:e.map(f=>{const g=f.id===t,m=[f.originPaneTitle,f.originProcessName,f.createdAt?new Date(f.createdAt).toLocaleString(CT(h)):null].filter(b=>!!b);return R.jsxs("div",{className:"group relative",children:[R.jsxs("button",{type:"button","data-testid":`agent-orphan-session-${f.id}`,onClick:()=>n(f),className:_e("w-full flex flex-col gap-0.5 px-2 py-1.5 pr-7 rounded-lg text-left transition-colors",g?"bg-primary/10 text-primary":"hover:bg-accent/30"),children:[R.jsxs("span",{className:"flex items-center gap-1.5",children:[R.jsx(nb,{className:"size-3 shrink-0 opacity-70"}),R.jsx("span",{className:"min-w-0 flex-1 truncate text-[11px]",children:f.title}),R.jsx(P2,{status:f.status})]}),m.length>0&&R.jsx("span",{className:"truncate pl-[18px] text-[10px] text-muted-foreground",children:m.join(" · ")})]}),R.jsx("div",{className:"absolute right-0.5 top-1.5",children:R.jsx(U2,{session:f,onRenameSession:a,onDeleteSession:i})})]},f.id)})})]})}function Z9(){const{t:e}=gr(),{isMobile:t,setOpenMobile:n}=Yr(),a=vs(g=>{var m;return(m=g.settings)==null?void 0:m.siteName}),i=vs(g=>g.fetchSettings);y.useEffect(()=>{i()},[i]);const s=a??"tmex",c=Fr(g=>g.theme),d=Fr(g=>g.setTheme),h=c==="dark",f=()=>{const g=h?"light":"dark";d(g),document.documentElement.classList.toggle("dark",g==="dark")};return R.jsxs("div",{className:"flex items-center gap-2 px-2",children:[t&&R.jsx("button",{type:"button","data-testid":"mobile-sidebar-close",onClick:()=>n(!1),className:"inline-flex h-8 w-8 ml-[-8px] shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-sidebar-accent hover:text-foreground","aria-label":e("nav.closeSidebar"),title:e("nav.closeSidebar"),children:R.jsx(Hl,{className:"h-4 w-4"})}),R.jsxs(Ah,{to:"/",className:"flex flex-1 items-center gap-3 overflow-hidden",children:[R.jsx("div",{className:"h-8 w-8 shrink-0 overflow-hidden rounded-lg border-2 border-black",children:R.jsx("img",{src:"/logo.png",alt:s,className:"h-full w-full object-cover"})}),R.jsx("span",{className:"truncate text-sm font-semibold tracking-tight",children:s})]}),R.jsx(J9,{}),R.jsx("button",{type:"button",onClick:f,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-sidebar-accent hover:text-foreground","aria-label":e(h?"settings.themeLight":"settings.themeDark"),title:e(h?"settings.themeLight":"settings.themeDark"),children:h?R.jsx(F5,{className:"h-4 w-4"}):R.jsx(E5,{className:"h-4 w-4"})}),R.jsx(Ah,{to:"/settings",className:"inline-flex h-8 w-8 mr-[-8px] shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-sidebar-accent hover:text-foreground","aria-label":e("sidebar.settings"),title:e("sidebar.settings"),children:R.jsx(P5,{className:"h-4 w-4"})})]})}function J9(){const e=xn(n=>n.wsLatencyMs);if(e===null)return null;const t=e>=150;return R.jsxs("span",{className:`shrink-0 text-xs tabular-nums ${t?"text-destructive":"text-muted-foreground"}`,children:[e,"ms"]})}const e7=y.lazy(()=>So(()=>import("./agent-tab-BVWxou-d.js"),__vite__mapDeps([0,1,2,3])).then(e=>({default:e.AgentTab}))),t7=y.lazy(()=>So(()=>import("./files-tab-lNenDPFy.js"),__vite__mapDeps([4,5,6,7,8,9])).then(e=>({default:e.FilesTab}))),wy="rounded-lg data-active:bg-background data-active:text-foreground data-active:border-transparent group-data-[variant=default]/tabs-list:data-active:shadow-none dark:data-active:bg-input/60 dark:data-active:border-transparent text-[13px] transition-colors duration-200 [&_svg:not([class*='size-'])]:size-[15px]",n7=[{title:"nav.manageDevices",url:"/devices",icon:TC}];function r7({...e}){const{t}=gr(),n=Fr(i=>i.sidebarTab),a=Fr(i=>i.setSidebarTab);return R.jsxs(SB,{variant:"inset",...e,children:[R.jsx("div",{className:"h-[var(--tmex-safe-area-top)]"}),R.jsxs(CB,{className:"gap-5 pt-3 pb-0",children:[R.jsx(Z9,{}),R.jsx(r8,{className:"mb-2.5",value:n,onValueChange:i=>a(i),children:R.jsxs(o8,{className:"w-full p-1 rounded-xl border border-border/60 group-data-horizontal/tabs:h-11",children:[R.jsxs(cy,{value:"panes","data-testid":"sidebar-tab-panes",className:wy,children:[R.jsx(O5,{}),t("sidebar.tab.panes")]}),R.jsxs(cy,{value:"agent","data-testid":"sidebar-tab-agent",className:wy,children:[R.jsx(nb,{}),t("sidebar.tab.agent")]}),R.jsxs(cy,{value:"files","data-testid":"sidebar-tab-files",className:wy,children:[R.jsx(f5,{}),t("sidebar.tab.files")]})]})})]}),R.jsxs(MB,{className:"flex min-h-0 flex-col overflow-hidden",children:[n==="panes"&&R.jsx(K9,{}),n==="agent"&&R.jsx(y.Suspense,{fallback:null,children:R.jsx(e7,{})}),n==="files"&&R.jsx(y.Suspense,{fallback:null,children:R.jsx(t7,{})})]}),n==="panes"&&R.jsxs(OB,{children:[R.jsx(v8,{items:n7}),R.jsx("div",{className:"h-[var(--tmex-safe-area-bottom)]"})]})]})}let QR=!1;function a7(e,t,n){var i,s,c;let a=n;if(!a){const d=(s=(i=xn.getState().snapshots[e])==null?void 0:i.session)==null?void 0:s.windows;a=(c=d==null?void 0:d.find(h=>h.panes.some(f=>f.id===t)))==null?void 0:c.id}return a?`/devices/${e}/windows/${a}/panes/${z2(t)}`:`/devices/${e}`}function o7(e,t){const n=e.getQueriesData({queryKey:["watch-rules"]});for(const[,a]of n){const i=a==null?void 0:a.find(s=>s.id===t);if(i)return i.name}return null}async function i7(e,t){var a;const n=o7(e,t);if(n)return n;try{const i=await fetch(`/api/watch/rules/${t}`);return i.ok?((a=(await i.json()).rule)==null?void 0:a.name)??null:null}catch{return null}}function s7(e,t,n){if(!(typeof Notification>"u"||Notification.permission!=="granted"))try{const a=new Notification(e,{body:t});a.onclick=()=>{window.focus(),gh(n)}}catch{}}function l7(e,t){e.invalidateQueries({queryKey:["watch-rules"]}),e.invalidateQueries({queryKey:["watch-rule-state",t]})}async function c7(e,t,n,a,i){const c=await i7(e,t)??qt.t("watch.toast.triggeredTitle"),d=i.summary||i.matchedText||"",h=d.length>200?`${d.slice(0,200)}…`:d,f=a7(n,a,i.windowId);cn(c,{description:h,action:{label:qt.t("watch.toast.openTerminal"),onClick:()=>{gh(f)}}}),s7(c,h,f)}function u7(e){if(QR)return;QR=!0,Sn().onMessage(n=>{if(n.kind!==Tk)return;let a;try{a=Aa(jj,n.payload)}catch(s){console.error("[watch] failed to decode WATCH_EVENT:",s);return}let i;try{i=JSON.parse(new TextDecoder().decode(a.payload))}catch(s){console.error("[watch] failed to parse WATCH_EVENT payload:",s);return}switch(l7(e,a.ruleId),a.eventType){case Uk:c7(e,a.ruleId,a.deviceId,a.paneId,i);return;case Hk:{const s=i;cn.warning(qt.t("watch.toast.modelUnavailableTitle"),{description:`${s.message} ${qt.t("watch.toast.modelUnavailableHint")}`});return}case Bk:{const s=i;cn.error(qt.t("watch.toast.ruleErrorTitle"),{description:s.message});return}default:return}})}function d7(){const e=$u(),t=xn(n=>n.ensureSocketConnected);return y.useEffect(()=>{u7(e),t()},[e,t]),null}let Uu=null;function X7(e){Uu=e}function W7(e){Uu===e&&(Uu=null)}function f7(){return Uu?Uu():null}const h7=60,m7=.02;function p7(e){if(Math.abs(e.viewportScale-1)>m7)return 0;const t=Math.round(e.windowInnerHeight-e.viewportHeight-e.viewportOffsetTop);return t>=h7?t:0}function g7(e){const t=e.windowInnerHeight-e.inset,a=e.cursorBottomClientY+e.appliedOffset+e.margin-t,i=e.maxOffset??e.inset;return Math.min(Math.max(0,Math.round(a)),i)}function Q7(){if(typeof navigator>"u")return!1;const e=navigator.userAgent,t=/iPad|iPhone|iPod/.test(e),n=navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1;return t||n}function y7(){return typeof window>"u"||typeof navigator>"u"?!1:"ontouchstart"in window||navigator.maxTouchPoints>0}const Wf={strategy:"none"},v7=8,b7=60,x7='[data-slot="sidebar-inset"]',ZR=".terminal-shortcuts-strip",JR="--tmex-kb-shortcut-lift";function w7(e,t){return e.strategy!==t.strategy?!1:e.strategy==="transform"&&t.strategy==="transform"?Math.abs(e.offset-t.offset)<1:e.strategy==="height"&&t.strategy==="height"?Math.abs(e.height-t.height)<1:!0}function S7(e,t){const[n,a]=y.useState(Wf);return y.useEffect(()=>{if(!y7())return;const i=window.visualViewport;if(!i)return;let s=null,c=null,d=Wf,h=null,f=0;const g=D=>{w7(d,D)||(d=D,a(D))},m=()=>{if((!h||!h.isConnected)&&(h=document.querySelector(x7)),!h)return 0;const D=window.getComputedStyle(h).transform;if(!D||D==="none")return 0;try{return-new DOMMatrix(D).m42}catch{return 0}},b=D=>{f=Math.round(D),document.documentElement.style.setProperty(JR,`${f}px`)},x=D=>{const k=document.querySelector(ZR);if(!k){b(0);return}const A=k.getBoundingClientRect().bottom,j=window.innerHeight-D;b(f+(A-j))},w=()=>{const D=document.querySelector(ZR);return D?D.offsetHeight:0},S=()=>{if(e)return 0;const D=document.activeElement;return D instanceof Element&&D.closest("[data-virtual-keyboard-avoid]")!==null?p7({windowInnerHeight:window.innerHeight,viewportHeight:i.height,viewportOffsetTop:i.offsetTop,viewportScale:i.scale}):0},E=()=>{const D=S();if(D<=0){b(0),g(Wf),M();return}if(t==="resize"){b(0);const k=window.innerHeight-D;k>=b7?g({strategy:"height",height:k}):g({strategy:"transform",offset:D}),M();return}if(t==="follow"){const k=f7();if(k){const A=w(),j=g7({cursorBottomClientY:k.bottom,appliedOffset:m(),windowInnerHeight:window.innerHeight,inset:D,margin:v7+A,maxOffset:D+A});g(j>0?{strategy:"transform",offset:j}:Wf),x(D)}else b(0),g({strategy:"transform",offset:D});C();return}b(0),g({strategy:"transform",offset:D}),M()},T=()=>{c=null,E()},C=()=>{c===null&&(c=window.requestAnimationFrame(T))},M=()=>{c!==null&&(window.cancelAnimationFrame(c),c=null)},O=()=>{s===null&&(s=window.requestAnimationFrame(()=>{s=null,E()}))};return E(),i.addEventListener("resize",O),i.addEventListener("scroll",O),window.addEventListener("resize",O),document.addEventListener("focusin",O),document.addEventListener("focusout",O),()=>{i.removeEventListener("resize",O),i.removeEventListener("scroll",O),window.removeEventListener("resize",O),document.removeEventListener("focusin",O),document.removeEventListener("focusout",O),s!==null&&window.cancelAnimationFrame(s),M(),document.documentElement.style.removeProperty(JR)}},[e,t]),n}const B2="NotoSansSymbols2Tmex";function F2(e){return Vg.find(t=>t.id===e)??Vg.find(t=>t.id===vC)??Vg[0]}function E7(e){return`${F2(e).cssFamily}, ${B2}, monospace`}const eT=new Set;function R7(e){const t=globalThis.document;if(!t||!e.files||eT.has(e.cssFamily))return;const n=t.createElement("style");n.dataset.tmexFont=e.id,n.textContent=`@font-face{font-family:${e.cssFamily};src:url("${e.files.regular}") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:${e.cssFamily};src:url("${e.files.bold}") format("woff2");font-weight:700;font-style:normal;font-display:swap}`,t.head.appendChild(n),eT.add(e.cssFamily)}async function T7(e,t){var i;const n=(i=globalThis.document)==null?void 0:i.fonts;if(!(n!=null&&n.load))return;const a=F2(e);a.isDefault||R7(a);try{await Promise.all([a.cssFamily,B2].flatMap(s=>[n.load(`${t}px ${s}`),n.load(`bold ${t}px ${s}`)]))}catch{}}function C7(){const e=Fr(n=>n.terminalFontId),t=Fr(n=>n.terminalFontSize);y.useEffect(()=>{T7(e,t);const n=globalThis.document;n==null||n.documentElement.style.setProperty("--font-mono",E7(e))},[e,t])}console.info(`tmex ${HD("0.15.0",!0)}`);function O7(){var e;try{const t=localStorage.getItem("tmex-ui");if(!t){document.documentElement.classList.add("dark");return}const n=JSON.parse(t),a=(e=n==null?void 0:n.state)==null?void 0:e.theme,i=a==="dark"||a===void 0;document.documentElement.classList.toggle("dark",i)}catch{document.documentElement.classList.add("dark")}}O7();const M7=new CD({defaultOptions:{queries:{staleTime:5e3,retry:1}}});function N7(){const{openMobile:e}=Yr(),t=Fr(n=>n.theme);return y.useEffect(()=>{const n=e?"--sidebar":"--background";document.body.style.backgroundColor=`var(${n})`,requestAnimationFrame(()=>{var s;const i=getComputedStyle(document.body).backgroundColor;(s=document.querySelector('meta[name="theme-color"]'))==null||s.setAttribute("content",i)})},[e,t]),null}function A7(){const e=Fr(t=>t.theme);return R.jsx(dz,{theme:e,richColors:!0,position:"top-right",closeButton:!0,offset:{top:"calc(16px + env(safe-area-inset-top, 0px))",right:"16px",bottom:"16px",left:"16px"},mobileOffset:{top:"calc(12px + env(safe-area-inset-top, 0px))",right:"12px",bottom:"12px",left:"12px"},toastOptions:{duration:6e3}})}function D7(){return C7(),R.jsxs(UB,{children:[R.jsx(d7,{}),R.jsxs(wB,{children:[R.jsx(N7,{}),R.jsx(zB,{}),R.jsx(r7,{}),R.jsx(k7,{})]})]})}function k7(){const{openMobile:e}=Yr(),t=Fr(s=>s.keyboardBehaviorMode),n=S7(e,t),a=n.strategy!=="none",i=n.strategy==="transform"?{transform:`translateY(-${n.offset}px)`,transition:t==="follow"?void 0:"transform 0.12s ease-out"}:n.strategy==="height"?{height:`${n.height}px`,transition:"height 0.12s ease-out"}:void 0;return R.jsxs(TB,{className:"h-dvh overflow-hidden md:h-[calc(100dvh-1rem)]",style:i,children:[R.jsx(tI,{}),R.jsx("div",{style:{height:a?0:"var(--tmex-safe-area-bottom)",transition:"height 0.12s ease-out"}})]})}function cl({moduleLoader:e}){const[t,n]=y.useState(null),a=j_();y.useEffect(()=>{e().then(n)},[e]);const i=t==null?void 0:t.default,s=t==null?void 0:t.PageTitle,c=t==null?void 0:t.PageActions;return R.jsxs(R.Fragment,{children:[R.jsxs("header",{className:"sticky top-0 z-10 flex h-12 md:h-16 shrink-0 items-center justify-between gap-2 bg-background/95 backdrop-blur-sm","data-testid":"mobile-topbar",children:[R.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-2 px-4",children:[R.jsx(RB,{className:"-ml-1 shrink-0","data-testid":"mobile-sidebar-open"}),R.jsx(vU,{orientation:"vertical",className:"mr-2 shrink-0 data-[orientation=vertical]:h-4"}),R.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-semibold",children:s?R.jsx(s,{...a}):""})]}),R.jsx("div",{className:"flex shrink-0 items-center gap-1 px-4",children:c&&R.jsx(c,{...a})})]}),R.jsx("div",{className:"flex min-h-0 flex-1 flex-col gap-4 !pt-0 p-2 md:p-4",children:R.jsx("div",{className:"bg-muted/50 min-h-0 flex-1 overflow-auto overscroll-auto rounded-xl [-webkit-overflow-scrolling:touch]",children:i?R.jsx(i,{}):null})})]})}const j7=()=>So(()=>import("./SettingsPage-C50JRe91.js"),__vite__mapDeps([10,11,6,12,5,2,13,1,14,9])),tT=()=>So(()=>import("./DevicesPage-CZLzOS04.js"),__vite__mapDeps([15,11,3])),nT=()=>So(()=>import("./DevicePage-kndrXVHE.js"),__vite__mapDeps([16,12,5,2,8])),L7=()=>So(()=>import("./FilePage-CxVqdlbt.js"),__vite__mapDeps([17,13,1,14,6,7])),_7=CI([{path:"/",Component:D7,children:[{index:!0,element:R.jsx(cl,{moduleLoader:tT})},{path:"devices",element:R.jsx(cl,{moduleLoader:tT})},{path:"devices/:deviceId",element:R.jsx(cl,{moduleLoader:nT})},{path:"devices/:deviceId/windows/:windowId/panes/:paneId",element:R.jsx(cl,{moduleLoader:nT})},{path:"settings",element:R.jsx(cl,{moduleLoader:j7})},{path:"file/:ref",element:R.jsx(cl,{moduleLoader:L7})}]}]),V2=document.getElementById("root");if(!V2)throw new Error("Root element not found");eP.catch(()=>{}).then(()=>{fL.createRoot(V2).render(R.jsx(y.StrictMode,{children:R.jsxs(MD,{client:M7,children:[R.jsx(Z_,{router:_7}),R.jsx($5,{}),R.jsx(A7,{})]})}))});export{z6 as $,dv as A,Rn as B,bv as C,Gb as D,u5 as E,xv as F,m5 as G,wv as H,Sv as I,_M as J,ya as K,eb as L,TC as M,uy as N,fy as O,ob as P,dy as Q,hy as R,vU as S,OC as T,Zi as U,JF as V,wR as W,_e as X,tn as Y,qt as Z,mT as _,$u as a,Yt as a$,B6 as a0,F6 as a1,V6 as a2,Y6 as a3,Hl as a4,Fr as a5,nP as a6,tP as a7,T7 as a8,E7 as a9,O2 as aA,C2 as aB,d0 as aC,rb as aD,Rs as aE,F2 as aF,Vg as aG,t5 as aH,kM as aI,jM as aJ,EC as aK,LM as aL,s5 as aM,F7 as aN,V7 as aO,U7 as aP,Y7 as aQ,q7 as aR,H5 as aS,Yn as aT,Cs as aU,O8 as aV,PM as aW,q8 as aX,sd as aY,Mi as aZ,Dn as a_,W7 as aa,ku as ab,X7 as ac,j_ as ad,Xv as ae,G7 as af,Q7 as ag,$7 as ah,z2 as ai,K7 as aj,Ji as ak,Ul as al,Ev as am,yF as an,gF as ao,_5 as ap,nV as aq,TV as ar,yy as as,l0 as at,a0 as au,u0 as av,c0 as aw,dd as ax,V9 as ay,i0 as az,vs as b,Mt as b0,pr as b1,Ot as b2,sv as b3,cr as b4,VM as b5,pt as b6,EO as b7,ws as b8,P8 as b9,U8 as ba,I8 as bb,RO as bc,j8 as bd,Bh as be,bC as bf,aP as bg,H7 as bh,vM as bi,dF as bj,nb as bk,Yr as bl,Va as bm,Pl as bn,Le as bo,P5 as bp,ZP as bq,r8 as br,o8 as bs,cy as bt,wy as bu,P7 as bv,So as bw,Ku as c,xn as d,Cu as e,fv as f,hv as g,xR as h,pv as i,R as j,gv as k,mv as l,vv as m,yv as n,cn as o,Xb as p,Wb as q,y as r,Sl as s,CT as t,gr as u,ab as v,B7 as w,$l as x,w8 as y,x4 as z};
|
|
299
|
+
`},EV={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function RV(e){let{announcements:t=EV,container:n,hiddenTextDescribedById:a,screenReaderInstructions:i=SV}=e;const{announce:s,announcement:c}=bV(),d=ud("DndLiveRegion"),[h,f]=y.useState(!1);if(y.useEffect(()=>{f(!0)},[]),xV(y.useMemo(()=>({onDragStart(m){let{active:b}=m;s(t.onDragStart({active:b}))},onDragMove(m){let{active:b,over:x}=m;t.onDragMove&&s(t.onDragMove({active:b,over:x}))},onDragOver(m){let{active:b,over:x}=m;s(t.onDragOver({active:b,over:x}))},onDragEnd(m){let{active:b,over:x}=m;s(t.onDragEnd({active:b,over:x}))},onDragCancel(m){let{active:b,over:x}=m;s(t.onDragCancel({active:b,over:x}))}}),[s,t])),!h)return null;const g=Le.createElement(Le.Fragment,null,Le.createElement(yV,{id:a,value:i.draggable}),Le.createElement(vV,{id:d,announcement:c}));return n?or.createPortal(g,n):g}var Vn;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(Vn||(Vn={}));function _h(){}function yy(e,t){return y.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function TV(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return y.useMemo(()=>[...t].filter(a=>a!=null),[...t])}const Sa=Object.freeze({x:0,y:0});function m2(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function p2(e,t){let{data:{value:n}}=e,{data:{value:a}}=t;return n-a}function CV(e,t){let{data:{value:n}}=e,{data:{value:a}}=t;return a-n}function PR(e){let{left:t,top:n,height:a,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+a},{x:t+i,y:n+a}]}function g2(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function UR(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}const a0=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:a}=e;const i=UR(t,t.left,t.top),s=[];for(const c of a){const{id:d}=c,h=n.get(d);if(h){const f=m2(UR(h),i);s.push({id:d,data:{droppableContainer:c,value:f}})}}return s.sort(p2)},OV=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:a}=e;const i=PR(t),s=[];for(const c of a){const{id:d}=c,h=n.get(d);if(h){const f=PR(h),g=i.reduce((b,x,w)=>b+m2(f[w],x),0),m=Number((g/4).toFixed(4));s.push({id:d,data:{droppableContainer:c,value:m}})}}return s.sort(p2)};function MV(e,t){const n=Math.max(t.top,e.top),a=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),s=Math.min(t.top+t.height,e.top+e.height),c=i-a,d=s-n;if(a<i&&n<s){const h=t.width*t.height,f=e.width*e.height,g=c*d,m=g/(h+f-g);return Number(m.toFixed(4))}return 0}const NV=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:a}=e;const i=[];for(const s of a){const{id:c}=s,d=n.get(c);if(d){const h=MV(d,t);h>0&&i.push({id:c,data:{droppableContainer:s,value:h}})}}return i.sort(CV)};function AV(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function y2(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Sa}function DV(e){return function(n){for(var a=arguments.length,i=new Array(a>1?a-1:0),s=1;s<a;s++)i[s-1]=arguments[s];return i.reduce((c,d)=>({...c,top:c.top+e*d.y,bottom:c.bottom+e*d.y,left:c.left+e*d.x,right:c.right+e*d.x}),{...n})}}const kV=DV(1);function jV(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function LV(e,t,n){const a=jV(t);if(!a)return e;const{scaleX:i,scaleY:s,x:c,y:d}=a,h=e.left-c-(1-i)*parseFloat(n),f=e.top-d-(1-s)*parseFloat(n.slice(n.indexOf(" ")+1)),g=i?e.width/i:e.width,m=s?e.height/s:e.height;return{width:g,height:m,top:f,right:h+g,bottom:f+m,left:h}}const _V={ignoreTransform:!1};function ic(e,t){t===void 0&&(t=_V);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:f,transformOrigin:g}=Nr(e).getComputedStyle(e);f&&(n=LV(n,f,g))}const{top:a,left:i,width:s,height:c,bottom:d,right:h}=n;return{top:a,left:i,width:s,height:c,bottom:d,right:h}}function HR(e){return ic(e,{ignoreTransform:!0})}function IV(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function zV(e,t){return t===void 0&&(t=Nr(e).getComputedStyle(e)),t.position==="fixed"}function PV(e,t){t===void 0&&(t=Nr(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(i=>{const s=t[i];return typeof s=="string"?n.test(s):!1})}function dm(e,t){const n=[];function a(i){if(t!=null&&n.length>=t||!i)return n;if(t0(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!ld(i)||d2(i)||n.includes(i))return n;const s=Nr(e).getComputedStyle(i);return i!==e&&PV(i,s)&&n.push(i),zV(i,s)?n:a(i.parentNode)}return e?a(e):n}function v2(e){const[t]=dm(e,1);return t??null}function vy(e){return!um||!e?null:ac(e)?e:e0(e)?t0(e)||e===oc(e).scrollingElement?window:ld(e)?e:null:null}function b2(e){return ac(e)?e.scrollX:e.scrollLeft}function x2(e){return ac(e)?e.scrollY:e.scrollTop}function Av(e){return{x:b2(e),y:x2(e)}}var Qn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(Qn||(Qn={}));function w2(e){return!um||!e?!1:e===document.scrollingElement}function S2(e){const t={x:0,y:0},n=w2(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},a={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},i=e.scrollTop<=t.y,s=e.scrollLeft<=t.x,c=e.scrollTop>=a.y,d=e.scrollLeft>=a.x;return{isTop:i,isLeft:s,isBottom:c,isRight:d,maxScroll:a,minScroll:t}}const UV={x:.2,y:.2};function HV(e,t,n,a,i){let{top:s,left:c,right:d,bottom:h}=n;a===void 0&&(a=10),i===void 0&&(i=UV);const{isTop:f,isBottom:g,isLeft:m,isRight:b}=S2(e),x={x:0,y:0},w={x:0,y:0},S={height:t.height*i.y,width:t.width*i.x};return!f&&s<=t.top+S.height?(x.y=Qn.Backward,w.y=a*Math.abs((t.top+S.height-s)/S.height)):!g&&h>=t.bottom-S.height&&(x.y=Qn.Forward,w.y=a*Math.abs((t.bottom-S.height-h)/S.height)),!b&&d>=t.right-S.width?(x.x=Qn.Forward,w.x=a*Math.abs((t.right-S.width-d)/S.width)):!m&&c<=t.left+S.width&&(x.x=Qn.Backward,w.x=a*Math.abs((t.left+S.width-c)/S.width)),{direction:x,speed:w}}function BV(e){if(e===document.scrollingElement){const{innerWidth:s,innerHeight:c}=window;return{top:0,left:0,right:s,bottom:c,width:s,height:c}}const{top:t,left:n,right:a,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:a,bottom:i,width:e.clientWidth,height:e.clientHeight}}function E2(e){return e.reduce((t,n)=>Rl(t,Av(n)),Sa)}function FV(e){return e.reduce((t,n)=>t+b2(n),0)}function VV(e){return e.reduce((t,n)=>t+x2(n),0)}function YV(e,t){if(t===void 0&&(t=ic),!e)return;const{top:n,left:a,bottom:i,right:s}=t(e);v2(e)&&(i<=0||s<=0||n>=window.innerHeight||a>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const qV=[["x",["left","right"],FV],["y",["top","bottom"],VV]];class o0{constructor(t,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const a=dm(n),i=E2(a);this.rect={...t},this.width=t.width,this.height=t.height;for(const[s,c,d]of qV)for(const h of c)Object.defineProperty(this,h,{get:()=>{const f=d(a),g=i[s]-f;return this.rect[h]+g},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Su{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var a;return(a=this.target)==null?void 0:a.removeEventListener(...n)})},this.target=t}add(t,n,a){var i;(i=this.target)==null||i.addEventListener(t,n,a),this.listeners.push([t,n,a])}}function $V(e){const{EventTarget:t}=Nr(e);return e instanceof t?e:oc(e)}function by(e,t){const n=Math.abs(e.x),a=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+a**2)>t:"x"in t&&"y"in t?n>t.x&&a>t.y:"x"in t?n>t.x:"y"in t?a>t.y:!1}var aa;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(aa||(aa={}));function BR(e){e.preventDefault()}function KV(e){e.stopPropagation()}var Qt;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"})(Qt||(Qt={}));const R2={start:[Qt.Space,Qt.Enter],cancel:[Qt.Esc],end:[Qt.Space,Qt.Enter,Qt.Tab]},GV=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case Qt.Right:return{...n,x:n.x+25};case Qt.Left:return{...n,x:n.x-25};case Qt.Down:return{...n,y:n.y+25};case Qt.Up:return{...n,y:n.y-25}}};class i0{constructor(t){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=t;const{event:{target:n}}=t;this.props=t,this.listeners=new Su(oc(n)),this.windowListeners=new Su(Nr(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(aa.Resize,this.handleCancel),this.windowListeners.add(aa.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(aa.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,a=t.node.current;a&&YV(a),n(Sa)}handleKeyDown(t){if(r0(t)){const{active:n,context:a,options:i}=this.props,{keyboardCodes:s=R2,coordinateGetter:c=GV,scrollBehavior:d="smooth"}=i,{code:h}=t;if(s.end.includes(h)){this.handleEnd(t);return}if(s.cancel.includes(h)){this.handleCancel(t);return}const{collisionRect:f}=a.current,g=f?{x:f.left,y:f.top}:Sa;this.referenceCoordinates||(this.referenceCoordinates=g);const m=c(t,{active:n,context:a.current,currentCoordinates:g});if(m){const b=zu(m,g),x={x:0,y:0},{scrollableAncestors:w}=a.current;for(const S of w){const E=t.code,{isTop:T,isRight:C,isLeft:M,isBottom:O,maxScroll:D,minScroll:k}=S2(S),A=BV(S),j={x:Math.min(E===Qt.Right?A.right-A.width/2:A.right,Math.max(E===Qt.Right?A.left:A.left+A.width/2,m.x)),y:Math.min(E===Qt.Down?A.bottom-A.height/2:A.bottom,Math.max(E===Qt.Down?A.top:A.top+A.height/2,m.y))},B=E===Qt.Right&&!C||E===Qt.Left&&!M,G=E===Qt.Down&&!O||E===Qt.Up&&!T;if(B&&j.x!==m.x){const K=S.scrollLeft+b.x,I=E===Qt.Right&&K<=D.x||E===Qt.Left&&K>=k.x;if(I&&!b.y){S.scrollTo({left:K,behavior:d});return}I?x.x=S.scrollLeft-K:x.x=E===Qt.Right?S.scrollLeft-D.x:S.scrollLeft-k.x,x.x&&S.scrollBy({left:-x.x,behavior:d});break}else if(G&&j.y!==m.y){const K=S.scrollTop+b.y,I=E===Qt.Down&&K<=D.y||E===Qt.Up&&K>=k.y;if(I&&!b.x){S.scrollTo({top:K,behavior:d});return}I?x.y=S.scrollTop-K:x.y=E===Qt.Down?S.scrollTop-D.y:S.scrollTop-k.y,x.y&&S.scrollBy({top:-x.y,behavior:d});break}}this.handleMove(t,Rl(zu(m,this.referenceCoordinates),x))}}}handleMove(t,n){const{onMove:a}=this.props;t.preventDefault(),a(n)}handleEnd(t){const{onEnd:n}=this.props;t.preventDefault(),this.detach(),n()}handleCancel(t){const{onCancel:n}=this.props;t.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}i0.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:a=R2,onActivation:i}=t,{active:s}=n;const{code:c}=e.nativeEvent;if(a.start.includes(c)){const d=s.activatorNode.current;return d&&e.target!==d?!1:(e.preventDefault(),i==null||i({event:e.nativeEvent}),!0)}return!1}}];function FR(e){return!!(e&&"distance"in e)}function VR(e){return!!(e&&"delay"in e)}class s0{constructor(t,n,a){var i;a===void 0&&(a=$V(t.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=t,this.events=n;const{event:s}=t,{target:c}=s;this.props=t,this.events=n,this.document=oc(c),this.documentListeners=new Su(this.document),this.listeners=new Su(a),this.windowListeners=new Su(Nr(c)),this.initialCoordinates=(i=Nv(s))!=null?i:Sa,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:t,props:{options:{activationConstraint:n,bypassActivationConstraint:a}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),t.cancel&&this.listeners.add(t.cancel.name,this.handleCancel),this.windowListeners.add(aa.Resize,this.handleCancel),this.windowListeners.add(aa.DragStart,BR),this.windowListeners.add(aa.VisibilityChange,this.handleCancel),this.windowListeners.add(aa.ContextMenu,BR),this.documentListeners.add(aa.Keydown,this.handleKeydown),n){if(a!=null&&a({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(VR(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(FR(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(t,n){const{active:a,onPending:i}=this.props;i(a,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(aa.Click,KV,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(aa.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:a,initialCoordinates:i,props:s}=this,{onMove:c,options:{activationConstraint:d}}=s;if(!i)return;const h=(n=Nv(t))!=null?n:Sa,f=zu(i,h);if(!a&&d){if(FR(d)){if(d.tolerance!=null&&by(f,d.tolerance))return this.handleCancel();if(by(f,d.distance))return this.handleStart()}if(VR(d)&&by(f,d.tolerance))return this.handleCancel();this.handlePending(d,f);return}t.cancelable&&t.preventDefault(),c(h)}handleEnd(){const{onAbort:t,onEnd:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleCancel(){const{onAbort:t,onCancel:n}=this.props;this.detach(),this.activated||t(this.props.active),n()}handleKeydown(t){t.code===Qt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const XV={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class T2 extends s0{constructor(t){const{event:n}=t,a=oc(n.target);super(t,XV,a)}}T2.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;return!n.isPrimary||n.button!==0?!1:(a==null||a({event:n}),!0)}}];const WV={move:{name:"mousemove"},end:{name:"mouseup"}};var Dv;(function(e){e[e.RightClick=2]="RightClick"})(Dv||(Dv={}));class C2 extends s0{constructor(t){super(t,WV,oc(t.event.target))}}C2.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;return n.button===Dv.RightClick?!1:(a==null||a({event:n}),!0)}}];const xy={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class O2 extends s0{constructor(t){super(t,xy)}static setup(){return window.addEventListener(xy.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(xy.move.name,t)};function t(){}}}O2.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;const{touches:i}=n;return i.length>1?!1:(a==null||a({event:n}),!0)}}];var Eu;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Eu||(Eu={}));var Ih;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Ih||(Ih={}));function QV(e){let{acceleration:t,activator:n=Eu.Pointer,canScroll:a,draggingRect:i,enabled:s,interval:c=5,order:d=Ih.TreeOrder,pointerCoordinates:h,scrollableAncestors:f,scrollableAncestorRects:g,delta:m,threshold:b}=e;const x=JV({delta:m,disabled:!s}),[w,S]=fV(),E=y.useRef({x:0,y:0}),T=y.useRef({x:0,y:0}),C=y.useMemo(()=>{switch(n){case Eu.Pointer:return h?{top:h.y,bottom:h.y,left:h.x,right:h.x}:null;case Eu.DraggableRect:return i}},[n,i,h]),M=y.useRef(null),O=y.useCallback(()=>{const k=M.current;if(!k)return;const A=E.current.x*T.current.x,j=E.current.y*T.current.y;k.scrollBy(A,j)},[]),D=y.useMemo(()=>d===Ih.TreeOrder?[...f].reverse():f,[d,f]);y.useEffect(()=>{if(!s||!f.length||!C){S();return}for(const k of D){if((a==null?void 0:a(k))===!1)continue;const A=f.indexOf(k),j=g[A];if(!j)continue;const{direction:B,speed:G}=HV(k,j,C,t,b);for(const K of["x","y"])x[K][B[K]]||(G[K]=0,B[K]=0);if(G.x>0||G.y>0){S(),M.current=k,w(O,c),E.current=G,T.current=B;return}}E.current={x:0,y:0},T.current={x:0,y:0},S()},[t,O,a,S,s,c,JSON.stringify(C),JSON.stringify(x),w,f,D,g,JSON.stringify(b)])}const ZV={x:{[Qn.Backward]:!1,[Qn.Forward]:!1},y:{[Qn.Backward]:!1,[Qn.Forward]:!1}};function JV(e){let{delta:t,disabled:n}=e;const a=Mv(t);return cd(i=>{if(n||!a||!i)return ZV;const s={x:Math.sign(t.x-a.x),y:Math.sign(t.y-a.y)};return{x:{[Qn.Backward]:i.x[Qn.Backward]||s.x===-1,[Qn.Forward]:i.x[Qn.Forward]||s.x===1},y:{[Qn.Backward]:i.y[Qn.Backward]||s.y===-1,[Qn.Forward]:i.y[Qn.Forward]||s.y===1}}},[n,t,a])}function e9(e,t){const n=t!=null?e.get(t):void 0,a=n?n.node.current:null;return cd(i=>{var s;return t==null?null:(s=a??i)!=null?s:null},[a,t])}function t9(e,t){return y.useMemo(()=>e.reduce((n,a)=>{const{sensor:i}=a,s=i.activators.map(c=>({eventName:c.eventName,handler:t(c.handler,a)}));return[...n,...s]},[]),[e,t])}var Pu;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(Pu||(Pu={}));var kv;(function(e){e.Optimized="optimized"})(kv||(kv={}));const YR=new Map;function n9(e,t){let{dragging:n,dependencies:a,config:i}=t;const[s,c]=y.useState(null),{frequency:d,measure:h,strategy:f}=i,g=y.useRef(e),m=E(),b=Iu(m),x=y.useCallback(function(T){T===void 0&&(T=[]),!b.current&&c(C=>C===null?T:C.concat(T.filter(M=>!C.includes(M))))},[b]),w=y.useRef(null),S=cd(T=>{if(m&&!n)return YR;if(!T||T===YR||g.current!==e||s!=null){const C=new Map;for(let M of e){if(!M)continue;if(s&&s.length>0&&!s.includes(M.id)&&M.rect.current){C.set(M.id,M.rect.current);continue}const O=M.node.current,D=O?new o0(h(O),O):null;M.rect.current=D,D&&C.set(M.id,D)}return C}return T},[e,s,n,m,h]);return y.useEffect(()=>{g.current=e},[e]),y.useEffect(()=>{m||x()},[n,m]),y.useEffect(()=>{s&&s.length>0&&c(null)},[JSON.stringify(s)]),y.useEffect(()=>{m||typeof d!="number"||w.current!==null||(w.current=setTimeout(()=>{x(),w.current=null},d))},[d,m,x,...a]),{droppableRects:S,measureDroppableContainers:x,measuringScheduled:s!=null};function E(){switch(f){case Pu.Always:return!1;case Pu.BeforeDragging:return n;default:return!n}}}function M2(e,t){return cd(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function r9(e,t){return M2(e,t)}function a9(e){let{callback:t,disabled:n}=e;const a=n0(t),i=y.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:s}=window;return new s(a)},[a,n]);return y.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function fm(e){let{callback:t,disabled:n}=e;const a=n0(t),i=y.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:s}=window;return new s(a)},[n]);return y.useEffect(()=>()=>i==null?void 0:i.disconnect(),[i]),i}function o9(e){return new o0(ic(e),e)}function qR(e,t,n){t===void 0&&(t=o9);const[a,i]=y.useState(null);function s(){i(h=>{if(!e)return null;if(e.isConnected===!1){var f;return(f=h??n)!=null?f:null}const g=t(e);return JSON.stringify(h)===JSON.stringify(g)?h:g})}const c=a9({callback(h){if(e)for(const f of h){const{type:g,target:m}=f;if(g==="childList"&&m instanceof HTMLElement&&m.contains(e)){s();break}}}}),d=fm({callback:s});return Fa(()=>{s(),e?(d==null||d.observe(e),c==null||c.observe(document.body,{childList:!0,subtree:!0})):(d==null||d.disconnect(),c==null||c.disconnect())},[e]),a}function i9(e){const t=M2(e);return y2(e,t)}const $R=[];function s9(e){const t=y.useRef(e),n=cd(a=>e?a&&a!==$R&&e&&t.current&&e.parentNode===t.current.parentNode?a:dm(e):$R,[e]);return y.useEffect(()=>{t.current=e},[e]),n}function l9(e){const[t,n]=y.useState(null),a=y.useRef(e),i=y.useCallback(s=>{const c=vy(s.target);c&&n(d=>d?(d.set(c,Av(c)),new Map(d)):null)},[]);return y.useEffect(()=>{const s=a.current;if(e!==s){c(s);const d=e.map(h=>{const f=vy(h);return f?(f.addEventListener("scroll",i,{passive:!0}),[f,Av(f)]):null}).filter(h=>h!=null);n(d.length?new Map(d):null),a.current=e}return()=>{c(e),c(s)};function c(d){d.forEach(h=>{const f=vy(h);f==null||f.removeEventListener("scroll",i)})}},[i,e]),y.useMemo(()=>e.length?t?Array.from(t.values()).reduce((s,c)=>Rl(s,c),Sa):E2(e):Sa,[e,t])}function KR(e,t){t===void 0&&(t=[]);const n=y.useRef(null);return y.useEffect(()=>{n.current=null},t),y.useEffect(()=>{const a=e!==Sa;a&&!n.current&&(n.current=e),!a&&n.current&&(n.current=null)},[e]),n.current?zu(e,n.current):Sa}function c9(e){y.useEffect(()=>{if(!um)return;const t=e.map(n=>{let{sensor:a}=n;return a.setup==null?void 0:a.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function u9(e,t){return y.useMemo(()=>e.reduce((n,a)=>{let{eventName:i,handler:s}=a;return n[i]=c=>{s(c,t)},n},{}),[e,t])}function N2(e){return y.useMemo(()=>e?IV(e):null,[e])}const GR=[];function d9(e,t){t===void 0&&(t=ic);const[n]=e,a=N2(n?Nr(n):null),[i,s]=y.useState(GR);function c(){s(()=>e.length?e.map(h=>w2(h)?a:new o0(t(h),h)):GR)}const d=fm({callback:c});return Fa(()=>{d==null||d.disconnect(),c(),e.forEach(h=>d==null?void 0:d.observe(h))},[e]),i}function f9(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return ld(t)?t:e}function h9(e){let{measure:t}=e;const[n,a]=y.useState(null),i=y.useCallback(f=>{for(const{target:g}of f)if(ld(g)){a(m=>{const b=t(g);return m?{...m,width:b.width,height:b.height}:b});break}},[t]),s=fm({callback:i}),c=y.useCallback(f=>{const g=f9(f);s==null||s.disconnect(),g&&(s==null||s.observe(g)),a(g?t(g):null)},[t,s]),[d,h]=Lh(c);return y.useMemo(()=>({nodeRef:d,rect:n,setRef:h}),[n,d,h])}const m9=[{sensor:T2,options:{}},{sensor:i0,options:{}}],p9={current:{}},uh={draggable:{measure:HR},droppable:{measure:HR,strategy:Pu.WhileDragging,frequency:kv.Optimized},dragOverlay:{measure:ic}};class Ru extends Map{get(t){var n;return t!=null&&(n=super.get(t))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(t=>{let{disabled:n}=t;return!n})}getNodeFor(t){var n,a;return(n=(a=this.get(t))==null?void 0:a.node.current)!=null?n:void 0}}const g9={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Ru,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:_h},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:uh,measureDroppableContainers:_h,windowRect:null,measuringScheduled:!1},y9={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:_h,draggableNodes:new Map,over:null,measureDroppableContainers:_h},hm=y.createContext(y9),A2=y.createContext(g9);function v9(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Ru}}}function b9(e,t){switch(t.type){case Vn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Vn.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Vn.DragEnd:case Vn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Vn.RegisterDroppable:{const{element:n}=t,{id:a}=n,i=new Ru(e.droppable.containers);return i.set(a,n),{...e,droppable:{...e.droppable,containers:i}}}case Vn.SetDroppableDisabled:{const{id:n,key:a,disabled:i}=t,s=e.droppable.containers.get(n);if(!s||a!==s.key)return e;const c=new Ru(e.droppable.containers);return c.set(n,{...s,disabled:i}),{...e,droppable:{...e.droppable,containers:c}}}case Vn.UnregisterDroppable:{const{id:n,key:a}=t,i=e.droppable.containers.get(n);if(!i||a!==i.key)return e;const s=new Ru(e.droppable.containers);return s.delete(n),{...e,droppable:{...e.droppable,containers:s}}}default:return e}}function x9(e){let{disabled:t}=e;const{active:n,activatorEvent:a,draggableNodes:i}=y.useContext(hm),s=Mv(a),c=Mv(n==null?void 0:n.id);return y.useEffect(()=>{if(!t&&!a&&s&&c!=null){if(!r0(s)||document.activeElement===s.target)return;const d=i.get(c);if(!d)return;const{activatorNode:h,node:f}=d;if(!h.current&&!f.current)return;requestAnimationFrame(()=>{for(const g of[h.current,f.current]){if(!g)continue;const m=pV(g);if(m){m.focus();break}}})}},[a,t,i,c,s]),null}function w9(e,t){let{transform:n,...a}=t;return e!=null&&e.length?e.reduce((i,s)=>s({transform:i,...a}),n):n}function S9(e){return y.useMemo(()=>({draggable:{...uh.draggable,...e==null?void 0:e.draggable},droppable:{...uh.droppable,...e==null?void 0:e.droppable},dragOverlay:{...uh.dragOverlay,...e==null?void 0:e.dragOverlay}}),[e==null?void 0:e.draggable,e==null?void 0:e.droppable,e==null?void 0:e.dragOverlay])}function E9(e){let{activeNode:t,measure:n,initialRect:a,config:i=!0}=e;const s=y.useRef(!1),{x:c,y:d}=typeof i=="boolean"?{x:i,y:i}:i;Fa(()=>{if(!c&&!d||!t){s.current=!1;return}if(s.current||!a)return;const f=t==null?void 0:t.node.current;if(!f||f.isConnected===!1)return;const g=n(f),m=y2(g,a);if(c||(m.x=0),d||(m.y=0),s.current=!0,Math.abs(m.x)>0||Math.abs(m.y)>0){const b=v2(f);b&&b.scrollBy({top:m.y,left:m.x})}},[t,c,d,a,n])}const D2=y.createContext({...Sa,scaleX:1,scaleY:1});var ti;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(ti||(ti={}));const l0=y.memo(function(t){var n,a,i,s;let{id:c,accessibility:d,autoScroll:h=!0,children:f,sensors:g=m9,collisionDetection:m=NV,measuring:b,modifiers:x,...w}=t;const S=y.useReducer(b9,void 0,v9),[E,T]=S,[C,M]=wV(),[O,D]=y.useState(ti.Uninitialized),k=O===ti.Initialized,{draggable:{active:A,nodes:j,translate:B},droppable:{containers:G}}=E,K=A!=null?j.get(A):null,I=y.useRef({initial:null,translated:null}),H=y.useMemo(()=>{var lt;return A!=null?{id:A,data:(lt=K==null?void 0:K.data)!=null?lt:p9,rect:I}:null},[A,K]),F=y.useRef(null),[V,L]=y.useState(null),[_,z]=y.useState(null),Y=Iu(w,Object.values(w)),Q=ud("DndDescribedBy",c),P=y.useMemo(()=>G.getEnabled(),[G]),q=S9(b),{droppableRects:W,measureDroppableContainers:X,measuringScheduled:ce}=n9(P,{dragging:k,dependencies:[B.x,B.y],config:q.droppable}),ie=e9(j,A),de=y.useMemo(()=>_?Nv(_):null,[_]),ve=et(),Se=r9(ie,q.draggable.measure);E9({activeNode:A!=null?j.get(A):null,config:ve.layoutShiftCompensation,initialRect:Se,measure:q.draggable.measure});const Me=qR(ie,q.draggable.measure,Se),ke=qR(ie?ie.parentElement:null),J=y.useRef({activatorEvent:null,active:null,activeNode:ie,collisionRect:null,collisions:null,droppableRects:W,draggableNodes:j,draggingNode:null,draggingNodeRect:null,droppableContainers:G,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ue=G.getNodeFor((n=J.current.over)==null?void 0:n.id),pe=h9({measure:q.dragOverlay.measure}),De=(a=pe.nodeRef.current)!=null?a:ie,Ce=k?(i=pe.rect)!=null?i:Me:null,we=!!(pe.nodeRef.current&&pe.rect),Te=i9(we?null:Me),Z=N2(De?Nr(De):null),be=s9(k?ue??ie:null),ge=d9(be),Pe=w9(x,{transform:{x:B.x-Te.x,y:B.y-Te.y,scaleX:1,scaleY:1},activatorEvent:_,active:H,activeNodeRect:Me,containerNodeRect:ke,draggingNodeRect:Ce,over:J.current.over,overlayNodeRect:pe.rect,scrollableAncestors:be,scrollableAncestorRects:ge,windowRect:Z}),Be=de?Rl(de,B):null,Ae=l9(be),it=KR(Ae),wt=KR(Ae,[Me]),xt=Rl(Pe,it),oe=Ce?kV(Ce,Pe):null,xe=H&&oe?m({active:H,collisionRect:oe,droppableRects:W,droppableContainers:P,pointerCoordinates:Be}):null,Ie=g2(xe,"id"),[qe,Ke]=y.useState(null),st=we?Pe:Rl(Pe,wt),ze=AV(st,(s=qe==null?void 0:qe.rect)!=null?s:null,Me),Je=y.useRef(null),ft=y.useCallback((lt,mt)=>{let{sensor:Ve,options:Et}=mt;if(F.current==null)return;const Dt=j.get(F.current);if(!Dt)return;const St=lt.nativeEvent,rn=new Ve({active:F.current,activeNode:Dt,event:St,options:Et,context:J,onAbort(Xe){if(!j.get(Xe))return;const{onDragAbort:$}=Y.current,ne={id:Xe};$==null||$(ne),C({type:"onDragAbort",event:ne})},onPending(Xe,Rt,$,ne){if(!j.get(Xe))return;const{onDragPending:Ee}=Y.current,je={id:Xe,constraint:Rt,initialCoordinates:$,offset:ne};Ee==null||Ee(je),C({type:"onDragPending",event:je})},onStart(Xe){const Rt=F.current;if(Rt==null)return;const $=j.get(Rt);if(!$)return;const{onDragStart:ne}=Y.current,le={activatorEvent:St,active:{id:Rt,data:$.data,rect:I}};or.unstable_batchedUpdates(()=>{ne==null||ne(le),D(ti.Initializing),T({type:Vn.DragStart,initialCoordinates:Xe,active:Rt}),C({type:"onDragStart",event:le}),L(Je.current),z(St)})},onMove(Xe){T({type:Vn.DragMove,coordinates:Xe})},onEnd:It(Vn.DragEnd),onCancel:It(Vn.DragCancel)});Je.current=rn;function It(Xe){return async function(){const{active:$,collisions:ne,over:le,scrollAdjustedTranslate:Ee}=J.current;let je=null;if($&&Ee){const{cancelDrop:Ze}=Y.current;je={activatorEvent:St,active:$,collisions:ne,delta:Ee,over:le},Xe===Vn.DragEnd&&typeof Ze=="function"&&await Promise.resolve(Ze(je))&&(Xe=Vn.DragCancel)}F.current=null,or.unstable_batchedUpdates(()=>{T({type:Xe}),D(ti.Uninitialized),Ke(null),L(null),z(null),Je.current=null;const Ze=Xe===Vn.DragEnd?"onDragEnd":"onDragCancel";if(je){const Qe=Y.current[Ze];Qe==null||Qe(je),C({type:Ze,event:je})}})}}},[j]),jt=y.useCallback((lt,mt)=>(Ve,Et)=>{const Dt=Ve.nativeEvent,St=j.get(Et);if(F.current!==null||!St||Dt.dndKit||Dt.defaultPrevented)return;const rn={active:St};lt(Ve,mt.options,rn)===!0&&(Dt.dndKit={capturedBy:mt.sensor},F.current=Et,ft(Ve,mt))},[j,ft]),nn=t9(g,jt);c9(g),Fa(()=>{Me&&O===ti.Initializing&&D(ti.Initialized)},[Me,O]),y.useEffect(()=>{const{onDragMove:lt}=Y.current,{active:mt,activatorEvent:Ve,collisions:Et,over:Dt}=J.current;if(!mt||!Ve)return;const St={active:mt,activatorEvent:Ve,collisions:Et,delta:{x:xt.x,y:xt.y},over:Dt};or.unstable_batchedUpdates(()=>{lt==null||lt(St),C({type:"onDragMove",event:St})})},[xt.x,xt.y]),y.useEffect(()=>{const{active:lt,activatorEvent:mt,collisions:Ve,droppableContainers:Et,scrollAdjustedTranslate:Dt}=J.current;if(!lt||F.current==null||!mt||!Dt)return;const{onDragOver:St}=Y.current,rn=Et.get(Ie),It=rn&&rn.rect.current?{id:rn.id,rect:rn.rect.current,data:rn.data,disabled:rn.disabled}:null,Xe={active:lt,activatorEvent:mt,collisions:Ve,delta:{x:Dt.x,y:Dt.y},over:It};or.unstable_batchedUpdates(()=>{Ke(It),St==null||St(Xe),C({type:"onDragOver",event:Xe})})},[Ie]),Fa(()=>{J.current={activatorEvent:_,active:H,activeNode:ie,collisionRect:oe,collisions:xe,droppableRects:W,draggableNodes:j,draggingNode:De,draggingNodeRect:Ce,droppableContainers:G,over:qe,scrollableAncestors:be,scrollAdjustedTranslate:xt},I.current={initial:Ce,translated:oe}},[H,ie,xe,oe,j,De,Ce,W,G,qe,be,xt]),QV({...ve,delta:B,draggingRect:oe,pointerCoordinates:Be,scrollableAncestors:be,scrollableAncestorRects:ge});const ht=y.useMemo(()=>({active:H,activeNode:ie,activeNodeRect:Me,activatorEvent:_,collisions:xe,containerNodeRect:ke,dragOverlay:pe,draggableNodes:j,droppableContainers:G,droppableRects:W,over:qe,measureDroppableContainers:X,scrollableAncestors:be,scrollableAncestorRects:ge,measuringConfiguration:q,measuringScheduled:ce,windowRect:Z}),[H,ie,Me,_,xe,ke,pe,j,G,W,qe,X,be,ge,q,ce,Z]),Ct=y.useMemo(()=>({activatorEvent:_,activators:nn,active:H,activeNodeRect:Me,ariaDescribedById:{draggable:Q},dispatch:T,draggableNodes:j,over:qe,measureDroppableContainers:X}),[_,nn,H,Me,T,Q,j,qe,X]);return Le.createElement(h2.Provider,{value:M},Le.createElement(hm.Provider,{value:Ct},Le.createElement(A2.Provider,{value:ht},Le.createElement(D2.Provider,{value:ze},f)),Le.createElement(x9,{disabled:(d==null?void 0:d.restoreFocus)===!1})),Le.createElement(RV,{...d,hiddenTextDescribedById:Q}));function et(){const lt=(V==null?void 0:V.autoScrollEnabled)===!1,mt=typeof h=="object"?h.enabled===!1:h===!1,Ve=k&&!lt&&!mt;return typeof h=="object"?{...h,enabled:Ve}:{enabled:Ve}}}),R9=y.createContext(null),XR="button",T9="Draggable";function C9(e){let{id:t,data:n,disabled:a=!1,attributes:i}=e;const s=ud(T9),{activators:c,activatorEvent:d,active:h,activeNodeRect:f,ariaDescribedById:g,draggableNodes:m,over:b}=y.useContext(hm),{role:x=XR,roleDescription:w="draggable",tabIndex:S=0}=i??{},E=(h==null?void 0:h.id)===t,T=y.useContext(E?D2:R9),[C,M]=Lh(),[O,D]=Lh(),k=u9(c,t),A=Iu(n);Fa(()=>(m.set(t,{id:t,key:s,node:C,activatorNode:O,data:A}),()=>{const B=m.get(t);B&&B.key===s&&m.delete(t)}),[m,t]);const j=y.useMemo(()=>({role:x,tabIndex:S,"aria-disabled":a,"aria-pressed":E&&x===XR?!0:void 0,"aria-roledescription":w,"aria-describedby":g.draggable}),[a,x,S,E,w,g.draggable]);return{active:h,activatorEvent:d,activeNodeRect:f,attributes:j,isDragging:E,listeners:a?void 0:k,node:C,over:b,setNodeRef:M,setActivatorNodeRef:D,transform:T}}function O9(){return y.useContext(A2)}const M9="Droppable",N9={timeout:25};function A9(e){let{data:t,disabled:n=!1,id:a,resizeObserverConfig:i}=e;const s=ud(M9),{active:c,dispatch:d,over:h,measureDroppableContainers:f}=y.useContext(hm),g=y.useRef({disabled:n}),m=y.useRef(!1),b=y.useRef(null),x=y.useRef(null),{disabled:w,updateMeasurementsFor:S,timeout:E}={...N9,...i},T=Iu(S??a),C=y.useCallback(()=>{if(!m.current){m.current=!0;return}x.current!=null&&clearTimeout(x.current),x.current=setTimeout(()=>{f(Array.isArray(T.current)?T.current:[T.current]),x.current=null},E)},[E]),M=fm({callback:C,disabled:w||!c}),O=y.useCallback((j,B)=>{M&&(B&&(M.unobserve(B),m.current=!1),j&&M.observe(j))},[M]),[D,k]=Lh(O),A=Iu(t);return y.useEffect(()=>{!M||!D.current||(M.disconnect(),m.current=!1,M.observe(D.current))},[D,M]),y.useEffect(()=>(d({type:Vn.RegisterDroppable,element:{id:a,key:s,disabled:n,node:D,rect:b,data:A}}),()=>d({type:Vn.UnregisterDroppable,key:s,id:a})),[a]),y.useEffect(()=>{n!==g.current.disabled&&(d({type:Vn.SetDroppableDisabled,id:a,key:s,disabled:n}),g.current.disabled=n)},[a,s,n,d]),{active:c,rect:b,isOver:(h==null?void 0:h.id)===a,node:D,over:h,setNodeRef:k}}function dd(e,t,n){const a=e.slice();return a.splice(n<0?a.length+n:n,0,a.splice(t,1)[0]),a}function D9(e,t){return e.reduce((n,a,i)=>{const s=t.get(a);return s&&(n[i]=s),n},Array(e.length))}function Gf(e){return e!==null&&e>=0}function k9(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function j9(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const k2=e=>{let{rects:t,activeIndex:n,overIndex:a,index:i}=e;const s=dd(t,a,n),c=t[i],d=s[i];return!d||!c?null:{x:d.left-c.left,y:d.top-c.top,scaleX:d.width/c.width,scaleY:d.height/c.height}},Xf={scaleX:1,scaleY:1},c0=e=>{var t;let{activeIndex:n,activeNodeRect:a,index:i,rects:s,overIndex:c}=e;const d=(t=s[n])!=null?t:a;if(!d)return null;if(i===n){const f=s[c];return f?{x:0,y:n<c?f.top+f.height-(d.top+d.height):f.top-d.top,...Xf}:null}const h=L9(s,i,n);return i>n&&i<=c?{x:0,y:-d.height-h,...Xf}:i<n&&i>=c?{x:0,y:d.height+h,...Xf}:{x:0,y:0,...Xf}};function L9(e,t,n){const a=e[t],i=e[t-1],s=e[t+1];return a?n<t?i?a.top-(i.top+i.height):s?s.top-(a.top+a.height):0:s?s.top-(a.top+a.height):i?a.top-(i.top+i.height):0:0}const j2="Sortable",L2=Le.createContext({activeIndex:-1,containerId:j2,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:k2,disabled:{draggable:!1,droppable:!1}});function u0(e){let{children:t,id:n,items:a,strategy:i=k2,disabled:s=!1}=e;const{active:c,dragOverlay:d,droppableRects:h,over:f,measureDroppableContainers:g}=O9(),m=ud(j2,n),b=d.rect!==null,x=y.useMemo(()=>a.map(k=>typeof k=="object"&&"id"in k?k.id:k),[a]),w=c!=null,S=c?x.indexOf(c.id):-1,E=f?x.indexOf(f.id):-1,T=y.useRef(x),C=!k9(x,T.current),M=E!==-1&&S===-1||C,O=j9(s);Fa(()=>{C&&w&&g(x)},[C,x,w,g]),y.useEffect(()=>{T.current=x},[x]);const D=y.useMemo(()=>({activeIndex:S,containerId:m,disabled:O,disableTransforms:M,items:x,overIndex:E,useDragOverlay:b,sortedRects:D9(x,h),strategy:i}),[S,m,O.draggable,O.droppable,M,x,E,h,b,i]);return Le.createElement(L2.Provider,{value:D},t)}const _9=e=>{let{id:t,items:n,activeIndex:a,overIndex:i}=e;return dd(n,a,i).indexOf(t)},I9=e=>{let{containerId:t,isSorting:n,wasDragging:a,index:i,items:s,newIndex:c,previousItems:d,previousContainerId:h,transition:f}=e;return!f||!a||d!==s&&i===c?!1:n?!0:c!==i&&t===h},z9={duration:200,easing:"ease"},_2="transform",P9=Rs.Transition.toString({property:_2,duration:0,easing:"linear"}),U9={roleDescription:"sortable"};function H9(e){let{disabled:t,index:n,node:a,rect:i}=e;const[s,c]=y.useState(null),d=y.useRef(n);return Fa(()=>{if(!t&&n!==d.current&&a.current){const h=i.current;if(h){const f=ic(a.current,{ignoreTransform:!0}),g={x:h.left-f.left,y:h.top-f.top,scaleX:h.width/f.width,scaleY:h.height/f.height};(g.x||g.y)&&c(g)}}n!==d.current&&(d.current=n)},[t,n,a,i]),y.useEffect(()=>{s&&c(null)},[s]),s}function d0(e){let{animateLayoutChanges:t=I9,attributes:n,disabled:a,data:i,getNewIndex:s=_9,id:c,strategy:d,resizeObserverConfig:h,transition:f=z9}=e;const{items:g,containerId:m,activeIndex:b,disabled:x,disableTransforms:w,sortedRects:S,overIndex:E,useDragOverlay:T,strategy:C}=y.useContext(L2),M=B9(a,x),O=g.indexOf(c),D=y.useMemo(()=>({sortable:{containerId:m,index:O,items:g},...i}),[m,i,O,g]),k=y.useMemo(()=>g.slice(g.indexOf(c)),[g,c]),{rect:A,node:j,isOver:B,setNodeRef:G}=A9({id:c,data:D,disabled:M.droppable,resizeObserverConfig:{updateMeasurementsFor:k,...h}}),{active:K,activatorEvent:I,activeNodeRect:H,attributes:F,setNodeRef:V,listeners:L,isDragging:_,over:z,setActivatorNodeRef:Y,transform:Q}=C9({id:c,data:D,attributes:{...U9,...n},disabled:M.draggable}),P=dV(G,V),q=!!K,W=q&&!w&&Gf(b)&&Gf(E),X=!T&&_,ce=X&&W?Q:null,de=W?ce??(d??C)({rects:S,activeNodeRect:H,activeIndex:b,overIndex:E,index:O}):null,ve=Gf(b)&&Gf(E)?s({id:c,items:g,activeIndex:b,overIndex:E}):O,Se=K==null?void 0:K.id,Me=y.useRef({activeId:Se,items:g,newIndex:ve,containerId:m}),ke=g!==Me.current.items,J=t({active:K,containerId:m,isDragging:_,isSorting:q,id:c,index:O,items:g,newIndex:Me.current.newIndex,previousItems:Me.current.items,previousContainerId:Me.current.containerId,transition:f,wasDragging:Me.current.activeId!=null}),ue=H9({disabled:!J,index:O,node:j,rect:A});return y.useEffect(()=>{q&&Me.current.newIndex!==ve&&(Me.current.newIndex=ve),m!==Me.current.containerId&&(Me.current.containerId=m),g!==Me.current.items&&(Me.current.items=g)},[q,ve,m,g]),y.useEffect(()=>{if(Se===Me.current.activeId)return;if(Se!=null&&Me.current.activeId==null){Me.current.activeId=Se;return}const De=setTimeout(()=>{Me.current.activeId=Se},50);return()=>clearTimeout(De)},[Se]),{active:K,activeIndex:b,attributes:F,data:D,rect:A,index:O,newIndex:ve,items:g,isOver:B,isSorting:q,isDragging:_,listeners:L,node:j,overIndex:E,over:z,setNodeRef:P,setActivatorNodeRef:Y,setDroppableNodeRef:G,setDraggableNodeRef:V,transform:ue??de,transition:pe()};function pe(){if(ue||ke&&Me.current.newIndex===O)return P9;if(!(X&&!r0(I)||!f)&&(q||J))return Rs.Transition.toString({...f,property:_2})}}function B9(e,t){var n,a;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(a=e==null?void 0:e.droppable)!=null?a:t.droppable}}function zh(e){if(!e)return!1;const t=e.data.current;return!!(t&&"sortable"in t&&typeof t.sortable=="object"&&"containerId"in t.sortable&&"items"in t.sortable&&"index"in t.sortable)}const F9=[Qt.Down,Qt.Right,Qt.Up,Qt.Left],V9=(e,t)=>{let{context:{active:n,collisionRect:a,droppableRects:i,droppableContainers:s,over:c,scrollableAncestors:d}}=t;if(F9.includes(e.code)){if(e.preventDefault(),!n||!a)return;const h=[];s.getEnabled().forEach(m=>{if(!m||m!=null&&m.disabled)return;const b=i.get(m.id);if(b)switch(e.code){case Qt.Down:a.top<b.top&&h.push(m);break;case Qt.Up:a.top>b.top&&h.push(m);break;case Qt.Left:a.left>b.left&&h.push(m);break;case Qt.Right:a.left<b.left&&h.push(m);break}});const f=OV({collisionRect:a,droppableRects:i,droppableContainers:h});let g=g2(f,"id");if(g===(c==null?void 0:c.id)&&f.length>1&&(g=f[1].id),g!=null){const m=s.get(n.id),b=s.get(g),x=b?i.get(b.id):null,w=b==null?void 0:b.node.current;if(w&&x&&m&&b){const E=dm(w).some((k,A)=>d[A]!==k),T=I2(m,b),C=Y9(m,b),M=E||!T?{x:0,y:0}:{x:C?a.width-x.width:0,y:C?a.height-x.height:0},O={x:x.left,y:x.top};return M.x&&M.y?O:zu(O,M)}}}};function I2(e,t){return!zh(e)||!zh(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Y9(e,t){return!zh(e)||!zh(t)||!I2(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}function q9(){const e=vs.getState().settings;return(e==null?void 0:e.siteName)||"tmex"}function WR(e){const t=e==null?void 0:e.trim();return t&&t.length>0?t:"?"}function $7({paneIdx:e,windowIdx:t,paneTitle:n,windowName:a,windowCustomName:i,deviceName:s}){const c=t??"?",d=e??"?",h=WR(i??n??a),f=WR(s);return`${c}/${d}: ${h}@${f}`}function f0(e){var d,h;const t=(d=e.customName)==null?void 0:d.trim(),n=e.panes.find(f=>f.active)??e.panes[0],a=e.name.trim(),i=(h=n==null?void 0:n.title)==null?void 0:h.trim(),s=t||i||a;return{title:s,processName:!!a&&a!==s?a:void 0}}function $9(e){const{title:t,processName:n}=f0(e);return n?`${n}: ${t}`:t}function K7(e){const t=q9();return e!=null&&e.trim()?`[${t}]${e}`:t}function G7(e){return e}function z2(e){return encodeURIComponent(e)}function P2({status:e}){return R.jsx("span",{className:_e("size-2 shrink-0 rounded-full",e==="running"?"bg-emerald-500 animate-pulse":e==="error"?"bg-destructive":e==="waiting_confirmation"?"bg-amber-500":"bg-muted-foreground/40")})}function h0(){return TV(yy(C2,{activationConstraint:{distance:8}}),yy(O2,{activationConstraint:{delay:250,tolerance:5}}),yy(i0,{coordinateGetter:V9}))}function K9(){const{t:e}=gr(),t=Va(),n=Xv(),{isMobile:a,setOpenMobile:i}=Yr(),{toggleDevice:s}=PB(),c=Ji(oe=>oe.sessions),d=Ji(oe=>oe.activeSessionId),h=Fr(oe=>oe.setSidebarTab);y.useEffect(()=>{const oe=Ji.getState();oe.ensureInitialized(),oe.loadSessions()},[]);const f=Pl("/devices/:deviceId/windows/:windowId/panes/:paneId",t.pathname),g=f==null?void 0:f.params.deviceId,m=f==null?void 0:f.params.windowId,b=f==null?void 0:f.params.paneId,x=xn(oe=>oe.snapshots),w=xn(oe=>oe.connectedDevices),S=xn(oe=>oe.closeWindow),E=xn(oe=>oe.closePane),T=xn(oe=>oe.renameWindow),C=vs(oe=>{var xe;return((xe=oe.settings)==null?void 0:xe.language)??"en_US"}),{data:M}=Ku({queryKey:["devices"],queryFn:async()=>{const oe=await fetch("/api/devices");if(!oe.ok)throw new Error("Failed to fetch devices");return oe.json()},throwOnError:!1}),O=xn(oe=>oe.hydrateDeviceErrors);y.useEffect(()=>{M!=null&&M.devices&&O(M.devices.map(oe=>({deviceId:oe.id,lastError:oe.lastError??null,lastErrorType:oe.lastErrorType??null})))},[M,O]);const D=y.useCallback((oe,xe)=>{n(oe,{replace:(xe==null?void 0:xe.replace)??!0}),a&&!(xe!=null&&xe.keepSidebarOpen)&&i(!1)},[n,a,i]),k=y.useCallback((oe,xe,Ie,qe)=>{G.current=null,window.dispatchEvent(new CustomEvent("tmex:user-initiated-selection",{detail:{deviceId:oe,windowId:xe,paneId:Ie}})),D(`/devices/${oe}/windows/${xe}/panes/${z2(Ie)}`,{keepSidebarOpen:qe==null?void 0:qe.keepSidebarOpen})},[D]),A=y.useCallback(oe=>{var xe,Ie;if(Ji.getState().setActiveSession(oe.id),h("agent"),oe.deviceId&&oe.paneId){const qe=(Ie=(xe=xn.getState().snapshots[oe.deviceId])==null?void 0:xe.session)==null?void 0:Ie.windows,Ke=qe==null?void 0:qe.find(st=>st.panes.some(ze=>ze.id===oe.paneId));Ke&&k(oe.deviceId,Ke.id,oe.paneId,{keepSidebarOpen:!0})}},[h,k]),j=y.useCallback((oe,xe,Ie)=>{k(oe,xe,Ie.id,{keepSidebarOpen:!0}),Ji.getState().startDraft(oe,Ie.id,Ie.title??null),h("agent")},[k,h]),B=xn(oe=>oe.selectWindow),G=y.useRef(null);y.useEffect(()=>{var Je,ft;const oe=G.current;if(!oe)return;if(Date.now()-oe.at>5e3){G.current=null;return}const{deviceId:xe,windowId:Ie}=oe,qe=x[xe],Ke=(Je=qe==null?void 0:qe.session)==null?void 0:Je.windows;if(!Ke)return;const st=Ke.find(jt=>jt.id===Ie);if(!((ft=st==null?void 0:st.panes)!=null&&ft.length))return;G.current=null;const ze=st.panes.find(jt=>jt.active)??st.panes[0];k(xe,Ie,ze.id)},[x,k]);const K=y.useCallback((oe,xe,Ie)=>{B(oe,xe);const qe=Ie.find(Ke=>Ke.active)??Ie[0];qe?(k(oe,xe,qe.id),G.current=null):G.current={deviceId:oe,windowId:xe,at:Date.now()}},[k,B]),I=y.useCallback((oe,xe)=>{xe?oe===g&&D("/devices"):D(`/devices/${oe}`),s(oe,xe)},[s,g,D]),H=y.useCallback((oe,xe)=>{oe===g&&xe===m&&D("/devices"),S(oe,xe)},[S,g,m,D]),[F,V]=y.useState(null),L=y.useCallback((oe,xe)=>{var Ke,st;const Ie=(st=(Ke=xn.getState().snapshots[oe])==null?void 0:Ke.session)==null?void 0:st.windows,qe=Ie==null?void 0:Ie.find(ze=>ze.id===xe);V({kind:"window",deviceId:oe,windowId:xe,name:qe?$9(qe):""})},[]),_=y.useCallback((oe,xe,Ie)=>{var st,ze,Je,ft;const qe=(ze=(st=xn.getState().snapshots[oe])==null?void 0:st.session)==null?void 0:ze.windows,Ke=(ft=(Je=qe==null?void 0:qe.find(jt=>jt.id===xe))==null?void 0:Je.panes)==null?void 0:ft.find(jt=>jt.id===Ie);V({kind:"pane",deviceId:oe,paneId:Ie,name:(Ke==null?void 0:Ke.title)||`Pane ${(Ke==null?void 0:Ke.index)??""}`})},[]),z=y.useCallback(()=>{F&&(F.kind==="window"?H(F.deviceId,F.windowId):E(F.deviceId,F.paneId),V(null))},[F,H,E]),[Y,Q]=y.useState(null),[P,q]=y.useState(""),W=y.useCallback((oe,xe)=>{var Ke,st;const Ie=(st=(Ke=xn.getState().snapshots[oe])==null?void 0:Ke.session)==null?void 0:st.windows,qe=Ie==null?void 0:Ie.find(ze=>ze.id===xe);qe&&(q(qe.customName??f0(qe).title),Q({deviceId:oe,windowId:xe,hasCustomName:!!qe.customName}))},[]),X=y.useCallback(()=>{if(!Y)return;const oe=P.trim();oe&&(T(Y.deviceId,Y.windowId,oe),Q(null))},[Y,P,T]),ce=y.useCallback(()=>{Y&&(T(Y.deviceId,Y.windowId,""),Q(null))},[Y,T]),ie=y.useCallback(oe=>{xn.getState().createWindow(oe)},[]),[de,ve]=y.useState(null),Se=y.useCallback((oe,xe)=>{ve({deviceId:oe,paneId:xe})},[]),[Me,ke]=y.useState(null),[J,ue]=y.useState(""),[pe,De]=y.useState(null),Ce=y.useCallback(oe=>{ue(oe.title),ke(oe)},[]),we=y.useCallback(()=>{if(!Me)return;const oe=J.trim();oe&&(Ji.getState().renameSession(Me.id,oe),ke(null))},[Me,J]),Te=y.useCallback(oe=>{De(oe)},[]),Z=y.useCallback(()=>{pe&&(Ji.getState().deleteSession(pe.id),De(null))},[pe]),be=$u(),ge=h0(),Pe=Cu({mutationFn:async oe=>{const xe=await fetch("/api/devices/order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceIds:oe})});if(!xe.ok)throw new Error("Failed to reorder devices");return xe.json()},onMutate:async oe=>{await be.cancelQueries({queryKey:["devices"]});const xe=be.getQueryData(["devices"]);if(xe){const Ie=new Map(xe.devices.map(st=>[st.id,st])),qe=oe.map((st,ze)=>{const Je=Ie.get(st);return Je?{...Je,sortOrder:ze}:void 0}).filter(st=>st!==void 0),Ke=xe.devices.filter(st=>!oe.includes(st.id));be.setQueryData(["devices"],{devices:[...qe,...Ke]})}return{previous:xe}},onError:(oe,xe,Ie)=>{Ie!=null&&Ie.previous&&be.setQueryData(["devices"],Ie.previous),cn.error(e("device.reorderFailed"))},onSettled:()=>{be.invalidateQueries({queryKey:["devices"]})}}),Be=(M==null?void 0:M.devices)??[],Ae=y.useMemo(()=>[...Be].sort((oe,xe)=>oe.sortOrder-xe.sortOrder||oe.name.localeCompare(xe.name,CT(C),{numeric:!0,sensitivity:"base"})),[Be,C]),it=y.useCallback(oe=>{const{active:xe,over:Ie}=oe;if(!Ie||xe.id===Ie.id)return;const qe=Ae.map(ze=>ze.id),Ke=qe.indexOf(String(xe.id)),st=qe.indexOf(String(Ie.id));Ke<0||st<0||Pe.mutate(dd(qe,Ke,st))},[Ae,Pe]),{sessionsByPane:wt,orphanSessions:xt}=y.useMemo(()=>{const oe=new Set(Be.map(Ke=>Ke.id)),xe=new Map,Ie=[],qe=Object.values(c).filter(Ke=>!!Ke).sort((Ke,st)=>Ke.updatedAt<st.updatedAt?1:-1);for(const Ke of qe){if(!Ke.deviceId||!Ke.paneId||!oe.has(Ke.deviceId)){Ie.push(Ke);continue}const st=`${Ke.deviceId}:${Ke.paneId}`,ze=xe.get(st);ze?ze.push(Ke):xe.set(st,[Ke])}return{sessionsByPane:xe,orphanSessions:Ie}},[c,Be]);return R.jsxs(vM,{className:"flex flex-col flex-1 min-h-0 pt-0",children:[R.jsx(l0,{sensors:ge,collisionDetection:a0,onDragEnd:it,children:R.jsx(dF,{className:"flex-1 min-h-0",children:R.jsxs("div",{className:"space-y-1.5 pb-2 pt-1 select-none [-webkit-user-select:none] [-webkit-touch-callout:none]",children:[R.jsx(u0,{items:Ae.map(oe=>oe.id),strategy:c0,children:Ae.map(oe=>{var xe,Ie;return R.jsx(G9,{device:oe,windows:((Ie=(xe=x[oe.id])==null?void 0:xe.session)==null?void 0:Ie.windows)??null,isConnected:w.has(oe.id),isSelected:oe.id===g,selectedWindowId:m,selectedPaneId:b,onConnectToggle:()=>I(oe.id,w.has(oe.id)),onCreateWindow:ie,onCloseWindow:L,onClosePane:_,onRenameWindow:W,onPaneClick:k,onWindowClick:K,onWatchPane:Se,sessionsByPane:wt,activeSessionId:d,onSelectSession:A,onCreateSessionForPane:j,onRenameSession:Ce,onDeleteSession:Te},oe.id)})}),Ae.length===0&&R.jsx("div",{className:"text-center text-sm text-muted-foreground py-4",children:e("sidebar.noDevices")}),xt.length>0&&R.jsx(Q9,{sessions:xt,activeSessionId:d,onSelectSession:A,onRenameSession:Ce,onDeleteSession:Te})]})})}),R.jsx(dv,{open:F!==null,onOpenChange:oe=>!oe&&V(null),children:R.jsxs(fv,{children:[R.jsxs(hv,{children:[R.jsx(xR,{className:"bg-destructive/10",children:R.jsx(Hl,{className:"h-5 w-5 text-destructive"})}),R.jsx(pv,{children:(F==null?void 0:F.kind)==="pane"?e("window.closePaneConfirmTitle"):e("window.closeConfirmTitle")}),R.jsx(gv,{children:e("window.closeConfirmDesc",{name:(F==null?void 0:F.name)??""})})]}),R.jsxs(mv,{children:[R.jsx(vv,{children:e("common.cancel")}),R.jsx(yv,{variant:"destructive",disabled:!F,onClick:z,children:e("common.close")})]})]})}),R.jsx(bv,{open:Y!==null,onOpenChange:oe=>!oe&&Q(null),children:R.jsx(xv,{"data-testid":"window-rename-dialog",children:R.jsxs("form",{onSubmit:oe=>{oe.preventDefault(),X()},children:[R.jsxs(wv,{children:[R.jsx(Sv,{children:e("window.rename")}),R.jsx(_M,{children:e("window.renameDesc")})]}),R.jsx("div",{className:"py-4",children:R.jsx(ya,{autoFocus:!0,maxLength:64,value:P,onChange:oe=>q(oe.target.value),placeholder:e("window.renamePlaceholder"),"data-testid":"window-rename-input"})}),R.jsxs(wR,{children:[(Y==null?void 0:Y.hasCustomName)&&R.jsx(Rn,{type:"button",variant:"ghost",onClick:ce,"data-testid":"window-rename-reset",children:e("window.renameReset")}),R.jsx(Rn,{type:"button",variant:"outline",onClick:()=>Q(null),children:e("common.cancel")}),R.jsx(Rn,{type:"submit",disabled:!P.trim(),"data-testid":"window-rename-save",children:e("common.save")})]})]})})}),R.jsx(bv,{open:Me!==null,onOpenChange:oe=>!oe&&ke(null),children:R.jsx(xv,{"data-testid":"agent-session-rename-dialog",children:R.jsxs("form",{onSubmit:oe=>{oe.preventDefault(),we()},children:[R.jsx(wv,{children:R.jsx(Sv,{children:e("agent.session.renameTitle")})}),R.jsx("div",{className:"py-4",children:R.jsx(ya,{autoFocus:!0,maxLength:120,value:J,onChange:oe=>ue(oe.target.value),placeholder:e("agent.session.renamePlaceholder"),"data-testid":"agent-session-rename-input"})}),R.jsxs(wR,{children:[R.jsx(Rn,{type:"button",variant:"outline",onClick:()=>ke(null),children:e("agent.session.cancel")}),R.jsx(Rn,{type:"submit",disabled:!J.trim(),"data-testid":"agent-session-rename-save",children:e("agent.session.save")})]})]})})}),R.jsx(dv,{open:pe!==null,onOpenChange:oe=>!oe&&De(null),children:R.jsxs(fv,{children:[R.jsxs(hv,{children:[R.jsx(xR,{className:"bg-destructive/10",children:R.jsx(Hl,{className:"h-5 w-5 text-destructive"})}),R.jsx(pv,{children:e("agent.session.deleteTitle")}),R.jsx(gv,{children:e("agent.session.deleteDesc",{title:(pe==null?void 0:pe.title)??""})})]}),R.jsxs(mv,{children:[R.jsx(vv,{children:e("common.cancel")}),R.jsx(yv,{variant:"destructive",disabled:!pe,onClick:Z,"data-testid":"agent-session-delete-confirm",children:e("agent.session.deleteConfirm")})]})]})}),de&&R.jsx(nV,{open:!0,onOpenChange:oe=>!oe&&ve(null),deviceId:de.deviceId,paneId:de.paneId})]})}function G9({device:e,windows:t,isConnected:n,isSelected:a,selectedWindowId:i,selectedPaneId:s,onConnectToggle:c,onCreateWindow:d,onCloseWindow:h,onClosePane:f,onRenameWindow:g,onPaneClick:m,onWindowClick:b,onWatchPane:x,sessionsByPane:w,activeSessionId:S,onSelectSession:E,onCreateSessionForPane:T,onRenameSession:C,onDeleteSession:M}){const{t:O}=gr(),D=e.type==="local"?TC:m5,{attributes:k,listeners:A,setNodeRef:j,setActivatorNodeRef:B,transform:G,transition:K,isDragging:I}=d0({id:e.id}),H=h0(),F=V=>{const{active:L,over:_}=V;if(!_||L.id===_.id||!t)return;const z=t.map(P=>P.id),Y=z.indexOf(String(L.id)),Q=z.indexOf(String(_.id));Y<0||Q<0||xn.getState().reorderWindows(e.id,dd(z,Y,Q))};return R.jsxs("div",{ref:j,style:{transform:Rs.Translate.toString(G),transition:K},"data-testid":`device-item-${e.id}`,className:_e("group/device rounded-xl border border-border/60 overflow-hidden",a?"bg-chat-surface":n?"bg-muted/40":"bg-muted/20",I&&"opacity-60 shadow-lg"),onClick:n?void 0:c,children:[R.jsxs("div",{className:"relative px-3 py-1.5",children:[a&&R.jsx("span",{className:"absolute left-0 top-0 bottom-0 w-0.5 bg-muted-foreground/70"}),R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx("button",{type:"button",ref:B,...k,...A,"aria-label":O("device.dragHandle"),onClick:V=>V.stopPropagation(),className:"touch-none cursor-grab shrink-0 -ml-1 text-muted-foreground/50 hover:text-muted-foreground opacity-100",children:R.jsx(rb,{className:"h-3.5 w-3.5 [@media(any-pointer:coarse)]:h-5 [@media(any-pointer:coarse)]:w-5"})}),R.jsx(D,{className:"h-4 w-4 text-muted-foreground shrink-0"}),R.jsx("span",{className:"flex-1 truncate text-xs font-medium",children:e.name}),R.jsx(w8,{deviceId:e.id,className:"shrink-0"}),R.jsx("div",{className:_e("h-2 w-2 rounded-full shrink-0",n?"bg-emerald-500":"bg-gray-400")}),R.jsx(Rn,{variant:"ghost",size:"icon-xs",onClick:V=>{V.stopPropagation(),c()},"data-testid":n?`device-disconnect-${e.id}`:`device-connect-${e.id}`,title:O(n?"device.disconnect":"device.connect"),children:n?R.jsx(D5,{className:"h-3.5 w-3.5 text-orange-500"}):R.jsx(j5,{className:"h-3.5 w-3.5 text-emerald-500"})})]})]}),n&&R.jsxs("div",{className:"p-1.5 space-y-1.5 [@media(any-pointer:coarse)]:space-y-2",children:[!t&&R.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1.5 text-center",children:O("device.connecting")}),(t==null?void 0:t.length)===0&&R.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1.5 text-center",children:O("window.noWindows")}),t&&t.length>0&&R.jsx(l0,{sensors:H,collisionDetection:a0,onDragEnd:F,children:R.jsx(u0,{items:t.map(V=>V.id),strategy:c0,children:t.map(V=>R.jsx(X9,{deviceId:e.id,window:V,isSelected:V.id===i,selectedPaneId:s,onPaneClick:m,onWindowClick:b,onCloseWindow:h,onClosePane:f,onRenameWindow:g,onWatchPane:x,sessionsByPane:w,activeSessionId:S,onSelectSession:E,onCreateSessionForPane:T,onRenameSession:C,onDeleteSession:M},V.id))})}),R.jsxs("button",{type:"button","data-testid":`window-create-${e.id}`,onPointerDown:V=>V.stopPropagation(),onMouseDown:V=>V.stopPropagation(),onClick:()=>d(e.id),className:"w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left transition-colors text-muted-foreground hover:text-foreground hover:bg-accent/30 border border-dashed border-border/50 hover:border-border",children:[R.jsx(ob,{className:"h-3.5 w-3.5 shrink-0"}),R.jsx("span",{className:"text-xs",children:O("window.new")})]})]})]})}function X9({deviceId:e,window:t,isSelected:n,selectedPaneId:a,onPaneClick:i,onWindowClick:s,onCloseWindow:c,onClosePane:d,onRenameWindow:h,onWatchPane:f,sessionsByPane:g,activeSessionId:m,onSelectSession:b,onCreateSessionForPane:x,onRenameSession:w,onDeleteSession:S}){const{t:E}=gr(),{isMobile:T}=Yr(),C=t.panes.length>1,M=f0(t),O=t.panes.find(V=>V.id===a),D=n&&!!O,{attributes:k,listeners:A,setNodeRef:j,setActivatorNodeRef:B,transform:G,transition:K,isDragging:I}=d0({id:t.id}),H=h0(),F=V=>{const{active:L,over:_}=V;if(!_||L.id===_.id)return;const z=t.panes.map(P=>P.id),Y=z.indexOf(String(L.id)),Q=z.indexOf(String(_.id));Y<0||Q<0||xn.getState().reorderPanes(e,t.id,dd(z,Y,Q))};return R.jsxs("div",{ref:j,style:{transform:Rs.Translate.toString(G),transition:K},className:_e("space-y-1",I&&"opacity-60"),children:[R.jsxs("div",{className:"group relative flex items-center gap-1",children:[R.jsx("button",{type:"button",ref:B,...k,...A,"aria-label":E("window.dragHandle"),onClick:V=>V.stopPropagation(),className:_e("touch-none cursor-grab shrink-0 flex items-center justify-center text-muted-foreground/50 hover:text-muted-foreground opacity-100",T?"h-9 w-4":"h-6 w-3.5 [@media(any-pointer:coarse)]:h-9 [@media(any-pointer:coarse)]:w-4"),children:R.jsx(rb,{className:_e(T?"h-4 w-4":"h-3.5 w-3.5")})}),R.jsxs("button",{type:"button",onClick:()=>s(e,t.id,t.panes),"data-testid":`window-item-${t.id}`,className:_e("flex-1 min-w-0 flex items-center gap-2 px-2 py-1.5 rounded-lg text-left transition-colors pr-7 [@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:pr-12",T&&"py-2.5 pr-13",D?"bg-primary/10 text-primary":t.active?"bg-accent text-accent-foreground":"hover:bg-accent/50 text-foreground"),children:[R.jsx($l,{variant:D?"default":"outline",className:"h-5 text-[10px] px-1.5 shrink-0",children:t.index}),R.jsxs("span",{className:"flex-1 min-w-0",children:[R.jsx("span",{className:"font-mono text-[11px] leading-tight font-medium line-clamp-2 [overflow-wrap:break-word]",children:M.title}),M.processName&&R.jsx("span",{className:"font-mono text-[10.5px] leading-tight text-muted-foreground line-clamp-1 break-all",children:M.processName})]})]}),R.jsxs(Gb,{children:[R.jsx(Xb,{"data-testid":`window-menu-${t.id}`,"aria-label":E("window.menu"),title:E("window.menu"),className:_e("absolute top-1/2 -translate-y-1/2 flex items-center justify-center rounded text-muted-foreground hover:bg-background hover:text-foreground transition-opacity data-popup-open:opacity-100",T?"h-11 w-11 right-0 rounded-lg bg-background/40 opacity-100":"h-5 w-5 right-1.5 [@media(any-pointer:coarse)]:h-10 [@media(any-pointer:coarse)]:w-10 [@media(any-pointer:coarse)]:right-0.5 [@media(any-pointer:coarse)]:rounded-lg",D?"opacity-100":"opacity-0 group-hover:opacity-100 [@media(any-pointer:coarse)]:opacity-100"),children:R.jsx(RC,{className:_e(T?"h-5 w-5":"h-3.5 w-3.5 [@media(any-pointer:coarse)]:h-4.5 [@media(any-pointer:coarse)]:w-4.5")})}),R.jsxs(Wb,{align:"end",backdrop:!0,className:"w-auto min-w-36 [@media(any-pointer:coarse)]:min-w-48",children:[R.jsxs(Sl,{"data-testid":`window-menu-rename-${t.id}`,className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",T&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>h(e,t.id),children:[R.jsx(ab,{className:_e("h-4 w-4",T&&"h-5 w-5")}),E("window.rename")]}),R.jsxs(Sl,{"data-testid":`window-menu-new-session-${t.id}`,className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",T&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>x(e,t.id,O||t.panes[0]),children:[R.jsx(ob,{className:_e("h-4 w-4",T&&"h-5 w-5")}),E("agent.session.new")]}),R.jsxs(Sl,{variant:"destructive","data-testid":`window-menu-close-${t.id}`,className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",T&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>c(e,t.id),children:[R.jsx(Hl,{className:_e("h-4 w-4",T&&"h-5 w-5")}),E("window.close")]})]})]})]}),C&&R.jsx("div",{className:"ml-4 pl-2 border-l border-border/50 space-y-1 [@media(any-pointer:coarse)]:space-y-1.5",children:R.jsx(l0,{sensors:H,collisionDetection:a0,onDragEnd:F,children:R.jsx(u0,{items:t.panes.map(V=>V.id),strategy:c0,children:t.panes.map(V=>R.jsx(W9,{deviceId:e,windowId:t.id,pane:V,isActive:V.id===a,isMobile:T,onPaneClick:i,onClosePane:d,onWatchPane:f,sessions:g.get(`${e}:${V.id}`),activeSessionId:m,onSelectSession:b,onRenameSession:w,onDeleteSession:S},V.id))})})}),!C&&t.panes[0]&&R.jsx("div",{className:"ml-[36px] pl-2 border-l border-border/50",children:R.jsx(H2,{sessions:g.get(`${e}:${t.panes[0].id}`),activeSessionId:m,onSelectSession:b,onRenameSession:w,onDeleteSession:S})})]})}function W9({deviceId:e,windowId:t,pane:n,isActive:a,isMobile:i,onPaneClick:s,onClosePane:c,onWatchPane:d,sessions:h,activeSessionId:f,onSelectSession:g,onRenameSession:m,onDeleteSession:b}){const{t:x}=gr(),{attributes:w,listeners:S,setNodeRef:E,setActivatorNodeRef:T,transform:C,transition:M,isDragging:O}=d0({id:n.id});return R.jsxs("div",{ref:E,style:{transform:Rs.Translate.toString(C),transition:M},className:_e("group relative",O&&"opacity-60"),children:[R.jsxs("div",{className:"flex items-center gap-1",children:[R.jsx("button",{type:"button",ref:T,...w,...S,"aria-label":x("window.dragHandlePane"),onClick:D=>D.stopPropagation(),className:_e("touch-none cursor-grab shrink-0 flex items-center justify-center text-muted-foreground/50 hover:text-muted-foreground opacity-100",i?"h-9 w-4":"h-6 w-3 [@media(any-pointer:coarse)]:h-9 [@media(any-pointer:coarse)]:w-4"),children:R.jsx(rb,{className:_e(i?"h-4 w-4":"h-3 w-3")})}),R.jsxs("button",{type:"button",onClick:()=>s(e,t,n.id),"data-testid":`pane-item-${n.id}`,className:_e("flex-1 min-w-0 flex items-center gap-2 px-2 py-1 rounded-lg text-left transition-colors pr-13 [@media(any-pointer:coarse)]:py-2 [@media(any-pointer:coarse)]:pr-21",i&&"py-2.5 pr-24",a?"bg-primary/10 text-primary":n.active?"bg-accent text-accent-foreground":"hover:bg-accent/30 text-muted-foreground"),children:[R.jsx("span",{className:"text-[10px] font-mono opacity-60 w-4",children:n.index}),R.jsx("span",{className:"flex-1 text-xs line-clamp-2 break-all",children:n.title||`Pane ${n.index}`})]})]}),R.jsxs(Gb,{children:[R.jsx(Xb,{"data-testid":`pane-menu-${n.id}`,"aria-label":x("watch.openMonitor"),className:_e("absolute top-1/2 -translate-y-1/2 flex items-center justify-center rounded text-muted-foreground hover:bg-background hover:text-foreground transition-opacity data-popup-open:opacity-100",i?"h-11 w-11 right-11 rounded-lg bg-background/40 opacity-100":"h-5 w-5 right-7 [@media(any-pointer:coarse)]:h-10 [@media(any-pointer:coarse)]:w-10 [@media(any-pointer:coarse)]:right-10.5 [@media(any-pointer:coarse)]:rounded-lg",a?"opacity-100":"opacity-0 group-hover:opacity-100 [@media(any-pointer:coarse)]:opacity-100"),children:R.jsx(RC,{className:_e(i?"h-5 w-5":"h-3.5 w-3.5")})}),R.jsx(Wb,{align:"end",backdrop:!0,className:"w-auto min-w-36 [@media(any-pointer:coarse)]:min-w-48",children:R.jsxs(Sl,{"data-testid":`pane-watch-${n.id}`,className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",i&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>d(e,n.id),children:[R.jsx(_5,{className:_e("h-4 w-4",i&&"h-5 w-5")}),x("watch.openMonitor")]})})]}),R.jsx("button",{type:"button",onClick:D=>{D.stopPropagation(),c(e,t,n.id)},"data-testid":`pane-close-${n.id}`,className:_e("absolute top-1/2 -translate-y-1/2 flex items-center justify-center rounded text-muted-foreground hover:bg-background hover:text-foreground transition-opacity",i?"h-11 w-11 right-0 rounded-lg bg-background/40 opacity-100":"h-5 w-5 right-1.5 [@media(any-pointer:coarse)]:h-10 [@media(any-pointer:coarse)]:w-10 [@media(any-pointer:coarse)]:right-0.5 [@media(any-pointer:coarse)]:rounded-lg",a?"opacity-100":"opacity-0 group-hover:opacity-100 [@media(any-pointer:coarse)]:opacity-100"),title:x("window.closePane"),children:R.jsx("span",{className:_e("leading-none",i?"text-base":"text-xs"),children:"×"})}),R.jsx(H2,{sessions:h,activeSessionId:f,onSelectSession:g,onRenameSession:m,onDeleteSession:b})]})}function U2({session:e,onRenameSession:t,onDeleteSession:n,className:a,enlargeOnTouch:i=!1}){const{t:s}=gr(),{isMobile:c}=Yr(),d=i&&c;return R.jsxs(Gb,{children:[R.jsx(Xb,{render:R.jsx(Rn,{variant:"ghost",size:"icon-sm","data-testid":`agent-session-menu-${e.id}`,"aria-label":s("agent.session.rename"),onClick:h=>h.stopPropagation(),className:_e("size-5 shrink-0 text-muted-foreground transition-opacity data-popup-open:opacity-100",c?"opacity-100":"opacity-0 group-hover:opacity-100 [@media(any-pointer:coarse)]:opacity-100",d&&"size-9",a)}),children:R.jsx(u5,{className:_e("size-3.5",d&&"size-5")})}),R.jsxs(Wb,{align:"end",backdrop:!0,className:"w-auto min-w-36 [@media(any-pointer:coarse)]:min-w-48",children:[R.jsxs(Sl,{"data-testid":"agent-session-rename",className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",c&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>t(e),children:[R.jsx(ab,{className:_e("h-4 w-4",c&&"h-5 w-5")}),s("agent.session.rename")]}),R.jsxs(Sl,{variant:"destructive","data-testid":"agent-session-delete",className:_e("[@media(any-pointer:coarse)]:py-2.5 [@media(any-pointer:coarse)]:px-2",c&&"py-3 px-2.5 text-base gap-2.5"),onClick:()=>n(e),children:[R.jsx(OC,{className:_e("h-4 w-4",c&&"h-5 w-5")}),s("agent.session.delete")]})]})]})}function H2({sessions:e,activeSessionId:t,onSelectSession:n,onRenameSession:a,onDeleteSession:i}){const{isMobile:s}=Yr();return R.jsx("div",{className:"mt-1 space-y-0.5 [@media(any-pointer:coarse)]:space-y-1",children:e==null?void 0:e.map(c=>{const d=c.id===t;return R.jsxs("div",{className:"group relative",children:[R.jsxs("button",{type:"button","data-testid":`agent-session-item-${c.id}`,onClick:()=>n(c),className:_e("w-full flex items-center gap-1.5 px-2 py-1 pr-7 rounded-md text-left transition-colors [@media(any-pointer:coarse)]:min-h-11 [@media(any-pointer:coarse)]:py-2 [@media(any-pointer:coarse)]:pr-12",s&&"min-h-11 py-2 pr-12",d?"bg-primary/10 text-primary":"hover:bg-accent/30 text-muted-foreground"),children:[R.jsx(nb,{className:"size-3 shrink-0 opacity-70"}),R.jsx("span",{className:"min-w-0 flex-1 truncate text-[11px]",children:c.title}),R.jsx(P2,{status:c.status})]}),R.jsx("div",{className:"absolute right-0.5 top-1/2 -translate-y-1/2",children:R.jsx(U2,{session:c,onRenameSession:a,onDeleteSession:i,enlargeOnTouch:!0})})]},c.id)})})}function Q9({sessions:e,activeSessionId:t,onSelectSession:n,onRenameSession:a,onDeleteSession:i}){const{t:s}=gr(),[c,d]=y.useState(!1),h=vs(f=>{var g;return((g=f.settings)==null?void 0:g.language)??"en_US"});return R.jsxs(kM,{open:c,onOpenChange:d,className:"rounded-xl border border-border/60 bg-muted/20",children:[R.jsxs(jM,{"data-testid":"agent-orphan-sessions-trigger",className:"flex w-full items-center gap-2 px-3 py-1.5 text-left",children:[R.jsx(y5,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),R.jsx("span",{className:"flex-1 truncate text-xs font-medium text-muted-foreground",children:s("agent.orphan.title",{count:e.length})}),R.jsx(EC,{className:_e("h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform",c&&"rotate-90")})]}),R.jsx(LM,{className:"space-y-0.5 px-1.5 pb-1.5",children:e.map(f=>{const g=f.id===t,m=[f.originPaneTitle,f.originProcessName,f.createdAt?new Date(f.createdAt).toLocaleString(CT(h)):null].filter(b=>!!b);return R.jsxs("div",{className:"group relative",children:[R.jsxs("button",{type:"button","data-testid":`agent-orphan-session-${f.id}`,onClick:()=>n(f),className:_e("w-full flex flex-col gap-0.5 px-2 py-1.5 pr-7 rounded-lg text-left transition-colors",g?"bg-primary/10 text-primary":"hover:bg-accent/30"),children:[R.jsxs("span",{className:"flex items-center gap-1.5",children:[R.jsx(nb,{className:"size-3 shrink-0 opacity-70"}),R.jsx("span",{className:"min-w-0 flex-1 truncate text-[11px]",children:f.title}),R.jsx(P2,{status:f.status})]}),m.length>0&&R.jsx("span",{className:"truncate pl-[18px] text-[10px] text-muted-foreground",children:m.join(" · ")})]}),R.jsx("div",{className:"absolute right-0.5 top-1.5",children:R.jsx(U2,{session:f,onRenameSession:a,onDeleteSession:i})})]},f.id)})})]})}function Z9(){const{t:e}=gr(),{isMobile:t,setOpenMobile:n}=Yr(),a=vs(g=>{var m;return(m=g.settings)==null?void 0:m.siteName}),i=vs(g=>g.fetchSettings);y.useEffect(()=>{i()},[i]);const s=a??"tmex",c=Fr(g=>g.theme),d=Fr(g=>g.setTheme),h=c==="dark",f=()=>{const g=h?"light":"dark";d(g),document.documentElement.classList.toggle("dark",g==="dark")};return R.jsxs("div",{className:"flex items-center gap-2 px-2",children:[t&&R.jsx("button",{type:"button","data-testid":"mobile-sidebar-close",onClick:()=>n(!1),className:"inline-flex h-8 w-8 ml-[-8px] shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-sidebar-accent hover:text-foreground","aria-label":e("nav.closeSidebar"),title:e("nav.closeSidebar"),children:R.jsx(Hl,{className:"h-4 w-4"})}),R.jsxs(Ah,{to:"/",className:"flex flex-1 items-center gap-3 overflow-hidden",children:[R.jsx("div",{className:"h-8 w-8 shrink-0 overflow-hidden rounded-lg border-2 border-black",children:R.jsx("img",{src:"/logo.png",alt:s,className:"h-full w-full object-cover"})}),R.jsx("span",{className:"truncate text-sm font-semibold tracking-tight",children:s})]}),R.jsx(J9,{}),R.jsx("button",{type:"button",onClick:f,className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-sidebar-accent hover:text-foreground","aria-label":e(h?"settings.themeLight":"settings.themeDark"),title:e(h?"settings.themeLight":"settings.themeDark"),children:h?R.jsx(F5,{className:"h-4 w-4"}):R.jsx(E5,{className:"h-4 w-4"})}),R.jsx(Ah,{to:"/settings",className:"inline-flex h-8 w-8 mr-[-8px] shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-sidebar-accent hover:text-foreground","aria-label":e("sidebar.settings"),title:e("sidebar.settings"),children:R.jsx(P5,{className:"h-4 w-4"})})]})}function J9(){const e=xn(n=>n.wsLatencyMs);if(e===null)return null;const t=e>=200;return R.jsxs("span",{className:`inline-flex h-8 shrink-0 items-center text-xs tabular-nums ${t?"text-orange-400":"text-muted-foreground"}`,children:[e,"ms"]})}const e7=y.lazy(()=>So(()=>import("./agent-tab--8AsTl-t.js"),__vite__mapDeps([0,1,2,3])).then(e=>({default:e.AgentTab}))),t7=y.lazy(()=>So(()=>import("./files-tab-BW0vpgW7.js"),__vite__mapDeps([4,5,6,7,8,9])).then(e=>({default:e.FilesTab}))),wy="rounded-lg data-active:bg-background data-active:text-foreground data-active:border-transparent group-data-[variant=default]/tabs-list:data-active:shadow-none dark:data-active:bg-input/60 dark:data-active:border-transparent text-[13px] transition-colors duration-200 [&_svg:not([class*='size-'])]:size-[15px]",n7=[{title:"nav.manageDevices",url:"/devices",icon:TC}];function r7({...e}){const{t}=gr(),n=Fr(i=>i.sidebarTab),a=Fr(i=>i.setSidebarTab);return R.jsxs(SB,{variant:"inset",...e,children:[R.jsx("div",{className:"h-[var(--tmex-safe-area-top)]"}),R.jsxs(CB,{className:"gap-5 pt-3 pb-0",children:[R.jsx(Z9,{}),R.jsx(r8,{className:"mb-2.5",value:n,onValueChange:i=>a(i),children:R.jsxs(o8,{className:"w-full p-1 rounded-xl border border-border/60 group-data-horizontal/tabs:h-11",children:[R.jsxs(cy,{value:"panes","data-testid":"sidebar-tab-panes",className:wy,children:[R.jsx(O5,{}),t("sidebar.tab.panes")]}),R.jsxs(cy,{value:"agent","data-testid":"sidebar-tab-agent",className:wy,children:[R.jsx(nb,{}),t("sidebar.tab.agent")]}),R.jsxs(cy,{value:"files","data-testid":"sidebar-tab-files",className:wy,children:[R.jsx(f5,{}),t("sidebar.tab.files")]})]})})]}),R.jsxs(MB,{className:"flex min-h-0 flex-col overflow-hidden",children:[n==="panes"&&R.jsx(K9,{}),n==="agent"&&R.jsx(y.Suspense,{fallback:null,children:R.jsx(e7,{})}),n==="files"&&R.jsx(y.Suspense,{fallback:null,children:R.jsx(t7,{})})]}),n==="panes"&&R.jsxs(OB,{children:[R.jsx(v8,{items:n7}),R.jsx("div",{className:"h-[var(--tmex-safe-area-bottom)]"})]})]})}let QR=!1;function a7(e,t,n){var i,s,c;let a=n;if(!a){const d=(s=(i=xn.getState().snapshots[e])==null?void 0:i.session)==null?void 0:s.windows;a=(c=d==null?void 0:d.find(h=>h.panes.some(f=>f.id===t)))==null?void 0:c.id}return a?`/devices/${e}/windows/${a}/panes/${z2(t)}`:`/devices/${e}`}function o7(e,t){const n=e.getQueriesData({queryKey:["watch-rules"]});for(const[,a]of n){const i=a==null?void 0:a.find(s=>s.id===t);if(i)return i.name}return null}async function i7(e,t){var a;const n=o7(e,t);if(n)return n;try{const i=await fetch(`/api/watch/rules/${t}`);return i.ok?((a=(await i.json()).rule)==null?void 0:a.name)??null:null}catch{return null}}function s7(e,t,n){if(!(typeof Notification>"u"||Notification.permission!=="granted"))try{const a=new Notification(e,{body:t});a.onclick=()=>{window.focus(),gh(n)}}catch{}}function l7(e,t){e.invalidateQueries({queryKey:["watch-rules"]}),e.invalidateQueries({queryKey:["watch-rule-state",t]})}async function c7(e,t,n,a,i){const c=await i7(e,t)??qt.t("watch.toast.triggeredTitle"),d=i.summary||i.matchedText||"",h=d.length>200?`${d.slice(0,200)}…`:d,f=a7(n,a,i.windowId);cn(c,{description:h,action:{label:qt.t("watch.toast.openTerminal"),onClick:()=>{gh(f)}}}),s7(c,h,f)}function u7(e){if(QR)return;QR=!0,Sn().onMessage(n=>{if(n.kind!==Tk)return;let a;try{a=Aa(jj,n.payload)}catch(s){console.error("[watch] failed to decode WATCH_EVENT:",s);return}let i;try{i=JSON.parse(new TextDecoder().decode(a.payload))}catch(s){console.error("[watch] failed to parse WATCH_EVENT payload:",s);return}switch(l7(e,a.ruleId),a.eventType){case Uk:c7(e,a.ruleId,a.deviceId,a.paneId,i);return;case Hk:{const s=i;cn.warning(qt.t("watch.toast.modelUnavailableTitle"),{description:`${s.message} ${qt.t("watch.toast.modelUnavailableHint")}`});return}case Bk:{const s=i;cn.error(qt.t("watch.toast.ruleErrorTitle"),{description:s.message});return}default:return}})}function d7(){const e=$u(),t=xn(n=>n.ensureSocketConnected);return y.useEffect(()=>{u7(e),t()},[e,t]),null}let Uu=null;function X7(e){Uu=e}function W7(e){Uu===e&&(Uu=null)}function f7(){return Uu?Uu():null}const h7=60,m7=.02;function p7(e){if(Math.abs(e.viewportScale-1)>m7)return 0;const t=Math.round(e.windowInnerHeight-e.viewportHeight-e.viewportOffsetTop);return t>=h7?t:0}function g7(e){const t=e.windowInnerHeight-e.inset,a=e.cursorBottomClientY+e.appliedOffset+e.margin-t,i=e.maxOffset??e.inset;return Math.min(Math.max(0,Math.round(a)),i)}function Q7(){if(typeof navigator>"u")return!1;const e=navigator.userAgent,t=/iPad|iPhone|iPod/.test(e),n=navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1;return t||n}function y7(){return typeof window>"u"||typeof navigator>"u"?!1:"ontouchstart"in window||navigator.maxTouchPoints>0}const Wf={strategy:"none"},v7=8,b7=60,x7='[data-slot="sidebar-inset"]',ZR=".terminal-shortcuts-strip",JR="--tmex-kb-shortcut-lift";function w7(e,t){return e.strategy!==t.strategy?!1:e.strategy==="transform"&&t.strategy==="transform"?Math.abs(e.offset-t.offset)<1:e.strategy==="height"&&t.strategy==="height"?Math.abs(e.height-t.height)<1:!0}function S7(e,t){const[n,a]=y.useState(Wf);return y.useEffect(()=>{if(!y7())return;const i=window.visualViewport;if(!i)return;let s=null,c=null,d=Wf,h=null,f=0;const g=D=>{w7(d,D)||(d=D,a(D))},m=()=>{if((!h||!h.isConnected)&&(h=document.querySelector(x7)),!h)return 0;const D=window.getComputedStyle(h).transform;if(!D||D==="none")return 0;try{return-new DOMMatrix(D).m42}catch{return 0}},b=D=>{f=Math.round(D),document.documentElement.style.setProperty(JR,`${f}px`)},x=D=>{const k=document.querySelector(ZR);if(!k){b(0);return}const A=k.getBoundingClientRect().bottom,j=window.innerHeight-D;b(f+(A-j))},w=()=>{const D=document.querySelector(ZR);return D?D.offsetHeight:0},S=()=>{if(e)return 0;const D=document.activeElement;return D instanceof Element&&D.closest("[data-virtual-keyboard-avoid]")!==null?p7({windowInnerHeight:window.innerHeight,viewportHeight:i.height,viewportOffsetTop:i.offsetTop,viewportScale:i.scale}):0},E=()=>{const D=S();if(D<=0){b(0),g(Wf),M();return}if(t==="resize"){b(0);const k=window.innerHeight-D;k>=b7?g({strategy:"height",height:k}):g({strategy:"transform",offset:D}),M();return}if(t==="follow"){const k=f7();if(k){const A=w(),j=g7({cursorBottomClientY:k.bottom,appliedOffset:m(),windowInnerHeight:window.innerHeight,inset:D,margin:v7+A,maxOffset:D+A});g(j>0?{strategy:"transform",offset:j}:Wf),x(D)}else b(0),g({strategy:"transform",offset:D});C();return}b(0),g({strategy:"transform",offset:D}),M()},T=()=>{c=null,E()},C=()=>{c===null&&(c=window.requestAnimationFrame(T))},M=()=>{c!==null&&(window.cancelAnimationFrame(c),c=null)},O=()=>{s===null&&(s=window.requestAnimationFrame(()=>{s=null,E()}))};return E(),i.addEventListener("resize",O),i.addEventListener("scroll",O),window.addEventListener("resize",O),document.addEventListener("focusin",O),document.addEventListener("focusout",O),()=>{i.removeEventListener("resize",O),i.removeEventListener("scroll",O),window.removeEventListener("resize",O),document.removeEventListener("focusin",O),document.removeEventListener("focusout",O),s!==null&&window.cancelAnimationFrame(s),M(),document.documentElement.style.removeProperty(JR)}},[e,t]),n}const B2="NotoSansSymbols2Tmex";function F2(e){return Vg.find(t=>t.id===e)??Vg.find(t=>t.id===vC)??Vg[0]}function E7(e){return`${F2(e).cssFamily}, ${B2}, monospace`}const eT=new Set;function R7(e){const t=globalThis.document;if(!t||!e.files||eT.has(e.cssFamily))return;const n=t.createElement("style");n.dataset.tmexFont=e.id,n.textContent=`@font-face{font-family:${e.cssFamily};src:url("${e.files.regular}") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:${e.cssFamily};src:url("${e.files.bold}") format("woff2");font-weight:700;font-style:normal;font-display:swap}`,t.head.appendChild(n),eT.add(e.cssFamily)}async function T7(e,t){var i;const n=(i=globalThis.document)==null?void 0:i.fonts;if(!(n!=null&&n.load))return;const a=F2(e);a.isDefault||R7(a);try{await Promise.all([a.cssFamily,B2].flatMap(s=>[n.load(`${t}px ${s}`),n.load(`bold ${t}px ${s}`)]))}catch{}}function C7(){const e=Fr(n=>n.terminalFontId),t=Fr(n=>n.terminalFontSize);y.useEffect(()=>{T7(e,t);const n=globalThis.document;n==null||n.documentElement.style.setProperty("--font-mono",E7(e))},[e,t])}console.info(`tmex ${HD("0.15.1",!0)}`);function O7(){var e;try{const t=localStorage.getItem("tmex-ui");if(!t){document.documentElement.classList.add("dark");return}const n=JSON.parse(t),a=(e=n==null?void 0:n.state)==null?void 0:e.theme,i=a==="dark"||a===void 0;document.documentElement.classList.toggle("dark",i)}catch{document.documentElement.classList.add("dark")}}O7();const M7=new CD({defaultOptions:{queries:{staleTime:5e3,retry:1}}});function N7(){const{openMobile:e}=Yr(),t=Fr(n=>n.theme);return y.useEffect(()=>{const n=e?"--sidebar":"--background";document.body.style.backgroundColor=`var(${n})`,requestAnimationFrame(()=>{var s;const i=getComputedStyle(document.body).backgroundColor;(s=document.querySelector('meta[name="theme-color"]'))==null||s.setAttribute("content",i)})},[e,t]),null}function A7(){const e=Fr(t=>t.theme);return R.jsx(dz,{theme:e,richColors:!0,position:"top-right",closeButton:!0,offset:{top:"calc(16px + env(safe-area-inset-top, 0px))",right:"16px",bottom:"16px",left:"16px"},mobileOffset:{top:"calc(12px + env(safe-area-inset-top, 0px))",right:"12px",bottom:"12px",left:"12px"},toastOptions:{duration:6e3}})}function D7(){return C7(),R.jsxs(UB,{children:[R.jsx(d7,{}),R.jsxs(wB,{children:[R.jsx(N7,{}),R.jsx(zB,{}),R.jsx(r7,{}),R.jsx(k7,{})]})]})}function k7(){const{openMobile:e}=Yr(),t=Fr(s=>s.keyboardBehaviorMode),n=S7(e,t),a=n.strategy!=="none",i=n.strategy==="transform"?{transform:`translateY(-${n.offset}px)`,transition:t==="follow"?void 0:"transform 0.12s ease-out"}:n.strategy==="height"?{height:`${n.height}px`,transition:"height 0.12s ease-out"}:void 0;return R.jsxs(TB,{className:"h-dvh overflow-hidden md:h-[calc(100dvh-1rem)]",style:i,children:[R.jsx(tI,{}),R.jsx("div",{style:{height:a?0:"var(--tmex-safe-area-bottom)",transition:"height 0.12s ease-out"}})]})}function cl({moduleLoader:e}){const[t,n]=y.useState(null),a=j_();y.useEffect(()=>{e().then(n)},[e]);const i=t==null?void 0:t.default,s=t==null?void 0:t.PageTitle,c=t==null?void 0:t.PageActions;return R.jsxs(R.Fragment,{children:[R.jsxs("header",{className:"sticky top-0 z-10 flex h-12 md:h-16 shrink-0 items-center justify-between gap-2 bg-background/95 backdrop-blur-sm","data-testid":"mobile-topbar",children:[R.jsxs("div",{className:"flex min-w-0 flex-1 items-center gap-2 px-4",children:[R.jsx(RB,{className:"-ml-1 shrink-0","data-testid":"mobile-sidebar-open"}),R.jsx(vU,{orientation:"vertical",className:"mr-2 shrink-0 data-[orientation=vertical]:h-4"}),R.jsx("span",{className:"min-w-0 flex-1 truncate text-sm font-semibold",children:s?R.jsx(s,{...a}):""})]}),R.jsx("div",{className:"flex shrink-0 items-center gap-1 px-4",children:c&&R.jsx(c,{...a})})]}),R.jsx("div",{className:"flex min-h-0 flex-1 flex-col gap-4 !pt-0 p-2 md:p-4",children:R.jsx("div",{className:"bg-muted/50 min-h-0 flex-1 overflow-auto overscroll-auto rounded-xl [-webkit-overflow-scrolling:touch]",children:i?R.jsx(i,{}):null})})]})}const j7=()=>So(()=>import("./SettingsPage-CPdwRwyS.js"),__vite__mapDeps([10,11,6,12,5,2,13,1,14,9])),tT=()=>So(()=>import("./DevicesPage-Ngrej5Ot.js"),__vite__mapDeps([15,11,3])),nT=()=>So(()=>import("./DevicePage--HOY0kN6.js"),__vite__mapDeps([16,12,5,2,8])),L7=()=>So(()=>import("./FilePage-HbiQHaa9.js"),__vite__mapDeps([17,13,1,14,6,7])),_7=CI([{path:"/",Component:D7,children:[{index:!0,element:R.jsx(cl,{moduleLoader:tT})},{path:"devices",element:R.jsx(cl,{moduleLoader:tT})},{path:"devices/:deviceId",element:R.jsx(cl,{moduleLoader:nT})},{path:"devices/:deviceId/windows/:windowId/panes/:paneId",element:R.jsx(cl,{moduleLoader:nT})},{path:"settings",element:R.jsx(cl,{moduleLoader:j7})},{path:"file/:ref",element:R.jsx(cl,{moduleLoader:L7})}]}]),V2=document.getElementById("root");if(!V2)throw new Error("Root element not found");eP.catch(()=>{}).then(()=>{fL.createRoot(V2).render(R.jsx(y.StrictMode,{children:R.jsxs(MD,{client:M7,children:[R.jsx(Z_,{router:_7}),R.jsx($5,{}),R.jsx(A7,{})]})}))});export{z6 as $,dv as A,Rn as B,bv as C,Gb as D,u5 as E,xv as F,m5 as G,wv as H,Sv as I,_M as J,ya as K,eb as L,TC as M,uy as N,fy as O,ob as P,dy as Q,hy as R,vU as S,OC as T,Zi as U,JF as V,wR as W,_e as X,tn as Y,qt as Z,mT as _,$u as a,Yt as a$,B6 as a0,F6 as a1,V6 as a2,Y6 as a3,Hl as a4,Fr as a5,nP as a6,tP as a7,T7 as a8,E7 as a9,O2 as aA,C2 as aB,d0 as aC,rb as aD,Rs as aE,F2 as aF,Vg as aG,t5 as aH,kM as aI,jM as aJ,EC as aK,LM as aL,s5 as aM,F7 as aN,V7 as aO,U7 as aP,Y7 as aQ,q7 as aR,H5 as aS,Yn as aT,Cs as aU,O8 as aV,PM as aW,q8 as aX,sd as aY,Mi as aZ,Dn as a_,W7 as aa,ku as ab,X7 as ac,j_ as ad,Xv as ae,G7 as af,Q7 as ag,$7 as ah,z2 as ai,K7 as aj,Ji as ak,Ul as al,Ev as am,yF as an,gF as ao,_5 as ap,nV as aq,TV as ar,yy as as,l0 as at,a0 as au,u0 as av,c0 as aw,dd as ax,V9 as ay,i0 as az,vs as b,Mt as b0,pr as b1,Ot as b2,sv as b3,cr as b4,VM as b5,pt as b6,EO as b7,ws as b8,P8 as b9,U8 as ba,I8 as bb,RO as bc,j8 as bd,Bh as be,bC as bf,aP as bg,H7 as bh,vM as bi,dF as bj,nb as bk,Yr as bl,Va as bm,Pl as bn,Le as bo,P5 as bp,ZP as bq,r8 as br,o8 as bs,cy as bt,wy as bu,P7 as bv,So as bw,Ku as c,xn as d,Cu as e,fv as f,hv as g,xR as h,pv as i,R as j,gv as k,mv as l,vv as m,yv as n,cn as o,Xb as p,Wb as q,y as r,Sl as s,CT as t,gr as u,ab as v,B7 as w,$l as x,w8 as y,x4 as z};
|