tmex-cli 0.4.1 → 0.4.2
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/dist/runtime/server.js +18 -0
- package/package.json +1 -1
- package/resources/fe-dist/assets/{DevicePage-n4JoyDed.js → DevicePage-CKaPUo7L.js} +2 -2
- package/resources/fe-dist/assets/{DevicePage-n4JoyDed.js.map → DevicePage-CKaPUo7L.js.map} +1 -1
- package/resources/fe-dist/assets/DevicesPage-FqU-Dxhu.js +17 -0
- package/resources/fe-dist/assets/{DevicesPage-BwLKaiUR.js.map → DevicesPage-FqU-Dxhu.js.map} +1 -1
- package/resources/fe-dist/assets/{SettingsPage-hS99lHcp.js → SettingsPage-BfkOW0fc.js} +2 -2
- package/resources/fe-dist/assets/{SettingsPage-hS99lHcp.js.map → SettingsPage-BfkOW0fc.js.map} +1 -1
- package/resources/fe-dist/assets/{index-CJyFlAt8.js → index-EgHfq93I.js} +6 -6
- package/resources/fe-dist/assets/index-EgHfq93I.js.map +1 -0
- package/resources/fe-dist/assets/index-Ytlj3p_q.css +1 -0
- package/resources/fe-dist/assets/{select-DGBwxGiK.js → select-CNlE6MiW.js} +3 -3
- package/resources/fe-dist/assets/{select-DGBwxGiK.js.map → select-CNlE6MiW.js.map} +1 -1
- package/resources/fe-dist/assets/{switch-CWUBjs7N.js → switch-CxkzOIL6.js} +2 -2
- package/resources/fe-dist/assets/{switch-CWUBjs7N.js.map → switch-CxkzOIL6.js.map} +1 -1
- package/resources/fe-dist/assets/{useValueChanged-DwJ_SDCu.js → useValueChanged-CO2U5MoL.js} +2 -2
- package/resources/fe-dist/assets/{useValueChanged-DwJ_SDCu.js.map → useValueChanged-CO2U5MoL.js.map} +1 -1
- package/resources/fe-dist/index.html +2 -2
- package/resources/fe-dist/assets/DevicesPage-BwLKaiUR.js +0 -17
- package/resources/fe-dist/assets/index-CJaX5rlK.css +0 -1
- package/resources/fe-dist/assets/index-CJyFlAt8.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SettingsPage-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SettingsPage-BfkOW0fc.js","assets/select-CNlE6MiW.js","assets/useValueChanged-CO2U5MoL.js","assets/switch-CxkzOIL6.js","assets/DevicesPage-FqU-Dxhu.js","assets/DevicePage-CKaPUo7L.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
var Mz=Object.defineProperty;var K1=o=>{throw TypeError(o)};var _z=(o,n,a)=>n in o?Mz(o,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[n]=a;var Xe=(o,n,a)=>_z(o,typeof n!="symbol"?n+"":n,a),Wv=(o,n,a)=>n.has(o)||K1("Cannot "+a);var ee=(o,n,a)=>(Wv(o,n,"read from private field"),a?a.call(o):n.get(o)),lt=(o,n,a)=>n.has(o)?K1("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(o):n.set(o,a),Be=(o,n,a,i)=>(Wv(o,n,"write to private field"),i?i.call(o,a):n.set(o,a),a),Bt=(o,n,a)=>(Wv(o,n,"access private method"),a);var hm=(o,n,a,i)=>({set _(l){Be(o,n,l,a)},get _(){return ee(o,n,i)}});function kz(o,n){for(var a=0;a<n.length;a++){const i=n[a];if(typeof i!="string"&&!Array.isArray(i)){for(const l in i)if(l!=="default"&&!(l in o)){const c=Object.getOwnPropertyDescriptor(i,l);c&&Object.defineProperty(o,l,c.get?c:{enumerable:!0,get:()=>i[l]})}}}return Object.freeze(Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))i(l);new MutationObserver(l=>{for(const c of l)if(c.type==="childList")for(const f of c.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&i(f)}).observe(document,{childList:!0,subtree:!0});function a(l){const c={};return l.integrity&&(c.integrity=l.integrity),l.referrerPolicy&&(c.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?c.credentials="include":l.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function i(l){if(l.ep)return;l.ep=!0;const c=a(l);fetch(l.href,c)}})();const Lz="modulepreload",Uz=function(o){return"/"+o},J1={},OS=function(n,a,i){let l=Promise.resolve();if(a&&a.length>0){let f=function(m){return Promise.all(m.map(b=>Promise.resolve(b).then(p=>({status:"fulfilled",value:p}),p=>({status:"rejected",reason:p}))))};document.getElementsByTagName("link");const h=document.querySelector("meta[property=csp-nonce]"),g=(h==null?void 0:h.nonce)||(h==null?void 0:h.getAttribute("nonce"));l=f(a.map(m=>{if(m=Uz(m),m in J1)return;J1[m]=!0;const b=m.endsWith(".css"),p=b?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${p}`))return;const v=document.createElement("link");if(v.rel=b?"stylesheet":Lz,b||(v.as="script"),v.crossOrigin="",v.href=m,g&&v.setAttribute("nonce",g),document.head.appendChild(v),b)return new Promise((w,E)=>{v.addEventListener("load",w),v.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${m}`)))})}))}function c(f){const h=new Event("vite:preloadError",{cancelable:!0});if(h.payload=f,window.dispatchEvent(h),!h.defaultPrevented)throw f}return l.then(f=>{for(const h of f||[])h.status==="rejected"&&c(h.reason);return n().catch(c)})};function zA(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var Kv={exports:{}},pm={},Jv={exports:{}},pf={exports:{}};pf.exports;var Z1;function zz(){return Z1||(Z1=1,(function(o,n){/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react.development.js
|
|
@@ -306,15 +306,15 @@ Please change the parent <Route path="${k}"> to <Route path="${k==="/"?"*":`${k}
|
|
|
306
306
|
*
|
|
307
307
|
* This source code is licensed under the MIT license found in the
|
|
308
308
|
* LICENSE file in the root directory of this source tree.
|
|
309
|
-
*/return(function(){function o(w,E){return w===E&&(w!==0||1/w===1/E)||w!==w&&E!==E}function n(w,E){b||l.startTransition===void 0||(b=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var T=E();if(!p){var C=E();c(T,C)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),p=!0)}C=f({inst:{value:T,getSnapshot:E}});var A=C[0].inst,k=C[1];return g(function(){A.value=T,A.getSnapshot=E,a(A)&&k({inst:A})},[w,T,E]),h(function(){return a(A)&&k({inst:A}),w(function(){a(A)&&k({inst:A})})},[w]),m(T),T}function a(w){var E=w.getSnapshot;w=w.value;try{var T=E();return!c(w,T)}catch{return!0}}function i(w,E){return E()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var l=Gl(),c=typeof Object.is=="function"?Object.is:o,f=l.useState,h=l.useEffect,g=l.useLayoutEffect,m=l.useDebugValue,b=!1,p=!1,v=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?i:n;p0.useSyncExternalStore=l.useSyncExternalStore!==void 0?l.useSyncExternalStore:v,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})(),p0}var pD;function MN(){return pD||(pD=1,h0.exports=dH()),h0.exports}var $S=MN();const fH=(o,n)=>Yl(n)?n:Z4(n)&&Yl(n.defaultValue)?n.defaultValue:Array.isArray(o)?o[o.length-1]:o,hH={t:fH,ready:!1},pH=()=>()=>{},dg=(o,n={})=>{var te,H,J;const{i18n:a}=n,{i18n:i,defaultNS:l}=x.useContext(cH)||{},c=a||i||sH();c&&!c.reportNamespaces&&(c.reportNamespaces=new uH),c||DN(c,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const f=x.useMemo(()=>{var N;return{...aH(),...(N=c==null?void 0:c.options)==null?void 0:N.react,...n}},[c,n]),{useSuspense:h,keyPrefix:g}=f,m=l||((te=c==null?void 0:c.options)==null?void 0:te.defaultNS),b=Yl(m)?[m]:m||["translation"],p=x.useMemo(()=>b,b);(J=(H=c==null?void 0:c.reportNamespaces)==null?void 0:H.addUsedNamespaces)==null||J.call(H,p);const v=x.useRef(0),w=x.useCallback(N=>{if(!c)return pH;const{bindI18n:j,bindI18nStore:ne}=f,Z=()=>{v.current+=1,N()};return j&&c.on(j,Z),ne&&c.store.on(ne,Z),()=>{j&&j.split(" ").forEach(P=>c.off(P,Z)),ne&&ne.split(" ").forEach(P=>c.store.off(P,Z))}},[c,f]),E=x.useRef(),T=x.useCallback(()=>{if(!c)return hH;const N=!!(c.isInitialized||c.initializedStoreOnce)&&p.every(I=>J4(I,c,f)),j=n.lng||c.language,ne=v.current,Z=E.current;if(Z&&Z.ready===N&&Z.lng===j&&Z.keyPrefix===g&&Z.revision===ne)return Z;const oe={t:c.getFixedT(j,f.nsMode==="fallback"?p:p[0],g),ready:N,lng:j,keyPrefix:g,revision:ne};return E.current=oe,oe},[c,p,g,f,n.lng]),[C,A]=x.useState(0),{t:k,ready:U}=$S.useSyncExternalStore(w,T,T);x.useEffect(()=>{if(c&&!U&&!h){const N=()=>A(j=>j+1);n.lng?fD(c,n.lng,p,N):aS(c,p,N)}},[c,n.lng,p,U,h,C]);const M=c||{},Y=x.useRef(null),$=x.useRef(),_=N=>{const j=Object.getOwnPropertyDescriptors(N);j.__original&&delete j.__original;const ne=Object.create(Object.getPrototypeOf(N),j);if(!Object.prototype.hasOwnProperty.call(ne,"__original"))try{Object.defineProperty(ne,"__original",{value:N,writable:!1,enumerable:!1,configurable:!1})}catch{}return ne},z=x.useMemo(()=>{const N=M,j=N==null?void 0:N.language;let ne=N;N&&(Y.current&&Y.current.__original===N?$.current!==j?(ne=_(N),Y.current=ne,$.current=j):ne=Y.current:(ne=_(N),Y.current=ne,$.current=j));const Z=[k,ne,U];return Z.t=k,Z.i18n=ne,Z.ready=U,Z},[k,M,U,M.resolvedLanguage,M.language,M.languages]);if(c&&h&&!U)throw new Promise(N=>{const j=()=>N();n.lng?fD(c,n.lng,p,j):aS(c,p,j)});return z},mH={en_US:{translation:{common:{loading:"Loading...",save:"Save",saving:"Saving...",cancel:"Cancel",add:"Add",delete:"Delete",edit:"Edit",confirm:"Confirm",close:"Close",expand:"Expand",collapse:"Collapse",refresh:"Refresh",test:"Test",send:"Send",success:"Success",error:"Error",warning:"Warning",info:"Info",yes:"Yes",no:"No",enabled:"Enabled",disabled:"Disabled",pending:"Pending",authorized:"Authorized",unknown:"Unknown",empty:"Empty",none:"None",default:"Default",optional:"Optional",required:"Required",pwaInstallTitle:"Install as app",pwaInstallHintIOSSafari:'iOS Safari does not show an automatic install prompt. Tap Share, then "Add to Home Screen".',pwaInstallHintIOSChrome:'iOS Chrome does not show an automatic install prompt. Tap Share, then "Add to Home Screen".'},nav:{manageDevices:"Manage Devices",settings:"Settings",sidebarExpand:"Expand Sidebar",sidebarCollapse:"Collapse Sidebar",openSidebar:"Open Sidebar",closeSidebar:"Close Sidebar",jumpToLatest:"Jump to Latest",switchToEditor:"Switch to Editor Input",switchToDirect:"Switch to Direct Input",refreshPage:"Refresh Page",refreshPageConfirm:"Are you sure you want to refresh the page? Unsaved content will be lost."},device:{title:"Device Management",devices:"Devices",addDevice:"Add Device",addFirstDevice:"Add First Device",editDevice:"Edit Device",noDevices:"No Devices",noDevicesDescription:"Add a local or SSH device to get started",name:"Device Name",namePlaceholder:"e.g., My Server",type:"Type",typeLocal:"Local Device",typeSSH:"SSH Remote Device",typeSSHBadge:"SSH",host:"Host",hostPlaceholder:"example.com",port:"Port",username:"Username",usernamePlaceholder:"root",session:"Tmux Session Name",sessionPlaceholder:"tmex",sessionHint:'Leave empty to use default "tmex"',authMode:"Authentication Mode",authPassword:"Password",authKey:"Private Key",authAgent:"SSH Agent",authConfigRef:"SSH Config",password:"Password",privateKey:"Private Key",privateKeyPlaceholder:"-----BEGIN OPENSSH PRIVATE KEY-----",privateKeyPassphrase:"Private Key Passphrase (Optional)",passphrase:"Passphrase",connect:"Connect",connected:"Connected",disconnect:"Disconnect",disconnected:"Disconnected",connecting:"Connecting...",deleteConfirm:"Delete this device?",deleteSuccess:"Device deleted",createSuccess:"Device created",updateSuccess:"Device updated",deleteFailed:"Failed to delete device",createFailed:"Failed to create device",updateFailed:"Failed to update device",loadFailed:"Failed to load devices",localDevice:"Local Device",subtitle:"{{username}}@{{host}}:{{port}}",modify:"Modify Device",delete:"Delete"},terminal:{initializing:"Initializing terminal...",connecting:"Connecting to device...",initFailed:"Terminal initialization failed",inputPlaceholder:"Type command here...",clear:"Clear",deviceError:"Device Error",deviceErrorWithType:"[{{type}}] Device Error",noDeviceSelected:"No device selected",windowClosed:"Current window has been closed, please select a window from the sidebar.",paneClosed:"Current pane has been closed, please select a pane from the sidebar.",bellNotification:"Terminal Bell Notification",bellDescription:"Window {{window}} · Pane {{pane}}",bellFallback:"Received tmux bell",paneTitle:"Pane {{index}}",activePane:"Current Pane",activeWindow:"Current Window",editorPlaceholder:"Enter commands here...",editorClear:"Clear",editorSendWithEnter:"Send with Enter",editorSendLineByLine:"Send Line by Line",editorSend:"Send",sendShortcut:"Send {{key}}",inputModeDirect:"Direct Input",inputModeEditor:"Editor",newWindow:"New Window",closeWindow:"Close Window",closePane:"Close Pane"},settings:{title:"System Settings",siteSettings:"Site Settings",siteName:"Site Name",siteNamePlaceholder:"tmex",siteUrl:"Site URL",siteUrlPlaceholder:"http://localhost:3000",bellThrottle:"Bell Throttle (seconds)",notificationThrottle:"Notification Throttle (seconds)",enableBrowserBellToast:"Enable Browser Bell Toast",enableBrowserNotificationToast:"Enable Browser Notification Toast",enableTelegramBellPush:"Enable Telegram Bell Push",enableTelegramNotificationPush:"Enable Telegram Notification Push",sshReconnectRetries:"SSH Reconnect Retries",sshReconnectDelay:"SSH Reconnect Delay (seconds)",language:"Language",languagePlaceholder:"Select language",language_en_US:"English",language_zh_CN:"简体中文",language_ja_JP:"日本語",theme:"Theme",themeLight:"Light",themeDark:"Dark",siteTab:"Site",notificationsTab:"Notifications",refreshToApply:"Refresh to apply language change",saveSettings:"Save Settings",settingsSaved:"Settings saved",saveFailed:"Failed to save settings",loadFailed:"Failed to load settings",restartGateway:"Restart Gateway",restartScheduled:"Gateway restart scheduled",restartConfirm:"Are you sure you want to restart Gateway? This will interrupt all active connections.",restartFailed:"Failed to restart gateway",sshReconnectMaxRetries:"SSH Reconnect Retries"},telegram:{title:"Telegram Bot Management",botName:"Bot Name",botNamePlaceholder:"e.g., ops-bot",botToken:"Bot Token",botTokenPlaceholder:"123456:AA...",addBot:"Add Bot",enableBot:"Enable Bot",allowAuthRequests:"Allow Authorization Requests",pendingChats:"Pending Authorization",chats:"Authorized Chats",authorizedChats:"Authorized",noPendingChats:"No pending chats",noAuthorizedChats:"No authorized chats",approve:"Approve",authorize:"Authorize",reject:"Reject",revokeAuth:"Revoke Authorization",testMessage:"Test Message",sendTestMessage:"Send Test Message",deleteBot:"Delete Bot",tokenOptional:"Token (leave empty to keep unchanged)",tokenPlaceholder:"Enter new token",botCreated:"Bot created",botUpdated:"Bot updated",botDeleted:"Bot deleted",authApproved:"Authorization approved",chatRemoved:"Chat removed",testMessageSent:"Test message sent",createFailed:"Failed to create bot",updateFailed:"Failed to update bot",deleteFailed:"Failed to delete bot",approveFailed:"Failed to approve authorization",removeFailed:"Failed to remove chat",testMessageFailed:"Failed to send test message",loadBotsFailed:"Failed to load bot list",loadChatsFailed:"Failed to load chat list",noBots:"No bots yet, add one first.",expand:"Expand",collapse:"Collapse",authCount:"{{authorized}} authorized / {{pending}} pending (max 8)",chatId:"Chat ID",applyTime:"Application Time",gatewayOnline:"🟢 Gateway online @ {{siteName}}",authSuccess:"✅ Authorized. You will now receive notifications.",authPending:"⏳ Authorization request received. Please approve in tmex settings.",authFailed:"❌ Authorization request failed. Please contact administrator.",testMessageTemplate:`🧪 Test Message
|
|
309
|
+
*/return(function(){function o(w,E){return w===E&&(w!==0||1/w===1/E)||w!==w&&E!==E}function n(w,E){b||l.startTransition===void 0||(b=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var T=E();if(!p){var C=E();c(T,C)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),p=!0)}C=f({inst:{value:T,getSnapshot:E}});var A=C[0].inst,k=C[1];return g(function(){A.value=T,A.getSnapshot=E,a(A)&&k({inst:A})},[w,T,E]),h(function(){return a(A)&&k({inst:A}),w(function(){a(A)&&k({inst:A})})},[w]),m(T),T}function a(w){var E=w.getSnapshot;w=w.value;try{var T=E();return!c(w,T)}catch{return!0}}function i(w,E){return E()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var l=Gl(),c=typeof Object.is=="function"?Object.is:o,f=l.useState,h=l.useEffect,g=l.useLayoutEffect,m=l.useDebugValue,b=!1,p=!1,v=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?i:n;p0.useSyncExternalStore=l.useSyncExternalStore!==void 0?l.useSyncExternalStore:v,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})(),p0}var pD;function MN(){return pD||(pD=1,h0.exports=dH()),h0.exports}var $S=MN();const fH=(o,n)=>Yl(n)?n:Z4(n)&&Yl(n.defaultValue)?n.defaultValue:Array.isArray(o)?o[o.length-1]:o,hH={t:fH,ready:!1},pH=()=>()=>{},dg=(o,n={})=>{var te,H,J;const{i18n:a}=n,{i18n:i,defaultNS:l}=x.useContext(cH)||{},c=a||i||sH();c&&!c.reportNamespaces&&(c.reportNamespaces=new uH),c||DN(c,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const f=x.useMemo(()=>{var N;return{...aH(),...(N=c==null?void 0:c.options)==null?void 0:N.react,...n}},[c,n]),{useSuspense:h,keyPrefix:g}=f,m=l||((te=c==null?void 0:c.options)==null?void 0:te.defaultNS),b=Yl(m)?[m]:m||["translation"],p=x.useMemo(()=>b,b);(J=(H=c==null?void 0:c.reportNamespaces)==null?void 0:H.addUsedNamespaces)==null||J.call(H,p);const v=x.useRef(0),w=x.useCallback(N=>{if(!c)return pH;const{bindI18n:j,bindI18nStore:ne}=f,Z=()=>{v.current+=1,N()};return j&&c.on(j,Z),ne&&c.store.on(ne,Z),()=>{j&&j.split(" ").forEach(P=>c.off(P,Z)),ne&&ne.split(" ").forEach(P=>c.store.off(P,Z))}},[c,f]),E=x.useRef(),T=x.useCallback(()=>{if(!c)return hH;const N=!!(c.isInitialized||c.initializedStoreOnce)&&p.every(I=>J4(I,c,f)),j=n.lng||c.language,ne=v.current,Z=E.current;if(Z&&Z.ready===N&&Z.lng===j&&Z.keyPrefix===g&&Z.revision===ne)return Z;const oe={t:c.getFixedT(j,f.nsMode==="fallback"?p:p[0],g),ready:N,lng:j,keyPrefix:g,revision:ne};return E.current=oe,oe},[c,p,g,f,n.lng]),[C,A]=x.useState(0),{t:k,ready:U}=$S.useSyncExternalStore(w,T,T);x.useEffect(()=>{if(c&&!U&&!h){const N=()=>A(j=>j+1);n.lng?fD(c,n.lng,p,N):aS(c,p,N)}},[c,n.lng,p,U,h,C]);const M=c||{},Y=x.useRef(null),$=x.useRef(),_=N=>{const j=Object.getOwnPropertyDescriptors(N);j.__original&&delete j.__original;const ne=Object.create(Object.getPrototypeOf(N),j);if(!Object.prototype.hasOwnProperty.call(ne,"__original"))try{Object.defineProperty(ne,"__original",{value:N,writable:!1,enumerable:!1,configurable:!1})}catch{}return ne},z=x.useMemo(()=>{const N=M,j=N==null?void 0:N.language;let ne=N;N&&(Y.current&&Y.current.__original===N?$.current!==j?(ne=_(N),Y.current=ne,$.current=j):ne=Y.current:(ne=_(N),Y.current=ne,$.current=j));const Z=[k,ne,U];return Z.t=k,Z.i18n=ne,Z.ready=U,Z},[k,M,U,M.resolvedLanguage,M.language,M.languages]);if(c&&h&&!U)throw new Promise(N=>{const j=()=>N();n.lng?fD(c,n.lng,p,j):aS(c,p,j)});return z},mH={en_US:{translation:{common:{loading:"Loading...",save:"Save",saving:"Saving...",cancel:"Cancel",add:"Add",delete:"Delete",edit:"Edit",confirm:"Confirm",close:"Close",expand:"Expand",collapse:"Collapse",refresh:"Refresh",test:"Test",send:"Send",success:"Success",error:"Error",warning:"Warning",info:"Info",yes:"Yes",no:"No",enabled:"Enabled",disabled:"Disabled",pending:"Pending",authorized:"Authorized",unknown:"Unknown",empty:"Empty",none:"None",default:"Default",optional:"Optional",required:"Required",pwaInstallTitle:"Install as app",pwaInstallHintIOSSafari:'iOS Safari does not show an automatic install prompt. Tap Share, then "Add to Home Screen".',pwaInstallHintIOSChrome:'iOS Chrome does not show an automatic install prompt. Tap Share, then "Add to Home Screen".'},nav:{manageDevices:"Manage Devices",settings:"Settings",sidebarExpand:"Expand Sidebar",sidebarCollapse:"Collapse Sidebar",openSidebar:"Open Sidebar",closeSidebar:"Close Sidebar",jumpToLatest:"Jump to Latest",switchToEditor:"Switch to Editor Input",switchToDirect:"Switch to Direct Input",refreshPage:"Refresh Page",refreshPageConfirm:"Are you sure you want to refresh the page? Unsaved content will be lost."},device:{title:"Device Management",devices:"Devices",addDevice:"Add Device",addDeviceDescription:"Fill in device details and choose a connection method",addFirstDevice:"Add First Device",editDevice:"Edit Device",editDeviceDescription:"Update device configuration",sectionBasic:"Basic Info",sectionConnection:"Connection",sectionAuth:"Authentication",noDevices:"No Devices",noDevicesDescription:"Add a local or SSH device to get started",name:"Device Name",namePlaceholder:"e.g., My Server",type:"Type",typeLocal:"Local Device",typeSSH:"SSH Remote Device",typeSSHBadge:"SSH",host:"Host",hostPlaceholder:"example.com",port:"Port",username:"Username",usernamePlaceholder:"root",session:"Tmux Session Name",sessionPlaceholder:"tmex",sessionHint:'Leave empty to use default "tmex"',authMode:"Authentication Mode",authPassword:"Password",authKey:"Private Key",authAgent:"SSH Agent",authConfigRef:"SSH Config",password:"Password",privateKey:"Private Key",privateKeyPlaceholder:"-----BEGIN OPENSSH PRIVATE KEY-----",privateKeyPassphrase:"Private Key Passphrase (Optional)",passphrase:"Passphrase",connect:"Connect",connected:"Connected",disconnect:"Disconnect",disconnected:"Disconnected",connecting:"Connecting...",deleteConfirm:"Delete this device?",deleteDescription:'Device "{{name}}" will be permanently removed. This action cannot be undone.',deleteSuccess:"Device deleted",createSuccess:"Device created",updateSuccess:"Device updated",deleteFailed:"Failed to delete device",createFailed:"Failed to create device",updateFailed:"Failed to update device",loadFailed:"Failed to load devices",localDevice:"Local Device",subtitle:"{{username}}@{{host}}:{{port}}",modify:"Modify Device",delete:"Delete"},terminal:{initializing:"Initializing terminal...",connecting:"Connecting to device...",initFailed:"Terminal initialization failed",inputPlaceholder:"Type command here...",clear:"Clear",deviceError:"Device Error",deviceErrorWithType:"[{{type}}] Device Error",noDeviceSelected:"No device selected",windowClosed:"Current window has been closed, please select a window from the sidebar.",paneClosed:"Current pane has been closed, please select a pane from the sidebar.",bellNotification:"Terminal Bell Notification",bellDescription:"Window {{window}} · Pane {{pane}}",bellFallback:"Received tmux bell",paneTitle:"Pane {{index}}",activePane:"Current Pane",activeWindow:"Current Window",editorPlaceholder:"Enter commands here...",editorClear:"Clear",editorSendWithEnter:"Send with Enter",editorSendLineByLine:"Send Line by Line",editorSend:"Send",sendShortcut:"Send {{key}}",inputModeDirect:"Direct Input",inputModeEditor:"Editor",newWindow:"New Window",closeWindow:"Close Window",closePane:"Close Pane"},settings:{title:"System Settings",siteSettings:"Site Settings",siteName:"Site Name",siteNamePlaceholder:"tmex",siteUrl:"Site URL",siteUrlPlaceholder:"http://localhost:3000",bellThrottle:"Bell Throttle (seconds)",notificationThrottle:"Notification Throttle (seconds)",enableBrowserBellToast:"Enable Browser Bell Toast",enableBrowserNotificationToast:"Enable Browser Notification Toast",enableTelegramBellPush:"Enable Telegram Bell Push",enableTelegramNotificationPush:"Enable Telegram Notification Push",sshReconnectRetries:"SSH Reconnect Retries",sshReconnectDelay:"SSH Reconnect Delay (seconds)",language:"Language",languagePlaceholder:"Select language",language_en_US:"English",language_zh_CN:"简体中文",language_ja_JP:"日本語",theme:"Theme",themeLight:"Light",themeDark:"Dark",siteTab:"Site",notificationsTab:"Notifications",refreshToApply:"Refresh to apply language change",saveSettings:"Save Settings",settingsSaved:"Settings saved",saveFailed:"Failed to save settings",loadFailed:"Failed to load settings",restartGateway:"Restart Gateway",restartScheduled:"Gateway restart scheduled",restartConfirm:"Are you sure you want to restart Gateway? This will interrupt all active connections.",restartFailed:"Failed to restart gateway",sshReconnectMaxRetries:"SSH Reconnect Retries"},telegram:{title:"Telegram Bot Management",botName:"Bot Name",botNamePlaceholder:"e.g., ops-bot",botToken:"Bot Token",botTokenPlaceholder:"123456:AA...",addBot:"Add Bot",enableBot:"Enable Bot",allowAuthRequests:"Allow Authorization Requests",pendingChats:"Pending Authorization",chats:"Authorized Chats",authorizedChats:"Authorized",noPendingChats:"No pending chats",noAuthorizedChats:"No authorized chats",approve:"Approve",authorize:"Authorize",reject:"Reject",revokeAuth:"Revoke Authorization",testMessage:"Test Message",sendTestMessage:"Send Test Message",deleteBot:"Delete Bot",tokenOptional:"Token (leave empty to keep unchanged)",tokenPlaceholder:"Enter new token",botCreated:"Bot created",botUpdated:"Bot updated",botDeleted:"Bot deleted",authApproved:"Authorization approved",chatRemoved:"Chat removed",testMessageSent:"Test message sent",createFailed:"Failed to create bot",updateFailed:"Failed to update bot",deleteFailed:"Failed to delete bot",approveFailed:"Failed to approve authorization",removeFailed:"Failed to remove chat",testMessageFailed:"Failed to send test message",loadBotsFailed:"Failed to load bot list",loadChatsFailed:"Failed to load chat list",noBots:"No bots yet, add one first.",expand:"Expand",collapse:"Collapse",authCount:"{{authorized}} authorized / {{pending}} pending (max 8)",chatId:"Chat ID",applyTime:"Application Time",gatewayOnline:"🟢 Gateway online @ {{siteName}}",authSuccess:"✅ Authorized. You will now receive notifications.",authPending:"⏳ Authorization request received. Please approve in tmex settings.",authFailed:"❌ Authorization request failed. Please contact administrator.",testMessageTemplate:`🧪 Test Message
|
|
310
310
|
Site: {{siteName}}
|
|
311
311
|
Time: {{time}}`,approveMessageTemplate:`✅ Authorized via tmex.
|
|
312
312
|
Bot: {{botName}}
|
|
313
|
-
Time: {{time}}`,botNotFound:"Bot not found or unavailable",botNotRunning:"Bot is not running or unavailable"},webhook:{title:"Webhooks",url:"Webhook URL",secret:"Secret",secretPlaceholder:"Used to sign payloads (HMAC-SHA256)",enabled:"Enabled",eventMask:"Events",add:"Add Webhook",empty:"No webhooks yet.",createFailed:"Failed to create webhook",deleteFailed:"Failed to delete webhook",loadFailed:"Failed to load webhooks"},sshError:{sshConfigRefNotSupported:"SSH Config reference is not supported in this version. Please use host + username with Agent/Key/Password authentication.",configRefNotSupported:"SSH Config reference is not supported in this version. Please use host + username with Agent/Key/Password authentication.",agentUnavailable:"SSH Agent unavailable: SSH_AUTH_SOCK not detected. Please check agent environment.",agentNoIdentity:"SSH Agent has no available keys. Please run ssh-add first.",agentNoIdentities:"SSH Agent has no available keys. Please run ssh-add first.",authFailed:"Authentication failed: incorrect username, password, or key. Please check device configuration.",authFailedGeneric:"Authentication failed: incorrect username, password, or key. Please check device configuration.",networkUnreachable:"Network unreachable: Please check routing, firewall, or VPN configuration.",connectionRefused:"Connection refused: Unable to connect to target host. Please check host address and port.",timeout:"Connection timeout: Unable to connect to device. Please check network or firewall settings.",connectionTimeout:"Connection timeout: Unable to connect to device. Please check network or firewall settings.",hostNotFound:"Host not found: Unable to resolve hostname. Please check DNS or hostname configuration.",handshakeFailed:"Handshake failed: Unable to establish secure connection. Possibly incompatible key exchange algorithm.",tmuxUnavailable:"Remote tmux unavailable or failed to start. Please ensure tmux is installed and available in the remote shell PATH.",unknown:"Connection failed: {{message}}",reconnecting:"Connection interrupted, reconnecting in {{delay}} seconds ({{attempt}}/{{maxRetries}})",reconnectFailed:"Auto-reconnect failed, please retry manually",reconnected:"Device reconnected automatically"},websocket:{error:"WebSocket connection error",checkGateway:"Please check Gateway status",upgradeFailed:"Upgrade failed",invalidMessage:"Invalid message format"},wsError:{checkGateway:"Please check Gateway status"},apiError:{siteNameRequired:"Site name cannot be empty",siteUrlInvalid:"Site URL must start with http:// or https://",bellThrottleInvalid:"Bell throttle seconds must be between 0-300",sshRetriesInvalid:"SSH reconnect retries must be between 0-20",sshDelayInvalid:"SSH reconnect delay must be between 1-300 seconds",languageInvalid:"Language must be one of the supported locales",botNameRequired:"Bot name cannot be empty",botTokenRequired:"Bot token cannot be empty",missingFields:"Missing required fields",sshRequiresHost:"SSH device requires host or sshConfigRef",invalidRequest:"Invalid request",deviceNotFound:"Device not found",botNotFound:"Bot not found",chatNotFound:"Chat not found",urlAndSecretRequired:"URL and secret are required",notFound:"Not found"},notification:{clickToJump:"Click to jump to corresponding pane",eventType:{terminal_bell:"🔔 Terminal Bell",terminal_notification:"🔔 Terminal Notification",tmux_window_close:"🪟 Window Closed",tmux_pane_close:"📱 Pane Closed",device_tmux_missing:"⚠️ Tmux Missing",device_disconnect:"🔌 Device Disconnected",session_created:"🆕 Session Created",session_closed:"🚪 Session Closed"},site:"Site",device:"Device",window:"Window",pane:"Pane",time:"Time",directLink:"Direct Link",message:"Message",telegramBell:{title:"🔔 Bell from {{siteName}}: {{terminalTopbarLabel}}",viewLink:"Click to view",terminalTopbarLabel:"Window {{window}} · Pane {{pane}} @ {{device}}"},telegramNotification:{}},sidebar:{noWindows:"No windows",noDevices:"No devices",addDeviceLink:"Add Device",openSettingsLink:"Open Settings",openSettings:"Open Settings",manageDevices:"Manage Devices",settings:"Settings",currentWindow:"Current Window",currentPane:"Current Pane",newWindow:"Create Window",closeWindow:"Close Window",closePane:"Close Pane",addDevice:"Add Device"},window:{noWindows:"No windows",new:"New Window"},validation:{deviceNameRequired:"Device name is required",hostRequired:"Host is required for SSH devices"}}},zh_CN:{translation:{common:{loading:"加载中...",save:"保存",saving:"保存中...",cancel:"取消",add:"添加",delete:"删除",edit:"修改",confirm:"确认",close:"关闭",expand:"展开",collapse:"收起",refresh:"刷新",test:"测试",send:"发送",success:"成功",error:"错误",warning:"警告",info:"信息",yes:"是",no:"否",enabled:"已启用",disabled:"已禁用",pending:"待授权",authorized:"已授权",unknown:"未知",empty:"空",none:"无",default:"默认",optional:"可选",required:"必填",pwaInstallTitle:"安装为应用",pwaInstallHintIOSSafari:"iOS Safari 不会自动弹出安装提示。请点击「分享」,再选择「添加到主屏幕」。",pwaInstallHintIOSChrome:"iOS Chrome 不会自动弹出安装提示。请点击「分享」,再选择「添加到主屏幕」"},nav:{manageDevices:"管理设备",settings:"设置",sidebarExpand:"展开侧边栏",sidebarCollapse:"收起侧边栏",openSidebar:"打开侧边栏",closeSidebar:"关闭侧边栏",jumpToLatest:"跳转到最新",switchToEditor:"切换到编辑器输入",switchToDirect:"切换到直接输入",refreshPage:"刷新页面",refreshPageConfirm:"确定要刷新页面吗?未保存的内容将会丢失。"},device:{title:"设备管理",devices:"设备",addDevice:"添加设备",addFirstDevice:"添加第一个设备",editDevice:"修改设备",noDevices:"暂无设备",noDevicesDescription:"添加本地或 SSH 设备开始使用",name:"设备名称",namePlaceholder:"例如:我的服务器",type:"类型",typeLocal:"本地设备",typeSSH:"SSH 远程设备",typeSSHBadge:"SSH",host:"主机",hostPlaceholder:"example.com",port:"端口",username:"用户名",usernamePlaceholder:"root",session:"Tmux 会话名称",sessionPlaceholder:"tmex",sessionHint:'留空将使用默认值 "tmex"',authMode:"认证方式",authPassword:"密码",authKey:"私钥",authAgent:"SSH Agent",authConfigRef:"SSH Config",password:"密码",privateKey:"私钥",privateKeyPlaceholder:"-----BEGIN OPENSSH PRIVATE KEY-----",privateKeyPassphrase:"私钥密码(可选)",passphrase:"私钥密码(可选)",connect:"连接",connected:"已连接",disconnect:"断开",disconnected:"已断开",connecting:"连接中...",deleteConfirm:"删除此设备?",deleteSuccess:"设备已删除",createSuccess:"设备已创建",updateSuccess:"设备已更新",deleteFailed:"删除设备失败",createFailed:"创建设备失败",updateFailed:"更新设备失败",loadFailed:"加载设备列表失败",localDevice:"本地设备",subtitle:"{{username}}@{{host}}:{{port}}",modify:"修改设备",delete:"删除"},terminal:{initializing:"初始化终端...",connecting:"连接设备...",initFailed:"终端初始化失败",inputPlaceholder:"在此输入命令...",clear:"清空",deviceError:"设备错误",deviceErrorWithType:"[{{type}}] 设备错误",noDeviceSelected:"未选择设备",windowClosed:"当前窗口已关闭,请在侧边栏重新选择窗口。",paneClosed:"当前 Pane 已关闭,请在侧边栏重新选择 Pane。",bellNotification:"终端 Bell 提醒",bellDescription:"窗口 {{window}} · Pane {{pane}}",bellFallback:"收到 tmux bell",paneTitle:"Pane {{index}}",activePane:"当前 pane",activeWindow:"当前窗口",editorPlaceholder:"在此输入命令...",editorClear:"清空",editorSendWithEnter:"发送附带回车",editorSendLineByLine:"逐行发送",editorSend:"发送",sendShortcut:"发送 {{key}}",inputModeDirect:"直接输入",inputModeEditor:"编辑器",newWindow:"新建窗口",closeWindow:"关闭窗口",closePane:"关闭 pane"},settings:{title:"系统设置",siteSettings:"站点设置",siteName:"站点名称",siteNamePlaceholder:"tmex",siteUrl:"站点访问 URL",siteUrlPlaceholder:"http://localhost:3000",bellThrottle:"Bell 频控(秒)",notificationThrottle:"通知频控(秒)",enableBrowserBellToast:"开启浏览器 Bell Toast",enableBrowserNotificationToast:"开启浏览器通知 Toast",enableTelegramBellPush:"开启 Telegram Bell 推送",enableTelegramNotificationPush:"开启 Telegram 通知推送",sshReconnectRetries:"SSH 重连次数",sshReconnectDelay:"SSH 重连等待(秒)",language:"语言",languagePlaceholder:"选择语言",language_en_US:"English",language_zh_CN:"简体中文",language_ja_JP:"日本語",theme:"主题",themeLight:"浅色",themeDark:"深色",siteTab:"站点",notificationsTab:"通知",refreshToApply:"刷新后生效",saveSettings:"保存设置",settingsSaved:"站点设置已保存",saveFailed:"保存设置失败",loadFailed:"加载设置失败",restartGateway:"重启 Gateway",restartScheduled:"Gateway 重启请求已发送",restartConfirm:"确定要重启 Gateway 吗?这将中断所有活动连接。",restartFailed:"重启请求失败",sshReconnectMaxRetries:"SSH 重连次数"},telegram:{title:"Telegram Bot 管理",botName:"Bot 名称",botNamePlaceholder:"如:ops-bot",botToken:"Bot Token",botTokenPlaceholder:"123456:AA...",addBot:"新增 Bot",enableBot:"启用 Bot",allowAuthRequests:"允许申请授权",pendingChats:"待授权",chats:"已授权",authorizedChats:"已授权",noPendingChats:"暂无待授权 chat",noAuthorizedChats:"暂无已授权 chat",approve:"批准",authorize:"授权",reject:"拒绝",revokeAuth:"撤销授权",testMessage:"测试消息",sendTestMessage:"发送测试消息",deleteBot:"删除 Bot",tokenOptional:"Token(留空不改)",tokenPlaceholder:"输入新 token",botCreated:"Bot 已创建",botUpdated:"Bot 已更新",botDeleted:"Bot 已删除",authApproved:"授权已批准",chatRemoved:"chat 已移除",testMessageSent:"测试消息已发送",createFailed:"新增 Bot 失败",updateFailed:"更新 Bot 失败",deleteFailed:"删除 Bot 失败",approveFailed:"批准授权失败",removeFailed:"删除 chat 失败",testMessageFailed:"发送测试消息失败",loadBotsFailed:"加载 Bot 列表失败",loadChatsFailed:"加载 chat 列表失败",noBots:"暂无 Bot,先添加一个。",expand:"展开",collapse:"收起",authCount:"已授权 {{authorized}} / 待授权 {{pending}}(总上限 8)",chatId:"chatId",applyTime:"申请时间",gatewayOnline:"🟢 Gateway online @ {{siteName}}",authSuccess:"✅ 已授权,可接收通知。",authPending:"⏳ 已收到授权申请,请在 tmex 设置页审批。",authFailed:"❌ 授权申请失败,请联系管理员。",testMessageTemplate:`🧪 测试消息
|
|
313
|
+
Time: {{time}}`,botNotFound:"Bot not found or unavailable",botNotRunning:"Bot is not running or unavailable"},webhook:{title:"Webhooks",url:"Webhook URL",secret:"Secret",secretPlaceholder:"Used to sign payloads (HMAC-SHA256)",enabled:"Enabled",eventMask:"Events",add:"Add Webhook",empty:"No webhooks yet.",createFailed:"Failed to create webhook",deleteFailed:"Failed to delete webhook",loadFailed:"Failed to load webhooks"},sshError:{sshConfigRefNotSupported:"SSH Config reference is not supported in this version. Please use host + username with Agent/Key/Password authentication.",configRefNotSupported:"SSH Config reference is not supported in this version. Please use host + username with Agent/Key/Password authentication.",agentUnavailable:"SSH Agent unavailable: SSH_AUTH_SOCK not detected. Please check agent environment.",agentNoIdentity:"SSH Agent has no available keys. Please run ssh-add first.",agentNoIdentities:"SSH Agent has no available keys. Please run ssh-add first.",authFailed:"Authentication failed: incorrect username, password, or key. Please check device configuration.",authFailedGeneric:"Authentication failed: incorrect username, password, or key. Please check device configuration.",networkUnreachable:"Network unreachable: Please check routing, firewall, or VPN configuration.",connectionRefused:"Connection refused: Unable to connect to target host. Please check host address and port.",timeout:"Connection timeout: Unable to connect to device. Please check network or firewall settings.",connectionTimeout:"Connection timeout: Unable to connect to device. Please check network or firewall settings.",hostNotFound:"Host not found: Unable to resolve hostname. Please check DNS or hostname configuration.",handshakeFailed:"Handshake failed: Unable to establish secure connection. Possibly incompatible key exchange algorithm.",tmuxUnavailable:"Remote tmux unavailable or failed to start. Please ensure tmux is installed and available in the remote shell PATH.",unknown:"Connection failed: {{message}}",reconnecting:"Connection interrupted, reconnecting in {{delay}} seconds ({{attempt}}/{{maxRetries}})",reconnectFailed:"Auto-reconnect failed, please retry manually",reconnected:"Device reconnected automatically"},websocket:{error:"WebSocket connection error",checkGateway:"Please check Gateway status",upgradeFailed:"Upgrade failed",invalidMessage:"Invalid message format"},wsError:{checkGateway:"Please check Gateway status"},apiError:{siteNameRequired:"Site name cannot be empty",siteUrlInvalid:"Site URL must start with http:// or https://",bellThrottleInvalid:"Bell throttle seconds must be between 0-300",sshRetriesInvalid:"SSH reconnect retries must be between 0-20",sshDelayInvalid:"SSH reconnect delay must be between 1-300 seconds",languageInvalid:"Language must be one of the supported locales",botNameRequired:"Bot name cannot be empty",botTokenRequired:"Bot token cannot be empty",missingFields:"Missing required fields",sshRequiresHost:"SSH device requires host or sshConfigRef",invalidRequest:"Invalid request",deviceNotFound:"Device not found",botNotFound:"Bot not found",chatNotFound:"Chat not found",urlAndSecretRequired:"URL and secret are required",notFound:"Not found"},notification:{clickToJump:"Click to jump to corresponding pane",eventType:{terminal_bell:"🔔 Terminal Bell",terminal_notification:"🔔 Terminal Notification",tmux_window_close:"🪟 Window Closed",tmux_pane_close:"📱 Pane Closed",device_tmux_missing:"⚠️ Tmux Missing",device_disconnect:"🔌 Device Disconnected",session_created:"🆕 Session Created",session_closed:"🚪 Session Closed"},site:"Site",device:"Device",window:"Window",pane:"Pane",time:"Time",directLink:"Direct Link",message:"Message",telegramBell:{title:"🔔 Bell from {{siteName}}: {{terminalTopbarLabel}}",viewLink:"Click to view",terminalTopbarLabel:"Window {{window}} · Pane {{pane}} @ {{device}}"},telegramNotification:{}},sidebar:{noWindows:"No windows",noDevices:"No devices",addDeviceLink:"Add Device",openSettingsLink:"Open Settings",openSettings:"Open Settings",manageDevices:"Manage Devices",settings:"Settings",currentWindow:"Current Window",currentPane:"Current Pane",newWindow:"Create Window",closeWindow:"Close Window",closePane:"Close Pane",addDevice:"Add Device"},window:{noWindows:"No windows",new:"New Window"},validation:{deviceNameRequired:"Device name is required",hostRequired:"Host is required for SSH devices"}}},zh_CN:{translation:{common:{loading:"加载中...",save:"保存",saving:"保存中...",cancel:"取消",add:"添加",delete:"删除",edit:"修改",confirm:"确认",close:"关闭",expand:"展开",collapse:"收起",refresh:"刷新",test:"测试",send:"发送",success:"成功",error:"错误",warning:"警告",info:"信息",yes:"是",no:"否",enabled:"已启用",disabled:"已禁用",pending:"待授权",authorized:"已授权",unknown:"未知",empty:"空",none:"无",default:"默认",optional:"可选",required:"必填",pwaInstallTitle:"安装为应用",pwaInstallHintIOSSafari:"iOS Safari 不会自动弹出安装提示。请点击「分享」,再选择「添加到主屏幕」。",pwaInstallHintIOSChrome:"iOS Chrome 不会自动弹出安装提示。请点击「分享」,再选择「添加到主屏幕」"},nav:{manageDevices:"管理设备",settings:"设置",sidebarExpand:"展开侧边栏",sidebarCollapse:"收起侧边栏",openSidebar:"打开侧边栏",closeSidebar:"关闭侧边栏",jumpToLatest:"跳转到最新",switchToEditor:"切换到编辑器输入",switchToDirect:"切换到直接输入",refreshPage:"刷新页面",refreshPageConfirm:"确定要刷新页面吗?未保存的内容将会丢失。"},device:{title:"设备管理",devices:"设备",addDevice:"添加设备",addDeviceDescription:"填写设备信息并选择连接方式",addFirstDevice:"添加第一个设备",editDevice:"修改设备",editDeviceDescription:"更新设备配置",sectionBasic:"基本信息",sectionConnection:"连接信息",sectionAuth:"认证信息",noDevices:"暂无设备",noDevicesDescription:"添加本地或 SSH 设备开始使用",name:"设备名称",namePlaceholder:"例如:我的服务器",type:"类型",typeLocal:"本地设备",typeSSH:"SSH 远程设备",typeSSHBadge:"SSH",host:"主机",hostPlaceholder:"example.com",port:"端口",username:"用户名",usernamePlaceholder:"root",session:"Tmux 会话名称",sessionPlaceholder:"tmex",sessionHint:'留空将使用默认值 "tmex"',authMode:"认证方式",authPassword:"密码",authKey:"私钥",authAgent:"SSH Agent",authConfigRef:"SSH Config",password:"密码",privateKey:"私钥",privateKeyPlaceholder:"-----BEGIN OPENSSH PRIVATE KEY-----",privateKeyPassphrase:"私钥密码(可选)",passphrase:"私钥密码(可选)",connect:"连接",connected:"已连接",disconnect:"断开",disconnected:"已断开",connecting:"连接中...",deleteConfirm:"删除此设备?",deleteDescription:'设备 "{{name}}" 将被永久移除,此操作无法撤销。',deleteSuccess:"设备已删除",createSuccess:"设备已创建",updateSuccess:"设备已更新",deleteFailed:"删除设备失败",createFailed:"创建设备失败",updateFailed:"更新设备失败",loadFailed:"加载设备列表失败",localDevice:"本地设备",subtitle:"{{username}}@{{host}}:{{port}}",modify:"修改设备",delete:"删除"},terminal:{initializing:"初始化终端...",connecting:"连接设备...",initFailed:"终端初始化失败",inputPlaceholder:"在此输入命令...",clear:"清空",deviceError:"设备错误",deviceErrorWithType:"[{{type}}] 设备错误",noDeviceSelected:"未选择设备",windowClosed:"当前窗口已关闭,请在侧边栏重新选择窗口。",paneClosed:"当前 Pane 已关闭,请在侧边栏重新选择 Pane。",bellNotification:"终端 Bell 提醒",bellDescription:"窗口 {{window}} · Pane {{pane}}",bellFallback:"收到 tmux bell",paneTitle:"Pane {{index}}",activePane:"当前 pane",activeWindow:"当前窗口",editorPlaceholder:"在此输入命令...",editorClear:"清空",editorSendWithEnter:"发送附带回车",editorSendLineByLine:"逐行发送",editorSend:"发送",sendShortcut:"发送 {{key}}",inputModeDirect:"直接输入",inputModeEditor:"编辑器",newWindow:"新建窗口",closeWindow:"关闭窗口",closePane:"关闭 pane"},settings:{title:"系统设置",siteSettings:"站点设置",siteName:"站点名称",siteNamePlaceholder:"tmex",siteUrl:"站点访问 URL",siteUrlPlaceholder:"http://localhost:3000",bellThrottle:"Bell 频控(秒)",notificationThrottle:"通知频控(秒)",enableBrowserBellToast:"开启浏览器 Bell Toast",enableBrowserNotificationToast:"开启浏览器通知 Toast",enableTelegramBellPush:"开启 Telegram Bell 推送",enableTelegramNotificationPush:"开启 Telegram 通知推送",sshReconnectRetries:"SSH 重连次数",sshReconnectDelay:"SSH 重连等待(秒)",language:"语言",languagePlaceholder:"选择语言",language_en_US:"English",language_zh_CN:"简体中文",language_ja_JP:"日本語",theme:"主题",themeLight:"浅色",themeDark:"深色",siteTab:"站点",notificationsTab:"通知",refreshToApply:"刷新后生效",saveSettings:"保存设置",settingsSaved:"站点设置已保存",saveFailed:"保存设置失败",loadFailed:"加载设置失败",restartGateway:"重启 Gateway",restartScheduled:"Gateway 重启请求已发送",restartConfirm:"确定要重启 Gateway 吗?这将中断所有活动连接。",restartFailed:"重启请求失败",sshReconnectMaxRetries:"SSH 重连次数"},telegram:{title:"Telegram Bot 管理",botName:"Bot 名称",botNamePlaceholder:"如:ops-bot",botToken:"Bot Token",botTokenPlaceholder:"123456:AA...",addBot:"新增 Bot",enableBot:"启用 Bot",allowAuthRequests:"允许申请授权",pendingChats:"待授权",chats:"已授权",authorizedChats:"已授权",noPendingChats:"暂无待授权 chat",noAuthorizedChats:"暂无已授权 chat",approve:"批准",authorize:"授权",reject:"拒绝",revokeAuth:"撤销授权",testMessage:"测试消息",sendTestMessage:"发送测试消息",deleteBot:"删除 Bot",tokenOptional:"Token(留空不改)",tokenPlaceholder:"输入新 token",botCreated:"Bot 已创建",botUpdated:"Bot 已更新",botDeleted:"Bot 已删除",authApproved:"授权已批准",chatRemoved:"chat 已移除",testMessageSent:"测试消息已发送",createFailed:"新增 Bot 失败",updateFailed:"更新 Bot 失败",deleteFailed:"删除 Bot 失败",approveFailed:"批准授权失败",removeFailed:"删除 chat 失败",testMessageFailed:"发送测试消息失败",loadBotsFailed:"加载 Bot 列表失败",loadChatsFailed:"加载 chat 列表失败",noBots:"暂无 Bot,先添加一个。",expand:"展开",collapse:"收起",authCount:"已授权 {{authorized}} / 待授权 {{pending}}(总上限 8)",chatId:"chatId",applyTime:"申请时间",gatewayOnline:"🟢 Gateway online @ {{siteName}}",authSuccess:"✅ 已授权,可接收通知。",authPending:"⏳ 已收到授权申请,请在 tmex 设置页审批。",authFailed:"❌ 授权申请失败,请联系管理员。",testMessageTemplate:`🧪 测试消息
|
|
314
314
|
站点:{{siteName}}
|
|
315
315
|
时间:{{time}}`,approveMessageTemplate:`✅ 已通过 tmex 授权。
|
|
316
316
|
Bot:{{botName}}
|
|
317
|
-
时间:{{time}}`,botNotFound:"Bot 未启动或不可用",botNotRunning:"Bot 未启动或不可用"},webhook:{title:"Webhooks",url:"Webhook 地址",secret:"密钥",secretPlaceholder:"用于签名(HMAC-SHA256)",enabled:"启用",eventMask:"事件",add:"添加 Webhook",empty:"暂无 Webhook。",createFailed:"创建 Webhook 失败",deleteFailed:"删除 Webhook 失败",loadFailed:"加载 Webhook 失败"},sshError:{sshConfigRefNotSupported:"当前版本暂不支持 SSH Config 引用,请改为填写 host + username,并选择 Agent/私钥/密码认证",configRefNotSupported:"当前版本暂不支持 SSH Config 引用,请改为填写 host + username,并选择 Agent/私钥/密码认证",agentUnavailable:"SSH Agent 不可用:未检测到 SSH_AUTH_SOCK,请检查 agent 环境",agentNoIdentity:"SSH Agent 未加载可用密钥,请先执行 ssh-add",agentNoIdentities:"SSH Agent 未加载可用密钥,请先执行 ssh-add",authFailed:"认证失败:用户名、密码或密钥不正确,请检查设备配置",authFailedGeneric:"认证失败:用户名、密码或密钥不正确,请检查设备配置",networkUnreachable:"网络不可达:请检查路由、防火墙或 VPN 配置",connectionRefused:"连接被拒绝:无法连接到目标主机,请检查主机地址和端口是否正确",timeout:"连接超时:无法连接到设备,请检查网络或防火墙设置",connectionTimeout:"连接超时:无法连接到设备,请检查网络或防火墙设置",hostNotFound:"主机未找到:无法解析主机地址,请检查 DNS 或主机名是否正确",handshakeFailed:"握手失败:无法建立安全连接,可能是密钥交换算法不兼容",tmuxUnavailable:"远端 tmux 不可用或启动失败,请检查远端是否已安装 tmux,且远端 shell PATH 可找到 tmux",unknown:"连接失败:{{message}}",reconnecting:"连接中断,{{delay}} 秒后自动重连({{attempt}}/{{maxRetries}})",reconnectFailed:"自动重连失败,请手动重试",reconnected:"设备已自动重连"},websocket:{error:"WebSocket 连接错误",checkGateway:"请检查 Gateway 状态",upgradeFailed:"Upgrade failed",invalidMessage:"Invalid message format"},wsError:{checkGateway:"请检查 Gateway 状态"},apiError:{siteNameRequired:"站点名称不能为空",siteUrlInvalid:"站点 URL 必须以 http:// 或 https:// 开头",bellThrottleInvalid:"Bell 频控秒数需在 0-300 之间",sshRetriesInvalid:"SSH 重连次数需在 0-20 之间",sshDelayInvalid:"SSH 重连等待时间需在 1-300 秒之间",languageInvalid:"语言必须是受支持的区域设置之一",botNameRequired:"Bot 名称不能为空",botTokenRequired:"Bot token 不能为空",missingFields:"缺少必填字段",sshRequiresHost:"SSH 设备需要 host 或 sshConfigRef",invalidRequest:"请求无效",deviceNotFound:"Device not found",botNotFound:"Bot 不存在",chatNotFound:"Chat 不存在",urlAndSecretRequired:"URL and secret required",notFound:"Not found"},notification:{clickToJump:"点击跳转到对应 Pane",eventType:{terminal_bell:"🔔 终端 Bell",terminal_notification:"🔔 终端通知",tmux_window_close:"🪟 窗口关闭",tmux_pane_close:"📱 Pane 关闭",device_tmux_missing:"⚠️ Tmux 不可用",device_disconnect:"🔌 设备断开",session_created:"🆕 会话创建",session_closed:"🚪 会话关闭"},site:"站点",device:"设备",window:"窗口",pane:"Pane",time:"时间",directLink:"直达",message:"信息",telegramBell:{title:"🔔 来自 {{siteName}} 的 Bell:{{terminalTopbarLabel}}",viewLink:"点击查看",terminalTopbarLabel:"窗口 {{window}} · Pane {{pane}} @ {{device}}"},telegramNotification:{}},sidebar:{noWindows:"暂无窗口",noDevices:"暂无设备",addDeviceLink:"添加设备",openSettingsLink:"打开设置",openSettings:"打开设置",manageDevices:"管理设备",settings:"设置",currentWindow:"当前窗口",currentPane:"当前 pane",newWindow:"新建窗口",closeWindow:"关闭窗口",closePane:"关闭 pane",addDevice:"添加设备"},window:{noWindows:"暂无窗口",new:"新建窗口"},validation:{deviceNameRequired:"设备名称为必填项",hostRequired:"SSH 设备需要填写主机地址"}}},ja_JP:{translation:{common:{loading:"読み込み中...",save:"保存",saving:"保存中...",cancel:"キャンセル",add:"追加",delete:"削除",edit:"編集",confirm:"確認",close:"閉じる",expand:"展開",collapse:"折りたたむ",refresh:"更新",test:"テスト",send:"送信",success:"成功",error:"エラー",warning:"警告",info:"情報",yes:"はい",no:"いいえ",enabled:"有効",disabled:"無効",pending:"保留中",authorized:"承認済み",unknown:"不明",empty:"空",none:"なし",default:"デフォルト",optional:"任意",required:"必須",pwaInstallTitle:"アプリとしてインストール",pwaInstallHintIOSSafari:"iOS Safari では自動的にインストールプロンプトが表示されません。共有ボタンをタップし、「ホーム画面に追加」を選択してください。",pwaInstallHintIOSChrome:"iOS Chrome では自動的にインストールプロンプトが表示されません。共有ボタンをタップし、「ホーム画面に追加」を選択してください。"},nav:{manageDevices:"デバイス管理",settings:"設定",sidebarExpand:"サイドバーを展開",sidebarCollapse:"サイドバーを折りたたむ",openSidebar:"サイドバーを開く",closeSidebar:"サイドバーを閉じる",jumpToLatest:"最新にジャンプ",switchToEditor:"エディタ入力に切り替え",switchToDirect:"直接入力に切り替え",refreshPage:"ページを更新",refreshPageConfirm:"ページを更新してもよろしいですか?保存されていない内容は失われます。"},device:{title:"デバイス管理",devices:"デバイス",addDevice:"デバイスを追加",addFirstDevice:"最初のデバイスを追加",editDevice:"デバイスを編集",noDevices:"デバイスがありません",noDevicesDescription:"ローカルまたは SSH デバイスを追加して開始",name:"デバイス名",namePlaceholder:"例:My Server",type:"タイプ",typeLocal:"ローカルデバイス",typeSSH:"SSH リモートデバイス",typeSSHBadge:"SSH",host:"ホスト",hostPlaceholder:"example.com",port:"ポート",username:"ユーザー名",usernamePlaceholder:"root",session:"Tmux セッション名",sessionPlaceholder:"tmex",sessionHint:"空の場合、デフォルトの「tmex」が使用されます",authMode:"認証モード",authPassword:"パスワード",authKey:"秘密鍵",authAgent:"SSH Agent",authConfigRef:"SSH Config",password:"パスワード",privateKey:"秘密鍵",privateKeyPlaceholder:"-----BEGIN OPENSSH PRIVATE KEY-----",privateKeyPassphrase:"秘密鍵のパスフレーズ(任意)",passphrase:"パスフレーズ",connect:"接続",connected:"接続済み",disconnect:"切断",disconnected:"切断済み",connecting:"接続中...",deleteConfirm:"このデバイスを削除しますか?",deleteSuccess:"デバイスを削除しました",createSuccess:"デバイスを作成しました",updateSuccess:"デバイスを更新しました",deleteFailed:"デバイスの削除に失敗しました",createFailed:"デバイスの作成に失敗しました",updateFailed:"デバイスの更新に失敗しました",loadFailed:"デバイス一覧の読み込みに失敗しました",localDevice:"ローカルデバイス",subtitle:"{{username}}@{{host}}:{{port}}",modify:"デバイスを変更",delete:"削除"},terminal:{initializing:"ターミナルを初期化中...",connecting:"デバイスに接続中...",initFailed:"ターミナルの初期化に失敗しました",inputPlaceholder:"ここにコマンドを入力...",clear:"クリア",deviceError:"デバイスエラー",deviceErrorWithType:"[{{type}}] デバイスエラー",noDeviceSelected:"デバイスが選択されていません",windowClosed:"現在のウィンドウは閉じられました。サイドバーからウィンドウを選択してください。",paneClosed:"現在のペインは閉じられました。サイドバーからペインを選択してください。",bellNotification:"ターミナルベル通知",bellDescription:"ウィンドウ {{window}} · ペイン {{pane}}",bellFallback:"tmux ベルを受信",paneTitle:"ペイン {{index}}",activePane:"現在のペイン",activeWindow:"現在のウィンドウ",editorPlaceholder:"ここにコマンドを入力...",editorClear:"クリア",editorSendWithEnter:"Enter で送信",editorSendLineByLine:"1行ずつ送信",editorSend:"送信",sendShortcut:"{{key}} を送信",inputModeDirect:"直接入力",inputModeEditor:"エディタ",newWindow:"新規ウィンドウ",closeWindow:"ウィンドウを閉じる",closePane:"ペインを閉じる"},settings:{title:"システム設定",siteSettings:"サイト設定",siteName:"サイト名",siteNamePlaceholder:"tmex",siteUrl:"サイト URL",siteUrlPlaceholder:"http://localhost:3000",bellThrottle:"ベル制限(秒)",notificationThrottle:"通知制限(秒)",enableBrowserBellToast:"ブラウザベル Toast を有効にする",enableBrowserNotificationToast:"ブラウザ通知 Toast を有効にする",enableTelegramBellPush:"Telegram ベルプッシュを有効にする",enableTelegramNotificationPush:"Telegram 通知プッシュを有効にする",sshReconnectRetries:"SSH 再接続試行回数",sshReconnectDelay:"SSH 再接続待機(秒)",language:"言語",languagePlaceholder:"言語を選択",language_en_US:"English",language_zh_CN:"简体中文",language_ja_JP:"日本語",theme:"テーマ",themeLight:"ライト",themeDark:"ダーク",siteTab:"サイト",notificationsTab:"通知",refreshToApply:"言語変更を適用するには更新してください",saveSettings:"設定を保存",settingsSaved:"設定を保存しました",saveFailed:"設定の保存に失敗しました",loadFailed:"設定の読み込みに失敗しました",restartGateway:"Gateway を再起動",restartScheduled:"Gateway の再起動が予定されました",restartConfirm:"Gateway を再起動してもよろしいですか?すべてのアクティブ接続が中断されます。",restartFailed:"Gateway の再起動に失敗しました",sshReconnectMaxRetries:"SSH 再接続試行回数"},telegram:{title:"Telegram Bot 管理",botName:"Bot 名",botNamePlaceholder:"例:ops-bot",botToken:"Bot Token",botTokenPlaceholder:"123456:AA...",addBot:"Bot を追加",enableBot:"Bot を有効にする",allowAuthRequests:"認証リクエストを許可",pendingChats:"承認待ち",chats:"承認済み",authorizedChats:"承認済み",noPendingChats:"承認待ちのチャットはありません",noAuthorizedChats:"承認済みのチャットはありません",approve:"承認",authorize:"認証",reject:"拒否",revokeAuth:"認証を取り消す",testMessage:"テストメッセージ",sendTestMessage:"テストメッセージを送信",deleteBot:"Bot を削除",tokenOptional:"Token(変更しない場合は空)",tokenPlaceholder:"新しい token を入力",botCreated:"Bot を作成しました",botUpdated:"Bot を更新しました",botDeleted:"Bot を削除しました",authApproved:"認証が承認されました",chatRemoved:"チャットを削除しました",testMessageSent:"テストメッセージを送信しました",createFailed:"Bot の作成に失敗しました",updateFailed:"Bot の更新に失敗しました",deleteFailed:"Bot の削除に失敗しました",approveFailed:"認証の承認に失敗しました",removeFailed:"チャットの削除に失敗しました",testMessageFailed:"テストメッセージの送信に失敗しました",loadBotsFailed:"Bot 一覧の読み込みに失敗しました",loadChatsFailed:"チャット一覧の読み込みに失敗しました",noBots:"Bot がありません。まず追加してください。",expand:"展開",collapse:"折りたたむ",authCount:"承認済み {{authorized}} / 承認待ち {{pending}}(最大 8)",chatId:"Chat ID",applyTime:"申請時間",gatewayOnline:"🟢 Gateway online @ {{siteName}}",authSuccess:"✅ 承認されました。通知を受信できます。",authPending:"⏳ 認証リクエストを受信しました。tmex 設定ページで承認してください。",authFailed:"❌ 認証リクエストに失敗しました。管理者に連絡してください。",testMessageTemplate:`🧪 テストメッセージ
|
|
317
|
+
时间:{{time}}`,botNotFound:"Bot 未启动或不可用",botNotRunning:"Bot 未启动或不可用"},webhook:{title:"Webhooks",url:"Webhook 地址",secret:"密钥",secretPlaceholder:"用于签名(HMAC-SHA256)",enabled:"启用",eventMask:"事件",add:"添加 Webhook",empty:"暂无 Webhook。",createFailed:"创建 Webhook 失败",deleteFailed:"删除 Webhook 失败",loadFailed:"加载 Webhook 失败"},sshError:{sshConfigRefNotSupported:"当前版本暂不支持 SSH Config 引用,请改为填写 host + username,并选择 Agent/私钥/密码认证",configRefNotSupported:"当前版本暂不支持 SSH Config 引用,请改为填写 host + username,并选择 Agent/私钥/密码认证",agentUnavailable:"SSH Agent 不可用:未检测到 SSH_AUTH_SOCK,请检查 agent 环境",agentNoIdentity:"SSH Agent 未加载可用密钥,请先执行 ssh-add",agentNoIdentities:"SSH Agent 未加载可用密钥,请先执行 ssh-add",authFailed:"认证失败:用户名、密码或密钥不正确,请检查设备配置",authFailedGeneric:"认证失败:用户名、密码或密钥不正确,请检查设备配置",networkUnreachable:"网络不可达:请检查路由、防火墙或 VPN 配置",connectionRefused:"连接被拒绝:无法连接到目标主机,请检查主机地址和端口是否正确",timeout:"连接超时:无法连接到设备,请检查网络或防火墙设置",connectionTimeout:"连接超时:无法连接到设备,请检查网络或防火墙设置",hostNotFound:"主机未找到:无法解析主机地址,请检查 DNS 或主机名是否正确",handshakeFailed:"握手失败:无法建立安全连接,可能是密钥交换算法不兼容",tmuxUnavailable:"远端 tmux 不可用或启动失败,请检查远端是否已安装 tmux,且远端 shell PATH 可找到 tmux",unknown:"连接失败:{{message}}",reconnecting:"连接中断,{{delay}} 秒后自动重连({{attempt}}/{{maxRetries}})",reconnectFailed:"自动重连失败,请手动重试",reconnected:"设备已自动重连"},websocket:{error:"WebSocket 连接错误",checkGateway:"请检查 Gateway 状态",upgradeFailed:"Upgrade failed",invalidMessage:"Invalid message format"},wsError:{checkGateway:"请检查 Gateway 状态"},apiError:{siteNameRequired:"站点名称不能为空",siteUrlInvalid:"站点 URL 必须以 http:// 或 https:// 开头",bellThrottleInvalid:"Bell 频控秒数需在 0-300 之间",sshRetriesInvalid:"SSH 重连次数需在 0-20 之间",sshDelayInvalid:"SSH 重连等待时间需在 1-300 秒之间",languageInvalid:"语言必须是受支持的区域设置之一",botNameRequired:"Bot 名称不能为空",botTokenRequired:"Bot token 不能为空",missingFields:"缺少必填字段",sshRequiresHost:"SSH 设备需要 host 或 sshConfigRef",invalidRequest:"请求无效",deviceNotFound:"Device not found",botNotFound:"Bot 不存在",chatNotFound:"Chat 不存在",urlAndSecretRequired:"URL and secret required",notFound:"Not found"},notification:{clickToJump:"点击跳转到对应 Pane",eventType:{terminal_bell:"🔔 终端 Bell",terminal_notification:"🔔 终端通知",tmux_window_close:"🪟 窗口关闭",tmux_pane_close:"📱 Pane 关闭",device_tmux_missing:"⚠️ Tmux 不可用",device_disconnect:"🔌 设备断开",session_created:"🆕 会话创建",session_closed:"🚪 会话关闭"},site:"站点",device:"设备",window:"窗口",pane:"Pane",time:"时间",directLink:"直达",message:"信息",telegramBell:{title:"🔔 来自 {{siteName}} 的 Bell:{{terminalTopbarLabel}}",viewLink:"点击查看",terminalTopbarLabel:"窗口 {{window}} · Pane {{pane}} @ {{device}}"},telegramNotification:{}},sidebar:{noWindows:"暂无窗口",noDevices:"暂无设备",addDeviceLink:"添加设备",openSettingsLink:"打开设置",openSettings:"打开设置",manageDevices:"管理设备",settings:"设置",currentWindow:"当前窗口",currentPane:"当前 pane",newWindow:"新建窗口",closeWindow:"关闭窗口",closePane:"关闭 pane",addDevice:"添加设备"},window:{noWindows:"暂无窗口",new:"新建窗口"},validation:{deviceNameRequired:"设备名称为必填项",hostRequired:"SSH 设备需要填写主机地址"}}},ja_JP:{translation:{common:{loading:"読み込み中...",save:"保存",saving:"保存中...",cancel:"キャンセル",add:"追加",delete:"削除",edit:"編集",confirm:"確認",close:"閉じる",expand:"展開",collapse:"折りたたむ",refresh:"更新",test:"テスト",send:"送信",success:"成功",error:"エラー",warning:"警告",info:"情報",yes:"はい",no:"いいえ",enabled:"有効",disabled:"無効",pending:"保留中",authorized:"承認済み",unknown:"不明",empty:"空",none:"なし",default:"デフォルト",optional:"任意",required:"必須",pwaInstallTitle:"アプリとしてインストール",pwaInstallHintIOSSafari:"iOS Safari では自動的にインストールプロンプトが表示されません。共有ボタンをタップし、「ホーム画面に追加」を選択してください。",pwaInstallHintIOSChrome:"iOS Chrome では自動的にインストールプロンプトが表示されません。共有ボタンをタップし、「ホーム画面に追加」を選択してください。"},nav:{manageDevices:"デバイス管理",settings:"設定",sidebarExpand:"サイドバーを展開",sidebarCollapse:"サイドバーを折りたたむ",openSidebar:"サイドバーを開く",closeSidebar:"サイドバーを閉じる",jumpToLatest:"最新にジャンプ",switchToEditor:"エディタ入力に切り替え",switchToDirect:"直接入力に切り替え",refreshPage:"ページを更新",refreshPageConfirm:"ページを更新してもよろしいですか?保存されていない内容は失われます。"},device:{title:"デバイス管理",devices:"デバイス",addDevice:"デバイスを追加",addDeviceDescription:"デバイス情報を入力し、接続方法を選択してください",addFirstDevice:"最初のデバイスを追加",editDevice:"デバイスを編集",editDeviceDescription:"デバイス設定を更新",sectionBasic:"基本情報",sectionConnection:"接続情報",sectionAuth:"認証情報",noDevices:"デバイスがありません",noDevicesDescription:"ローカルまたは SSH デバイスを追加して開始",name:"デバイス名",namePlaceholder:"例:My Server",type:"タイプ",typeLocal:"ローカルデバイス",typeSSH:"SSH リモートデバイス",typeSSHBadge:"SSH",host:"ホスト",hostPlaceholder:"example.com",port:"ポート",username:"ユーザー名",usernamePlaceholder:"root",session:"Tmux セッション名",sessionPlaceholder:"tmex",sessionHint:"空の場合、デフォルトの「tmex」が使用されます",authMode:"認証モード",authPassword:"パスワード",authKey:"秘密鍵",authAgent:"SSH Agent",authConfigRef:"SSH Config",password:"パスワード",privateKey:"秘密鍵",privateKeyPlaceholder:"-----BEGIN OPENSSH PRIVATE KEY-----",privateKeyPassphrase:"秘密鍵のパスフレーズ(任意)",passphrase:"パスフレーズ",connect:"接続",connected:"接続済み",disconnect:"切断",disconnected:"切断済み",connecting:"接続中...",deleteConfirm:"このデバイスを削除しますか?",deleteDescription:"デバイス「{{name}}」は完全に削除されます。この操作は取り消せません。",deleteSuccess:"デバイスを削除しました",createSuccess:"デバイスを作成しました",updateSuccess:"デバイスを更新しました",deleteFailed:"デバイスの削除に失敗しました",createFailed:"デバイスの作成に失敗しました",updateFailed:"デバイスの更新に失敗しました",loadFailed:"デバイス一覧の読み込みに失敗しました",localDevice:"ローカルデバイス",subtitle:"{{username}}@{{host}}:{{port}}",modify:"デバイスを変更",delete:"削除"},terminal:{initializing:"ターミナルを初期化中...",connecting:"デバイスに接続中...",initFailed:"ターミナルの初期化に失敗しました",inputPlaceholder:"ここにコマンドを入力...",clear:"クリア",deviceError:"デバイスエラー",deviceErrorWithType:"[{{type}}] デバイスエラー",noDeviceSelected:"デバイスが選択されていません",windowClosed:"現在のウィンドウは閉じられました。サイドバーからウィンドウを選択してください。",paneClosed:"現在のペインは閉じられました。サイドバーからペインを選択してください。",bellNotification:"ターミナルベル通知",bellDescription:"ウィンドウ {{window}} · ペイン {{pane}}",bellFallback:"tmux ベルを受信",paneTitle:"ペイン {{index}}",activePane:"現在のペイン",activeWindow:"現在のウィンドウ",editorPlaceholder:"ここにコマンドを入力...",editorClear:"クリア",editorSendWithEnter:"Enter で送信",editorSendLineByLine:"1行ずつ送信",editorSend:"送信",sendShortcut:"{{key}} を送信",inputModeDirect:"直接入力",inputModeEditor:"エディタ",newWindow:"新規ウィンドウ",closeWindow:"ウィンドウを閉じる",closePane:"ペインを閉じる"},settings:{title:"システム設定",siteSettings:"サイト設定",siteName:"サイト名",siteNamePlaceholder:"tmex",siteUrl:"サイト URL",siteUrlPlaceholder:"http://localhost:3000",bellThrottle:"ベル制限(秒)",notificationThrottle:"通知制限(秒)",enableBrowserBellToast:"ブラウザベル Toast を有効にする",enableBrowserNotificationToast:"ブラウザ通知 Toast を有効にする",enableTelegramBellPush:"Telegram ベルプッシュを有効にする",enableTelegramNotificationPush:"Telegram 通知プッシュを有効にする",sshReconnectRetries:"SSH 再接続試行回数",sshReconnectDelay:"SSH 再接続待機(秒)",language:"言語",languagePlaceholder:"言語を選択",language_en_US:"English",language_zh_CN:"简体中文",language_ja_JP:"日本語",theme:"テーマ",themeLight:"ライト",themeDark:"ダーク",siteTab:"サイト",notificationsTab:"通知",refreshToApply:"言語変更を適用するには更新してください",saveSettings:"設定を保存",settingsSaved:"設定を保存しました",saveFailed:"設定の保存に失敗しました",loadFailed:"設定の読み込みに失敗しました",restartGateway:"Gateway を再起動",restartScheduled:"Gateway の再起動が予定されました",restartConfirm:"Gateway を再起動してもよろしいですか?すべてのアクティブ接続が中断されます。",restartFailed:"Gateway の再起動に失敗しました",sshReconnectMaxRetries:"SSH 再接続試行回数"},telegram:{title:"Telegram Bot 管理",botName:"Bot 名",botNamePlaceholder:"例:ops-bot",botToken:"Bot Token",botTokenPlaceholder:"123456:AA...",addBot:"Bot を追加",enableBot:"Bot を有効にする",allowAuthRequests:"認証リクエストを許可",pendingChats:"承認待ち",chats:"承認済み",authorizedChats:"承認済み",noPendingChats:"承認待ちのチャットはありません",noAuthorizedChats:"承認済みのチャットはありません",approve:"承認",authorize:"認証",reject:"拒否",revokeAuth:"認証を取り消す",testMessage:"テストメッセージ",sendTestMessage:"テストメッセージを送信",deleteBot:"Bot を削除",tokenOptional:"Token(変更しない場合は空)",tokenPlaceholder:"新しい token を入力",botCreated:"Bot を作成しました",botUpdated:"Bot を更新しました",botDeleted:"Bot を削除しました",authApproved:"認証が承認されました",chatRemoved:"チャットを削除しました",testMessageSent:"テストメッセージを送信しました",createFailed:"Bot の作成に失敗しました",updateFailed:"Bot の更新に失敗しました",deleteFailed:"Bot の削除に失敗しました",approveFailed:"認証の承認に失敗しました",removeFailed:"チャットの削除に失敗しました",testMessageFailed:"テストメッセージの送信に失敗しました",loadBotsFailed:"Bot 一覧の読み込みに失敗しました",loadChatsFailed:"チャット一覧の読み込みに失敗しました",noBots:"Bot がありません。まず追加してください。",expand:"展開",collapse:"折りたたむ",authCount:"承認済み {{authorized}} / 承認待ち {{pending}}(最大 8)",chatId:"Chat ID",applyTime:"申請時間",gatewayOnline:"🟢 Gateway online @ {{siteName}}",authSuccess:"✅ 承認されました。通知を受信できます。",authPending:"⏳ 認証リクエストを受信しました。tmex 設定ページで承認してください。",authFailed:"❌ 認証リクエストに失敗しました。管理者に連絡してください。",testMessageTemplate:`🧪 テストメッセージ
|
|
318
318
|
サイト:{{siteName}}
|
|
319
319
|
時間:{{time}}`,approveMessageTemplate:`✅ tmex で承認されました。
|
|
320
320
|
Bot:{{botName}}
|
|
@@ -445,5 +445,5 @@ Avoid returning a new reference inside your input selector, e.g.
|
|
|
445
445
|
${f.right}px ${f.bottom}px,
|
|
446
446
|
${f.right}px ${f.top}px,
|
|
447
447
|
${f.left}px ${f.top}px
|
|
448
|
-
)`}return nn.jsx("div",{ref:a,role:"presentation","data-base-ui-inert":"",...l,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:c}})});C_.displayName="InternalBackdrop";const O_=x.forwardRef(function(n,a){const{keepMounted:i=!1,...l}=n,{store:c}=Wl(),f=c.useState("mounted"),h=c.useState("modal"),g=c.useState("open");return f||i?nn.jsx(bw.Provider,{value:i,children:nn.jsxs(JM,{ref:a,...l,children:[f&&h===!0&&nn.jsx(C_,{ref:c.context.internalBackdropRef,inert:$F(!g)}),n.children]})}):null});O_.displayName="DialogPortal";function D_(o){const n=x.useRef(!0);n.current&&(n.current=!1,o())}let hA={},pA={},mA="";function qF(o){if(typeof document>"u")return!1;const n=fn(o);return Gn(n).innerWidth-n.documentElement.clientWidth>0}function GF(o){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const a=fn(o),i=a.documentElement,l=a.body,c=js(i)?i:l,f=c.style.overflowY,h=i.style.scrollbarGutter;i.style.scrollbarGutter="stable",c.style.overflowY="scroll";const g=c.offsetWidth;c.style.overflowY="hidden";const m=c.offsetWidth;return c.style.overflowY=f,i.style.scrollbarGutter=h,g===m}function XF(o){const n=fn(o),a=n.documentElement,i=n.body,l=js(a)?a:i,c={overflowY:l.style.overflowY,overflowX:l.style.overflowX};return Object.assign(l.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(l.style,c)}}function QF(o){var v;const n=fn(o),a=n.documentElement,i=n.body,l=Gn(a);let c=0,f=0,h=!1;const g=Nn.create();if(rw&&(((v=l.visualViewport)==null?void 0:v.scale)??1)!==1)return()=>{};function m(){const w=l.getComputedStyle(a),E=l.getComputedStyle(i),A=(w.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";c=a.scrollTop,f=a.scrollLeft,hA={scrollbarGutter:a.style.scrollbarGutter,overflowY:a.style.overflowY,overflowX:a.style.overflowX},mA=a.style.scrollBehavior,pA={position:i.style.position,height:i.style.height,width:i.style.width,boxSizing:i.style.boxSizing,overflowY:i.style.overflowY,overflowX:i.style.overflowX,scrollBehavior:i.style.scrollBehavior};const k=a.scrollHeight>a.clientHeight,U=a.scrollWidth>a.clientWidth,M=w.overflowY==="scroll"||E.overflowY==="scroll",Y=w.overflowX==="scroll"||E.overflowX==="scroll",$=Math.max(0,l.innerWidth-i.clientWidth),_=Math.max(0,l.innerHeight-i.clientHeight),z=parseFloat(E.marginTop)+parseFloat(E.marginBottom),te=parseFloat(E.marginLeft)+parseFloat(E.marginRight),H=js(a)?a:i;if(h=GF(o),h){a.style.scrollbarGutter=A,H.style.overflowY="hidden",H.style.overflowX="hidden";return}Object.assign(a.style,{scrollbarGutter:A,overflowY:"hidden",overflowX:"hidden"}),(k||M)&&(a.style.overflowY="scroll"),(U||Y)&&(a.style.overflowX="scroll"),Object.assign(i.style,{position:"relative",height:z||_?`calc(100dvh - ${z+_}px)`:"100dvh",width:te||$?`calc(100vw - ${te+$}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),i.scrollTop=c,i.scrollLeft=f,a.setAttribute("data-base-ui-scroll-locked",""),a.style.scrollBehavior="unset"}function b(){Object.assign(a.style,hA),Object.assign(i.style,pA),h||(a.scrollTop=c,a.scrollLeft=f,a.removeAttribute("data-base-ui-scroll-locked"),a.style.scrollBehavior=mA)}function p(){b(),g.request(m)}return m(),l.addEventListener("resize",p),()=>{g.cancel(),b(),typeof l.removeEventListener=="function"&&l.removeEventListener("resize",p)}}class WF{constructor(){Xe(this,"lockCount",0);Xe(this,"restore",null);Xe(this,"timeoutLock",Fa.create());Xe(this,"timeoutUnlock",Fa.create());Xe(this,"release",()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)});Xe(this,"unlock",()=>{var n;this.lockCount===0&&this.restore&&((n=this.restore)==null||n.call(this),this.restore=null)})}acquire(n){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(n)),this.release}lock(n){if(this.lockCount===0||this.restore!==null)return;const i=fn(n).documentElement,l=Gn(i).getComputedStyle(i).overflowY;if(l==="hidden"||l==="clip"){this.restore=qN;return}const c=xM||!qF(n);this.restore=c?XF(n):QF(n)}}const KF=new WF;function JF(o=!0,n=null){pt(()=>{if(o)return KF.acquire(n)},[o,n])}function ZF(o){const n=x.useRef(""),a=x.useCallback(l=>{l.defaultPrevented||(n.current=l.pointerType,o(l,l.pointerType))},[o]);return{onClick:x.useCallback(l=>{if(l.detail===0){o(l,"keyboard");return}"pointerType"in l?o(l,l.pointerType):o(l,n.current),n.current=""},[o]),onPointerDown:a}}function e7(o){const[n,a]=x.useState(null),i=it((h,g)=>{o||a(g||(xM?"touch":""))}),l=x.useCallback(()=>{a(null)},[]),{onClick:c,onPointerDown:f}=ZF(i);return x.useMemo(()=>({openMethod:n,reset:l,triggerProps:{onClick:c,onPointerDown:f}}),[n,l,c,f])}function t7(o){const{store:n,parentContext:a,actionsRef:i}=o,l=n.useState("open"),c=n.useState("disablePointerDismissal"),f=n.useState("modal"),h=n.useState("popupElement"),{openMethod:g,triggerProps:m,reset:b}=e7(l);f_(n);const{forceUnmount:p}=h_(l,n,()=>{b()}),v=it(H=>{const J=yn(H);return J.preventUnmountOnClose=()=>{n.set("preventUnmountingOnClose",!0)},J}),w=x.useCallback(()=>{n.setOpen(!1,v(QN))},[n,v]);x.useImperativeHandle(i,()=>({unmount:p,close:w}),[p,w]);const E=g_({popupStore:n,onOpenChange:n.setOpen,treatPopupAsFloatingElement:!0,noEmit:!0}),[T,C]=x.useState(0),A=T===0,k=LF(E),U=s_(E,{outsidePressEvent(){return n.context.internalBackdropRef.current||n.context.backdropRef.current?"intentional":{mouse:f==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}},outsidePress(H){if(!n.context.outsidePressEnabledRef.current||"button"in H&&H.button!==0||"touches"in H&&H.touches.length!==1)return!1;const J=qo(H);if(A&&!c){const N=J;return f&&(n.context.internalBackdropRef.current||n.context.backdropRef.current)?n.context.internalBackdropRef.current===N||n.context.backdropRef.current===N||Yt(N,h)&&!(N!=null&&N.hasAttribute("data-base-ui-portal")):!0}return!1},escapeKey:A});JF(l&&f===!0,h);const{getReferenceProps:M,getFloatingProps:Y,getTriggerProps:$}=b_([k,U]);n.useContextCallback("onNestedDialogOpen",H=>{C(H+1)}),n.useContextCallback("onNestedDialogClose",()=>{C(0)}),x.useEffect(()=>(a!=null&&a.onNestedDialogOpen&&l&&a.onNestedDialogOpen(T),a!=null&&a.onNestedDialogClose&&!l&&a.onNestedDialogClose(),()=>{a!=null&&a.onNestedDialogClose&&l&&a.onNestedDialogClose()}),[l,a,T]);const _=x.useMemo(()=>M(m),[M,m]),z=x.useMemo(()=>$(m),[$,m]),te=x.useMemo(()=>Y(),[Y]);n.useSyncedValues({openMethod:g,activeTriggerProps:_,inactiveTriggerProps:z,popupProps:te,floatingRootContext:E,nestedOpenDialogCount:T})}const n7={...m_,modal:zt(o=>o.modal),nested:zt(o=>o.nested),nestedOpenDialogCount:zt(o=>o.nestedOpenDialogCount),disablePointerDismissal:zt(o=>o.disablePointerDismissal),openMethod:zt(o=>o.openMethod),descriptionElementId:zt(o=>o.descriptionElementId),titleElementId:zt(o=>o.titleElementId),viewportElement:zt(o=>o.viewportElement),role:zt(o=>o.role)};class o7 extends mw{constructor(a){super(r7(a),{popupRef:x.createRef(),backdropRef:x.createRef(),internalBackdropRef:x.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:new Sg,onOpenChange:void 0,onOpenChangeComplete:void 0},n7);Xe(this,"setOpen",(a,i)=>{var h,g,m,b;if(i.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},!a&&i.trigger==null&&this.state.activeTriggerId!=null&&(i.trigger=this.state.activeTriggerElement??void 0),(g=(h=this.context).onOpenChange)==null||g.call(h,a,i),i.isCanceled)return;const l={open:a,nativeEvent:i.event,reason:i.reason,nested:this.state.nested};(m=this.state.floatingRootContext.context.events)==null||m.emit("openchange",l);const c={open:a},f=((b=i.trigger)==null?void 0:b.id)??null;(f||a)&&(c.activeTriggerId=f,c.activeTriggerElement=i.trigger??null),this.update(c)})}}function r7(o={}){return{...p_(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,role:"dialog",...o}}function a7(o){const{children:n,open:a,defaultOpen:i=!1,onOpenChange:l,onOpenChangeComplete:c,disablePointerDismissal:f=!1,modal:h=!0,actionsRef:g,handle:m,triggerId:b,defaultTriggerId:p=null}=o,v=Wl(!0),w=!!v,E=gr(()=>(m==null?void 0:m.store)??new o7({open:i,openProp:a,activeTriggerId:p,triggerIdProp:b,modal:h,disablePointerDismissal:f,nested:w})).current;D_(()=>{a===void 0&&E.state.open===!1&&i===!0&&E.update({open:!0,activeTriggerId:p})}),E.useControlledProp("openProp",a),E.useControlledProp("triggerIdProp",b),E.useSyncedValues({disablePointerDismissal:f,nested:w,modal:h}),E.useContextCallback("onOpenChange",l),E.useContextCallback("onOpenChangeComplete",c);const T=E.useState("payload");t7({store:E,actionsRef:g,parentContext:v==null?void 0:v.store.context});const C=x.useMemo(()=>({store:E}),[E]);return nn.jsx(cw.Provider,{value:C,children:typeof n=="function"?n({payload:T}):n})}const A_=x.forwardRef(function(n,a){const{render:i,className:l,id:c,...f}=n,{store:h}=Wl(),g=Wf(c);return h.useSyncedValueWithCleanup("titleElementId",g),Ln("h2",n,{ref:a,props:[{id:g},f]})});A_.displayName="DialogTitle";function i7({...o}){return re.jsxDEV(a7,{"data-slot":"sheet",...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:11,columnNumber:10},this)}function s7({...o}){return re.jsxDEV(O_,{"data-slot":"sheet-portal",...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:23,columnNumber:10},this)}function l7({className:o,...n}){return re.jsxDEV(VM,{"data-slot":"sheet-overlay",className:Pt("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:28,columnNumber:5},this)}function c7({className:o,children:n,side:a="right",showCloseButton:i=!0,...l}){return re.jsxDEV(s7,{children:[re.jsxDEV(l7,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:48,columnNumber:7},this),re.jsxDEV(T_,{"data-slot":"sheet-content","data-side":a,className:Pt("bg-background data-open:animate-in data-closed:animate-out data-[side=right]:data-closed:slide-out-to-right-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=top]:data-closed:slide-out-to-top-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:fade-out-0 data-open:fade-in-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=bottom]:data-open:slide-in-from-bottom-10 fixed z-50 flex flex-col gap-4 bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",o),...l,children:[n,i&&re.jsxDEV(FM,{"data-slot":"sheet-close",render:re.jsxDEV(ow,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:60,columnNumber:15},this),children:[re.jsxDEV(BN,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:67,columnNumber:13},this),re.jsxDEV("span",{className:"sr-only",children:"Close"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:69,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:57,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:49,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:47,columnNumber:5},this)}function u7({className:o,...n}){return re.jsxDEV("div",{"data-slot":"sheet-header",className:Pt("gap-0.5 p-4 flex flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:79,columnNumber:5},this)}function d7({className:o,...n}){return re.jsxDEV(A_,{"data-slot":"sheet-title",className:Pt("text-foreground text-base font-medium",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:99,columnNumber:5},this)}function f7({className:o,...n}){return re.jsxDEV(YM,{"data-slot":"sheet-description",className:Pt("text-muted-foreground text-sm",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:112,columnNumber:5},this)}const vw=x.createContext(void 0);vw.displayName="TooltipRootContext";function th(o){const n=x.useContext(vw);if(n===void 0&&!o)throw new Error("Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>.");return n}const h7={...m_,disabled:zt(o=>o.disabled),instantType:zt(o=>o.instantType),isInstantPhase:zt(o=>o.isInstantPhase),trackCursorAxis:zt(o=>o.trackCursorAxis),disableHoverablePopup:zt(o=>o.disableHoverablePopup),lastOpenChangeReason:zt(o=>o.openChangeReason),closeDelay:zt(o=>o.closeDelay),hasViewport:zt(o=>o.hasViewport)};class Sw extends mw{constructor(a){super({...p7(),...a},{popupRef:x.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:new Sg},h7);Xe(this,"setOpen",(a,i)=>{var m,b;const l=i.reason,c=l===ea,f=a&&l===jm,h=!a&&(l===zf||l===QS);if(i.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},(b=(m=this.context).onOpenChange)==null||b.call(m,a,i),i.isCanceled)return;const g=()=>{var w;const p={open:a,openChangeReason:l};f?p.instantType="focus":h?p.instantType="dismiss":l===ea&&(p.instantType=void 0);const v=((w=i.trigger)==null?void 0:w.id)??null;(v||a)&&(p.activeTriggerId=v,p.activeTriggerElement=i.trigger??null),this.update(p)};c?zs.flushSync(g):g()})}static useStore(a,i){const l=gr(()=>new Sw(i)).current,c=a??l,f=g_({popupStore:c,onOpenChange:c.setOpen});return c.state.floatingRootContext=f,c}}function p7(){return{...p_(),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:"none",disableHoverablePopup:!1,openChangeReason:null,closeDelay:0,hasViewport:!1}}const N_=u_(function(n){const{disabled:a=!1,defaultOpen:i=!1,open:l,disableHoverablePopup:c=!1,trackCursorAxis:f="none",actionsRef:h,onOpenChange:g,onOpenChangeComplete:m,handle:b,triggerId:p,defaultTriggerId:v=null,children:w}=n,E=Sw.useStore(b==null?void 0:b.store,{open:i,openProp:l,activeTriggerId:v,triggerIdProp:p});D_(()=>{l===void 0&&E.state.open===!1&&i===!0&&E.update({open:!0,activeTriggerId:v})}),E.useControlledProp("openProp",l),E.useControlledProp("triggerIdProp",p),E.useContextCallback("onOpenChange",g),E.useContextCallback("onOpenChangeComplete",m);const T=E.useState("open"),C=!a&&T,A=E.useState("activeTriggerId"),k=E.useState("payload");E.useSyncedValues({trackCursorAxis:f,disableHoverablePopup:c}),pt(()=>{T&&a&&E.setOpen(!1,yn(DB))},[T,a,E]),E.useSyncedValue("disabled",a),f_(E);const{forceUnmount:U,transitionStatus:M}=h_(C,E),Y=E.useState("isInstantPhase"),$=E.useState("instantType"),_=E.useState("lastOpenChangeReason"),z=x.useRef(null);pt(()=>{M==="ending"&&_===fg||M!=="ending"&&Y?($!=="delay"&&(z.current=$),E.set("instantType","delay")):z.current!==null&&(E.set("instantType",z.current),z.current=null)},[M,Y,_,$,E]),pt(()=>{C&&A==null&&E.set("payload",void 0)},[E,A,C]);const te=x.useCallback(()=>{E.setOpen(!1,m7(E,QN))},[E]);x.useImperativeHandle(h,()=>({unmount:U,close:te}),[U,te]);const H=E.useState("floatingRootContext"),J=s_(H,{enabled:!a,referencePress:!0}),N=J8(H,{enabled:!a&&f!=="none",axis:f==="none"?void 0:f}),{getReferenceProps:j,getFloatingProps:ne,getTriggerProps:Z}=b_([J,N]),P=x.useMemo(()=>j(),[j]),oe=x.useMemo(()=>Z(),[Z]),I=x.useMemo(()=>ne(),[ne]);return E.useSyncedValues({activeTriggerProps:P,inactiveTriggerProps:oe,popupProps:I}),nn.jsx(vw.Provider,{value:E,children:typeof w=="function"?w({payload:k}):w})});N_.displayName="TooltipRoot";function m7(o,n){const a=yn(n);return a.preventUnmountOnClose=()=>{o.set("preventUnmountingOnClose",!0)},a}const M_=x.createContext(void 0);M_.displayName="TooltipProviderContext";function g7(){return x.useContext(M_)}let y7=(function(o){return o[o.popupOpen=ng.popupOpen]="popupOpen",o.triggerDisabled="data-trigger-disabled",o})({});const b7=600,__=dF(function(n,a){const{className:i,render:l,handle:c,payload:f,disabled:h,delay:g,closeDelay:m,id:b,...p}=n,v=th(!0),w=(c==null?void 0:c.store)??v;if(!w)throw new Error("Base UI: <Tooltip.Trigger> must be either used within a <Tooltip.Root> component or provided with a handle.");const E=Wf(b),T=w.useState("isTriggerActive",E),C=w.useState("isOpenedByTrigger",E),A=w.useState("floatingRootContext"),k=x.useRef(null),U=g??b7,M=m??0,{registerTrigger:Y,isMountedByThisTrigger:$}=wF(E,k,w,{payload:f,closeDelay:M}),_=g7(),{delayRef:z,isInstantPhase:te,hasProvider:H}=B8(A,{open:C});w.useSyncedValue("isInstantPhase",te);const J=w.useState("disabled"),N=h??J,j=w.useState("trackCursorAxis"),ne=w.useState("disableHoverablePopup"),Z=_F(A,{enabled:!N,mouseOnly:!0,move:!1,handleClose:!ne&&j!=="both"?zF():null,restMs(){const pe=_==null?void 0:_.delay,L=typeof z.current=="object"?z.current.open:void 0;let ce=U;return H&&(L!==0?ce=g??pe??U:ce=0),ce},delay(){const pe=typeof z.current=="object"?z.current.close:void 0;let L=M;return m==null&&H&&(L=pe),{close:L}},triggerElementRef:k,isActiveTrigger:T}),P=TF(A,{enabled:!N}).reference,oe={open:C},I=w.useState("triggerProps",$);return Ln("button",n,{state:oe,ref:[a,Y,k],props:[Z,P,I,{id:E,[y7.triggerDisabled]:N?"":void 0},p],stateAttributesMapping:P8})});__.displayName="TooltipTrigger";const ww=x.createContext(void 0);ww.displayName="TooltipPortalContext";function v7(){const o=x.useContext(ww);if(o===void 0)throw new Error("Base UI: <Tooltip.Portal> is missing.");return o}const k_=x.forwardRef(function(n,a){const{children:i,container:l,className:c,render:f,...h}=n,{portalNode:g,portalSubtree:m}=KM({container:l,ref:a,componentProps:n,elementProps:h});return!m&&!g?null:nn.jsxs(x.Fragment,{children:[m,g&&zs.createPortal(i,g)]})});k_.displayName="FloatingPortalLite";const L_=x.forwardRef(function(n,a){const{keepMounted:i=!1,...l}=n;return th().useState("mounted")||i?nn.jsx(ww.Provider,{value:i,children:nn.jsx(k_,{ref:a,...l})}):null});L_.displayName="TooltipPortal";const Ew=x.createContext(void 0);Ew.displayName="TooltipPositionerContext";function U_(){const o=x.useContext(Ew);if(o===void 0)throw new Error("Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>.");return o}const z_=x.createContext(void 0);z_.displayName="DirectionContext";function xw(){const o=x.useContext(z_);return(o==null?void 0:o.direction)??"ltr"}const S7=o=>({name:"arrow",options:o,async fn(n){var se,pe;const{x:a,y:i,placement:l,rects:c,platform:f,elements:h,middlewareData:g}=n,{element:m,padding:b=0,offsetParent:p="real"}=Ai(o,n)||{};if(m==null)return{};const v=AM(b),w={x:a,y:i},E=lw(l),T=sw(E),C=await f.getDimensions(m),A=E==="y",k=A?"top":"left",U=A?"bottom":"right",M=A?"clientHeight":"clientWidth",Y=c.reference[T]+c.reference[E]-w[E]-c.floating[T],$=w[E]-c.reference[E],_=p==="real"?await((se=f.getOffsetParent)==null?void 0:se.call(f,m)):h.floating;let z=h.floating[M]||c.floating[T];(!z||!await((pe=f.isElement)==null?void 0:pe.call(f,_)))&&(z=h.floating[M]||c.floating[T]);const te=Y/2-$/2,H=z/2-C[T]/2-1,J=Math.min(v[k],H),N=Math.min(v[U],H),j=J,ne=z-C[T]-N,Z=z/2-C[T]/2+te,P=vS(j,Z,ne),oe=!g.arrow&&Hs(l)!=null&&Z!==P&&c.reference[T]/2-(Z<j?J:N)-C[T]/2<0,I=oe?Z<j?Z-j:Z-ne:0;return{[E]:w[E]+I,data:{[E]:P,centerOffset:Z-P-I,...oe&&{alignmentOffset:I}},reset:oe}}}),w7=(o,n)=>({...S7(o),options:[o,n]}),E7={name:"hide",async fn(o){var h;const{width:n,height:a,x:i,y:l}=o.rects.reference,c=n===0&&a===0&&i===0&&l===0;return{data:{referenceHidden:((h=(await HV().fn(o)).data)==null?void 0:h.referenceHidden)||c}}}},Bm={sideX:"left",sideY:"top"},x7={name:"adaptiveOrigin",async fn(o){var k,U;const{x:n,y:a,rects:{floating:i},elements:{floating:l},platform:c,strategy:f,placement:h}=o,g=Gn(l),m=g.getComputedStyle(l);if(!(m.transitionDuration!=="0s"&&m.transitionDuration!==""))return{x:n,y:a,data:Bm};const p=await((k=c.getOffsetParent)==null?void 0:k.call(c,l));let v={width:0,height:0};if(f==="fixed"&&(g!=null&&g.visualViewport))v={width:g.visualViewport.width,height:g.visualViewport.height};else if(p===g){const M=fn(l);v={width:M.documentElement.clientWidth,height:M.documentElement.clientHeight}}else await((U=c.isElement)==null?void 0:U.call(c,p))&&(v=await c.getDimensions(p));const w=Xo(h);let E=n,T=a;w==="left"&&(E=v.width-(n+i.width)),w==="top"&&(T=v.height-(a+i.height));const C=w==="left"?"right":Bm.sideX,A=w==="top"?"bottom":Bm.sideY;return{x:E,y:T,data:{sideX:C,sideY:A}}}};function P_(o,n,a){const i=o==="inline-start"||o==="inline-end";return{top:"top",right:i?a?"inline-start":"inline-end":"right",bottom:"bottom",left:i?a?"inline-end":"inline-start":"left"}[n]}function gA(o,n,a){const{rects:i,placement:l}=o;return{side:P_(n,Xo(l),a),align:Hs(l)||"center",anchor:{width:i.reference.width,height:i.reference.height},positioner:{width:i.floating.width,height:i.floating.height}}}function R7(o){var Un,D;const{anchor:n,positionMethod:a="absolute",side:i="bottom",sideOffset:l=0,align:c="center",alignOffset:f=0,collisionBoundary:h,collisionPadding:g=5,sticky:m=!1,arrowPadding:b=5,disableAnchorTracking:p=!1,keepMounted:v=!1,floatingRootContext:w,mounted:E,collisionAvoidance:T,shiftCrossAxis:C=!1,nodeId:A,adaptiveOrigin:k,lazyFlip:U=!1,externalTree:M}=o,[Y,$]=x.useState(null);!E&&Y!==null&&$(null);const _=T.side||"flip",z=T.align||"flip",te=T.fallbackAxisSide||"end",H=typeof n=="function"?n:void 0,J=it(H),N=H?J:n,j=Ha(n),Z=xw()==="rtl",P=Y||{top:"top",right:"right",bottom:"bottom",left:"left","inline-end":Z?"left":"right","inline-start":Z?"right":"left"}[i],oe=c==="center"?P:`${P}-${c}`;let I=g;const se=1,pe=i==="bottom"?se:0,L=i==="top"?se:0,ce=i==="right"?se:0,ie=i==="left"?se:0;typeof I=="number"?I={top:I+pe,right:I+ie,bottom:I+L,left:I+ce}:I&&(I={top:(I.top||0)+pe,right:(I.right||0)+ie,bottom:(I.bottom||0)+L,left:(I.left||0)+ce});const me={boundary:h==="clipping-ancestors"?"clippingAncestors":h,padding:I},Te=x.useRef(null),Ue=Ha(l),ve=Ha(f),at=[LV(G=>{const ge=gA(G,i,Z),ye=typeof Ue.current=="function"?Ue.current(ge):Ue.current,Ne=typeof ve.current=="function"?ve.current(ge):ve.current;return{mainAxis:ye,crossAxis:Ne,alignmentAxis:Ne}},[typeof l!="function"?l:0,typeof f!="function"?f:0,Z,i])],xe=z==="none"&&_!=="shift",he=!xe&&(m||C||_==="shift"),we=_==="none"?null:PV({...me,padding:{top:I.top+se,right:I.right+se,bottom:I.bottom+se,left:I.left+se},mainAxis:!C&&_==="flip",crossAxis:z==="flip"?"alignment":!1,fallbackAxisSideDirection:te}),De=xe?null:UV(G=>{const ge=fn(G.elements.floating).documentElement;return{...me,rootBoundary:C?{x:0,y:0,width:ge.clientWidth,height:ge.clientHeight}:void 0,mainAxis:z!=="none",crossAxis:he,limiter:m||C?void 0:zV(ye=>{if(!Te.current)return{};const{width:Ne,height:$e}=Te.current.getBoundingClientRect(),Se=Ur(Xo(ye.placement)),Ke=Se==="y"?Ne:$e,Ve=Se==="y"?I.left+I.right:I.top+I.bottom;return{offset:Ke/2+Ve/2}})}},[me,m,C,I,z]);_==="shift"||z==="shift"||c==="center"?at.push(De,we):at.push(we,De),at.push(jV({...me,apply({elements:{floating:G},rects:{reference:ge},availableWidth:ye,availableHeight:Ne}){const $e=G.style;$e.setProperty("--available-width",`${ye}px`),$e.setProperty("--available-height",`${Ne}px`),$e.setProperty("--anchor-width",`${ge.width}px`),$e.setProperty("--anchor-height",`${ge.height}px`)}}),w7(()=>({element:Te.current||document.createElement("div"),padding:b,offsetParent:"floating"}),[b]),{name:"transformOrigin",fn(G){var Fe,Qe,ut;const{elements:ge,middlewareData:ye,placement:Ne,rects:$e,y:Se}=G,Ke=Xo(Ne),Ve=Ur(Ke),Rt=Te.current,Cn=((Fe=ye.arrow)==null?void 0:Fe.x)||0,rn=((Qe=ye.arrow)==null?void 0:Qe.y)||0,xn=(Rt==null?void 0:Rt.clientWidth)||0,Qo=(Rt==null?void 0:Rt.clientHeight)||0,B=Cn+xn/2,Q=rn+Qo/2,ue=Math.abs(((ut=ye.shift)==null?void 0:ut.y)||0),Ee=$e.reference.height/2,Me=typeof l=="function"?l(gA(G,i,Z)):l,Je=ue>Me,Ze={top:`${B}px calc(100% + ${Me}px)`,bottom:`${B}px ${-Me}px`,left:`calc(100% + ${Me}px) ${Q}px`,right:`${-Me}px ${Q}px`}[Ke],je=`${B}px ${$e.reference.y+Ee-Se}px`;return ge.floating.style.setProperty("--transform-origin",he&&Ve==="y"&&Je?je:Ze),{}}},E7,k),pt(()=>{!E&&w&&w.update({referenceElement:null,floatingElement:null,domReferenceElement:null})},[E,w]);const Ye=x.useMemo(()=>({elementResize:!p&&typeof ResizeObserver<"u",layoutShift:!p&&typeof IntersectionObserver<"u"}),[p]),{refs:Re,elements:Ae,x:Le,y:tt,middlewareData:Ce,update:ot,placement:gt,context:yt,isPositioned:ht,floatingStyles:$t}=RF({rootContext:w,placement:oe,middleware:at,strategy:a,whileElementsMounted:v?void 0:(...G)=>rA(...G,Ye),nodeId:A,externalTree:M}),{sideX:on,sideY:bn}=Ce.adaptiveOrigin||Bm,bt=ht?a:"fixed",jt=x.useMemo(()=>{const G=k?{position:bt,[on]:Le,[bn]:tt}:{position:bt,...$t};return ht||(G.opacity=0),G},[k,bt,on,Le,bn,tt,$t,ht]),Ft=x.useRef(null);pt(()=>{if(!E)return;const G=j.current,ge=typeof G=="function"?G():G,Ne=(yA(ge)?ge.current:ge)||null||null;Ne!==Ft.current&&(Re.setPositionReference(Ne),Ft.current=Ne)},[E,Re,N,j]),x.useEffect(()=>{if(!E)return;const G=j.current;typeof G!="function"&&yA(G)&&G.current!==Ft.current&&(Re.setPositionReference(G.current),Ft.current=G.current)},[E,Re,N,j]),x.useEffect(()=>{if(v&&E&&Ae.domReference&&Ae.floating)return rA(Ae.domReference,Ae.floating,ot,Ye)},[v,E,Ae,ot,Ye]);const vn=Xo(gt),ln=P_(i,vn,Z),Zn=Hs(gt)||"center",hn=!!((Un=Ce.hide)!=null&&Un.referenceHidden);pt(()=>{U&&E&&ht&&$(vn)},[U,E,ht,vn]);const co=x.useMemo(()=>{var G,ge;return{position:"absolute",top:(G=Ce.arrow)==null?void 0:G.y,left:(ge=Ce.arrow)==null?void 0:ge.x}},[Ce.arrow]),uo=((D=Ce.arrow)==null?void 0:D.centerOffset)!==0;return x.useMemo(()=>({positionerStyles:jt,arrowStyles:co,arrowRef:Te,arrowUncentered:uo,side:ln,align:Zn,physicalSide:vn,anchorHidden:hn,refs:Re,context:yt,isPositioned:ht,update:ot}),[jt,co,Te,uo,ln,Zn,vn,hn,Re,yt,ht,ot])}function yA(o){return o!=null&&"current"in o}function j_(o){return o==="starting"?gB:hr}const H_=x.forwardRef(function(n,a){const{render:i,className:l,anchor:c,positionMethod:f="absolute",side:h="top",align:g="center",sideOffset:m=0,alignOffset:b=0,collisionBoundary:p="clipping-ancestors",collisionPadding:v=5,arrowPadding:w=5,sticky:E=!1,disableAnchorTracking:T=!1,collisionAvoidance:C=bB,...A}=n,k=th(),U=v7(),M=k.useState("open"),Y=k.useState("mounted"),$=k.useState("trackCursorAxis"),_=k.useState("disableHoverablePopup"),z=k.useState("floatingRootContext"),te=k.useState("instantType"),H=k.useState("transitionStatus"),J=k.useState("hasViewport"),N=R7({anchor:c,positionMethod:f,floatingRootContext:z,mounted:Y,side:h,sideOffset:m,align:g,alignOffset:b,collisionBoundary:p,collisionPadding:v,sticky:E,arrowPadding:w,disableAnchorTracking:T,keepMounted:U,collisionAvoidance:C,adaptiveOrigin:J?x7:void 0}),j=x.useMemo(()=>{const oe={};return(!M||$==="both"||_)&&(oe.pointerEvents="none"),{role:"presentation",hidden:!Y,style:{...N.positionerStyles,...oe}}},[M,$,_,Y,N.positionerStyles]),ne=x.useMemo(()=>({open:M,side:N.side,align:N.align,anchorHidden:N.anchorHidden,instant:$!=="none"?"tracking-cursor":te}),[M,N.side,N.align,N.anchorHidden,$,te]),Z=x.useMemo(()=>({...ne,arrowRef:N.arrowRef,arrowStyles:N.arrowStyles,arrowUncentered:N.arrowUncentered}),[ne,N.arrowRef,N.arrowStyles,N.arrowUncentered]),P=Ln("div",n,{state:ne,props:[j,j_(H),A],ref:[a,k.useStateSetter("positionerElement")],stateAttributesMapping:eh});return nn.jsx(Ew.Provider,{value:Z,children:P})});H_.displayName="TooltipPositioner";const T7={...eh,...Kf},I_=x.forwardRef(function(n,a){const{className:i,render:l,...c}=n,f=th(),{side:h,align:g}=U_(),m=f.useState("open"),b=f.useState("instantType"),p=f.useState("transitionStatus"),v=f.useState("popupProps"),w=f.useState("floatingRootContext");bg({open:m,ref:f.context.popupRef,onComplete(){var k,U;m&&((U=(k=f.context).onOpenChangeComplete)==null||U.call(k,!0))}});const E=f.useState("disabled"),T=f.useState("closeDelay");return AF(w,{enabled:!E,closeDelay:T}),Ln("div",n,{state:{open:m,side:h,align:g,instant:b,transitionStatus:p},ref:[a,f.context.popupRef,f.useStateSetter("popupElement")],props:[v,j_(p),c],stateAttributesMapping:T7})});I_.displayName="TooltipPopup";const B_=x.forwardRef(function(n,a){const{className:i,render:l,...c}=n,h=th().useState("instantType"),{open:g,arrowRef:m,side:b,align:p,arrowUncentered:v,arrowStyles:w}=U_();return Ln("div",n,{state:{open:g,side:b,align:p,uncentered:v,instant:h},ref:[a,m],props:[{style:w,"aria-hidden":!0},c],stateAttributesMapping:eh})});B_.displayName="TooltipArrow";function C7({...o}){return re.jsxDEV(N_,{"data-slot":"tooltip",...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:19,columnNumber:10},this)}function O7({...o}){return re.jsxDEV(__,{"data-slot":"tooltip-trigger",...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:23,columnNumber:10},this)}function D7({className:o,side:n="top",sideOffset:a=4,align:i="center",alignOffset:l=0,children:c,...f}){return re.jsxDEV(L_,{children:re.jsxDEV(H_,{align:i,alignOffset:l,side:n,sideOffset:a,className:"isolate z-50",children:re.jsxDEV(I_,{"data-slot":"tooltip-content",className:Pt("data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-md px-3 py-1.5 text-xs data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin)",o),...f,children:[c,re.jsxDEV(B_,{className:"size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 bg-foreground fill-foreground z-50 data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:57,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:48,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:41,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:40,columnNumber:5},this)}const A7="sidebar_state",N7=3600*24*7,M7="16rem",_7="18rem",k7="3rem",L7="b",V_=x.createContext(null);function Au(){const o=x.useContext(V_);if(!o)throw new Error("useSidebar must be used within a SidebarProvider.");return o}function U7({defaultOpen:o=!0,open:n,onOpenChange:a,className:i,style:l,children:c,...f}){const h=o6(),[g,m]=x.useState(!1),[b,p]=x.useState(o),v=n??b,w=x.useCallback(A=>{const k=typeof A=="function"?A(v):A;a?a(k):p(k),document.cookie=`${A7}=${k}; path=/; max-age=${N7}`},[a,v]),E=x.useCallback(()=>h?m(A=>!A):w(A=>!A),[h,w,m]);x.useEffect(()=>{const A=k=>{k.key===L7&&(k.metaKey||k.ctrlKey)&&(k.preventDefault(),E())};return window.addEventListener("keydown",A),()=>window.removeEventListener("keydown",A)},[E]);const T=v?"expanded":"collapsed",C=x.useMemo(()=>({state:T,open:v,setOpen:w,isMobile:h,openMobile:g,setOpenMobile:m,toggleSidebar:E}),[T,v,w,h,g,m,E]);return re.jsxDEV(V_.Provider,{value:C,children:re.jsxDEV("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":M7,"--sidebar-width-icon":k7,...l},className:Pt("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",i),...f,children:c},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:129,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:128,columnNumber:5},this)}function z7({side:o="left",variant:n="sidebar",collapsible:a="offcanvas",className:i,children:l,dir:c,...f}){const{isMobile:h,state:g,openMobile:m,setOpenMobile:b}=Au();return a==="none"?re.jsxDEV("div",{"data-slot":"sidebar",className:Pt("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",i),...f,children:l},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:167,columnNumber:7},this):h?re.jsxDEV(i7,{open:m,onOpenChange:b,...f,children:re.jsxDEV(c7,{dir:c,"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true","data-testid":"mobile-sidebar-sheet",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":_7},side:o,children:[re.jsxDEV(u7,{className:"sr-only",children:[re.jsxDEV(d7,{children:"Sidebar"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:198,columnNumber:13},this),re.jsxDEV(f7,{children:"Displays the mobile sidebar."},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:199,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:197,columnNumber:11},this),re.jsxDEV("div",{className:"flex h-full w-full flex-col","data-testid":"sidebar",style:{paddingBottom:"var(--tmex-safe-area-bottom)"},children:l},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:201,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:183,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:182,columnNumber:7},this):re.jsxDEV("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":g,"data-collapsible":g==="collapsed"?a:"","data-variant":n,"data-side":o,"data-slot":"sidebar",children:[re.jsxDEV("div",{"data-slot":"sidebar-gap",className:Pt("transition-[width] duration-200 ease-linear relative w-(--sidebar-width) bg-transparent","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180",n==="floating"||n==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:223,columnNumber:7},this),re.jsxDEV("div",{"data-slot":"sidebar-container","data-side":o,className:Pt("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex",n==="floating"||n==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",i),...f,children:re.jsxDEV("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner","data-testid":"sidebar",className:"bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 flex size-full flex-col",style:{paddingBottom:"var(--tmex-safe-area-bottom)"},children:l},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:247,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:234,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:214,columnNumber:5},this)}function P7({className:o,onClick:n,...a}){const{toggleSidebar:i}=Au();return re.jsxDEV(ow,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon-sm",className:Pt(o),onClick:l=>{n==null||n(l),i()},...a,children:[re.jsxDEV(F5,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:282,columnNumber:7},this),re.jsxDEV("span",{className:"sr-only",children:"Toggle Sidebar"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:283,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:270,columnNumber:5},this)}function j7({className:o,...n}){return re.jsxDEV("main",{"data-slot":"sidebar-inset",className:Pt("bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 relative flex w-full flex-1 flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:315,columnNumber:5},this)}function H7({className:o,...n}){return re.jsxDEV("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:Pt("gap-2 p-2 flex flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:342,columnNumber:5},this)}function I7({className:o,...n}){return re.jsxDEV("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:Pt("gap-2 p-2 flex flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:353,columnNumber:5},this)}function B7({className:o,...n}){return re.jsxDEV("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:Pt("no-scrollbar gap-0 flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:378,columnNumber:5},this)}function F_({className:o,...n}){return re.jsxDEV("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:Pt("p-2 relative flex w-full min-w-0 flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:392,columnNumber:5},this)}function V7({className:o,render:n,...a}){return Jf({defaultTagName:"div",props:Ql({className:Pt("text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 flex shrink-0 items-center outline-hidden [&>svg]:shrink-0",o)},a),render:n,state:{slot:"sidebar-group-label",sidebar:"group-label"}})}function F7({className:o,...n}){return re.jsxDEV("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:Pt("gap-0 flex w-full min-w-0 flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:468,columnNumber:5},this)}function Y7({className:o,...n}){return re.jsxDEV("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:Pt("group/menu-item relative",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:479,columnNumber:5},this)}const $7=tw("ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button flex w-full items-center overflow-hidden outline-hidden group/menu-button disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function q7({render:o,isActive:n=!1,variant:a="default",size:i="default",tooltip:l,className:c,...f}){const{isMobile:h,state:g}=Au(),m=Jf({defaultTagName:"button",props:Ql({className:Pt($7({variant:a,size:i}),c)},f),render:l?O7:o,state:{slot:"sidebar-menu-button",sidebar:"menu-button",size:i,active:n}});return l?(typeof l=="string"&&(l={children:l}),re.jsxDEV(C7,{children:[m,re.jsxDEV(D7,{side:"right",align:"center",hidden:g!=="collapsed"||h,...l},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:553,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:551,columnNumber:5},this)):m}function G7({className:o,render:n,showOnHover:a=!1,...i}){return Jf({defaultTagName:"button",props:Ql({className:Pt("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0",a&&"peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 aria-expanded:opacity-100 md:opacity-0",o)},i),render:n,state:{slot:"sidebar-menu-action",sidebar:"menu-action"}})}function X7({className:o,...n}){return re.jsxDEV("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:Pt("border-sidebar-border mx-3.5 translate-x-px gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden flex min-w-0 flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:650,columnNumber:5},this)}function Q7({className:o,...n}){return re.jsxDEV("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:Pt("group/menu-sub-item relative",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:664,columnNumber:5},this)}function W7({render:o,size:n="md",isActive:a=!1,className:i,...l}){return Jf({defaultTagName:"a",props:Ql({className:Pt("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-4 flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0",i)},l),render:o,state:{slot:"sidebar-menu-sub-button",sidebar:"menu-sub-button",size:n,active:a}})}function ag({children:o,onClick:n,...a}){const{isMobile:i,setOpenMobile:l}=Au(),c=f=>{i&&l(!1),n==null||n(f)};return re.jsxDEV(YS,{...a,onClick:c,children:o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-link.tsx",lineNumber:19,columnNumber:5},this)}function K7({items:o}){const{t:n}=dg();return re.jsxDEV(F_,{children:re.jsxDEV(F7,{children:o.map(a=>{var i,l;return re.jsxDEV(e6,{defaultOpen:a.isActive,render:re.jsxDEV(Y7,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:35,columnNumber:77},this),children:[re.jsxDEV(ag,{to:a.url,children:re.jsxDEV(q7,{tooltip:n(a.title),children:[re.jsxDEV(a.icon,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:38,columnNumber:17},this),re.jsxDEV("span",{children:n(a.title)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:39,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:37,columnNumber:15},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:36,columnNumber:13},this),(i=a.items)!=null&&i.length?re.jsxDEV(re.Fragment,{children:[re.jsxDEV(t6,{render:re.jsxDEV(G7,{className:"data-[state=open]:rotate-90"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:44,columnNumber:45},this),children:[re.jsxDEV(z5,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:45,columnNumber:19},this),re.jsxDEV("span",{className:"sr-only",children:"Toggle"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:46,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:44,columnNumber:17},this),re.jsxDEV(n6,{children:re.jsxDEV(X7,{children:(l=a.items)==null?void 0:l.map(c=>re.jsxDEV(Q7,{children:re.jsxDEV(ag,{to:c.url,children:re.jsxDEV(W7,{children:re.jsxDEV("span",{children:n(c.title)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:54,columnNumber:29},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:53,columnNumber:27},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:52,columnNumber:25},this)},c.title,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:51,columnNumber:23},this))},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:49,columnNumber:19},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:48,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:43,columnNumber:15},this):null]},a.title,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:35,columnNumber:11},this)})},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:33,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:32,columnNumber:5},this)}const J7=tw("h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive overflow-hidden group/badge",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function Z7({className:o,variant:n="default",render:a,...i}){return Jf({defaultTagName:"span",props:Ql({className:Pt(J7({className:o,variant:n}))},i),render:a,state:{slot:"badge",variant:n}})}const Rw=x.createContext(void 0);Rw.displayName="ScrollAreaRootContext";function wg(){const o=x.useContext(Rw);if(o===void 0)throw new Error("Base UI: ScrollAreaRootContext is missing. ScrollArea parts must be placed within <ScrollArea.Root>.");return o}let ig=(function(o){return o.scrollAreaCornerHeight="--scroll-area-corner-height",o.scrollAreaCornerWidth="--scroll-area-corner-width",o})({});const Mm=500,bA=16;function zr(o,n,a){if(!o)return 0;const i=getComputedStyle(o),l=a==="x"?"Inline":"Block";return a==="x"&&n==="margin"?parseFloat(i[`${n}InlineStart`])*2:parseFloat(i[`${n}${l}Start`])+parseFloat(i[`${n}${l}End`])}let eY=(function(o){return o.orientation="data-orientation",o.hovering="data-hovering",o.scrolling="data-scrolling",o.hasOverflowX="data-has-overflow-x",o.hasOverflowY="data-has-overflow-y",o.overflowXStart="data-overflow-x-start",o.overflowXEnd="data-overflow-x-end",o.overflowYStart="data-overflow-y-start",o.overflowYEnd="data-overflow-y-end",o})({});const _m="base-ui-disable-scrollbar",Tw={className:_m,getElement(o){return nn.jsx("style",{nonce:o,href:_m,precedence:"base-ui:low",children:`.${_m}{scrollbar-width:none}.${_m}::-webkit-scrollbar{display:none}`})}};Tw.getElement.displayName="styleDisableScrollbar.getElement";let Zc=(function(o){return o.scrolling="data-scrolling",o.hasOverflowX="data-has-overflow-x",o.hasOverflowY="data-has-overflow-y",o.overflowXStart="data-overflow-x-start",o.overflowXEnd="data-overflow-x-end",o.overflowYStart="data-overflow-y-start",o.overflowYEnd="data-overflow-y-end",o})({});const Cw={hasOverflowX:o=>o?{[Zc.hasOverflowX]:""}:null,hasOverflowY:o=>o?{[Zc.hasOverflowY]:""}:null,overflowXStart:o=>o?{[Zc.overflowXStart]:""}:null,overflowXEnd:o=>o?{[Zc.overflowXEnd]:""}:null,overflowYStart:o=>o?{[Zc.overflowYStart]:""}:null,overflowYEnd:o=>o?{[Zc.overflowYEnd]:""}:null,cornerHidden:()=>null},Y_=x.createContext(void 0);Y_.displayName="CSPContext";const tY={disableStyleElements:!1};function nY(){return x.useContext(Y_)??tY}const oY={x:0,y:0},vA={width:0,height:0},rY={xStart:!1,xEnd:!1,yStart:!1,yEnd:!1},aY={x:!1,y:!1,corner:!1},$_=x.forwardRef(function(n,a){const{render:i,className:l,overflowEdgeThreshold:c,...f}=n,h=iY(c),g=Wf(),m=Di(),b=Di(),{nonce:p,disableStyleElements:v}=nY(),[w,E]=x.useState(!1),[T,C]=x.useState(!1),[A,k]=x.useState(!1),[U,M]=x.useState(!1),[Y,$]=x.useState(vA),[_,z]=x.useState(vA),[te,H]=x.useState(rY),[J,N]=x.useState(aY),j=x.useRef(null),ne=x.useRef(null),Z=x.useRef(null),P=x.useRef(null),oe=x.useRef(null),I=x.useRef(null),se=x.useRef(null),pe=x.useRef(!1),L=x.useRef(0),ce=x.useRef(0),ie=x.useRef(0),me=x.useRef(0),Te=x.useRef("vertical"),Ue=x.useRef(oY),ve=it(Ae=>{const Le=Ae.x-Ue.current.x,tt=Ae.y-Ue.current.y;Ue.current=Ae,tt!==0&&(k(!0),m.start(Mm,()=>{k(!1)})),Le!==0&&(C(!0),b.start(Mm,()=>{C(!1)}))}),ze=it(Ae=>{Ae.button===0&&(pe.current=!0,L.current=Ae.clientY,ce.current=Ae.clientX,Te.current=Ae.currentTarget.getAttribute(eY.orientation),ne.current&&(ie.current=ne.current.scrollTop,me.current=ne.current.scrollLeft),oe.current&&Te.current==="vertical"&&oe.current.setPointerCapture(Ae.pointerId),I.current&&Te.current==="horizontal"&&I.current.setPointerCapture(Ae.pointerId))}),Pe=it(Ae=>{if(!pe.current)return;const Le=Ae.clientY-L.current,tt=Ae.clientX-ce.current;if(ne.current){const Ce=ne.current.scrollHeight,ot=ne.current.clientHeight,gt=ne.current.scrollWidth,yt=ne.current.clientWidth;if(oe.current&&Z.current&&Te.current==="vertical"){const ht=zr(Z.current,"padding","y"),$t=zr(oe.current,"margin","y"),on=oe.current.offsetHeight,bn=Z.current.offsetHeight-on-ht-$t,bt=Le/bn;ne.current.scrollTop=ie.current+bt*(Ce-ot),Ae.preventDefault(),k(!0),m.start(Mm,()=>{k(!1)})}if(I.current&&P.current&&Te.current==="horizontal"){const ht=zr(P.current,"padding","x"),$t=zr(I.current,"margin","x"),on=I.current.offsetWidth,bn=P.current.offsetWidth-on-ht-$t,bt=tt/bn;ne.current.scrollLeft=me.current+bt*(gt-yt),Ae.preventDefault(),C(!0),b.start(Mm,()=>{C(!1)})}}}),at=it(Ae=>{pe.current=!1,oe.current&&Te.current==="vertical"&&oe.current.releasePointerCapture(Ae.pointerId),I.current&&Te.current==="horizontal"&&I.current.releasePointerCapture(Ae.pointerId)});function xe(Ae){M(Ae.pointerType==="touch")}function he(Ae){if(xe(Ae),Ae.pointerType!=="touch"){const Le=Yt(j.current,Ae.target);E(Le)}}const we=x.useMemo(()=>({scrolling:T||A,hasOverflowX:!J.x,hasOverflowY:!J.y,overflowXStart:te.xStart,overflowXEnd:te.xEnd,overflowYStart:te.yStart,overflowYEnd:te.yEnd,cornerHidden:J.corner}),[T,A,J.x,J.y,J.corner,te]),De={role:"presentation",onPointerEnter:he,onPointerMove:he,onPointerDown:xe,onPointerLeave(){E(!1)},style:{position:"relative",[ig.scrollAreaCornerHeight]:`${Y.height}px`,[ig.scrollAreaCornerWidth]:`${Y.width}px`}},Ye=Ln("div",n,{state:we,ref:[a,j],props:[De,f],stateAttributesMapping:Cw}),Re=x.useMemo(()=>({handlePointerDown:ze,handlePointerMove:Pe,handlePointerUp:at,handleScroll:ve,cornerSize:Y,setCornerSize:$,thumbSize:_,setThumbSize:z,touchModality:U,cornerRef:se,scrollingX:T,setScrollingX:C,scrollingY:A,setScrollingY:k,hovering:w,setHovering:E,viewportRef:ne,rootRef:j,scrollbarYRef:Z,scrollbarXRef:P,thumbYRef:oe,thumbXRef:I,rootId:g,hiddenState:J,setHiddenState:N,overflowEdges:te,setOverflowEdges:H,viewportState:we,overflowEdgeThreshold:h}),[ze,Pe,at,ve,Y,_,U,T,C,A,k,w,E,g,J,te,we,h]);return nn.jsxs(Rw.Provider,{value:Re,children:[!v&&Tw.getElement(p),Ye]})});$_.displayName="ScrollAreaRoot";function iY(o){if(typeof o=="number"){const n=Math.max(0,o);return{xStart:n,xEnd:n,yStart:n,yEnd:n}}return{xStart:Math.max(0,(o==null?void 0:o.xStart)||0),xEnd:Math.max(0,(o==null?void 0:o.xEnd)||0),yStart:Math.max(0,(o==null?void 0:o.yStart)||0),yEnd:Math.max(0,(o==null?void 0:o.yEnd)||0)}}const q_=x.createContext(void 0);q_.displayName="ScrollAreaViewportContext";function tu(o,n=Number.MIN_SAFE_INTEGER,a=Number.MAX_SAFE_INTEGER){return Math.max(n,Math.min(o,a))}function sY(o,n){if(typeof IntersectionObserver>"u")return()=>{};const a=new IntersectionObserver(i=>{i.forEach(l=>{l.intersectionRatio>0&&(n(),a.disconnect())})});return a.observe(o),()=>{a.disconnect()}}let _s=(function(o){return o.scrollAreaOverflowXStart="--scroll-area-overflow-x-start",o.scrollAreaOverflowXEnd="--scroll-area-overflow-x-end",o.scrollAreaOverflowYStart="--scroll-area-overflow-y-start",o.scrollAreaOverflowYEnd="--scroll-area-overflow-y-end",o})({});const SA=1;function wA(o,n){if(n<=0)return 0;const a=tu(o,0,n),i=a,l=n-a,c=i<=SA,f=l<=SA;return c&&f?i<=l?0:n:c?0:f?n:a}let EA=!1;function lY(){EA||rw||(typeof CSS<"u"&&"registerProperty"in CSS&&[_s.scrollAreaOverflowXStart,_s.scrollAreaOverflowXEnd,_s.scrollAreaOverflowYStart,_s.scrollAreaOverflowYEnd].forEach(o=>{try{CSS.registerProperty({name:o,syntax:"<length>",inherits:!1,initialValue:"0px"})}catch{}}),EA=!0)}const G_=x.forwardRef(function(n,a){const{render:i,className:l,...c}=n,{viewportRef:f,scrollbarYRef:h,scrollbarXRef:g,thumbYRef:m,thumbXRef:b,cornerRef:p,cornerSize:v,setCornerSize:w,setThumbSize:E,rootId:T,setHiddenState:C,hiddenState:A,handleScroll:k,setHovering:U,setOverflowEdges:M,overflowEdges:Y,overflowEdgeThreshold:$,scrollingX:_,scrollingY:z}=wg(),te=xw(),H=x.useRef(!0),J=Di(),N=Di(),j=it(()=>{const se=f.current,pe=h.current,L=g.current,ce=m.current,ie=b.current,me=p.current;if(!se)return;const Te=se.scrollHeight,Ue=se.scrollWidth,ve=se.clientHeight,ze=se.clientWidth,Pe=se.scrollTop,at=se.scrollLeft;if(Te===0||Ue===0)return;const xe=ve>=Te,he=ze>=Ue,we=ze/Ue,De=ve/Te,Ye=Math.max(0,Ue-ze),Re=Math.max(0,Te-ve);let Ae=0,Le=0;if(!he){let ye=0;te==="rtl"?ye=tu(-at,0,Ye):ye=tu(at,0,Ye),Ae=wA(ye,Ye),Le=Ye-Ae}const tt=xe?0:tu(Pe,0,Re),Ce=xe?0:wA(tt,Re),ot=xe?0:Re-Ce,gt=he?0:ze,yt=xe?0:ve;let ht=0,$t=0;!he&&!xe&&(ht=(pe==null?void 0:pe.offsetWidth)||0,$t=(L==null?void 0:L.offsetHeight)||0);const on=v.width===0&&v.height===0,bn=on?ht:0,bt=on?$t:0,jt=zr(L,"padding","x"),Ft=zr(pe,"padding","y"),vn=zr(ie,"margin","x"),ln=zr(ce,"margin","y"),Zn=gt-jt-vn,hn=yt-Ft-ln,co=L?Math.min(L.offsetWidth-bn,Zn):Zn,uo=pe?Math.min(pe.offsetHeight-bt,hn):hn,Un=Math.max(bA,co*we),D=Math.max(bA,uo*De);if(E(ye=>ye.height===D&&ye.width===Un?ye:{width:Un,height:D}),pe&&ce){const ye=pe.offsetHeight-D-Ft-ln,Ne=Te-ve,$e=Ne===0?0:Pe/Ne,Se=Math.min(ye,Math.max(0,$e*ye));ce.style.transform=`translate3d(0,${Se}px,0)`}if(L&&ie){const ye=L.offsetWidth-Un-jt-vn,Ne=Ue-ze,$e=Ne===0?0:at/Ne,Se=te==="rtl"?tu($e*ye,-ye,0):tu($e*ye,0,ye);ie.style.transform=`translate3d(${Se}px,0,0)`}const G=[[_s.scrollAreaOverflowXStart,Ae],[_s.scrollAreaOverflowXEnd,Le],[_s.scrollAreaOverflowYStart,Ce],[_s.scrollAreaOverflowYEnd,ot]];for(const[ye,Ne]of G)se.style.setProperty(ye,`${Ne}px`);me&&(he||xe?w({width:0,height:0}):!he&&!xe&&w({width:ht,height:$t})),C(ye=>{const Ne=xe||he;return ye.y===xe&&ye.x===he&&ye.corner===Ne?ye:{y:xe,x:he,corner:Ne}});const ge={xStart:!he&&Ae>$.xStart,xEnd:!he&&Le>$.xEnd,yStart:!xe&&Ce>$.yStart,yEnd:!xe&&ot>$.yEnd};M(ye=>ye.xStart===ge.xStart&&ye.xEnd===ge.xEnd&&ye.yStart===ge.yStart&&ye.yEnd===ge.yEnd?ye:ge)});pt(()=>{if(!f.current)return;lY();let se=!1;return sY(f.current,()=>{if(!se){se=!0;return}j()})},[j,f]),pt(()=>{queueMicrotask(j)},[j,A,te]),pt(()=>{var se;(se=f.current)!=null&&se.matches(":hover")&&U(!0)},[f,U]),x.useEffect(()=>{const se=f.current;if(typeof ResizeObserver>"u"||!se)return;let pe=!1;const L=new ResizeObserver(()=>{if(!pe){pe=!0;return}j()});return L.observe(se),N.start(0,()=>{const ce=se.getAnimations({subtree:!0});ce.length!==0&&Promise.allSettled(ce.map(ie=>ie.finished)).then(j).catch(()=>{})}),()=>{L.disconnect(),N.clear()}},[j,f,N]);function ne(){H.current=!1}const Z={role:"presentation",...T&&{"data-id":`${T}-viewport`},...(!A.x||!A.y)&&{tabIndex:0},className:Tw.className,style:{overflow:"scroll"},onScroll(){f.current&&(j(),H.current||k({x:f.current.scrollLeft,y:f.current.scrollTop}),J.start(100,()=>{H.current=!0}))},onWheel:ne,onTouchMove:ne,onPointerMove:ne,onPointerEnter:ne,onKeyDown:ne},P=x.useMemo(()=>({scrolling:_||z,hasOverflowX:!A.x,hasOverflowY:!A.y,overflowXStart:Y.xStart,overflowXEnd:Y.xEnd,overflowYStart:Y.yStart,overflowYEnd:Y.yEnd,cornerHidden:A.corner}),[_,z,A.x,A.y,A.corner,Y]),oe=Ln("div",n,{ref:[a,f],state:P,props:[Z,c],stateAttributesMapping:Cw}),I=x.useMemo(()=>({computeThumbPosition:j}),[j]);return nn.jsx(q_.Provider,{value:I,children:oe})});G_.displayName="ScrollAreaViewport";const Ow=x.createContext(void 0);Ow.displayName="ScrollAreaScrollbarContext";function cY(){const o=x.useContext(Ow);if(o===void 0)throw new Error("Base UI: ScrollAreaScrollbarContext is missing. ScrollAreaScrollbar parts must be placed within <ScrollArea.Scrollbar>.");return o}let sg=(function(o){return o.scrollAreaThumbHeight="--scroll-area-thumb-height",o.scrollAreaThumbWidth="--scroll-area-thumb-width",o})({});const X_=x.forwardRef(function(n,a){const{render:i,className:l,orientation:c="vertical",keepMounted:f=!1,...h}=n,{hovering:g,scrollingX:m,scrollingY:b,hiddenState:p,overflowEdges:v,scrollbarYRef:w,scrollbarXRef:E,viewportRef:T,thumbYRef:C,thumbXRef:A,handlePointerDown:k,handlePointerUp:U,rootId:M,thumbSize:Y}=wg(),$={hovering:g,scrolling:{horizontal:m,vertical:b}[c],orientation:c,hasOverflowX:!p.x,hasOverflowY:!p.y,overflowXStart:v.xStart,overflowXEnd:v.xEnd,overflowYStart:v.yStart,overflowYEnd:v.yEnd,cornerHidden:p.corner},_=xw();x.useEffect(()=>{const j=T.current,ne=c==="vertical"?w.current:E.current;if(!ne)return;function Z(P){if(!(!j||!ne||P.ctrlKey)){if(P.preventDefault(),c==="vertical"){if(j.scrollTop===0&&P.deltaY<0)return}else if(j.scrollLeft===0&&P.deltaX<0)return;if(c==="vertical"){if(j.scrollTop===j.scrollHeight-j.clientHeight&&P.deltaY>0)return}else if(j.scrollLeft===j.scrollWidth-j.clientWidth&&P.deltaX>0)return;c==="vertical"?j.scrollTop+=P.deltaY:j.scrollLeft+=P.deltaX}}return ne.addEventListener("wheel",Z,{passive:!1}),()=>{ne.removeEventListener("wheel",Z)}},[c,E,w,T]);const z={...M&&{"data-id":`${M}-scrollbar`},onPointerDown(j){if(j.button===0&&j.currentTarget===j.target&&T.current){if(C.current&&w.current&&c==="vertical"){const ne=zr(C.current,"margin","y"),Z=zr(w.current,"padding","y"),P=C.current.offsetHeight,oe=w.current.getBoundingClientRect(),I=j.clientY-oe.top-P/2-Z+ne/2,se=T.current.scrollHeight,pe=T.current.clientHeight,L=w.current.offsetHeight-P-Z-ne,ie=I/L*(se-pe);T.current.scrollTop=ie}if(A.current&&E.current&&c==="horizontal"){const ne=zr(A.current,"margin","x"),Z=zr(E.current,"padding","x"),P=A.current.offsetWidth,oe=E.current.getBoundingClientRect(),I=j.clientX-oe.left-P/2-Z+ne/2,se=T.current.scrollWidth,pe=T.current.clientWidth,L=E.current.offsetWidth-P-Z-ne,ce=I/L;let ie;_==="rtl"?(ie=(1-ce)*(se-pe),T.current.scrollLeft<=0&&(ie=-ie)):ie=ce*(se-pe),T.current.scrollLeft=ie}k(j)}},onPointerUp:U,style:{position:"absolute",touchAction:"none",WebkitUserSelect:"none",userSelect:"none",...c==="vertical"&&{top:0,bottom:`var(${ig.scrollAreaCornerHeight})`,insetInlineEnd:0,[sg.scrollAreaThumbHeight]:`${Y.height}px`},...c==="horizontal"&&{insetInlineStart:0,insetInlineEnd:`var(${ig.scrollAreaCornerWidth})`,bottom:0,[sg.scrollAreaThumbWidth]:`${Y.width}px`}}},te=Ln("div",n,{ref:[a,c==="vertical"?w:E],state:$,props:[z,h],stateAttributesMapping:Cw}),H=x.useMemo(()=>({orientation:c}),[c]),J=c==="vertical"?p.y:p.x;return f||!J?nn.jsx(Ow.Provider,{value:H,children:te}):null});X_.displayName="ScrollAreaScrollbar";const Q_=x.forwardRef(function(n,a){const{render:i,className:l,...c}=n,{thumbYRef:f,thumbXRef:h,handlePointerDown:g,handlePointerMove:m,handlePointerUp:b,setScrollingX:p,setScrollingY:v}=wg(),{orientation:w}=cY();return Ln("div",n,{ref:[a,w==="vertical"?f:h],state:{orientation:w},props:[{onPointerDown:g,onPointerMove:m,onPointerUp(C){w==="vertical"&&v(!1),w==="horizontal"&&p(!1),b(C)},style:{...w==="vertical"&&{height:`var(${sg.scrollAreaThumbHeight})`},...w==="horizontal"&&{width:`var(${sg.scrollAreaThumbWidth})`}}},c]})});Q_.displayName="ScrollAreaThumb";const W_=x.forwardRef(function(n,a){const{render:i,className:l,...c}=n,{cornerRef:f,cornerSize:h,hiddenState:g}=wg(),m=Ln("div",n,{ref:[a,f],props:[{style:{position:"absolute",bottom:0,insetInlineEnd:0,width:h.width,height:h.height}},c]});return g.corner?null:m});W_.displayName="ScrollAreaCorner";function uY({className:o,children:n,...a}){return re.jsxDEV($_,{"data-slot":"scroll-area",className:Pt("relative",o),...a,children:[re.jsxDEV(G_,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:16,columnNumber:7},this),re.jsxDEV(dY,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:22,columnNumber:7},this),re.jsxDEV(W_,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:23,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:11,columnNumber:5},this)}function dY({className:o,orientation:n="vertical",...a}){return re.jsxDEV(X_,{"data-slot":"scroll-area-scrollbar","data-orientation":n,orientation:n,className:Pt("data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent flex touch-none p-px transition-colors select-none","[@media(any-pointer:coarse)]:hidden",o),...a,children:re.jsxDEV(Q_,{"data-slot":"scroll-area-thumb",className:"rounded-full bg-border relative flex-1"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:45,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:34,columnNumber:5},this)}function QY(o){return o}function fY(o){return encodeURIComponent(o)}function hY(){const{t:o}=dg(),n=Ni(),a=bN(),{isMobile:i,setOpenMobile:l}=Au(),{toggleDevice:c}=D5(),f=Af("/devices/:deviceId/windows/:windowId/panes/:paneId",n.pathname),h=f==null?void 0:f.params.deviceId,g=f==null?void 0:f.params.windowId,m=f==null?void 0:f.params.paneId,b=Ei(H=>H.snapshots),p=Ei(H=>H.connectedDevices),v=Ei(H=>H.closeWindow),w=Ei(H=>H.closePane),E=Lf(H=>{var J;return((J=H.settings)==null?void 0:J.language)??"en_US"}),{data:T}=R3({queryKey:["devices"],queryFn:async()=>{const H=await fetch("/api/devices");if(!H.ok)throw new Error("Failed to fetch devices");return H.json()},throwOnError:!1}),C=x.useCallback((H,J)=>{a(H,{replace:(J==null?void 0:J.replace)??!0}),i&&l(!1)},[a,i,l]),A=x.useCallback((H,J,N)=>{U.current=null,window.dispatchEvent(new CustomEvent("tmex:user-initiated-selection",{detail:{deviceId:H,windowId:J,paneId:N}})),C(`/devices/${H}/windows/${J}/panes/${fY(N)}`)},[C]),k=Ei(H=>H.selectWindow),U=x.useRef(null);x.useEffect(()=>{var oe,I;const H=U.current;if(!H)return;if(Date.now()-H.at>5e3){U.current=null;return}const{deviceId:J,windowId:N}=H,j=b[J],ne=(oe=j==null?void 0:j.session)==null?void 0:oe.windows;if(!ne)return;const Z=ne.find(se=>se.id===N);if(!((I=Z==null?void 0:Z.panes)!=null&&I.length))return;U.current=null;const P=Z.panes.find(se=>se.active)??Z.panes[0];A(J,N,P.id)},[b,A]);const M=x.useCallback((H,J,N)=>{k(H,J);const j=N.find(ne=>ne.active)??N[0];j?(A(H,J,j.id),U.current=null):U.current={deviceId:H,windowId:J,at:Date.now()}},[A,k]),Y=x.useCallback((H,J)=>{J?H===h&&C("/devices"):C(`/devices/${H}`),c(H,J)},[c,h,C]),$=x.useCallback((H,J)=>{H===h&&J===g&&C("/devices"),v(H,J)},[v,h,g,C]),_=x.useCallback(H=>{Ei.getState().createWindow(H)},[]),z=(T==null?void 0:T.devices)??[],te=x.useMemo(()=>[...z].sort((H,J)=>H.name.localeCompare(J.name,gH(E),{numeric:!0,sensitivity:"base"})),[z,E]);return re.jsxDEV(F_,{className:"flex flex-col flex-1 min-h-0",children:[re.jsxDEV(V7,{children:o("device.devices")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:170,columnNumber:7},this),re.jsxDEV(uY,{className:"flex-1 min-h-0",children:re.jsxDEV("div",{className:"space-y-1.5 py-2",children:[te.map(H=>{var J,N;return re.jsxDEV(pY,{device:H,windows:((N=(J=b[H.id])==null?void 0:J.session)==null?void 0:N.windows)??null,isConnected:p.has(H.id),selectedWindowId:g,selectedPaneId:m,onConnectToggle:()=>Y(H.id,p.has(H.id)),onCreateWindow:_,onCloseWindow:$,onClosePane:w,onPaneClick:A,onWindowClick:M},H.id,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:174,columnNumber:13},this)}),te.length===0&&re.jsxDEV("div",{className:"text-center text-sm text-muted-foreground py-4",children:o("sidebar.noDevices")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:192,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:172,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:171,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:169,columnNumber:5},this)}function pY({device:o,windows:n,isConnected:a,selectedWindowId:i,selectedPaneId:l,onConnectToggle:c,onCreateWindow:f,onCloseWindow:h,onClosePane:g,onPaneClick:m,onWindowClick:b}){const{t:p}=dg(),v=o.type==="local"?IN:j5;return re.jsxDEV("div",{"data-testid":`device-item-${o.id}`,className:Pt("rounded-lg border overflow-hidden text-select-none",a?"bg-card/50":"bg-muted/20"),onClick:a?void 0:c,children:[re.jsxDEV("div",{className:"px-3 py-1 bg-muted/30 border-b",children:re.jsxDEV("div",{className:"flex items-center gap-2",children:[re.jsxDEV(v,{className:"ml-1 h-4 w-4 text-muted-foreground shrink-0"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:244,columnNumber:11},this),re.jsxDEV("span",{className:"flex-1 truncate text-sm font-medium text-select-none",children:o.name},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:245,columnNumber:11},this),re.jsxDEV("div",{className:Pt("h-2 w-2 rounded-full shrink-0",a?"bg-emerald-500":"bg-gray-400")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:250,columnNumber:11},this),re.jsxDEV(ow,{variant:"ghost",size:"icon-xs",onClick:w=>{w.stopPropagation(),c()},"data-testid":a?`device-disconnect-${o.id}`:`device-connect-${o.id}`,title:p(a?"device.disconnect":"device.connect"),children:a?re.jsxDEV(G5,{className:"h-3.5 w-3.5 text-orange-500"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:271,columnNumber:15},this):re.jsxDEV(Q5,{className:"h-3.5 w-3.5 text-emerald-500"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:273,columnNumber:15},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:258,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:243,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:242,columnNumber:7},this),a&&re.jsxDEV("div",{className:"p-1 space-y-0.5",children:[!n&&re.jsxDEV("div",{className:"text-xs text-muted-foreground px-2 py-1.5 text-center",children:p("device.connecting")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:283,columnNumber:13},this),(n==null?void 0:n.length)===0&&re.jsxDEV("div",{className:"text-xs text-muted-foreground px-2 py-1.5 text-center",children:p("window.noWindows")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:289,columnNumber:13},this),n==null?void 0:n.map(w=>re.jsxDEV(mY,{deviceId:o.id,window:w,isSelected:w.id===i,selectedPaneId:l,onPaneClick:m,onWindowClick:b,onCloseWindow:h,onClosePane:g},w.id,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:295,columnNumber:13},this)),re.jsxDEV("button",{type:"button","data-testid":`window-create-${o.id}`,onPointerDown:w=>w.stopPropagation(),onMouseDown:w=>w.stopPropagation(),onClick:()=>f(o.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:[re.jsxDEV($5,{className:"h-3.5 w-3.5 shrink-0"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:317,columnNumber:13},this),re.jsxDEV("span",{className:"text-xs",children:p("window.new")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:318,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:309,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:281,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:233,columnNumber:5},this)}function mY({deviceId:o,window:n,isSelected:a,selectedPaneId:i,onPaneClick:l,onWindowClick:c,onCloseWindow:f,onClosePane:h}){const g=n.panes.length>1,m=n.panes.find(p=>p.id===i),b=a&&!!m;return re.jsxDEV("div",{className:"space-y-0.5",children:[re.jsxDEV("div",{className:"group relative",children:[re.jsxDEV("button",{type:"button",onClick:()=>c(o,n.id,n.panes),"data-testid":`window-item-${n.id}`,className:Pt("w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left transition-colors pr-7",b?"bg-primary/15 text-primary border border-primary/30":"hover:bg-accent/50 text-foreground border border-transparent"),children:[re.jsxDEV(Z7,{variant:b?"default":"outline",className:"h-5 text-[10px] px-1.5 shrink-0",children:n.index},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:368,columnNumber:11},this),re.jsxDEV("span",{className:"flex-1 truncate text-xs font-medium",children:n.name},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:375,columnNumber:11},this),n.active&&re.jsxDEV("span",{className:Pt("h-1.5 w-1.5 rounded-full shrink-0",b?"bg-foreground/80":"bg-foreground/50")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:378,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:357,columnNumber:9},this),re.jsxDEV("button",{type:"button",onClick:p=>{p.stopPropagation(),f(o,n.id)},className:Pt("absolute right-1.5 top-1/2 -translate-y-1/2 h-5 w-5 flex items-center justify-center rounded text-muted-foreground hover:bg-background hover:text-foreground transition-opacity",b?"opacity-100":"opacity-0 group-hover:opacity-100"),title:"Close window",children:re.jsxDEV("span",{className:"text-xs leading-none",children:"×"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:400,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:388,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:356,columnNumber:7},this),g&&re.jsxDEV("div",{className:"ml-4 pl-2 border-l border-border/50 space-y-0.5",children:n.panes.map(p=>{const v=p.id===i;return re.jsxDEV("div",{className:"group relative",children:[re.jsxDEV("button",{type:"button",onClick:()=>l(o,n.id,p.id),"data-testid":`pane-item-${p.id}`,className:Pt("w-full flex items-center gap-2 px-2 py-1 rounded-md text-left transition-colors pr-7",v?"bg-primary/10 text-primary border border-primary/20":"hover:bg-accent/30 text-muted-foreground border border-transparent"),children:[re.jsxDEV("span",{className:"text-[10px] font-mono opacity-60 w-4",children:p.index},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:423,columnNumber:19},this),re.jsxDEV("span",{className:"flex-1 truncate text-xs",children:p.title||`Pane ${p.index}`},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:425,columnNumber:19},this),p.active&&re.jsxDEV("span",{className:Pt("h-1 w-1 rounded-full shrink-0",v?"bg-foreground/80":"bg-foreground/50")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:430,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:412,columnNumber:17},this),re.jsxDEV("button",{type:"button",onClick:w=>{w.stopPropagation(),h(o,n.id,p.id,n.panes.length)},className:Pt("absolute right-1.5 top-1/2 -translate-y-1/2 h-5 w-5 flex items-center justify-center rounded text-muted-foreground hover:bg-background hover:text-foreground transition-opacity",v?"opacity-100":"opacity-0 group-hover:opacity-100"),title:"Close pane",children:re.jsxDEV("span",{className:"text-xs leading-none",children:"×"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:452,columnNumber:19},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:440,columnNumber:17},this)]},p.id,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:411,columnNumber:15},this)})},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:406,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:354,columnNumber:5},this)}function gY(o,n){let a;try{a=o()}catch{return}return{getItem:l=>{var c;const f=g=>g===null?null:JSON.parse(g,void 0),h=(c=a.getItem(l))!=null?c:null;return h instanceof Promise?h.then(f):f(h)},setItem:(l,c)=>a.setItem(l,JSON.stringify(c,void 0)),removeItem:l=>a.removeItem(l)}}const CS=o=>n=>{try{const a=o(n);return a instanceof Promise?a:{then(i){return CS(i)(a)},catch(i){return this}}}catch(a){return{then(i){return this},catch(i){return CS(i)(a)}}}},yY=(o,n)=>(a,i,l)=>{let c={storage:gY(()=>window.localStorage),partialize:C=>C,version:0,merge:(C,A)=>({...A,...C}),...n},f=!1,h=0;const g=new Set,m=new Set;let b=c.storage;if(!b)return o((...C)=>{console.warn(`[zustand persist middleware] Unable to update item '${c.name}', the given storage is currently unavailable.`),a(...C)},i,l);const p=()=>{const C=c.partialize({...i()});return b.setItem(c.name,{state:C,version:c.version})},v=l.setState;l.setState=(C,A)=>(v(C,A),p());const w=o((...C)=>(a(...C),p()),i,l);l.getInitialState=()=>w;let E;const T=()=>{var C,A;if(!b)return;const k=++h;f=!1,g.forEach(M=>{var Y;return M((Y=i())!=null?Y:w)});const U=((A=c.onRehydrateStorage)==null?void 0:A.call(c,(C=i())!=null?C:w))||void 0;return CS(b.getItem.bind(b))(c.name).then(M=>{if(M)if(typeof M.version=="number"&&M.version!==c.version){if(c.migrate){const Y=c.migrate(M.state,M.version);return Y instanceof Promise?Y.then($=>[!0,$]):[!0,Y]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,M.state];return[!1,void 0]}).then(M=>{var Y;if(k!==h)return;const[$,_]=M;if(E=c.merge(_,(Y=i())!=null?Y:w),a(E,!0),$)return p()}).then(()=>{k===h&&(U==null||U(E,void 0),E=i(),f=!0,m.forEach(M=>M(E)))}).catch(M=>{k===h&&(U==null||U(void 0,M))})};return l.persist={setOptions:C=>{c={...c,...C},C.storage&&(b=C.storage)},clearStorage:()=>{b==null||b.removeItem(c.name)},getOptions:()=>c,rehydrate:()=>T(),hasHydrated:()=>f,onHydrate:C=>(g.add(C),()=>{g.delete(C)}),onFinishHydration:C=>(m.add(C),()=>{m.delete(C)})},c.skipHydration||T(),E||w},bY=yY,xA=GS()(bY(o=>({sidebarCollapsed:!1,inputMode:"direct",editorSendWithEnter:!0,theme:"dark",editorHistory:[],editorDrafts:{},setSidebarCollapsed:n=>o({sidebarCollapsed:n}),setInputMode:n=>o({inputMode:n}),setEditorSendWithEnter:n=>o({editorSendWithEnter:n}),setTheme:n=>o({theme:n}),addEditorHistory:n=>o(a=>({editorHistory:[n,...a.editorHistory.slice(0,49)]})),setEditorDraft:(n,a)=>o(i=>({editorDrafts:{...i.editorDrafts,[n]:a}})),removeEditorDraft:n=>o(a=>{if(!(n in a.editorDrafts))return a;const i={...a.editorDrafts};return delete i[n],{editorDrafts:i}})}),{name:"tmex-ui",partialize:o=>({sidebarCollapsed:o.sidebarCollapsed,inputMode:o.inputMode,editorSendWithEnter:o.editorSendWithEnter,theme:o.theme,editorHistory:o.editorHistory,editorDrafts:o.editorDrafts})}));function vY(){const{t:o}=dg(),{isMobile:n,setOpenMobile:a}=Au(),i=Lf(b=>{var p;return(p=b.settings)==null?void 0:p.siteName}),l=Lf(b=>b.fetchSettings);x.useEffect(()=>{l()},[l]);const c=i??"tmex",f=xA(b=>b.theme),h=xA(b=>b.setTheme),g=f==="dark",m=()=>{const b=g?"light":"dark";h(b),document.documentElement.classList.toggle("dark",b==="dark")};return re.jsxDEV("div",{className:"flex items-center gap-2 px-2",children:[re.jsxDEV(ag,{to:"/",className:"flex flex-1 items-center gap-3 overflow-hidden",children:[re.jsxDEV("div",{className:"h-8 w-8 shrink-0 overflow-hidden rounded-lg border-2 border-black",children:re.jsxDEV("img",{src:"/logo.png",alt:c,className:"h-full w-full object-cover"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:37,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:36,columnNumber:9},this),re.jsxDEV("span",{className:"truncate text-sm font-semibold tracking-tight",children:c},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:43,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:35,columnNumber:7},this),re.jsxDEV("button",{type:"button",onClick:m,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":o(g?"settings.themeLight":"settings.themeDark"),title:o(g?"settings.themeLight":"settings.themeDark"),children:g?re.jsxDEV(Z5,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:54,columnNumber:19},this):re.jsxDEV(B5,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:54,columnNumber:49},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:47,columnNumber:7},this),re.jsxDEV(ag,{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":o("sidebar.settings"),title:o("sidebar.settings"),children:re.jsxDEV(K5,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:62,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:56,columnNumber:7},this),n&&re.jsxDEV("button",{type:"button","data-testid":"mobile-sidebar-close",onClick:()=>a(!1),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":o("nav.closeSidebar"),title:o("nav.closeSidebar"),children:re.jsxDEV(BN,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:73,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:65,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:34,columnNumber:5},this)}const SY=[{title:"nav.manageDevices",url:"/devices",icon:IN}];function wY({...o}){return re.jsxDEV(z7,{variant:"inset",...o,children:[re.jsxDEV("div",{className:"h-[var(--tmex-safe-area-top)]"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:25,columnNumber:7},this),re.jsxDEV(H7,{className:"py-3",children:re.jsxDEV(vY,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:27,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:26,columnNumber:7},this),re.jsxDEV(B7,{className:"flex flex-col",children:re.jsxDEV(hY,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:30,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:29,columnNumber:7},this),re.jsxDEV(I7,{children:[re.jsxDEV(K7,{items:SY},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:33,columnNumber:9},this),re.jsxDEV("div",{className:"h-[var(--tmex-safe-area-bottom)]"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:34,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:32,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:24,columnNumber:5},this)}function EY(){var o;try{const n=localStorage.getItem("tmex-ui");if(!n){document.documentElement.classList.add("dark");return}const a=JSON.parse(n),i=(o=a==null?void 0:a.state)==null?void 0:o.theme,l=i==="dark"||i===void 0;document.documentElement.classList.toggle("dark",l)}catch{document.documentElement.classList.add("dark")}}EY();const xY=new l3({defaultOptions:{queries:{staleTime:5e3,retry:1}}});function RY(){return re.jsxDEV(A5,{children:re.jsxDEV(U7,{children:[re.jsxDEV(wY,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:50,columnNumber:9},this),re.jsxDEV(j7,{className:"h-dvh overflow-hidden",children:[re.jsxDEV("div",{className:"h-[var(--tmex-safe-area-top)]"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:52,columnNumber:11},this),re.jsxDEV(Sj,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:53,columnNumber:11},this),re.jsxDEV("div",{className:"h-[var(--tmex-safe-area-bottom)]"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:54,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:51,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:49,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:48,columnNumber:5},this)}function hf({moduleLoader:o}){const[n,a]=x.useState(null),i=JP();x.useEffect(()=>{o().then(a)},[o]);const l=n==null?void 0:n.default,c=n==null?void 0:n.PageTitle,f=n==null?void 0:n.PageActions;return re.jsxDEV(re.Fragment,{children:[re.jsxDEV("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:[re.jsxDEV("div",{className:"flex items-center gap-2 px-4",children:[re.jsxDEV(P7,{className:"-ml-1","data-testid":"mobile-sidebar-open"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:81,columnNumber:11},this),re.jsxDEV(M8,{orientation:"vertical",className:"mr-2 data-[orientation=vertical]:h-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:82,columnNumber:11},this),re.jsxDEV("span",{className:"truncate text-sm font-semibold",children:c?re.jsxDEV(c,{...i},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:84,columnNumber:26},this):""},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:83,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:80,columnNumber:9},this),re.jsxDEV("div",{className:"flex shrink-0 items-center gap-1 px-4",children:f&&re.jsxDEV(f,{...i},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:88,columnNumber:27},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:87,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:76,columnNumber:7},this),re.jsxDEV("div",{className:"flex min-h-0 flex-1 flex-col gap-4 !pt-0 p-2 md:p-4 mb-2",children:re.jsxDEV("div",{className:"bg-muted/50 min-h-0 flex-1 overflow-auto overscroll-auto rounded-xl [-webkit-overflow-scrolling:touch]",children:l?re.jsxDEV(l,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:95,columnNumber:19},this):null},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:94,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:93,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:75,columnNumber:5},this)}const TY=()=>OS(()=>import("./SettingsPage-hS99lHcp.js"),__vite__mapDeps([0,1,2,3])),RA=()=>OS(()=>import("./DevicesPage-BwLKaiUR.js"),__vite__mapDeps([4,1,2])),TA=()=>OS(()=>import("./DevicePage-n4JoyDed.js"),__vite__mapDeps([5,2,3])),CY=$j([{path:"/",Component:RY,children:[{index:!0,element:re.jsxDEV(hf,{moduleLoader:RA},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:115,columnNumber:18},void 0)},{path:"devices",element:re.jsxDEV(hf,{moduleLoader:RA},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:119,columnNumber:18},void 0)},{path:"devices/:deviceId",element:re.jsxDEV(hf,{moduleLoader:TA},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:123,columnNumber:18},void 0)},{path:"devices/:deviceId/windows/:windowId/panes/:paneId",element:re.jsxDEV(hf,{moduleLoader:TA},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:127,columnNumber:18},void 0)},{path:"settings",element:re.jsxDEV(hf,{moduleLoader:TY},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:131,columnNumber:18},void 0)}]}]),K_=document.getElementById("root");if(!K_)throw new Error("Root element not found");N3.createRoot(K_).render(re.jsxDEV(x.StrictMode,{children:re.jsxDEV(f3,{client:xY,children:[re.jsxDEV(yj,{router:CY},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:146,columnNumber:7},void 0),re.jsxDEV(N4,{richColors:!0,position:"top-right",closeButton:!0,offset:{top:"calc(16px + var(--tmex-safe-area-top))",right:"16px",bottom:"16px",left:"16px"},mobileOffset:{top:"calc(12px + var(--tmex-safe-area-top))",right:"12px",bottom:"12px",left:"12px"},toastOptions:{duration:6e3}},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:147,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:145,columnNumber:5},void 0)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:144,columnNumber:3},void 0));export{p_ as $,GN as A,ow as B,nn as C,a7 as D,yn as E,W8 as F,Kf as G,eh as H,DY as I,FF as J,j_ as K,JM as L,_Y as M,R7 as N,ea as O,bB as P,C_ as Q,$F as R,qY as S,zY as T,mw as U,Sg as V,m_ as W,BN as X,gr as Y,hr as Z,I8 as _,d3 as a,IY as a$,zt as a0,u_ as a1,D_ as a2,$Y as a3,Ou as a4,pt as a5,Eu as a6,e7 as a7,f_ as a8,h_ as a9,UY as aA,_F as aB,zF as aC,TF as aD,zs as aE,FY as aF,Rf as aG,VY as aH,jM as aI,YY as aJ,jf as aK,MY as aL,BM as aM,IN as aN,$5 as aO,j5 as aP,Z7 as aQ,M8 as aR,YS as aS,q6 as aT,Yf as aU,j0 as aV,Tf as aW,a3 as aX,yo as aY,$o as aZ,HA as a_,Di as aa,JF as ab,it as ac,jm as ad,zf as ae,QS as af,XN as ag,LY as ah,QN as ai,g_ as aj,s_ as ak,LF as al,xw as am,AY as an,NY as ao,b_ as ap,GY as aq,XB as ar,$n as as,Ci as at,Oi as au,fn as av,dF as aw,Du as ax,wF as ay,Yt as az,Lf as b,Z6 as b0,BY as b1,jY as b2,HY as b3,Tm as b4,xi as b5,RB as b6,fg as b7,WS as b8,Pf as b9,QY as bA,fY as bB,qN as bC,qt as bD,Wl as bE,t7 as bF,cw as bG,o7 as bH,o8 as ba,aw as bb,bS as bc,Ha as bd,BD as be,O0 as bf,qo as bg,t8 as bh,n8 as bi,KN as bj,d_ as bk,xF as bl,XY as bm,XM as bn,bF as bo,P8 as bp,nY as bq,tu as br,Gn as bs,rw as bt,Tw as bu,PY as bv,Ei as bw,kf as bx,JP as by,bN as bz,na as c,xA as d,R3 as e,nS as f,T_ as g,FM as h,lo as i,re as j,Pt as k,A_ as l,YM as m,O_ as n,VM as o,kY as p,ew as q,x as r,Ql as s,gH as t,dg as u,Uf as v,Wf as w,Ln as x,bg as y,AF as z};
|
|
449
|
-
//# sourceMappingURL=index-
|
|
448
|
+
)`}return nn.jsx("div",{ref:a,role:"presentation","data-base-ui-inert":"",...l,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:c}})});C_.displayName="InternalBackdrop";const O_=x.forwardRef(function(n,a){const{keepMounted:i=!1,...l}=n,{store:c}=Wl(),f=c.useState("mounted"),h=c.useState("modal"),g=c.useState("open");return f||i?nn.jsx(bw.Provider,{value:i,children:nn.jsxs(JM,{ref:a,...l,children:[f&&h===!0&&nn.jsx(C_,{ref:c.context.internalBackdropRef,inert:$F(!g)}),n.children]})}):null});O_.displayName="DialogPortal";function D_(o){const n=x.useRef(!0);n.current&&(n.current=!1,o())}let hA={},pA={},mA="";function qF(o){if(typeof document>"u")return!1;const n=fn(o);return Gn(n).innerWidth-n.documentElement.clientWidth>0}function GF(o){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const a=fn(o),i=a.documentElement,l=a.body,c=js(i)?i:l,f=c.style.overflowY,h=i.style.scrollbarGutter;i.style.scrollbarGutter="stable",c.style.overflowY="scroll";const g=c.offsetWidth;c.style.overflowY="hidden";const m=c.offsetWidth;return c.style.overflowY=f,i.style.scrollbarGutter=h,g===m}function XF(o){const n=fn(o),a=n.documentElement,i=n.body,l=js(a)?a:i,c={overflowY:l.style.overflowY,overflowX:l.style.overflowX};return Object.assign(l.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(l.style,c)}}function QF(o){var v;const n=fn(o),a=n.documentElement,i=n.body,l=Gn(a);let c=0,f=0,h=!1;const g=Nn.create();if(rw&&(((v=l.visualViewport)==null?void 0:v.scale)??1)!==1)return()=>{};function m(){const w=l.getComputedStyle(a),E=l.getComputedStyle(i),A=(w.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";c=a.scrollTop,f=a.scrollLeft,hA={scrollbarGutter:a.style.scrollbarGutter,overflowY:a.style.overflowY,overflowX:a.style.overflowX},mA=a.style.scrollBehavior,pA={position:i.style.position,height:i.style.height,width:i.style.width,boxSizing:i.style.boxSizing,overflowY:i.style.overflowY,overflowX:i.style.overflowX,scrollBehavior:i.style.scrollBehavior};const k=a.scrollHeight>a.clientHeight,U=a.scrollWidth>a.clientWidth,M=w.overflowY==="scroll"||E.overflowY==="scroll",Y=w.overflowX==="scroll"||E.overflowX==="scroll",$=Math.max(0,l.innerWidth-i.clientWidth),_=Math.max(0,l.innerHeight-i.clientHeight),z=parseFloat(E.marginTop)+parseFloat(E.marginBottom),te=parseFloat(E.marginLeft)+parseFloat(E.marginRight),H=js(a)?a:i;if(h=GF(o),h){a.style.scrollbarGutter=A,H.style.overflowY="hidden",H.style.overflowX="hidden";return}Object.assign(a.style,{scrollbarGutter:A,overflowY:"hidden",overflowX:"hidden"}),(k||M)&&(a.style.overflowY="scroll"),(U||Y)&&(a.style.overflowX="scroll"),Object.assign(i.style,{position:"relative",height:z||_?`calc(100dvh - ${z+_}px)`:"100dvh",width:te||$?`calc(100vw - ${te+$}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),i.scrollTop=c,i.scrollLeft=f,a.setAttribute("data-base-ui-scroll-locked",""),a.style.scrollBehavior="unset"}function b(){Object.assign(a.style,hA),Object.assign(i.style,pA),h||(a.scrollTop=c,a.scrollLeft=f,a.removeAttribute("data-base-ui-scroll-locked"),a.style.scrollBehavior=mA)}function p(){b(),g.request(m)}return m(),l.addEventListener("resize",p),()=>{g.cancel(),b(),typeof l.removeEventListener=="function"&&l.removeEventListener("resize",p)}}class WF{constructor(){Xe(this,"lockCount",0);Xe(this,"restore",null);Xe(this,"timeoutLock",Fa.create());Xe(this,"timeoutUnlock",Fa.create());Xe(this,"release",()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)});Xe(this,"unlock",()=>{var n;this.lockCount===0&&this.restore&&((n=this.restore)==null||n.call(this),this.restore=null)})}acquire(n){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(n)),this.release}lock(n){if(this.lockCount===0||this.restore!==null)return;const i=fn(n).documentElement,l=Gn(i).getComputedStyle(i).overflowY;if(l==="hidden"||l==="clip"){this.restore=qN;return}const c=xM||!qF(n);this.restore=c?XF(n):QF(n)}}const KF=new WF;function JF(o=!0,n=null){pt(()=>{if(o)return KF.acquire(n)},[o,n])}function ZF(o){const n=x.useRef(""),a=x.useCallback(l=>{l.defaultPrevented||(n.current=l.pointerType,o(l,l.pointerType))},[o]);return{onClick:x.useCallback(l=>{if(l.detail===0){o(l,"keyboard");return}"pointerType"in l?o(l,l.pointerType):o(l,n.current),n.current=""},[o]),onPointerDown:a}}function e7(o){const[n,a]=x.useState(null),i=it((h,g)=>{o||a(g||(xM?"touch":""))}),l=x.useCallback(()=>{a(null)},[]),{onClick:c,onPointerDown:f}=ZF(i);return x.useMemo(()=>({openMethod:n,reset:l,triggerProps:{onClick:c,onPointerDown:f}}),[n,l,c,f])}function t7(o){const{store:n,parentContext:a,actionsRef:i}=o,l=n.useState("open"),c=n.useState("disablePointerDismissal"),f=n.useState("modal"),h=n.useState("popupElement"),{openMethod:g,triggerProps:m,reset:b}=e7(l);f_(n);const{forceUnmount:p}=h_(l,n,()=>{b()}),v=it(H=>{const J=yn(H);return J.preventUnmountOnClose=()=>{n.set("preventUnmountingOnClose",!0)},J}),w=x.useCallback(()=>{n.setOpen(!1,v(QN))},[n,v]);x.useImperativeHandle(i,()=>({unmount:p,close:w}),[p,w]);const E=g_({popupStore:n,onOpenChange:n.setOpen,treatPopupAsFloatingElement:!0,noEmit:!0}),[T,C]=x.useState(0),A=T===0,k=LF(E),U=s_(E,{outsidePressEvent(){return n.context.internalBackdropRef.current||n.context.backdropRef.current?"intentional":{mouse:f==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}},outsidePress(H){if(!n.context.outsidePressEnabledRef.current||"button"in H&&H.button!==0||"touches"in H&&H.touches.length!==1)return!1;const J=qo(H);if(A&&!c){const N=J;return f&&(n.context.internalBackdropRef.current||n.context.backdropRef.current)?n.context.internalBackdropRef.current===N||n.context.backdropRef.current===N||Yt(N,h)&&!(N!=null&&N.hasAttribute("data-base-ui-portal")):!0}return!1},escapeKey:A});JF(l&&f===!0,h);const{getReferenceProps:M,getFloatingProps:Y,getTriggerProps:$}=b_([k,U]);n.useContextCallback("onNestedDialogOpen",H=>{C(H+1)}),n.useContextCallback("onNestedDialogClose",()=>{C(0)}),x.useEffect(()=>(a!=null&&a.onNestedDialogOpen&&l&&a.onNestedDialogOpen(T),a!=null&&a.onNestedDialogClose&&!l&&a.onNestedDialogClose(),()=>{a!=null&&a.onNestedDialogClose&&l&&a.onNestedDialogClose()}),[l,a,T]);const _=x.useMemo(()=>M(m),[M,m]),z=x.useMemo(()=>$(m),[$,m]),te=x.useMemo(()=>Y(),[Y]);n.useSyncedValues({openMethod:g,activeTriggerProps:_,inactiveTriggerProps:z,popupProps:te,floatingRootContext:E,nestedOpenDialogCount:T})}const n7={...m_,modal:zt(o=>o.modal),nested:zt(o=>o.nested),nestedOpenDialogCount:zt(o=>o.nestedOpenDialogCount),disablePointerDismissal:zt(o=>o.disablePointerDismissal),openMethod:zt(o=>o.openMethod),descriptionElementId:zt(o=>o.descriptionElementId),titleElementId:zt(o=>o.titleElementId),viewportElement:zt(o=>o.viewportElement),role:zt(o=>o.role)};class o7 extends mw{constructor(a){super(r7(a),{popupRef:x.createRef(),backdropRef:x.createRef(),internalBackdropRef:x.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:new Sg,onOpenChange:void 0,onOpenChangeComplete:void 0},n7);Xe(this,"setOpen",(a,i)=>{var h,g,m,b;if(i.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},!a&&i.trigger==null&&this.state.activeTriggerId!=null&&(i.trigger=this.state.activeTriggerElement??void 0),(g=(h=this.context).onOpenChange)==null||g.call(h,a,i),i.isCanceled)return;const l={open:a,nativeEvent:i.event,reason:i.reason,nested:this.state.nested};(m=this.state.floatingRootContext.context.events)==null||m.emit("openchange",l);const c={open:a},f=((b=i.trigger)==null?void 0:b.id)??null;(f||a)&&(c.activeTriggerId=f,c.activeTriggerElement=i.trigger??null),this.update(c)})}}function r7(o={}){return{...p_(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,role:"dialog",...o}}function a7(o){const{children:n,open:a,defaultOpen:i=!1,onOpenChange:l,onOpenChangeComplete:c,disablePointerDismissal:f=!1,modal:h=!0,actionsRef:g,handle:m,triggerId:b,defaultTriggerId:p=null}=o,v=Wl(!0),w=!!v,E=gr(()=>(m==null?void 0:m.store)??new o7({open:i,openProp:a,activeTriggerId:p,triggerIdProp:b,modal:h,disablePointerDismissal:f,nested:w})).current;D_(()=>{a===void 0&&E.state.open===!1&&i===!0&&E.update({open:!0,activeTriggerId:p})}),E.useControlledProp("openProp",a),E.useControlledProp("triggerIdProp",b),E.useSyncedValues({disablePointerDismissal:f,nested:w,modal:h}),E.useContextCallback("onOpenChange",l),E.useContextCallback("onOpenChangeComplete",c);const T=E.useState("payload");t7({store:E,actionsRef:g,parentContext:v==null?void 0:v.store.context});const C=x.useMemo(()=>({store:E}),[E]);return nn.jsx(cw.Provider,{value:C,children:typeof n=="function"?n({payload:T}):n})}const A_=x.forwardRef(function(n,a){const{render:i,className:l,id:c,...f}=n,{store:h}=Wl(),g=Wf(c);return h.useSyncedValueWithCleanup("titleElementId",g),Ln("h2",n,{ref:a,props:[{id:g},f]})});A_.displayName="DialogTitle";function i7({...o}){return re.jsxDEV(a7,{"data-slot":"sheet",...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:11,columnNumber:10},this)}function s7({...o}){return re.jsxDEV(O_,{"data-slot":"sheet-portal",...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:23,columnNumber:10},this)}function l7({className:o,...n}){return re.jsxDEV(VM,{"data-slot":"sheet-overlay",className:Pt("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:28,columnNumber:5},this)}function c7({className:o,children:n,side:a="right",showCloseButton:i=!0,...l}){return re.jsxDEV(s7,{children:[re.jsxDEV(l7,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:48,columnNumber:7},this),re.jsxDEV(T_,{"data-slot":"sheet-content","data-side":a,className:Pt("bg-background data-open:animate-in data-closed:animate-out data-[side=right]:data-closed:slide-out-to-right-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=top]:data-closed:slide-out-to-top-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:fade-out-0 data-open:fade-in-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=bottom]:data-open:slide-in-from-bottom-10 fixed z-50 flex flex-col gap-4 bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",o),...l,children:[n,i&&re.jsxDEV(FM,{"data-slot":"sheet-close",render:re.jsxDEV(ow,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:60,columnNumber:15},this),children:[re.jsxDEV(BN,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:67,columnNumber:13},this),re.jsxDEV("span",{className:"sr-only",children:"Close"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:69,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:57,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:49,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:47,columnNumber:5},this)}function u7({className:o,...n}){return re.jsxDEV("div",{"data-slot":"sheet-header",className:Pt("gap-0.5 p-4 flex flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:79,columnNumber:5},this)}function d7({className:o,...n}){return re.jsxDEV(A_,{"data-slot":"sheet-title",className:Pt("text-foreground text-base font-medium",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:99,columnNumber:5},this)}function f7({className:o,...n}){return re.jsxDEV(YM,{"data-slot":"sheet-description",className:Pt("text-muted-foreground text-sm",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sheet.tsx",lineNumber:112,columnNumber:5},this)}const vw=x.createContext(void 0);vw.displayName="TooltipRootContext";function th(o){const n=x.useContext(vw);if(n===void 0&&!o)throw new Error("Base UI: TooltipRootContext is missing. Tooltip parts must be placed within <Tooltip.Root>.");return n}const h7={...m_,disabled:zt(o=>o.disabled),instantType:zt(o=>o.instantType),isInstantPhase:zt(o=>o.isInstantPhase),trackCursorAxis:zt(o=>o.trackCursorAxis),disableHoverablePopup:zt(o=>o.disableHoverablePopup),lastOpenChangeReason:zt(o=>o.openChangeReason),closeDelay:zt(o=>o.closeDelay),hasViewport:zt(o=>o.hasViewport)};class Sw extends mw{constructor(a){super({...p7(),...a},{popupRef:x.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:new Sg},h7);Xe(this,"setOpen",(a,i)=>{var m,b;const l=i.reason,c=l===ea,f=a&&l===jm,h=!a&&(l===zf||l===QS);if(i.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},(b=(m=this.context).onOpenChange)==null||b.call(m,a,i),i.isCanceled)return;const g=()=>{var w;const p={open:a,openChangeReason:l};f?p.instantType="focus":h?p.instantType="dismiss":l===ea&&(p.instantType=void 0);const v=((w=i.trigger)==null?void 0:w.id)??null;(v||a)&&(p.activeTriggerId=v,p.activeTriggerElement=i.trigger??null),this.update(p)};c?zs.flushSync(g):g()})}static useStore(a,i){const l=gr(()=>new Sw(i)).current,c=a??l,f=g_({popupStore:c,onOpenChange:c.setOpen});return c.state.floatingRootContext=f,c}}function p7(){return{...p_(),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:"none",disableHoverablePopup:!1,openChangeReason:null,closeDelay:0,hasViewport:!1}}const N_=u_(function(n){const{disabled:a=!1,defaultOpen:i=!1,open:l,disableHoverablePopup:c=!1,trackCursorAxis:f="none",actionsRef:h,onOpenChange:g,onOpenChangeComplete:m,handle:b,triggerId:p,defaultTriggerId:v=null,children:w}=n,E=Sw.useStore(b==null?void 0:b.store,{open:i,openProp:l,activeTriggerId:v,triggerIdProp:p});D_(()=>{l===void 0&&E.state.open===!1&&i===!0&&E.update({open:!0,activeTriggerId:v})}),E.useControlledProp("openProp",l),E.useControlledProp("triggerIdProp",p),E.useContextCallback("onOpenChange",g),E.useContextCallback("onOpenChangeComplete",m);const T=E.useState("open"),C=!a&&T,A=E.useState("activeTriggerId"),k=E.useState("payload");E.useSyncedValues({trackCursorAxis:f,disableHoverablePopup:c}),pt(()=>{T&&a&&E.setOpen(!1,yn(DB))},[T,a,E]),E.useSyncedValue("disabled",a),f_(E);const{forceUnmount:U,transitionStatus:M}=h_(C,E),Y=E.useState("isInstantPhase"),$=E.useState("instantType"),_=E.useState("lastOpenChangeReason"),z=x.useRef(null);pt(()=>{M==="ending"&&_===fg||M!=="ending"&&Y?($!=="delay"&&(z.current=$),E.set("instantType","delay")):z.current!==null&&(E.set("instantType",z.current),z.current=null)},[M,Y,_,$,E]),pt(()=>{C&&A==null&&E.set("payload",void 0)},[E,A,C]);const te=x.useCallback(()=>{E.setOpen(!1,m7(E,QN))},[E]);x.useImperativeHandle(h,()=>({unmount:U,close:te}),[U,te]);const H=E.useState("floatingRootContext"),J=s_(H,{enabled:!a,referencePress:!0}),N=J8(H,{enabled:!a&&f!=="none",axis:f==="none"?void 0:f}),{getReferenceProps:j,getFloatingProps:ne,getTriggerProps:Z}=b_([J,N]),P=x.useMemo(()=>j(),[j]),oe=x.useMemo(()=>Z(),[Z]),I=x.useMemo(()=>ne(),[ne]);return E.useSyncedValues({activeTriggerProps:P,inactiveTriggerProps:oe,popupProps:I}),nn.jsx(vw.Provider,{value:E,children:typeof w=="function"?w({payload:k}):w})});N_.displayName="TooltipRoot";function m7(o,n){const a=yn(n);return a.preventUnmountOnClose=()=>{o.set("preventUnmountingOnClose",!0)},a}const M_=x.createContext(void 0);M_.displayName="TooltipProviderContext";function g7(){return x.useContext(M_)}let y7=(function(o){return o[o.popupOpen=ng.popupOpen]="popupOpen",o.triggerDisabled="data-trigger-disabled",o})({});const b7=600,__=dF(function(n,a){const{className:i,render:l,handle:c,payload:f,disabled:h,delay:g,closeDelay:m,id:b,...p}=n,v=th(!0),w=(c==null?void 0:c.store)??v;if(!w)throw new Error("Base UI: <Tooltip.Trigger> must be either used within a <Tooltip.Root> component or provided with a handle.");const E=Wf(b),T=w.useState("isTriggerActive",E),C=w.useState("isOpenedByTrigger",E),A=w.useState("floatingRootContext"),k=x.useRef(null),U=g??b7,M=m??0,{registerTrigger:Y,isMountedByThisTrigger:$}=wF(E,k,w,{payload:f,closeDelay:M}),_=g7(),{delayRef:z,isInstantPhase:te,hasProvider:H}=B8(A,{open:C});w.useSyncedValue("isInstantPhase",te);const J=w.useState("disabled"),N=h??J,j=w.useState("trackCursorAxis"),ne=w.useState("disableHoverablePopup"),Z=_F(A,{enabled:!N,mouseOnly:!0,move:!1,handleClose:!ne&&j!=="both"?zF():null,restMs(){const pe=_==null?void 0:_.delay,L=typeof z.current=="object"?z.current.open:void 0;let ce=U;return H&&(L!==0?ce=g??pe??U:ce=0),ce},delay(){const pe=typeof z.current=="object"?z.current.close:void 0;let L=M;return m==null&&H&&(L=pe),{close:L}},triggerElementRef:k,isActiveTrigger:T}),P=TF(A,{enabled:!N}).reference,oe={open:C},I=w.useState("triggerProps",$);return Ln("button",n,{state:oe,ref:[a,Y,k],props:[Z,P,I,{id:E,[y7.triggerDisabled]:N?"":void 0},p],stateAttributesMapping:P8})});__.displayName="TooltipTrigger";const ww=x.createContext(void 0);ww.displayName="TooltipPortalContext";function v7(){const o=x.useContext(ww);if(o===void 0)throw new Error("Base UI: <Tooltip.Portal> is missing.");return o}const k_=x.forwardRef(function(n,a){const{children:i,container:l,className:c,render:f,...h}=n,{portalNode:g,portalSubtree:m}=KM({container:l,ref:a,componentProps:n,elementProps:h});return!m&&!g?null:nn.jsxs(x.Fragment,{children:[m,g&&zs.createPortal(i,g)]})});k_.displayName="FloatingPortalLite";const L_=x.forwardRef(function(n,a){const{keepMounted:i=!1,...l}=n;return th().useState("mounted")||i?nn.jsx(ww.Provider,{value:i,children:nn.jsx(k_,{ref:a,...l})}):null});L_.displayName="TooltipPortal";const Ew=x.createContext(void 0);Ew.displayName="TooltipPositionerContext";function U_(){const o=x.useContext(Ew);if(o===void 0)throw new Error("Base UI: TooltipPositionerContext is missing. TooltipPositioner parts must be placed within <Tooltip.Positioner>.");return o}const z_=x.createContext(void 0);z_.displayName="DirectionContext";function xw(){const o=x.useContext(z_);return(o==null?void 0:o.direction)??"ltr"}const S7=o=>({name:"arrow",options:o,async fn(n){var se,pe;const{x:a,y:i,placement:l,rects:c,platform:f,elements:h,middlewareData:g}=n,{element:m,padding:b=0,offsetParent:p="real"}=Ai(o,n)||{};if(m==null)return{};const v=AM(b),w={x:a,y:i},E=lw(l),T=sw(E),C=await f.getDimensions(m),A=E==="y",k=A?"top":"left",U=A?"bottom":"right",M=A?"clientHeight":"clientWidth",Y=c.reference[T]+c.reference[E]-w[E]-c.floating[T],$=w[E]-c.reference[E],_=p==="real"?await((se=f.getOffsetParent)==null?void 0:se.call(f,m)):h.floating;let z=h.floating[M]||c.floating[T];(!z||!await((pe=f.isElement)==null?void 0:pe.call(f,_)))&&(z=h.floating[M]||c.floating[T]);const te=Y/2-$/2,H=z/2-C[T]/2-1,J=Math.min(v[k],H),N=Math.min(v[U],H),j=J,ne=z-C[T]-N,Z=z/2-C[T]/2+te,P=vS(j,Z,ne),oe=!g.arrow&&Hs(l)!=null&&Z!==P&&c.reference[T]/2-(Z<j?J:N)-C[T]/2<0,I=oe?Z<j?Z-j:Z-ne:0;return{[E]:w[E]+I,data:{[E]:P,centerOffset:Z-P-I,...oe&&{alignmentOffset:I}},reset:oe}}}),w7=(o,n)=>({...S7(o),options:[o,n]}),E7={name:"hide",async fn(o){var h;const{width:n,height:a,x:i,y:l}=o.rects.reference,c=n===0&&a===0&&i===0&&l===0;return{data:{referenceHidden:((h=(await HV().fn(o)).data)==null?void 0:h.referenceHidden)||c}}}},Bm={sideX:"left",sideY:"top"},x7={name:"adaptiveOrigin",async fn(o){var k,U;const{x:n,y:a,rects:{floating:i},elements:{floating:l},platform:c,strategy:f,placement:h}=o,g=Gn(l),m=g.getComputedStyle(l);if(!(m.transitionDuration!=="0s"&&m.transitionDuration!==""))return{x:n,y:a,data:Bm};const p=await((k=c.getOffsetParent)==null?void 0:k.call(c,l));let v={width:0,height:0};if(f==="fixed"&&(g!=null&&g.visualViewport))v={width:g.visualViewport.width,height:g.visualViewport.height};else if(p===g){const M=fn(l);v={width:M.documentElement.clientWidth,height:M.documentElement.clientHeight}}else await((U=c.isElement)==null?void 0:U.call(c,p))&&(v=await c.getDimensions(p));const w=Xo(h);let E=n,T=a;w==="left"&&(E=v.width-(n+i.width)),w==="top"&&(T=v.height-(a+i.height));const C=w==="left"?"right":Bm.sideX,A=w==="top"?"bottom":Bm.sideY;return{x:E,y:T,data:{sideX:C,sideY:A}}}};function P_(o,n,a){const i=o==="inline-start"||o==="inline-end";return{top:"top",right:i?a?"inline-start":"inline-end":"right",bottom:"bottom",left:i?a?"inline-end":"inline-start":"left"}[n]}function gA(o,n,a){const{rects:i,placement:l}=o;return{side:P_(n,Xo(l),a),align:Hs(l)||"center",anchor:{width:i.reference.width,height:i.reference.height},positioner:{width:i.floating.width,height:i.floating.height}}}function R7(o){var Un,D;const{anchor:n,positionMethod:a="absolute",side:i="bottom",sideOffset:l=0,align:c="center",alignOffset:f=0,collisionBoundary:h,collisionPadding:g=5,sticky:m=!1,arrowPadding:b=5,disableAnchorTracking:p=!1,keepMounted:v=!1,floatingRootContext:w,mounted:E,collisionAvoidance:T,shiftCrossAxis:C=!1,nodeId:A,adaptiveOrigin:k,lazyFlip:U=!1,externalTree:M}=o,[Y,$]=x.useState(null);!E&&Y!==null&&$(null);const _=T.side||"flip",z=T.align||"flip",te=T.fallbackAxisSide||"end",H=typeof n=="function"?n:void 0,J=it(H),N=H?J:n,j=Ha(n),Z=xw()==="rtl",P=Y||{top:"top",right:"right",bottom:"bottom",left:"left","inline-end":Z?"left":"right","inline-start":Z?"right":"left"}[i],oe=c==="center"?P:`${P}-${c}`;let I=g;const se=1,pe=i==="bottom"?se:0,L=i==="top"?se:0,ce=i==="right"?se:0,ie=i==="left"?se:0;typeof I=="number"?I={top:I+pe,right:I+ie,bottom:I+L,left:I+ce}:I&&(I={top:(I.top||0)+pe,right:(I.right||0)+ie,bottom:(I.bottom||0)+L,left:(I.left||0)+ce});const me={boundary:h==="clipping-ancestors"?"clippingAncestors":h,padding:I},Te=x.useRef(null),Ue=Ha(l),ve=Ha(f),at=[LV(G=>{const ge=gA(G,i,Z),ye=typeof Ue.current=="function"?Ue.current(ge):Ue.current,Ne=typeof ve.current=="function"?ve.current(ge):ve.current;return{mainAxis:ye,crossAxis:Ne,alignmentAxis:Ne}},[typeof l!="function"?l:0,typeof f!="function"?f:0,Z,i])],xe=z==="none"&&_!=="shift",he=!xe&&(m||C||_==="shift"),we=_==="none"?null:PV({...me,padding:{top:I.top+se,right:I.right+se,bottom:I.bottom+se,left:I.left+se},mainAxis:!C&&_==="flip",crossAxis:z==="flip"?"alignment":!1,fallbackAxisSideDirection:te}),De=xe?null:UV(G=>{const ge=fn(G.elements.floating).documentElement;return{...me,rootBoundary:C?{x:0,y:0,width:ge.clientWidth,height:ge.clientHeight}:void 0,mainAxis:z!=="none",crossAxis:he,limiter:m||C?void 0:zV(ye=>{if(!Te.current)return{};const{width:Ne,height:$e}=Te.current.getBoundingClientRect(),Se=Ur(Xo(ye.placement)),Ke=Se==="y"?Ne:$e,Ve=Se==="y"?I.left+I.right:I.top+I.bottom;return{offset:Ke/2+Ve/2}})}},[me,m,C,I,z]);_==="shift"||z==="shift"||c==="center"?at.push(De,we):at.push(we,De),at.push(jV({...me,apply({elements:{floating:G},rects:{reference:ge},availableWidth:ye,availableHeight:Ne}){const $e=G.style;$e.setProperty("--available-width",`${ye}px`),$e.setProperty("--available-height",`${Ne}px`),$e.setProperty("--anchor-width",`${ge.width}px`),$e.setProperty("--anchor-height",`${ge.height}px`)}}),w7(()=>({element:Te.current||document.createElement("div"),padding:b,offsetParent:"floating"}),[b]),{name:"transformOrigin",fn(G){var Fe,Qe,ut;const{elements:ge,middlewareData:ye,placement:Ne,rects:$e,y:Se}=G,Ke=Xo(Ne),Ve=Ur(Ke),Rt=Te.current,Cn=((Fe=ye.arrow)==null?void 0:Fe.x)||0,rn=((Qe=ye.arrow)==null?void 0:Qe.y)||0,xn=(Rt==null?void 0:Rt.clientWidth)||0,Qo=(Rt==null?void 0:Rt.clientHeight)||0,B=Cn+xn/2,Q=rn+Qo/2,ue=Math.abs(((ut=ye.shift)==null?void 0:ut.y)||0),Ee=$e.reference.height/2,Me=typeof l=="function"?l(gA(G,i,Z)):l,Je=ue>Me,Ze={top:`${B}px calc(100% + ${Me}px)`,bottom:`${B}px ${-Me}px`,left:`calc(100% + ${Me}px) ${Q}px`,right:`${-Me}px ${Q}px`}[Ke],je=`${B}px ${$e.reference.y+Ee-Se}px`;return ge.floating.style.setProperty("--transform-origin",he&&Ve==="y"&&Je?je:Ze),{}}},E7,k),pt(()=>{!E&&w&&w.update({referenceElement:null,floatingElement:null,domReferenceElement:null})},[E,w]);const Ye=x.useMemo(()=>({elementResize:!p&&typeof ResizeObserver<"u",layoutShift:!p&&typeof IntersectionObserver<"u"}),[p]),{refs:Re,elements:Ae,x:Le,y:tt,middlewareData:Ce,update:ot,placement:gt,context:yt,isPositioned:ht,floatingStyles:$t}=RF({rootContext:w,placement:oe,middleware:at,strategy:a,whileElementsMounted:v?void 0:(...G)=>rA(...G,Ye),nodeId:A,externalTree:M}),{sideX:on,sideY:bn}=Ce.adaptiveOrigin||Bm,bt=ht?a:"fixed",jt=x.useMemo(()=>{const G=k?{position:bt,[on]:Le,[bn]:tt}:{position:bt,...$t};return ht||(G.opacity=0),G},[k,bt,on,Le,bn,tt,$t,ht]),Ft=x.useRef(null);pt(()=>{if(!E)return;const G=j.current,ge=typeof G=="function"?G():G,Ne=(yA(ge)?ge.current:ge)||null||null;Ne!==Ft.current&&(Re.setPositionReference(Ne),Ft.current=Ne)},[E,Re,N,j]),x.useEffect(()=>{if(!E)return;const G=j.current;typeof G!="function"&&yA(G)&&G.current!==Ft.current&&(Re.setPositionReference(G.current),Ft.current=G.current)},[E,Re,N,j]),x.useEffect(()=>{if(v&&E&&Ae.domReference&&Ae.floating)return rA(Ae.domReference,Ae.floating,ot,Ye)},[v,E,Ae,ot,Ye]);const vn=Xo(gt),ln=P_(i,vn,Z),Zn=Hs(gt)||"center",hn=!!((Un=Ce.hide)!=null&&Un.referenceHidden);pt(()=>{U&&E&&ht&&$(vn)},[U,E,ht,vn]);const co=x.useMemo(()=>{var G,ge;return{position:"absolute",top:(G=Ce.arrow)==null?void 0:G.y,left:(ge=Ce.arrow)==null?void 0:ge.x}},[Ce.arrow]),uo=((D=Ce.arrow)==null?void 0:D.centerOffset)!==0;return x.useMemo(()=>({positionerStyles:jt,arrowStyles:co,arrowRef:Te,arrowUncentered:uo,side:ln,align:Zn,physicalSide:vn,anchorHidden:hn,refs:Re,context:yt,isPositioned:ht,update:ot}),[jt,co,Te,uo,ln,Zn,vn,hn,Re,yt,ht,ot])}function yA(o){return o!=null&&"current"in o}function j_(o){return o==="starting"?gB:hr}const H_=x.forwardRef(function(n,a){const{render:i,className:l,anchor:c,positionMethod:f="absolute",side:h="top",align:g="center",sideOffset:m=0,alignOffset:b=0,collisionBoundary:p="clipping-ancestors",collisionPadding:v=5,arrowPadding:w=5,sticky:E=!1,disableAnchorTracking:T=!1,collisionAvoidance:C=bB,...A}=n,k=th(),U=v7(),M=k.useState("open"),Y=k.useState("mounted"),$=k.useState("trackCursorAxis"),_=k.useState("disableHoverablePopup"),z=k.useState("floatingRootContext"),te=k.useState("instantType"),H=k.useState("transitionStatus"),J=k.useState("hasViewport"),N=R7({anchor:c,positionMethod:f,floatingRootContext:z,mounted:Y,side:h,sideOffset:m,align:g,alignOffset:b,collisionBoundary:p,collisionPadding:v,sticky:E,arrowPadding:w,disableAnchorTracking:T,keepMounted:U,collisionAvoidance:C,adaptiveOrigin:J?x7:void 0}),j=x.useMemo(()=>{const oe={};return(!M||$==="both"||_)&&(oe.pointerEvents="none"),{role:"presentation",hidden:!Y,style:{...N.positionerStyles,...oe}}},[M,$,_,Y,N.positionerStyles]),ne=x.useMemo(()=>({open:M,side:N.side,align:N.align,anchorHidden:N.anchorHidden,instant:$!=="none"?"tracking-cursor":te}),[M,N.side,N.align,N.anchorHidden,$,te]),Z=x.useMemo(()=>({...ne,arrowRef:N.arrowRef,arrowStyles:N.arrowStyles,arrowUncentered:N.arrowUncentered}),[ne,N.arrowRef,N.arrowStyles,N.arrowUncentered]),P=Ln("div",n,{state:ne,props:[j,j_(H),A],ref:[a,k.useStateSetter("positionerElement")],stateAttributesMapping:eh});return nn.jsx(Ew.Provider,{value:Z,children:P})});H_.displayName="TooltipPositioner";const T7={...eh,...Kf},I_=x.forwardRef(function(n,a){const{className:i,render:l,...c}=n,f=th(),{side:h,align:g}=U_(),m=f.useState("open"),b=f.useState("instantType"),p=f.useState("transitionStatus"),v=f.useState("popupProps"),w=f.useState("floatingRootContext");bg({open:m,ref:f.context.popupRef,onComplete(){var k,U;m&&((U=(k=f.context).onOpenChangeComplete)==null||U.call(k,!0))}});const E=f.useState("disabled"),T=f.useState("closeDelay");return AF(w,{enabled:!E,closeDelay:T}),Ln("div",n,{state:{open:m,side:h,align:g,instant:b,transitionStatus:p},ref:[a,f.context.popupRef,f.useStateSetter("popupElement")],props:[v,j_(p),c],stateAttributesMapping:T7})});I_.displayName="TooltipPopup";const B_=x.forwardRef(function(n,a){const{className:i,render:l,...c}=n,h=th().useState("instantType"),{open:g,arrowRef:m,side:b,align:p,arrowUncentered:v,arrowStyles:w}=U_();return Ln("div",n,{state:{open:g,side:b,align:p,uncentered:v,instant:h},ref:[a,m],props:[{style:w,"aria-hidden":!0},c],stateAttributesMapping:eh})});B_.displayName="TooltipArrow";function C7({...o}){return re.jsxDEV(N_,{"data-slot":"tooltip",...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:19,columnNumber:10},this)}function O7({...o}){return re.jsxDEV(__,{"data-slot":"tooltip-trigger",...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:23,columnNumber:10},this)}function D7({className:o,side:n="top",sideOffset:a=4,align:i="center",alignOffset:l=0,children:c,...f}){return re.jsxDEV(L_,{children:re.jsxDEV(H_,{align:i,alignOffset:l,side:n,sideOffset:a,className:"isolate z-50",children:re.jsxDEV(I_,{"data-slot":"tooltip-content",className:Pt("data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 rounded-md px-3 py-1.5 text-xs data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin)",o),...f,children:[c,re.jsxDEV(B_,{className:"size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 bg-foreground fill-foreground z-50 data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:57,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:48,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:41,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/tooltip.tsx",lineNumber:40,columnNumber:5},this)}const A7="sidebar_state",N7=3600*24*7,M7="16rem",_7="18rem",k7="3rem",L7="b",V_=x.createContext(null);function Au(){const o=x.useContext(V_);if(!o)throw new Error("useSidebar must be used within a SidebarProvider.");return o}function U7({defaultOpen:o=!0,open:n,onOpenChange:a,className:i,style:l,children:c,...f}){const h=o6(),[g,m]=x.useState(!1),[b,p]=x.useState(o),v=n??b,w=x.useCallback(A=>{const k=typeof A=="function"?A(v):A;a?a(k):p(k),document.cookie=`${A7}=${k}; path=/; max-age=${N7}`},[a,v]),E=x.useCallback(()=>h?m(A=>!A):w(A=>!A),[h,w,m]);x.useEffect(()=>{const A=k=>{k.key===L7&&(k.metaKey||k.ctrlKey)&&(k.preventDefault(),E())};return window.addEventListener("keydown",A),()=>window.removeEventListener("keydown",A)},[E]);const T=v?"expanded":"collapsed",C=x.useMemo(()=>({state:T,open:v,setOpen:w,isMobile:h,openMobile:g,setOpenMobile:m,toggleSidebar:E}),[T,v,w,h,g,m,E]);return re.jsxDEV(V_.Provider,{value:C,children:re.jsxDEV("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":M7,"--sidebar-width-icon":k7,...l},className:Pt("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",i),...f,children:c},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:129,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:128,columnNumber:5},this)}function z7({side:o="left",variant:n="sidebar",collapsible:a="offcanvas",className:i,children:l,dir:c,...f}){const{isMobile:h,state:g,openMobile:m,setOpenMobile:b}=Au();return a==="none"?re.jsxDEV("div",{"data-slot":"sidebar",className:Pt("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",i),...f,children:l},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:167,columnNumber:7},this):h?re.jsxDEV(i7,{open:m,onOpenChange:b,...f,children:re.jsxDEV(c7,{dir:c,"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true","data-testid":"mobile-sidebar-sheet",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":_7},side:o,children:[re.jsxDEV(u7,{className:"sr-only",children:[re.jsxDEV(d7,{children:"Sidebar"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:198,columnNumber:13},this),re.jsxDEV(f7,{children:"Displays the mobile sidebar."},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:199,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:197,columnNumber:11},this),re.jsxDEV("div",{className:"flex h-full w-full flex-col","data-testid":"sidebar",style:{paddingBottom:"var(--tmex-safe-area-bottom)"},children:l},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:201,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:183,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:182,columnNumber:7},this):re.jsxDEV("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":g,"data-collapsible":g==="collapsed"?a:"","data-variant":n,"data-side":o,"data-slot":"sidebar",children:[re.jsxDEV("div",{"data-slot":"sidebar-gap",className:Pt("transition-[width] duration-200 ease-linear relative w-(--sidebar-width) bg-transparent","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180",n==="floating"||n==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:223,columnNumber:7},this),re.jsxDEV("div",{"data-slot":"sidebar-container","data-side":o,className:Pt("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex",n==="floating"||n==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",i),...f,children:re.jsxDEV("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner","data-testid":"sidebar",className:"bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 flex size-full flex-col",style:{paddingBottom:"var(--tmex-safe-area-bottom)"},children:l},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:247,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:234,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:214,columnNumber:5},this)}function P7({className:o,onClick:n,...a}){const{toggleSidebar:i}=Au();return re.jsxDEV(ow,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon-sm",className:Pt(o),onClick:l=>{n==null||n(l),i()},...a,children:[re.jsxDEV(F5,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:282,columnNumber:7},this),re.jsxDEV("span",{className:"sr-only",children:"Toggle Sidebar"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:283,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:270,columnNumber:5},this)}function j7({className:o,...n}){return re.jsxDEV("main",{"data-slot":"sidebar-inset",className:Pt("bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 relative flex w-full flex-1 flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:315,columnNumber:5},this)}function H7({className:o,...n}){return re.jsxDEV("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:Pt("gap-2 p-2 flex flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:342,columnNumber:5},this)}function I7({className:o,...n}){return re.jsxDEV("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:Pt("gap-2 p-2 flex flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:353,columnNumber:5},this)}function B7({className:o,...n}){return re.jsxDEV("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:Pt("no-scrollbar gap-0 flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:378,columnNumber:5},this)}function F_({className:o,...n}){return re.jsxDEV("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:Pt("p-2 relative flex w-full min-w-0 flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:392,columnNumber:5},this)}function V7({className:o,render:n,...a}){return Jf({defaultTagName:"div",props:Ql({className:Pt("text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 flex shrink-0 items-center outline-hidden [&>svg]:shrink-0",o)},a),render:n,state:{slot:"sidebar-group-label",sidebar:"group-label"}})}function F7({className:o,...n}){return re.jsxDEV("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:Pt("gap-0 flex w-full min-w-0 flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:468,columnNumber:5},this)}function Y7({className:o,...n}){return re.jsxDEV("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:Pt("group/menu-item relative",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:479,columnNumber:5},this)}const $7=tw("ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button flex w-full items-center overflow-hidden outline-hidden group/menu-button disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function q7({render:o,isActive:n=!1,variant:a="default",size:i="default",tooltip:l,className:c,...f}){const{isMobile:h,state:g}=Au(),m=Jf({defaultTagName:"button",props:Ql({className:Pt($7({variant:a,size:i}),c)},f),render:l?O7:o,state:{slot:"sidebar-menu-button",sidebar:"menu-button",size:i,active:n}});return l?(typeof l=="string"&&(l={children:l}),re.jsxDEV(C7,{children:[m,re.jsxDEV(D7,{side:"right",align:"center",hidden:g!=="collapsed"||h,...l},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:553,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:551,columnNumber:5},this)):m}function G7({className:o,render:n,showOnHover:a=!1,...i}){return Jf({defaultTagName:"button",props:Ql({className:Pt("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0",a&&"peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 aria-expanded:opacity-100 md:opacity-0",o)},i),render:n,state:{slot:"sidebar-menu-action",sidebar:"menu-action"}})}function X7({className:o,...n}){return re.jsxDEV("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:Pt("border-sidebar-border mx-3.5 translate-x-px gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden flex min-w-0 flex-col",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:650,columnNumber:5},this)}function Q7({className:o,...n}){return re.jsxDEV("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:Pt("group/menu-sub-item relative",o),...n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/sidebar.tsx",lineNumber:664,columnNumber:5},this)}function W7({render:o,size:n="md",isActive:a=!1,className:i,...l}){return Jf({defaultTagName:"a",props:Ql({className:Pt("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-4 flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0",i)},l),render:o,state:{slot:"sidebar-menu-sub-button",sidebar:"menu-sub-button",size:n,active:a}})}function ag({children:o,onClick:n,...a}){const{isMobile:i,setOpenMobile:l}=Au(),c=f=>{i&&l(!1),n==null||n(f)};return re.jsxDEV(YS,{...a,onClick:c,children:o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-link.tsx",lineNumber:19,columnNumber:5},this)}function K7({items:o}){const{t:n}=dg();return re.jsxDEV(F_,{children:re.jsxDEV(F7,{children:o.map(a=>{var i,l;return re.jsxDEV(e6,{defaultOpen:a.isActive,render:re.jsxDEV(Y7,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:35,columnNumber:77},this),children:[re.jsxDEV(ag,{to:a.url,children:re.jsxDEV(q7,{tooltip:n(a.title),children:[re.jsxDEV(a.icon,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:38,columnNumber:17},this),re.jsxDEV("span",{children:n(a.title)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:39,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:37,columnNumber:15},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:36,columnNumber:13},this),(i=a.items)!=null&&i.length?re.jsxDEV(re.Fragment,{children:[re.jsxDEV(t6,{render:re.jsxDEV(G7,{className:"data-[state=open]:rotate-90"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:44,columnNumber:45},this),children:[re.jsxDEV(z5,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:45,columnNumber:19},this),re.jsxDEV("span",{className:"sr-only",children:"Toggle"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:46,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:44,columnNumber:17},this),re.jsxDEV(n6,{children:re.jsxDEV(X7,{children:(l=a.items)==null?void 0:l.map(c=>re.jsxDEV(Q7,{children:re.jsxDEV(ag,{to:c.url,children:re.jsxDEV(W7,{children:re.jsxDEV("span",{children:n(c.title)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:54,columnNumber:29},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:53,columnNumber:27},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:52,columnNumber:25},this)},c.title,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:51,columnNumber:23},this))},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:49,columnNumber:19},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:48,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:43,columnNumber:15},this):null]},a.title,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:35,columnNumber:11},this)})},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:33,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/nav-main.tsx",lineNumber:32,columnNumber:5},this)}const J7=tw("h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive overflow-hidden group/badge",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});function Z7({className:o,variant:n="default",render:a,...i}){return Jf({defaultTagName:"span",props:Ql({className:Pt(J7({className:o,variant:n}))},i),render:a,state:{slot:"badge",variant:n}})}const Rw=x.createContext(void 0);Rw.displayName="ScrollAreaRootContext";function wg(){const o=x.useContext(Rw);if(o===void 0)throw new Error("Base UI: ScrollAreaRootContext is missing. ScrollArea parts must be placed within <ScrollArea.Root>.");return o}let ig=(function(o){return o.scrollAreaCornerHeight="--scroll-area-corner-height",o.scrollAreaCornerWidth="--scroll-area-corner-width",o})({});const Mm=500,bA=16;function zr(o,n,a){if(!o)return 0;const i=getComputedStyle(o),l=a==="x"?"Inline":"Block";return a==="x"&&n==="margin"?parseFloat(i[`${n}InlineStart`])*2:parseFloat(i[`${n}${l}Start`])+parseFloat(i[`${n}${l}End`])}let eY=(function(o){return o.orientation="data-orientation",o.hovering="data-hovering",o.scrolling="data-scrolling",o.hasOverflowX="data-has-overflow-x",o.hasOverflowY="data-has-overflow-y",o.overflowXStart="data-overflow-x-start",o.overflowXEnd="data-overflow-x-end",o.overflowYStart="data-overflow-y-start",o.overflowYEnd="data-overflow-y-end",o})({});const _m="base-ui-disable-scrollbar",Tw={className:_m,getElement(o){return nn.jsx("style",{nonce:o,href:_m,precedence:"base-ui:low",children:`.${_m}{scrollbar-width:none}.${_m}::-webkit-scrollbar{display:none}`})}};Tw.getElement.displayName="styleDisableScrollbar.getElement";let Zc=(function(o){return o.scrolling="data-scrolling",o.hasOverflowX="data-has-overflow-x",o.hasOverflowY="data-has-overflow-y",o.overflowXStart="data-overflow-x-start",o.overflowXEnd="data-overflow-x-end",o.overflowYStart="data-overflow-y-start",o.overflowYEnd="data-overflow-y-end",o})({});const Cw={hasOverflowX:o=>o?{[Zc.hasOverflowX]:""}:null,hasOverflowY:o=>o?{[Zc.hasOverflowY]:""}:null,overflowXStart:o=>o?{[Zc.overflowXStart]:""}:null,overflowXEnd:o=>o?{[Zc.overflowXEnd]:""}:null,overflowYStart:o=>o?{[Zc.overflowYStart]:""}:null,overflowYEnd:o=>o?{[Zc.overflowYEnd]:""}:null,cornerHidden:()=>null},Y_=x.createContext(void 0);Y_.displayName="CSPContext";const tY={disableStyleElements:!1};function nY(){return x.useContext(Y_)??tY}const oY={x:0,y:0},vA={width:0,height:0},rY={xStart:!1,xEnd:!1,yStart:!1,yEnd:!1},aY={x:!1,y:!1,corner:!1},$_=x.forwardRef(function(n,a){const{render:i,className:l,overflowEdgeThreshold:c,...f}=n,h=iY(c),g=Wf(),m=Di(),b=Di(),{nonce:p,disableStyleElements:v}=nY(),[w,E]=x.useState(!1),[T,C]=x.useState(!1),[A,k]=x.useState(!1),[U,M]=x.useState(!1),[Y,$]=x.useState(vA),[_,z]=x.useState(vA),[te,H]=x.useState(rY),[J,N]=x.useState(aY),j=x.useRef(null),ne=x.useRef(null),Z=x.useRef(null),P=x.useRef(null),oe=x.useRef(null),I=x.useRef(null),se=x.useRef(null),pe=x.useRef(!1),L=x.useRef(0),ce=x.useRef(0),ie=x.useRef(0),me=x.useRef(0),Te=x.useRef("vertical"),Ue=x.useRef(oY),ve=it(Ae=>{const Le=Ae.x-Ue.current.x,tt=Ae.y-Ue.current.y;Ue.current=Ae,tt!==0&&(k(!0),m.start(Mm,()=>{k(!1)})),Le!==0&&(C(!0),b.start(Mm,()=>{C(!1)}))}),ze=it(Ae=>{Ae.button===0&&(pe.current=!0,L.current=Ae.clientY,ce.current=Ae.clientX,Te.current=Ae.currentTarget.getAttribute(eY.orientation),ne.current&&(ie.current=ne.current.scrollTop,me.current=ne.current.scrollLeft),oe.current&&Te.current==="vertical"&&oe.current.setPointerCapture(Ae.pointerId),I.current&&Te.current==="horizontal"&&I.current.setPointerCapture(Ae.pointerId))}),Pe=it(Ae=>{if(!pe.current)return;const Le=Ae.clientY-L.current,tt=Ae.clientX-ce.current;if(ne.current){const Ce=ne.current.scrollHeight,ot=ne.current.clientHeight,gt=ne.current.scrollWidth,yt=ne.current.clientWidth;if(oe.current&&Z.current&&Te.current==="vertical"){const ht=zr(Z.current,"padding","y"),$t=zr(oe.current,"margin","y"),on=oe.current.offsetHeight,bn=Z.current.offsetHeight-on-ht-$t,bt=Le/bn;ne.current.scrollTop=ie.current+bt*(Ce-ot),Ae.preventDefault(),k(!0),m.start(Mm,()=>{k(!1)})}if(I.current&&P.current&&Te.current==="horizontal"){const ht=zr(P.current,"padding","x"),$t=zr(I.current,"margin","x"),on=I.current.offsetWidth,bn=P.current.offsetWidth-on-ht-$t,bt=tt/bn;ne.current.scrollLeft=me.current+bt*(gt-yt),Ae.preventDefault(),C(!0),b.start(Mm,()=>{C(!1)})}}}),at=it(Ae=>{pe.current=!1,oe.current&&Te.current==="vertical"&&oe.current.releasePointerCapture(Ae.pointerId),I.current&&Te.current==="horizontal"&&I.current.releasePointerCapture(Ae.pointerId)});function xe(Ae){M(Ae.pointerType==="touch")}function he(Ae){if(xe(Ae),Ae.pointerType!=="touch"){const Le=Yt(j.current,Ae.target);E(Le)}}const we=x.useMemo(()=>({scrolling:T||A,hasOverflowX:!J.x,hasOverflowY:!J.y,overflowXStart:te.xStart,overflowXEnd:te.xEnd,overflowYStart:te.yStart,overflowYEnd:te.yEnd,cornerHidden:J.corner}),[T,A,J.x,J.y,J.corner,te]),De={role:"presentation",onPointerEnter:he,onPointerMove:he,onPointerDown:xe,onPointerLeave(){E(!1)},style:{position:"relative",[ig.scrollAreaCornerHeight]:`${Y.height}px`,[ig.scrollAreaCornerWidth]:`${Y.width}px`}},Ye=Ln("div",n,{state:we,ref:[a,j],props:[De,f],stateAttributesMapping:Cw}),Re=x.useMemo(()=>({handlePointerDown:ze,handlePointerMove:Pe,handlePointerUp:at,handleScroll:ve,cornerSize:Y,setCornerSize:$,thumbSize:_,setThumbSize:z,touchModality:U,cornerRef:se,scrollingX:T,setScrollingX:C,scrollingY:A,setScrollingY:k,hovering:w,setHovering:E,viewportRef:ne,rootRef:j,scrollbarYRef:Z,scrollbarXRef:P,thumbYRef:oe,thumbXRef:I,rootId:g,hiddenState:J,setHiddenState:N,overflowEdges:te,setOverflowEdges:H,viewportState:we,overflowEdgeThreshold:h}),[ze,Pe,at,ve,Y,_,U,T,C,A,k,w,E,g,J,te,we,h]);return nn.jsxs(Rw.Provider,{value:Re,children:[!v&&Tw.getElement(p),Ye]})});$_.displayName="ScrollAreaRoot";function iY(o){if(typeof o=="number"){const n=Math.max(0,o);return{xStart:n,xEnd:n,yStart:n,yEnd:n}}return{xStart:Math.max(0,(o==null?void 0:o.xStart)||0),xEnd:Math.max(0,(o==null?void 0:o.xEnd)||0),yStart:Math.max(0,(o==null?void 0:o.yStart)||0),yEnd:Math.max(0,(o==null?void 0:o.yEnd)||0)}}const q_=x.createContext(void 0);q_.displayName="ScrollAreaViewportContext";function tu(o,n=Number.MIN_SAFE_INTEGER,a=Number.MAX_SAFE_INTEGER){return Math.max(n,Math.min(o,a))}function sY(o,n){if(typeof IntersectionObserver>"u")return()=>{};const a=new IntersectionObserver(i=>{i.forEach(l=>{l.intersectionRatio>0&&(n(),a.disconnect())})});return a.observe(o),()=>{a.disconnect()}}let _s=(function(o){return o.scrollAreaOverflowXStart="--scroll-area-overflow-x-start",o.scrollAreaOverflowXEnd="--scroll-area-overflow-x-end",o.scrollAreaOverflowYStart="--scroll-area-overflow-y-start",o.scrollAreaOverflowYEnd="--scroll-area-overflow-y-end",o})({});const SA=1;function wA(o,n){if(n<=0)return 0;const a=tu(o,0,n),i=a,l=n-a,c=i<=SA,f=l<=SA;return c&&f?i<=l?0:n:c?0:f?n:a}let EA=!1;function lY(){EA||rw||(typeof CSS<"u"&&"registerProperty"in CSS&&[_s.scrollAreaOverflowXStart,_s.scrollAreaOverflowXEnd,_s.scrollAreaOverflowYStart,_s.scrollAreaOverflowYEnd].forEach(o=>{try{CSS.registerProperty({name:o,syntax:"<length>",inherits:!1,initialValue:"0px"})}catch{}}),EA=!0)}const G_=x.forwardRef(function(n,a){const{render:i,className:l,...c}=n,{viewportRef:f,scrollbarYRef:h,scrollbarXRef:g,thumbYRef:m,thumbXRef:b,cornerRef:p,cornerSize:v,setCornerSize:w,setThumbSize:E,rootId:T,setHiddenState:C,hiddenState:A,handleScroll:k,setHovering:U,setOverflowEdges:M,overflowEdges:Y,overflowEdgeThreshold:$,scrollingX:_,scrollingY:z}=wg(),te=xw(),H=x.useRef(!0),J=Di(),N=Di(),j=it(()=>{const se=f.current,pe=h.current,L=g.current,ce=m.current,ie=b.current,me=p.current;if(!se)return;const Te=se.scrollHeight,Ue=se.scrollWidth,ve=se.clientHeight,ze=se.clientWidth,Pe=se.scrollTop,at=se.scrollLeft;if(Te===0||Ue===0)return;const xe=ve>=Te,he=ze>=Ue,we=ze/Ue,De=ve/Te,Ye=Math.max(0,Ue-ze),Re=Math.max(0,Te-ve);let Ae=0,Le=0;if(!he){let ye=0;te==="rtl"?ye=tu(-at,0,Ye):ye=tu(at,0,Ye),Ae=wA(ye,Ye),Le=Ye-Ae}const tt=xe?0:tu(Pe,0,Re),Ce=xe?0:wA(tt,Re),ot=xe?0:Re-Ce,gt=he?0:ze,yt=xe?0:ve;let ht=0,$t=0;!he&&!xe&&(ht=(pe==null?void 0:pe.offsetWidth)||0,$t=(L==null?void 0:L.offsetHeight)||0);const on=v.width===0&&v.height===0,bn=on?ht:0,bt=on?$t:0,jt=zr(L,"padding","x"),Ft=zr(pe,"padding","y"),vn=zr(ie,"margin","x"),ln=zr(ce,"margin","y"),Zn=gt-jt-vn,hn=yt-Ft-ln,co=L?Math.min(L.offsetWidth-bn,Zn):Zn,uo=pe?Math.min(pe.offsetHeight-bt,hn):hn,Un=Math.max(bA,co*we),D=Math.max(bA,uo*De);if(E(ye=>ye.height===D&&ye.width===Un?ye:{width:Un,height:D}),pe&&ce){const ye=pe.offsetHeight-D-Ft-ln,Ne=Te-ve,$e=Ne===0?0:Pe/Ne,Se=Math.min(ye,Math.max(0,$e*ye));ce.style.transform=`translate3d(0,${Se}px,0)`}if(L&&ie){const ye=L.offsetWidth-Un-jt-vn,Ne=Ue-ze,$e=Ne===0?0:at/Ne,Se=te==="rtl"?tu($e*ye,-ye,0):tu($e*ye,0,ye);ie.style.transform=`translate3d(${Se}px,0,0)`}const G=[[_s.scrollAreaOverflowXStart,Ae],[_s.scrollAreaOverflowXEnd,Le],[_s.scrollAreaOverflowYStart,Ce],[_s.scrollAreaOverflowYEnd,ot]];for(const[ye,Ne]of G)se.style.setProperty(ye,`${Ne}px`);me&&(he||xe?w({width:0,height:0}):!he&&!xe&&w({width:ht,height:$t})),C(ye=>{const Ne=xe||he;return ye.y===xe&&ye.x===he&&ye.corner===Ne?ye:{y:xe,x:he,corner:Ne}});const ge={xStart:!he&&Ae>$.xStart,xEnd:!he&&Le>$.xEnd,yStart:!xe&&Ce>$.yStart,yEnd:!xe&&ot>$.yEnd};M(ye=>ye.xStart===ge.xStart&&ye.xEnd===ge.xEnd&&ye.yStart===ge.yStart&&ye.yEnd===ge.yEnd?ye:ge)});pt(()=>{if(!f.current)return;lY();let se=!1;return sY(f.current,()=>{if(!se){se=!0;return}j()})},[j,f]),pt(()=>{queueMicrotask(j)},[j,A,te]),pt(()=>{var se;(se=f.current)!=null&&se.matches(":hover")&&U(!0)},[f,U]),x.useEffect(()=>{const se=f.current;if(typeof ResizeObserver>"u"||!se)return;let pe=!1;const L=new ResizeObserver(()=>{if(!pe){pe=!0;return}j()});return L.observe(se),N.start(0,()=>{const ce=se.getAnimations({subtree:!0});ce.length!==0&&Promise.allSettled(ce.map(ie=>ie.finished)).then(j).catch(()=>{})}),()=>{L.disconnect(),N.clear()}},[j,f,N]);function ne(){H.current=!1}const Z={role:"presentation",...T&&{"data-id":`${T}-viewport`},...(!A.x||!A.y)&&{tabIndex:0},className:Tw.className,style:{overflow:"scroll"},onScroll(){f.current&&(j(),H.current||k({x:f.current.scrollLeft,y:f.current.scrollTop}),J.start(100,()=>{H.current=!0}))},onWheel:ne,onTouchMove:ne,onPointerMove:ne,onPointerEnter:ne,onKeyDown:ne},P=x.useMemo(()=>({scrolling:_||z,hasOverflowX:!A.x,hasOverflowY:!A.y,overflowXStart:Y.xStart,overflowXEnd:Y.xEnd,overflowYStart:Y.yStart,overflowYEnd:Y.yEnd,cornerHidden:A.corner}),[_,z,A.x,A.y,A.corner,Y]),oe=Ln("div",n,{ref:[a,f],state:P,props:[Z,c],stateAttributesMapping:Cw}),I=x.useMemo(()=>({computeThumbPosition:j}),[j]);return nn.jsx(q_.Provider,{value:I,children:oe})});G_.displayName="ScrollAreaViewport";const Ow=x.createContext(void 0);Ow.displayName="ScrollAreaScrollbarContext";function cY(){const o=x.useContext(Ow);if(o===void 0)throw new Error("Base UI: ScrollAreaScrollbarContext is missing. ScrollAreaScrollbar parts must be placed within <ScrollArea.Scrollbar>.");return o}let sg=(function(o){return o.scrollAreaThumbHeight="--scroll-area-thumb-height",o.scrollAreaThumbWidth="--scroll-area-thumb-width",o})({});const X_=x.forwardRef(function(n,a){const{render:i,className:l,orientation:c="vertical",keepMounted:f=!1,...h}=n,{hovering:g,scrollingX:m,scrollingY:b,hiddenState:p,overflowEdges:v,scrollbarYRef:w,scrollbarXRef:E,viewportRef:T,thumbYRef:C,thumbXRef:A,handlePointerDown:k,handlePointerUp:U,rootId:M,thumbSize:Y}=wg(),$={hovering:g,scrolling:{horizontal:m,vertical:b}[c],orientation:c,hasOverflowX:!p.x,hasOverflowY:!p.y,overflowXStart:v.xStart,overflowXEnd:v.xEnd,overflowYStart:v.yStart,overflowYEnd:v.yEnd,cornerHidden:p.corner},_=xw();x.useEffect(()=>{const j=T.current,ne=c==="vertical"?w.current:E.current;if(!ne)return;function Z(P){if(!(!j||!ne||P.ctrlKey)){if(P.preventDefault(),c==="vertical"){if(j.scrollTop===0&&P.deltaY<0)return}else if(j.scrollLeft===0&&P.deltaX<0)return;if(c==="vertical"){if(j.scrollTop===j.scrollHeight-j.clientHeight&&P.deltaY>0)return}else if(j.scrollLeft===j.scrollWidth-j.clientWidth&&P.deltaX>0)return;c==="vertical"?j.scrollTop+=P.deltaY:j.scrollLeft+=P.deltaX}}return ne.addEventListener("wheel",Z,{passive:!1}),()=>{ne.removeEventListener("wheel",Z)}},[c,E,w,T]);const z={...M&&{"data-id":`${M}-scrollbar`},onPointerDown(j){if(j.button===0&&j.currentTarget===j.target&&T.current){if(C.current&&w.current&&c==="vertical"){const ne=zr(C.current,"margin","y"),Z=zr(w.current,"padding","y"),P=C.current.offsetHeight,oe=w.current.getBoundingClientRect(),I=j.clientY-oe.top-P/2-Z+ne/2,se=T.current.scrollHeight,pe=T.current.clientHeight,L=w.current.offsetHeight-P-Z-ne,ie=I/L*(se-pe);T.current.scrollTop=ie}if(A.current&&E.current&&c==="horizontal"){const ne=zr(A.current,"margin","x"),Z=zr(E.current,"padding","x"),P=A.current.offsetWidth,oe=E.current.getBoundingClientRect(),I=j.clientX-oe.left-P/2-Z+ne/2,se=T.current.scrollWidth,pe=T.current.clientWidth,L=E.current.offsetWidth-P-Z-ne,ce=I/L;let ie;_==="rtl"?(ie=(1-ce)*(se-pe),T.current.scrollLeft<=0&&(ie=-ie)):ie=ce*(se-pe),T.current.scrollLeft=ie}k(j)}},onPointerUp:U,style:{position:"absolute",touchAction:"none",WebkitUserSelect:"none",userSelect:"none",...c==="vertical"&&{top:0,bottom:`var(${ig.scrollAreaCornerHeight})`,insetInlineEnd:0,[sg.scrollAreaThumbHeight]:`${Y.height}px`},...c==="horizontal"&&{insetInlineStart:0,insetInlineEnd:`var(${ig.scrollAreaCornerWidth})`,bottom:0,[sg.scrollAreaThumbWidth]:`${Y.width}px`}}},te=Ln("div",n,{ref:[a,c==="vertical"?w:E],state:$,props:[z,h],stateAttributesMapping:Cw}),H=x.useMemo(()=>({orientation:c}),[c]),J=c==="vertical"?p.y:p.x;return f||!J?nn.jsx(Ow.Provider,{value:H,children:te}):null});X_.displayName="ScrollAreaScrollbar";const Q_=x.forwardRef(function(n,a){const{render:i,className:l,...c}=n,{thumbYRef:f,thumbXRef:h,handlePointerDown:g,handlePointerMove:m,handlePointerUp:b,setScrollingX:p,setScrollingY:v}=wg(),{orientation:w}=cY();return Ln("div",n,{ref:[a,w==="vertical"?f:h],state:{orientation:w},props:[{onPointerDown:g,onPointerMove:m,onPointerUp(C){w==="vertical"&&v(!1),w==="horizontal"&&p(!1),b(C)},style:{...w==="vertical"&&{height:`var(${sg.scrollAreaThumbHeight})`},...w==="horizontal"&&{width:`var(${sg.scrollAreaThumbWidth})`}}},c]})});Q_.displayName="ScrollAreaThumb";const W_=x.forwardRef(function(n,a){const{render:i,className:l,...c}=n,{cornerRef:f,cornerSize:h,hiddenState:g}=wg(),m=Ln("div",n,{ref:[a,f],props:[{style:{position:"absolute",bottom:0,insetInlineEnd:0,width:h.width,height:h.height}},c]});return g.corner?null:m});W_.displayName="ScrollAreaCorner";function uY({className:o,children:n,...a}){return re.jsxDEV($_,{"data-slot":"scroll-area",className:Pt("relative",o),...a,children:[re.jsxDEV(G_,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:n},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:16,columnNumber:7},this),re.jsxDEV(dY,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:22,columnNumber:7},this),re.jsxDEV(W_,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:23,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:11,columnNumber:5},this)}function dY({className:o,orientation:n="vertical",...a}){return re.jsxDEV(X_,{"data-slot":"scroll-area-scrollbar","data-orientation":n,orientation:n,className:Pt("data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent flex touch-none p-px transition-colors select-none","[@media(any-pointer:coarse)]:hidden",o),...a,children:re.jsxDEV(Q_,{"data-slot":"scroll-area-thumb",className:"rounded-full bg-border relative flex-1"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:45,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/scroll-area.tsx",lineNumber:34,columnNumber:5},this)}function QY(o){return o}function fY(o){return encodeURIComponent(o)}function hY(){const{t:o}=dg(),n=Ni(),a=bN(),{isMobile:i,setOpenMobile:l}=Au(),{toggleDevice:c}=D5(),f=Af("/devices/:deviceId/windows/:windowId/panes/:paneId",n.pathname),h=f==null?void 0:f.params.deviceId,g=f==null?void 0:f.params.windowId,m=f==null?void 0:f.params.paneId,b=Ei(H=>H.snapshots),p=Ei(H=>H.connectedDevices),v=Ei(H=>H.closeWindow),w=Ei(H=>H.closePane),E=Lf(H=>{var J;return((J=H.settings)==null?void 0:J.language)??"en_US"}),{data:T}=R3({queryKey:["devices"],queryFn:async()=>{const H=await fetch("/api/devices");if(!H.ok)throw new Error("Failed to fetch devices");return H.json()},throwOnError:!1}),C=x.useCallback((H,J)=>{a(H,{replace:(J==null?void 0:J.replace)??!0}),i&&l(!1)},[a,i,l]),A=x.useCallback((H,J,N)=>{U.current=null,window.dispatchEvent(new CustomEvent("tmex:user-initiated-selection",{detail:{deviceId:H,windowId:J,paneId:N}})),C(`/devices/${H}/windows/${J}/panes/${fY(N)}`)},[C]),k=Ei(H=>H.selectWindow),U=x.useRef(null);x.useEffect(()=>{var oe,I;const H=U.current;if(!H)return;if(Date.now()-H.at>5e3){U.current=null;return}const{deviceId:J,windowId:N}=H,j=b[J],ne=(oe=j==null?void 0:j.session)==null?void 0:oe.windows;if(!ne)return;const Z=ne.find(se=>se.id===N);if(!((I=Z==null?void 0:Z.panes)!=null&&I.length))return;U.current=null;const P=Z.panes.find(se=>se.active)??Z.panes[0];A(J,N,P.id)},[b,A]);const M=x.useCallback((H,J,N)=>{k(H,J);const j=N.find(ne=>ne.active)??N[0];j?(A(H,J,j.id),U.current=null):U.current={deviceId:H,windowId:J,at:Date.now()}},[A,k]),Y=x.useCallback((H,J)=>{J?H===h&&C("/devices"):C(`/devices/${H}`),c(H,J)},[c,h,C]),$=x.useCallback((H,J)=>{H===h&&J===g&&C("/devices"),v(H,J)},[v,h,g,C]),_=x.useCallback(H=>{Ei.getState().createWindow(H)},[]),z=(T==null?void 0:T.devices)??[],te=x.useMemo(()=>[...z].sort((H,J)=>H.name.localeCompare(J.name,gH(E),{numeric:!0,sensitivity:"base"})),[z,E]);return re.jsxDEV(F_,{className:"flex flex-col flex-1 min-h-0",children:[re.jsxDEV(V7,{children:o("device.devices")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:170,columnNumber:7},this),re.jsxDEV(uY,{className:"flex-1 min-h-0",children:re.jsxDEV("div",{className:"space-y-1.5 py-2",children:[te.map(H=>{var J,N;return re.jsxDEV(pY,{device:H,windows:((N=(J=b[H.id])==null?void 0:J.session)==null?void 0:N.windows)??null,isConnected:p.has(H.id),selectedWindowId:g,selectedPaneId:m,onConnectToggle:()=>Y(H.id,p.has(H.id)),onCreateWindow:_,onCloseWindow:$,onClosePane:w,onPaneClick:A,onWindowClick:M},H.id,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:174,columnNumber:13},this)}),te.length===0&&re.jsxDEV("div",{className:"text-center text-sm text-muted-foreground py-4",children:o("sidebar.noDevices")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:192,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:172,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:171,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:169,columnNumber:5},this)}function pY({device:o,windows:n,isConnected:a,selectedWindowId:i,selectedPaneId:l,onConnectToggle:c,onCreateWindow:f,onCloseWindow:h,onClosePane:g,onPaneClick:m,onWindowClick:b}){const{t:p}=dg(),v=o.type==="local"?IN:j5;return re.jsxDEV("div",{"data-testid":`device-item-${o.id}`,className:Pt("rounded-lg border overflow-hidden text-select-none",a?"bg-card/50":"bg-muted/20"),onClick:a?void 0:c,children:[re.jsxDEV("div",{className:"px-3 py-1 bg-muted/30 border-b",children:re.jsxDEV("div",{className:"flex items-center gap-2",children:[re.jsxDEV(v,{className:"ml-1 h-4 w-4 text-muted-foreground shrink-0"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:244,columnNumber:11},this),re.jsxDEV("span",{className:"flex-1 truncate text-xs font-medium text-select-none",children:o.name},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:245,columnNumber:11},this),re.jsxDEV("div",{className:Pt("h-2 w-2 rounded-full shrink-0",a?"bg-emerald-500":"bg-gray-400")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:250,columnNumber:11},this),re.jsxDEV(ow,{variant:"ghost",size:"icon-xs",onClick:w=>{w.stopPropagation(),c()},"data-testid":a?`device-disconnect-${o.id}`:`device-connect-${o.id}`,title:p(a?"device.disconnect":"device.connect"),children:a?re.jsxDEV(G5,{className:"h-3.5 w-3.5 text-orange-500"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:271,columnNumber:15},this):re.jsxDEV(Q5,{className:"h-3.5 w-3.5 text-emerald-500"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:273,columnNumber:15},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:258,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:243,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:242,columnNumber:7},this),a&&re.jsxDEV("div",{className:"p-1 space-y-0.5",children:[!n&&re.jsxDEV("div",{className:"text-xs text-muted-foreground px-2 py-1.5 text-center",children:p("device.connecting")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:283,columnNumber:13},this),(n==null?void 0:n.length)===0&&re.jsxDEV("div",{className:"text-xs text-muted-foreground px-2 py-1.5 text-center",children:p("window.noWindows")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:289,columnNumber:13},this),n==null?void 0:n.map(w=>re.jsxDEV(mY,{deviceId:o.id,window:w,isSelected:w.id===i,selectedPaneId:l,onPaneClick:m,onWindowClick:b,onCloseWindow:h,onClosePane:g},w.id,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:295,columnNumber:13},this)),re.jsxDEV("button",{type:"button","data-testid":`window-create-${o.id}`,onPointerDown:w=>w.stopPropagation(),onMouseDown:w=>w.stopPropagation(),onClick:()=>f(o.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:[re.jsxDEV($5,{className:"h-3.5 w-3.5 shrink-0"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:317,columnNumber:13},this),re.jsxDEV("span",{className:"text-xs",children:p("window.new")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:318,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:309,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:281,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:233,columnNumber:5},this)}function mY({deviceId:o,window:n,isSelected:a,selectedPaneId:i,onPaneClick:l,onWindowClick:c,onCloseWindow:f,onClosePane:h}){const g=n.panes.length>1,m=n.panes.find(p=>p.id===i),b=a&&!!m;return re.jsxDEV("div",{className:"space-y-0.5",children:[re.jsxDEV("div",{className:"group relative",children:[re.jsxDEV("button",{type:"button",onClick:()=>c(o,n.id,n.panes),"data-testid":`window-item-${n.id}`,className:Pt("w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-left transition-colors pr-7",b?"bg-primary/15 text-primary border border-primary/30":"hover:bg-accent/50 text-foreground border border-transparent"),children:[re.jsxDEV(Z7,{variant:b?"default":"outline",className:"h-5 text-[10px] px-1.5 shrink-0",children:n.index},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:368,columnNumber:11},this),re.jsxDEV("span",{className:"flex-1 truncate text-xs font-medium",children:n.name},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:375,columnNumber:11},this),n.active&&re.jsxDEV("span",{className:Pt("h-1.5 w-1.5 rounded-full shrink-0",b?"bg-foreground/80":"bg-foreground/50")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:378,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:357,columnNumber:9},this),re.jsxDEV("button",{type:"button",onClick:p=>{p.stopPropagation(),f(o,n.id)},className:Pt("absolute right-1.5 top-1/2 -translate-y-1/2 h-5 w-5 flex items-center justify-center rounded text-muted-foreground hover:bg-background hover:text-foreground transition-opacity",b?"opacity-100":"opacity-0 group-hover:opacity-100"),title:"Close window",children:re.jsxDEV("span",{className:"text-xs leading-none",children:"×"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:400,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:388,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:356,columnNumber:7},this),g&&re.jsxDEV("div",{className:"ml-4 pl-2 border-l border-border/50 space-y-0.5",children:n.panes.map(p=>{const v=p.id===i;return re.jsxDEV("div",{className:"group relative",children:[re.jsxDEV("button",{type:"button",onClick:()=>l(o,n.id,p.id),"data-testid":`pane-item-${p.id}`,className:Pt("w-full flex items-center gap-2 px-2 py-1 rounded-md text-left transition-colors pr-7",v?"bg-primary/10 text-primary border border-primary/20":"hover:bg-accent/30 text-muted-foreground border border-transparent"),children:[re.jsxDEV("span",{className:"text-[10px] font-mono opacity-60 w-4",children:p.index},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:423,columnNumber:19},this),re.jsxDEV("span",{className:"flex-1 truncate text-xs",children:p.title||`Pane ${p.index}`},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:425,columnNumber:19},this),p.active&&re.jsxDEV("span",{className:Pt("h-1 w-1 rounded-full shrink-0",v?"bg-foreground/80":"bg-foreground/50")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:430,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:412,columnNumber:17},this),re.jsxDEV("button",{type:"button",onClick:w=>{w.stopPropagation(),h(o,n.id,p.id,n.panes.length)},className:Pt("absolute right-1.5 top-1/2 -translate-y-1/2 h-5 w-5 flex items-center justify-center rounded text-muted-foreground hover:bg-background hover:text-foreground transition-opacity",v?"opacity-100":"opacity-0 group-hover:opacity-100"),title:"Close pane",children:re.jsxDEV("span",{className:"text-xs leading-none",children:"×"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:452,columnNumber:19},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:440,columnNumber:17},this)]},p.id,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:411,columnNumber:15},this)})},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:406,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-device-list.tsx",lineNumber:354,columnNumber:5},this)}function gY(o,n){let a;try{a=o()}catch{return}return{getItem:l=>{var c;const f=g=>g===null?null:JSON.parse(g,void 0),h=(c=a.getItem(l))!=null?c:null;return h instanceof Promise?h.then(f):f(h)},setItem:(l,c)=>a.setItem(l,JSON.stringify(c,void 0)),removeItem:l=>a.removeItem(l)}}const CS=o=>n=>{try{const a=o(n);return a instanceof Promise?a:{then(i){return CS(i)(a)},catch(i){return this}}}catch(a){return{then(i){return this},catch(i){return CS(i)(a)}}}},yY=(o,n)=>(a,i,l)=>{let c={storage:gY(()=>window.localStorage),partialize:C=>C,version:0,merge:(C,A)=>({...A,...C}),...n},f=!1,h=0;const g=new Set,m=new Set;let b=c.storage;if(!b)return o((...C)=>{console.warn(`[zustand persist middleware] Unable to update item '${c.name}', the given storage is currently unavailable.`),a(...C)},i,l);const p=()=>{const C=c.partialize({...i()});return b.setItem(c.name,{state:C,version:c.version})},v=l.setState;l.setState=(C,A)=>(v(C,A),p());const w=o((...C)=>(a(...C),p()),i,l);l.getInitialState=()=>w;let E;const T=()=>{var C,A;if(!b)return;const k=++h;f=!1,g.forEach(M=>{var Y;return M((Y=i())!=null?Y:w)});const U=((A=c.onRehydrateStorage)==null?void 0:A.call(c,(C=i())!=null?C:w))||void 0;return CS(b.getItem.bind(b))(c.name).then(M=>{if(M)if(typeof M.version=="number"&&M.version!==c.version){if(c.migrate){const Y=c.migrate(M.state,M.version);return Y instanceof Promise?Y.then($=>[!0,$]):[!0,Y]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,M.state];return[!1,void 0]}).then(M=>{var Y;if(k!==h)return;const[$,_]=M;if(E=c.merge(_,(Y=i())!=null?Y:w),a(E,!0),$)return p()}).then(()=>{k===h&&(U==null||U(E,void 0),E=i(),f=!0,m.forEach(M=>M(E)))}).catch(M=>{k===h&&(U==null||U(void 0,M))})};return l.persist={setOptions:C=>{c={...c,...C},C.storage&&(b=C.storage)},clearStorage:()=>{b==null||b.removeItem(c.name)},getOptions:()=>c,rehydrate:()=>T(),hasHydrated:()=>f,onHydrate:C=>(g.add(C),()=>{g.delete(C)}),onFinishHydration:C=>(m.add(C),()=>{m.delete(C)})},c.skipHydration||T(),E||w},bY=yY,xA=GS()(bY(o=>({sidebarCollapsed:!1,inputMode:"direct",editorSendWithEnter:!0,theme:"dark",editorHistory:[],editorDrafts:{},setSidebarCollapsed:n=>o({sidebarCollapsed:n}),setInputMode:n=>o({inputMode:n}),setEditorSendWithEnter:n=>o({editorSendWithEnter:n}),setTheme:n=>o({theme:n}),addEditorHistory:n=>o(a=>({editorHistory:[n,...a.editorHistory.slice(0,49)]})),setEditorDraft:(n,a)=>o(i=>({editorDrafts:{...i.editorDrafts,[n]:a}})),removeEditorDraft:n=>o(a=>{if(!(n in a.editorDrafts))return a;const i={...a.editorDrafts};return delete i[n],{editorDrafts:i}})}),{name:"tmex-ui",partialize:o=>({sidebarCollapsed:o.sidebarCollapsed,inputMode:o.inputMode,editorSendWithEnter:o.editorSendWithEnter,theme:o.theme,editorHistory:o.editorHistory,editorDrafts:o.editorDrafts})}));function vY(){const{t:o}=dg(),{isMobile:n,setOpenMobile:a}=Au(),i=Lf(b=>{var p;return(p=b.settings)==null?void 0:p.siteName}),l=Lf(b=>b.fetchSettings);x.useEffect(()=>{l()},[l]);const c=i??"tmex",f=xA(b=>b.theme),h=xA(b=>b.setTheme),g=f==="dark",m=()=>{const b=g?"light":"dark";h(b),document.documentElement.classList.toggle("dark",b==="dark")};return re.jsxDEV("div",{className:"flex items-center gap-2 px-2",children:[re.jsxDEV(ag,{to:"/",className:"flex flex-1 items-center gap-3 overflow-hidden",children:[re.jsxDEV("div",{className:"h-8 w-8 shrink-0 overflow-hidden rounded-lg border-2 border-black",children:re.jsxDEV("img",{src:"/logo.png",alt:c,className:"h-full w-full object-cover"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:37,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:36,columnNumber:9},this),re.jsxDEV("span",{className:"truncate text-sm font-semibold tracking-tight",children:c},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:43,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:35,columnNumber:7},this),re.jsxDEV("button",{type:"button",onClick:m,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":o(g?"settings.themeLight":"settings.themeDark"),title:o(g?"settings.themeLight":"settings.themeDark"),children:g?re.jsxDEV(Z5,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:54,columnNumber:19},this):re.jsxDEV(B5,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:54,columnNumber:49},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:47,columnNumber:7},this),re.jsxDEV(ag,{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":o("sidebar.settings"),title:o("sidebar.settings"),children:re.jsxDEV(K5,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:62,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:56,columnNumber:7},this),n&&re.jsxDEV("button",{type:"button","data-testid":"mobile-sidebar-close",onClick:()=>a(!1),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":o("nav.closeSidebar"),title:o("nav.closeSidebar"),children:re.jsxDEV(BN,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:73,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:65,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/sidebar-title.tsx",lineNumber:34,columnNumber:5},this)}const SY=[{title:"nav.manageDevices",url:"/devices",icon:IN}];function wY({...o}){return re.jsxDEV(z7,{variant:"inset",...o,children:[re.jsxDEV("div",{className:"h-[var(--tmex-safe-area-top)]"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:25,columnNumber:7},this),re.jsxDEV(H7,{className:"py-3",children:re.jsxDEV(vY,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:27,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:26,columnNumber:7},this),re.jsxDEV(B7,{className:"flex flex-col",children:re.jsxDEV(hY,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:30,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:29,columnNumber:7},this),re.jsxDEV(I7,{children:[re.jsxDEV(K7,{items:SY},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:33,columnNumber:9},this),re.jsxDEV("div",{className:"h-[var(--tmex-safe-area-bottom)]"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:34,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:32,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/page-layouts/components/app-sidebar.tsx",lineNumber:24,columnNumber:5},this)}function EY(){var o;try{const n=localStorage.getItem("tmex-ui");if(!n){document.documentElement.classList.add("dark");return}const a=JSON.parse(n),i=(o=a==null?void 0:a.state)==null?void 0:o.theme,l=i==="dark"||i===void 0;document.documentElement.classList.toggle("dark",l)}catch{document.documentElement.classList.add("dark")}}EY();const xY=new l3({defaultOptions:{queries:{staleTime:5e3,retry:1}}});function RY(){return re.jsxDEV(A5,{children:re.jsxDEV(U7,{children:[re.jsxDEV(wY,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:50,columnNumber:9},this),re.jsxDEV(j7,{className:"h-dvh overflow-hidden",children:[re.jsxDEV("div",{className:"h-[var(--tmex-safe-area-top)]"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:52,columnNumber:11},this),re.jsxDEV(Sj,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:53,columnNumber:11},this),re.jsxDEV("div",{className:"h-[var(--tmex-safe-area-bottom)]"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:54,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:51,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:49,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:48,columnNumber:5},this)}function hf({moduleLoader:o}){const[n,a]=x.useState(null),i=JP();x.useEffect(()=>{o().then(a)},[o]);const l=n==null?void 0:n.default,c=n==null?void 0:n.PageTitle,f=n==null?void 0:n.PageActions;return re.jsxDEV(re.Fragment,{children:[re.jsxDEV("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:[re.jsxDEV("div",{className:"flex min-w-0 flex-1 items-center gap-2 px-4",children:[re.jsxDEV(P7,{className:"-ml-1 shrink-0","data-testid":"mobile-sidebar-open"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:81,columnNumber:11},this),re.jsxDEV(M8,{orientation:"vertical",className:"mr-2 shrink-0 data-[orientation=vertical]:h-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:82,columnNumber:11},this),re.jsxDEV("span",{className:"min-w-0 flex-1 truncate text-sm font-semibold",children:c?re.jsxDEV(c,{...i},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:87,columnNumber:26},this):""},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:86,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:80,columnNumber:9},this),re.jsxDEV("div",{className:"flex shrink-0 items-center gap-1 px-4",children:f&&re.jsxDEV(f,{...i},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:91,columnNumber:27},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:90,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:76,columnNumber:7},this),re.jsxDEV("div",{className:"flex min-h-0 flex-1 flex-col gap-4 !pt-0 p-2 md:p-4 mb-2",children:re.jsxDEV("div",{className:"bg-muted/50 min-h-0 flex-1 overflow-auto overscroll-auto rounded-xl [-webkit-overflow-scrolling:touch]",children:l?re.jsxDEV(l,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:98,columnNumber:19},this):null},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:97,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:96,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:75,columnNumber:5},this)}const TY=()=>OS(()=>import("./SettingsPage-BfkOW0fc.js"),__vite__mapDeps([0,1,2,3])),RA=()=>OS(()=>import("./DevicesPage-FqU-Dxhu.js"),__vite__mapDeps([4,1,2])),TA=()=>OS(()=>import("./DevicePage-CKaPUo7L.js"),__vite__mapDeps([5,2,3])),CY=$j([{path:"/",Component:RY,children:[{index:!0,element:re.jsxDEV(hf,{moduleLoader:RA},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:118,columnNumber:18},void 0)},{path:"devices",element:re.jsxDEV(hf,{moduleLoader:RA},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:122,columnNumber:18},void 0)},{path:"devices/:deviceId",element:re.jsxDEV(hf,{moduleLoader:TA},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:126,columnNumber:18},void 0)},{path:"devices/:deviceId/windows/:windowId/panes/:paneId",element:re.jsxDEV(hf,{moduleLoader:TA},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:130,columnNumber:18},void 0)},{path:"settings",element:re.jsxDEV(hf,{moduleLoader:TY},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:134,columnNumber:18},void 0)}]}]),K_=document.getElementById("root");if(!K_)throw new Error("Root element not found");N3.createRoot(K_).render(re.jsxDEV(x.StrictMode,{children:re.jsxDEV(f3,{client:xY,children:[re.jsxDEV(yj,{router:CY},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:149,columnNumber:7},void 0),re.jsxDEV(N4,{richColors:!0,position:"top-right",closeButton:!0,offset:{top:"calc(16px + var(--tmex-safe-area-top))",right:"16px",bottom:"16px",left:"16px"},mobileOffset:{top:"calc(12px + var(--tmex-safe-area-top))",right:"12px",bottom:"12px",left:"12px"},toastOptions:{duration:6e3}},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:150,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:148,columnNumber:5},void 0)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/main.tsx",lineNumber:147,columnNumber:3},void 0));export{p_ as $,GN as A,ow as B,nn as C,a7 as D,yn as E,W8 as F,Kf as G,eh as H,DY as I,FF as J,j_ as K,JM as L,_Y as M,R7 as N,ea as O,bB as P,C_ as Q,$F as R,qY as S,zY as T,mw as U,Sg as V,m_ as W,BN as X,gr as Y,hr as Z,I8 as _,d3 as a,IY as a$,zt as a0,u_ as a1,D_ as a2,$Y as a3,Ou as a4,pt as a5,Eu as a6,e7 as a7,f_ as a8,h_ as a9,UY as aA,_F as aB,zF as aC,TF as aD,zs as aE,FY as aF,Rf as aG,VY as aH,jM as aI,YY as aJ,jf as aK,MY as aL,BM as aM,IN as aN,$5 as aO,j5 as aP,Z7 as aQ,M8 as aR,YS as aS,q6 as aT,Yf as aU,j0 as aV,Tf as aW,a3 as aX,yo as aY,$o as aZ,HA as a_,Di as aa,JF as ab,it as ac,jm as ad,zf as ae,QS as af,XN as ag,LY as ah,QN as ai,g_ as aj,s_ as ak,LF as al,xw as am,AY as an,NY as ao,b_ as ap,GY as aq,XB as ar,$n as as,Ci as at,Oi as au,fn as av,dF as aw,Du as ax,wF as ay,Yt as az,Lf as b,Z6 as b0,BY as b1,jY as b2,HY as b3,Tm as b4,xi as b5,RB as b6,fg as b7,WS as b8,Pf as b9,QY as bA,fY as bB,qN as bC,qt as bD,Wl as bE,t7 as bF,cw as bG,o7 as bH,o8 as ba,aw as bb,bS as bc,Ha as bd,BD as be,O0 as bf,qo as bg,t8 as bh,n8 as bi,KN as bj,d_ as bk,xF as bl,XY as bm,XM as bn,bF as bo,P8 as bp,nY as bq,tu as br,Gn as bs,rw as bt,Tw as bu,PY as bv,Ei as bw,kf as bx,JP as by,bN as bz,na as c,xA as d,R3 as e,nS as f,T_ as g,FM as h,lo as i,re as j,Pt as k,A_ as l,YM as m,O_ as n,VM as o,kY as p,ew as q,x as r,Ql as s,gH as t,dg as u,Uf as v,Wf as w,Ln as x,bg as y,AF as z};
|
|
449
|
+
//# sourceMappingURL=index-EgHfq93I.js.map
|