local-operator-ui 0.36.6 → 0.36.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/main/index.js +183 -7
- package/out/renderer/assets/{_basePickBy-B0B_HryP.js → _basePickBy-Cp4-k2Ra.js} +1 -1
- package/out/renderer/assets/{_baseUniq-BC6WfZEZ.js → _baseUniq-SW_cXbV_.js} +1 -1
- package/out/renderer/assets/{agent-details-page-CIKeI8ax.js → agent-details-page-N3zxLs5x.js} +1 -1
- package/out/renderer/assets/{agent-hub-page-NKE7fJK1.js → agent-hub-page-BlZWarvE.js} +2 -2
- package/out/renderer/assets/{agents-page-BIRTx9kB.js → agents-page-C7c-PG8v.js} +3 -3
- package/out/renderer/assets/{arc-DyL52bz_.js → arc-CH4PDipB.js} +1 -1
- package/out/renderer/assets/{architectureDiagram-IEHRJDOE-OQsI3Nan.js → architectureDiagram-IEHRJDOE-YJo8Ggxb.js} +1 -1
- package/out/renderer/assets/{arrow-up-BpuHf_sB.js → arrow-up-BB9CxXVA.js} +1 -1
- package/out/renderer/assets/{blockDiagram-JOT3LUYC-CS1fz58m.js → blockDiagram-JOT3LUYC-rOqQnp0E.js} +1 -1
- package/out/renderer/assets/{book-open-BiI_r4jM.js → book-open-DkVxCJ61.js} +1 -1
- package/out/renderer/assets/browser-page-Dr5j9bQE.js +1 -0
- package/out/renderer/assets/{browser-webauthn-prompt-ja8N1ehh.js → browser-webauthn-prompt-Dna4BiM9.js} +1 -1
- package/out/renderer/assets/{building-2-Dar5h3t0.js → building-2-CavXM_-r.js} +1 -1
- package/out/renderer/assets/{c4Diagram-VJAJSXHY-C6RZIvJP.js → c4Diagram-VJAJSXHY-DEPLadlT.js} +1 -1
- package/out/renderer/assets/channel-BUsgjri2.js +1 -0
- package/out/renderer/assets/{chunk-4BMEZGHF-Cpn-cLXo.js → chunk-4BMEZGHF-klJwtJH4.js} +1 -1
- package/out/renderer/assets/{chunk-A2AXSNBT-S8Vffyme.js → chunk-A2AXSNBT-DRT8OSGB.js} +1 -1
- package/out/renderer/assets/{chunk-AEK57VVT-K1GcoFUy.js → chunk-AEK57VVT-kqK_zO-a.js} +1 -1
- package/out/renderer/assets/{chunk-D6G4REZN-CyqTe7_6.js → chunk-D6G4REZN-CJZaq5OR.js} +1 -1
- package/out/renderer/assets/{chunk-RZ5BOZE2-QWUc1JND.js → chunk-RZ5BOZE2-D4tpPnZf.js} +1 -1
- package/out/renderer/assets/{chunk-XZIHB7SX-v3MFY8Qn.js → chunk-XZIHB7SX-D4Kppo6Q.js} +1 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-YCOFP_Sl.js +1 -0
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-YCOFP_Sl.js +1 -0
- package/out/renderer/assets/clone-DVoefRFN.js +1 -0
- package/out/renderer/assets/{console-mirror-BfM9Le8Y.js → console-mirror-BOyWikJU.js} +1 -1
- package/out/renderer/assets/{consoleCapture-mqMk3W7y.js → consoleCapture-Ctr4ZgwO.js} +1 -1
- package/out/renderer/assets/{conversation-input-sync-BD8ZrQRq.js → conversation-input-sync-DdFRR8Sk.js} +276 -276
- package/out/renderer/assets/{dagre-OKDRZEBW-D1-V7-Tj.js → dagre-OKDRZEBW-ZzTMDgQF.js} +1 -1
- package/out/renderer/assets/{diagram-SSKATNLV-D7jQdHV1.js → diagram-SSKATNLV-D-OEK7di.js} +1 -1
- package/out/renderer/assets/{diagram-VNBRO52H-DB_YZ9C8.js → diagram-VNBRO52H-CM6lMapK.js} +1 -1
- package/out/renderer/assets/{erDiagram-Q7BY3M3F-Blv-3W3v.js → erDiagram-Q7BY3M3F-2khnybxo.js} +1 -1
- package/out/renderer/assets/{error-boundary-Bpk2r3Ma.js → error-boundary-B2fmvLyi.js} +1 -1
- package/out/renderer/assets/{flowDiagram-4HSFHLVR-BTShSZPF.js → flowDiagram-4HSFHLVR-PmXhc4g8.js} +1 -1
- package/out/renderer/assets/{ganttDiagram-APWFNJXF-_SXfULy-.js → ganttDiagram-APWFNJXF-DXqSjI8D.js} +1 -1
- package/out/renderer/assets/{gitGraphDiagram-7IBYFJ6S-9E7LTj7S.js → gitGraphDiagram-7IBYFJ6S-CE0xYGI6.js} +1 -1
- package/out/renderer/assets/{graph-BhaFec28.js → graph-ydqZFY1l.js} +1 -1
- package/out/renderer/assets/{hash-CrDnkZ9w.js → hash-Dc3JifaZ.js} +1 -1
- package/out/renderer/assets/{index-Shz25Z8Y.js → index-BHi1lUGF.js} +1 -1
- package/out/renderer/assets/{index-ClCIwVJj.js → index-BoPP-Dip.js} +1 -1
- package/out/renderer/assets/{index-BuM037wD.js → index-DY17TKlm.js} +179 -179
- package/out/renderer/assets/index-Doo51Mbi.js +57 -0
- package/out/renderer/assets/{index-BgwxrPpP.css → index-JreDTE2U.css} +1 -1
- package/out/renderer/assets/{infoDiagram-PH2N3AL5-CCsEuNFb.js → infoDiagram-PH2N3AL5-DOZ3-Qro.js} +1 -1
- package/out/renderer/assets/{installer-CJRb2tgb.js → installer-DWToCmOf.js} +1 -1
- package/out/renderer/assets/{journeyDiagram-U35MCT3I-LXUs-hfi.js → journeyDiagram-U35MCT3I-DWis6Sd2.js} +1 -1
- package/out/renderer/assets/{kanban-definition-NDS4AKOZ-GLYV-Ku1.js → kanban-definition-NDS4AKOZ-B9e7wrf9.js} +1 -1
- package/out/renderer/assets/{layout-erSNWSH-.js → layout-CAcs3Q5o.js} +1 -1
- package/out/renderer/assets/{legacy-agents-page-CtFhdgCi.js → legacy-agents-page-DrGkO870.js} +6 -6
- package/out/renderer/assets/{library-page-C6-aUarQ.js → library-page-J-oYtewu.js} +3 -3
- package/out/renderer/assets/{mermaid.core-BGROKqtx.js → mermaid.core-BKDqOsvz.js} +5 -5
- package/out/renderer/assets/mesh-page-CHZ2qVtJ.js +1 -0
- package/out/renderer/assets/{mindmap-definition-ALO5MXBD-C1KlK3C5.js → mindmap-definition-ALO5MXBD-B8ubJP7r.js} +1 -1
- package/out/renderer/assets/{mini-Dnf6EgXd.js → mini-CSnAsFlT.js} +1 -1
- package/out/renderer/assets/{notebook-pen-CTurnI5u.js → notebook-pen-eF7NwmC0.js} +1 -1
- package/out/renderer/assets/{org-access-DTXfQgW5.js → org-access-CJDIOfTA.js} +1 -1
- package/out/renderer/assets/{org-surface-gate-CDaexKo1.js → org-surface-gate-BFLSYyz1.js} +1 -1
- package/out/renderer/assets/{page-header-Does21Km.js → page-header-BMDtYfV0.js} +1 -1
- package/out/renderer/assets/{pieDiagram-IB7DONF6-DaaMC8-4.js → pieDiagram-IB7DONF6-C4Lho4yQ.js} +1 -1
- package/out/renderer/assets/{projects-page-Bw0c4vc_.js → projects-page-CNUJUnDM.js} +7 -7
- package/out/renderer/assets/{publication-validation-MxGQJEQj.js → publication-validation-5oR6aluM.js} +1 -1
- package/out/renderer/assets/{quadrantDiagram-7GDLP6J5-BVFqf3uw.js → quadrantDiagram-7GDLP6J5-DauXMmcp.js} +1 -1
- package/out/renderer/assets/{radar-MK3ICKWK-BbBjm1y3.js → radar-MK3ICKWK-_FJ6NjKi.js} +1 -1
- package/out/renderer/assets/{radient-auth-buttons-BeDvFHK7.js → radient-auth-buttons-B4LrTMwy.js} +1 -1
- package/out/renderer/assets/{requirementDiagram-KVF5MWMF-luASPwgm.js → requirementDiagram-KVF5MWMF-BBMnxRwM.js} +1 -1
- package/out/renderer/assets/{sankeyDiagram-QLVOVGJD-DJ-Xk1mH.js → sankeyDiagram-QLVOVGJD-ZAgJNulV.js} +1 -1
- package/out/renderer/assets/{schedules-page-D7XfeTME.js → schedules-page-BDxSAX-g.js} +1 -1
- package/out/renderer/assets/{sequenceDiagram-X6HHIX6F-C9vBEHGW.js → sequenceDiagram-X6HHIX6F-ixhBbax-.js} +1 -1
- package/out/renderer/assets/{settings-page-BubJ0gmV.js → settings-page-DpSl6AZf.js} +11 -11
- package/out/renderer/assets/{smartart-DCxfy3Tv.js → smartart-CsYIjueA.js} +1 -1
- package/out/renderer/assets/{stateDiagram-DGXRK772-DCbA594R.js → stateDiagram-DGXRK772-Cyo1D1sd.js} +1 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-BylkQbLa.js +1 -0
- package/out/renderer/assets/{tags-input-chips-BSg2kzIn.js → tags-input-chips-DeSDZmGf.js} +1 -1
- package/out/renderer/assets/{team-bridge-page-DshgiIxJ.js → team-bridge-page-BnsNoiEd.js} +1 -1
- package/out/renderer/assets/{timeline-definition-BDJGKUSR-AlhVX480.js → timeline-definition-BDJGKUSR-dHKNC0_-.js} +1 -1
- package/out/renderer/assets/{ui-preferences-store-CAt3Nng3.js → ui-preferences-store-CFbBU1td.js} +1 -1
- package/out/renderer/assets/{use-download-agent-mutation-DmirSifx.js → use-download-agent-mutation-Du8Okjj5.js} +3 -3
- package/out/renderer/assets/{use-memberships-query-fzcoT-92.js → use-memberships-query-C0ico4nv.js} +1 -1
- package/out/renderer/assets/{use-session-snapshot-DQQ3D8W6.js → use-session-snapshot-hoogT7-L.js} +1 -1
- package/out/renderer/assets/{xychartDiagram-VJFVF3MP-djayCUFZ.js → xychartDiagram-VJFVF3MP-y9FbutsK.js} +1 -1
- package/out/renderer/console-capture.html +5 -5
- package/out/renderer/index.html +7 -7
- package/out/renderer/installer.html +4 -4
- package/out/renderer/mini.html +7 -7
- package/package.json +2 -2
- package/out/renderer/assets/browser-page-CvUjgYjV.js +0 -1
- package/out/renderer/assets/channel-Ca9itbEI.js +0 -1
- package/out/renderer/assets/classDiagram-GIVACNV2-BDSTmyjZ.js +0 -1
- package/out/renderer/assets/classDiagram-v2-COTLJTTW-BDSTmyjZ.js +0 -1
- package/out/renderer/assets/clone-OIhREtCX.js +0 -1
- package/out/renderer/assets/index-ByYW6G08.js +0 -57
- package/out/renderer/assets/mesh-page-CzSDWDfu.js +0 -1
- package/out/renderer/assets/stateDiagram-v2-YXO3MK2T-P9yjg6o0.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as g,j as t,t as a,c as L}from"./index-ByYW6G08.js";import{aW as qe,aX as Ne,aY as st,aZ as se,a_ as nt,a$ as at,b0 as it,b1 as me,b2 as Fe,b3 as Ye,b4 as Be,a as rt,b5 as _e,au as ke,b6 as lt}from"./conversation-input-sync-BD8ZrQRq.js";import{P as ot}from"./page-header-Does21Km.js";import{u as H,a as G,A as fe,H as ct,t as le,h as dt,i as ut,k as mt,l as ht,p as Me,q as De,x as Ee}from"./error-boundary-Bpk2r3Ma.js";import{G as ue,H as pt,I as xt,J as ft,K as gt,L as vt,M as bt,N as _t,O as kt,Q as wt,R as jt,U as yt,V as Nt,W as It,X as Ie,Y as Ct,Z as St,_ as Ce,$ as Ue,a0 as Ge,a1 as Mt,a2 as xe,a3 as we,a4 as Dt,a5 as Et,a6 as ge,a7 as Ae,a8 as At,a9 as Rt,aa as je,ab as Lt,ac as Ke,ad as ve,ae as Pt,af as Ve,ag as Tt,ah as Ot,ai as $t,aj as zt,ak as Ht,al as Wt,am as qt,an as Ft,ao as Yt,ap as Bt,aq as Ut,ar as Gt,as as Kt,at as Vt,au as Xt,av as Zt,aw as Jt,ax as Qt,ay as es,az as de,aA as ts}from"./index-BuM037wD.js";import"./ui-preferences-store-CAt3Nng3.js";import"./console-mirror-BfM9Le8Y.js";function ss(e){return e==="failed"?"text-danger":ue(e)?"text-ink-muted":"text-ink-dim"}function ns(e){return e==="failed"?a("ui.mesh.mesh_approvals_tray.abandon"):a("ui.mesh.mesh_approvals_tray.stop")}function as(e){switch(e){case"requested":return[{term:a("ui.mesh.mesh_approvals_tray.signing"),text:a("ui.mesh.mesh_approvals_tray.approving_signs_with_this_machine_s_operator")}];case"approved":return[{term:a("ui.mesh.mesh_approvals_tray.next"),text:a("ui.mesh.mesh_approvals_tray.an_agent_runs_the_install_and_connect")},{term:a("ui.mesh.mesh_approvals_tray.stop"),text:a("ui.mesh.mesh_approvals_tray.stopping_now_denies_the_request_nothing_has")}];case"connecting":return[{term:a("ui.mesh.mesh_approvals_tray.stop"),text:a("ui.mesh.mesh_approvals_tray.stopping_now_denies_the_request_the_runner")}];case"failed":return[{term:a("ui.mesh.mesh_approvals_tray.after_a_stop"),text:a("ui.mesh.mesh_approvals_tray.the_runner_stopped_before_it_finished_abandoning")}];default:return[]}}const is=({rows:e,error:s,pending:r,refusal:i,onDecide:c,onRetry:u,nowSeconds:f,networkNames:l})=>{H();const v=r!==null,_=g.useMemo(()=>e.filter(h=>ue(h.state)),[e]),y=g.useMemo(()=>e.filter(h=>!ue(h.state)),[e]),[I,C]=g.useState(!1),o=g.useRef(null),d=g.useRef(null),p=g.useRef(null),N=(h,E)=>{E==="deny"&&_.some(S=>S.approvalId===h&&S.kind==="credential")&&(p.current={id:h,origin:document.activeElement,sawPending:!1}),c(h,E)};g.useLayoutEffect(()=>{const h=p.current;if(!h)return;if(r?.approvalId===h.id&&(h.sawPending=!0),i?.approvalId===h.id){p.current=null;return}const E=e.find(D=>D.approvalId===h.id);if(E?.state==="requested"){!r&&h.sawPending&&(p.current=null);return}if(E?.state==="denied"&&r||(p.current=null,E?.state!=="denied"||document.activeElement!==document.body&&document.activeElement!==h.origin))return;(_.length?o.current?.querySelector('[data-tour-tag="mesh-approval-controls"] button:not(:disabled)'):d.current?.querySelector("button"))?.focus({preventScroll:!0})},[e,r,i,_.length]);const k=y.some(h=>h.state==="failed"),x=y.filter(h=>h.state==="failed").length,M=i!==null&&e.some(h=>h.approvalId===i.approvalId&&(ue(h.state)||I));return _.length===0&&y.length===0&&!s&&!i?null:t.jsxs("section",{ref:o,"aria-label":a("ui.mesh.mesh_approvals_tray.approvals"),"data-tour-tag":"mesh-approvals-tray",className:"flex flex-col gap-3",children:[t.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[t.jsx(pt,{"aria-hidden":"true",className:"size-4 text-ink-muted"}),t.jsx("h2",{className:"text-body-sm text-ink",children:a("ui.mesh.mesh_approvals_tray.approvals")}),_.length>0&&t.jsx("span",{className:"text-meta text-ink-dim",children:a("ui.mesh.mesh_approvals_tray.waiting_count",{count:_.length})})]}),s&&t.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[t.jsx("p",{className:"min-w-0 flex-1 text-meta text-ink-muted",children:s}),t.jsx(G,{variant:"secondary",size:"sm",onClick:u,children:a("ui.mesh.mesh_approvals_tray.ask_again")})]}),_.length>0&&t.jsx("ul",{className:"flex flex-col divide-y divide-hairline",children:_.map(h=>t.jsx(Re,{row:h,pending:r?.approvalId===h.approvalId?r:null,busy:v,refusal:i?.approvalId===h.approvalId?i:null,onDecide:N,nowSeconds:f,networkNames:l},h.approvalId))}),i&&!M&&t.jsx(Xe,{refusal:i}),y.length>0&&t.jsx("div",{ref:d,children:t.jsx(qe,{open:I,onOpenChange:C,chevronClassName:"text-ink-dim",className:L(_.length>0&&"border-hairline border-t pt-3"),summary:t.jsxs("span",{className:"flex items-center gap-1.5 text-meta text-ink-muted",children:[a("ui.mesh.mesh_approvals_tray.settled_approvals"),t.jsxs("span",{className:"text-ink-dim",children:["(",y.length,")"]}),k&&t.jsx("span",{"aria-hidden":"true",className:"size-1.5 rounded-full bg-danger"}),x>0&&t.jsx("span",{className:"text-danger",children:a("ui.mesh.mesh_approvals_tray.failed_count",{count:x})})]}),children:t.jsx("ul",{className:"flex flex-col divide-y divide-hairline","data-tour-tag":"mesh-approvals-records",children:y.map(h=>t.jsx(Re,{row:h,pending:r?.approvalId===h.approvalId?r:null,busy:v,refusal:i?.approvalId===h.approvalId?i:null,onDecide:N,nowSeconds:f,networkNames:l},h.approvalId))})})})]})},Re=({row:e,pending:s,busy:r,refusal:i,onDecide:c,nowSeconds:u,networkNames:f})=>{H();const l=ue(e.state),v=xt(e),_=ft(e,f),y=gt(e,f),I=vt(e),C=bt(e),o=_t(e),d=kt(e.expiresAt,u),p=e.kind==="credential"||e.kind==="unknown",N=p||e.canApproveHere===!1,k=N?[]:as(e.state),x=wt(e),M=jt(e.state);return t.jsxs("li",{className:"flex flex-col gap-2 py-3 first:pt-0 last:pb-0","data-tour-tag":"mesh-approval-card",children:[t.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[t.jsx("span",{className:L("text-meta",ss(e.state)),children:e.kind==="credential"&&e.state==="approved"?a("ui.mesh.approval.approved_pending_apply"):yt(e.state)}),t.jsx("div",{className:"grow"}),l&&d&&t.jsx("span",{className:"text-meta text-ink-dim",children:e.kind==="credential"?a("ui.mesh.approval.request_window",{remaining:d}):d})]}),t.jsx("p",{className:"text-body-sm text-ink [overflow-wrap:anywhere]","data-tour-tag":"mesh-approval-summary",children:l?_:v}),!N&&e.state==="failed"&&t.jsx("p",{className:"text-meta text-ink-muted","data-tour-tag":"mesh-approval-stopped-note",children:a("ui.mesh.mesh_approvals_tray.the_runner_stopped_before_it_finished_it")}),l&&N&&t.jsx("p",{className:"text-meta text-ink-muted whitespace-pre-wrap [overflow-wrap:anywhere]","data-tour-tag":"mesh-approval-cli-remedy",children:e.approveRemedy||a("ui.mesh.approval.cli_review")}),e.kind==="credential"&&e.state==="approved"&&t.jsx("p",{className:"text-meta text-ink-muted","data-tour-tag":"mesh-approval-apply-hint",children:e.details?.length?a("ui.mesh.approval.approved_apply_hint"):a("ui.mesh.approval.approved_details_missing")}),(x||M)&&t.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[x&&t.jsx(G,{variant:"primary",size:"sm",disabled:r,onClick:()=>c(e.approvalId,"approve"),"data-tour-tag":"mesh-approval-approve",children:a("ui.mesh.mesh_approvals_tray.approve")}),M&&t.jsx(G,{variant:"ghost",size:"sm",disabled:r,onClick:()=>c(e.approvalId,"deny"),"data-tour-tag":l?"mesh-approval-deny":"mesh-approval-stop",children:l?a("ui.mesh.mesh_approvals_tray.deny"):ns(e.state)}),s&&t.jsx("span",{className:"text-meta text-ink-dim",children:s.decision==="approve"?a("ui.mesh.mesh_approvals_tray.waiting_for_the_signing_prompt"):a("ui.mesh.mesh_approvals_tray.writing_the_decision")})]}),t.jsxs(qe,{chevronClassName:"text-ink-dim",summary:t.jsx("span",{className:"text-meta",children:a("ui.mesh.mesh_approvals_tray.details")}),children:[p&&(e.details?.length?t.jsx("ul",{className:"flex flex-col gap-1.5 text-meta text-ink-muted [overflow-wrap:anywhere]","data-tour-tag":"mesh-approval-server-details",children:e.details.map((h,E)=>t.jsx("li",{className:"whitespace-pre-wrap",children:h},`${E}:${h}`))}):t.jsx("p",{className:"text-meta text-ink-muted",children:a("ui.mesh.approval.details_unavailable")})),y.length>0&&t.jsx("dl",{className:"grid grid-cols-[max-content_1fr] gap-x-4 gap-y-0.5 text-meta text-ink-dim","data-tour-tag":"mesh-approval-consequences",children:y.map(h=>t.jsxs(g.Fragment,{children:[t.jsx("dt",{className:"text-ink-muted",children:h.term}),t.jsx("dd",{children:h.consequence})]},h.term))}),(I||C)&&t.jsxs("p",{className:"text-meta text-ink-muted",children:[I&&t.jsx("span",{children:I}),I&&C&&t.jsx("span",{children:" · "}),C&&t.jsx("span",{className:"font-mono",children:C})]}),o&&t.jsx("p",{className:"text-meta text-ink-dim",children:o}),k.length>0&&t.jsx("dl",{className:"grid grid-cols-[max-content_1fr] gap-x-4 gap-y-0.5 text-meta","data-tour-tag":"mesh-approval-consequence",children:k.map(h=>t.jsxs(g.Fragment,{children:[t.jsx("dt",{className:"text-ink-muted",children:h.term}),t.jsx("dd",{className:"text-ink-muted",children:h.text})]},h.term))})]}),i&&t.jsx(Xe,{refusal:i})]})},Xe=({refusal:e})=>(H(),t.jsx(fe,{variant:"warning",className:"text-meta","data-tour-tag":"mesh-approval-refusal",children:t.jsxs("span",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[t.jsx("span",{className:"min-w-0 flex-1",children:e.sentence}),t.jsx("span",{className:"shrink-0 font-mono text-ink-dim",children:e.code})]})})),rs=4,be={kind:"idle"};function ls(e){switch(e.kind){case"dragging":case"settling":return e.payload.session.id;case"pressing":return null;default:return null}}function te(e,s){switch(s.kind){case"press":return e.kind!=="idle"?e:{kind:"pressing",payload:s.payload,originX:s.x,originY:s.y,pointerId:s.pointerId};case"move":return e.kind==="pressing"?Math.max(Math.abs(s.x-e.originX),Math.abs(s.y-e.originY))<rs?e:{kind:"dragging",payload:e.payload,x:s.x,y:s.y,target:s.target,pointerId:e.pointerId}:e.kind==="dragging"?{...e,x:s.x,y:s.y,target:s.target}:e;case"release":return e.kind==="dragging"?{kind:"settling",payload:e.payload,target:e.target}:e.kind==="pressing"?be:e;case"cancel":case"settled":return be;default:return e}}const os=({edges:e,geometry:s,selectedDeviceId:r})=>t.jsx("svg",{"aria-hidden":"true",className:"pointer-events-none absolute top-0 left-0 overflow-visible",width:s.bounds.width,height:s.bounds.height,children:e.map(i=>{const c=s.networks.get(i.networkId),u=s.devices.get(i.deviceId);if(!c||!u)return null;const f=r!==null&&i.deviceId===r;return t.jsx("path",{"data-mesh-edge":i.key,d:Nt(c,u),fill:"none",strokeWidth:f?2:1.5,strokeDasharray:i.active?void 0:"4 4",className:f?"stroke-ink":"stroke-ink-dim"},i.key)})}),cs={self:"border-l-hairline",reached:"border-l-hairline",unanswered:"border-l-warning","not-attempted":"border-l-hairline",unknown:"border-l-hairline"};function ds(e){return e.suspect?"border-l-danger":cs[se(e)]}const us={self:"ring-2 ring-accent",reachable:null,unreachable:null,suspect:null},ms={accept:"border-accent bg-accent-wash",refuse:"border-warning"};function hs(e,s,r){return[e.label,Ge(e,s),r].filter(Boolean).join(", ")}function ne(e){return e.name.trim()||e.id.slice(-6)}function Ze(e,s,r){if(r!=="reached"&&r!=="self"){const i=me(r);return e.unreachable_reason?`${i} (${e.unreachable_reason})`:i}return e.live_state.trim()?e.live_state.trim():e.locality==="local"?a("ui.mesh.mesh_drop.on_this_device"):a("ui.mesh.mesh_node.on_device",{device:s})}const ps={resting:"border-l-2 border-l-hairline",attention:"border-l-2 border-l-warning"},xs=({network:e,x:s,y:r,refused:i})=>(H(),t.jsxs("li",{"data-mesh-network":e.id,"data-mesh-network-refused":i?"true":void 0,"data-glass-block":"",className:L("absolute flex items-center gap-2 rounded-md border bg-elevated px-3",i?"border-warning":"border-hairline"),style:{left:s,top:r,width:Ie,height:It},children:[t.jsx(Ne,{"aria-hidden":"true",className:"size-4 shrink-0 text-ink-muted"}),t.jsxs("span",{className:"min-w-0 flex-1",children:[t.jsx("span",{className:"block truncate text-body-sm text-ink",children:e.label}),t.jsxs("span",{title:a("ui.mesh.mesh_list.epoch",{epoch:e.epoch}),className:"block truncate text-meta text-ink-dim",children:[a("ui.mesh.mesh_graph.device_count",{count:e.memberCount}),e.revokedCount>0?a("ui.mesh.mesh_list.revoked_count",{count:e.revokedCount}):""]})]})]})),fs=({device:e,x:s,y:r,nowSeconds:i,selected:c,sessions:u,sessionTotal:f,dropState:l,movingSessionId:v,draggedSessionId:_,onOpen:y,onChipPointerDown:I,onChipClick:C,onShowAllSessions:o})=>{H();const{activity:d}=st(e,u.rows),p=d==="working",N=hs(e,i,p?"working":null),k=se(e);return t.jsxs("li",{"data-mesh-device":e.id,"data-mesh-state":e.state,"data-mesh-drop":l??void 0,"aria-current":c?"true":void 0,"data-glass-block":"",className:L("absolute flex flex-col rounded-md border border-l-4 border-control bg-elevated","hover:bg-row-hover",c&&"border-y-ink border-r-ink bg-row-selected",ds(e),us[e.state],l&&ms[l]),style:{left:s,top:r,width:Ie,height:Ct},children:[t.jsxs("button",{type:"button","data-mesh-device-open":e.id,"data-mesh-reach":k,"aria-label":N,title:nt(e),onClick:()=>y(e.id),className:L("flex w-full flex-col justify-between rounded-t-[5px] px-3 pt-2 pb-2 text-left","cursor-pointer","focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-[-2px]"),style:{height:St},children:[t.jsxs("span",{className:"flex w-full min-w-0 items-center gap-2",children:[t.jsx(at,{"aria-hidden":"true",className:"size-4 shrink-0 text-ink-muted"}),t.jsx("span",{className:"min-w-0 flex-1 truncate text-body-sm text-ink",children:e.label}),e.suspect&&t.jsx(Ce,{"aria-hidden":"true",className:"size-3.5 shrink-0 text-danger"})]}),t.jsxs("span",{className:"flex w-full min-w-0 items-baseline gap-1",children:[t.jsx("span",{className:"w-3 shrink-0 font-mono text-body-sm text-ink tabular-nums",children:e.sessionCount??"–"}),t.jsx("span",{className:L("min-w-0 truncate text-meta",e.sessionCount===null?"text-ink-dim":"text-ink-muted"),children:Ue(e.sessionCount)})]}),t.jsxs("span",{"data-mesh-state-line":"",className:"flex w-full min-w-0 items-baseline gap-1.5 text-meta",children:[t.jsx("span",{"aria-hidden":"true",className:"shrink-0 text-ink-dim",children:it[k]}),t.jsx("span",{className:L("shrink-0",Fe[k]),children:me(k)}),p&&t.jsx("span",{"data-mesh-working":"",className:"shrink-0 text-info",children:a("ui.mesh.mesh_node.working")}),e.memberships.length>1&&t.jsx("span",{className:"min-w-0 truncate text-ink-dim",children:a("ui.mesh.mesh_node.memberships",{count:e.memberships.length})})]})]}),t.jsxs("ul",{"aria-label":a("ui.mesh.mesh_node.conversations_on",{device:e.label}),className:L("m-0 flex h-6 list-none items-center gap-1 overflow-hidden px-3",l==="accept"&&"opacity-40"),children:[u.shown.map(x=>t.jsx(gs,{session:x,ownerLabel:e.label,ownerReach:k,ownerReachable:e.reachable,moving:v===x.id,dragging:_===x.id,onPointerDown:I,onClick:()=>C(x)},x.id)),u.hidden>0&&t.jsx("li",{className:"shrink-0",children:t.jsxs("button",{type:"button","data-mesh-more":e.id,onClick:()=>o(e.id),className:L("flex min-h-6 items-center rounded-sm px-1.5 text-meta text-ink-dim","hover:bg-row-hover hover:text-ink","focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2"),title:a("ui.mesh.mesh_node.shown_conversations",{shown:u.shown.length,total:f}),"aria-label":a("ui.mesh.mesh_node.show_all_conversations",{count:f}),children:["+",u.hidden]})})]})]})},gs=({session:e,ownerLabel:s,ownerReach:r,ownerReachable:i,moving:c,dragging:u,onPointerDown:f,onClick:l})=>{H();const v=Ze(e,s,r);return c?t.jsx("li",{role:"status","data-mesh-session":e.id,"data-mesh-moving":"true",children:t.jsx("span",{className:"flex min-h-6 items-center rounded-sm bg-sunken px-1.5 text-meta text-ink-muted",children:a("ui.mesh.mesh_card.moving")})}):t.jsx("li",{className:"min-w-0 flex-1","data-mesh-session-item":e.id,"data-mesh-dragging":u?"true":void 0,children:t.jsx("button",{type:"button","data-mesh-session":e.id,style:{touchAction:"none"},title:`${ne(e)} · ${v}`,"aria-label":a("ui.mesh.mesh_node.open_conversation",{conversation:ne(e),fact:v,owner:s}),onPointerDown:_=>f(_,e),onClick:()=>l(e),className:L("flex min-h-6 w-full max-w-32 items-center rounded-sm border border-hairline bg-surface px-1.5 text-left text-meta text-ink-muted","cursor-grab active:cursor-grabbing","hover:text-ink",ps[Mt(e,i)],u&&"opacity-60","focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2"),children:t.jsx("span",{className:"min-w-0 flex-1 truncate",children:ne(e)})})})};function Le(e){const s=e.trim();if(!s)return null;if(s.startsWith("[")){const i=s.indexOf("]");if(i<=1)return null;const c=s.slice(1,i),u=s.slice(i+1);if(!u)return{host:c,port:null};if(!u.startsWith(":"))return null;const f=Number(u.slice(1));return{host:c,port:Number.isInteger(f)?f:null}}const r=s.lastIndexOf(":");if(r>0){const i=s.slice(r+1);if(/^\d+$/.test(i))return{host:s.slice(0,r),port:Number(i)}}return{host:s,port:null}}function Pe(e){const s=e.trim().split(".");if(s.length!==4)return null;for(const r of s)if(!/^\d{1,3}$/.test(r)||Number(r)>255)return null;return`${s[0]}.${s[1]}.${s[2]}`}function vs(e){return`${e}.x`}function bs(e){const s=new Map;for(const i of e.values())for(const c of i)s.set(c,(s.get(c)??0)+1);const r=new Set;for(const[i,c]of s)c>1&&r.add(i);return r}function ye(e){return new Set(e.endpoints.map(s=>s.trim()).filter(Boolean))}function _s(e,s){const r=e.filter(o=>o.id!==s),i=e.find(o=>o.id===s)??null,c=new Map;for(const o of e)c.set(o.id,ye(o));const u=bs(c),f=new Set;for(const o of i?ye(i):[]){if(u.has(o))continue;const d=Le(o),p=d?Pe(d.host):null;p&&f.add(p)}const l=o=>{const d=new Set;for(const p of ye(o)){if(u.has(p))continue;const N=Le(p),k=N?Pe(N.host):null;k&&d.add(k)}return d},v=new Map,_=new Map;for(const o of r){const d=ks(o);if(d){v.set(d,[...v.get(d)??[],o.id]);continue}for(const p of l(o))_.set(p,[..._.get(p)??[],o.id])}const y=new Map(e.map((o,d)=>[o.id,d])),I=o=>[...o].sort((d,p)=>(y.get(d)??0)-(y.get(p)??0)),C=[];for(const[o,d]of v)C.push({prefix:o,tier:"declared",deviceIds:I(d),get words(){return a("ui.mesh.mesh_scope.declared")}});for(const[o,d]of _)f.has(o)?C.push({prefix:o,tier:"shared",deviceIds:I(d),get words(){return a("ui.mesh.mesh_scope.shared_with_this_device")}}):d.length>1&&C.push({prefix:o,tier:"probable",deviceIds:I(d),get words(){return a("ui.mesh.mesh_scope.same_prefix")}});return C.sort((o,d)=>o.tier.localeCompare(d.tier)||o.prefix.localeCompare(d.prefix))}function ks(e){for(const s of e.memberships){const r=s.scope.trim();if(r)return r}return""}const Te={declared:0,shared:1,probable:2};function ws(e,s){const r=new Map;for(const c of e){let u=null;for(const l of c.deviceIds){const v=s.get(l);v!==void 0&&(u===null||v<u.slot)&&(u={id:l,slot:v})}if(u===null)continue;const f=r.get(u.id);f===void 0?r.set(u.id,{slot:u.slot,groups:[c]}):f.groups.push(c)}const i=c=>{let u=-1;for(const f of c.deviceIds){const l=s.get(f);l!==void 0&&l>u&&(u=l)}return u};return[...r.entries()].sort((c,u)=>c[1].slot-u[1].slot).map(([c,u])=>({deviceId:c,groups:u.groups.sort((f,l)=>i(l)-i(f)||Te[f.tier]-Te[l.tier]||f.prefix.localeCompare(l.prefix))}))}function js(e){return new Map(e.map(s=>[s.deviceId,s.groups.length]))}function ys(e){return`${e.tier==="declared"?e.prefix:vs(e.prefix)} · ${e.words}`}const Oe=(e,s)=>e.deviceIds.map(r=>s.devices.get(r)).filter(r=>r!==void 0),Ns=({stacks:e,geometry:s})=>(H(),t.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute top-0 left-0",children:e.map(r=>{const i=r.groups.length,c=new Array(i).fill(0);let u=null;for(let l=i-1;l>=0;l-=1){const v=Oe(r.groups[l],s),_=(v.length===0?0:Math.max(...v.map(y=>y.y+y.height)))+xe;u=u===null?_:Math.max(_,u+we),c[l]=u}const f=s.devices.get(r.deviceId);return r.groups.map((l,v)=>{const _=Oe(l,s);if(_.length===0)return null;const y=i-1-v,I=Math.min(..._.map(k=>k.x)),C=Math.max(..._.map(k=>k.x)),d=(f?.y??Math.min(..._.map(k=>k.y)))-xe-Dt*y,p=l.tier==="declared",N=ys(l);return t.jsx("div",{"data-mesh-scope":`${l.tier}:${l.prefix}`,"data-mesh-scope-level":v,className:L("absolute rounded-lg",l.tier==="probable"?"border border-dashed border-hairline-strong":"border border-control"),style:{left:I-xe-we*y,top:d,width:C+Ie-I+(xe+we*y)*2,height:c[v]-d},children:t.jsx("span",{"data-mesh-scope-label":"",className:L("absolute bottom-full left-1 mb-0.5 whitespace-nowrap text-meta",l.tier==="probable"?"text-ink-dim":"text-ink-muted",p&&"font-medium"),children:N})},`${l.tier}:${l.prefix}`)})})})),$e=48,ze=1.25,Is=.0015,Cs=({graph:e,slots:s,nowSeconds:r,selectedDeviceId:i,sessions:c,sessionTotals:u,movingSessionId:f,canMove:l,onOpenDevice:v,onAskMove:_,onDropRefused:y,onShowAllSessions:I,summaryId:C})=>{H();const o=g.useRef(null),[d,p]=g.useState({width:0,height:0,clipWidth:0,clipHeight:0,left:0,top:0}),[N,k]=g.useState({k:1,tx:0,ty:0}),x=g.useRef(!1),M=g.useRef(!1),h=g.useRef(null),E=g.useMemo(()=>_s(e.devices,e.selfDeviceId),[e.devices,e.selfDeviceId]),S=g.useMemo(()=>ws(E,s.devices),[E,s]),D=g.useMemo(()=>Et(s,js(S)),[s,S]),Y=g.useMemo(()=>({selfDeviceId:e.selfDeviceId,devices:new Map(e.devices.map(n=>[n.id,n])),networks:new Map(e.networks.map(n=>[n.id,n]))}),[e]),[j,W]=g.useState(be),ae=g.useRef({kind:"ground"}),q=g.useCallback((n,m)=>{const b=document.elementFromPoint(n,m),R=b?.closest("[data-mesh-device]");if(R){const V=R.getAttribute("data-mesh-device");if(V)return{kind:"device",deviceId:V}}const z=b?.closest("[data-mesh-network]");if(z){const V=z.getAttribute("data-mesh-network");if(V)return{kind:"network",networkId:V}}return{kind:"ground"}},[]),O=g.useMemo(()=>j.kind!=="dragging"&&j.kind!=="settling"?null:ge(j.payload,j.target,Y),[j,Y]),ie=g.useCallback(n=>{if(!O)return null;if(O.kind==="plan"){const m=j.kind==="dragging"||j.kind==="settling"?j.target:null;return m&&m.kind==="device"&&m.deviceId===n?"accept":null}if(O.kind==="refused"){const m=j.kind==="dragging"||j.kind==="settling"?j.target:null;return m&&m.kind==="device"&&m.deviceId===n?"refuse":null}return null},[O,j]),re=g.useCallback((n,m)=>{if(!l||n.button!==0)return;M.current=!1;const b=m.locality==="local"?e.selfDeviceId??"":m.owner_device,R=Y.devices.get(b),z={session:m,ownerDeviceId:b,ownerLabel:R?.label??m.owner_device_name};try{n.currentTarget.setPointerCapture(n.pointerId)}catch{}W(V=>te(V,{kind:"press",payload:z,x:n.clientX,y:n.clientY,pointerId:n.pointerId}))},[l,Y,e.selfDeviceId]),oe=n=>{if(j.kind==="pressing"||j.kind==="dragging"){const m=q(n.clientX,n.clientY);ae.current=m,W(b=>te(b,{kind:"move",x:n.clientX,y:n.clientY,target:m}));return}he(n)},ce=n=>{if(ee(n),j.kind!=="pressing"&&j.kind!=="dragging")return;if(j.kind==="pressing"){W(b=>te(b,{kind:"cancel"}));return}const m=ge(j.payload,j.target,Y);M.current=!0,W(b=>te(b,{kind:"release"})),m.kind==="plan"?_({plan:m.plan,alternatives:m.alternatives,risky:m.risky}):m.kind==="refused"&&y({code:m.code,sentence:m.sentence,remedy:m.remedy,plan:m.plan??null}),W(b=>te(b,{kind:"settled"}))};g.useEffect(()=>()=>W(be),[]);const Q=g.useCallback(()=>{k(Ae(D.bounds,d))},[D.bounds,d]);g.useEffect(()=>{const n=o.current;if(!n)return;const m=()=>{const R=n.getBoundingClientRect();p({width:R.width,height:R.height,clipWidth:n.clientWidth,clipHeight:n.clientHeight,left:R.left,top:R.top})};m();const b=new ResizeObserver(m);return b.observe(n),()=>b.disconnect()},[]),g.useEffect(()=>{x.current||d.width<=0||d.height<=0||(x.current=!0,k(Ae(D.bounds,d)))},[d,D.bounds]),g.useEffect(()=>{const n=h.current;if(h.current={width:d.width,height:d.height},!n||!x.current||d.width<=0||d.height<=0||d.width>=n.width&&d.height>=n.height||!i)return;const m=D.devices.get(i);m&&k(b=>{const R={width:d.clipWidth,height:d.clipHeight},z=Math.max(0,Math.min(R.width-D.bounds.width*b.k,R.height-D.bounds.height*b.k));return At(b,m,R,Math.min(Lt,z))})},[d,i,D]);const B=j.kind==="dragging"?{x:j.x-d.left+12,y:j.y-d.top+12}:{x:0,y:0},Z=O?Rt(O):null,w=g.useRef(null),A=g.useRef(null),T=g.useRef(null),$=g.useRef(null),P=g.useCallback(()=>{T.current=null;const n=w.current,m=A.current;if(w.current=null,A.current=null,n){const b=$.current;if(!b)return;k({k:b.transform.k,tx:b.transform.tx+(n.x-b.x),ty:b.transform.ty+(n.y-b.y)});return}m&&k(b=>je(b,{x:m.x,y:m.y},b.k*Math.exp(-m.deltaY*Is)))},[]),U=g.useCallback(()=>{T.current===null&&(T.current=requestAnimationFrame(P))},[P]);g.useEffect(()=>()=>{T.current!==null&&cancelAnimationFrame(T.current)},[]);const K=n=>{!(n.target===n.currentTarget)&&n.button!==1||n.button!==0&&n.button!==1||($.current={x:n.clientX,y:n.clientY,transform:N},n.currentTarget.setPointerCapture(n.pointerId),n.preventDefault())},he=n=>{$.current&&(w.current={x:n.clientX,y:n.clientY},U())},ee=n=>{$.current&&($.current=null,w.current=null,n.currentTarget.hasPointerCapture(n.pointerId)&&n.currentTarget.releasePointerCapture(n.pointerId))},J=g.useCallback(n=>{if(n.deltaY===0)return;n.preventDefault();const m=n.currentTarget.getBoundingClientRect();A.current={x:n.clientX-m.left,y:n.clientY-m.top,deltaY:n.deltaY},U()},[U]);g.useEffect(()=>{const n=o.current;if(n)return n.addEventListener("wheel",J,{passive:!1}),()=>n.removeEventListener("wheel",J)},[J]);const pe=n=>{const m=n.shiftKey?$e*4:$e;switch(n.key){case"Escape":if(j.kind!=="pressing"&&j.kind!=="dragging")return;n.preventDefault(),j.kind==="dragging"&&(M.current=!0),W(b=>te(b,{kind:"cancel"}));return;case"0":n.preventDefault(),Q();return;case"+":case"=":n.preventDefault(),k(b=>je(b,{x:d.width/2,y:d.height/2},b.k*ze));return;case"-":case"_":n.preventDefault(),k(b=>je(b,{x:d.width/2,y:d.height/2},b.k/ze));return;case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"ArrowDown":{n.preventDefault();const b=n.key==="ArrowLeft"?m:n.key==="ArrowRight"?-m:0,R=n.key==="ArrowUp"?m:n.key==="ArrowDown"?-m:0;k(z=>({...z,tx:z.tx+b,ty:z.ty+R}));return}}};return t.jsxs("div",{ref:o,"data-mesh-canvas":"",role:"group","aria-labelledby":C,tabIndex:0,onPointerDown:K,onPointerMove:oe,onPointerUp:ce,onPointerCancel:n=>{j.kind==="dragging"&&(M.current=!0),W(m=>te(m,{kind:"cancel"})),ee(n)},"data-mesh-gesture":j.kind,"data-glass-well":"clear",onKeyDown:pe,onDoubleClick:n=>{n.target===n.currentTarget&&Q()},className:L("relative min-h-0 flex-1 overflow-hidden rounded-lg border border-hairline bg-sunken","[touch-action:none]","cursor-grab active:cursor-grabbing","focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-[-2px]"),children:[t.jsx("div",{"data-mesh-ground":"","aria-hidden":"true",className:"mesh-ground pointer-events-none absolute inset-0",style:{backgroundPosition:`${N.tx}px ${N.ty}px`}}),t.jsxs("div",{"data-mesh-world":"",className:"absolute top-0 left-0",style:{transform:`translate3d(${N.tx}px, ${N.ty}px, 0) scale(${N.k})`,transformOrigin:"0 0",width:D.bounds.width,height:D.bounds.height},children:[t.jsx(Ns,{stacks:S,geometry:D}),t.jsx(os,{edges:e.edges,geometry:D,selectedDeviceId:i}),t.jsx("ul",{"aria-label":a("ui.mesh.mesh_canvas.networks"),className:"m-0 list-none p-0",children:e.networks.map(n=>{const m=D.networks.get(n.id);return m?t.jsx(xs,{network:n,x:m.x,y:m.y,refused:O?.kind==="refused"&&j.kind==="dragging"&&j.target.kind==="network"&&j.target.networkId===n.id},n.id):null})}),t.jsx("ul",{"aria-label":a("ui.mesh.mesh_canvas.devices"),className:"m-0 list-none p-0",children:e.devices.map(n=>{const m=D.devices.get(n.id);return m?t.jsx(fs,{device:n,x:m.x,y:m.y,nowSeconds:r,selected:n.id===i,sessions:c.get(n.id)??{rows:[],shown:[],hidden:0},sessionTotal:u.get(n.id)??n.sessionCount??0,dropState:ie(n.id),movingSessionId:f,draggedSessionId:ls(j),onOpen:v,onChipPointerDown:re,onChipClick:()=>{if(M.current){M.current=!1;return}v(n.id)},onShowAllSessions:I},n.id):null})})]}),j.kind==="dragging"&&t.jsx("div",{"data-mesh-ghost":"","aria-hidden":"true",className:"pointer-events-none absolute z-10 max-w-40 truncate rounded-sm border border-ink-dim bg-surface px-1.5 py-0.5 text-meta text-ink",style:{left:B.x,top:B.y},children:j.payload.session.name||"untitled"}),j.kind==="dragging"&&Z&&t.jsx("div",{"data-mesh-indicator":"",className:L("pointer-events-none absolute z-10 rounded-sm border bg-surface px-2 py-1 text-meta",O?.kind==="refused"?"border-warning text-warning":"border-control text-ink"),style:{left:B.x,maxWidth:Math.max(160,d.width-B.x-12),...B.y>d.height*.6?{bottom:Math.max(12,d.height-B.y+8)}:{top:B.y+24}},children:Z})]})};function Ss(e,s,r,i){const c=r.locality==="local"?s:r.owner_device,u=[];for(const f of e)if(f.id!==c){if(f.id===s){u.push({deviceId:f.id,label:i,verb:a("ui.mesh.mesh_card.recall_to_this_device"),keepVerb:a("ui.mesh.mesh_card.copy_here_leave_it_there")});continue}u.push({deviceId:f.id,label:f.label,verb:a("ui.mesh.mesh_card.move_to",{device:f.label}),keepVerb:a("ui.mesh.mesh_card.copy_to",{device:f.label})})}return u}function Ms(e,s,r){return Ss(e.devices,e.selfDeviceId,s,r)}function Je(e,s,r){const i=Ms(e,s,r),c={selfDeviceId:e.selfDeviceId,devices:new Map(e.devices.map(l=>[l.id,l])),networks:new Map(e.networks.map(l=>[l.id,l]))},u=s.locality==="local"?e.selfDeviceId??"":s.owner_device,f=c.devices.get(u);return i.map(l=>{const v=ge({session:s,ownerDeviceId:u,ownerLabel:f?.label??s.owner_device_name},{kind:"device",deviceId:l.deviceId},c);return{...l,refused:v.kind==="refused"&&v.code!=="busy"?v.sentence:null}})}const Qe=({session:e,destinations:s,disabled:r,onChoose:i,onOpenChange:c,trigger:u,triggerLabel:f})=>(H(),t.jsxs(dt,{onOpenChange:c,children:[t.jsx(ut,{asChild:!0,children:t.jsx("button",{type:"button","aria-label":f,"data-mesh-session-menu":e.id,disabled:r||s.length===0,className:"rounded-sm focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2 disabled:text-ink-disabled",children:u})}),t.jsxs(mt,{align:"start",className:"min-w-56",children:[t.jsx(ht,{children:ne(e)}),t.jsx(Me,{}),s.map(l=>t.jsx(De,{"data-mesh-move-to":l.deviceId,disabled:!!l.refused,title:l.refused??void 0,onSelect:()=>i(l,!1),children:l.verb},l.deviceId)),t.jsx(Me,{}),s.map(l=>t.jsx(De,{"data-mesh-copy-to":l.deviceId,disabled:!!l.refused,title:l.refused??void 0,onSelect:()=>i(l,!0),children:l.keepVerb},`keep-${l.deviceId}`))]})]})),Ds=({device:e,sessions:s,sessionTotal:r,nowSeconds:i,destinationsFor:c,movingSessionId:u,canMove:f,canInvite:l,onClose:v,onMove:_,onShowInList:y,onInvite:I,onRemoveMember:C})=>{H();const o=se(e);g.useEffect(()=>{const x=M=>{M.key!=="Escape"||M.defaultPrevented||M.target?.closest('[role="menu"],[role="dialog"]')||(document.querySelector(`[data-mesh-device-open="${e.id}"]`)?.focus(),v())};return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[e.id,v]);const d=e.memberships.every(x=>!x.active),p=e.sessionCount===null?Ue(null):a("ui.mesh.mesh_card.conversation_count",{count:e.sessionCount}),N=e.suspect?Ye():[d?a("ui.mesh.mesh_card.revoked_membership"):p,me(o)].filter(Boolean).join(" · "),k=r>s.rows.length?a("ui.mesh.mesh_card.shown_of",{shown:s.rows.length,total:r}):`${s.rows.length}`;return t.jsxs("aside",{"aria-label":a("ui.mesh.mesh_card.device_details",{device:e.label}),"data-mesh-panel":e.id,"data-glass-block":"",className:"flex w-80 shrink-0 flex-col gap-3 overflow-y-auto rounded-md border border-hairline bg-surface p-4",children:[t.jsxs("header",{className:"flex flex-col gap-1",children:[t.jsx(G,{size:"sm",variant:"ghost",className:"w-fit self-end","data-mesh-panel-close":"",onClick:v,children:a("ui.mesh.mesh_actions.close")}),t.jsx("h2",{className:"text-body-sm text-ink",children:e.label}),t.jsxs("p",{className:"flex items-center gap-1.5 text-meta text-ink-muted",children:[e.suspect&&t.jsx(Ce,{"aria-hidden":"true",className:"size-3.5 text-danger"}),!e.suspect&&o==="unanswered"&&t.jsx(ct,{"aria-hidden":"true",className:"size-3.5 text-warning"}),N]})]}),t.jsx(le,{}),t.jsxs("section",{className:"flex flex-col gap-2",children:[t.jsx("h3",{className:"text-meta text-ink-dim",children:a("ui.mesh.mesh_card.memberships")}),t.jsx("ul",{className:"m-0 flex list-none flex-col gap-2 p-0",children:e.memberships.map(x=>t.jsxs("li",{className:"flex flex-col gap-1",children:[t.jsxs("span",{className:"flex items-center gap-2 text-body-sm text-ink",children:[t.jsx(Ne,{"aria-hidden":"true",className:"size-3.5 text-ink-muted"}),x.networkName]}),t.jsxs("span",{className:"text-meta text-ink-dim",children:[x.role||"member",x.capabilities.length>0?` · ${x.capabilities.join(", ")}`:"",x.active?"":a("ui.mesh.mesh_card.revoked")]}),l&&x.active&&t.jsxs(G,{size:"sm",variant:"ghost",className:"w-fit","data-mesh-remove-member":`${x.networkId}:${e.id}`,onClick:()=>C(e,x.networkId),children:[a("ui.mesh.mesh_card.remove_from"),x.networkName,"…"]})]},x.networkId))}),l&&t.jsx(G,{size:"sm",variant:"secondary",className:"w-fit","data-mesh-invite":e.id,onClick:()=>I(e),children:a("ui.mesh.mesh_actions.invite_to_a_network")})]}),t.jsx(le,{}),t.jsxs("section",{className:"flex shrink-0 flex-col gap-2",children:[t.jsxs("h3",{className:"text-meta text-ink-dim",children:[a("ui.mesh.mesh_card.conversations"),t.jsxs("span",{className:"text-ink-disabled",children:["(",se(e)!=="self"&&se(e)!=="reached"?Ke(null):k,")"]})]}),ve(e,i)?t.jsx("p",{className:"text-meta text-warning",children:ve(e,i)}):s.rows.length===0?t.jsx("p",{className:"text-meta text-ink-dim",children:e.sessionCount===null?a("ui.mesh.mesh_card.this_device_did_not_report_its_conversations"):a("ui.mesh.mesh_card.no_conversations_here")}):t.jsx("ul",{className:"m-0 flex list-none flex-col gap-1 p-0",children:s.rows.map(x=>t.jsxs("li",{"data-mesh-panel-session":x.id,className:L("flex items-center gap-2 rounded-sm px-2 py-1","border border-hairline bg-elevated",u===x.id&&"border-control"),children:[t.jsx("span",{className:"min-w-0 flex-1 truncate text-body-sm text-ink",title:ne(x),children:ne(x)}),t.jsx("span",{className:"shrink-0 text-meta text-ink-dim",children:Ze(x,e.label,se(e))}),u===x.id?t.jsx("span",{className:"shrink-0 text-meta text-ink-muted",children:a("ui.mesh.mesh_card.moving")}):t.jsx(Qe,{session:x,destinations:c(x),disabled:!f,onChoose:(M,h)=>_(x,M,h),trigger:t.jsx(Be,{"aria-hidden":"true",className:"size-4"}),triggerLabel:a("ui.mesh.mesh_card.move_conversation",{conversation:ne(x)})})]},x.id))})]}),t.jsx(le,{}),t.jsxs("section",{className:"flex flex-col gap-2",children:[t.jsx("h3",{className:"text-meta text-ink-dim",children:a("ui.mesh.mesh_card.network_addresses")}),e.endpoints.length===0?t.jsx("p",{className:"text-meta text-ink-dim",children:a("ui.mesh.mesh_card.no_address_published")}):t.jsx("ul",{className:"m-0 flex list-none flex-col gap-1 p-0",children:e.endpoints.map(x=>t.jsxs("li",{className:"flex items-baseline justify-between gap-2",children:[t.jsx("span",{className:"min-w-0 truncate font-mono text-body-sm text-ink",children:x}),t.jsx("span",{className:"shrink-0 text-meta text-ink-dim",children:a("ui.mesh.mesh_card.advertised")})]},x))})]}),t.jsx(le,{}),t.jsxs("section",{className:"flex flex-col gap-2",children:[t.jsx("h3",{className:"text-meta text-ink-dim",children:a("ui.mesh.mesh_card.status")}),t.jsxs("dl",{className:"m-0 flex flex-col gap-1",children:[t.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[t.jsx("dt",{className:"text-meta text-ink-dim",children:a("ui.mesh.mesh_card.reach")}),t.jsx("dd",{className:"m-0 text-body-sm text-ink",children:me(o)})]}),t.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[t.jsx("dt",{className:"text-meta text-ink-dim",children:a("ui.mesh.mesh_card.last_status_frame")}),t.jsx("dd",{className:"m-0 text-body-sm text-ink",children:e.lastSeenAt===null?a("ui.mesh.mesh_card.never"):Pt(i-e.lastSeenAt)})]})]}),e.reason&&t.jsx("p",{className:"text-meta text-warning",children:e.reason})]}),t.jsx(le,{}),t.jsx(G,{size:"sm",variant:"ghost",className:"w-fit","data-mesh-show-in-list":e.id,onClick:()=>y(e.id),children:a("ui.mesh.mesh_card.show_in_list")})]})},Es=["name","chats","state"],As={get name(){return a("ui.mesh.mesh_list.name")},get chats(){return a("ui.mesh.mesh_list.sort_conversations")},get state(){return a("ui.mesh.mesh_list.state")}},He={suspect:0,unreachable:1,self:2,reachable:3};function Rs(e,s){const r=[...e];switch(s){case"chats":return r.sort((i,c)=>(c.sessionCount??-1)-(i.sessionCount??-1)||i.label.localeCompare(c.label)),r;case"state":return r.sort((i,c)=>He[i.state]-He[c.state]||i.label.localeCompare(c.label)),r;default:return r.sort((i,c)=>i.label.localeCompare(c.label))}}const We=8;function Ls(e,s){if(e.locality==="local")return e.live_state||"here";const r=e.owner_device_name||s,i=e.live_state?` · ${e.live_state}`:"";return e.reachable?a("ui.mesh.mesh_list.on_device_state",{device:r,state:i}):a("ui.mesh.mesh_list.on_device_no_answer",{device:r})}const Ps=({graph:e,nowSeconds:s,selectedDeviceId:r,sessions:i,selfLabel:c,canMove:u,onSelect:f,onMove:l,onInvite:v,onRemove:_})=>{H();const[y,I]=g.useState("name"),C=g.useMemo(()=>e.networks.map(o=>({network:o,members:Rs(e.devices.filter(d=>d.memberships.some(p=>p.networkId===o.id)),y)})),[e,y]);return t.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto pr-1",children:[t.jsxs("fieldset",{className:"m-0 w-fit border-0 p-0",children:[t.jsx("legend",{className:"sr-only",children:a("ui.mesh.mesh_list.sort_devices_by")}),t.jsx("div",{"data-glass-well":"",className:"flex gap-0.5 rounded-md bg-sunken p-0.5",children:Es.map(o=>t.jsx("button",{type:"button","aria-pressed":y===o,onClick:()=>I(o),className:L("h-6 rounded-sm px-3 text-body-sm text-ink-muted transition-colors duration-fast ease-out-quart","hover:text-ink","focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2",y===o&&"bg-surface text-ink"),children:As[o]},o))})]}),C.map(({network:o,members:d})=>t.jsxs("section",{"data-mesh-network-group":o.id,className:"flex flex-col gap-2",children:[t.jsxs("h2",{className:"flex flex-wrap items-baseline gap-2 text-body-sm text-ink",title:a("ui.mesh.mesh_list.epoch",{epoch:o.epoch}),children:[o.label,t.jsxs("span",{className:"text-meta text-ink-dim",children:[o.trust," ·"," ",a("ui.mesh.mesh_graph.device_count",{count:o.memberCount}),o.revokedCount>0?a("ui.mesh.mesh_list.revoked_count",{count:o.revokedCount}):""]})]}),t.jsx("ul",{className:"m-0 flex list-none flex-col gap-1 p-0",children:d.map(p=>{const N=p.memberships.find(S=>S.networkId===o.id),k=p.id===r,x=i.get(p.id),M=x?.rows??[],h=x?Ve(x,p.sessionCount):p.sessionCount??0,E=se(p);return t.jsxs("li",{"data-mesh-device-row":p.id,"data-mesh-state":p.state,"aria-current":k?"true":void 0,className:L("flex flex-col gap-1 rounded-md px-3 py-2","border border-hairline bg-surface",k&&"border-ink bg-row-selected"),children:[t.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-3 gap-y-1",children:[t.jsx("button",{type:"button","data-mesh-device-open":p.id,onClick:()=>f(p.id),className:L("min-w-0 flex-1 truncate text-left text-body-sm text-ink","hover:text-ink-muted","focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2"),children:p.label}),t.jsxs("span",{className:L("flex shrink-0 items-center gap-1 text-meta",Fe[E]),"data-mesh-reach":E,children:[p.suspect&&t.jsx(Ce,{"aria-hidden":"true",className:"size-3.5 shrink-0 text-danger"}),p.suspect?me(E):Ge(p,s),p.suspect&&t.jsx("span",{className:"shrink-0 rounded-sm border border-danger px-1 text-danger",children:Ye()})]}),t.jsxs("span",{className:"shrink-0 text-meta text-ink-dim",children:[N?.role?`${N.role} · `:"",N&&!N.active?a("ui.mesh.mesh_list.revoked"):a("ui.mesh.mesh_list.member")]})]}),ve(p,s)?t.jsxs("span",{className:"text-meta text-warning",children:[a("ui.mesh.mesh_card.conversations")," (",Ke(null),") ·"," ",ve(p,s)]}):M.length>0?t.jsxs(t.Fragment,{children:[t.jsx(le,{className:"my-1"}),t.jsx("ul",{className:"m-0 flex list-none flex-col gap-0.5 p-0",children:M.slice(0,We).map(S=>t.jsxs("li",{"data-mesh-row-session":S.id,className:"flex items-center gap-2 py-0.5",children:[t.jsx("span",{className:"min-w-0 flex-1 truncate text-meta text-ink-muted",children:S.name||S.id}),t.jsx("span",{className:"shrink-0 text-meta text-ink-dim",children:Ls(S,c)}),t.jsx(Qe,{session:S,destinations:Je(e,S,c),disabled:!u,onChoose:(D,Y)=>l(S,D,Y),trigger:t.jsx(Be,{"aria-hidden":"true",className:"size-3.5"}),triggerLabel:a("ui.mesh.mesh_list.move_conversation",{conversation:S.name||S.id})})]},S.id))}),h>M.slice(0,We).length&&t.jsx("button",{type:"button",onClick:()=>f(p.id),className:"w-fit text-meta text-ink-dim hover:text-ink",children:a("ui.mesh.mesh_list.show_all_panel",{count:h})})]}):t.jsx("span",{className:"text-meta text-ink-dim",children:a("ui.mesh.mesh_list.conversation_count",{count:h})}),(N?.active||p.state!=="self")&&t.jsxs("div",{className:"flex flex-wrap items-center gap-1",children:[t.jsx(G,{size:"sm",variant:"ghost","data-mesh-invite":p.id,onClick:()=>v({deviceId:p.id,deviceLabel:p.label}),children:a("ui.mesh.mesh_actions.invite_to_a_network")}),N?.active&&t.jsxs(G,{size:"sm",variant:"ghost","data-mesh-remove-member":`${o.id}:${p.id}`,onClick:()=>_({networkId:o.id,networkLabel:o.label,deviceId:p.id,deviceLabel:p.label}),children:[a("ui.mesh.mesh_card.remove_from"),o.label,"…"]})]})]},p.id)})})]},o.id)),e.unmatchedPeers.length>0&&t.jsxs("p",{className:"text-meta text-warning",children:[a("ui.mesh.mesh_graph.device_count",{count:e.unmatchedPeers.length})," ",a("ui.mesh.mesh_list.answered_the_peer_read_but_is_in")]})]})},Ts=["canvas","list"],Os={get canvas(){return a("ui.mesh.mesh_page.canvas")},get list(){return a("ui.mesh.mesh_page.list")}},$s=({state:e,graph:s,nowSeconds:r,checking:i,staleError:c,onRetry:u,approvals:f,sessions:l,sessionError:v,selfLabel:_,movingSessionId:y,canMove:I,pendingMove:C,onAskMove:o,onDropRefused:d,onChooseMove:p,onCancelMove:N,moveBusy:k,moveReport:x,onDismissReport:M,onWaitForIdle:h,onUndoCopy:E,invite:S,onOpenInvite:D,onInvite:Y,onCloseInvite:j,inviteBusy:W,inviteReceipt:ae,inviteRefusal:q,remove:O,onOpenRemove:ie,onRemove:re,onCloseRemove:oe,removeBusy:ce,removeRefusal:Q,removed:B})=>{H();const[Z,w]=g.useState("canvas"),[A,T]=g.useState(null),$=s?Tt(s):"",P="mesh-summary",U=Ot(s),K=$t(s,l,s?.selfDeviceId??null),he=g.useMemo(()=>{const n=new Map;for(const m of s?.devices??[]){const b=K.byDevice.get(m.id);n.set(m.id,b?Ve(b,m.sessionCount):m.sessionCount??0)}return n},[s,K]),ee=g.useCallback(n=>{T(n)},[]),J=s?s.devices.find(n=>n.id===A)??null:null,pe=g.useCallback((n,m,b)=>{if(!s)return null;const R={selfDeviceId:s.selfDeviceId,devices:new Map(s.devices.map(X=>[X.id,X])),networks:new Map(s.networks.map(X=>[X.id,X]))},z=n.locality==="local"?s.selfDeviceId??"":n.owner_device,V=R.devices.get(z),F=ge({session:n,ownerDeviceId:z,ownerLabel:V?.label??n.owner_device_name},{kind:"device",deviceId:m.deviceId},R);if(F.kind==="refused")return d({code:F.code,sentence:F.sentence,remedy:F.remedy,plan:F.plan??null}),null;if(F.kind==="none")return null;const Se=b?F.alternatives.find(X=>X.keep)??F.plan:F.plan,et=[F.plan,...F.alternatives].filter(X=>X.keep!==Se.keep),tt={plan:Se,alternatives:et,risky:F.risky};o(tt)},[s,o,d]);return t.jsxs("div",{className:"flex h-full min-h-0 flex-col gap-6 overflow-y-auto p-6",children:[t.jsx(ot,{title:a("ui.mesh.mesh_page.mesh"),icon:Ne,subtitle:a("ui.mesh.mesh_page.devices_this_app_is_paired_with_and"),children:t.jsxs("div",{className:"flex items-center gap-4",children:[i&&t.jsx("output",{className:"text-meta text-ink-dim",children:a("ui.mesh.mesh_page.checking")}),(e.kind==="ready"||e.kind==="loading")&&t.jsxs("fieldset",{className:"m-0 w-fit border-0 p-0",children:[t.jsx("legend",{className:"sr-only",children:a("ui.mesh.mesh_page.presentation")}),t.jsx("div",{"data-glass-well":"",className:"flex gap-0.5 rounded-md bg-sunken p-0.5",children:Ts.map(n=>t.jsx("button",{type:"button","aria-pressed":Z===n,disabled:e.kind!=="ready",onClick:()=>w(n),className:L("h-6 rounded-sm px-3 text-body-sm text-ink-muted transition-colors duration-fast ease-out-quart","hover:text-ink","focus-visible:outline focus-visible:outline-2 focus-visible:outline-accent focus-visible:outline-offset-2","disabled:text-ink-dim disabled:hover:text-ink-dim",Z===n&&"bg-surface text-ink"),children:Os[n]},n))})]})]})}),t.jsx(is,{rows:f.rows,error:f.error,pending:f.pending,refusal:f.decisionRefusal,onDecide:f.onDecide,onRetry:f.onRetry,nowSeconds:f.nowSeconds,networkNames:new Map((s?.networks??[]).map(n=>[n.id,n.label]))}),e.kind==="loading"&&t.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-3",children:[t.jsx(Ee,{className:"h-4 w-64"}),t.jsx(Ee,{className:"min-h-40 w-full flex-1"})]}),e.kind==="error"&&t.jsxs(fe,{variant:"warning",className:"flex-col items-start gap-2",children:[t.jsx("p",{children:e.message}),t.jsx(G,{variant:"secondary",size:"sm",onClick:u,className:"w-fit",children:a("ui.mesh.mesh_approvals_tray.ask_again")})]}),e.kind==="empty"&&t.jsx("div",{"data-glass-block":"",className:"flex min-h-0 flex-1 items-center justify-center rounded-lg border border-hairline bg-surface p-6",children:t.jsxs("div",{className:"flex flex-col items-start gap-3",children:[t.jsx("h2",{className:"text-heading text-ink",children:a("ui.mesh.mesh_page.no_network_on_this_device")}),t.jsx("p",{className:"max-w-140 text-body-sm text-ink-muted",children:a("ui.mesh.mesh_page.this_device_is_not_in_any_network")}),t.jsx("code",{className:"rounded-sm bg-sunken px-2 py-1 font-mono text-meta text-ink",children:"lop network init <name>"}),t.jsx("p",{className:"text-meta text-ink-dim",children:a("ui.mesh.mesh_page.a_network_appears_here_once_this_device")})]})}),e.kind==="ready"&&s&&t.jsx(t.Fragment,{children:t.jsxs("div",{className:"flex min-h-[22rem] flex-1 gap-4",children:[t.jsxs("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col gap-3",children:[t.jsx("p",{id:P,className:"text-meta text-ink-muted","data-mesh-summary":"",children:$}),c&&t.jsx(fe,{variant:"warning",children:t.jsx("p",{children:c})}),v&&t.jsx(fe,{variant:"warning",children:t.jsx("p",{children:v})}),x&&t.jsx(zt,{receipt:x.kind==="moved"?{verb:x.verb,detail:x.detail,undo:x.undo}:null,refusal:x.kind==="refused"?x.refusal:null,canWait:x.kind==="refused"&&x.plan!==null,onWait:h,onRecheck:u,onUndo:E,onDismiss:M,pending:k}),Z==="canvas"?t.jsx(Cs,{graph:s,slots:U,nowSeconds:r,selectedDeviceId:A,sessions:K.byDevice,sessionTotals:he,movingSessionId:y,canMove:I,onOpenDevice:ee,onAskMove:o,onDropRefused:d,onShowAllSessions:ee,summaryId:P}):t.jsx(Ps,{graph:s,nowSeconds:r,selectedDeviceId:A,sessions:K.byDevice,selfLabel:_,canMove:I,onSelect:ee,onMove:pe,onInvite:D,onRemove:ie})]}),J&&t.jsx(Ds,{device:J,sessions:K.byDevice.get(J.id)??{rows:[],shown:[],hidden:0},sessionTotal:he.get(J.id)??0,nowSeconds:r,canMove:I,canInvite:e.kind==="ready",movingSessionId:y,destinationsFor:n=>Je(s,n,_),onClose:()=>T(null),onMove:pe,onInvite:n=>D({deviceId:n.id,deviceLabel:n.label}),onRemoveMember:(n,m)=>{const b=s.networks.find(R=>R.id===m);ie({networkId:m,networkLabel:b?.label??m,deviceId:n.id,deviceLabel:n.label})},onShowInList:n=>{ee(n),w("list")}})]})}),t.jsx(Ht,{open:C!==null,plan:C?.plan??zs,alternatives:C?.alternatives??[],risky:C?.risky??!1,busy:k,onCancel:N,onChoose:p}),S&&t.jsx(Wt,{open:S.open,options:S.options,deviceId:S.deviceId,deviceLabel:S.deviceLabel,onClose:j,onInvite:Y,pending:W,receipt:ae,refusal:q}),O&&t.jsx(qt,{open:O.open,networkLabel:O.networkLabel,deviceLabel:O.deviceLabel,onClose:oe,onConfirm:re,pending:ce,refusal:Q,removed:B})]})},zs={sessionId:"",to:"",keep:!1,verb:"",waitS:0,lost:null},Ks=()=>{H();const e=rt(),s=_e(e.data,"peers")==="enabled",r=_e(e.data,"session_transfer")==="enabled",i=Ft(s,{stamp:()=>ke.getState().beginAnswer()}),c=Yt(s),u=Bt(s,{poll:!1,stamp:()=>ke.getState().beginAnswer()}),f=g.useMemo(()=>({peers:i,networks:c}),[i,c]),l=Ut(f),v=Gt(f),_=Kt(),y=_e(e.data,"approvals")==="enabled",I=Vt(s&&y,{poll:!1}),C=Xt(),o=C.isError?{approvalId:C.variables?.approvalId??null,...Zt(C.error)}:null,d=g.useMemo(()=>Math.floor((I.dataUpdatedAt||Date.now())/1e3),[I.dataUpdatedAt]),p=ke(w=>w.settlePlacement),N=Jt(),k=Qt(),[x,M]=g.useState(null),[h,E]=g.useState(null),[S,D]=g.useState(null),[Y,j]=g.useState(null),[W,ae]=g.useState(null),[q,O]=g.useState(null),[ie,re]=g.useState(null),oe=g.useMemo(()=>{const w=Math.max(i.dataUpdatedAt,c.dataUpdatedAt);return Math.floor((w||Date.now())/1e3)},[i.dataUpdatedAt,c.dataUpdatedAt]),ce=g.useCallback(()=>{i.refetch(),c.refetch(),u.refetch()},[i,c,u]),Q=g.useCallback((w,A)=>{M(null);const T={sessionId:w.sessionId,to:w.to,keep:w.keep,waitS:A??w.waitS};_.mutate(T,{onSuccess:$=>{if($.kind==="moved"){const{receipt:P}=$;p(w.sessionId,P);const U=P.locality==="local"?a("ui.mesh.mesh_drop.this_device"):v?.devices.find(K=>K.id===P.owner_device)?.label??P.owner_device;E({kind:"moved",verb:P.mode==="keep"?a("ui.mesh.mesh_page.copied"):a("ui.mesh.mesh_page.moved"),detail:P.mode==="keep"?a("ui.mesh.mesh_page.copy_receipt",{destination:U,suffix:P.new_session_id.slice(-6)}):a("ui.mesh.mesh_page.move_receipt",{destination:U,retirement:P.source_retired?a("ui.mesh.mesh_page.the_copy_here_is_gone"):""}),undo:P.mode==="keep"?{sessionId:P.new_session_id,to:"local",keep:!1,verb:a("ui.mesh.mesh_page.bring_copy_back",{device:U}),waitS:0,lost:es(U,a("ui.mesh.mesh_drop.this_device"))}:null});return}E({kind:"refused",refusal:$.refusal,plan:w})},onError:()=>{E({kind:"refused",refusal:{code:"move_failed",sentence:a("ui.mesh.mesh_page.the_move_could_not_be_sent_nothing"),status:null,unconfirmed:!1},plan:w})}})},[v,_,p]),B=g.useMemo(()=>{if(!v)return[];const w=S?.deviceId,A=w?v.devices.find(T=>T.id===w):void 0;return v.networks.filter(T=>{if(!A)return!0;const $=A.memberships.find(P=>P.networkId===T.id);return!$||!$.active}).map(T=>({id:T.id,label:T.label}))},[v,S]);if(!s)return t.jsx(lt,{to:"/chat",replace:!0});const Z=l.kind==="ready"?i.error?de(i.error):c.error?de(c.error):null:null;return t.jsx($s,{state:l,graph:v,nowSeconds:oe,checking:i.isFetching||c.isFetching,staleError:Z,onRetry:ce,approvals:{rows:I.data??[],error:I.isError?ts(I.error):null,pending:C.isPending?C.variables??null:null,decisionRefusal:o,onDecide:(w,A)=>C.mutate({approvalId:w,decision:A}),onRetry:()=>void I.refetch(),nowSeconds:d},sessions:u.data?.rows??[],movingSessionId:_.isPending?_.variables?.sessionId??null:null,sessionError:u.isError?de(u.error):null,selfLabel:v?.devices.find(w=>w.state==="self")?.label??a("ui.mesh.mesh_drop.this_device"),canMove:r,pendingMove:x,onAskMove:M,onDropRefused:w=>E({kind:"refused",refusal:{code:w.code,sentence:w.sentence,status:null,unconfirmed:!1},plan:w.plan}),onChooseMove:w=>Q(w),onCancelMove:()=>M(null),moveBusy:_.isPending,moveReport:h,onDismissReport:()=>E(null),onWaitForIdle:()=>{h?.kind!=="refused"||!h.plan||Q(h.plan,Hs)},onUndoCopy:()=>{h?.kind!=="moved"||!h.undo||M({plan:h.undo,alternatives:[],risky:!1})},invite:S===null?null:{open:!0,deviceId:S.deviceId,deviceLabel:S.deviceLabel,options:B},onOpenInvite:w=>{j(null),ae(null),D(w)},onInvite:w=>{N.mutate(w,{onSuccess:A=>j(A),onError:A=>ae({code:"invite_refused",sentence:de(A),status:null,unconfirmed:!1})})},onCloseInvite:()=>D(null),inviteBusy:N.isPending,inviteReceipt:Y,inviteRefusal:W,remove:q===null?null:{open:!0,networkId:q.networkId,networkLabel:q.networkLabel,deviceId:q.deviceId,deviceLabel:q.deviceLabel},onOpenRemove:w=>{re(null),O(w)},onRemove:w=>{q&&k.mutate({networkId:q.networkId,deviceId:q.deviceId,confirm:w},{onSuccess:A=>re(A)})},onCloseRemove:()=>O(null),removeBusy:k.isPending,removeRefusal:k.isError?{code:"remove_refused",sentence:de(k.error),status:null,unconfirmed:!1}:null,removed:ie})},Hs=300;export{Ks as MeshPage,$s as MeshSurface,Ks as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as r,b as e,a,S as s}from"./chunk-AEK57VVT-K1GcoFUy.js";import{_ as i}from"./mermaid.core-BGROKqtx.js";import"./chunk-RZ5BOZE2-QWUc1JND.js";import"./conversation-input-sync-BD8ZrQRq.js";import"./index-ByYW6G08.js";import"./ui-preferences-store-CAt3Nng3.js";import"./error-boundary-Bpk2r3Ma.js";var n={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{n as diagram};
|