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.
Files changed (21) hide show
  1. package/dist/runtime/server.js +18 -0
  2. package/package.json +1 -1
  3. package/resources/fe-dist/assets/{DevicePage-n4JoyDed.js → DevicePage-CKaPUo7L.js} +2 -2
  4. package/resources/fe-dist/assets/{DevicePage-n4JoyDed.js.map → DevicePage-CKaPUo7L.js.map} +1 -1
  5. package/resources/fe-dist/assets/DevicesPage-FqU-Dxhu.js +17 -0
  6. package/resources/fe-dist/assets/{DevicesPage-BwLKaiUR.js.map → DevicesPage-FqU-Dxhu.js.map} +1 -1
  7. package/resources/fe-dist/assets/{SettingsPage-hS99lHcp.js → SettingsPage-BfkOW0fc.js} +2 -2
  8. package/resources/fe-dist/assets/{SettingsPage-hS99lHcp.js.map → SettingsPage-BfkOW0fc.js.map} +1 -1
  9. package/resources/fe-dist/assets/{index-CJyFlAt8.js → index-EgHfq93I.js} +6 -6
  10. package/resources/fe-dist/assets/index-EgHfq93I.js.map +1 -0
  11. package/resources/fe-dist/assets/index-Ytlj3p_q.css +1 -0
  12. package/resources/fe-dist/assets/{select-DGBwxGiK.js → select-CNlE6MiW.js} +3 -3
  13. package/resources/fe-dist/assets/{select-DGBwxGiK.js.map → select-CNlE6MiW.js.map} +1 -1
  14. package/resources/fe-dist/assets/{switch-CWUBjs7N.js → switch-CxkzOIL6.js} +2 -2
  15. package/resources/fe-dist/assets/{switch-CWUBjs7N.js.map → switch-CxkzOIL6.js.map} +1 -1
  16. package/resources/fe-dist/assets/{useValueChanged-DwJ_SDCu.js → useValueChanged-CO2U5MoL.js} +2 -2
  17. package/resources/fe-dist/assets/{useValueChanged-DwJ_SDCu.js.map → useValueChanged-CO2U5MoL.js.map} +1 -1
  18. package/resources/fe-dist/index.html +2 -2
  19. package/resources/fe-dist/assets/DevicesPage-BwLKaiUR.js +0 -17
  20. package/resources/fe-dist/assets/index-CJaX5rlK.css +0 -1
  21. package/resources/fe-dist/assets/index-CJyFlAt8.js.map +0 -1
@@ -0,0 +1,17 @@
1
+ var Js=Object.defineProperty;var Ws=(e,o,r)=>o in e?Js(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r;var es=(e,o,r)=>Ws(e,typeof o!="symbol"?o+"":o,r);import{c as Ke,j as s,D as Xs,g as Zs,h as ms,X as et,B as pe,k as Z,l as st,m as tt,n as ot,o as at,r as a,p as ps,q as fs,s as Te,v as gs,w as hs,x as Ne,y as nt,z as rt,A as it,C as z,F as ct,E as me,G as lt,H as xs,J as ut,K as vs,L as dt,M as mt,P as pt,N as ft,O as ke,Q as gt,R as ht,S as xt,T as Ce,U as vt,V as Nt,W as bt,Y as Dt,Z as Me,_ as Ns,$ as Ct,a0 as H,a1 as yt,a2 as Pt,a3 as bs,a4 as Ds,a5 as Oe,a6 as Et,a7 as kt,a8 as wt,a9 as Lt,aa as we,ab as Mt,ac as ye,ad as ss,ae as Ut,af as jt,ag as Fe,ah as Rt,ai as It,aj as Vt,ak as St,al as Tt,am as Ot,an as Ae,ao as Ft,ap as Cs,aq as At,ar as ys,as as Ht,at as Kt,au as $t,av as He,aw as Bt,ax as zt,ay as _t,az as Ve,aA as qt,aB as Gt,aC as Yt,aD as Qt,aE as ts,aF as Jt,aG as Wt,aH as Xt,aI as Zt,aJ as os,aK as as,aL as eo,aM as so,u as be,a as Ps,e as to,aN as Es,aO as ks,aP as oo,f as le,aQ as ns,aR as ao,aS as no,aT as ro}from"./index-EgHfq93I.js";import{h as ws,i as io,j as co,k as lo,l as uo,m as mo,n as po,u as Le,C as Pe,c as Ee,a as fo,b as go,o as ho,I as ce,S as rs,d as is,e as cs,f as ls,g as xe}from"./select-CNlE6MiW.js";import{A as xo,a as vo,b as No,h as bo,T as Ls,c as Do,d as Co,e as yo,f as Po,g as Eo}from"./useValueChanged-CO2U5MoL.js";/**
2
+ * @license lucide-react v0.564.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const ko=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],wo=Ke("ellipsis",ko);/**
7
+ * @license lucide-react v0.564.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const Lo=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Mo=Ke("pencil",Lo);/**
12
+ * @license lucide-react v0.564.0 - ISC
13
+ *
14
+ * This source code is licensed under the ISC license.
15
+ * See the LICENSE file in the root directory of this source tree.
16
+ */const Uo=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],jo=Ke("zap",Uo);function Ro({...e}){return s.jsxDEV(Xs,{"data-slot":"dialog",...e},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:11,columnNumber:10},this)}function Io({...e}){return s.jsxDEV(ot,{"data-slot":"dialog-portal",...e},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:19,columnNumber:10},this)}function Vo({className:e,...o}){return s.jsxDEV(at,{"data-slot":"dialog-overlay",className:Z("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50",e),...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:31,columnNumber:5},this)}function So({className:e,children:o,showCloseButton:r=!0,...t}){return s.jsxDEV(Io,{children:[s.jsxDEV(Vo,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:49,columnNumber:7},this),s.jsxDEV(Zs,{"data-slot":"dialog-content",className:Z("bg-background data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 grid max-w-[calc(100%-2rem)] gap-4 rounded-xl p-4 text-sm ring-1 duration-100 sm:max-w-sm fixed top-1/2 left-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 outline-none",e),...t,children:[o,r&&s.jsxDEV(ms,{"data-slot":"dialog-close",render:s.jsxDEV(pe,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:63,columnNumber:15},this),children:[s.jsxDEV(et,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:70,columnNumber:13},this),s.jsxDEV("span",{className:"sr-only",children:"Close"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:72,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:60,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:50,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:48,columnNumber:5},this)}function To({className:e,...o}){return s.jsxDEV("div",{"data-slot":"dialog-header",className:Z("gap-2 flex flex-col",e),...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:82,columnNumber:5},this)}function Oo({className:e,showCloseButton:o=!1,children:r,...t}){return s.jsxDEV("div",{"data-slot":"dialog-footer",className:Z("bg-muted/50 -mx-4 -mb-4 rounded-b-xl border-t p-4 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t,children:[r,o&&s.jsxDEV(ms,{render:s.jsxDEV(pe,{variant:"outline"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:109,columnNumber:40},this),children:"Close"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:109,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:99,columnNumber:5},this)}function Fo({className:e,...o}){return s.jsxDEV(st,{"data-slot":"dialog-title",className:Z("text-base leading-none font-medium",e),...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:119,columnNumber:5},this)}function Ao({className:e,...o}){return s.jsxDEV(tt,{"data-slot":"dialog-description",className:Z("text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3",e),...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dialog.tsx",lineNumber:132,columnNumber:5},this)}const $e=a.createContext(void 0);$e.displayName="MenuPositionerContext";function Ms(e){const o=a.useContext($e);if(o===void 0&&!e)throw new Error("Base UI: MenuPositionerContext is missing. MenuPositioner parts must be placed within <Menu.Positioner>.");return o}const Be=a.createContext(void 0);Be.displayName="MenuRootContext";function fe(e){const o=a.useContext(Be);if(o===void 0&&!e)throw new Error("Base UI: MenuRootContext is missing. Menu parts must be placed within <Menu.Root>.");return o}const Us=a.createContext(void 0);Us.displayName="ContextMenuRootContext";function Ue(e=!0){const o=a.useContext(Us);if(o===void 0&&!e)throw new Error("Base UI: ContextMenuRootContext is missing. ContextMenu parts must be placed within <ContextMenu.Root>.");return o}function Ho(e){const{closeOnClick:o,highlighted:r,id:t,nodeId:m,store:i,itemRef:p,itemMetadata:c}=e,{events:v}=i.useState("floatingTreeRoot"),b=Ue(!0),D=b!==void 0;return a.useMemo(()=>({id:t,role:"menuitem",tabIndex:r?0:-1,onMouseMove(N){m&&v.emit("itemhover",{nodeId:m,target:N.currentTarget})},onClick(N){o&&v.emit("close",{domEvent:N,reason:ps})},onMouseUp(N){if(b){const k=b.initialCursorPointRef.current;if(b.initialCursorPointRef.current=null,D&&k&&Math.abs(N.clientX-k.x)<=1&&Math.abs(N.clientY-k.y)<=1)return}p.current&&i.context.allowMouseUpTriggerRef.current&&(!D||N.button===2)&&(!c||c.type==="regular-item")&&p.current.click()}}),[o,r,t,v,m,i,p,b,D,c])}const Ko={type:"regular-item"};function $o(e){const{closeOnClick:o,disabled:r=!1,highlighted:t,id:m,store:i,nativeButton:p,itemMetadata:c,nodeId:v}=e,b=a.useRef(null),{getButtonProps:D,buttonRef:N}=fs({disabled:r,focusableWhenDisabled:!0,native:p}),k=Ho({closeOnClick:o,highlighted:t,id:m,nodeId:v,store:i,itemRef:b,itemMetadata:c}),x=a.useCallback(g=>Te(k,{onMouseEnter(){c.type==="submenu-trigger"&&c.setActive()},onKeyUp(M){M.key===" "&&i.context.typingRef.current&&M.preventBaseUIHandler()}},g,D),[k,D,i,c]),j=gs(b,N);return a.useMemo(()=>({getItemProps:x,itemRef:j}),[x,j])}const js=a.forwardRef(function(o,r){const{render:t,className:m,id:i,label:p,nativeButton:c=!1,disabled:v=!1,closeOnClick:b=!0,...D}=o,N=ws({label:p}),k=Ms(!0),x=hs(i),{store:j}=fe(),g=j.useState("isActive",N.index),M=j.useState("itemProps"),{getItemProps:y,itemRef:d}=$o({closeOnClick:b,disabled:v,highlighted:g,id:x,store:j,nativeButton:c,nodeId:k==null?void 0:k.nodeId,itemMetadata:Ko});return Ne("div",o,{state:{disabled:v,highlighted:g},props:[M,D,y],ref:[d,r,N.ref]})});js.displayName="MenuItem";const Bo={...xs,...lt},Rs=a.forwardRef(function(o,r){const{render:t,className:m,finalFocus:i,...p}=o,{store:c}=fe(),{side:v,align:b}=Ms(),D=io()!=null,N=c.useState("open"),k=c.useState("transitionStatus"),x=c.useState("popupProps"),j=c.useState("mounted"),g=c.useState("instantType"),M=c.useState("activeTriggerElement"),y=c.useState("parent"),d=c.useState("lastOpenChangeReason"),R=c.useState("rootId"),$=c.useState("floatingRootContext"),f=c.useState("floatingTreeRoot"),n=c.useState("closeDelay"),P=c.useState("activeTriggerElement"),S=y.type==="context-menu";nt({open:N,ref:c.context.popupRef,onComplete(){var C,A;N&&((A=(C=c.context).onOpenChangeComplete)==null||A.call(C,!0))}}),a.useEffect(()=>{function C(A){c.setOpen(!1,me(A.reason,A.domEvent))}return f.events.on("close",C),()=>{f.events.off("close",C)}},[f.events,c]);const T=c.useState("hoverEnabled"),V=c.useState("disabled");rt($,{enabled:T&&!V&&!S&&y.type!=="menubar",closeDelay:n});const w={transitionStatus:k,side:v,align:b,open:N,nested:y.type==="menu",instant:g},l=Ne("div",o,{state:w,ref:[r,c.context.popupRef],stateAttributesMapping:Bo,props:[x,{onKeyDown(C){D&&ut.has(C.key)&&C.stopPropagation()}},vs(k),p,{"data-rootownerid":R}]});let u=y.type===void 0||S;return(M||y.type==="menubar"&&d!==it)&&(u=!0),z.jsx(ct,{context:$,modal:S,disabled:!j,returnFocus:i===void 0?u:i,initialFocus:y.type!=="menu",restoreFocus:!0,externalTree:y.type!=="menubar"?f:void 0,previousFocusableElement:P,nextFocusableElement:y.type===void 0?c.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:y.type===void 0?c.context.beforeContentFocusGuardRef:void 0,children:l})});Rs.displayName="MenuPopup";const ze=a.createContext(void 0);ze.displayName="MenuPortalContext";function zo(){const e=a.useContext(ze);if(e===void 0)throw new Error("Base UI: <Menu.Portal> is missing.");return e}const Is=a.forwardRef(function(o,r){const{keepMounted:t=!1,...m}=o,{store:i}=fe();return i.useState("mounted")||t?z.jsx(ze.Provider,{value:t,children:z.jsx(dt,{ref:r,...m})}):null});Is.displayName="MenuPortal";const Vs=a.forwardRef(function(o,r){var re;const{anchor:t,positionMethod:m="absolute",className:i,render:p,side:c,align:v,sideOffset:b=0,alignOffset:D=0,collisionBoundary:N="clipping-ancestors",collisionPadding:k=5,arrowPadding:x=5,sticky:j=!1,disableAnchorTracking:g=!1,collisionAvoidance:M=mt,...y}=o,{store:d}=fe(),R=zo(),$=Ue(!0),f=d.useState("parent"),n=d.useState("floatingRootContext"),P=d.useState("floatingTreeRoot"),S=d.useState("mounted"),T=d.useState("open"),V=d.useState("modal"),w=d.useState("activeTriggerElement"),l=d.useState("transitionStatus"),u=d.useState("lastOpenChangeReason"),C=d.useState("floatingNodeId"),A=d.useState("floatingParentNodeId");let ue=t,L=b,B=D,ee=v,Q=M;f.type==="context-menu"&&(ue=t??((re=f.context)==null?void 0:re.anchor),ee=ee??"start",!c&&ee!=="center"&&(B=o.alignOffset??2,L=o.sideOffset??-5));let G=c,J=ee;f.type==="menu"?(G=G??"inline-end",J=J??"start",Q=o.collisionAvoidance??pt):f.type==="menubar"&&(G=G??"bottom",J=J??"start");const _=f.type==="context-menu",I=ft({anchor:ue,floatingRootContext:n,positionMethod:$?"fixed":m,mounted:S,side:G,sideOffset:L,align:J,alignOffset:B,arrowPadding:_?0:x,collisionBoundary:N,collisionPadding:k,sticky:j,nodeId:C,keepMounted:R,disableAnchorTracking:g,collisionAvoidance:Q,shiftCrossAxis:_&&!("side"in Q&&Q.side==="flip"),externalTree:P}),ae=a.useMemo(()=>{const U={};return T||(U.pointerEvents="none"),{role:"presentation",hidden:!S,style:{...I.positionerStyles,...U}}},[T,S,I.positionerStyles]);a.useEffect(()=>{function U(O){O.open&&(O.parentNodeId===C&&d.set("hoverEnabled",!1),O.nodeId!==C&&O.parentNodeId===d.select("floatingParentNodeId")&&d.setOpen(!1,me(Ce)))}return P.events.on("menuopenchange",U),()=>{P.events.off("menuopenchange",U)}},[d,P.events,C]),a.useEffect(()=>{if(d.select("floatingParentNodeId")==null)return;function U(O){if(O.open||O.nodeId!==d.select("floatingParentNodeId"))return;const he=O.reason??Ce;d.setOpen(!1,me(he))}return P.events.on("menuopenchange",U),()=>{P.events.off("menuopenchange",U)}},[P.events,d]),a.useEffect(()=>{function U(O){!T||O.nodeId!==d.select("floatingParentNodeId")||O.target&&w&&w!==O.target&&d.setOpen(!1,me(Ce))}return P.events.on("itemhover",U),()=>{P.events.off("itemhover",U)}},[P.events,T,w,d]),a.useEffect(()=>{const U={open:T,nodeId:C,parentNodeId:A,reason:d.select("lastOpenChangeReason")};P.events.emit("menuopenchange",U)},[P.events,T,d,C,A]);const ve={open:T,side:I.side,align:I.align,anchorHidden:I.anchorHidden,nested:f.type==="menu"},ge=a.useMemo(()=>({side:I.side,align:I.align,arrowRef:I.arrowRef,arrowUncentered:I.arrowUncentered,arrowStyles:I.arrowStyles,nodeId:I.context.nodeId}),[I.side,I.align,I.arrowRef,I.arrowUncentered,I.arrowStyles,I.context.nodeId]),de=Ne("div",o,{state:ve,stateAttributesMapping:xs,ref:[r,d.useStateSetter("positionerElement")],props:[ae,vs(l),y]}),ne=S&&f.type!=="menu"&&(f.type!=="menubar"&&V&&u!==ke||f.type==="menubar"&&f.context.modal);let W=null;return f.type==="menubar"?W=f.context.contentElement:f.type===void 0&&(W=w),z.jsxs($e.Provider,{value:ge,children:[ne&&z.jsx(gt,{ref:f.type==="context-menu"||f.type==="nested-context-menu"?f.context.internalBackdropRef:null,inert:ht(!T),cutout:W}),z.jsx(xt,{id:C,children:z.jsx(co,{elementsRef:d.context.itemDomElements,labelsRef:d.context.itemLabels,children:de})})]})});Vs.displayName="MenuPositioner";const Ss=a.createContext(null);Ss.displayName="MenubarContext";function Ts(e){return a.useContext(Ss)}const _o={...bt,disabled:H(e=>e.parent.type==="menubar"&&e.parent.context.disabled||e.disabled),modal:H(e=>(e.parent.type===void 0||e.parent.type==="context-menu")&&(e.modal??!0)),allowMouseEnter:H(e=>e.allowMouseEnter),stickIfOpen:H(e=>e.stickIfOpen),parent:H(e=>e.parent),rootId:H(e=>e.parent.type==="menu"?e.parent.store.select("rootId"):e.parent.type!==void 0?e.parent.context.rootId:e.rootId),activeIndex:H(e=>e.activeIndex),isActive:H((e,o)=>e.activeIndex===o),hoverEnabled:H(e=>e.hoverEnabled),instantType:H(e=>e.instantType),lastOpenChangeReason:H(e=>e.openChangeReason),floatingTreeRoot:H(e=>e.parent.type==="menu"?e.parent.store.select("floatingTreeRoot"):e.floatingTreeRoot),floatingNodeId:H(e=>e.floatingNodeId),floatingParentNodeId:H(e=>e.floatingParentNodeId),itemProps:H(e=>e.itemProps),closeDelay:H(e=>e.closeDelay),keyboardEventRelay:H(e=>{if(e.keyboardEventRelay)return e.keyboardEventRelay;if(e.parent.type==="menu")return e.parent.store.select("keyboardEventRelay")})};class _e extends vt{constructor(r){super({...qo(),...r},{positionerRef:a.createRef(),popupRef:a.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:a.createRef(),beforeContentFocusGuardRef:a.createRef(),onOpenChangeComplete:void 0,triggerElements:new Nt},_o);es(this,"unsubscribeParentListener",null);this.unsubscribeParentListener=this.observe("parent",t=>{var m;if((m=this.unsubscribeParentListener)==null||m.call(this),t.type==="menu"){this.unsubscribeParentListener=t.store.subscribe(()=>{this.notifyAll()}),this.context.allowMouseUpTriggerRef=t.store.context.allowMouseUpTriggerRef;return}t.type!==void 0&&(this.context.allowMouseUpTriggerRef=t.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(r,t){this.state.floatingRootContext.context.events.emit("setOpen",{open:r,eventDetails:t})}static useStore(r,t){const m=Dt(()=>new _e(t)).current;return r??m}}function qo(){return{...Ct(),disabled:!1,modal:!0,allowMouseEnter:!1,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new Ns,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:Me,keyboardEventRelay:void 0,closeDelay:0}}const Os=a.createContext(void 0);Os.displayName="MenuSubmenuRootContext";function Go(){return a.useContext(Os)}const Fs=yt(function(o){const{children:r,open:t,onOpenChange:m,onOpenChangeComplete:i,defaultOpen:p=!1,disabled:c=!1,modal:v,loopFocus:b=!0,orientation:D="vertical",actionsRef:N,closeParentOnEsc:k=!1,handle:x,triggerId:j,defaultTriggerId:g=null,highlightItemOnHover:M=!0}=o,y=Ue(!0),d=fe(!0),R=Ts(!0),$=Go(),f=a.useMemo(()=>$&&d?{type:"menu",store:d.store}:R?{type:"menubar",context:R}:y&&!d?{type:"context-menu",context:y}:{type:void 0},[y,d,R,$]),n=_e.useStore(x==null?void 0:x.store,{open:p,openProp:t,activeTriggerId:g,triggerIdProp:j,parent:f});Pt(()=>{t===void 0&&n.state.open===!1&&p===!0&&n.update({open:!0,activeTriggerId:g})}),n.useControlledProp("openProp",t),n.useControlledProp("triggerIdProp",j),n.useContextCallback("onOpenChangeComplete",i);const P=n.useState("floatingTreeRoot"),S=bs(P),T=Ds();Oe(()=>{y&&!d?n.update({parent:{type:"context-menu",context:y},floatingNodeId:S,floatingParentNodeId:T}):d&&n.update({floatingNodeId:S,floatingParentNodeId:T})},[y,d,S,T,n]);const V=n.useState("open"),w=n.useState("activeTriggerElement"),l=n.useState("positionerElement"),u=n.useState("hoverEnabled"),C=n.useState("modal"),A=n.useState("disabled"),ue=n.useState("lastOpenChangeReason"),L=n.useState("parent"),B=n.useState("activeIndex"),ee=n.useState("payload"),Q=n.useState("floatingParentNodeId"),G=a.useRef(null),J=Q!=null;let _;L.type!==void 0&&v!==void 0&&console.warn("Base UI: The `modal` prop is not supported on nested menus. It will be ignored."),n.useSyncedValues({disabled:c,modal:L.type===void 0?v:void 0,rootId:Et()});const{openMethod:I,triggerProps:ae,reset:ve}=kt(V);wt(n);const{forceUnmount:ge}=Lt(V,n,()=>{n.update({allowMouseEnter:!1,stickIfOpen:!0}),ve()}),de=a.useRef(L.type!=="context-menu"),ne=we();a.useEffect(()=>{if(V||(G.current=null),L.type==="context-menu"){if(!V){ne.clear(),de.current=!1;return}ne.start(500,()=>{de.current=!0})}},[ne,V,L.type]),Mt(V&&C&&ue!==ke&&I!=="touch",l),Oe(()=>{!V&&!u&&n.set("hoverEnabled",!0)},[V,u,n]);const W=a.useRef(!0),re=we(),U=ye((h,E)=>{var Ze;const q=E.reason;if(V===h&&E.trigger===w&&ue===q||(E.preventUnmountOnClose=()=>{n.set("preventUnmountingOnClose",!0)},!h&&E.trigger==null&&(E.trigger=w??void 0),m==null||m(h,E),E.isCanceled))return;const Ys={open:h,nativeEvent:E.event,reason:E.reason,nested:J};_==null||_.emit("openchange",Ys);const ie=E.event;if(h===!1&&(ie==null?void 0:ie.type)==="click"&&ie.pointerType==="touch"&&!W.current)return;if(!h&&B!==null){const Ie=n.context.itemDomElements.current[B];queueMicrotask(()=>{Ie==null||Ie.setAttribute("tabindex","-1")})}h&&q===ss?(W.current=!1,re.start(300,()=>{W.current=!0})):(W.current=!0,re.clear());const We=(q===Ut||q===ps)&&ie.detail===0&&(ie==null?void 0:ie.isTrusted),Qs=!h&&(q===jt||q==null),Re={open:h,openChangeReason:q};G.current=E.event??null;const Xe=((Ze=E.trigger)==null?void 0:Ze.id)??null;(Xe||h)&&(Re.activeTriggerId=Xe,Re.activeTriggerElement=E.trigger??null),n.update(Re),L.type==="menubar"&&(q===ss||q===Fe||q===ke||q===Rt||q===Ce)?n.set("instantType","group"):We||Qs?n.set("instantType",We?"click":"dismiss"):n.set("instantType",void 0)}),O=a.useCallback(h=>{const E=me(h);return E.preventUnmountOnClose=()=>{n.set("preventUnmountingOnClose",!0)},E},[n]),he=a.useCallback(()=>{n.setOpen(!1,O(It))},[n,O]);a.useImperativeHandle(N,()=>({unmount:ge,close:he}),[ge,he]);let se;L.type==="context-menu"&&(se=L.context),a.useImperativeHandle(se==null?void 0:se.positionerRef,()=>l,[l]),a.useImperativeHandle(se==null?void 0:se.actionsRef,()=>({setOpen:U}),[U]);const te=Vt({popupStore:n,onOpenChange:U});_=te.context.events,a.useEffect(()=>{const h=({open:E,eventDetails:q})=>U(E,q);return _.on("setOpen",h),()=>{_==null||_.off("setOpen",h)}},[_,U]);const F=St(te,{enabled:!A,bubbles:{escapeKey:k&&L.type==="menu"},outsidePress(){var h;return L.type!=="context-menu"||((h=G.current)==null?void 0:h.type)==="contextmenu"?!0:de.current},externalTree:J?P:void 0}),K=Tt(te,{role:"menu"}),oe=Ot(),Y=a.useCallback(h=>{n.select("activeIndex")!==h&&n.set("activeIndex",h)},[n]),je=lo(te,{enabled:!A,listRef:n.context.itemDomElements,activeIndex:B,nested:L.type!==void 0,loopFocus:b,orientation:D,parentOrientation:L.type==="menubar"?L.context.orientation:void 0,rtl:oe==="rtl",disabledIndices:Ae,onNavigate:Y,openOnArrowKeyDown:L.type!=="context-menu",externalTree:J?P:void 0,focusItemOnHover:M}),Ks=a.useCallback(h=>{n.context.typingRef.current=h},[n]),$s=uo(te,{listRef:n.context.itemLabels,activeIndex:B,resetMs:Ft,onMatch:h=>{V&&h!==B&&n.set("activeIndex",h)},onTypingChange:Ks}),{getReferenceProps:qe,getFloatingProps:Ge,getItemProps:Ye,getTriggerProps:Qe}=Cs([F,K,je,$s]),Bs=a.useMemo(()=>{const h=Te(qe(),{onMouseMove(){n.set("allowMouseEnter",!0)}},ae);return delete h.role,h},[qe,n,ae]),zs=a.useMemo(()=>{const h=Qe();if(!h)return h;const E=Te(h,ae);return delete E.role,delete E["aria-controls"],E},[Qe,ae]),_s=a.useMemo(()=>Ge({onMouseMove(){n.set("allowMouseEnter",!0),L.type==="menu"&&n.set("hoverEnabled",!1)},onClick(){n.select("hoverEnabled")&&n.set("hoverEnabled",!1)},onKeyDown(h){const E=n.select("keyboardEventRelay");E&&!h.isPropagationStopped()&&E(h)}}),[Ge,L.type,n]),qs=a.useMemo(()=>Ye(),[Ye]);n.useSyncedValues({floatingRootContext:te,activeTriggerProps:Bs,inactiveTriggerProps:zs,popupProps:_s,itemProps:qs});const Gs=a.useMemo(()=>({store:n,parent:f}),[n,f]),Je=z.jsx(Be.Provider,{value:Gs,children:typeof r=="function"?r({payload:ee}):r});return L.type===void 0||L.type==="context-menu"?z.jsx(At,{externalTree:P,children:Je}):Je});Fs.displayName="MenuRoot";function Yo(e={}){const{highlightItemOnHover:o,highlightedIndex:r,onHighlightedIndexChange:t}=ys(),{ref:m,index:i}=ws(e),p=r===i,c=a.useRef(null),v=gs(m,c);return{compositeProps:a.useMemo(()=>({tabIndex:p?0:-1,onFocus(){t(i)},onMouseMove(){const D=c.current;if(!o||!D)return;const N=D.hasAttribute("disabled")||D.ariaDisabled==="true";!p&&!N&&D.focus()}}),[p,t,i,o]),compositeRef:v,index:i}}function Qo(e){const{render:o,className:r,state:t=Me,props:m=Ae,refs:i=Ae,metadata:p,stateAttributesMapping:c,tag:v="div",...b}=e,{compositeProps:D,compositeRef:N}=Yo({metadata:p});return Ne(v,e,{state:t,ref:[...i,N],props:[D,...m,b],stateAttributesMapping:c})}function As(e){if(Ht(e)&&e.hasAttribute("data-rootownerid"))return e.getAttribute("data-rootownerid")??void 0;if(!Kt(e))return As($t(e))}function Jo(e){const{enabled:o=!0,mouseDownAction:r,open:t}=e,m=a.useRef(!1);return a.useMemo(()=>o?{onMouseDown:i=>{(r==="open"&&!t||r==="close"&&t)&&(m.current=!0,He(i.currentTarget).addEventListener("click",()=>{m.current=!1},{once:!0}))},onClick:i=>{m.current&&(m.current=!1,i.preventBaseUIHandler())}}:Me,[o,r,t])}const De=2,Hs=Bt(function(o,r){const{render:t,className:m,disabled:i=!1,nativeButton:p=!0,id:c,openOnHover:v,delay:b=100,closeDelay:D=0,handle:N,payload:k,...x}=o,j=fe(!0),g=(N==null?void 0:N.store)??(j==null?void 0:j.store);if(!g)throw new Error("Base UI: <Menu.Trigger> must be either used within a <Menu.Root> component or provided with a handle.");const M=hs(c),y=g.useState("isTriggerActive",M),d=g.useState("floatingRootContext"),R=g.useState("isOpenedByTrigger",M),$=a.useRef(null),f=Xo(),n=ys(!0),P=zt(),S=a.useMemo(()=>P??new Ns,[P]),T=bs(S),V=Ds(),{registerTrigger:w,isMountedByThisTrigger:l}=_t(M,$,g,{payload:k,closeDelay:D,parent:f,floatingTreeRoot:S,floatingNodeId:T,floatingParentNodeId:V,keyboardEventRelay:n==null?void 0:n.relayKeyboardEvent}),u=f.type==="menubar",C=g.useState("disabled"),A=i||C||u&&f.context.disabled,{getButtonProps:ue,buttonRef:L}=fs({disabled:A,native:p});a.useEffect(()=>{!R&&f.type===void 0&&(g.context.allowMouseUpTriggerRef.current=!1)},[g,R,f.type]);const B=a.useRef(null),ee=we(),Q=ye(F=>{if(!B.current)return;ee.clear(),g.context.allowMouseUpTriggerRef.current=!1;const K=F.target;if(Ve(B.current,K)||Ve(g.select("positionerElement"),K)||K===B.current||K!=null&&As(K)===g.select("rootId"))return;const oe=mo(B.current);F.clientX>=oe.left-De&&F.clientX<=oe.right+De&&F.clientY>=oe.top-De&&F.clientY<=oe.bottom+De||S.events.emit("close",{domEvent:F,reason:qt})});a.useEffect(()=>{R&&g.select("lastOpenChangeReason")===ke&&He(B.current).addEventListener("mouseup",Q,{once:!0})},[R,Q,g]);const G=u&&f.context.hasSubmenuOpen,_=Gt(d,{enabled:(v??G)&&!A&&f.type!=="context-menu"&&(!u||G&&!l),handleClose:Yt({blockPointerEvents:!u}),mouseOnly:!0,move:!1,restMs:f.type===void 0?b:void 0,delay:{close:D},triggerElementRef:$,externalTree:S,isActiveTrigger:y}),I=Wo(R,g.select("lastOpenChangeReason")),ae=po(d,{enabled:!A&&f.type!=="context-menu",event:R&&u?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:f.type===void 0?I:!1}),ve=Qt(d,{enabled:!A&&G}),ge=Jo({open:R,enabled:u,mouseDownAction:"open"}),de=Cs([ae,ve]),ne={disabled:A,open:R},W=g.useState("triggerProps",l),re=[B,r,L,w,$],U=[de.getReferenceProps(),_??Me,W,{"aria-haspopup":"menu",id:M,onMouseDown:F=>{if(g.select("open"))return;ee.start(200,()=>{g.context.allowMouseUpTriggerRef.current=!0}),He(F.currentTarget).addEventListener("mouseup",Q,{once:!0})}},u?{role:"menuitem"}:{},ge,x,ue],O=a.useRef(null),he=ye(F=>{ts.flushSync(()=>{g.setOpen(!1,me(Fe,F.nativeEvent,F.currentTarget))});const K=Jt(O.current);K==null||K.focus()}),se=ye(F=>{var oe;const K=g.select("positionerElement");if(K&&Wt(F,K))(oe=g.context.beforeContentFocusGuardRef.current)==null||oe.focus();else{ts.flushSync(()=>{g.setOpen(!1,me(Fe,F.nativeEvent,F.currentTarget))});let Y=Xt(g.context.triggerFocusTargetRef.current||$.current);for(;Y!==null&&Ve(K,Y);){const je=Y;if(Y=Zt(Y),Y===je)break}Y==null||Y.focus()}}),te=Ne("button",o,{enabled:!u,stateAttributesMapping:os,state:ne,ref:re,props:U});return u?z.jsx(Qo,{tag:"button",render:t,className:m,state:ne,refs:re,props:U,stateAttributesMapping:os}):R?z.jsxs(a.Fragment,{children:[z.jsx(as,{ref:O,onFocus:he},`${M}-pre-focus-guard`),z.jsx(a.Fragment,{children:te},M),z.jsx(as,{ref:g.context.triggerFocusTargetRef,onFocus:se},`${M}-post-focus-guard`)]}):z.jsx(a.Fragment,{children:te},M)});Hs.displayName="MenuTrigger";function Wo(e,o){const r=we(),[t,m]=a.useState(!1);return Oe(()=>{e&&o==="trigger-hover"?(m(!0),r.start(eo,()=>{m(!1)})):e||(r.clear(),m(!1))},[e,o,r]),t}function Xo(){const e=Ue(!0),o=fe(!0),r=Ts();return a.useMemo(()=>r?{type:"menubar",context:r}:e&&!o?{type:"context-menu",context:e}:{type:void 0},[e,o,r])}function Zo({...e}){return s.jsxDEV(Fs,{"data-slot":"dropdown-menu",...e},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dropdown-menu.tsx",lineNumber:10,columnNumber:10},this)}function ea({...e}){return s.jsxDEV(Hs,{"data-slot":"dropdown-menu-trigger",...e},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dropdown-menu.tsx",lineNumber:18,columnNumber:10},this)}function sa({align:e="start",alignOffset:o=0,side:r="bottom",sideOffset:t=4,className:m,...i}){return s.jsxDEV(Is,{children:s.jsxDEV(Vs,{className:"isolate z-50 outline-none",align:e,alignOffset:o,side:r,sideOffset:t,children:s.jsxDEV(Rs,{"data-slot":"dropdown-menu-content",className:Z("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-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 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none data-closed:overflow-hidden",m),...i},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dropdown-menu.tsx",lineNumber:42,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dropdown-menu.tsx",lineNumber:35,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dropdown-menu.tsx",lineNumber:34,columnNumber:5},this)}function Se({className:e,inset:o,variant:r="default",...t}){return s.jsxDEV(js,{"data-slot":"dropdown-menu-item","data-inset":o,"data-variant":r,className:Z("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-md px-1.5 py-1 text-sm data-inset:pl-7 [&_svg:not([class*='size-'])]:size-4 group/dropdown-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",e),...t},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dropdown-menu.tsx",lineNumber:83,columnNumber:5},this)}function ta({className:e,...o}){return s.jsxDEV(so,{"data-slot":"dropdown-menu-separator",className:Z("bg-border -mx-1 my-1 h-px",e),...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/dropdown-menu.tsx",lineNumber:225,columnNumber:5},this)}function oa({className:e,...o}){return s.jsxDEV("textarea",{"data-slot":"textarea",className:Z("border-input dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 rounded-lg border bg-transparent px-2.5 py-2 text-base transition-colors focus-visible:ring-2 aria-invalid:ring-2 md:text-sm placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none disabled:cursor-not-allowed disabled:opacity-50",e),...o},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/components/ui/textarea.tsx",lineNumber:7,columnNumber:5},this)}function X(e){const o=e.trim();return o||void 0}function aa(e){return e?{name:e.name,type:e.type,host:e.host??"",port:e.port??22,username:e.username??"",sshConfigRef:e.sshConfigRef??"",session:e.session??"tmex",authMode:e.type==="local"?"auto":e.authMode,password:"",privateKey:"",privateKeyPassphrase:""}:{name:"",type:"local",host:"",port:22,username:"",sshConfigRef:"",session:"tmex",authMode:"auto",password:"",privateKey:"",privateKeyPassphrase:""}}function na(e){if(e.type==="local")return{name:e.name.trim(),type:"local",session:X(e.session)??"tmex",authMode:"auto"};const o={name:e.name.trim(),type:"ssh",host:X(e.host),port:e.port,username:X(e.username),sshConfigRef:X(e.sshConfigRef),session:X(e.session)??"tmex",authMode:e.authMode};return e.authMode==="password"&&(o.password=e.password),e.authMode==="key"&&(o.privateKey=e.privateKey,o.privateKeyPassphrase=e.privateKeyPassphrase||void 0),o}function ra(e){if(e.type==="local")return{name:e.name.trim(),session:X(e.session)??"tmex",authMode:"auto"};const o={name:e.name.trim(),host:X(e.host),port:e.port,username:X(e.username),sshConfigRef:X(e.sshConfigRef),session:X(e.session)??"tmex",authMode:e.authMode};return e.authMode==="password"&&e.password&&(o.password=e.password),e.authMode==="key"&&e.privateKey&&(o.privateKey=e.privateKey,o.privateKeyPassphrase=e.privateKeyPassphrase||void 0),o}async function us(e,o){try{return(await e.json()).error??o}catch{return o}}function ma(){const{t:e}=be(),[o,r]=a.useState(!1),[t,m]=a.useState(null),[i,p]=a.useState(null),c=Ps();a.useEffect(()=>{const x=()=>r(!0);return window.addEventListener("tmex:open-add-device",x),()=>window.removeEventListener("tmex:open-add-device",x)},[]);const{data:v,isLoading:b,isError:D}=to({queryKey:["devices"],queryFn:async()=>{const x=await fetch("/api/devices");if(!x.ok)throw new Error(e("device.loadFailed"));return x.json()},throwOnError:!1}),N=Le({mutationFn:async x=>{if(!(await fetch(`/api/devices/${x}`,{method:"DELETE"})).ok)throw new Error(e("device.deleteFailed"))},onSuccess:()=>{c.invalidateQueries({queryKey:["devices"]}),le.success(e("common.success"))},onError:x=>{le.error(x instanceof Error?x.message:e("common.error"))}}),k=(v==null?void 0:v.devices)??[];return s.jsxDEV("div",{className:"mx-auto flex w-full max-w-6xl flex-col gap-3 p-3 pb-[calc(1rem+env(safe-area-inset-bottom))] sm:gap-4 sm:p-5","data-testid":"devices-page",children:[b?s.jsxDEV(Pe,{children:s.jsxDEV(Ee,{className:"py-16 text-center text-sm text-muted-foreground",children:e("common.loading")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:218,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:217,columnNumber:9},this):D?s.jsxDEV(Pe,{children:s.jsxDEV(Ee,{className:"py-16 text-center text-sm text-destructive",children:e("device.loadFailed")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:222,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:221,columnNumber:9},this):k.length===0?s.jsxDEV(Pe,{children:s.jsxDEV(Ee,{className:"space-y-4 py-14 text-center",children:[s.jsxDEV("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-xl border border-border bg-muted",children:s.jsxDEV(Es,{className:"h-6 w-6 text-muted-foreground"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:228,columnNumber:15},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:227,columnNumber:13},this),s.jsxDEV("div",{className:"space-y-1",children:[s.jsxDEV("h2",{className:"text-lg font-medium",children:e("device.noDevices")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:231,columnNumber:15},this),s.jsxDEV("p",{className:"text-sm text-muted-foreground",children:e("device.addDevice")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:232,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:230,columnNumber:13},this),s.jsxDEV(pe,{variant:"default","data-testid":"devices-add-empty",onClick:()=>r(!0),children:[s.jsxDEV(ks,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:235,columnNumber:15},this),e("device.addDevice")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:234,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:226,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:225,columnNumber:9},this):s.jsxDEV("div",{className:"grid gap-3 lg:grid-cols-2",children:k.map(x=>s.jsxDEV(ia,{device:x,onEdit:()=>m(x),onDelete:()=>p(x)},x.id,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:243,columnNumber:13},this))},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:241,columnNumber:9},this),o&&s.jsxDEV(ds,{mode:"create",onClose:()=>r(!1)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:253,columnNumber:24},this),t&&s.jsxDEV(ds,{mode:"edit",device:t,onClose:()=>m(null)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:255,columnNumber:9},this),s.jsxDEV(xo,{open:i!==null,onOpenChange:x=>!x&&p(null),children:s.jsxDEV(vo,{children:[s.jsxDEV(No,{children:[s.jsxDEV(bo,{className:"bg-destructive/10",children:s.jsxDEV(Ls,{className:"h-5 w-5 text-destructive"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:262,columnNumber:15},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:261,columnNumber:13},this),s.jsxDEV(Do,{children:e("device.deleteConfirm")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:264,columnNumber:13},this),s.jsxDEV(Co,{children:e("device.deleteDescription",{name:(i==null?void 0:i.name)??""})},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:265,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:260,columnNumber:11},this),s.jsxDEV(yo,{children:[s.jsxDEV(Po,{children:e("common.cancel")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:270,columnNumber:13},this),s.jsxDEV(Eo,{variant:"destructive",disabled:!i||N.isPending,onClick:()=>{i&&(N.mutate(i.id),p(null))},children:e("common.delete")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:271,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:269,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:259,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:258,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:215,columnNumber:5},this)}function ia({device:e,onEdit:o,onDelete:r}){const{t}=be(),m=e.type==="local"?s.jsxDEV(Es,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:299,columnNumber:31},this):s.jsxDEV(oo,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:299,columnNumber:65},this),i=e.type==="local"?t("device.typeLocal"):`${e.username??"-"}@${e.host??"-"}:${e.port??22}`,p=Le({mutationFn:async()=>{const c=await fetch(`/api/devices/${e.id}/test-connection`,{method:"POST"});let v=null;try{v=await c.json()}catch{v=null}if(!c.ok){const b=v;throw new Error((b==null?void 0:b.error)??t("common.error"))}return v},onSuccess:c=>{le.success(c.message??t("common.success"))},onError:c=>{le.error(c instanceof Error?c.message:t("common.error"))}});return s.jsxDEV(Pe,{"data-testid":"device-card","data-device-id":e.id,"data-device-name":e.name,className:"overflow-hidden",children:[s.jsxDEV(fo,{className:"space-y-2 pb-2",children:[s.jsxDEV("div",{className:"flex items-start justify-between gap-2",children:[s.jsxDEV("div",{className:"flex min-w-0 items-center gap-2.5",children:[s.jsxDEV("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-border bg-muted text-muted-foreground",children:m},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:338,columnNumber:13},this),s.jsxDEV("div",{className:"min-w-0 space-y-0.5",children:[s.jsxDEV(go,{className:"line-clamp-1 text-sm",title:e.name,children:e.name},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:342,columnNumber:15},this),s.jsxDEV(ho,{className:"line-clamp-1 text-xs",children:i},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:345,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:341,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:337,columnNumber:11},this),s.jsxDEV("div",{className:"flex shrink-0 items-center gap-1",children:s.jsxDEV(Zo,{children:[s.jsxDEV(ea,{render:s.jsxDEV(pe,{variant:"ghost",size:"icon-sm","data-testid":`device-card-actions-${e.id}`,"aria-label":t("common.edit"),title:t("common.edit")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:353,columnNumber:19},this),children:s.jsxDEV(wo,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:362,columnNumber:17},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:351,columnNumber:15},this),s.jsxDEV(sa,{align:"end",children:[s.jsxDEV(Se,{"data-testid":`device-card-edit-${e.id}`,onClick:o,children:[s.jsxDEV(Mo,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:369,columnNumber:19},this),t("common.edit")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:365,columnNumber:17},this),e.type==="ssh"&&s.jsxDEV(Se,{"data-testid":`device-card-test-${e.id}`,onClick:()=>p.mutate(),disabled:p.isPending,children:[s.jsxDEV(jo,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:378,columnNumber:21},this),t("common.test")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:373,columnNumber:19},this),s.jsxDEV(ta,{},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:382,columnNumber:17},this),s.jsxDEV(Se,{"data-testid":`device-card-delete-${e.id}`,variant:"destructive",onClick:r,children:[s.jsxDEV(Ls,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:388,columnNumber:19},this),t("common.delete")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:383,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:364,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:350,columnNumber:13},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:349,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:336,columnNumber:9},this),s.jsxDEV("div",{className:"flex flex-wrap items-center gap-1.5",children:[s.jsxDEV(ns,{variant:"outline",className:"text-[11px] font-normal",children:e.type==="local"?t("device.typeLocal"):t("device.typeSSHBadge")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:397,columnNumber:11},this),e.session&&s.jsxDEV(ns,{variant:"outline",className:"text-[11px] font-normal",children:e.session},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:401,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:396,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:335,columnNumber:7},this),s.jsxDEV(Ee,{className:"pt-0",children:[s.jsxDEV(ao,{className:"mb-2"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:409,columnNumber:9},this),s.jsxDEV("div",{className:"flex items-center justify-end",children:s.jsxDEV(no,{to:`/devices/${e.id}`,"data-testid":`device-card-connect-${e.id}`,className:ro({variant:"default",size:"sm"}),children:t("device.connect")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:411,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:410,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:408,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:334,columnNumber:5},this)}function ds({mode:e,device:o,onClose:r}){const{t}=be(),m=Ps(),[i,p]=a.useState(aa(o)),[c,v]=a.useState(!1),b=e==="edit",D=i.type==="ssh",N=Le({mutationFn:async l=>{const u=await fetch("/api/devices",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!u.ok)throw new Error(await us(u,t("device.createFailed")));return u.json()},onSuccess:()=>{m.invalidateQueries({queryKey:["devices"]}),le.success(t("common.success")),r()},onError:l=>{le.error(l instanceof Error?l.message:t("common.error"))}}),k=Le({mutationFn:async l=>{if(!o)throw new Error(t("apiError.deviceNotFound"));const u=await fetch(`/api/devices/${o.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(l)});if(!u.ok)throw new Error(await us(u,t("device.updateFailed")));return u.json()},onSuccess:()=>{m.invalidateQueries({queryKey:["devices"]}),le.success(t("common.success")),r()},onError:l=>{le.error(l instanceof Error?l.message:t("common.error"))}}),x=async l=>{l.preventDefault(),v(!0);try{e==="create"?await N.mutateAsync(na(i)):await k.mutateAsync(ra(i))}catch{}finally{v(!1)}},j=`${e}-device-name`,g=`${e}-device-type`,M=`${e}-device-host`,y=`${e}-device-port`,d=`${e}-device-username`,R=`${e}-device-session`,$=`${e}-device-auth-mode`,f=`${e}-device-password`,n=`${e}-device-private-key`,P=`${e}-device-private-key-passphrase`,S={local:t("device.typeLocal"),ssh:t("device.typeSSH")},T={password:t("device.authPassword"),key:t("device.authKey"),agent:t("device.authAgent"),configRef:"SSH Config"},V=l=>s.jsxDEV("div",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:l},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:531,columnNumber:5},this),w=(l,u,C)=>s.jsxDEV("label",{className:"block text-xs font-medium text-foreground",htmlFor:l,children:[u,C&&s.jsxDEV("span",{className:"ml-0.5 text-destructive",children:"*"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:539,columnNumber:20},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:537,columnNumber:5},this);return s.jsxDEV(Ro,{open:!0,onOpenChange:l=>!l&&r(),children:s.jsxDEV(So,{"data-testid":"device-dialog",className:"w-full max-w-2xl",children:[s.jsxDEV(To,{children:[s.jsxDEV(Fo,{children:t(b?"device.editDevice":"device.addDevice")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:547,columnNumber:11},this),s.jsxDEV(Ao,{children:t(b?"device.editDeviceDescription":"device.addDeviceDescription")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:548,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:546,columnNumber:9},this),s.jsxDEV("form",{onSubmit:x,className:"space-y-4",children:[s.jsxDEV("div",{className:"-mr-2 max-h-[min(70vh,720px)] space-y-5 overflow-y-auto pr-2",children:[s.jsxDEV("section",{className:"space-y-2.5",children:[V(t("device.sectionBasic")),s.jsxDEV("div",{className:"grid gap-3 sm:grid-cols-2",children:[s.jsxDEV("div",{className:"space-y-1.5 sm:col-span-2",children:[w(j,t("device.name"),!0),s.jsxDEV(ce,{id:j,"data-testid":"device-name-input",type:"text",value:i.name,onChange:l=>p(u=>({...u,name:l.target.value})),placeholder:t("device.namePlaceholder"),required:!0},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:560,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:558,columnNumber:17},this),s.jsxDEV("div",{className:"space-y-1.5",children:[w(g,t("device.type")),s.jsxDEV(rs,{value:i.type,onValueChange:l=>{if(!l)return;const u=l;p(C=>({...C,type:u,authMode:u==="local"?"auto":C.authMode==="auto"?"password":C.authMode}))},disabled:b,children:[s.jsxDEV(is,{id:g,"data-testid":"device-type-select",className:"w-full",children:s.jsxDEV(cs,{placeholder:t("device.type"),children:l=>S[l]??""},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:596,columnNumber:23},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:591,columnNumber:21},this),s.jsxDEV(ls,{children:[s.jsxDEV(xe,{value:"local",children:t("device.typeLocal")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:601,columnNumber:23},this),s.jsxDEV(xe,{value:"ssh",children:t("device.typeSSH")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:602,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:600,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:573,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:571,columnNumber:17},this),s.jsxDEV("div",{className:"space-y-1.5",children:[w(R,t("device.session")),s.jsxDEV(ce,{id:R,"data-testid":"device-session-input",type:"text",value:i.session,onChange:l=>p(u=>({...u,session:l.target.value})),placeholder:t("device.sessionPlaceholder")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:609,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:607,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:557,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:555,columnNumber:13},this),D&&s.jsxDEV(s.Fragment,{children:[s.jsxDEV("section",{className:"space-y-2.5",children:[V(t("device.sectionConnection")),s.jsxDEV("div",{className:"grid gap-3 sm:grid-cols-3",children:[s.jsxDEV("div",{className:"space-y-1.5 sm:col-span-2",children:[w(M,t("device.host")),s.jsxDEV(ce,{id:M,type:"text",value:i.host,onChange:l=>p(u=>({...u,host:l.target.value})),placeholder:t("device.hostPlaceholder")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:628,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:626,columnNumber:21},this),s.jsxDEV("div",{className:"space-y-1.5",children:[w(y,t("device.port")),s.jsxDEV(ce,{id:y,type:"number",value:i.port,onChange:l=>p(u=>({...u,port:Number.parseInt(l.target.value||"22",10)})),min:1,max:65535},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:639,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:637,columnNumber:21},this),s.jsxDEV("div",{className:"space-y-1.5 sm:col-span-2",children:[w(d,t("device.username")),s.jsxDEV(ce,{id:d,type:"text",value:i.username,onChange:l=>p(u=>({...u,username:l.target.value})),placeholder:t("device.usernamePlaceholder")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:656,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:654,columnNumber:21},this),s.jsxDEV("div",{className:"space-y-1.5",children:[w(`${e}-device-ssh-config-ref`,"SSH Config"),s.jsxDEV(ce,{id:`${e}-device-ssh-config-ref`,type:"text",value:i.sshConfigRef,onChange:l=>p(u=>({...u,sshConfigRef:l.target.value})),placeholder:"~/.ssh/config"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:667,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:665,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:625,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:623,columnNumber:17},this),s.jsxDEV("section",{className:"space-y-2.5",children:[V(t("device.sectionAuth")),s.jsxDEV("div",{className:"space-y-3",children:[s.jsxDEV("div",{className:"space-y-1.5",children:[w($,t("device.authMode")),s.jsxDEV(rs,{value:i.authMode,onValueChange:l=>{l&&p(u=>({...u,authMode:l}))},children:[s.jsxDEV(is,{id:$,className:"w-full",children:s.jsxDEV(cs,{placeholder:t("device.authMode"),children:l=>T[l]??""},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:696,columnNumber:27},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:695,columnNumber:25},this),s.jsxDEV(ls,{children:[s.jsxDEV(xe,{value:"password",children:t("device.authPassword")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:701,columnNumber:27},this),s.jsxDEV(xe,{value:"key",children:t("device.authKey")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:702,columnNumber:27},this),s.jsxDEV(xe,{value:"agent",children:t("device.authAgent")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:703,columnNumber:27},this),s.jsxDEV(xe,{value:"configRef",children:"SSH Config"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:704,columnNumber:27},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:700,columnNumber:25},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:685,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:683,columnNumber:21},this),i.authMode==="password"&&s.jsxDEV("div",{className:"space-y-1.5",children:[w(f,t("device.password")),s.jsxDEV(ce,{id:f,type:"password",value:i.password,onChange:l=>p(u=>({...u,password:l.target.value}))},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:712,columnNumber:25},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:710,columnNumber:23},this),i.authMode==="key"&&s.jsxDEV(s.Fragment,{children:[s.jsxDEV("div",{className:"space-y-1.5",children:[w(n,t("device.privateKey")),s.jsxDEV(oa,{id:n,value:i.privateKey,onChange:l=>p(u=>({...u,privateKey:l.target.value})),className:"h-28 font-mono text-xs",placeholder:t("device.privateKeyPlaceholder")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:727,columnNumber:27},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:725,columnNumber:25},this),s.jsxDEV("div",{className:"space-y-1.5",children:[w(P,t("device.passphrase")),s.jsxDEV(ce,{id:P,type:"password",value:i.privateKeyPassphrase,onChange:l=>p(u=>({...u,privateKeyPassphrase:l.target.value}))},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:739,columnNumber:27},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:737,columnNumber:25},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:724,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:682,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:680,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:622,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:554,columnNumber:11},this),s.jsxDEV(Oo,{children:[s.jsxDEV(pe,{type:"button",variant:"outline",onClick:r,children:t("common.cancel")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:760,columnNumber:13},this),s.jsxDEV(pe,{type:"submit",variant:"default","data-testid":"device-dialog-save",disabled:c,children:t(c?"common.saving":"common.save")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:763,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:759,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:553,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:545,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:544,columnNumber:5},this)}function pa(){const{t:e}=be();return s.jsxDEV(s.Fragment,{children:e("sidebar.manageDevices")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:781,columnNumber:10},this)}function fa(){const{t:e}=be(),o=()=>{window.dispatchEvent(new CustomEvent("tmex:open-add-device"))};return s.jsxDEV(pe,{variant:"ghost",size:"icon-sm","data-testid":"devices-add",onClick:o,"aria-label":e("sidebar.addDevice"),title:e("sidebar.addDevice"),children:s.jsxDEV(ks,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:801,columnNumber:7},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/DevicesPage.tsx",lineNumber:793,columnNumber:5},this)}export{fa as PageActions,pa as PageTitle,ma as default};
17
+ //# sourceMappingURL=DevicesPage-FqU-Dxhu.js.map