tmex-cli 0.4.2 → 0.4.4

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 (31) hide show
  1. package/dist/runtime/server.js +491 -94
  2. package/package.json +1 -1
  3. package/resources/fe-dist/assets/DevicePage-Di11uzbS.js +26 -0
  4. package/resources/fe-dist/assets/{DevicePage-CKaPUo7L.js.map → DevicePage-Di11uzbS.js.map} +1 -1
  5. package/resources/fe-dist/assets/DevicesPage-dj7Pel6f.js +17 -0
  6. package/resources/fe-dist/assets/DevicesPage-dj7Pel6f.js.map +1 -0
  7. package/resources/fe-dist/assets/SettingsPage-DwpbDA_e.js +17 -0
  8. package/resources/fe-dist/assets/{SettingsPage-BfkOW0fc.js.map → SettingsPage-DwpbDA_e.js.map} +1 -1
  9. package/resources/fe-dist/assets/index-40zyi_9K.css +1 -0
  10. package/resources/fe-dist/assets/index-61hq_aNX.js +215 -0
  11. package/resources/fe-dist/assets/index-61hq_aNX.js.map +1 -0
  12. package/resources/fe-dist/assets/select-DI4HQZd4.js +17 -0
  13. package/resources/fe-dist/assets/{select-CNlE6MiW.js.map → select-DI4HQZd4.js.map} +1 -1
  14. package/resources/fe-dist/assets/switch-DsfDIUrU.js +12 -0
  15. package/resources/fe-dist/assets/{switch-CxkzOIL6.js.map → switch-DsfDIUrU.js.map} +1 -1
  16. package/resources/fe-dist/assets/useValueChanged-AVaPYvln.js +7 -0
  17. package/resources/fe-dist/assets/{useValueChanged-CO2U5MoL.js.map → useValueChanged-AVaPYvln.js.map} +1 -1
  18. package/resources/fe-dist/index.html +2 -2
  19. package/resources/gateway-drizzle/0003_glamorous_lizard.sql +1 -0
  20. package/resources/gateway-drizzle/meta/0003_snapshot.json +542 -0
  21. package/resources/gateway-drizzle/meta/_journal.json +7 -0
  22. package/resources/fe-dist/assets/DevicePage-CKaPUo7L.js +0 -26
  23. package/resources/fe-dist/assets/DevicesPage-FqU-Dxhu.js +0 -17
  24. package/resources/fe-dist/assets/DevicesPage-FqU-Dxhu.js.map +0 -1
  25. package/resources/fe-dist/assets/SettingsPage-BfkOW0fc.js +0 -17
  26. package/resources/fe-dist/assets/index-EgHfq93I.js +0 -449
  27. package/resources/fe-dist/assets/index-EgHfq93I.js.map +0 -1
  28. package/resources/fe-dist/assets/index-Ytlj3p_q.css +0 -1
  29. package/resources/fe-dist/assets/select-CNlE6MiW.js +0 -17
  30. package/resources/fe-dist/assets/switch-CxkzOIL6.js +0 -12
  31. package/resources/fe-dist/assets/useValueChanged-CO2U5MoL.js +0 -7
@@ -1,17 +0,0 @@
1
- import{c as Z,u as U,a as Ee,b as Pe,r as i,d as be,e as $,j as e,B as c,I as ve,t as je,f as o,i as Be}from"./index-EgHfq93I.js";import{u as f,C as M,a as R,b as q,c as A,I as g,S as Me,d as Re,e as qe,f as Ae,g as $e}from"./select-CNlE6MiW.js";import{T as De,A as Ie,a as _e,b as ze,c as Qe,d as Ke,e as Oe,f as We,g as He}from"./useValueChanged-CO2U5MoL.js";import{S as b,L as ke,a as Je}from"./switch-CxkzOIL6.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 Ge=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Xe=Z("rotate-ccw",Ge);/**
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 Ye=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],I=Z("save",Ye);/**
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 Ze=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Se=Z("shield",Ze),Y=["terminal_bell","terminal_notification","tmux_window_close","tmux_pane_close","device_tmux_missing","device_disconnect","session_created","session_closed"];async function d(t,u){try{return(await t.json()).error??u}catch{return u}}function is(){var pe,Ne,fe,xe;const{t}=U(),u=Ee(),{refreshSettings:h}=Pe(),[r,l]=i.useState("site"),p=be(s=>s.theme),S=be(s=>s.setTheme),v=p==="dark",[x,P]=i.useState("tmex"),[j,D]=i.useState(window.location.origin),[N,C]=i.useState("en_US"),[k,V]=i.useState(6),[y,T]=i.useState(3),[w,F]=i.useState(!0),[L,a]=i.useState(!0),[m,E]=i.useState(!0),[ee,se]=i.useState(!0),[te,ae]=i.useState(2),[re,ie]=i.useState(10),[we,Le]=i.useState(!1),[_,oe]=i.useState(""),[z,le]=i.useState(""),[Ue,Ve]=i.useState(null),[Q,ne]=i.useState(""),[K,me]=i.useState(""),[O,ce]=i.useState(Y),ye=s=>{const n=s?"dark":"light";S(n),document.documentElement.classList.toggle("dark",n==="dark")},W=$({queryKey:["site-settings"],queryFn:async()=>{const s=await fetch("/api/settings/site");if(!s.ok)throw new Error(await d(s,t("settings.loadFailed")));return await s.json()}}),H=$({queryKey:["telegram-bots"],queryFn:async()=>{const s=await fetch("/api/settings/telegram/bots");if(!s.ok)throw new Error(await d(s,t("telegram.loadBotsFailed")));return await s.json()}});i.useEffect(()=>{var n;const s=(n=W.data)==null?void 0:n.settings;s&&(P(s.siteName),D(s.siteUrl),C(s.language??"en_US"),V(s.bellThrottleSeconds),T(s.notificationThrottleSeconds??3),F(s.enableBrowserBellToast??!0),a(s.enableBrowserNotificationToast??!0),E(s.enableTelegramBellPush??!0),se(s.enableTelegramNotificationPush??!0),ae(s.sshReconnectMaxRetries),ie(s.sshReconnectDelaySeconds))},[(pe=W.data)==null?void 0:pe.settings]);const ue=f({mutationFn:async()=>{const n=await fetch("/api/settings/site",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({siteName:x,siteUrl:j,language:N,bellThrottleSeconds:k,notificationThrottleSeconds:y,enableBrowserBellToast:w,enableBrowserNotificationToast:L,enableTelegramBellPush:m,enableTelegramNotificationPush:ee,sshReconnectMaxRetries:te,sshReconnectDelaySeconds:re})});if(!n.ok)throw new Error(await d(n,t("settings.saveFailed")))},onSuccess:async()=>{var s,n;await Promise.all([u.invalidateQueries({queryKey:["site-settings"]}),h()]),o.success(t("settings.settingsSaved")),((n=(s=W.data)==null?void 0:s.settings)==null?void 0:n.language)!==N&&(Be.changeLanguage(N),Le(!0))},onError:s=>{o.error(s instanceof Error?s.message:t("common.error"))}}),J=f({mutationFn:async()=>{const s=await fetch("/api/settings/telegram/bots",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:_,token:z,enabled:!0,allowAuthRequests:!0})});if(!s.ok)throw new Error(await d(s,t("telegram.createFailed")))},onSuccess:async()=>{oe(""),le(""),await u.invalidateQueries({queryKey:["telegram-bots"]}),o.success(t("common.success"))},onError:s=>{o.error(s instanceof Error?s.message:t("common.error"))}}),de=((Ne=H.data)==null?void 0:Ne.bots)??[],G=$({queryKey:["webhooks"],queryFn:async()=>{const s=await fetch("/api/webhooks");if(!s.ok)throw new Error(await d(s,t("webhook.loadFailed")));return await s.json()}}),X=f({mutationFn:async()=>{const s=await fetch("/api/webhooks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:Q,secret:K,eventMask:O})});if(!s.ok)throw new Error(await d(s,t("webhook.createFailed")))},onSuccess:async()=>{ne(""),me(""),ce(Y),await u.invalidateQueries({queryKey:["webhooks"]}),o.success(t("common.success"))},onError:s=>{o.error(s instanceof Error?s.message:t("common.error"))}}),ge=f({mutationFn:async s=>{const n=await fetch(`/api/webhooks/${s}`,{method:"DELETE"});if(!n.ok)throw new Error(await d(n,t("webhook.deleteFailed")))},onSuccess:async()=>{await u.invalidateQueries({queryKey:["webhooks"]}),o.success(t("common.success"))},onError:s=>{o.error(s instanceof Error?s.message:t("common.error"))}}),he=((fe=G.data)==null?void 0:fe.webhooks)??[];return e.jsxDEV("div",{className:"mx-auto flex w-full max-w-6xl flex-col gap-4 p-3 pb-[calc(2rem+env(safe-area-inset-bottom))] sm:gap-6 sm:p-5","data-testid":"settings-page",children:[e.jsxDEV("div",{className:"flex flex-wrap gap-2",children:[e.jsxDEV(c,{type:"button",size:"sm",variant:r==="site"?"default":"outline","data-testid":"settings-tab-site",onClick:()=>l("site"),children:t("settings.siteSettings")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:305,columnNumber:9},this),e.jsxDEV(c,{type:"button",size:"sm",variant:r==="notifications"?"default":"outline","data-testid":"settings-tab-notifications",onClick:()=>l("notifications"),children:t("settings.notificationsTab")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:314,columnNumber:9},this),e.jsxDEV(c,{type:"button",size:"sm",variant:r==="telegram"?"default":"outline","data-testid":"settings-tab-telegram",onClick:()=>l("telegram"),children:t("telegram.title")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:323,columnNumber:9},this),e.jsxDEV(c,{type:"button",size:"sm",variant:r==="webhooks"?"default":"outline","data-testid":"settings-tab-webhooks",onClick:()=>l("webhooks"),children:t("webhook.title")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:332,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:304,columnNumber:7},this),r==="site"&&e.jsxDEV(M,{className:"border-0 ring-0",children:[e.jsxDEV(R,{children:e.jsxDEV(q,{children:t("settings.siteSettings")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:346,columnNumber:13},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:345,columnNumber:11},this),e.jsxDEV(A,{className:"space-y-6",children:[e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:"site-name-input",children:t("settings.siteName")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:350,columnNumber:15},this),e.jsxDEV(g,{id:"site-name-input",value:x,onChange:s=>P(s.target.value),placeholder:t("settings.siteNamePlaceholder"),className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:353,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:349,columnNumber:13},this),e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:"site-url-input",children:t("settings.siteUrl")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:363,columnNumber:15},this),e.jsxDEV(g,{id:"site-url-input",value:j,onChange:s=>D(s.target.value),placeholder:t("settings.siteUrlPlaceholder"),className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:366,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:362,columnNumber:13},this),e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:"language-select",children:t("settings.language")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:376,columnNumber:15},this),e.jsxDEV(Me,{value:N,onValueChange:s=>{s&&C(s)},children:[e.jsxDEV(Re,{id:"language-select","data-testid":"settings-language-select",className:"w-full min-h-10",children:e.jsxDEV(qe,{placeholder:t("settings.language"),children:((xe=ve.locales.find(s=>s.code===N))==null?void 0:xe.nativeName)??N},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:391,columnNumber:19},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:386,columnNumber:17},this),e.jsxDEV(Ae,{className:"max-h-[var(--tmex-viewport-height)]",children:ve.locales.map(s=>e.jsxDEV($e,{value:s.code,children:s.nativeName},s.code,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:397,columnNumber:21},this))},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:395,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:379,columnNumber:15},this),we&&e.jsxDEV("p",{className:"mt-1 text-xs text-primary","data-testid":"settings-refresh-notice",children:t("settings.refreshToApply")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:404,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:375,columnNumber:13},this),e.jsxDEV("div",{className:"space-y-3",children:e.jsxDEV("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsxDEV("div",{className:"min-w-0 pr-2",children:e.jsxDEV("div",{className:"text-sm font-medium",children:t("settings.theme")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:413,columnNumber:19},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:412,columnNumber:17},this),e.jsxDEV(b,{checked:v,onCheckedChange:s=>ye(!!s),"data-testid":"settings-theme-toggle"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:415,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:411,columnNumber:15},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:410,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:348,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:344,columnNumber:9},this),r==="notifications"&&e.jsxDEV(M,{className:"border-0 ring-0",children:[e.jsxDEV(R,{children:e.jsxDEV(q,{children:t("settings.notificationsTab")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:429,columnNumber:13},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:428,columnNumber:11},this),e.jsxDEV(A,{className:"space-y-6",children:[e.jsxDEV("div",{className:"space-y-3",children:[e.jsxDEV("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsxDEV("div",{className:"min-w-0 pr-2",children:e.jsxDEV("div",{className:"text-sm font-medium",children:t("settings.enableBrowserBellToast")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:435,columnNumber:19},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:434,columnNumber:17},this),e.jsxDEV(b,{checked:w,onCheckedChange:s=>F(!!s),"data-testid":"settings-enable-browser-bell-toast"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:437,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:433,columnNumber:15},this),e.jsxDEV("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsxDEV("div",{className:"min-w-0 pr-2",children:e.jsxDEV("div",{className:"text-sm font-medium",children:t("settings.enableTelegramBellPush")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:446,columnNumber:19},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:445,columnNumber:17},this),e.jsxDEV(b,{checked:m,onCheckedChange:s=>E(!!s),"data-testid":"settings-enable-telegram-bell-push"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:448,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:444,columnNumber:15},this),e.jsxDEV("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsxDEV("div",{className:"min-w-0 pr-2",children:e.jsxDEV("div",{className:"text-sm font-medium",children:t("settings.enableBrowserNotificationToast")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:457,columnNumber:19},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:456,columnNumber:17},this),e.jsxDEV(b,{checked:L,onCheckedChange:s=>a(!!s),"data-testid":"settings-enable-browser-notification-toast"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:461,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:455,columnNumber:15},this),e.jsxDEV("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsxDEV("div",{className:"min-w-0 pr-2",children:e.jsxDEV("div",{className:"text-sm font-medium",children:t("settings.enableTelegramNotificationPush")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:470,columnNumber:19},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:469,columnNumber:17},this),e.jsxDEV(b,{checked:ee,onCheckedChange:s=>se(!!s),"data-testid":"settings-enable-telegram-notification-push"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:474,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:468,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:432,columnNumber:13},this),e.jsxDEV("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-3",children:[e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:"bell-throttle-input",children:t("settings.bellThrottle")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:484,columnNumber:17},this),e.jsxDEV(g,{id:"bell-throttle-input",type:"number",value:k,min:0,max:300,onChange:s=>V(Number(s.target.value)),className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:487,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:483,columnNumber:15},this),e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:"notification-throttle-input",children:t("settings.notificationThrottle")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:499,columnNumber:17},this),e.jsxDEV(g,{id:"notification-throttle-input",type:"number",value:y,min:0,max:300,onChange:s=>T(Number(s.target.value)),className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:502,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:498,columnNumber:15},this),e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:"ssh-reconnect-retries-input",children:t("settings.sshReconnectMaxRetries")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:514,columnNumber:17},this),e.jsxDEV(g,{id:"ssh-reconnect-retries-input",type:"number",value:te,min:0,max:20,onChange:s=>ae(Number(s.target.value)),className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:517,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:513,columnNumber:15},this),e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:"ssh-reconnect-delay-input",children:t("settings.sshReconnectDelay")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:529,columnNumber:17},this),e.jsxDEV(g,{id:"ssh-reconnect-delay-input",type:"number",value:re,min:1,max:300,onChange:s=>ie(Number(s.target.value)),className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:532,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:528,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:482,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:431,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:427,columnNumber:9},this),r==="telegram"&&e.jsxDEV(M,{className:"border-0 ring-0",children:[e.jsxDEV(R,{children:e.jsxDEV(q,{children:t("telegram.title")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:550,columnNumber:13},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:549,columnNumber:11},this),e.jsxDEV(A,{className:"space-y-6",children:[e.jsxDEV("div",{className:"space-y-4",children:e.jsxDEV("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end",children:[e.jsxDEV("div",{className:"md:col-span-4 space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:"new-bot-name",children:t("telegram.botName")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:556,columnNumber:19},this),e.jsxDEV(g,{id:"new-bot-name",value:_,onChange:s=>oe(s.target.value),placeholder:t("telegram.botNamePlaceholder"),className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:559,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:555,columnNumber:17},this),e.jsxDEV("div",{className:"md:col-span-6 space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:"new-bot-token",children:t("telegram.botToken")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:569,columnNumber:19},this),e.jsxDEV(g,{id:"new-bot-token",type:"password",value:z,onChange:s=>le(s.target.value),placeholder:t("telegram.botTokenPlaceholder"),className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:572,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:568,columnNumber:17},this),e.jsxDEV("div",{className:"md:col-span-2",children:e.jsxDEV(c,{variant:"default",className:"w-full md:w-auto","data-testid":"telegram-add-bot",onClick:()=>J.mutate(),disabled:J.isPending||!_.trim()||!z.trim(),children:[J.isPending?e.jsxDEV(ke,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:593,columnNumber:23},this):e.jsxDEV(I,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:595,columnNumber:23},this),t("telegram.addBot")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:583,columnNumber:19},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:582,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:554,columnNumber:15},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:553,columnNumber:13},this),e.jsxDEV("div",{className:"space-y-3",children:[H.isLoading&&e.jsxDEV("div",{className:"text-sm text-muted-foreground",children:t("common.loading")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:605,columnNumber:17},this),!H.isLoading&&de.length===0&&e.jsxDEV("div",{className:"text-sm text-muted-foreground",children:t("telegram.addBot")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:609,columnNumber:17},this),de.map(s=>e.jsxDEV(es,{bot:s,expanded:Ue===s.id,onToggleExpand:()=>{Ve(n=>n===s.id?null:s.id)}},s.id,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:613,columnNumber:17},this))]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:603,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:552,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:548,columnNumber:9},this),r==="webhooks"&&e.jsxDEV(M,{className:"border-0 ring-0",children:[e.jsxDEV(R,{children:e.jsxDEV(q,{children:t("webhook.title")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:630,columnNumber:13},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:629,columnNumber:11},this),e.jsxDEV(A,{className:"space-y-6",children:[e.jsxDEV("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end",children:[e.jsxDEV("div",{className:"md:col-span-6 space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:"webhook-url-input",children:t("webhook.url")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:635,columnNumber:17},this),e.jsxDEV(g,{id:"webhook-url-input","data-testid":"webhook-url-input",value:Q,onChange:s=>ne(s.target.value),placeholder:"https://example.com/webhook",className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:638,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:634,columnNumber:15},this),e.jsxDEV("div",{className:"md:col-span-4 space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:"webhook-secret-input",children:t("webhook.secret")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:649,columnNumber:17},this),e.jsxDEV(g,{id:"webhook-secret-input","data-testid":"webhook-secret-input",value:K,onChange:s=>me(s.target.value),placeholder:t("webhook.secretPlaceholder"),className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:652,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:648,columnNumber:15},this),e.jsxDEV("div",{className:"md:col-span-2",children:e.jsxDEV(c,{variant:"default",className:"w-full md:w-auto","data-testid":"webhook-add",onClick:()=>X.mutate(),disabled:X.isPending||!Q.trim()||!K.trim()||O.length===0,children:[X.isPending?e.jsxDEV(ke,{className:"h-4 w-4 animate-spin"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:676,columnNumber:21},this):e.jsxDEV(I,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:678,columnNumber:21},this),t("webhook.add")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:663,columnNumber:17},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:662,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:633,columnNumber:13},this),e.jsxDEV("div",{className:"space-y-3 rounded-lg border border-border bg-card px-4 py-3",children:[e.jsxDEV("div",{className:"text-sm font-medium",children:t("webhook.eventMask")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:686,columnNumber:15},this),e.jsxDEV("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:Y.map(s=>{const n=O.includes(s);return e.jsxDEV("div",{className:"flex min-h-10 items-center justify-between gap-4 rounded-lg border border-border bg-background px-3 py-2",children:[e.jsxDEV("div",{className:"min-w-0 pr-2 text-sm font-medium",children:t(`notification.eventType.${s}`)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:695,columnNumber:23},this),e.jsxDEV(b,{checked:n,"data-testid":`webhook-event-${s}`,onCheckedChange:Te=>{ce(B=>Te?B.includes(s)?B:[...B,s]:B.filter(Fe=>Fe!==s))}},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:698,columnNumber:23},this)]},s,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:691,columnNumber:21},this)})},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:687,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:685,columnNumber:13},this),e.jsxDEV("div",{className:"space-y-2",children:[G.isLoading&&e.jsxDEV("div",{className:"text-sm text-muted-foreground",children:t("common.loading")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:718,columnNumber:17},this),!G.isLoading&&he.length===0&&e.jsxDEV("div",{className:"text-sm text-muted-foreground",children:t("webhook.empty")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:722,columnNumber:17},this),he.map(s=>e.jsxDEV("div",{"data-testid":"webhook-item","data-webhook-url":s.url,className:"flex items-center justify-between gap-3 rounded-lg border border-border bg-card px-4 py-2.5",children:[e.jsxDEV("div",{className:"min-w-0",children:[e.jsxDEV("div",{className:"truncate text-sm font-medium",children:s.url},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:733,columnNumber:21},this),e.jsxDEV("div",{className:"text-xs text-muted-foreground",children:new Date(s.createdAt).toLocaleString(je(N))},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:734,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:732,columnNumber:19},this),e.jsxDEV(c,{variant:"ghost",size:"icon-sm","data-testid":"webhook-delete",onClick:()=>ge.mutate(s.id),disabled:ge.isPending,"aria-label":t("common.delete"),title:t("common.delete"),children:e.jsxDEV(De,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:747,columnNumber:21},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:738,columnNumber:19},this)]},s.id,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:726,columnNumber:17},this))]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:716,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:632,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:628,columnNumber:9},this),(r==="site"||r==="notifications")&&e.jsxDEV("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-end",children:e.jsxDEV(c,{variant:"default","data-testid":"settings-save",onClick:()=>ue.mutate(),disabled:ue.isPending,className:"w-full sm:w-auto",children:[e.jsxDEV(I,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:765,columnNumber:13},this),t("common.save")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:758,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:757,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:300,columnNumber:5},this)}function es({bot:t,expanded:u,onToggleExpand:h}){var L;const{t:r}=U(),l=Ee(),[p,S]=i.useState(t.name),[v,x]=i.useState(""),[P,j]=i.useState(t.enabled),[D,N]=i.useState(t.allowAuthRequests);i.useEffect(()=>{S(t.name),j(t.enabled),N(t.allowAuthRequests)},[t.allowAuthRequests,t.enabled,t.name]);const C=$({queryKey:["telegram-bot-chats",t.id],enabled:u,queryFn:async()=>{const a=await fetch(`/api/settings/telegram/bots/${t.id}/chats`);if(!a.ok)throw new Error(await d(a,r("telegram.loadChatsFailed")));return await a.json()}}),k=i.useMemo(()=>{var m;const a=((m=C.data)==null?void 0:m.chats)??[];return{pending:a.filter(E=>E.status==="pending"),authorized:a.filter(E=>E.status==="authorized")}},[(L=C.data)==null?void 0:L.chats]),V=f({mutationFn:async()=>{const a={name:p,enabled:P,allowAuthRequests:D};v.trim()&&(a.token=v.trim());const m=await fetch(`/api/settings/telegram/bots/${t.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!m.ok)throw new Error(await d(m,r("telegram.updateFailed")))},onSuccess:async()=>{x(""),await l.invalidateQueries({queryKey:["telegram-bots"]}),o.success(r("common.success"))},onError:a=>{o.error(a instanceof Error?a.message:r("common.error"))}}),y=f({mutationFn:async()=>{const a=await fetch(`/api/settings/telegram/bots/${t.id}`,{method:"DELETE"});if(!a.ok)throw new Error(await d(a,r("telegram.deleteFailed")))},onSuccess:async()=>{await l.invalidateQueries({queryKey:["telegram-bots"]}),o.success(r("common.success"))},onError:a=>{o.error(a instanceof Error?a.message:r("common.error"))}}),T=f({mutationFn:async a=>{const m=await fetch(`/api/settings/telegram/bots/${t.id}/chats/${encodeURIComponent(a)}/approve`,{method:"POST"});if(!m.ok)throw new Error(await d(m,r("telegram.approveFailed")))},onSuccess:async()=>{await Promise.all([l.invalidateQueries({queryKey:["telegram-bots"]}),l.invalidateQueries({queryKey:["telegram-bot-chats",t.id]})]),o.success(r("common.success"))},onError:a=>{o.error(a instanceof Error?a.message:r("common.error"))}}),w=f({mutationFn:async a=>{const m=await fetch(`/api/settings/telegram/bots/${t.id}/chats/${encodeURIComponent(a)}`,{method:"DELETE"});if(!m.ok)throw new Error(await d(m,r("telegram.removeFailed")))},onSuccess:async()=>{await Promise.all([l.invalidateQueries({queryKey:["telegram-bots"]}),l.invalidateQueries({queryKey:["telegram-bot-chats",t.id]})]),o.success(r("common.success"))},onError:a=>{o.error(a instanceof Error?a.message:r("common.error"))}}),F=f({mutationFn:async a=>{const m=await fetch(`/api/settings/telegram/bots/${t.id}/chats/${encodeURIComponent(a)}/test`,{method:"POST"});if(!m.ok)throw new Error(await d(m,r("telegram.testMessageFailed")))},onSuccess:()=>{o.success(r("common.success"))},onError:a=>{o.error(a instanceof Error?a.message:r("common.error"))}});return e.jsxDEV("div",{className:"space-y-4 rounded-md border-0 bg-card p-4","data-testid":`telegram-bot-card-${t.id}`,"data-bot-name":t.name,children:[e.jsxDEV("div",{className:"flex items-center justify-between gap-3",children:[e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"font-medium",children:t.name},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:943,columnNumber:11},this),e.jsxDEV("div",{className:"text-xs text-muted-foreground",children:[t.authorizedCount," / ",t.pendingCount]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:944,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:942,columnNumber:9},this),e.jsxDEV(c,{variant:"ghost","data-testid":`telegram-bot-toggle-${t.id}`,onClick:h,children:r(u?"common.collapse":"common.expand")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:948,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:941,columnNumber:7},this),e.jsxDEV("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-12 md:items-end",children:[e.jsxDEV("div",{className:"md:col-span-3 space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:`bot-name-${t.id}`,children:r("telegram.botName")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:959,columnNumber:11},this),e.jsxDEV(g,{id:`bot-name-${t.id}`,value:p,onChange:a=>S(a.target.value),className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:962,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:958,columnNumber:9},this),e.jsxDEV("div",{className:"md:col-span-4 space-y-2",children:[e.jsxDEV("label",{className:"block text-sm font-medium",htmlFor:`bot-token-${t.id}`,children:r("telegram.botToken")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:970,columnNumber:11},this),e.jsxDEV(g,{id:`bot-token-${t.id}`,type:"password",value:v,onChange:a=>x(a.target.value),placeholder:r("telegram.tokenPlaceholder"),className:"min-h-10"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:973,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:969,columnNumber:9},this),e.jsxDEV("div",{className:"md:col-span-2",children:e.jsxDEV("div",{className:"flex min-h-10 items-center justify-between gap-3 rounded-lg border border-border bg-background px-3 py-2.5",children:[e.jsxDEV("span",{className:"text-sm font-medium",children:r("common.enabled")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:984,columnNumber:13},this),e.jsxDEV(b,{checked:P,onCheckedChange:a=>j(!!a)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:985,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:983,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:982,columnNumber:9},this),e.jsxDEV("div",{className:"md:col-span-3",children:e.jsxDEV("div",{className:"flex min-h-10 items-center justify-between gap-3 rounded-lg border border-border bg-background px-3 py-2.5",children:[e.jsxDEV("span",{className:"text-sm font-medium",children:r("telegram.allowAuthRequests")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:990,columnNumber:13},this),e.jsxDEV(b,{checked:D,onCheckedChange:a=>N(!!a)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:991,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:989,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:988,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:957,columnNumber:7},this),e.jsxDEV("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-end",children:[e.jsxDEV(c,{variant:"destructive","data-testid":`telegram-bot-delete-${t.id}`,onClick:()=>y.mutate(),className:"w-full sm:w-auto",children:[e.jsxDEV(De,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1006,columnNumber:11},this),r("telegram.deleteBot")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1e3,columnNumber:9},this),e.jsxDEV(c,{variant:"default","data-testid":`telegram-bot-save-${t.id}`,onClick:()=>V.mutate(),className:"w-full sm:w-auto",children:[e.jsxDEV(I,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1015,columnNumber:11},this),r("common.save")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1009,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:999,columnNumber:7},this),u&&e.jsxDEV("div",{className:"grid grid-cols-1 gap-4 border-t border-border pt-4 lg:grid-cols-2",children:[e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("h3",{className:"text-sm font-semibold flex items-center gap-1",children:[e.jsxDEV(Se,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1024,columnNumber:15},this),r("telegram.pendingChats")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1023,columnNumber:13},this),k.pending.length===0&&e.jsxDEV("div",{className:"text-xs text-muted-foreground",children:"-"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1027,columnNumber:51},this),k.pending.map(a=>e.jsxDEV(Ce,{chat:a,pending:!0,onApprove:()=>T.mutate(a.chatId),onDelete:()=>w.mutate(a.chatId)},`${a.botId}-${a.chatId}`,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1029,columnNumber:15},this))]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1022,columnNumber:11},this),e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV("h3",{className:"text-sm font-semibold flex items-center gap-1",children:[e.jsxDEV(Se,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1041,columnNumber:15},this),r("telegram.chats")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1040,columnNumber:13},this),k.authorized.length===0&&e.jsxDEV("div",{className:"text-xs text-muted-foreground",children:"-"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1044,columnNumber:54},this),k.authorized.map(a=>e.jsxDEV(Ce,{chat:a,pending:!1,onTest:()=>F.mutate(a.chatId),onDelete:()=>w.mutate(a.chatId)},`${a.botId}-${a.chatId}`,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1046,columnNumber:15},this))]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1039,columnNumber:11},this),C.isLoading&&e.jsxDEV("div",{className:"lg:col-span-2 text-xs text-muted-foreground",children:r("common.loading")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1057,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1021,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:936,columnNumber:5},this)}function Ce({chat:t,pending:u,onApprove:h,onDelete:r,onTest:l}){const{t:p}=U(),S=Pe(v=>{var x;return((x=v.settings)==null?void 0:x.language)??"en_US"});return e.jsxDEV("div",{className:"space-y-2 rounded border-0 bg-background p-3",children:[e.jsxDEV("div",{className:"text-sm font-medium truncate",title:t.displayName,children:t.displayName},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1080,columnNumber:7},this),e.jsxDEV("div",{className:"text-xs text-muted-foreground",children:[p("telegram.chatId"),":",t.chatId]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1083,columnNumber:7},this),e.jsxDEV("div",{className:"text-xs text-muted-foreground",children:new Date(t.appliedAt).toLocaleString(je(S))},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1086,columnNumber:7},this),e.jsxDEV("div",{className:"flex items-center justify-end gap-2 pt-1",children:u?e.jsxDEV(e.Fragment,{children:[e.jsxDEV(c,{variant:"outline",size:"sm",onClick:r,children:p("telegram.reject")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1093,columnNumber:13},this),e.jsxDEV(c,{variant:"default",size:"sm",onClick:h,children:p("telegram.authorize")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1096,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1092,columnNumber:11},this):e.jsxDEV(e.Fragment,{children:[e.jsxDEV(c,{variant:"secondary",size:"sm",onClick:l,children:[e.jsxDEV(Je,{className:"h-3.5 w-3.5"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1103,columnNumber:15},this),p("telegram.sendTestMessage")]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1102,columnNumber:13},this),e.jsxDEV(c,{variant:"destructive",size:"sm",onClick:r,children:p("common.delete")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1106,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1101,columnNumber:11},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1090,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1079,columnNumber:5},this)}function os(){const{t}=U();return e.jsxDEV(e.Fragment,{children:t("sidebar.settings")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1119,columnNumber:10},this)}function ls(){const{t}=U(),[u,h]=i.useState(!1),r=f({mutationFn:async()=>{const l=await fetch("/api/settings/restart",{method:"POST"});if(!l.ok)throw new Error(await d(l,t("settings.restartFailed")))},onSuccess:()=>{o.success(t("settings.restartScheduled"))},onError:l=>{o.error(l instanceof Error?l.message:t("common.error"))}});return e.jsxDEV(e.Fragment,{children:[e.jsxDEV(c,{variant:"ghost",size:"icon-sm",onClick:()=>h(!0),disabled:r.isPending,"aria-label":t("settings.restartGateway"),title:t("settings.restartGateway"),className:"text-destructive hover:text-destructive hover:bg-destructive/10",children:e.jsxDEV(Xe,{className:"h-4 w-4"},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1153,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1144,columnNumber:7},this),e.jsxDEV(Ie,{open:u,onOpenChange:h,children:e.jsxDEV(_e,{children:[e.jsxDEV(ze,{children:[e.jsxDEV(Qe,{children:t("settings.restartGateway")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1159,columnNumber:13},this),e.jsxDEV(Ke,{children:t("settings.restartConfirm")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1160,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1158,columnNumber:11},this),e.jsxDEV(Oe,{children:[e.jsxDEV(We,{onClick:()=>h(!1),children:t("common.cancel")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1163,columnNumber:13},this),e.jsxDEV(He,{variant:"destructive",onClick:()=>{r.mutate(),h(!1)},children:t("common.confirm")},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1166,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1162,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1157,columnNumber:9},this)},void 0,!1,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1156,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/krhougs/LocalCodes/tmex/apps/fe/src/pages/SettingsPage.tsx",lineNumber:1143,columnNumber:5},this)}export{ls as PageActions,os as PageTitle,is as default};
17
- //# sourceMappingURL=SettingsPage-BfkOW0fc.js.map