@remit/web-client-dist 0.0.481 → 0.0.482

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 (142) hide show
  1. package/assets/BriefPane-CfitNMEu.js +1 -0
  2. package/assets/{ErrorState-CBV6FtSJ.js → ErrorState-4TfgxGLk.js} +1 -1
  3. package/assets/FlaggedPane-B7mltHsE.js +1 -0
  4. package/assets/{FullCompose-DQRblSEf.js → FullCompose-0DIPCtd6.js} +1 -1
  5. package/assets/{MailListHeader-BpL0hiB2.js → MailListHeader-Brjq4vBE.js} +1 -1
  6. package/assets/{MailShell-zSsU-lz6.js → MailShell-CvGuWCuj.js} +1 -1
  7. package/assets/MailViewChrome-C7sCKY-n.js +1 -0
  8. package/assets/MailboxPane-COHQn6Yb.js +1 -0
  9. package/assets/{NavMenuButton-meKsCAv8.js → NavMenuButton-n2Am7T-q.js} +1 -1
  10. package/assets/OnboardingWizard-BtlDSuHk.js +1 -0
  11. package/assets/OutboxPane-C-_EQFRO.js +1 -0
  12. package/assets/_mailboxId-Bqbp7c9M.js +1 -0
  13. package/assets/_messageId-BAluf3UO.js +1 -0
  14. package/assets/_messageId-CHs89GPR.js +1 -0
  15. package/assets/_messageId-Ctd9_Bl1.js +1 -0
  16. package/assets/_outboxMessageId-_2jJC1Qb.js +1 -0
  17. package/assets/_threadId-BYyW8ujt.js +1 -0
  18. package/assets/_threadId-BrgLQ-Pl.js +1 -0
  19. package/assets/_threadId-C9FCiXzy.js +1 -0
  20. package/assets/{accounts-ywyLeeZ4.js → accounts-D3L3nj2z.js} +1 -1
  21. package/assets/advanced-DtxZPECw.js +4 -0
  22. package/assets/{appearance-DIb1edPD.js → appearance-OV39hcLF.js} +1 -1
  23. package/assets/attachment-file-ul58bxI4.js +1 -0
  24. package/assets/{avatar-lcZ4TVQd.js → avatar-G7g9Uwvc.js} +1 -1
  25. package/assets/bottom-sheet-B6YVIwAN.js +1 -0
  26. package/assets/brief-Bc68FlBf.js +1 -0
  27. package/assets/{brief-Cn1i1Vih.js → brief-BcQPVd1X.js} +1 -1
  28. package/assets/browser-ponyfill-DXnwXxSp.js +2 -0
  29. package/assets/{bug-DQdIiRjm.js → bug-Dj9DPa4Y.js} +1 -1
  30. package/assets/card-B1IEp2-a.js +1 -0
  31. package/assets/{circle-check-wwq1h3jr.js → circle-check-CsnMhxDa.js} +1 -1
  32. package/assets/{circle-check-big-CyS5sZb6.js → circle-check-big-SYJDr4tY.js} +1 -1
  33. package/assets/{circle-help-DbSK9hyF.js → circle-help-BoGPc17x.js} +1 -1
  34. package/assets/{clock-KiLfjGAs.js → clock-C2olBfsH.js} +1 -1
  35. package/assets/compose._-_outboxMessageId_-C_qZJ56q.js +1 -0
  36. package/assets/compose._-_outboxMessageId_-DKWODs5S.js +1 -0
  37. package/assets/compose._-_outboxMessageId_-DwRvAUq2.js +1 -0
  38. package/assets/compose._-_outboxMessageId_-mWQ2SoXJ.js +1 -0
  39. package/assets/config-import-1pqti4UQ.js +1 -0
  40. package/assets/confirm-dialog-B4KJVTQx.js +1 -0
  41. package/assets/credential-steps-BNmmF6YJ.js +1 -0
  42. package/assets/{download-CCD9VEcr.js → download-vw3zYEkx.js} +1 -1
  43. package/assets/filters-BmW8kKxW.js +1 -0
  44. package/assets/flagged-R318UqUZ.js +1 -0
  45. package/assets/{flagged-D4rwWprf.js → flagged-uZGUg7Dw.js} +1 -1
  46. package/assets/folders-CkYvGGkZ.js +1 -0
  47. package/assets/{format-Dquh5i8-.js → format-BSk7Do06.js} +1 -1
  48. package/assets/{help-copy-DryiNLYs.js → help-copy-D6t16AP5.js} +1 -1
  49. package/assets/import-CNvHrBcn.js +1 -0
  50. package/assets/index-2Vc2Ycg0.js +1 -0
  51. package/assets/index-BBBVjIQK.js +1 -0
  52. package/assets/index-CAPjLYZ5.js +1 -0
  53. package/assets/index-CHs89GPR.js +1 -0
  54. package/assets/index-COugriit.js +1 -0
  55. package/assets/{index-znJrox9Y.js → index-CYwsmjFx.js} +12 -12
  56. package/assets/index-Ctd9_Bl1.js +1 -0
  57. package/assets/index-D93knX1J.js +1 -0
  58. package/assets/{index-DNl2PEHq.css → index-DYO-sbPN.css} +1 -1
  59. package/assets/{index-BMM2gkfY.js → index-FpwHnbdV.js} +32 -32
  60. package/assets/index-N1RMrj2-.js +1 -0
  61. package/assets/{kbd-B-P9r9YU.js → kbd-tXno4rYH.js} +1 -1
  62. package/assets/labels-D8dMllXL.js +1 -0
  63. package/assets/mail-CFC6XnIq.js +1 -0
  64. package/assets/{mail-5WLfHo9K.js → mail-DmVe7n1g.js} +1 -1
  65. package/assets/{menu-Rr3_qIop.js → menu-B-aaGy7K.js} +1 -1
  66. package/assets/onboarding-completion-YE4GukFN.js +1 -0
  67. package/assets/onboarding-vJtatS1N.js +1 -0
  68. package/assets/outbox-C9Rxk-WO.js +1 -0
  69. package/assets/{pencil-BJbvhQrw.js → pencil-DSzm4tGc.js} +1 -1
  70. package/assets/{rich-text-Dyp4iBOD.js → rich-text-Bi1khhyl.js} +15 -15
  71. package/assets/{rich-text-spellcheck-worker-provider-VN94aKh3.js → rich-text-spellcheck-worker-provider-vLdWVTOw.js} +1 -1
  72. package/assets/{rotate-ccw-CrVofVFV.js → rotate-ccw-CwLIBdgY.js} +1 -1
  73. package/assets/row-actions-DgziqjAx.js +1 -0
  74. package/assets/{search-mirror-Lf1ogSTC.js → search-mirror-B2LoSoNR.js} +1 -1
  75. package/assets/search-token-index-C9KNJC5_.js +1 -0
  76. package/assets/sections-DDQm-Sbc.js +1 -0
  77. package/assets/senders-BWTk7Fqx.js +1 -0
  78. package/assets/settings-B4qmCAFR.js +1 -0
  79. package/assets/settings-screen-m0Uy9zlo.js +1 -0
  80. package/assets/{shield-check-BktB9xgz.js → shield-check-Cs0C_oxK.js} +1 -1
  81. package/assets/{suggested-vips-CmHb5WaT.js → suggested-vips-CtCLsdy6.js} +1 -1
  82. package/assets/{useDebouncedValue-DlyzBdqd.js → useDebouncedValue-DU11pzlc.js} +1 -1
  83. package/assets/useFilters-BBJu_93Q.js +1 -0
  84. package/assets/useLabels-GtiakPKP.js +1 -0
  85. package/assets/useMessageBodyContent-BOBb68Px.js +1 -0
  86. package/assets/{useQueries-B-aYaD8d.js → useQueries-Dx2PHSps.js} +1 -1
  87. package/assets/useRefreshControl-CWjutjgw.js +1 -0
  88. package/assets/{useSearchTokenContext-Dpl3C3yN.js → useSearchTokenContext-DH5XswlU.js} +4 -4
  89. package/assets/useSemanticSearch-CZUtmciE.js +1 -0
  90. package/assets/useSignature-HAuR6_Ul.js +1 -0
  91. package/index.html +2 -2
  92. package/package.json +1 -1
  93. package/assets/BriefPane-BH4C3dLA.js +0 -1
  94. package/assets/FlaggedPane-Bx8o8jcX.js +0 -1
  95. package/assets/MailViewChrome-CNywrIYr.js +0 -1
  96. package/assets/MailboxPane-CBUf4RMT.js +0 -1
  97. package/assets/OnboardingWizard-CVgzD3hy.js +0 -1
  98. package/assets/OutboxPane-BxAQvF2m.js +0 -1
  99. package/assets/_mailboxId-BjXkByox.js +0 -1
  100. package/assets/_messageId-C3Ex2aTK.js +0 -1
  101. package/assets/_messageId-C_uTJLZJ.js +0 -1
  102. package/assets/_messageId-Cq1MMY1y.js +0 -1
  103. package/assets/_outboxMessageId-yXv0wqF1.js +0 -1
  104. package/assets/_threadId-9F3WBJ7b.js +0 -1
  105. package/assets/_threadId-CHYDYhMA.js +0 -1
  106. package/assets/_threadId-DAypvq_q.js +0 -1
  107. package/assets/advanced-BWphupC9.js +0 -4
  108. package/assets/attachment-file-B4nazean.js +0 -1
  109. package/assets/bottom-sheet-D-zZ-Ztc.js +0 -1
  110. package/assets/brief-QvkLl3Xq.js +0 -1
  111. package/assets/browser-ponyfill-DYQZeblA.js +0 -2
  112. package/assets/compose._-_outboxMessageId_-B0wVDNtg.js +0 -1
  113. package/assets/compose._-_outboxMessageId_-BgkhRDHR.js +0 -1
  114. package/assets/compose._-_outboxMessageId_-IlQ7bZjJ.js +0 -1
  115. package/assets/compose._-_outboxMessageId_-ckob2lG-.js +0 -1
  116. package/assets/confirm-dialog-BeWZSgTL.js +0 -1
  117. package/assets/filters-DQwnkuFu.js +0 -1
  118. package/assets/flagged-KEPxze7A.js +0 -1
  119. package/assets/folders-DSaMJ8g_.js +0 -1
  120. package/assets/index-B8kF4cHs.js +0 -1
  121. package/assets/index-BwO3HmU5.js +0 -1
  122. package/assets/index-C_uTJLZJ.js +0 -1
  123. package/assets/index-Cq1MMY1y.js +0 -1
  124. package/assets/index-D81-y_-k.js +0 -1
  125. package/assets/index-DMMbHmw7.js +0 -1
  126. package/assets/index-DhPAqRyZ.js +0 -1
  127. package/assets/index-kEVKBUOf.js +0 -1
  128. package/assets/labels-B09LuD3F.js +0 -1
  129. package/assets/mail-CyEa53oG.js +0 -1
  130. package/assets/onboarding-DD5frk6X.js +0 -1
  131. package/assets/outbox-DR0YZs6I.js +0 -1
  132. package/assets/row-actions-Bgax_YZA.js +0 -1
  133. package/assets/search-token-index-BxytxF1H.js +0 -1
  134. package/assets/senders-dS1BVDQU.js +0 -1
  135. package/assets/settings-Cs9rwA_N.js +0 -1
  136. package/assets/settings-screen-D0fhHptg.js +0 -1
  137. package/assets/useFilters-CJkmZ6i7.js +0 -1
  138. package/assets/useLabels-DL6gxLzs.js +0 -1
  139. package/assets/useMessageBodyContent-DHYriZRr.js +0 -1
  140. package/assets/useRefreshControl-DUEqZD7x.js +0 -1
  141. package/assets/useSemanticSearch-DCoRQGtD.js +0 -1
  142. package/assets/useSignature-D4_HRnT6.js +0 -1
@@ -1 +0,0 @@
1
- import{bz as Ts,bA as js,j as r,bB as ws,aF as dt,B as te,S as ks,b as Ee,aG as Pt,r as c,C as Ms,d as Rs,ba as Es,w as It,D as Tt,E as As,ak as jt,bC as Os,bD as Ns,I as zs,h as Fs,T as Bt,bE as Ds,b5 as Ls,bF as _s,bG as Ps,ai as $t,aT as Bs,aU as $s,g as Ws,a7 as wt,bH as Ks,Z as Wt,b8 as Vs,z as Hs,b9 as qs,aQ as Us,bI as Qs,a6 as Js,bJ as Gs,bK as Ys,bL as Xs,bM as Zs,bN as en,v as Kt,bO as tn,K as sn,bP as nn,bQ as on,a9 as rn,bR as an,bj as ln}from"./index-BMM2gkfY.js";import{u as cn,p as dn,R as un}from"./useSearchTokenContext-Dpl3C3yN.js";import{u as hn,a as fn,R as mn}from"./useRefreshControl-DUEqZD7x.js";import{C as Vt,a as Ht,c as qt,j as gn,M as pn,t as Ut,u as xn,b as bn,d as Qt,e as Jt,f as vn,g as Sn,h as yn,r as Cn,n as In,i as Tn,k as jn,l as wn,m as kn,o as Mn,S as Rn,p as En,D as An,q as On,s as Nn,v as Gt,w as zn,x as Fn,y as Dn,z as Ln,A as _n,B as Yt,E as Pn,F as Bn,G as $n,H as Wn,I as Kn,J as Vn,K as Nt,L as zt,N as Hn,O as qn,P as Un,Q as Qn,R as Jn,T as Gn,U as Yn,V as Xn,W as Zn,X as eo,Y as to,Z as so,_ as Xt,$ as Zt,a0 as es,a1 as no,a2 as oo,a3 as io,a4 as ts,a5 as ro,a6 as ao,a7 as lo}from"./MailListHeader-BpL0hiB2.js";import{S as co,M as uo,a as ho,u as fo,b as mo}from"./MailViewChrome-CNywrIYr.js";import{A as kt}from"./avatar-lcZ4TVQd.js";import{b as Qe,d as go,c as ss}from"./format-Dquh5i8-.js";import{b as po,c as xo,a as bo,u as vo}from"./useMessageBodyContent-DHYriZRr.js";import{k as Je,i as So,t as yo,l as Co,m as Io,n as To,e as jo,o as wo}from"./search-token-index-BxytxF1H.js";import{N as ko}from"./NavMenuButton-meKsCAv8.js";import{C as Mo}from"./confirm-dialog-BeWZSgTL.js";import{f as Ro}from"./ErrorState-CBV6FtSJ.js";import{a as Eo}from"./useLabels-DL6gxLzs.js";import{L as Ao,r as Oo,u as No}from"./useSemanticSearch-DCoRQGtD.js";import{S as ut}from"./shield-check-BktB9xgz.js";import{B as zo}from"./bottom-sheet-D-zZ-Ztc.js";import{C as Fo}from"./circle-help-DbSK9hyF.js";import{C as Do}from"./circle-check-wwq1h3jr.js";import{n as Lo}from"./search-query-Cr_ZXBCp.js";import{u as _o}from"./index-znJrox9Y.js";const Po=({children:e,onRefresh:n,isRefreshing:t})=>Ts(js)?e:r.jsx(ws,{onRefresh:n,isPullable:!t,children:e}),Bo=e=>e===1?"message":"messages";function $o({count:e,onReview:n,onDismiss:t,actionLabel:s="Review & rescue"}){return r.jsx(dt,{tone:"info",variant:"soft",onDismiss:t,children:r.jsxs("div",{className:"flex flex-col gap-2",children:[r.jsxs("p",{className:"flex items-start gap-2 text-sm text-fg",children:[r.jsx(ut,{className:"mt-0.5 size-4 shrink-0 text-positive","aria-hidden":!0}),r.jsxs("span",{children:[r.jsx("span",{className:"font-semibold text-fg",children:`${e} ${Bo(e)} here`})," ","may not be spam — they're from senders we can verify."]})]}),r.jsx(te,{variant:"primary",size:"sm",onClick:n,className:"self-start",children:s})]})})}const Wo=(e,n)=>e==="vip"?"vip":e==="unknown"&&n==="md"?"unknown-pill":"hidden",ns=({senderTrust:e,size:n="sm",className:t})=>{const s=Wo(e,n);return s==="vip"?r.jsx(ks,{className:Ee("text-warning shrink-0",n==="sm"&&"size-3.5",n==="md"&&"size-4",t),"aria-label":"VIP sender","data-testid":"sender-trust-vip"}):s==="unknown-pill"?r.jsx("span",{className:Ee("inline-flex items-center rounded border border-dashed border-fg-subtle/40 font-medium uppercase tracking-wide text-fg-muted/80 shrink-0","px-2 py-0.5 text-xs",t),title:"First message from this sender","aria-label":"First message from this sender","data-testid":"sender-trust-unknown",children:"new"}):null};function Ko({candidate:e,selected:n,onToggle:t,hideSender:s=!1}){const{senderName:o,senderAddress:i,subject:l,snippet:a,trustReason:d,trustSubReason:u,senderTrust:h}=e;return r.jsxs("label",{className:Ee("flex w-full cursor-pointer items-start gap-3 px-3 py-2.5 text-left transition-colors",s&&"pl-11",n?"bg-positive/10":"bg-surface hover:bg-surface-sunken"),children:[r.jsx(Vt,{className:"mt-0.5",checked:n,onChange:t,"aria-label":`${n?"Deselect":"Select"} ${s?l:`message from ${o}`}`}),!s&&r.jsx(kt,{name:o,email:i,size:"sm"}),r.jsxs("span",{className:"min-w-0 flex-1",children:[!s&&r.jsxs("span",{className:"flex items-center gap-1.5",children:[r.jsx("span",{className:"truncate text-sm font-medium text-fg",children:o}),h&&r.jsx(ns,{senderTrust:h,size:"sm"}),r.jsx("span",{className:"truncate text-2xs text-fg-subtle",children:i})]}),r.jsx("span",{className:"block truncate text-sm text-fg-muted",children:l}),r.jsx("span",{className:"block line-clamp-1 text-xs text-fg-subtle",children:a}),!s&&r.jsxs("span",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[r.jsxs(Pt,{tone:"positive",children:[r.jsx(ut,{className:"size-3","aria-hidden":!0}),d]}),r.jsx("span",{className:"text-2xs text-fg-subtle",children:u})]})]})]})}const Vo=e=>{const n=new Map,t=[];for(const s of e){const o=(s.senderAddress||s.senderName).toLowerCase(),i=n.get(o);if(i){i.messages.push(s);continue}n.set(o,{key:o,senderName:s.senderName,senderAddress:s.senderAddress,trustReason:s.trustReason,trustSubReason:s.trustSubReason,senderTrust:s.senderTrust,messages:[s]}),t.push(o)}return t.map(s=>n.get(s)).sort((s,o)=>o.messages.length-s.messages.length)},Ho=(e,n)=>{const t=e.messages.filter(s=>n.has(s.id)).length;return t===0?"none":t===e.messages.length?"all":"some"},Ft=e=>e===1?"message":"messages";function qo({group:e,selected:n,onToggleGroup:t,onToggleMessage:s}){const[o,i]=c.useState(!1),l=Ho(e,n),a=e.messages.length,d=o?Ms:Rs;return r.jsxs("div",{className:Ee(l!=="none"?"bg-positive/10":"bg-surface"),children:[r.jsxs("div",{className:"flex w-full items-start gap-3 px-3 py-2.5",children:[r.jsx(Vt,{className:"mt-0.5",checked:l==="all",indeterminate:l==="some",onChange:()=>t(e,l!=="all"),"aria-label":`${l==="all"?"Deselect":"Select"} all ${a} ${Ft(a)} from ${e.senderName}`}),r.jsx(kt,{name:e.senderName,email:e.senderAddress,size:"sm"}),r.jsxs("div",{className:"min-w-0 flex-1",children:[r.jsxs("div",{className:"flex items-center gap-1.5",children:[r.jsx("span",{className:"truncate text-sm font-medium text-fg",children:e.senderName}),e.senderTrust&&r.jsx(ns,{senderTrust:e.senderTrust,size:"sm"}),r.jsx("span",{className:"truncate text-2xs text-fg-subtle",children:e.senderAddress})]}),r.jsxs("div",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[r.jsxs(Pt,{tone:"positive",children:[r.jsx(ut,{className:"size-3","aria-hidden":!0}),e.trustReason]}),r.jsx("span",{className:"text-2xs text-fg-subtle",children:e.trustSubReason})]})]}),r.jsxs("button",{type:"button",onClick:()=>i(u=>!u),"aria-expanded":o,className:"flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-2xs text-fg-muted transition-colors hover:bg-surface-sunken hover:text-fg",children:[`${a} ${Ft(a)}`,r.jsx(d,{className:"size-3.5","aria-hidden":!0})]})]}),o&&r.jsx("div",{className:"divide-y divide-line border-t border-line",children:e.messages.map(u=>r.jsx(Ko,{candidate:u,selected:n.has(u.id),onToggle:()=>s(u.id),hideSender:!0},u.id))})]})}const Mt=e=>e===1?"message":"messages",Uo=(e,n)=>`Moves ${e===1?"this message":`these ${e} ${Mt(e)}`} out of Spam to ${n} now. Nothing later.`,Ct=(e,n)=>e.find(t=>t.id===n)?.label??"Inbox";function Qo(){return r.jsx(dt,{tone:"info",variant:"soft",children:r.jsx("p",{className:"text-2xs text-fg-muted",children:"We list a message here only when we can confirm the sender is who they say — usually someone you've emailed before, write to often, or a service that consistently checks out. We never guess from words in the subject. Anything we can't confirm stays in Spam."})})}function Jo({candidates:e,selected:n,onToggle:t,onToggleGroup:s,onSelectAll:o,onSelectNone:i,onContinue:l,onCancel:a}){const[d,u]=c.useState(!1),h=n.size,g=c.useMemo(()=>Vo(e),[e]);return r.jsxs("div",{className:"flex min-h-0 flex-col",children:[r.jsxs("div",{className:"px-row-inset pb-2 pt-1",children:[r.jsxs("div",{className:"flex items-start justify-between gap-2",children:[r.jsxs("h2",{className:"flex items-center gap-2 text-sm font-semibold text-fg",children:[r.jsx(ut,{className:"size-4 text-positive","aria-hidden":!0}),"Rescue from Spam"]}),r.jsx(te,{variant:"ghost",size:"sm",icon:r.jsx(Fo,{className:"size-3.5"}),onClick:()=>u(m=>!m),className:"-mr-1.5 -mt-0.5",children:"Why these?"})]}),r.jsx("p",{className:"mt-1 text-2xs text-fg-subtle",children:"These look safe — from senders we can verify. Uncheck any sender that belongs in Spam, or open a sender to pick individual messages."}),d&&r.jsx("div",{className:"mt-2",children:r.jsx(Qo,{})})]}),r.jsxs("div",{className:"flex items-center justify-between px-row-inset pb-1.5",children:[r.jsx("span",{className:"text-2xs font-medium text-fg-muted",children:`${h} of ${e.length} selected · ${g.length} ${g.length===1?"sender":"senders"}`}),r.jsxs("span",{className:"flex gap-1",children:[r.jsx(te,{variant:"ghost",size:"sm",onClick:o,children:"Select all"}),r.jsx(te,{variant:"ghost",size:"sm",onClick:i,children:"Select none"})]})]}),r.jsx("div",{className:"min-h-0 flex-1 divide-y divide-line overflow-y-auto border-y border-line",children:g.map(m=>r.jsx(qo,{group:m,selected:n,onToggleGroup:s,onToggleMessage:t},m.key))}),r.jsxs("div",{className:"space-y-2 border-t border-line bg-surface px-row-inset py-3",children:[r.jsx(te,{variant:"primary",onClick:l,className:"h-11 w-full font-semibold",children:`Continue with ${h} ${Mt(h)}`}),r.jsx(te,{variant:"ghost",onClick:a,className:"h-11 w-full",children:"Cancel"})]})]})}function Go({count:e,folders:n,delimiter:t,destination:s,onPick:o,onMove:i,onBack:l}){const[a,d]=c.useState(!1);return r.jsxs("div",{className:"flex min-h-0 flex-col",children:[r.jsxs("div",{className:"px-row-inset pb-2 pt-1",children:[r.jsx("h2",{className:"text-sm font-semibold text-fg",children:"Where should they go?"}),r.jsx("p",{className:"mt-1 text-2xs text-fg-subtle",children:"Pick a folder, then we move them out of Spam."})]}),r.jsx("div",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto px-row-inset py-2",children:a?r.jsx("div",{className:"flex min-h-0 flex-1 overflow-hidden rounded-xl border border-line bg-surface",children:r.jsx(Es,{folders:n,selectedId:s,delimiter:t,onSelect:o,onCancel:()=>d(!1)})}):r.jsxs("div",{className:"rounded-xl border border-line bg-surface-sunken p-3",children:[r.jsx("p",{className:"text-2xs text-fg-subtle",children:"Destination"}),r.jsx("p",{className:"mt-0.5 text-sm font-medium text-fg",children:Ct(n,s)}),r.jsx(te,{variant:"ghost",size:"sm",onClick:()=>d(!0),className:"mt-2 px-0",children:"Move to a different folder"})]})}),r.jsxs("div",{className:"space-y-2 border-t border-line bg-surface px-row-inset py-3",children:[r.jsx("p",{className:"text-2xs text-fg-subtle",children:Uo(e,Ct(n,s))}),r.jsx(te,{variant:"primary",onClick:i,className:"h-11 w-full font-semibold",children:`Move ${e} out of Spam`}),r.jsx(te,{variant:"ghost",onClick:l,className:"h-11 w-full",children:"Back"})]})]})}function Yo({count:e,destinationLabel:n,onClose:t}){return r.jsxs("div",{className:"flex min-h-0 flex-col",children:[r.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 px-row-inset py-10 text-center",children:[r.jsx(Do,{className:"size-10 text-positive","aria-hidden":!0}),r.jsx("p",{className:"text-base font-semibold text-fg",children:`Moved ${e} ${Mt(e)} out of Spam.`}),r.jsx("p",{className:"text-2xs text-fg-subtle",children:`You'll find them in ${n}.`})]}),r.jsx("div",{className:"border-t border-line bg-surface px-row-inset py-3",children:r.jsx(te,{variant:"primary",onClick:t,className:"h-11 w-full font-semibold",children:"Done"})})]})}function Xo({open:e,candidates:n,defaultDestinationId:t,availableFolders:s,delimiter:o,onConfirmMove:i,onCancel:l}){const[a,d]=c.useState("review"),[u,h]=c.useState(()=>e?new Set(n.map(I=>I.id)):new Set),[g,m]=c.useState(t),[p,C]=c.useState(0),b=c.useRef(!1);c.useEffect(()=>{e&&!b.current&&(d("review"),h(new Set(n.map(I=>I.id))),m(t),C(0)),b.current=e},[e,n,t]);const w=u.size,v=I=>{h(T=>{const E=new Set(T);return E.has(I)?E.delete(I):E.add(I),E})},x=(I,T)=>{h(E=>{const A=new Set(E);for(const L of I.messages)T?A.add(L.id):A.delete(L.id);return A})},k=()=>{const I=Array.from(u);C(I.length),i(I,g),d("done")};return r.jsxs(zo,{open:e,onClose:l,dismissLabel:"Close rescue",children:[a==="review"&&r.jsx(Jo,{candidates:n,selected:u,onToggle:v,onToggleGroup:x,onSelectAll:()=>h(new Set(n.map(I=>I.id))),onSelectNone:()=>h(new Set),onContinue:()=>d("destination"),onCancel:l}),a==="destination"&&r.jsx(Go,{count:w,folders:s,delimiter:o,destination:g,onPick:m,onMove:k,onBack:()=>d("review")}),a==="done"&&r.jsx(Yo,{count:p,destinationLabel:Ct(s,g),onClose:l})]})}function Zo(e){const n=e.toAddresses.join(", ");return{id:e.outboxMessageId,accountId:e.accountId,fromName:e.fromName??e.fromAddress??"Me",fromEmail:e.fromAddress??"",subject:e.subject??"(No subject)",snippet:n?`To: ${n}`:"(No recipients)",timeLabel:Qe(e.updatedAt),isRead:!0}}function ei(e){return{id:e.messageId,accountId:e.accountId,fromName:e.fromName??e.fromEmail??"Unknown",fromEmail:e.fromEmail??"",subject:e.subject??"(No subject)",snippet:e.snippet??"",timeLabel:Qe(e.sentDate),isRead:e.isRead,hasAttachment:e.hasAttachment,starred:e.hasStars===!0}}function ti({outboxMessages:e,accountId:n,imapThreads:t}){const s=e.filter(l=>l.status==="draft"&&l.accountId===n).map(Zo),o=t.map(ei),i=[];return s.length>0&&i.push({id:"remit-drafts",label:"Not yet sent (Remit)",threads:s}),o.length>0&&i.push({id:"imap-drafts",label:"On the server",threads:o}),i}const si=({label:e,count:n})=>r.jsxs("div",{className:"sticky top-0 z-10 flex items-baseline justify-between border-b border-line bg-surface-sunken px-row-inset py-1",children:[r.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e}),r.jsx("span",{className:"text-2xs text-fg-subtle tabular-nums",children:n})]}),ni=({row:e,isSelected:n,onOpen:t,onDelete:s,isDeleting:o})=>r.jsxs("button",{type:"button",onClick:()=>t(e.id),className:Ee("group",qt({active:n})),children:[r.jsx(Fs,{className:"size-7 shrink-0 text-fg-muted mt-0.5"}),r.jsx(Ht,{thread:e}),r.jsx("div",{className:"flex items-center gap-1 shrink-0",children:r.jsx("button",{type:"button",onClick:i=>{i.stopPropagation(),s(e.id)},disabled:o,className:"p-1.5 rounded-md text-fg-muted hover:text-danger hover:bg-surface-raised transition-colors opacity-0 group-hover:opacity-100 focus:opacity-100",title:"Delete draft",children:r.jsx(Bt,{className:"size-3.5"})})})]}),oi=({row:e,isSelected:n,onOpen:t})=>{const s=!e.isRead;return r.jsxs("button",{type:"button",onClick:()=>t(e.id),className:Ee("group",qt({active:n})),children:[s&&r.jsx("span",{className:"absolute left-1.5 top-1/2 size-1.5 -translate-y-1/2 rounded-full bg-accent"}),r.jsx(kt,{name:e.fromName,email:e.fromEmail,size:"sm"}),r.jsx(Ht,{thread:e})]})};function ii({accountId:e,selectedMessageId:n,imapThreads:t,title:s,unreadCount:o}){const i=po(),l=xo(),a=Je(),d=It(),{data:u}=Tt(As()),h=c.useMemo(()=>ti({outboxMessages:u?.items??[],accountId:e,imapThreads:t}),[u?.items,e,t]),g=jt({...Ns(),onSuccess:()=>{d.invalidateQueries({queryKey:Os()})}}),m=b=>{g.mutate({path:{outboxMessageId:b}})},p=b=>{const w=t.find(v=>v.messageId===b)?.threadId;w&&a({threadId:w,messageId:b})},C=h.length===0;return r.jsxs("section",{className:"flex h-full w-full flex-col bg-surface",children:[r.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[r.jsx(ko,{}),r.jsx("h1",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:s}),(o??0)>0&&r.jsxs("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:[o," unread"]})]}),r.jsx("div",{className:"flex-1 overflow-y-auto",children:C?r.jsxs("div",{className:"flex flex-col items-center justify-center h-full gap-2 text-center px-4",children:[r.jsx(zs,{className:"size-8 text-fg-subtle"}),r.jsx("p",{className:"text-sm font-medium text-fg",children:"No drafts"}),r.jsx("p",{className:"text-xs text-fg-subtle",children:"Messages you start composing will appear here."})]}):h.map(b=>r.jsxs("div",{children:[b.label&&r.jsx(si,{label:b.label,count:b.threads.length}),r.jsx("div",{className:"divide-y divide-line",children:b.threads.map(w=>b.id==="remit-drafts"?r.jsx(ni,{row:w,isSelected:w.id===i,onOpen:l,onDelete:m,isDeleting:g.isPending},w.id):r.jsx(oi,{row:w,isSelected:w.id===n,onOpen:p},w.id))})]},b.id))})]})}const os=e=>e===1?"1 message":`${ss(e)} messages`,ri=e=>({title:"Empty Trash?",description:`${os(e)} ${e===1?"is":"are"} erased from the mail server and cannot be restored.`,confirmLabel:"Empty Trash"}),ai=(e,n={})=>{const{trashFolderLabel:t,staleFolderLabel:s}=n;if(e==="unconfirmed"){const o=go(0,"unconfirmed",{trashFolderLabel:t});return{headline:o.title,body:o.description,actionLabel:o.confirmLabel}}return e==="stale"?{headline:"Nothing was emptied.",body:s?`The folder you chose for Trash — ${s} — is gone from the mail server.`:"The folder you chose for Trash is gone from the mail server.",actionLabel:"Pick another folder"}:{headline:"Nothing was emptied.",body:"No folder on this account is set as Trash.",actionLabel:"Pick a folder"}};function li({messageCount:e,isEmptying:n,deletedCount:t,refusalReason:s,trashFolderLabel:o,staleFolderLabel:i,onEmpty:l,onRepair:a,children:d}){const[u,h]=c.useState(!1);if(e<1&&s===void 0&&t===void 0)return r.jsx(r.Fragment,{children:d});const g=s?ai(s,{trashFolderLabel:o,staleFolderLabel:i}):void 0,m=ri(e);return r.jsxs("div",{className:"relative flex h-full min-h-0 flex-col",children:[r.jsx("div",{className:"shrink-0 px-row-inset pt-2",children:r.jsxs("div",{className:"flex flex-col gap-2 rounded-md border border-line px-3 py-2",children:[r.jsxs("div",{className:"flex items-center justify-end gap-2",children:[t!==void 0&&r.jsx("p",{className:"mr-auto text-2xs text-fg-subtle",role:"status",children:`${os(t)} erased from the mail server.`}),r.jsx(te,{variant:"ghost",size:"sm",icon:r.jsx(Bt,{className:"size-3.5","aria-hidden":!0}),disabled:n||e<1,"aria-busy":n,onClick:()=>h(!0),children:n?"Emptying…":"Empty Trash"})]}),g&&r.jsx(dt,{tone:"warning",variant:"soft",children:r.jsxs("div",{className:"flex flex-col gap-2",children:[r.jsx("p",{className:"font-semibold text-fg",children:g.headline}),r.jsx("p",{className:"text-sm",children:g.body}),r.jsx(te,{variant:"primary",size:"sm",className:"self-start",onClick:a,children:g.actionLabel})]})})]})}),r.jsx("div",{className:"min-h-0 flex-1",children:d}),r.jsx(Mo,{isOpen:u,title:m.title,description:m.description,confirmLabel:m.confirmLabel,destructive:!0,onConfirm:()=>{h(!1),l()},onCancel:()=>h(!1)})]})}function ci(e,n,t){const s=new Array(e);return new Proxy(s,{get(o,i,l){if(typeof i=="string"){const a=i.charCodeAt(0);if(a>=48&&a<=57){const d=+i;if(Number.isInteger(d)&&d>=0&&d<e){let u=o[d];if(!u){const h=n[d*2];u=o[d]={index:d,key:t(d),start:h,size:n[d*2+1],end:h+n[d*2+1],lane:0}}return u}}if(i==="length")return e}return Reflect.get(o,i,l)}})}function _e(e,n,t){let s=t.initialDeps??[],o,i=!0;function l(){const a=e();return(a.length!==s.length||a.some((u,h)=>s[h]!==u))&&(s=a,o=n(...a),t?.onChange&&!(i&&t.skipInitialOnChange)&&t.onChange(o),i=!1),o}return l.updateDeps=a=>{s=a},l}function Dt(e,n){if(e===void 0)throw new Error("Unexpected undefined");return e}const di=(e,n)=>Math.abs(e-n)<1.01,ui=(e,n,t)=>{let s;return function(...o){e.clearTimeout(s),s=e.setTimeout(()=>n.apply(this,o),t)}};let Ue;const St=()=>{if(Ue!==void 0)return Ue;if(typeof navigator>"u")return Ue=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return Ue=!0;const e=navigator.maxTouchPoints;return Ue=navigator.platform==="MacIntel"&&e!==void 0&&e>0},Lt=e=>{const{offsetWidth:n,offsetHeight:t}=e;return{width:n,height:t}},hi=e=>e,fi=e=>{const n=Math.max(e.startIndex-e.overscan,0),s=Math.min(e.endIndex+e.overscan,e.count-1)-n+1,o=new Array(s);for(let i=0;i<s;i++)o[i]=n+i;return o},mi=(e,n)=>{const t=e.scrollElement;if(!t)return;const s=e.targetWindow;if(!s)return;const o=l=>{const{width:a,height:d}=l;n({width:Math.round(a),height:Math.round(d)})};if(o(Lt(t)),!s.ResizeObserver)return()=>{};const i=new s.ResizeObserver(l=>{const a=()=>{const d=l[0];if(d?.borderBoxSize){const u=d.borderBoxSize[0];if(u){o({width:u.inlineSize,height:u.blockSize});return}}o(Lt(t))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(a):a()});return i.observe(t,{box:"border-box"}),()=>{i.unobserve(t)}},ct={passive:!0},gi=typeof window>"u"?!0:"onscrollend"in window,pi=(e,n,t)=>{const s=e.scrollElement;if(!s)return;const o=e.targetWindow;if(!o)return;const i=e.options.useScrollendEvent&&gi;let l=0;const a=i?null:ui(o,()=>n(l,!1),e.options.isScrollingResetDelay),d=g=>()=>{l=t(s),a?.(),n(l,g)},u=d(!0),h=d(!1);return s.addEventListener("scroll",u,ct),i&&s.addEventListener("scrollend",h,ct),()=>{s.removeEventListener("scroll",u),i&&s.removeEventListener("scrollend",h)}},xi=(e,n)=>pi(e,n,t=>{const{horizontal:s,isRtl:o}=e.options;return s?t.scrollLeft*(o&&-1||1):t.scrollTop}),bi=(e,n,t)=>{if(t.options.useCachedMeasurements){const s=t.indexFromElement(e),o=t.options.getItemKey(s);return t.itemSizeCache.get(o)??t.options.estimateSize(s)}if(n?.borderBoxSize){const s=n.borderBoxSize[0];if(s)return Math.round(s[t.options.horizontal?"inlineSize":"blockSize"])}if(!n){const s=t.indexFromElement(e),o=t.options.getItemKey(s),i=t.itemSizeCache.get(o);if(i!==void 0)return i}return e[t.options.horizontal?"offsetWidth":"offsetHeight"]},vi=(e,{adjustments:n=0,behavior:t},s)=>{var o,i;(i=(o=s.scrollElement)==null?void 0:o.scrollTo)==null||i.call(o,{[s.options.horizontal?"left":"top"]:e+n,behavior:t})},Si=vi;class yi{constructor(n){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var t,s,o;return((o=(s=(t=this.targetWindow)==null?void 0:t.performance)==null?void 0:s.now)==null?void 0:o.call(s))??Date.now()},this.observer=(()=>{let t=null;const s=()=>t||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:t=new this.targetWindow.ResizeObserver(o=>{o.forEach(i=>{const l=()=>{const a=i.target,d=this.indexFromElement(a);if(!a.isConnected){this.observer.unobserve(a);for(const[u,h]of this.elementsCache)if(h===a){this.elementsCache.delete(u);break}return}this.shouldMeasureDuringScroll(d)&&this.resizeItem(d,this.options.measureElement(a,i,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(l):l()})}));return{disconnect:()=>{var o;(o=s())==null||o.disconnect(),t=null},observe:o=>{var i;return(i=s())==null?void 0:i.observe(o,{box:"border-box"})},unobserve:o=>{var i;return(i=s())==null?void 0:i.unobserve(o)}}})(),this.range=null,this.setOptions=t=>{var s,o;const i={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:hi,rangeExtractor:fi,onChange:()=>{},measureElement:bi,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,anchorTo:"start",followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",useCachedMeasurements:!1};for(const m in t){const p=t[m];p!==void 0&&(i[m]=p)}const l=this.options;let a=null,d=null,u=!1;if(l!==void 0&&l.enabled&&i.enabled&&i.anchorTo==="end"&&this.scrollElement!==null){const m=l.count,p=i.count,C=this.getMeasurements(),b=m>0?((s=C[0])==null?void 0:s.key)??l.getItemKey(0):null,w=m>0?((o=C[m-1])==null?void 0:o.key)??l.getItemKey(m-1):null;if(p!==m||m>0&&p>0&&(i.getItemKey(0)!==b||i.getItemKey(p-1)!==w)){u=!0;const k=m>0?this.getVirtualItemForOffset(this.getScrollOffset())??C[0]:null;k&&(a=[k.key,this.getScrollOffset()-k.start]);const I=i.followOnAppend===!0?"auto":i.followOnAppend||null;I&&p>m&&this.isAtEnd(l.scrollEndThreshold)&&(m===0||i.getItemKey(p-1)!==w)&&(d=I)}}this.options=i,u&&(this.pendingMin=0,this.itemSizeCacheVersion++);let h=!1,g=0;if(a&&this.scrollOffset!==null){const[m,p]=a,C=this.getMeasurements(),{count:b,getItemKey:w}=this.options;let v=0;for(;v<b&&w(v)!==m;)v++;if(v<b){const x=C[v];if(x){const k=x.start+p;k!==this.scrollOffset&&(g=k-this.scrollOffset,this.scrollOffset=k,h=!0)}}}(h||d)&&(this.pendingScrollAnchor=[h?a[0]:null,h?a[1]:0,d,g])},this.notify=t=>{var s,o;(o=(s=this.options).onChange)==null||o.call(s,this,t)},this.maybeNotify=_e(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),t=>{this.notify(t)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(t=>t()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var t;const s=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==s){if(this.cleanup(),!s){this.maybeNotify();return}if(this.scrollElement=s,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((t=this.scrollElement)==null?void 0:t.window)??null,this.elementsCache.forEach(i=>{this.observer.observe(i)}),this.unsubs.push(this.options.observeElementRect(this,i=>{this.scrollRect=i,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(i,l)=>{if(l&&this._intendedScrollOffset===null&&i===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(i-this._intendedScrollOffset)<1.5&&(i=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;const a=this.getScrollOffset();this.scrollDirection=l?a===i?this.scrollDirection:a<i?"forward":"backward":null,this.scrollOffset=i,this.isScrolling=l,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),"addEventListener"in this.scrollElement){const i=this.scrollElement,l=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},a=()=>{this._iosTouching=!1,!(!St()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};i.addEventListener("touchstart",l,ct),i.addEventListener("touchend",a,ct),this.unsubs.push(()=>{i.removeEventListener("touchstart",l),i.removeEventListener("touchend",a),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}const o=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,o&&this.scrollElement&&this.options.enabled){const[i,l,a,d]=o;i!==null&&!a&&(St()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?d!==0&&(this._iosDeferredAdjustment+=d):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),a&&this.scrollToEnd({behavior:a})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;const t=this.getScrollOffset(),s=this.getMaxScrollOffset();if(t<0||t>s)return;const o=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(t,{adjustments:this.scrollAdjustments+=o,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getMeasurementOptions=_e(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode,this.options.gap],(t,s,o,i,l,a,d,u)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:t,paddingStart:s,scrollMargin:o,getItemKey:i,enabled:l,lanes:a,laneAssignmentMode:d,gap:u}),{key:!1}),this.getMeasurements=_e(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:t,paddingStart:s,scrollMargin:o,getItemKey:i,enabled:l,lanes:a,laneAssignmentMode:d,gap:u},h)=>{const g=this.itemSizeCache;if(!l)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>t)for(const v of this.laneAssignments.keys())v>=t&&this.laneAssignments.delete(v);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(v=>{this.itemSizeCache.set(v.key,v.size)}));const m=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===t&&(this.lanesSettling=!1),a===1){const v=t*2;let x=this._flatMeasurements;if(!x||x.length<v){const T=new Float64Array(v);x&&m>0&&T.set(x.subarray(0,m*2)),x=T,this._flatMeasurements=x}let k;if(m===0)k=s+o;else{const T=m-1;k=x[T*2]+x[T*2+1]+u}for(let T=m;T<t;T++){const E=i(T),A=g.get(E),L=typeof A=="number"?A:this.options.estimateSize(T);x[T*2]=k,x[T*2+1]=L,k+=L+u}const I=ci(t,x,i);return this.measurementsCache=I,I}const p=this.measurementsCache.slice(0,m),C=new Array(a).fill(void 0),b=new Float64Array(a);let w=0;for(let v=0;v<m;v++){const x=p[v];x&&(C[x.lane]===void 0&&w++,C[x.lane]=v,b[x.lane]=x.end)}for(let v=m;v<t;v++){const x=i(v),k=this.laneAssignments.get(v);let I,T;const E=d==="estimate"||g.has(x);if(k!==void 0&&this.options.lanes>1){I=k;const F=C[I],J=F!==void 0?p[F]:void 0;T=J?J.end+u:s+o}else if(w===a){let F=0,J=b[0],_=C[0];for(let G=1;G<a;G++){const se=b[G];(se<J||se===J&&C[G]<_)&&(F=G,J=se,_=C[G])}I=F,T=J+u,E&&this.laneAssignments.set(v,I)}else I=v%this.options.lanes,T=s+o,E&&this.laneAssignments.set(v,I);const A=g.get(x),L=typeof A=="number"?A:this.options.estimateSize(v),O=T+L;p[v]={index:v,start:T,size:L,end:O,key:x,lane:I},C[I]===void 0&&w++,C[I]=v,b[I]=O}return this.measurementsCache=p,p},{key:!1,debug:()=>this.options.debug}),this.calculateRange=_e(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(t,s,o,i)=>t.length===0||s===0?(this.range=null,null):(this.range=Ii(t,s,o,i,i===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=_e(()=>{let t=null,s=null;const o=this.calculateRange();return o&&(t=o.startIndex,s=o.endIndex),this.maybeNotify.updateDeps([this.isScrolling,t,s]),[this.options.rangeExtractor,this.options.overscan,this.options.count,t,s]},(t,s,o,i,l)=>i===null||l===null?[]:t({startIndex:i,endIndex:l,overscan:s,count:o}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=t=>{const s=this.options.indexAttribute,o=t.getAttribute(s);return o?parseInt(o,10):(console.warn(`Missing attribute name '${s}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=t=>{var s;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const o=this.scrollState.index??((s=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:s.index);if(o!==void 0&&this.range){const i=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),l=Math.max(0,o-i),a=Math.min(this.options.count-1,o+i);return t>=l&&t<=a}return!0},this.measureElement=t=>{if(!t){this.elementsCache.forEach((l,a)=>{l.isConnected||(this.observer.unobserve(l),this.elementsCache.delete(a))});return}const s=this.indexFromElement(t),o=this.options.getItemKey(s),i=this.elementsCache.get(o);i!==t&&(i&&this.observer.unobserve(i),this.observer.observe(t),this.elementsCache.set(o,t)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(s)&&this.resizeItem(s,this.options.measureElement(t,void 0,this))},this.resizeItem=(t,s)=>{var o,i;if(t<0||t>=this.options.count)return;let l,a,d;const u=this._flatMeasurements;if(this.options.lanes===1&&u!==null)d=this.options.getItemKey(t),a=u[t*2],l=u[t*2+1];else{const m=this.measurementsCache[t];if(!m)return;d=m.key,a=m.start,l=m.size}const h=this.itemSizeCache.get(d)??l,g=s-h;if(g!==0){const m=this.options.anchorTo==="end"&&((o=this.scrollState)==null?void 0:o.behavior)!=="smooth"&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,p=m?this.getTotalSize():0,C=((i=this.scrollState)==null?void 0:i.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[t]??{index:t,key:d,start:a,size:l,end:a+l,lane:0},g,this):a<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(d)||this.scrollDirection!=="backward"));(this.pendingMin===null||t<this.pendingMin)&&(this.pendingMin=t),this.itemSizeCache.set(d,s),this.itemSizeCacheVersion++,m?this.applyScrollAdjustment(this.getTotalSize()-p):C&&this.applyScrollAdjustment(g),this.notify(!1)}},this.getVirtualItems=_e(()=>[this.getVirtualIndexes(),this.getMeasurements()],(t,s)=>{const o=[];for(let i=0,l=t.length;i<l;i++){const a=t[i],d=s[a];o.push(d)}return o},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=t=>{const s=this.getMeasurements();if(s.length===0)return;const o=this._flatMeasurements,i=this.options.lanes===1&&o!=null,l=is(0,s.length-1,i?a=>o[a*2]:a=>Dt(s[a]).start,t);return Dt(s[l])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const t=this.scrollElement.document.documentElement;return this.options.horizontal?t.scrollWidth-this.scrollElement.innerWidth:t.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(t=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=t,this.getOffsetForAlignment=(t,s,o=0)=>{if(!this.scrollElement)return 0;const i=this.getSize(),l=this.getScrollOffset();s==="auto"&&(s=t>=l+i?"end":"start"),s==="center"?t+=(o-i)/2:s==="end"&&(t-=i);const a=this.getMaxScrollOffset();return Math.max(Math.min(a,t),0)},this.getOffsetForIndex=(t,s="auto")=>{t=Math.max(0,Math.min(t,this.options.count-1));const o=this.getSize(),i=this.getScrollOffset(),l=this.measurementsCache[t];if(!l)return;if(s==="auto")if(l.end>=i+o-this.options.scrollPaddingEnd)s="end";else if(l.start<=i+this.options.scrollPaddingStart)s="start";else return[i,s];if(s==="end"&&t===this.options.count-1)return[this.getMaxScrollOffset(),s];const a=s==="end"?l.end+this.options.scrollPaddingEnd:l.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,s,l.size),s]},this.scrollToOffset=(t,{align:s="start",behavior:o="auto"}={})=>{const i=this.getOffsetForAlignment(t,s),l=this.now();this.scrollState={index:null,align:s,behavior:o,startedAt:l,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:o}),this.scheduleScrollReconcile()},this.scrollToIndex=(t,{align:s="auto",behavior:o="auto"}={})=>{t=Math.max(0,Math.min(t,this.options.count-1));const i=this.getOffsetForIndex(t,s);if(!i)return;const[l,a]=i,d=this.now();this.scrollState={index:t,align:a,behavior:o,startedAt:d,lastTargetOffset:l,stableFrames:0},this._scrollToOffset(l,{adjustments:void 0,behavior:o}),this.scheduleScrollReconcile()},this.scrollBy=(t,{behavior:s="auto"}={})=>{const o=this.getScrollOffset()+t,i=this.now();this.scrollState={index:null,align:"start",behavior:s,startedAt:i,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:t="auto"}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:"end",behavior:t});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:t})},this.getTotalSize=()=>{var t;const s=this.getMeasurements();let o;if(s.length===0)o=this.options.paddingStart;else if(this.options.lanes===1){const i=s.length-1,l=this._flatMeasurements;l!=null?o=l[i*2]+l[i*2+1]:o=((t=s[i])==null?void 0:t.end)??0}else{const i=Array(this.options.lanes).fill(null);let l=s.length-1;for(;l>=0&&i.some(a=>a===null);){const a=s[l];i[a.lane]===null&&(i[a.lane]=a.end),l--}o=Math.max(...i.filter(a=>a!==null))}return Math.max(o-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{const t=[];if(this.itemSizeCache.size===0)return t;const s=this.getMeasurements();for(const o of s)o&&this.itemSizeCache.has(o.key)&&t.push({index:o.index,key:o.key,start:o.start,size:o.size,end:o.end,lane:o.lane});return t},this._scrollToOffset=(t,{adjustments:s,behavior:o})=>{this._intendedScrollOffset=t+(s??0),this.options.scrollToFn(t,{behavior:o,adjustments:s},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(n)}applyScrollAdjustment(n,t){n!==0&&(St()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=n:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=n,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const s=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,o=s?s[0]:this.scrollState.lastTargetOffset,i=1,l=o!==this.scrollState.lastTargetOffset;if(!l&&di(o,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=i){this.getScrollOffset()!==o&&this._scrollToOffset(o,{adjustments:void 0,behavior:"auto"}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,l){const a=this.getSize()||600,d=Math.abs(o-this.getScrollOffset()),u=this.scrollState.behavior==="smooth"&&d>a;this.scrollState.lastTargetOffset=o,u||(this.scrollState.behavior="auto"),this._scrollToOffset(o,{adjustments:void 0,behavior:u?"smooth":"auto"})}this.scheduleScrollReconcile()}}const is=(e,n,t,s)=>{for(;e<=n;){const o=(e+n)/2|0,i=t(o);if(i<s)e=o+1;else if(i>s)n=o-1;else return o}return e>0?e-1:0};function Ci(e,n,t){let s=0;for(;s<=n;){const o=(s+n)/2|0,i=e[o*2];if(i<t)s=o+1;else if(i>t)n=o-1;else return o}return s>0?s-1:0}function Ii(e,n,t,s,o){const i=e.length-1;if(e.length<=s)return{startIndex:0,endIndex:i};if(s===1&&o!==null){const u=Ci(o,i,t);let h=u;const g=t+n;for(;h<i&&o[h*2]+o[h*2+1]<g;)h++;return{startIndex:u,endIndex:h}}let a=is(0,i,u=>e[u].start,t),d=a;if(s===1)for(;d<i&&e[d].end<t+n;)d++;else if(s>1){const u=Array(s).fill(0);for(;d<i&&u.some(g=>g<t+n);){const g=e[d];u[g.lane]=g.end,d++}const h=Array(s).fill(t+n);for(;a>=0&&h.some(g=>g>=t);){const g=e[a];h[g.lane]=g.start,a--}a=Math.max(0,a-a%s),d=Math.min(i,d+(s-1-d%s))}return{startIndex:a,endIndex:d}}const yt=typeof document<"u"?c.useLayoutEffect:c.useEffect;function Ti({useFlushSync:e=!0,directDomUpdates:n=!1,directDomUpdatesMode:t="transform",...s}){const o=c.useReducer(u=>u+1,0)[1],i=c.useRef({enabled:n,mode:t,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});i.current.enabled=n,i.current.mode=t;const l=u=>{const h=i.current;if(!h.enabled||!h.container)return;const g=u.getTotalSize();if(g!==h.lastSize){h.lastSize=g;const v=u.options.horizontal?"width":"height";h.container.style[v]=`${g}px`}const m=!!u.options.horizontal,p=h.mode==="transform",C=m?"left":"top",b=u.options.scrollMargin,w=u.getVirtualItems();for(const v of w){const x=v.start-b,k=u.elementsCache.get(v.key);k&&h.lastPositions.get(k)!==x&&(h.lastPositions.set(k,x),p?k.style.transform=m?`translate3d(${x}px, 0, 0)`:`translate3d(0, ${x}px, 0)`:k.style[C]=`${x}px`)}},a={...s,onChange:(u,h)=>{var g;const m=i.current;let p=!0;if(m.enabled){l(u);const C=u.range,b=m.prevRange;p=!b||b.isScrolling!==u.isScrolling||b.startIndex!==C?.startIndex||b.endIndex!==C?.endIndex,p&&(m.prevRange=C?{startIndex:C.startIndex,endIndex:C.endIndex,isScrolling:u.isScrolling}:null)}p&&(e&&h?Ds.flushSync(o):o()),(g=s.onChange)==null||g.call(s,u,h)}},[d]=c.useState(()=>{const u=new yi(a);return Object.assign(u,{containerRef:h=>{const g=i.current;if(g.container=h,g.lastSize=null,h&&g.enabled){const m=u.getTotalSize();g.lastSize=m;const p=u.options.horizontal?"width":"height";h.style[p]=`${m}px`}}})});return d.setOptions(a),yt(()=>d._didMount(),[]),yt(()=>d._willUpdate()),yt(()=>{l(d)}),d}function ji(e){return Ti({observeElementRect:mi,observeElementOffset:xi,scrollToFn:Si,...e})}const Rt=e=>e.query?`matching "${e.query}"`:e.from?`from "${e.from}"`:"matching your search",wi=e=>`Select all ${Rt(e)}`,ki=(e,n)=>`All ${ss(n)} ${Rt(e)} selected`,Mi=({verb:e,confirmingDelete:n,hasSelection:t,junkMailboxId:s,currentMailboxId:o,deletableMessageId:i})=>{if(n)return{kind:"withheld"};if(e==="junk"){const l=gn(s,o);if(l!==void 0)return{kind:"unavailable",reason:l}}return t?{kind:"openWizard"}:e!=="delete"||i===void 0?{kind:"declined"}:{kind:"confirmDelete",messageId:i}},Ri=(e,n,t)=>e==="BACK"&&n&&t===void 0,Ei=(e,n)=>({id:e.messageId,accountId:e.accountId,mailboxId:e.mailboxId,threadId:e.threadId,fromName:e.fromName??e.fromEmail??"Unknown",fromEmail:e.fromEmail??"",subject:e.subject??"(No subject)",snippet:e.snippet??"",timeLabel:Qe(e.sentDate),isRead:e.isRead,hasAttachment:e.hasAttachment,starred:e.hasStars===!0,trust:e.senderTrust,category:Ut(e.category),messageCount:n,suspicious:e.authenticity?.dkimMismatch===!0,labels:e.labels}),Ai=({thread:e,mailboxId:n,isSelected:t,isFocused:s,isTabStop:o,onFocusRow:i,isChecked:l,onToggleCheck:a,onRowSelect:d,messageCount:u,isMultiSelectMode:h,onLongPress:g,isDesktop:m,density:p})=>r.jsx(pn,{thread:Ei(e,u),link:{mailboxId:n,threadId:e.threadId},inListbox:!0,active:t,focused:s,isTabStop:o,density:p,isDesktop:m,onFocusRow:i,selection:{isChecked:l,onToggleCheck:a,onRowSelect:d,isMultiSelectMode:h,onLongPress:g}}),Oi=c.memo(Ai),Ni=e=>{const n=e.authenticity?.dkimMismatch===!0;return{id:e.messageId,accountId:e.accountId,fromName:e.fromName??e.fromEmail??"Unknown",fromEmail:e.fromEmail??"",subject:e.subject??"(No subject)",snippet:e.snippet??"",timeLabel:Qe(e.sentDate),isRead:e.isRead,hasAttachment:e.hasAttachment,starred:e.hasStars===!0,trust:e.senderTrust,category:Ut(e.category),suspicious:n}},zi=({thread:e,mailboxId:n,isSelected:t,isFocused:s,isTabStop:o,onFocusRow:i,isChecked:l,onToggleCheck:a,onRowSelect:d,isMultiSelectMode:u,onLongPress:h,isDesktop:g,onDelete:m,onToggleRead:p,density:C})=>{const[b,w]=c.useState("none"),v=Je(),x=c.useCallback(A=>{navigator.vibrate?.(10),A==="trailing"?m(e.messageId):p(e.messageId,e.isRead),w("none")},[m,p,e.messageId,e.isRead]),k=c.useCallback(()=>{h(e.messageId)},[h,e.messageId]),I=c.useCallback(()=>{a(e.messageId)},[a,e.messageId]),T=c.useCallback(()=>{v({threadId:e.threadId,messageId:e.messageId})},[v,e.threadId,e.messageId]),E=xn(e.messageId,d);return g||u?r.jsx(Oi,{thread:e,mailboxId:n,isSelected:t,isFocused:s,isTabStop:o,onFocusRow:i,isChecked:l,onToggleCheck:a,onRowSelect:d,isMultiSelectMode:u,onLongPress:h,isDesktop:g,density:C}):r.jsx("div",{role:"presentation",onPointerDownCapture:E.onMouseDown,onClickCapture:E.claimClick,onContextMenu:E.onContextMenu,children:r.jsx(co,{thread:Ni(e),selectionMode:!1,checked:!1,active:t,peek:b,onPeek:w,onToggleCheck:I,onLongPress:k,onOpen:T,onAct:x})})},Fi=72,Di=32,Li=5,rs="remit:list-density",_i=()=>{try{const e=localStorage.getItem(rs);if(e==="compact"||e==="comfortable")return e}catch{}return"comfortable"},Pi=({query:e})=>r.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-line bg-surface-sunken/30",children:[r.jsx(Ws,{className:"size-4 text-fg-muted"}),r.jsxs("span",{className:"text-sm text-fg-muted",children:["Results for “",e,"”"]})]}),Bi=(e,n,t)=>Oo(e.filter(s=>n.has(s.messageId)).map(s=>s.accountId??t)).moveDisabledHint,$i=({mailboxId:e,threads:n,selectedMessageId:t,isLoading:s,isError:o=!1,error:i,onRetry:l,searchQuery:a,searchPredicate:d,onDeleteMessages:u,isDeleting:h=!1,isMoving:g=!1,onLoadMore:m,hasMore:p=!1,isLoadingMore:C=!1,accountId:b,listTitle:w,listMeta:v,listFilter:x,listScopeLabel:k,onTriageContextChange:I,commandsRef:T,hideHeader:E=!1})=>{const A=c.useRef(null),L=Je(),O=Ls(),F=_s(),{verb:J,start:_,startFromSearch:G}=F,se=Ps(),pe=!!a?.trim(),P=bn(),{labels:Pe}=Eo(b),{pushError:ae}=$t(),[M,Ce]=c.useState(t),[W,Ie]=c.useState(),K=c.useCallback(f=>{Ie(S=>S===f?S:void 0),Ce(f)},[]),[D,Be]=c.useState(_i),xe=c.useCallback(()=>{Be(f=>{const S=f==="comfortable"?"compact":"comfortable";try{localStorage.setItem(rs,S)}catch{}return S})},[]),{toggleReadFor:be}=Qt({mailboxId:e}),{junkMailboxId:le}=Jt(b),Ae=Gt(le,e),Oe=c.useMemo(()=>[{accountId:b,mailboxId:e}],[b,e]),{outcome:ce,staleFolderLabel:V,guessedMailboxId:H}=vn(Oe),{selectedIds:Z,selectedCount:q,hasSelection:oe,isSelected:Ne,toggle:ee,select:Te,clearSelection:de,selectRange:ue,setAnchor:N,selectAll:je,toggleAll:$e,intersectWith:ze}=Sn(),R=Nn(q,O),[Fe,he]=c.useState(null),We=pe&&!!d,Ge=`${e}|${JSON.stringify(d??{})}`,j=yn({mailboxId:e,accountId:b,enabled:We,predicateKey:Ge,searchQuery:d??{}}),Ye=c.useCallback((f,S,ge)=>{const Q=Cn(f,S,ge,ce);Q&&ae(Q)},[ae,ce]),we=j.phase.kind,Xe=j.clear,z=c.useCallback(()=>{we==="escalated"&&Xe(),de()},[de,Xe,we]),[Ze,et]=c.useState(null),ve=c.useRef(null),ie=c.useRef(!1),Se=c.useRef(null),ke=!s&&n.length>0,ne=ji({count:n.length,getScrollElement:()=>A.current,estimateSize:()=>D==="compact"?Di:Fi,overscan:Li}),Ke=t?n.findIndex(f=>f.messageId===t):-1,Y=M?n.findIndex(f=>f.messageId===M):-1,re=c.useCallback(f=>{if(f<0||f>=n.length)return;const S=n[f];if(R){ee(S.messageId);return}ve.current=S.messageId,ie.current=!1,Ie(S.messageId),Ce(S.messageId)},[n,R,ee]),Ve=c.useCallback(()=>{if(n.length===0)return;const f=Y<0?0:Math.min(Y+1,n.length-1);re(f)},[n.length,Y,re]),He=c.useCallback(()=>{if(n.length===0)return;const f=Y<=0?0:Y-1;re(f)},[n.length,Y,re]),ye=c.useCallback(()=>re(0),[re]),Me=c.useCallback(()=>re(n.length-1),[re,n.length]),Re=c.useCallback(()=>{M&&ee(M)},[M,ee]),B=c.useMemo(()=>n.map(f=>f.messageId),[n]),ft=c.useMemo(()=>{const f=[];for(const S of n)Z.has(S.messageId)&&f.push({id:S.messageId,sender:S.fromName??S.fromEmail??"Unknown",email:S.fromEmail??"",subject:S.subject??"(No subject)",date:Qe(S.sentDate),accountId:b});return f},[n,Z,b]),mt=c.useCallback((f,S)=>S.shiftKey?(ue(B,f,M),!0):S.metaKey||S.ctrlKey?(ee(f),!0):(z(),N(f),!1),[B,M,ue,ee,z,N]),fe=c.useCallback(f=>{!u||f.length===0||(Se.current=M??null,he(f))},[u,M]),De=c.useCallback(f=>{const S=In(B,M,f);S!==void 0&&(ue(B,S),ve.current=S,ie.current=!1,Ie(void 0),Ce(S))},[B,M,ue]),tt=c.useCallback(()=>De(-1),[De]),st=c.useCallback(()=>De(1),[De]),nt=c.useCallback(()=>{B.length>0&&je(B)},[B,je]),ot=c.useCallback(f=>{const S=Mi({verb:f,confirmingDelete:Fe!==null,hasSelection:oe,junkMailboxId:le,currentMailboxId:e,deletableMessageId:u?M:void 0});return S.kind==="openWizard"?(_(f),!0):S.kind==="confirmDelete"?(fe([S.messageId]),!0):S.kind==="unavailable"?(ae({severity:"warning",title:S.reason}),!0):S.kind==="withheld"},[Fe,u,oe,le,e,_,M,fe,ae]),me=c.useCallback((f,S)=>{const ge=n.find(Q=>Q.messageId===f)?.threadId;ge&&L({threadId:ge,messageId:f},{replace:S?.replace})},[L,n]),it=c.useCallback(()=>{M&&me(M)},[M,me]),rt=c.useCallback(f=>me(f,{replace:!0}),[me]);Tn({keyboardFocusedMessageId:W,openMessageId:t,enabled:O&&q===0,open:rt});const Le=j.phase.kind==="escalated"?{scope:Rt(d??{}),total:j.phase.total,searchQuery:d??{},run:f=>j.runAction(f),stop:j.stop}:void 0,gt=c.useCallback(f=>{if(f.length===0){he(null);return}const S=new Set(f),ge=n.findIndex(X=>S.has(X.messageId));let Q;for(let X=ge+1;X<n.length;X++)if(!S.has(n[X].messageId)){Q=n[X].messageId;break}if(Q===void 0){for(let X=ge-1;X>=0;X--)if(!S.has(n[X].messageId)){Q=n[X].messageId;break}}u?.(f),z(),Se.current=null,he(null),Q!==void 0&&(ve.current=Q,ie.current=!1,K(Q),O&&me(Q,{replace:!0})),O||et(jn("delete",f.length,ce))},[n,u,z,me,O,K,ce]),pt=c.useCallback(()=>{const f=Se.current;Se.current=null,he(null),f!==null&&(ve.current=f,ie.current=!1,K(f))},[K]),qe=c.useMemo(()=>Bi(n,Z,b),[b,Z,n]),at=c.useCallback(()=>{if(Le){G();return}_("organize")},[Le,G,_]),xt=c.useCallback(f=>{u?.([f])},[u]),y=c.useCallback((f,S)=>{be([f],!S)},[be]),U=c.useCallback(f=>{O||Te(f)},[O,Te]),$=c.useCallback(()=>{if(j.isRunning||j.phase.kind==="counting"){j.stop();return}z()},[j,z]),ds=c.useCallback(()=>{j.clear()},[j]);c.useEffect(()=>{if(ie.current||!O&&t)return;const f=Y>=0?Y:Ke;f>=0&&ne.scrollToIndex(f,{align:"auto"})},[Y,Ke,ne,O,t]),c.useEffect(()=>{t&&(ie.current=!1,K(t))},[t,K]),c.useEffect(()=>{M&&(n.some(f=>f.messageId===M)||K(n[0]?.messageId))},[n,M,K]),c.useEffect(()=>{I?.({focusedMessageId:M,selectedIds:Array.from(Z),hasList:ke})},[M,Z,ke,I]);const Et=c.useRef(I);Et.current=I,c.useEffect(()=>()=>Et.current?.({focusedMessageId:void 0,selectedIds:[],hasList:!1}),[]),c.useEffect(()=>{j.phase.kind!=="idle"||j.isRunning||ze(n.map(f=>f.messageId))},[n,ze,j.phase,j.isRunning]);const At=c.useRef(e);c.useEffect(()=>{At.current!==e&&(At.current=e,z())},[e,z]),wn({shouldBlockFn:({action:f})=>Ri(f,oe,se)?(z(),!0):!1,enableBeforeUnload:!1,disabled:!oe||se!==void 0}),c.useEffect(()=>{const f=A.current;if(!f||!p||!m)return;const S=()=>{if(C)return;const{scrollTop:ge,scrollHeight:Q,clientHeight:X}=f;ge+X>=Q-200&&m()};return f.addEventListener("scroll",S,{passive:!0}),S(),()=>f.removeEventListener("scroll",S)},[p,C,m]),c.useEffect(()=>{const f=ve.current;if(!f)return;const S=A.current?.querySelector(`[data-message-id="${f}"]`);S&&(ve.current=null,S.focus({preventScroll:!0}))}),c.useEffect(()=>{if(T){if(!ke){T.current=null;return}return T.current={focusNext:Ve,focusPrevious:He,focusFirst:ye,focusLast:Me,openFocused:it,toggleSelect:Re,extendSelectDown:st,extendSelectUp:tt,selectAll:nt,clearSelection:()=>oe?(z(),!0):!1,requestVerb:ot,toggleDensity:xe},()=>{T.current=null}}},[T,ke,Ve,He,ye,Me,it,Re,st,tt,nt,oe,z,ot,xe]);const Ot=s?"loading":o?"error":n.length===0?"empty":"ready",us=o?Ro(i):void 0,hs=c.useCallback(()=>{const f=Bs($s());window.open(f,"_blank","noopener,noreferrer")},[]),fs=[{id:"inbox",threads:[]}],bt=B.length>0&&B.every(f=>Z.has(f)),ms=We&&p&&bt&&!h&&!g&&j.phase.kind==="idle"&&!j.isRunning,gs=h||g||j.isRunning,vt=j.phase.kind==="escalated"?j.phase.total:q,ps=j.runningAction?kn(j.runningAction.kind,j.progress?.done??0,j.progress?.total??vt):j.phase.kind==="counting"?"Counting matches…":j.phase.kind==="escalated"?ki(d??{},j.phase.total):void 0,xs=j.phase.kind!=="escalated"&&B.length>0?{checked:bt,indeterminate:q>0&&!bt,onChange:()=>$e(B)}:void 0,bs=j.runningAction?{value:j.progress?.done??0,max:j.progress?.total??vt,tone:Mn(j.runningAction.kind)}:void 0,vs=(j.phase.kind==="counting"?{tone:"info",text:"",action:{label:"Stop",onClick:j.stop}}:j.phase.kind==="escalated"&&!j.isRunning?{tone:"info",text:"",action:{label:"Clear selection",onClick:ds}}:ms?{tone:"info",text:"",action:{label:wi(d??{}),onClick:j.escalate}}:void 0)??(qe?{tone:"warning",text:qe}:void 0),Ss=r.jsx(Rn,{title:P.title||w,navSlot:P.navSlot,titleMeta:P.titleMeta,searchSlot:P.searchSlot,searchField:P.searchField,idleSlot:P.makeFilterSlot,count:vt,onCancel:$,onDelete:()=>_("delete"),onMove:()=>_("move"),onOrganize:at,onJunk:Ae?()=>_("junk"):void 0,onMarkRead:()=>_("markRead"),overflowSlot:b&&e&&q>0&&Pe.length>0?r.jsx(Ao,{accountId:b,mailboxId:e,messageIds:Array.from(Z)}):void 0,isBusy:gs,isCounting:j.phase.kind==="counting",selectAll:xs,statusLabel:ps,progress:bs,notice:vs}),ys=En(B,M),Cs=c.useCallback(f=>{ie.current=!0,K(f)},[K]),Is=r.jsxs(r.Fragment,{children:[pe&&a&&r.jsx(Pi,{query:a}),r.jsxs("div",{ref:A,role:"listbox","aria-multiselectable":!0,"aria-label":w,className:"flex-1 overflow-y-auto",children:[r.jsx("div",{role:"presentation",className:"relative w-full",style:{height:`${ne.getTotalSize()}px`},children:ne.getVirtualItems().map(f=>{const S=n[f.index];return r.jsx("div",{role:"presentation","data-index":f.index,ref:ne.measureElement,className:Ee("absolute left-0 top-0 w-full border-b border-line",j.isRunning&&"pointer-events-none opacity-50"),style:{transform:`translateY(${f.start}px)`},children:r.jsx(zi,{thread:S,mailboxId:e,isSelected:t===S.messageId,isFocused:M===S.messageId,isTabStop:ys===S.messageId,onFocusRow:Cs,isChecked:Ne(S.messageId),onToggleCheck:ee,onRowSelect:mt,isMultiSelectMode:R,onLongPress:U,isDesktop:O,onDelete:xt,onToggleRead:y,density:D})},f.key)})}),C&&r.jsx(uo,{})]})]});return r.jsxs(r.Fragment,{children:[Ze&&!O&&r.jsx(dt,{tone:"success",variant:"soft",className:"m-2 rounded-md",onDismiss:()=>et(null),children:Ze}),r.jsx(ho,{listTitle:w,listMeta:v,sections:fs,flatList:!0,listState:P.searchResults?"ready":Ot,searchQuery:pe?a:void 0,listFilter:x,listScopeLabel:k,errorMessage:us,onRetry:l,onReportError:hs,density:D,selectedThreadId:t,onSelectThread:f=>me(f),isDesktop:O,hideHeader:E,selectionBar:Ss,listBody:P.searchResults??(Ot==="ready"?Is:void 0)}),r.jsx(An,{isOpen:Fe!==null,messageIds:Fe??[],outcome:ce,accountId:b,trashFolderLabel:w,staleFolderLabel:V,guessedMailboxId:H,isDeleting:h,onConfirm:gt,onCancel:pt}),r.jsx(On,{verb:J,accountId:b,mailboxId:e,selection:ft,selectionRestriction:qe?"spansAccounts":void 0,escalated:Le,escalatedProgress:j.progress,onFinished:z,onRunEnded:Ye})]})},Wi=e=>Wt({path:{accountId:e}}),Ki=e=>{const n=It(),t=wt(),s=jt({...Ks(),onSuccess:()=>{t.recordEvent("sync.triggered"),n.invalidateQueries({queryKey:Wi(e)})}});return{trigger:()=>{s.mutate({path:{accountId:e}})},triggerAsync:()=>s.mutateAsync({path:{accountId:e}}),isPending:s.isPending,error:s.error,reset:s.reset}},Vi=({accountId:e,children:n})=>{const{triggerAsync:t,isPending:s}=Ki(e);return r.jsx(Po,{onRefresh:t,isRefreshing:s,children:n})};function Hi({accountId:e,currentMailboxId:n,candidates:t,onMove:s,children:o}){const[i,l]=c.useState(!1),a=wt(),d=Vs(),{inboxMailboxId:u}=zn(e),h=Fn(e),{data:g}=Tt({...Hs({path:{accountId:e}}),staleTime:1/0}),m=c.useMemo(()=>qs({mailboxes:g?.items??[],folderAppointments:h,currentMailboxId:n,translator:d}),[g?.items,h,n,d]),p=c.useMemo(()=>u||(m.find(x=>x.label.toLowerCase()==="inbox")?.id??m.find(x=>!x.isCurrent)?.id??""),[u,m]),C=c.useRef(!1);c.useEffect(()=>{C.current||(C.current=!0,Dn(a,t.length))},[a,t.length]);const b=c.useCallback(()=>{Ln(a,t.length),l(!0)},[a,t.length]),w=c.useCallback((v,x)=>{_n(a,{selected:v.length,total:t.length,toInbox:x===u}),s(v,x)},[a,t.length,u,s]);return r.jsxs("div",{className:"relative flex h-full min-h-0 flex-col",children:[r.jsx("div",{className:"shrink-0 px-row-inset pt-2",children:r.jsx($o,{count:t.length,onReview:b})}),r.jsx("div",{className:"min-h-0 flex-1",children:o}),r.jsx(Xo,{open:i,candidates:t,defaultDestinationId:p,availableFolders:m,delimiter:Us(g?.items??[]),onConfirmMove:w,onCancel:()=>l(!1)})]})}const qi=(e,n,t,s)=>`${e??""}|${n}|${t??""}|${s??""}`,Ui=({accountId:e,mailboxId:n})=>{const t=It(),{pushError:s}=$t(),{requestAppointment:o}=Qs(),{trashByAccount:i}=Yt(),l=e?i.get(e):void 0,a=qi(e,n,l?.mailboxId,l?.source),[d,u]=c.useState({scope:a});d.scope!==a&&u({scope:a});const h=d.scope===a?d:void 0,g=c.useCallback(()=>t.getQueryData(Js())?.accounts.find(T=>T.accountId===e)?.folderAppointments.find(T=>T.role==="Trash")?.mailboxId??n,[t,e,n]),m=c.useRef(void 0),{mutateAsync:p,isPending:C}=jt({...Xs(),onMutate:()=>(m.current=a,{scope:a,listMailboxId:g()}),onSuccess:(x,k,I)=>{I.scope===a&&u({scope:a,deletedCount:x.deletedCount})},onError:(x,k,I)=>{const T=Gs(x);if(!T){s({title:"Couldn't empty Trash",detail:Ys(x),error:x});return}I?.scope===a&&u({scope:a,refusal:T})},onSettled:(x,k,I,T)=>{m.current===T?.scope&&(m.current=void 0),So(t,yo([T?.listMailboxId??n])),e&&t.invalidateQueries({queryKey:Wt({path:{accountId:e}})})}}),b=c.useCallback(()=>e?(u({scope:a}),p({path:{accountId:e}}).then(()=>{},()=>{})):Promise.resolve(),[e,a,p]),w=c.useCallback(()=>{b()},[b]),v=c.useCallback(()=>{const x=h?.refusal;x&&o({accountId:x.accountId,role:x.role,reason:x.reason,action:{kind:"emptyTrash"},onAppointed:b})},[h,o,b]);return{emptyTrash:w,isEmptying:C&&m.current===a,deletedCount:h?.deletedCount,refusal:h?.refusal,repair:v}},Qi="We can verify this sender";function Ji(e){const{data:n}=Tt({...Zs({path:{mailboxId:e??""},query:{senderTrust:["vip","wellknown"],dkimMismatch:!1,results:!0,limit:500}}),enabled:!!e,staleTime:6e4});return{candidates:(n?.items??[]).map(s=>({id:s.messageId,senderName:s.fromName||s.fromEmail||"Unknown sender",senderAddress:s.fromEmail??"",subject:s.subject||"(no subject)",snippet:s.snippet??"",trustReason:Qi,trustSubReason:Pn(s.senderTrust),senderTrust:s.senderTrust}))}}const Gi=e=>{const n=new Set,t=[];for(const s of e)n.has(s.threadMessageId)||(n.add(s.threadMessageId),t.push(s));return t},Yi={unread:"unread",flagged:"starred",attachment:"attachments"},Xi=new Set(Object.values(en)),as=e=>Xi.has(e),Zi=e=>as(e.category)||e.attributes.size>0,er=e=>{const n={};as(e.category)&&(n.category=[e.category]);for(const t of e.attributes){const s=Yi[t];s&&(n[s]=!0)}return n},tr=e=>(e.senderTrust?.length??0)>0||e.dkimMismatch!==void 0?"loaded-pages":"whole-folder",sr=["category","unread","starred","attachments"],_t=e=>JSON.stringify(sr.map(n=>e?.[n]??null)),nr=e=>{if(!Array.isArray(e))return;const[n]=e;if(typeof n!="object"||n===null)return;const t=n.query;if(!(typeof t!="object"||t===null))return t},or=(e,n)=>{const t=nr(e);return t?_t(t)===_t(n):!1},lt=e=>e[0],ir=e=>{const n=lt(e.filter(a=>a.type==="from").map(a=>a.value)),t=lt(e.filter(a=>a.type==="subject").map(a=>a.value)),s=lt(e.filter(a=>a.type==="category").map(a=>a.category)),o=lt(e.filter(a=>a.type==="isUnread"||a.type==="isRead").map(a=>a.type==="isUnread")),i=e.some(a=>a.type==="isStarred")?!0:void 0,l=e.some(a=>a.type==="hasAttachment")?!0:void 0;return{...n!==void 0?{from:n}:{},...t!==void 0?{subject:t}:{},...s!==void 0?{category:[s]}:{},...o!==void 0?{unread:o}:{},...i!==void 0?{starred:i}:{},...l!==void 0?{attachments:l}:{}}},rr=(e,n)=>{switch(n.type){case"from":return e.from?.toLowerCase()===n.value.toLowerCase();case"subject":return e.subject?.toLowerCase()===n.value.toLowerCase();case"category":return e.category?.length===1&&e.category[0]===n.category;case"isUnread":return e.unread===!0;case"isRead":return e.unread===!1;case"isStarred":return e.starred===!0;case"hasAttachment":return e.attachments===!0;case"before":case"after":case"in":case"account":return!1}};function ar(e,n={}){const t=ir(e),s={...t,...n};return{params:t,residual:e.filter(o=>!rr(s,o))}}function lr(e,n,t){if(n.length===0)return e;const s=[...n];return e.filter(o=>{const i=Bn(o);return $n({...i,accountId:i.accountId??t},s)})}const cr=50,dr=new Map(ts().categories.filter(e=>e.id!=="all").map(e=>[e.id,e.label])),ls=c.createContext(null);function ht(){const e=c.useContext(ls);if(!e)throw new Error("MailboxPane.* must be used inside <MailboxPane>");return e}function ur({mailboxId:e,thread:n,children:t}){const s=Je(),o=Co(),i=_o(),l=n?.threadId,a=n?.messageId,d=wt(),{accounts:u,searchQuery:h,onToggleIntelligence:g}=Kt(),m=cn(),p=Lo(h),C=p.length>0,{freeText:b,tokens:w}=dn(p,m),[v,x]=c.useState("all"),[k,I]=c.useState(new Set),T=c.useMemo(()=>({category:v,attributes:k}),[v,k]),E=c.useMemo(()=>er(T),[T]),A=C||Zi(T),{params:L,residual:O}=ar(w,E),F={order:"desc",limit:cr,...b?{query:b}:{},...L,...E},J={category:F.category,unread:F.unread,starred:F.starred,attachments:F.attachments},_=A?tn({path:{mailboxId:e},query:F}):sn({path:{mailboxId:e},query:{order:"desc"}}),{data:G,isLoading:se,isError:pe,error:P,refetch:Pe,fetchNextPage:ae,hasNextPage:M,isFetchingNextPage:Ce}=fo({queryKey:_,queryFn:async({pageParam:y})=>{if(A){const{data:$}=await an({path:{mailboxId:e},query:{...F,continuationToken:y},throwOnError:!0});return $}const{data:U}=await ln({path:{mailboxId:e},query:{order:"desc",continuationToken:y},throwOnError:!0});return U},initialPageParam:void 0,getNextPageParam:y=>y.continuationToken,placeholderData:(y,U)=>or(U?.queryKey,J)?y:void 0}),{accountId:W,isLoading:Ie}=Wn(e),K=Io({accounts:u}),D=lr(Kn(Gi(G?.pages.flatMap(y=>y.items??[])??[])),O,W),Be=c.useCallback(y=>{x(y)},[]),xe=c.useCallback(y=>{I(U=>{const $=new Set(U);return $.has(y)?$.delete(y):$.add(y),$})},[]),be=c.useCallback(()=>{x("all"),I(new Set)},[]),le=dr.get(v),Ae=le?{label:le,reach:O.length>0?"loaded-pages":tr(F),onClear:be}:void 0,Oe=l?D.find(y=>y.messageId===a)??D.find(y=>y.threadId===l):void 0,ce=Vn(l,a),V=Oe??ce,H=a??V?.messageId,Z=c.useMemo(()=>{if(l)return{threadId:l,mailboxId:V?.mailboxId??e,subject:V?.subject,messageId:H,authenticity:V?.authenticity}},[l,V,H,e]),q=c.useCallback(y=>{H&&y.includes(H)&&o()},[H,o]),{deleteMessages:oe,isPending:Ne}=Nt({mailboxId:e,onAfterOptimisticRemove:q}),{moveMessages:ee,isPending:Te}=zt({mailboxId:e,accountId:W,onAfterOptimisticRemove:q}),de=c.useRef(null),ue=Hn(),{listCommandsRef:N,onTriageContextChange:je,focusedMessageId:$e,selectedIds:ze}=ue,R=D.find(y=>y.messageId===$e)??V,Fe=To({accounts:u})??0,he=qn({thread:V,isOpen:!0,mailboxId:e,accountId:W,onAfterOptimisticRemove:q}),{draftsMailboxId:We}=Un(W),Ge=We!==void 0&&We===e,{archiveMailboxId:j}=Qn(W),Ye=Jn(),we=nn(),Xe=c.useMemo(()=>on(we,l,H),[we,l,H]),z=c.useMemo(()=>{if(R)return y=>we({threadId:R.threadId,messageId:R.messageId,mode:y})},[we,R]),Ze=bo(),et=rn(),ve=vo(),ie=c.useCallback(y=>y?Ye(y):[],[Ye]),{toggleStar:Se}=Gn({threadId:R?.threadId??"",mailboxId:e}),{toggleReadFor:ke}=Qt({mailboxId:e,accountId:W}),{junkMailboxId:ne}=Jt(W),Ke=ne!=null&&ne===e,Y=Gt(ne,e),{candidates:re}=Ji(Ke?ne:void 0),{moveMessages:Ve}=zt({mailboxId:e,threadId:R?.threadId,accountId:W,onAfterOptimisticRemove:q}),{deleteMessages:He}=Nt({mailboxId:e,threadId:R?.threadId,onAfterOptimisticRemove:q}),{addressId:ye,address:Me}=Yn(R),{updateFlags:Re}=Xn({addressId:ye,senderEmail:R?.fromEmail??void 0}),B=c.useCallback(()=>z?.("reply"),[z]),ft=c.useCallback(()=>z?.("reply-all"),[z]),mt=c.useCallback(()=>z?.("forward"),[z]),fe=c.useCallback(()=>ie(R),[ie,R]),De=c.useCallback(()=>{if(N.current?.requestVerb("delete"))return;const y=fe();y.length>0&&He(y)},[N,fe,He]),tt=c.useCallback(()=>{if(N.current?.requestVerb("junk")||!Y)return;const y=fe();y.length!==0&&(Zn(d,{count:y.length,senderTrust:R?.senderTrust??"unknown",wasRescuable:R?eo(R):!1}),Ve(y,Y))},[N,Y,fe,Ve,d,R]),st=c.useCallback(()=>{if(ze.length>0){const y=!(R?.hasStars??!1),U=new Set(ze);for(const $ of D)U.has($.messageId)&&$.hasStars!==y&&Se($.messageId,$.hasStars);return}R&&Se(R.messageId,R.hasStars)},[ze,D,R,Se]),nt=c.useCallback(()=>{if(N.current?.requestVerb("markRead"))return;const y=fe();if(y.length===0)return;const U=!(R?.isRead??!1);ke(y,U)},[N,fe,R,ke]),ot=c.useCallback(()=>{if(!ye)return;const y=Me?.flags?.muted?.value!==!0;Re({muted:{value:y}})},[ye,Me,Re]),me=c.useCallback(()=>{if(!ye)return;const y=Me?.flags?.vip?.value!==!0;Re({vip:{value:y}})},[ye,Me,Re]),it=c.useCallback(()=>{de.current?.open()},[]),rt=Ge?"drafts":j===e?"archive":ne===e?"junk":"inbox",Le=c.useRef("");c.useEffect(()=>{const y=Le.current;Le.current=p,p.length>0&&y.length===0&&d.recordEvent("search.submitted",{mailboxType:rt})},[p,rt,d]);const{goBack:gt,nextMessageId:pt,previousMessageId:qe}=to({context:ue,orderedIds:D.map(y=>y.messageId),selectedMessageId:H,enabled:!Ze&&!et,hasOpenThread:l!==void 0,onClose:o,handlers:{reply:B,replyAll:ft,forward:mt,delete:De,toggleStar:st,toggleRead:nt,muteSender:ot,blockSender:V?it:void 0,vipSender:me,markJunk:tt,toggleIntelligence:V?()=>de.current?.toggle():void 0,compose:ve,goBrief:()=>i("brief"),goInbox:()=>i("brief"),goSent:()=>i("brief"),goFlagged:()=>i("flagged"),goSettings:()=>i("settings")}}),at=y=>{if(!y)return;const U=D.find($=>$.messageId===y);return U?{threadId:U.threadId,messageId:y}:void 0},xt={mailboxId:e,selectedMessageId:H,selectedThread:V,conversation:Z,onOpenThread:s,threads:D,isLoading:se,isError:pe,error:P,mailboxAccountId:W,mailboxAccountLoading:Ie,mailboxName:K,unreadCount:Fe,isDraftsMailbox:Ge,isSpamFolder:Ke,rescueCandidates:re,filterCategory:v,filterAttributes:k,onSelectFilterCategory:Be,onToggleFilterAttribute:xe,onClearFilters:be,listFilter:Ae,onToggleIntelligence:g,intelligenceRef:de,handleDeselectIfRemoved:q,searchPredicate:C&&O.length===0?F:void 0,onDeleteMessages:oe,onMoveMessages:ee,isDeleting:Ne,isMoving:Te,onLoadMore:ae,hasMore:M,isLoadingMore:Ce,onTriageContextChange:je,listCommandsRef:N,onRetry:()=>Pe(),onReply:Xe,onToolbarDelete:he.deleteThread,onToolbarStar:he.toggleStar,isStarred:he.isStarred,onToolbarMove:he.moveThread,onBack:gt,nextThread:at(pt),previousThread:at(qe)};return r.jsx(ls.Provider,{value:xt,children:t})}function cs(){const{mailboxId:e,selectedMessageId:n,threads:t,isLoading:s,isError:o,error:i,onDeleteMessages:l,onMoveMessages:a,isDeleting:d,isMoving:u,onLoadMore:h,hasMore:g,isLoadingMore:m,mailboxAccountId:p,mailboxName:C,unreadCount:b,isDraftsMailbox:w,isSpamFolder:v,rescueCandidates:x,onTriageContextChange:k,listCommandsRef:I,onRetry:T,filterCategory:E,filterAttributes:A,onSelectFilterCategory:L,onToggleFilterAttribute:O,onClearFilters:F,listFilter:J,searchPredicate:_}=ht(),{searchQuery:G,searchInput:se,accounts:pe,resultFolderIndex:P}=Kt(),Pe=jo(),ae=Je(),M=C??"Inbox",Ce=c.useMemo(()=>ts(),[]),{trashMailboxId:W}=ro(p),Ie=wo({accounts:pe}),{trashByAccount:K}=Yt(),D=Ui({accountId:p,mailboxId:e}),Be=W!=null&&W===e,xe=c.useMemo(()=>p?[p]:[],[p]),{hasNewMail:be}=hn(),{state:le,errorMessage:Ae,refresh:Oe}=fn(xe,{onSettled:T}),ce=c.useMemo(()=>r.jsx(mn,{state:le,onRefresh:Oe,label:`Refresh ${M}`,errorMessage:Ae,hasUpdate:be(xe)}),[le,Oe,M,Ae,be,xe]),V=c.useMemo(()=>t.map(N=>ao(N,P)),[t,P]),{hits:H,isLoading:Z}=No({mailboxId:e,filterCategory:E}),q=c.useMemo(()=>lo(H,t.map(N=>N.threadId),P),[H,t,P]),oe=c.useCallback(N=>{const je=N.threadId??t.find($e=>$e.messageId===N.id)?.threadId;je&&ae({threadId:je,messageId:N.id},{mailboxId:N.mailboxId??e,query:se})},[e,ae,se,t]);if(w&&p)return r.jsx(ii,{accountId:p,selectedMessageId:n,imapThreads:t,title:C??"Drafts",unreadCount:b??void 0});const Ne=r.jsx($i,{mailboxId:e,threads:t,selectedMessageId:n,isLoading:s,isError:o,error:i,onRetry:T,searchQuery:G,searchPredicate:_,onDeleteMessages:l,isDeleting:d,isMoving:u,onLoadMore:h,hasMore:g,isLoadingMore:m,accountId:p,listTitle:M,listFilter:J,listScopeLabel:M,hideHeader:!0,onTriageContextChange:k,commandsRef:I}),ee=pe[0]?.accountId,Te=Pe==="phone"&&ee?r.jsx(Vi,{accountId:ee,children:Ne}):Ne,de=v&&x.length>0&&p?r.jsx(Hi,{accountId:p,currentMailboxId:e,candidates:x,onMove:a,children:Te}):Te,ue=Be?r.jsx(li,{messageCount:Ie,isEmptying:D.isEmptying,deletedCount:D.deletedCount,refusalReason:D.refusal?.reason,trashFolderLabel:C??void 0,staleFolderLabel:p?K.get(p)?.staleFolderPath:void 0,onEmpty:D.emptyTrash,onRepair:D.repair,children:de}):de;return r.jsx(mo,{title:M,unreadCount:b,preset:Ce,selectedCategory:E,activeFilters:A,onSelectCategory:L,onToggleFilter:O,onClearFilters:F,searchResults:V,searchLoading:s,relatedResults:q,relatedLoading:Z,onSelectSearchResult:oe,searchResultsInBody:!0,refreshControl:ce,children:ue})}function hr(){const{mailboxId:e,mailboxAccountId:n,mailboxAccountLoading:t,selectedThread:s,conversation:o,onReply:i,onToolbarDelete:l,onToolbarStar:a,isStarred:d,onToolbarMove:u,handleDeselectIfRemoved:h,intelligenceRef:g}=ht(),m=!!o,p=oo(o?.threadId);Xt(g,p);const C=c.useRef(null),{railFits:b,openRail:w}=p;c.useEffect(()=>{if(!b)return;const x=s?.messageId??null;x&&C.current!==x&&s?.authenticity?.dkimMismatch&&(C.current=x,w())},[b,w,s?.messageId,s?.authenticity?.dkimMismatch]);const v=o?r.jsx(Zt,{threadId:o.threadId,mailboxId:o.mailboxId,subject:o.subject,selectedMessageId:o.messageId,authenticity:o.authenticity,onOpenIntelligence:p.open,listOnScreen:!0}):r.jsx(un,{});return r.jsxs(r.Fragment,{children:[r.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[r.jsx(io,{hasThread:m,messageId:o?.messageId,intelligenceOpen:p.isShowing,canToggleIntelligence:p.canToggle,onToggleIntelligence:p.toggle,onReply:i?()=>i("reply"):void 0,onReplyAll:i?()=>i("reply-all"):void 0,onForward:i?()=>i("forward"):void 0,onDelete:m?l:void 0,onToggleStar:m?a:void 0,isStarred:d,moveContext:m&&n?{accountId:n,currentMailboxId:e,onMove:u}:void 0,moveContextLoading:t}),r.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:v})]}),r.jsx(es,{isOpen:p.drawerOpen,onClose:p.closeDrawer,thread:s,mailboxId:e,accountId:n,onAfterOptimisticRemove:h})]})}function fr(){const{mailboxId:e,mailboxAccountId:n,selectedThread:t,onToggleIntelligence:s,handleDeselectIfRemoved:o}=ht();return r.jsx(no,{onClose:s,thread:t,mailboxId:e,accountId:n,onAfterOptimisticRemove:o})}function mr(){const{mailboxId:e,mailboxAccountId:n,selectedThread:t,conversation:s,onOpenThread:o,onBack:i,nextThread:l,previousThread:a,handleDeselectIfRemoved:d,intelligenceRef:u}=ht(),h=so(s?.threadId??null);return Xt(u,h),s?r.jsxs(r.Fragment,{children:[r.jsx(Zt,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:i,onOpenIntelligence:h.toggle,onSwipeNext:l?()=>o(l):void 0,onSwipePrevious:a?()=>o(a):void 0,mobileIntelligenceOpen:h.isOpen}),r.jsx(es,{isOpen:h.isOpen,onClose:h.close,thread:t,mailboxId:e,accountId:n,onAfterOptimisticRemove:d})]}):r.jsx(cs,{})}const Lr=Object.assign(ur,{List:cs,Reading:hr,Intelligence:fr,Phone:mr});export{Lr as M};
@@ -1 +0,0 @@
1
- import{c as re,j as e,b as z,ap as V,at as oe,r as i,aG as he,aJ as A,aq as R,w as xe,ak as Q,a6 as fe,ao as ye,D as K,aK as Y,a2 as ne,B as E,as as $,an as ge,ar as ve,aF as q,aC as be,I as we}from"./index-BMM2gkfY.js";import{K as Se}from"./kbd-B-P9r9YU.js";import{c as je}from"./account-form-helpers-DhckT_PN.js";import{M as ke}from"./mail-5WLfHo9K.js";const X=re("AtSign",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8",key:"7n84p3"}]]);const Ce=re("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);function Ee({url:t}){return e.jsxs("p",{className:"text-2xs text-fg-subtle",children:["Stored encrypted, used only to connect to your mail server."," ",t?e.jsx("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"text-accent underline",children:"How to create an app password"}):e.jsx("span",{children:"Check your provider's help for app password instructions."})]})}function Ne({raised:t,className:o,...s}){return e.jsx("div",{className:z("rounded-sm border border-line bg-surface",t?"bg-surface-raised shadow-sm":"",o),...s})}function J({value:t,defaultValue:o,onValueChange:s,...n}){return s?e.jsxs(V,{value:t,onChange:a=>s(a.target.value),...n,children:[e.jsx("option",{value:"tls",children:"TLS/SSL"}),e.jsx("option",{value:"starttls",children:"STARTTLS"}),e.jsx("option",{value:"none",children:"None (insecure)"})]}):e.jsxs(V,{defaultValue:o??t,...n,children:[e.jsx("option",{value:"tls",children:"TLS/SSL"}),e.jsx("option",{value:"starttls",children:"STARTTLS"}),e.jsx("option",{value:"none",children:"None (insecure)"})]})}function G(t){return{tls:t==="tls",startTls:t==="starttls"}}function Te({steps:t,activeStep:o}){return e.jsx("ol",{className:"flex items-center gap-1",children:t.map((s,n)=>{const a=n<o,r=n===o;return e.jsxs("li",{className:"flex items-center gap-1",children:[n>0&&e.jsx("span",{className:"h-px w-5 bg-line","aria-hidden":!0}),e.jsxs("span",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:z("flex size-5 items-center justify-center rounded-full text-2xs font-semibold tabular-nums",a&&"bg-accent text-accent-fg",r&&"bg-accent-soft text-accent ring-1 ring-accent",!a&&!r&&"bg-surface-sunken text-fg-subtle"),children:a?e.jsx(oe,{className:"size-3"}):n+1}),e.jsx("span",{className:z("hidden text-2xs sm:inline",r?"font-medium text-fg":"text-fg-subtle"),children:s})]})]},s)})})}function I({steps:t,activeStep:o,title:s,subtitle:n,children:a,footer:r,hideSteps:m}){return e.jsxs("div",{className:"flex min-h-dvh w-full flex-col items-center overflow-y-auto bg-canvas pb-[max(2rem,env(safe-area-inset-bottom,0px))] pl-[max(2rem,env(safe-area-inset-left,0px))] pr-[max(2rem,env(safe-area-inset-right,0px))] pt-[max(2rem,env(safe-area-inset-top,0px))] font-sans text-fg sm:pt-[30vh]",children:[!m&&e.jsx("div",{className:"mb-5 w-full max-w-xl",children:e.jsx(Te,{steps:t,activeStep:o})}),e.jsxs(Ne,{raised:!0,className:"w-full max-w-xl",children:[e.jsxs("div",{className:"px-5 pt-5",children:[e.jsx("h1",{className:"text-xl font-semibold text-fg",children:s}),n&&e.jsx("p",{className:"mt-1 text-sm text-fg-muted",children:n})]}),e.jsx("div",{className:"px-5 py-5",children:a}),r&&e.jsx("div",{className:"flex items-center justify-between gap-3 border-t border-line px-5 py-3",children:r})]})]})}const Pe="Coming soon — use IMAP for now.";function W({name:t,description:o,icon:s,comingSoon:n,selected:a,onSelect:r}){const[m,d]=i.useState(!1),c=()=>{if(r){r();return}n&&d(!0)};return e.jsxs("div",{className:"flex flex-col gap-1.5",children:[e.jsxs("button",{type:"button",onClick:c,"aria-disabled":n||void 0,className:z("flex flex-col items-start gap-2 rounded-sm border p-3 text-left transition-colors",a?"border-accent-2 bg-accent-2-soft":"border-line bg-surface hover:border-line-strong",n&&"opacity-55"),children:[e.jsx("span",{className:z("text-fg-muted",a&&"text-accent-2"),children:s}),e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm font-semibold text-fg",children:t}),n&&e.jsx("span",{className:"rounded-full bg-surface-sunken px-1.5 py-0.5 text-2xs text-fg-subtle",children:"soon"})]}),e.jsx("span",{className:"text-xs text-fg-subtle",children:o})]}),m&&e.jsx("p",{className:"text-2xs text-fg-subtle",children:Pe})]})}function Z({legend:t,badge:o,host:s,port:n,security:a,readOnly:r,onHostChange:m,onPortChange:d,onSecurityChange:c,hostPlaceholder:x,portPlaceholder:g}){const w=i.useId(),v=i.useId(),j=i.useId();return e.jsxs("fieldset",{children:[e.jsxs("legend",{className:"flex items-center gap-2 text-sm font-semibold text-fg",children:[t,o&&e.jsx(he,{tone:o.tone,children:o.label})]}),e.jsxs("div",{className:"mt-2 grid grid-cols-1 gap-3 sm:grid-cols-[1fr_6rem_8rem] sm:gap-2",children:[e.jsxs("div",{children:[e.jsx(A,{htmlFor:w,children:"Host"}),m?e.jsx(R,{id:w,readOnly:r,value:s,onChange:f=>m(f.target.value),placeholder:x}):e.jsx(R,{id:w,readOnly:r,defaultValue:s,placeholder:x})]}),e.jsxs("div",{children:[e.jsx(A,{htmlFor:v,children:"Port"}),d?e.jsx(R,{id:v,readOnly:r,value:n,onChange:f=>d(f.target.value),placeholder:g}):e.jsx(R,{id:v,readOnly:r,defaultValue:n,placeholder:g})]}),e.jsxs("div",{children:[e.jsx(A,{htmlFor:j,children:"Security"}),c?e.jsx(J,{id:j,value:a,onValueChange:c}):e.jsx(J,{id:j,defaultValue:a})]})]})]})}function _({label:t,detail:o,state:s}){return e.jsxs("div",{className:"flex items-start gap-3 py-2",children:[e.jsxs("span",{className:z("mt-0.5 flex size-5 shrink-0 items-center justify-center rounded-full text-2xs",s==="ok"&&"bg-positive text-accent-fg",s==="failed"&&"bg-danger text-accent-fg",s==="running"&&"border border-accent text-accent",s==="pending"&&"border border-line text-fg-subtle"),children:[s==="ok"&&e.jsx(oe,{className:"size-3"}),s==="failed"&&"!",s==="running"&&e.jsx("span",{className:"size-2 animate-pulse rounded-full bg-accent"})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:z("text-sm",s==="failed"?"font-medium text-danger":"text-fg"),children:t}),o&&e.jsx("div",{className:"mt-0.5 text-xs text-fg-subtle",children:o})]})]})}const Le=(t,o)=>{const s=i.useRef(o);s.current=o,i.useEffect(()=>{if(!t)return;const n=()=>{document.visibilityState==="visible"&&s.current()};return document.addEventListener("visibilitychange",n),window.addEventListener("pageshow",n),()=>{document.removeEventListener("visibilitychange",n),window.removeEventListener("pageshow",n)}},[t])},Ae=2e4,Ie="Couldn't open Microsoft's sign-in page. Check your connection, and anything blocking redirects, then try again.",Me=t=>{const o=i.useRef(!1),s=i.useRef(!1),n=i.useRef(null),a=i.useRef(t);a.current=t;const r=i.useCallback(()=>{n.current!==null&&(clearTimeout(n.current),n.current=null)},[]),m=i.useCallback(()=>{!o.current||!s.current||(r(),s.current=!1,a.current("returned"))},[r]);return i.useEffect(()=>{const d=()=>{s.current=!0,r()},c=()=>{document.visibilityState==="hidden"&&d()},x=g=>{g.persisted&&(d(),m())};return document.addEventListener("visibilitychange",c),window.addEventListener("pagehide",d),window.addEventListener("pageshow",x),()=>{document.removeEventListener("visibilitychange",c),window.removeEventListener("pagehide",d),window.removeEventListener("pageshow",x),r()}},[m,r]),Le(!0,m),i.useCallback(()=>{o.current=!0,s.current=!1,r(),n.current=setTimeout(()=>{n.current=null,o.current=!1,s.current=!1,a.current("stalled")},Ae)},[r])},Re={"gmail.com":{imap:{host:"imap.gmail.com",port:993,security:"tls"},smtp:{host:"smtp.gmail.com",port:587,security:"starttls"},source:"provider-table"},"googlemail.com":{imap:{host:"imap.gmail.com",port:993,security:"tls"},smtp:{host:"smtp.gmail.com",port:587,security:"starttls"},source:"provider-table"},"outlook.com":{imap:{host:"outlook.office365.com",port:993,security:"tls"},smtp:{host:"smtp.office365.com",port:587,security:"starttls"},source:"provider-table"},"hotmail.com":{imap:{host:"outlook.office365.com",port:993,security:"tls"},smtp:{host:"smtp.office365.com",port:587,security:"starttls"},source:"provider-table"},"live.com":{imap:{host:"outlook.office365.com",port:993,security:"tls"},smtp:{host:"smtp.office365.com",port:587,security:"starttls"},source:"provider-table"},"msn.com":{imap:{host:"outlook.office365.com",port:993,security:"tls"},smtp:{host:"smtp.office365.com",port:587,security:"starttls"},source:"provider-table"},"icloud.com":{imap:{host:"imap.mail.me.com",port:993,security:"tls"},smtp:{host:"smtp.mail.me.com",port:587,security:"starttls"},source:"provider-table"},"me.com":{imap:{host:"imap.mail.me.com",port:993,security:"tls"},smtp:{host:"smtp.mail.me.com",port:587,security:"starttls"},source:"provider-table"},"mac.com":{imap:{host:"imap.mail.me.com",port:993,security:"tls"},smtp:{host:"smtp.mail.me.com",port:587,security:"starttls"},source:"provider-table"},"fastmail.com":{imap:{host:"imap.fastmail.com",port:993,security:"tls"},smtp:{host:"smtp.fastmail.com",port:465,security:"tls"},source:"provider-table"},"fastmail.fm":{imap:{host:"imap.fastmail.com",port:993,security:"tls"},smtp:{host:"smtp.fastmail.com",port:465,security:"tls"},source:"provider-table"},"yahoo.com":{imap:{host:"imap.mail.yahoo.com",port:993,security:"tls"},smtp:{host:"smtp.mail.yahoo.com",port:465,security:"tls"},source:"provider-table"},"yahoo.co.uk":{imap:{host:"imap.mail.yahoo.com",port:993,security:"tls"},smtp:{host:"smtp.mail.yahoo.com",port:465,security:"tls"},source:"provider-table"},"ymail.com":{imap:{host:"imap.mail.yahoo.com",port:993,security:"tls"},smtp:{host:"smtp.mail.yahoo.com",port:465,security:"tls"},source:"provider-table"},"aol.com":{imap:{host:"imap.aol.com",port:993,security:"tls"},smtp:{host:"smtp.aol.com",port:465,security:"tls"},source:"provider-table"},"zoho.com":{imap:{host:"imap.zoho.com",port:993,security:"tls"},smtp:{host:"smtp.zoho.com",port:465,security:"tls"},source:"provider-table"},"gmx.com":{imap:{host:"imap.gmx.com",port:993,security:"tls"},smtp:{host:"smtp.gmx.com",port:587,security:"starttls"},source:"provider-table"},"gmx.net":{imap:{host:"imap.gmx.net",port:993,security:"tls"},smtp:{host:"mail.gmx.net",port:587,security:"starttls"},source:"provider-table"},"gmx.de":{imap:{host:"imap.gmx.net",port:993,security:"tls"},smtp:{host:"mail.gmx.net",port:587,security:"starttls"},source:"provider-table"},"web.de":{imap:{host:"imap.web.de",port:993,security:"tls"},smtp:{host:"smtp.web.de",port:587,security:"starttls"},source:"provider-table"},"mail.com":{imap:{host:"imap.mail.com",port:993,security:"tls"},smtp:{host:"smtp.mail.com",port:465,security:"tls"},source:"provider-table"},"hey.com":{imap:{host:"imap.hey.com",port:993,security:"tls"},smtp:{host:"smtp.hey.com",port:465,security:"tls"},source:"provider-table"},"tutanota.com":{imap:{host:"mail.tutanota.com",port:993,security:"tls"},smtp:{host:"mail.tutanota.com",port:465,security:"tls"},source:"provider-table"},"tuta.io":{imap:{host:"mail.tutanota.com",port:993,security:"tls"},smtp:{host:"mail.tutanota.com",port:465,security:"tls"},source:"provider-table"},"posteo.de":{imap:{host:"posteo.de",port:993,security:"tls"},smtp:{host:"posteo.de",port:465,security:"tls"},source:"provider-table"},"runbox.com":{imap:{host:"imap.runbox.com",port:993,security:"tls"},smtp:{host:"smtp.runbox.com",port:587,security:"starttls"},source:"provider-table"},"mailbox.org":{imap:{host:"imap.mailbox.org",port:993,security:"tls"},smtp:{host:"smtp.mailbox.org",port:465,security:"tls"},source:"provider-table"},"hushmail.com":{imap:{host:"imap.hushmail.com",port:993,security:"tls"},smtp:{host:"smtp.hushmail.com",port:465,security:"tls"},source:"provider-table"}},Fe={"gmail.com":"https://support.google.com/accounts/answer/185833","googlemail.com":"https://support.google.com/accounts/answer/185833","yahoo.com":"https://help.yahoo.com/kb/generate-manage-third-party-passwords-sln15241.html","icloud.com":"https://support.apple.com/en-us/102654","me.com":"https://support.apple.com/en-us/102654","mac.com":"https://support.apple.com/en-us/102654","fastmail.com":"https://www.fastmail.help/hc/en-us/articles/360058752854","fastmail.fm":"https://www.fastmail.help/hc/en-us/articles/360058752854","outlook.com":"https://support.microsoft.com/en-us/account-billing/manage-app-passwords-for-two-step-verification-d6dc8c6d-4bf7-4851-ad95-6d07799387e9","hotmail.com":"https://support.microsoft.com/en-us/account-billing/manage-app-passwords-for-two-step-verification-d6dc8c6d-4bf7-4851-ad95-6d07799387e9","zoho.com":"https://help.zoho.com/portal/en/kb/zoho-mail/client-configuration/imap-access/articles/zoho-mail-app-passwords"};function ae(t){try{const s=new DOMParser().parseFromString(t,"application/xml");if(s.querySelector("parsererror"))return null;const n=s.querySelectorAll("incomingServer[type='imap']"),a=s.querySelectorAll("outgoingServer[type='smtp']");if(!n.length||!a.length)return null;const r=n[0],m=a[0],d=r.querySelector("hostname")?.textContent?.trim(),c=r.querySelector("port")?.textContent?.trim(),x=r.querySelector("socketType")?.textContent?.trim().toUpperCase(),g=m.querySelector("hostname")?.textContent?.trim(),w=m.querySelector("port")?.textContent?.trim(),v=m.querySelector("socketType")?.textContent?.trim().toUpperCase();if(!d||!c||!g||!w)return null;const j=f=>f==="SSL"||f==="TLS"||f==="SSL/TLS"?"tls":f==="STARTTLS"?"starttls":"none";return{imap:{host:d,port:Number.parseInt(c,10),security:j(x)},smtp:{host:g,port:Number.parseInt(w,10),security:j(v)},source:"mozilla-autoconfig"}}catch{return null}}async function Oe(t,o){try{const s=`https://autoconfig.thunderbird.net/v1.1/${t}`,n=await fetch(s,{signal:o});if(!n.ok)return null;const a=await n.text(),r=ae(a);return r||null}catch{return null}}async function ze(t,o){try{const s=`https://autoconfig.${t}/mail/config-v1.1.xml`,n=await fetch(s,{signal:o});if(!n.ok)return null;const a=await n.text(),r=ae(a);return r?{...r,source:"domain-autoconfig"}:null}catch{return null}}function _e(t){return{imap:{host:`imap.${t}`,port:993,security:"tls"},smtp:{host:`smtp.${t}`,port:587,security:"starttls"},source:"heuristic"}}async function He(t,o=1500){const s=t.indexOf("@");if(s===-1)return null;const n=t.slice(s+1).toLowerCase();if(!n)return null;const a=Re[n];if(a)return a;const r=new AbortController,m=setTimeout(()=>r.abort(),o);try{const d=await Oe(n,r.signal);if(d)return d;const c=await ze(n,r.signal);if(c)return c}finally{clearTimeout(m)}return _e(n)}function De(t){const o=t.indexOf("@");return o===-1?"Looking up server settings…":`Looking up settings for ${t.slice(o+1)}…`}function ie(t){const o=t.indexOf("@");if(o===-1)return;const s=t.slice(o+1).toLowerCase();return Fe[s]}const ce=[{id:"icloud",label:"iCloud",username:"full-email",imap:{host:"imap.mail.me.com",port:993,security:"tls"},smtp:{host:"smtp.mail.me.com",port:587,security:"starttls"},passwordHelp:{text:"iCloud requires an app-specific password, not your Apple ID password. Generate one under Sign-In & Security → App-Specific Passwords.",url:"https://support.apple.com/en-us/102654"}},{id:"yahoo",label:"Yahoo",username:"full-email",imap:{host:"imap.mail.yahoo.com",port:993,security:"tls"},smtp:{host:"smtp.mail.yahoo.com",port:465,security:"tls"},passwordHelp:{text:"Yahoo requires an app password, not your login password. Generate one under Account Security.",url:"https://help.yahoo.com/kb/generate-manage-third-party-passwords-sln15241.html"}},{id:"aol",label:"AOL",username:"full-email",imap:{host:"imap.aol.com",port:993,security:"tls"},smtp:{host:"smtp.aol.com",port:465,security:"tls"},passwordHelp:{text:"AOL requires an app password, not your login password. Generate one under Account Security.",url:"https://login.aol.com/account/security"}},{id:"fastmail",label:"Fastmail",username:"full-email",imap:{host:"imap.fastmail.com",port:993,security:"tls"},smtp:{host:"smtp.fastmail.com",port:465,security:"tls"},passwordHelp:{text:"Fastmail requires an app password, not your login password. Create one under Settings → Privacy & Security → App passwords.",url:"https://www.fastmail.help/hc/en-us/articles/360058752854"}}];function ee(t){return ce.find(o=>o.id===t)}const $e={"icloud.com":"icloud","me.com":"icloud","mac.com":"icloud","yahoo.com":"yahoo","yahoo.co.uk":"yahoo","ymail.com":"yahoo","aol.com":"aol","fastmail.com":"fastmail","fastmail.fm":"fastmail"};function qe(t){const o=t.indexOf("@");if(o===-1)return"";const s=t.slice(o+1).toLowerCase();return $e[s]??""}const M=["Connector","Address","Servers","Credentials","Test","Sync"],F={connector:0,address:1,servers:2,credentials:3,test:4,sync:5},te={host:"",port:993,security:"tls"},se={host:"",port:587,security:"starttls"};function Ge({onStart:t}){return i.useEffect(()=>{const o=s=>{s.key==="Enter"&&t()};return window.addEventListener("keydown",o),()=>window.removeEventListener("keydown",o)},[t]),e.jsx(I,{steps:M,activeStep:0,hideSteps:!0,title:"Welcome to Remit",subtitle:"One inbox for all your mail, with context about every message.",footer:e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-2xs text-fg-subtle",children:[e.jsx(Se,{children:"Enter"})," to continue"]}),e.jsx(E,{variant:"primary",onClick:t,children:"Add your first account"})]}),children:e.jsxs("div",{className:"flex flex-col items-start py-5",children:[e.jsx("span",{className:"flex size-14 items-center justify-center rounded-md bg-accent-soft",children:e.jsx(ke,{className:"size-7 text-accent"})}),e.jsx("p",{className:"mt-5 max-w-sm text-sm leading-relaxed text-fg-muted",children:"Remit syncs your existing mailboxes and tells you who is really writing to you — sender history, authenticity checks, and similar messages, right next to every email."})]})})}function Be({onContinue:t,onMicrosoft:o,onBack:s,showBack:n}){const[a,r]=i.useState("imap");i.useEffect(()=>{const d=c=>{c.key==="Enter"&&(a==="microsoft"?o():t()),c.key==="Escape"&&s()};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[t,o,s,a]);const m=()=>{a==="microsoft"?o():t()};return e.jsx(I,{steps:M,activeStep:F.connector,title:"How does this account connect?",subtitle:"Choose a sign-in method. IMAP works with any provider.",footer:e.jsxs(e.Fragment,{children:[n?e.jsx(E,{variant:"ghost",onClick:s,children:"Back"}):e.jsx("span",{}),e.jsx(E,{variant:"primary",onClick:m,children:a==="microsoft"?"Continue with Microsoft":"Continue with IMAP"})]}),children:e.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-3",children:[e.jsx(W,{name:"IMAP / SMTP",description:"Any mail provider — Fastmail, iCloud, your own server.",icon:e.jsx(Ce,{className:"size-5"}),selected:a==="imap",onSelect:()=>r("imap")}),e.jsx(W,{name:"Gmail",description:"Sign in with Google. No app passwords.",icon:e.jsx(X,{className:"size-5"}),comingSoon:!0}),e.jsx(W,{name:"Outlook / Microsoft 365",description:"Sign in with Microsoft. Works with Outlook.com and work accounts.",icon:e.jsx(we,{className:"size-5"}),selected:a==="microsoft",onSelect:()=>r("microsoft")})]})})}function Ue({onBack:t,onConnected:o}){const[s,n]=i.useState(""),[a,r]=i.useState(null),[m,d]=i.useState(!1),[c,x]=i.useState(!1),g=i.useRef(!0);i.useEffect(()=>(g.current=!0,()=>{g.current=!1}),[]);const w=i.useRef(new Set),{refetch:v}=K(ne()),j=Me(l=>{if(x(!1),l==="stalled"){d(!1),r(Ie);return}v().then(({data:C,isError:y})=>{if(!g.current)return;if(y||!C){r("Couldn't check whether the sign-in finished. Open Settings › Accounts to see whether the account is connected.");return}r(null);const S=C.accounts.find(T=>!w.current.has(T.accountId));S&&o(S.accountId)})}),f=Q({...be(),onSuccess:l=>{g.current&&(j(),d(!0),window.location.assign(l.authorizationUrl))},onError:l=>{x(!1),r(l instanceof Error?l.message:"Failed to start sign-in")}}),h=c||f.isPending,u=()=>{h||(r(null),x(!0),v().then(({data:l,isError:C})=>{if(g.current){if(C||!l){x(!1),r("Couldn't read this instance's accounts, so sign-in can't be tracked. Check your connection and try again.");return}w.current=new Set(l.accounts.map(y=>y.accountId)),f.mutate({body:{email:s.trim()||void 0}})}}))},k=i.useRef(u);return k.current=u,i.useEffect(()=>{const l=C=>{C.key==="Enter"&&k.current(),C.key==="Escape"&&t()};return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[t]),e.jsx(I,{steps:M,activeStep:F.connector,title:"Sign in with Microsoft",subtitle:"You'll be redirected to Microsoft to sign in securely.",footer:e.jsxs(e.Fragment,{children:[e.jsx(E,{variant:"ghost",onClick:t,children:"Back"}),e.jsx(E,{variant:"primary",onClick:u,disabled:h,icon:h?e.jsx($,{className:"size-4 animate-spin"}):void 0,children:h?"Redirecting…":m?"Start over":"Sign in with Microsoft"})]}),children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx(A,{htmlFor:"microsoft-email",children:"Email address (optional)"}),e.jsx(R,{id:"microsoft-email",icon:e.jsx(X,{className:"size-4"}),placeholder:"you@outlook.com",value:s,onChange:l=>n(l.target.value),type:"email",autoComplete:"email"}),e.jsx("p",{className:"mt-1.5 text-2xs text-fg-subtle",children:"Pre-fills the Microsoft sign-in form. Leave blank to choose on the Microsoft page."})]}),m&&e.jsx(q,{tone:"info",children:"Waiting for Microsoft. Finish signing in — this window carries on the moment the account is connected, wherever you finished."}),a&&e.jsx(q,{tone:"danger",children:a})]})})}function We({initialEmail:t,initialDisplayName:o,onContinue:s,onBack:n}){const[a,r]=i.useState(t),[m,d]=i.useState(o),[c,x]=i.useState(!1),[g,w]=i.useState(""),[v,j]=i.useState(null),f=i.useCallback(async()=>{const h=a.trim();if(!h.includes("@")||!h.includes(".")){j("Enter a valid email address.");return}j(null),x(!0),w(De(h));try{const u=await He(h);s(h,m.trim(),u)}finally{x(!1)}},[a,m,s]);return i.useEffect(()=>{const h=u=>{u.key==="Enter"&&!c&&f(),u.key==="Escape"&&n()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[f,c,n]),e.jsx(I,{steps:M,activeStep:F.address,title:"What's the email address?",subtitle:"We'll detect the server settings for you.",footer:e.jsxs(e.Fragment,{children:[e.jsx(E,{variant:"ghost",onClick:n,children:"Back"}),e.jsx(E,{variant:"primary",disabled:c,onClick:()=>{f()},children:"Continue"})]}),children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(A,{htmlFor:"onboarding-email",children:"Email address"}),e.jsx(R,{id:"onboarding-email",icon:e.jsx(X,{className:"size-4"}),placeholder:"you@example.com",value:a,onChange:h=>{r(h.target.value),j(null)},type:"email",autoComplete:"email"})]}),e.jsxs("div",{children:[e.jsx(A,{htmlFor:"onboarding-display-name",children:"Display name (optional)"}),e.jsx(R,{id:"onboarding-display-name",placeholder:"Alice",value:m,onChange:h=>d(h.target.value)}),e.jsx("p",{className:"mt-1.5 text-2xs text-fg-subtle",children:"What to call this account in Remit. Leave blank to use a name derived from the address."})]}),c&&e.jsxs("div",{className:"mt-3 flex items-center gap-2 text-xs text-fg-muted",children:[e.jsx($,{className:"size-3.5 animate-spin text-accent"}),g]}),v&&!c&&e.jsx("div",{className:"mt-3",children:e.jsx(q,{tone:"danger",children:v})})]})})}function Ve({email:t,imapConfig:o,smtpConfig:s,discovered:n,onContinue:a,onBack:r,onChange:m}){const[d,c]=i.useState(o),[x,g]=i.useState(s),[w,v]=i.useState(()=>qe(t)),[j,f]=i.useState(!1),[h,u]=i.useState(null),k=ee(w),l=k!==void 0&&!j,C=i.useCallback(b=>{v(b),f(!1),u(null);const p=ee(b);p&&(c({host:p.imap.host,port:p.imap.port,security:p.imap.security}),g({host:p.smtp.host,port:p.smtp.port,security:p.smtp.security}))},[]);i.useEffect(()=>{m(d,x)},[d,x,m]);const y=d.host.trim()!=="",S=i.useCallback(()=>{if(!y){u("Enter the IMAP host.");return}u(null),a()},[y,a]);i.useEffect(()=>{const b=p=>{p.key==="Enter"&&S(),p.key==="Escape"&&r()};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[S,r]);const T=t.split("@")[1]??"your domain",O=k?"Pick your provider to fill in the right settings — or choose Custom to enter them by hand.":n?"Found via autodiscovery — adjust anything that looks off.":`We couldn't detect settings for ${T} — enter them manually.`,P=l?{label:"preset",tone:"neutral"}:!k&&n?{label:"detected",tone:"positive"}:void 0,L=k?.passwordHelp.url??ie(t);return e.jsx(I,{steps:M,activeStep:F.servers,title:"Confirm server settings",subtitle:O,footer:e.jsxs(e.Fragment,{children:[e.jsx(E,{variant:"ghost",onClick:r,children:"Back"}),e.jsx(E,{variant:"primary",onClick:S,children:"Continue"})]}),children:e.jsxs("div",{className:"space-y-5",children:[h&&e.jsx(q,{tone:"danger",children:h}),e.jsxs("div",{children:[e.jsx(A,{htmlFor:"provider-select",children:"Provider"}),e.jsxs(V,{id:"provider-select",value:w,onChange:b=>C(b.target.value),children:[e.jsx("option",{value:"",children:"Custom / other"}),ce.map(b=>e.jsx("option",{value:b.id,children:b.label},b.id))]}),k&&e.jsx("p",{className:"mt-1 text-2xs text-fg-subtle",children:l?e.jsxs(e.Fragment,{children:["Server settings are pre-filled for ",k.label," and locked."," ",e.jsx("button",{type:"button",className:"text-accent underline",onClick:()=>f(!0),children:"Advanced"})," ","lets you edit them by hand."]}):e.jsxs(e.Fragment,{children:["Editing ",k.label,"'s settings by hand."]})})]}),e.jsx(Z,{legend:"IMAP — incoming",badge:P,readOnly:l,host:d.host,port:String(d.port),security:d.security,hostPlaceholder:"imap.example.com",portPlaceholder:"993",onHostChange:b=>{c(p=>({...p,host:b})),u(null)},onPortChange:b=>c(p=>({...p,port:Number(b)})),onSecurityChange:b=>c(p=>({...p,security:b}))}),e.jsx("p",{className:"text-2xs text-fg-subtle",children:"Sending (SMTP) is optional — leave it blank to set up a receive-only account and add sending later in Settings."}),e.jsx(Z,{legend:"SMTP — outgoing (optional)",badge:P,readOnly:l,host:x.host,port:String(x.port),security:x.security,hostPlaceholder:"smtp.example.com",portPlaceholder:"587",onHostChange:b=>{g(p=>({...p,host:b})),u(null)},onPortChange:b=>g(p=>({...p,port:Number(b)})),onSecurityChange:b=>g(p=>({...p,security:b}))}),k&&e.jsxs("p",{className:"text-2xs text-fg-subtle",children:[k.passwordHelp.text," ",L&&e.jsx("a",{href:L,target:"_blank",rel:"noopener noreferrer",className:"text-accent underline",children:"Get an app password"})]})]})})}function Ke({email:t,username:o,password:s,onContinue:n,onBack:a,onChange:r}){const[m,d]=i.useState(o||t),[c,x]=i.useState(s),[g,w]=i.useState(null),v=t.split("@")[1]??"",j=ie(t),f=m.trim()!==""&&c.trim()!=="";i.useEffect(()=>{r(m,c)},[m,c,r]);const h=i.useCallback(()=>{if(!f){w("Enter your username and password.");return}w(null),n()},[f,n]);return i.useEffect(()=>{const u=k=>{k.key==="Enter"&&h(),k.key==="Escape"&&a()};return window.addEventListener("keydown",u),()=>window.removeEventListener("keydown",u)},[h,a]),e.jsx(I,{steps:M,activeStep:F.credentials,title:`Sign in to ${v||"your mail server"}`,subtitle:"Many providers require an app password instead of your normal one.",footer:e.jsxs(e.Fragment,{children:[e.jsx(E,{variant:"ghost",onClick:a,children:"Back"}),e.jsx(E,{variant:"primary",onClick:h,children:"Test connection"})]}),children:e.jsxs("div",{className:"space-y-3",children:[g&&e.jsx("div",{className:"rounded-md bg-danger-soft px-3 py-2 text-sm text-danger",children:g}),e.jsxs("div",{children:[e.jsx(A,{htmlFor:"credentials-username",children:"Username"}),e.jsx(R,{id:"credentials-username",value:m,onChange:u=>{d(u.target.value),w(null)},autoComplete:"username"})]}),e.jsxs("div",{children:[e.jsx(A,{htmlFor:"credentials-password",children:"Password or app password"}),e.jsx(ve,{id:"credentials-password",value:c,onChange:u=>{x(u.target.value),w(null)},autoComplete:"current-password"})]}),e.jsx(Ee,{url:j})]})})}function Qe({email:t,imapConfig:o,smtpConfig:s,username:n,password:a,onSuccess:r,onBackToCredentials:m,onBackToServers:d}){const[c,x]=i.useState({imapState:"running",smtpState:"pending",phase:"running"}),[g,w]=i.useState(0),v=s.host.trim()!=="",j=G(o.security),f=G(s.security),h=Q({...ge()});i.useEffect(()=>{let l=!1;const C=[];return x({imapState:"running",smtpState:"pending",phase:"running"}),h.mutate({body:{username:n,password:a,imapHost:o.host,imapPort:o.port,imapTls:j.tls,imapStartTls:j.startTls,smtpHost:s.host,smtpPort:s.port,smtpTls:f.tls,smtpStartTls:f.startTls}},{onSuccess:y=>{if(l)return;const S=y.imapSuccess,T=v?y.smtpSuccess:!0;x({imapState:S?"ok":"failed",smtpState:v?"running":"ok",imapDetail:S?`Connected — ${o.host}:${o.port}`:y.imapError,phase:"running"}),C.push(window.setTimeout(()=>{if(l)return;const O=L=>{const b=L?.toLowerCase()??"";return b.includes("auth")||b.includes("login")||b.includes("535")||b.includes("credential")},P=!S&&O(y.imapError)||S&&v&&!y.smtpSuccess&&O(y.smtpError);x({imapState:S?"ok":"failed",smtpState:v?y.smtpSuccess?"ok":"failed":"ok",imapDetail:S?`Connected — ${o.host}:${o.port}`:y.imapError,smtpDetail:v?y.smtpSuccess?`Connected — ${s.host}:${s.port}`:y.smtpError:"Not set up — receive-only",rawError:S?v&&!y.smtpSuccess?y.smtpError:void 0:y.imapError,phase:S&&T?"success":P?"auth-failure":"network-failure"}),S&&T&&C.push(window.setTimeout(()=>{l||r()},800))},400))},onError:y=>{if(l)return;const S=y instanceof Error?y.message:"Connection failed";x({imapState:"failed",smtpState:"failed",imapDetail:S,smtpDetail:S,rawError:S,phase:"network-failure"})}}),()=>{l=!0;for(const y of C)window.clearTimeout(y)}},[g]);const{phase:u}=c;i.useEffect(()=>{const l=C=>{C.key==="Escape"&&(u==="auth-failure"?m():u==="network-failure"&&d())};return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[u,m,d]);const k=u==="auth-failure"?e.jsxs(e.Fragment,{children:[e.jsx(E,{variant:"ghost",onClick:m,children:"Back to credentials"}),e.jsx(E,{variant:"primary",onClick:()=>w(l=>l+1),children:"Retry"})]}):u==="network-failure"?e.jsxs(e.Fragment,{children:[e.jsx(E,{variant:"ghost",onClick:d,children:"Back to servers"}),e.jsx(E,{variant:"primary",onClick:()=>w(l=>l+1),children:"Retry"})]}):u==="success"?e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-2xs text-fg-subtle",children:"Connection verified"}),e.jsx(E,{variant:"primary",onClick:r,children:"Start syncing"})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-2xs text-fg-subtle",children:"Testing…"}),e.jsx("span",{})]});return e.jsx(I,{steps:M,activeStep:F.test,title:"Testing the connection",subtitle:`Checking ${t}`,footer:k,children:e.jsxs("div",{className:"divide-y divide-line",children:[e.jsx(_,{label:`IMAP — ${o.host}:${o.port}`,detail:c.imapDetail,state:c.imapState}),e.jsx(_,{label:v?`SMTP — ${s.host}:${s.port}`:"SMTP — sending",detail:v?c.smtpDetail:"Not set up — you can add sending later in Settings",state:c.smtpState}),(u==="auth-failure"||u==="network-failure")&&c.rawError&&e.jsxs("div",{className:"py-3",children:[u==="auth-failure"&&e.jsx("p",{className:"mb-2 text-xs text-fg-muted",children:"Check your password — many providers require an app password."}),e.jsx("code",{className:"block rounded bg-surface-sunken px-2.5 py-2 text-2xs text-fg-muted",children:c.rawError})]})]})})}const Xe=2e4;function Ye({email:t,displayName:o,imapConfig:s,smtpConfig:n,username:a,password:r,onGoToInbox:m}){const d=xe(),[c,x]=i.useState(null),[g,w]=i.useState(null),v=i.useRef(!1),j=G(s.security),f=G(n.security),h=Q({...ye(),onSuccess:N=>{x(N.accountId),d.invalidateQueries({queryKey:fe()})},onError:N=>{w(N instanceof Error?N.message:"Failed to create account")}});i.useEffect(()=>{if(v.current)return;v.current=!0;const N=n.host.trim()!=="",H=je({imapHost:s.host,smtpHost:n.host,smtpPort:n.port}),D=N?H??{smtpHost:n.host,smtpPort:n.port,smtpTls:f.tls,smtpStartTls:f.startTls}:null;h.mutate({body:{email:t,displayName:o||void 0,username:a!==t?a:void 0,password:r,imapHost:s.host,imapPort:s.port,imapTls:j.tls,imapStartTls:j.startTls,smtpHost:D?.smtpHost||void 0,smtpPort:D?.smtpPort||void 0,smtpTls:D?.smtpTls??!1,smtpStartTls:D?.smtpStartTls??!1}})},[]);const{data:u,isError:k}=K({...Y({path:{accountId:c??""}}),enabled:!!c,refetchInterval:N=>{const H=N.state.data?.syncPhase;return H==="complete"||H==="error"?!1:2e3}}),l=u?.syncPhase==="error",{data:C}=K({...ne(),enabled:!!c&&l}),y=C?.accounts.find(N=>N.accountId===c)?.lastError,S=u?.mailboxes.find(N=>N.fullPath==="INBOX"||N.fullPath==="Inbox"),T=u?.mailboxCountTotal??0,O=u?.mailboxCountSynced??0,P=S?.messagesTotal??0,L=S?.messagesSynced??0,b=P>0?L/P:0,p=u?.syncPhase,le=l?"failed":p==="idle"||p===void 0||p==="discovering_mailboxes"?"running":T>0?"ok":"running",B=l?"failed":!p||p==="idle"||p==="discovering_mailboxes"?"pending":p==="syncing_inbox"||p==="syncing_others"?"running":"ok",U=l?"failed":!p||p==="idle"||p==="discovering_mailboxes"||p==="syncing_inbox"?"pending":p==="syncing_others"?"running":"ok",ue=L>0||S?.phase==="complete"||p==="complete"||l,[me,de]=i.useState(!1);i.useEffect(()=>{if(!c)return;const N=setTimeout(()=>de(!0),Xe);return()=>clearTimeout(N)},[c]);const pe=!!c&&(ue||k||me);return g?e.jsx(I,{steps:M,activeStep:F.sync,title:"Couldn't create account",subtitle:"Something went wrong saving your account.",footer:e.jsxs(e.Fragment,{children:[e.jsx("span",{}),e.jsx(E,{variant:"primary",onClick:()=>{v.current=!1,w(null),h.mutate({body:{email:t,displayName:o||void 0,username:a!==t?a:void 0,password:r,imapHost:s.host,imapPort:s.port,imapTls:j.tls,imapStartTls:j.startTls,smtpHost:n.host||void 0,smtpPort:n.port||void 0,smtpTls:f.tls,smtpStartTls:f.startTls}})},children:"Retry"})]}),children:e.jsx("code",{className:"block rounded bg-surface-sunken px-2.5 py-2 text-2xs text-fg-muted",children:g})}):e.jsx(I,{steps:M,activeStep:F.sync,title:`Syncing ${t}`,subtitle:"Newest mail first — you can start reading right away.",footer:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-2xs text-fg-subtle",children:"Sync continues in the background"}),pe?e.jsx(E,{variant:"primary",onClick:()=>c&&m(c),children:"Go to inbox"}):e.jsx(E,{variant:"primary",disabled:!0,icon:e.jsx($,{className:"size-3.5 animate-spin"}),children:"Getting your mail…"})]}),children:h.isPending?e.jsxs("div",{className:"flex items-center gap-2 py-4 text-sm text-fg-muted",children:[e.jsx($,{className:"size-4 animate-spin text-accent"}),"Creating your account…"]}):e.jsxs("div",{className:"space-y-3",children:[P>0&&e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-baseline justify-between text-xs",children:[e.jsx("span",{className:"font-medium text-fg",children:"INBOX"}),e.jsxs("span",{className:"text-fg-subtle tabular-nums",children:[L.toLocaleString()," / ",P.toLocaleString()," ","messages"]})]}),e.jsx("div",{className:"mt-1 h-1.5 overflow-hidden rounded-full bg-surface-sunken",children:e.jsx("div",{className:"h-full rounded-full bg-accent transition-all duration-500",style:{width:`${Math.max(2,b*100)}%`}})})]}),e.jsxs("div",{className:"divide-y divide-line",children:[e.jsx(_,{label:"Mailboxes discovered",detail:T>0?`${T} mailbox${T===1?"":"es"} found`:"Discovering…",state:le}),e.jsx(_,{label:"INBOX",detail:B==="ok"?`${L.toLocaleString()} messages synced`:B==="running"?"Syncing newest first…":"Queued",state:B}),O>1||p==="syncing_others"||p==="complete"?e.jsx(_,{label:"Other mailboxes",detail:U==="ok"?`${O-1} mailboxes synced`:U==="running"?"Syncing…":"Queued",state:U}):null]}),l&&e.jsxs("div",{className:"mt-2 space-y-2",children:[e.jsxs("p",{className:"text-xs text-danger",children:["Sync stalled. The account is still active —"," ",e.jsx("button",{type:"button",className:"underline",onClick:()=>{d.invalidateQueries({queryKey:Y({path:{accountId:c??""}}).queryKey})},children:"retry"})]}),y&&e.jsx("code",{className:"block rounded bg-surface-sunken px-2.5 py-2 text-2xs text-fg-muted",children:y})]})]})})}function st({skipWelcome:t=!1,onComplete:o,onCancel:s}){const[n,a]=i.useState(t?"connector":"welcome"),[r,m]=i.useState({email:"",displayName:"",imapConfig:te,smtpConfig:se,username:"",password:"",discoveryResult:null,discovered:!1,createdAccountId:null}),d=i.useCallback(()=>a("connector"),[]),c=i.useCallback(()=>a("address"),[]),x=i.useCallback(()=>a("microsoft-email"),[]),g=i.useCallback(()=>{t?s?.():a("welcome")},[t,s]),w=i.useCallback((u,k,l)=>{let C=te,y=se,S=!1;l&&(S=l.source!=="heuristic",C={host:l.imap.host,port:l.imap.port,security:l.imap.security},y={host:l.smtp.host,port:l.smtp.port,security:l.smtp.security}),m(T=>({...T,email:u,displayName:k,imapConfig:C,smtpConfig:y,discoveryResult:l,discovered:S,username:u})),a("servers")},[]),v=i.useCallback((u,k)=>{m(l=>({...l,imapConfig:u,smtpConfig:k}))},[]),j=i.useCallback((u,k)=>{m(l=>({...l,username:u,password:k}))},[]),f=i.useCallback(()=>a("sync"),[]),h=i.useCallback(u=>{o(u)},[o]);switch(n){case"welcome":return e.jsx(Ge,{onStart:d});case"connector":return e.jsx(Be,{onContinue:c,onMicrosoft:x,onBack:g,showBack:!t});case"microsoft-email":return e.jsx(Ue,{onBack:()=>a("connector"),onConnected:h});case"address":return e.jsx(We,{initialEmail:r.email,initialDisplayName:r.displayName,onContinue:w,onBack:()=>a("connector")});case"servers":return e.jsx(Ve,{email:r.email,imapConfig:r.imapConfig,smtpConfig:r.smtpConfig,discovered:r.discovered,onContinue:()=>a("credentials"),onBack:()=>a("address"),onChange:v});case"credentials":return e.jsx(Ke,{email:r.email,username:r.username,password:r.password,onContinue:()=>a("test"),onBack:()=>a("servers"),onChange:j});case"test":return e.jsx(Qe,{email:r.email,imapConfig:r.imapConfig,smtpConfig:r.smtpConfig,username:r.username,password:r.password,onSuccess:f,onBackToCredentials:()=>a("credentials"),onBackToServers:()=>a("servers")});case"sync":return e.jsx(Ye,{email:r.email,displayName:r.displayName,imapConfig:r.imapConfig,smtpConfig:r.smtpConfig,username:r.username,password:r.password,onGoToInbox:h})}}export{st as O,ce as P,Ie as R,Me as a,ee as g,G as s,Le as u};
@@ -1 +0,0 @@
1
- import{ag as g,e as w,as as C,j as s,b,cX as F,T as _,f as k,l as q,a1 as H,cd as U,r as x,ce as K,D as W,E as G,v as J,u as S,dJ as R,c$ as X,w as V,ai as Y,bC as Z,ak as v,al as y,cy as ee,bD as se}from"./index-BMM2gkfY.js";import{u as te,p as ne,R as j,e as ae}from"./useSearchTokenContext-Dpl3C3yN.js";import{C as D}from"./circle-check-big-CyS5sZb6.js";import{C as I}from"./clock-KiLfjGAs.js";import{R as oe}from"./row-actions-Bgax_YZA.js";import{R as re}from"./rotate-ccw-CrVofVFV.js";import{N as T}from"./NavMenuButton-meKsCAv8.js";import{a as p,t as ie}from"./format-Dquh5i8-.js";import{i as le,s as A}from"./outbox-status-BlKn6P0x.js";import{n as ce}from"./search-query-Cr_ZXBCp.js";import{c as de}from"./useMessageBodyContent-DHYriZRr.js";const ue={queued:{icon:I,label:"Queued",className:"text-warning"},sending:{icon:C,label:"Sending…",className:"text-accent-2",spin:!0},sent:{icon:D,label:"Sent",className:"text-positive"},unfiled:{icon:g,label:"Sent, not filed",className:"text-warning"},failed:{icon:w,label:"Failed",className:"text-danger"},blocked:{icon:g,label:"Blocked",className:"text-warning"}};function O({status:e,iconOnly:n,className:a}){const t=ue[e],o=t.icon;return s.jsxs("span",{className:b("inline-flex items-center gap-1.5 text-xs font-medium",t.className,a),children:[s.jsx(o,{className:b("size-4",t.spin&&"animate-spin")}),!n&&t.label]})}const xe=(e,n)=>n?"bg-accent-2-soft":e==="failed"?"bg-danger-soft":e==="blocked"||e==="unfiled"?"bg-warning/10":"";function fe({recipients:e,subject:n,time:a,status:t,error:o,selected:l,onSelect:c,onRetry:r,retrying:d,onEdit:i,onDelete:f,deleting:u}){const m=t==="failed"||t==="blocked"||t==="unfiled";return s.jsxs("div",{className:b("flex items-start gap-3 border-b border-line px-4 py-3 transition-colors hover:bg-surface-raised",xe(t,l)),children:[s.jsxs("button",{type:"button",...F,onClick:c,className:"flex flex-1 min-w-0 items-start gap-3 text-left",children:[s.jsx("div",{className:"mt-0.5 shrink-0",children:s.jsx(O,{status:t,iconOnly:!0})}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[s.jsx("span",{className:"truncate text-sm font-medium",children:e}),s.jsx("span",{className:"shrink-0 text-xs text-fg-muted",children:a})]}),s.jsx("div",{className:"truncate text-sm",children:n||"No subject"}),s.jsxs("div",{className:"mt-1 flex items-center gap-2",children:[s.jsx(O,{status:t}),o&&s.jsxs("span",{className:"truncate text-xs text-fg-muted",children:["— ",o]})]})]})]}),m&&s.jsx("div",{className:"shrink-0",children:s.jsx(oe,{actions:[...t==="failed"&&r?[{label:"Retry sending",iconOnly:!0,icon:s.jsx(re,{className:"size-3.5"}),busy:d,onClick:r}]:[],...t==="unfiled"?[]:[{label:"Edit as draft",iconOnly:!0,icon:s.jsx(k,{className:"size-3.5"}),onClick:i}]],destructive:{label:"Delete message",iconOnly:!0,icon:s.jsx(_,{className:"size-3.5"}),busy:u,confirm:{prompt:"Delete this message?",confirmLabel:"Delete"},onClick:f}})})]})}function Le(){return q({from:"/mail/outbox/draft/$outboxMessageId",shouldThrow:!1})?.outboxMessageId}function me(){const e=H(),n=U();return x.useCallback(a=>{e({to:"/mail/outbox/draft/$outboxMessageId",params:{outboxMessageId:a},search:t=>t,hash:n})},[e,n])}function he(){return K()}function be(e,n){const a=n.trim().toLowerCase();if(a.length===0)return!0;const t=[e.subject,e.fromAddress,e.fromName,...e.toAddresses??[],...e.ccAddresses??[]].filter(o=>typeof o=="string").join(" ").toLowerCase();return a.split(/\s+/).every(o=>o.length===0||t.includes(o))}function ge(e){return e.tokens.length>0&&e.freeText.trim().length===0}const E={queued:{icon:I,label:"Queued",className:"text-warning"},sending:{icon:C,label:"Sending…",className:"text-accent-2"},sent:{icon:D,label:"Sent",className:"text-positive"},unfiled:{icon:g,label:"Sent, not filed",className:"text-warning"},failed:{icon:w,label:"Failed",className:"text-danger"},blocked:{icon:g,label:"Blocked",className:"text-warning"}},pe=e=>ie(e).toDateString()===new Date().toDateString()?p(e,{hour:"numeric",minute:"2-digit"}):p(e,{month:"short",day:"numeric"}),M=e=>p(e,{dateStyle:"medium",timeStyle:"short"}),je=e=>{const n=e.toAddresses??[];return n.length===0?"No recipients":n.length===1?n[0]:`${n[0]} +${n.length-1}`},L=(e,n)=>n?"The outbox cannot filter on those terms":e?"No matching outbox messages":"No outbox messages",Q=x.createContext(null);function N(){const e=x.useContext(Q);if(!e)throw new Error("OutboxPane.* must be used inside <OutboxPane>");return e}function Ne({outboxMessageId:e,children:n}){const a=me(),t=he(),{data:o,isLoading:l}=W(G()),{searchQuery:c}=J(),r=te(),d=ce(c),i=ne(d,r),f=d.length>0,u=ge(i),m=x.useMemo(()=>u?[]:(o?.items??[]).filter(h=>le(h.status)).filter(h=>be(h,i.freeText)),[o,i.freeText,u]),z=x.useMemo(()=>m.find(h=>h.outboxMessageId===e),[m,e]),$={messages:m,hasQuery:f,unsupportedQuery:u,isLoading:l,selectedMessageId:e,selectedMessage:z,onOpenMessage:a,onCloseMessage:t};return s.jsx(Q.Provider,{value:$,children:n})}function P({message:e,isSelected:n,onSelect:a}){const t=V(),o=de(),{pushError:l}=Y(),c=x.useCallback(()=>{t.invalidateQueries({queryKey:Z()})},[t]),r=v({...ee(),onSuccess:c,onError:u=>{l(y("Couldn't resend message","The message wasn't sent.",u))}}),d=v({...se(),onSuccess:c,onError:u=>{l(y("Couldn't delete message","The message wasn't deleted.",u))}}),i=e.status;if(!E[i])return null;const f=A(e.status);return s.jsx(fe,{recipients:je(e),subject:e.subject||"",time:pe(e.sentAt??e.updatedAt),status:i,error:f?e.lastError??void 0:void 0,selected:n,onSelect:a,onRetry:i==="failed"?()=>r.mutate({path:{outboxMessageId:e.outboxMessageId}}):void 0,retrying:r.isPending,onEdit:()=>o(e.outboxMessageId),onDelete:()=>d.mutate({path:{outboxMessageId:e.outboxMessageId}}),deleting:d.isPending})}function B({message:e,onBack:n}){const a=e.status,t=E[a],o=t?.icon??k,l=e.sentAt?M(e.sentAt):M(e.updatedAt);return s.jsxs("div",{className:"h-full overflow-y-auto bg-canvas",children:[s.jsxs("div",{className:"border-b border-line p-4",children:[n&&s.jsxs("button",{type:"button",onClick:n,className:"mb-3 inline-flex items-center gap-1 text-sm text-fg-muted hover:text-fg",children:[s.jsx(X,{className:"size-4"}),s.jsx("span",{children:"Back"})]}),s.jsx("h1",{className:"text-xl font-semibold mb-3",children:e.subject||"(No subject)"}),s.jsxs("div",{className:"space-y-1 text-sm",children:[s.jsxs("div",{className:"flex gap-2",children:[s.jsx("span",{className:"text-fg-muted shrink-0 w-12",children:"From:"}),s.jsx("span",{className:"text-fg",children:e.fromName?`${e.fromName} <${e.fromAddress}>`:e.fromAddress})]}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx("span",{className:"text-fg-muted shrink-0 w-12",children:"To:"}),s.jsx("span",{className:"text-fg",children:(e.toAddresses??[]).join(", ")})]}),e.ccAddresses&&e.ccAddresses.length>0&&s.jsxs("div",{className:"flex gap-2",children:[s.jsx("span",{className:"text-fg-muted shrink-0 w-12",children:"Cc:"}),s.jsx("span",{className:"text-fg",children:e.ccAddresses.join(", ")})]}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx("span",{className:"text-fg-muted shrink-0 w-12",children:"Date:"}),s.jsx("span",{className:"text-fg",children:l})]}),t&&s.jsxs("div",{className:"flex items-center gap-2 pt-2",children:[s.jsx(o,{className:b("size-4",t.className,a==="sending"&&"animate-spin")}),s.jsx("span",{className:b("text-xs font-medium",t.className),children:t.label}),A(e.status)&&e.lastError&&s.jsxs("span",{className:"text-xs text-fg-muted",children:["— ",e.lastError]})]})]})]}),s.jsx("div",{className:"p-4",children:s.jsx(ae,{html:e.htmlBody,text:e.textBody})})]})}function ve(){const{messages:e,hasQuery:n,unsupportedQuery:a,isLoading:t,selectedMessageId:o,onOpenMessage:l}=N(),c=x.useRef(null);return S({containerRef:c,itemSelector:R}),t?s.jsx("div",{className:"flex h-full items-center justify-center bg-canvas",children:s.jsx("span",{className:"text-fg-muted",children:"Loading..."})}):e.length===0?s.jsx("div",{className:"flex h-full bg-surface",children:s.jsx(j,{message:L(n,a),showHints:!1})}):s.jsxs("div",{className:"h-full flex flex-col bg-canvas",children:[s.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[s.jsx(T,{}),s.jsx("h1",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:"Outbox"}),s.jsxs("span",{className:"shrink-0 text-2xs text-fg-subtle",children:[e.length," ",e.length===1?"message":"messages"]})]}),s.jsx("div",{ref:c,className:"flex-1 overflow-y-auto",children:e.map(r=>s.jsx(P,{message:r,isSelected:o===r.outboxMessageId,onSelect:()=>l(r.outboxMessageId)},r.outboxMessageId))})]})}function ye(){const{selectedMessage:e}=N();return s.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[s.jsx("header",{className:"flex h-pane-header shrink-0 items-center border-b border-line px-3"}),s.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?s.jsx(B,{message:e}):s.jsx(j,{message:"Select a message to read",showHints:!1})})]})}function Oe(){const{messages:e,hasQuery:n,unsupportedQuery:a,isLoading:t,selectedMessageId:o,selectedMessage:l,onOpenMessage:c,onCloseMessage:r}=N(),d=x.useRef(null);return S({containerRef:d,itemSelector:R}),t?s.jsx("div",{className:"flex h-full items-center justify-center bg-canvas",children:s.jsx("span",{className:"text-fg-muted",children:"Loading..."})}):l?s.jsx(B,{message:l,onBack:r}):e.length===0?s.jsx("div",{className:"flex h-full bg-surface",children:s.jsx(j,{message:L(n,a),showHints:!1})}):s.jsxs("div",{className:"h-full flex flex-col bg-canvas",children:[s.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[s.jsx(T,{}),s.jsx("h1",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:"Outbox"}),s.jsxs("span",{className:"shrink-0 text-2xs text-fg-subtle",children:[e.length," ",e.length===1?"message":"messages"]})]}),s.jsx("div",{ref:d,className:"flex-1 overflow-y-auto",children:e.map(i=>s.jsx(P,{message:i,isSelected:o===i.outboxMessageId,onSelect:()=>c(i.outboxMessageId)},i.outboxMessageId))})]})}const Qe=Object.assign(Ne,{List:ve,Reading:ye,Phone:Oe});export{Qe as O,Le as u};
@@ -1 +0,0 @@
1
- import{a8 as m,j as o,a5 as p}from"./index-BMM2gkfY.js";import{a}from"./MailShell-zSsU-lz6.js";import{M as r}from"./MailboxPane-CBUf4RMT.js";import{f as e}from"./search-token-index-BxytxF1H.js";import{u as s}from"./search-mirror-Lf1ogSTC.js";import"./FullCompose-DQRblSEf.js";import"./ErrorState-CBV6FtSJ.js";import"./index-znJrox9Y.js";import"./useMessageBodyContent-DHYriZRr.js";import"./useSignature-D4_HRnT6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DlyzBdqd.js";import"./format-Dquh5i8-.js";import"./confirm-dialog-BeWZSgTL.js";import"./useSearchTokenContext-Dpl3C3yN.js";import"./kbd-B-P9r9YU.js";import"./search-scope-DTcpOp3S.js";import"./useRefreshControl-DUEqZD7x.js";import"./circle-check-big-CyS5sZb6.js";import"./useQueries-B-aYaD8d.js";import"./MailListHeader-BpL0hiB2.js";import"./attachment-file-B4nazean.js";import"./mail-5WLfHo9K.js";import"./avatar-lcZ4TVQd.js";import"./download-CCD9VEcr.js";import"./shield-check-BktB9xgz.js";import"./useFilters-CJkmZ6i7.js";import"./clock-KiLfjGAs.js";import"./menu-Rr3_qIop.js";import"./MailViewChrome-CNywrIYr.js";import"./NavMenuButton-meKsCAv8.js";import"./useLabels-DL6gxLzs.js";import"./useSemanticSearch-DCoRQGtD.js";import"./search-query-Cr_ZXBCp.js";import"./bottom-sheet-D-zZ-Ztc.js";import"./circle-help-DbSK9hyF.js";import"./circle-check-wwq1h3jr.js";function Q(){const{mailboxId:t}=m.useParams(),i=e();return s({to:"/mail/$mailboxId",params:{mailboxId:t}}),o.jsx(r,{mailboxId:t,thread:i,children:o.jsx(a,{phone:o.jsx(r.Phone,{}),list:o.jsx(r.List,{}),reading:o.jsx(p,{}),intelligence:o.jsx(r.Intelligence,{}),hasThread:!!i})})}export{Q as component};
@@ -1 +0,0 @@
1
- import{j as o}from"./index-BMM2gkfY.js";import{M as r}from"./MailboxPane-CBUf4RMT.js";import"./useSearchTokenContext-Dpl3C3yN.js";import"./kbd-B-P9r9YU.js";import"./useMessageBodyContent-DHYriZRr.js";import"./search-scope-DTcpOp3S.js";import"./useRefreshControl-DUEqZD7x.js";import"./circle-check-big-CyS5sZb6.js";import"./search-token-index-BxytxF1H.js";import"./useQueries-B-aYaD8d.js";import"./MailListHeader-BpL0hiB2.js";import"./attachment-file-B4nazean.js";import"./mail-5WLfHo9K.js";import"./avatar-lcZ4TVQd.js";import"./index-znJrox9Y.js";import"./useSignature-D4_HRnT6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DlyzBdqd.js";import"./format-Dquh5i8-.js";import"./ErrorState-CBV6FtSJ.js";import"./download-CCD9VEcr.js";import"./shield-check-BktB9xgz.js";import"./useFilters-CJkmZ6i7.js";import"./confirm-dialog-BeWZSgTL.js";import"./clock-KiLfjGAs.js";import"./menu-Rr3_qIop.js";import"./MailViewChrome-CNywrIYr.js";import"./NavMenuButton-meKsCAv8.js";import"./useLabels-DL6gxLzs.js";import"./useSemanticSearch-DCoRQGtD.js";import"./search-query-Cr_ZXBCp.js";import"./bottom-sheet-D-zZ-Ztc.js";import"./circle-help-DbSK9hyF.js";import"./circle-check-wwq1h3jr.js";function H(){return o.jsx(r.Reading,{})}export{H as component};
@@ -1 +0,0 @@
1
- import{j as o}from"./index-BMM2gkfY.js";import{F as r}from"./FlaggedPane-Bx8o8jcX.js";import"./useSearchTokenContext-Dpl3C3yN.js";import"./kbd-B-P9r9YU.js";import"./useMessageBodyContent-DHYriZRr.js";import"./search-scope-DTcpOp3S.js";import"./MailListHeader-BpL0hiB2.js";import"./search-token-index-BxytxF1H.js";import"./useQueries-B-aYaD8d.js";import"./attachment-file-B4nazean.js";import"./mail-5WLfHo9K.js";import"./avatar-lcZ4TVQd.js";import"./index-znJrox9Y.js";import"./useSignature-D4_HRnT6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DlyzBdqd.js";import"./format-Dquh5i8-.js";import"./ErrorState-CBV6FtSJ.js";import"./download-CCD9VEcr.js";import"./shield-check-BktB9xgz.js";import"./useFilters-CJkmZ6i7.js";import"./confirm-dialog-BeWZSgTL.js";import"./clock-KiLfjGAs.js";import"./menu-Rr3_qIop.js";import"./MailViewChrome-CNywrIYr.js";import"./wizard-selection-B1bng5Jq.js";function w(){return o.jsx(r.Reading,{})}export{w as component};
@@ -1 +0,0 @@
1
- import{j as r}from"./index-BMM2gkfY.js";import{B as o}from"./BriefPane-BH4C3dLA.js";import"./useSearchTokenContext-Dpl3C3yN.js";import"./kbd-B-P9r9YU.js";import"./useMessageBodyContent-DHYriZRr.js";import"./search-scope-DTcpOp3S.js";import"./MailListHeader-BpL0hiB2.js";import"./search-token-index-BxytxF1H.js";import"./useQueries-B-aYaD8d.js";import"./attachment-file-B4nazean.js";import"./mail-5WLfHo9K.js";import"./avatar-lcZ4TVQd.js";import"./index-znJrox9Y.js";import"./useSignature-D4_HRnT6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DlyzBdqd.js";import"./format-Dquh5i8-.js";import"./ErrorState-CBV6FtSJ.js";import"./download-CCD9VEcr.js";import"./shield-check-BktB9xgz.js";import"./useFilters-CJkmZ6i7.js";import"./confirm-dialog-BeWZSgTL.js";import"./clock-KiLfjGAs.js";import"./menu-Rr3_qIop.js";import"./useRefreshControl-DUEqZD7x.js";import"./circle-check-big-CyS5sZb6.js";import"./useLabels-DL6gxLzs.js";import"./useSemanticSearch-DCoRQGtD.js";import"./search-query-Cr_ZXBCp.js";import"./wizard-selection-B1bng5Jq.js";function C(){return r.jsx(o.Reading,{})}export{C as component};
@@ -1 +0,0 @@
1
- import{j as o}from"./index-BMM2gkfY.js";import{O as t}from"./OutboxPane-BxAQvF2m.js";import"./useSearchTokenContext-Dpl3C3yN.js";import"./kbd-B-P9r9YU.js";import"./useMessageBodyContent-DHYriZRr.js";import"./search-scope-DTcpOp3S.js";import"./circle-check-big-CyS5sZb6.js";import"./clock-KiLfjGAs.js";import"./row-actions-Bgax_YZA.js";import"./rotate-ccw-CrVofVFV.js";import"./NavMenuButton-meKsCAv8.js";import"./menu-Rr3_qIop.js";import"./format-Dquh5i8-.js";import"./outbox-status-BlKn6P0x.js";import"./search-query-Cr_ZXBCp.js";function P(){return o.jsx(t.Reading,{})}export{P as component};
@@ -1 +0,0 @@
1
- import{a5 as o}from"./index-BMM2gkfY.js";const n=o;export{n as component};
@@ -1 +0,0 @@
1
- import{a5 as o}from"./index-BMM2gkfY.js";const n=o;export{n as component};
@@ -1 +0,0 @@
1
- import{a5 as o}from"./index-BMM2gkfY.js";const n=o;export{n as component};
@@ -1,4 +0,0 @@
1
- import{c as b,j as e,aA as C,B as r,aL as p,aG as R,aM as B,aN as O,aF as T,ag as u,aO as z,r as m,as as y,aP as g,b as V,z as L,aQ as q,aR as U,D as H,aS as F,aT as S,aU as I,aV as Q,a0 as Y,aW as G,aX as W,aY as Z,a1 as J,aE as K,aI as X}from"./index-BMM2gkfY.js";import{S as ee}from"./settings-screen-D0fhHptg.js";import{B as M}from"./bug-DQdIiRjm.js";import{C as A}from"./circle-check-wwq1h3jr.js";import{f as se}from"./ErrorState-CBV6FtSJ.js";import{u as ae}from"./useQueries-B-aYaD8d.js";import{D as _}from"./download-CCD9VEcr.js";import{R as k}from"./rotate-ccw-CrVofVFV.js";import{C as te}from"./clock-KiLfjGAs.js";import{S as ne}from"./shield-check-BktB9xgz.js";import{b as ie}from"./help-copy-DryiNLYs.js";import"./avatar-lcZ4TVQd.js";import"./menu-Rr3_qIop.js";import"./circle-help-DbSK9hyF.js";import"./kbd-B-P9r9YU.js";const re=b("CloudOff",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193",key:"yfwify"}],["path",{d:"M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07",key:"jlfiyv"}]]);const le=b("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);const v=b("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),ce={BodyParse:"The message is built in a way Remit could not read."};function oe(s){return ce[s]}function E(s){return s.split(";")[0].trim()}const w=/^[A-Za-z0-9!#$%&'*+._-]+$/,$=/^[A-Za-z0-9!#$%&'*+._-]+\/[A-Za-z0-9!#$%&'*+._-]+$/;function j(s,a){return a.test(s)?`\`${s}\``:`\`${JSON.stringify(s).replace(/`/g,"\\u0060")}\` (malformed)`}function de(s){const a=E(s);return $.test(a)?a:JSON.stringify(a)}const N="_not read_";function me(s){return s.length===0?["(no MIME structure was read)"]:s.map(a=>`${" ".repeat(a.depth)}- ${de(a.contentType)}`)}const xe="_No message content, addresses, subject, attachment names or parser output are included._";function P(s){return{head:[`### Message quarantined at \`${s.failureStage}\``,"",`- **Failure**: \`${s.failureCode}\``,`- **Folder role**: ${s.mailboxRole??"_none appointed_"}`,`- **Failing part**: ${s.failurePartPath==null?"_whole message_":`\`${s.failurePartPath}\``}`,`- **Attempts before quarantine**: ${s.attempts}`,`- **Worker build**: ${s.workerVersion}`,`- **Message-ID hash**: ${s.messageIdHash==null?"_none declared_":`\`${s.messageIdHash}\``}`,"","#### Message shape","",`- **Content-Type**: ${s.contentType==null?N:j(E(s.contentType),$)}`,`- **Content-Transfer-Encoding**: ${s.transferEncoding==null?N:j(s.transferEncoding,w)}`,`- **Charset**: ${s.charset==null?"_not declared_":j(s.charset,w)}`,`- **Size**: ${s.sizeBytes==null?N:`${s.sizeBytes} bytes`}`,"","MIME structure:"].join(`
2
- `),structure:me(s.structure).join(`
3
- `),disclaimer:xe}}function ue(s){const{head:a,structure:t,disclaimer:n}=P(s);return[a,"","```",t,"```","",n].join(`
4
- `)}function he(s){return`Message quarantined: ${s.failureCode} at ${s.failureStage}`}function pe({entry:s,onClose:a,issueUrl:t,onCopy:n}){if(!s)return null;const i=ue(s);return e.jsx(C,{open:!0,onClose:a,title:"Report this message",children:e.jsxs("div",{className:"flex max-h-[80vh] flex-col",children:[e.jsxs("header",{className:"space-y-1 border-b border-line px-4 py-3",children:[e.jsx("h3",{className:"text-sm font-semibold text-fg",children:"Report this message"}),e.jsx("p",{className:"text-xs text-fg-muted",children:"This is everything the report contains. It describes the shape of the message — never its contents, addresses, subject, attachment names, or the parser's own error text."})]}),e.jsx("pre",{className:"flex-1 overflow-auto bg-surface-sunken px-4 py-3 text-2xs leading-relaxed whitespace-pre-wrap text-fg-muted",children:i}),e.jsxs("footer",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-4 py-3",children:[e.jsx(r,{variant:"ghost",size:"sm",onClick:a,children:"Cancel"}),e.jsx(r,{variant:"secondary",size:"sm",icon:e.jsx(le,{className:"size-3.5"}),onClick:()=>n(i),children:"Copy report"}),e.jsx(p,{external:!0,size:"sm",href:t,icon:e.jsx(v,{className:"size-3.5"}),children:"Open on GitHub"})]})]})})}function fe(s){return new Date(s).toLocaleString(void 0,{dateStyle:"medium",timeStyle:"short"})}function ge({entry:s,onCutBug:a}){return e.jsxs("li",{className:"flex flex-col gap-2 border-b border-line px-row-inset py-3 last:border-b-0 sm:flex-row sm:items-start sm:justify-between",children:[e.jsxs("div",{className:"min-w-0 space-y-1",children:[e.jsx("p",{className:"text-sm text-fg",children:oe(s.failureStage)}),e.jsx("p",{className:"truncate text-xs text-fg-muted",title:s.failureMessage,children:s.failureMessage}),e.jsxs("p",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 text-2xs text-fg-subtle",children:[s.mailboxRole&&e.jsx(R,{tone:"warning",children:B(s.mailboxRole)}),e.jsx("span",{className:"truncate",title:s.mailboxPath,children:O(s.mailboxPath,s.mailboxDelimiter)}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{children:`uid ${s.uid}`}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{children:fe(s.quarantinedAt)}),s.attempts>1&&e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{children:`${s.attempts} attempts`})]})]})]}),e.jsx(r,{variant:"secondary",size:"sm",className:"shrink-0",icon:e.jsx(M,{className:"size-3.5"}),onClick:()=>a(s),children:"Cut a bug"})]})}function je({entries:s,onCutBug:a}){return e.jsxs("section",{className:"space-y-3",children:[e.jsxs("header",{className:"space-y-1",children:[e.jsx("h2",{className:"text-sm font-semibold text-fg",children:"Messages set aside"}),e.jsx("p",{className:"text-xs text-fg-muted",children:"Mail Remit could not read is set aside here instead of being skipped, so nothing goes missing quietly. The rest of the folder keeps syncing. Recovering a set-aside message is a re-sync, not a per-row action."})]}),s.length===0&&e.jsxs("div",{className:"flex items-center gap-2 rounded-sm border border-line bg-surface px-row-inset py-3",children:[e.jsx(A,{className:"size-4 shrink-0 text-positive","aria-hidden":!0}),e.jsx("p",{className:"text-sm text-fg-muted",children:"Every message has been read successfully. Nothing is set aside."})]}),s.length>1&&e.jsx(T,{tone:"warning",children:e.jsxs("p",{className:"flex items-start gap-2",children:[e.jsx(u,{className:"mt-0.5 size-4 shrink-0","aria-hidden":!0}),e.jsxs("span",{children:[e.jsx("span",{className:"font-semibold",children:`${s.length} messages could not be read.`})," ","More than one means something is wrong with how Remit reads mail, not with the mail. Reporting one of these gets it fixed."]})]})}),s.length>0&&e.jsx("ul",{className:"rounded-sm border border-line bg-surface",children:s.map(t=>e.jsx(ge,{entry:t,onCutBug:a},t.quarantineId))})]})}const Ne=["Remit restarts. Mail stops loading for about a minute and this page will lose its connection while that happens.","Nothing is sent, deleted or moved. Your mail stays at your provider.","If the new version does not come back up, the version you are running now is restored automatically."];function be({open:s,currentVersion:a,release:t,appliesSchemaMigration:n=!1,onClose:i,onConfirm:l}){return s?e.jsx(C,{open:!0,onClose:i,title:`Install Remit ${t.version}`,children:e.jsxs("div",{className:"flex max-h-[80vh] flex-col",children:[e.jsxs("header",{className:"space-y-1 border-b border-line px-4 py-3",children:[e.jsxs("h3",{className:"text-sm font-semibold text-fg",children:["Install Remit ",t.version,"?"]}),e.jsxs("p",{className:"text-xs text-fg-muted",children:["You are on ",a,". ",t.version," was released"," ",z(t.releasedAt),"."]})]}),e.jsxs("div",{className:"flex-1 space-y-3 overflow-auto px-4 py-3",children:[e.jsx("p",{className:"text-sm text-fg-muted",children:t.summary}),e.jsxs("ul",{className:"space-y-2",children:[Ne.map(c=>e.jsxs("li",{className:"flex gap-2 text-sm text-fg-muted",children:[e.jsx("span",{className:"mt-1.5 size-1.5 shrink-0 rounded-full bg-fg-subtle"}),e.jsx("span",{children:c})]},c)),n&&e.jsxs("li",{className:"flex gap-2 text-sm text-fg-muted",children:[e.jsx("span",{className:"mt-1.5 size-1.5 shrink-0 rounded-full bg-fg-subtle"}),e.jsx("span",{children:"This version updates the database while Remit is offline. The step forward cannot be undone by hand, but a failed start is still rolled back to the version and data you have now."})]})]}),e.jsx("p",{className:"text-xs text-fg-subtle",children:"Good moment for this: when you are not waiting on a message."})]}),e.jsxs("footer",{className:"flex flex-wrap items-center justify-end gap-2 border-t border-line px-4 py-3",children:[e.jsx(r,{variant:"ghost",size:"sm",onClick:i,children:"Not now"}),e.jsx(p,{variant:"secondary",size:"sm",external:!0,href:t.releaseNotesUrl,icon:e.jsx(v,{className:"size-3.5"}),children:"Release notes"}),e.jsx(r,{size:"sm",icon:e.jsx(_,{className:"size-3.5"}),onClick:l,children:"Install and restart"})]})]})}):null}function d({children:s,tone:a}){return e.jsx("div",{className:V("rounded-sm border bg-surface px-row-inset py-3",a==="danger"?"border-danger/50":"border-line"),children:s})}function ve({state:s,onCheck:a,onInstall:t,onDismissResult:n,now:i=Date.now()}){const[l,c]=m.useState(null),o=s.status==="checking",x=s.status==="available",h=()=>{if(o){c("Already checking. The result appears here in a moment.");return}c(null),a()},f=()=>{if(!x&&s.status!=="rolledBack"&&s.status!=="abandoned"){c("There is no update to install. Check for updates first — if one is found it appears here.");return}c(null),t()},D=(()=>{switch(s.status){case"upToDate":return e.jsx(d,{children:e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx(A,{className:"size-4 shrink-0 text-positive","aria-hidden":!0}),e.jsxs("p",{className:"text-sm text-fg",children:["Remit ",s.version," is the latest version.",e.jsxs("span",{className:"text-fg-subtle",children:[" ","Checked ",g(s.checkedAt,i),"."]})]})]}),e.jsx(r,{variant:"secondary",size:"sm",className:"shrink-0",onClick:h,children:"Check again"})]})});case"checking":return e.jsx(d,{children:e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx(y,{className:"size-4 shrink-0 animate-spin text-fg-subtle","aria-hidden":!0}),e.jsxs("p",{className:"text-sm text-fg-muted",children:["Looking for a newer version. You are on ",s.version,"."]})]}),e.jsx(r,{variant:"secondary",size:"sm",className:"shrink-0",onClick:h,children:"Check again"})]})});case"neverChecked":return e.jsx(d,{children:e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex min-w-0 items-start gap-2",children:[e.jsx(te,{className:"mt-0.5 size-4 shrink-0 text-fg-subtle","aria-hidden":!0}),e.jsxs("p",{className:"text-sm text-fg-muted",children:["No update check has run yet. Remit checks for updates on its own in the background.",s.lastCheckedAt!==void 0&&e.jsxs("span",{className:"text-fg-subtle",children:[" ","Last checked"," ",g(s.lastCheckedAt,i),"."]})]})]}),e.jsx(r,{variant:"secondary",size:"sm",className:"shrink-0",onClick:h,children:"Check now"})]})});case"checkFailed":return e.jsx(d,{children:e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(re,{className:"mt-0.5 size-4 shrink-0 text-fg-subtle","aria-hidden":!0}),e.jsxs("div",{className:"min-w-0 space-y-1",children:[e.jsx("p",{className:"text-sm text-fg",children:"Could not reach the update source."}),e.jsx("p",{className:"text-xs text-fg-muted",children:s.reason}),e.jsxs("p",{className:"text-xs text-fg-subtle",children:["You are still on ",s.version," and it keeps working.",s.lastCheckedAt!==void 0&&e.jsxs(e.Fragment,{children:[" ","Last successful check"," ",g(s.lastCheckedAt,i),"."]})]})]})]}),e.jsx("div",{className:"flex justify-end",children:e.jsx(r,{variant:"secondary",size:"sm",onClick:h,children:"Try again"})})]})});case"available":return e.jsx(d,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("span",{className:"text-sm font-semibold text-fg",children:["Remit ",s.release.version]}),e.jsx(R,{tone:"accent",children:"update available"}),e.jsxs("span",{className:"text-2xs text-fg-subtle",children:["released ",z(s.release.releasedAt)," · you are on ",s.version]})]}),e.jsx("p",{className:"text-sm text-fg-muted",children:s.release.summary}),e.jsx("p",{className:"text-xs text-fg-subtle",children:"Installing restarts Remit, so mail stops loading for about a minute. If the new version does not come back up, the one you are running now is restored on its own."}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(r,{size:"sm",icon:e.jsx(_,{className:"size-3.5"}),onClick:f,children:["Install ",s.release.version]}),e.jsx(p,{variant:"secondary",size:"sm",external:!0,href:s.release.releaseNotesUrl,icon:e.jsx(v,{className:"size-3.5"}),children:"Release notes"})]})]})});case"applying":return e.jsx(d,{children:e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx(y,{className:"size-4 shrink-0 animate-spin text-accent-2","aria-hidden":!0}),e.jsxs("p",{className:"text-sm text-fg-muted",children:["Installing Remit ",s.target,". The restart screen has the details."]})]})});case"succeeded":return e.jsx(T,{tone:"success",onDismiss:n,children:e.jsxs("div",{className:"space-y-1",children:[e.jsxs("p",{className:"font-semibold",children:["Updated to Remit ",s.version,"."]}),e.jsxs("p",{children:["You were on ",s.previousVersion,"."," ",e.jsx("a",{href:s.releaseNotesUrl,target:"_blank",rel:"noopener noreferrer",className:"underline",children:"See what changed"}),"."]})]})});case"rolledBack":return e.jsx(d,{tone:"danger",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(u,{className:"mt-0.5 size-4 shrink-0 text-danger","aria-hidden":!0}),e.jsxs("div",{className:"min-w-0 space-y-1",children:[e.jsxs("p",{className:"text-sm font-semibold text-fg",children:["Remit ",s.attemptedVersion," did not start. Remit reports that it put ",s.version," back."]}),e.jsxs("p",{className:"text-sm text-fg-muted",children:["You are running ",s.version," again. A failed update can still have changed things on the way — the log below is the only account of what it got as far as doing."]})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-xs text-fg-subtle",children:"What Remit reported as the failure"}),e.jsx("code",{className:"block rounded-xs bg-danger-soft px-2 py-1 text-2xs text-danger",children:s.reason})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-xs text-fg-subtle",children:"Read the full log before trying again:"}),e.jsx("code",{className:"block rounded-xs bg-surface-sunken px-2 py-1 text-2xs text-fg-muted",children:s.logsCommand})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(r,{variant:"secondary",size:"sm",icon:e.jsx(k,{className:"size-3.5"}),onClick:f,children:["Try ",s.attemptedVersion," again"]}),e.jsxs(r,{variant:"ghost",size:"sm",onClick:n,children:["Stay on ",s.version]})]})]})});case"unreachable":return e.jsx(d,{tone:"danger",children:e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(u,{className:"mt-0.5 size-4 shrink-0 text-danger","aria-hidden":!0}),e.jsxs("div",{className:"min-w-0 space-y-1",children:[e.jsxs("p",{className:"text-sm font-semibold text-fg",children:["Installing ",s.attemptedVersion," left the server unreachable."]}),e.jsx("p",{className:"text-sm text-fg-muted",children:"Remit has answered again since, but nothing here can say what happened during the silence."})]})]}),e.jsx("code",{className:"block rounded-xs bg-surface-sunken px-2 py-1 text-2xs text-fg-muted",children:s.logsCommand}),e.jsx("div",{className:"flex justify-end",children:e.jsx(r,{variant:"ghost",size:"sm",onClick:n,children:"Dismiss"})})]})});case"rollbackFailed":return e.jsx(d,{tone:"danger",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(u,{className:"mt-0.5 size-4 shrink-0 text-danger","aria-hidden":!0}),e.jsxs("div",{className:"min-w-0 space-y-1",children:[e.jsxs("p",{className:"text-sm font-semibold text-fg",children:["Remit ",s.attemptedVersion," did not start, and Remit could not put ",s.previousVersion," back."]}),e.jsx("p",{className:"text-sm text-fg-muted",children:"This is the one outcome Remit cannot resolve on its own. The server is in a half-changed state and needs you at a shell. The log below is the only account of where it stopped."})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-xs text-fg-subtle",children:"What Remit reported as the failure"}),e.jsx("code",{className:"block rounded-xs bg-danger-soft px-2 py-1 text-2xs text-danger",children:s.reason})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-xs text-fg-subtle",children:"Read the full log on the server:"}),e.jsx("code",{className:"block rounded-xs bg-surface-sunken px-2 py-1 text-2xs text-fg-muted",children:s.logsCommand})]}),e.jsx("div",{className:"flex justify-end",children:e.jsx(r,{variant:"ghost",size:"sm",onClick:n,children:"Dismiss"})})]})});case"abandoned":return e.jsx(d,{tone:"danger",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(u,{className:"mt-0.5 size-4 shrink-0 text-fg-subtle","aria-hidden":!0}),e.jsxs("div",{className:"min-w-0 space-y-1",children:[e.jsxs("p",{className:"text-sm font-semibold text-fg",children:["Remit ",s.attemptedVersion," was not installed. Nothing changed."]}),e.jsxs("p",{className:"text-sm text-fg-muted",children:["The update stopped before it altered anything. You are still running ",s.version,"."]})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-xs text-fg-subtle",children:"What Remit reported"}),e.jsx("code",{className:"block rounded-xs bg-surface-sunken px-2 py-1 text-2xs text-fg-muted",children:s.reason})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-xs text-fg-subtle",children:"Read the full log before trying again:"}),e.jsx("code",{className:"block rounded-xs bg-surface-sunken px-2 py-1 text-2xs text-fg-muted",children:s.logsCommand})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(r,{variant:"secondary",size:"sm",icon:e.jsx(k,{className:"size-3.5"}),onClick:f,children:["Try ",s.attemptedVersion," again"]}),e.jsxs(r,{variant:"ghost",size:"sm",onClick:n,children:["Stay on ",s.version]})]})]})});default:return s}})();return e.jsxs("section",{className:"space-y-3",children:[e.jsxs("header",{className:"space-y-1",children:[e.jsx("h2",{className:"text-sm font-semibold text-fg",children:"Updates"}),e.jsx("p",{className:"text-xs text-fg-muted",children:"This Remit runs on your own server, so it updates when you say so. Your mail lives at your provider and is never touched by an update."})]}),D,l&&e.jsx("p",{role:"status",className:"text-xs text-fg-muted",children:l})]})}const ye=s=>s.map(a=>q(a.data?.items??[]));function ke(s){const a=ae({queries:s.map(t=>({...L({path:{accountId:t}}),staleTime:1/0})),combine:ye});return m.useMemo(()=>new Map(s.map((t,n)=>[t,a[n]??"/"])),[s,a])}function we(s,a){return{quarantineId:s.quarantineId,accountId:s.accountId,mailboxId:s.mailboxId,uidValidity:s.uidValidity,uid:s.uid,mailboxRole:s.mailboxRole?U[s.mailboxRole]:void 0,mailboxPath:s.mailboxPath,mailboxDelimiter:a,failureStage:s.failureStage,failureCode:s.failureCode,failureMessage:s.failureMessage,failurePartPath:s.failurePartPath,quarantinedAt:s.quarantinedAt,attempts:s.attempts,sizeBytes:s.sizeBytes,contentType:s.contentType,transferEncoding:s.transferEncoding,charset:s.charset,structure:s.structure,messageIdHash:s.messageIdHash,workerVersion:s.workerVersion}}const Ce=[];function Re(s){window.open(s,"_blank","noopener,noreferrer")}function Te(s){return S(I({quarantine:P(s),title:he(s)}))}function ze({error:s}){return e.jsxs("section",{role:"alert",className:"space-y-3",children:[e.jsx("h2",{className:"text-sm font-semibold text-fg",children:"Messages set aside"}),e.jsxs("div",{className:"space-y-2 rounded-sm border border-danger/40 bg-danger-soft px-row-inset py-3",children:[e.jsx("p",{className:"text-sm font-medium text-danger",children:"The list of set-aside messages could not be read."}),e.jsx("p",{className:"break-words text-sm text-fg-muted",children:se(s)}),e.jsx("p",{className:"text-xs text-fg-muted",children:"Mail may still have been set aside — this page cannot say either way until it can read the list. Reporting this gets it fixed."}),e.jsx(r,{variant:"secondary",size:"sm",icon:e.jsx(M,{className:"size-3.5"}),onClick:()=>Re(S(I())),children:"Report this"})]})]})}function Se({entries:s,isPending:a,error:t}){const[n,i]=m.useState(null),[l,c]=m.useState(!1);if(a)return e.jsx("p",{className:"animate-pulse text-sm text-fg-subtle",children:"Checking for messages set aside…"});if(t)return e.jsx(ze,{error:t});const o=x=>{navigator.clipboard.writeText(x).then(()=>{c(!1),i(null)},()=>{c(!0),i(null)})};return e.jsxs(e.Fragment,{children:[l&&e.jsx("p",{role:"alert",className:"mb-3 text-sm text-danger",children:"The report was not copied — this browser refused clipboard access. Cut the bug again and use Open on GitHub, which needs no clipboard."}),e.jsx(je,{entries:s,onCutBug:i}),e.jsx(pe,{entry:n,issueUrl:n?Te(n):"",onClose:()=>i(null),onCopy:o})]})}function Ie(){const{data:s,isPending:a,error:t}=H(F()),n=s?.entries??Ce,i=m.useMemo(()=>[...new Set(n.map(o=>o.accountId))],[n]),l=ke(i),c=m.useMemo(()=>n.map(o=>we(o,l.get(o.accountId)??"/")),[n,l]);return e.jsx(Se,{entries:c,isPending:a,error:t})}function Me(){const{surface:s,release:a,currentVersion:t,appliesSchemaMigration:n,onCheck:i,install:l,onDismissResult:c}=Q(),[o,x]=m.useState(!1);return s.status!=="ready"?null:e.jsxs(e.Fragment,{children:[e.jsx(ve,{state:s.section,onCheck:i,onInstall:()=>x(!0),onDismissResult:c}),a&&t&&e.jsx(be,{open:o,currentVersion:t,release:a,appliesSchemaMigration:n,onClose:()=>x(!1),onConfirm:()=>{x(!1),l(a.version)}})]})}function Ae(){return Y().tlsMode!=="internal"?null:e.jsxs("div",{className:"border-t border-line pt-4 mt-4",children:[e.jsx("p",{className:"text-sm font-medium text-fg mb-1",children:"TLS root certificate"}),e.jsx("p",{className:"text-sm text-fg-muted mb-2",children:"This deployment signs its own certificate. Import it into the trust store of each device you browse from, and the browser warning stops for good."}),e.jsx(p,{href:"/tls-root-ca.crt",download:!0,variant:"secondary",size:"sm",icon:e.jsx(ne,{className:"size-3.5"}),children:"Download root certificate"})]})}function _e(s){try{return new Date(s).toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return s}}function Ee({sha:s=W,commitUrl:a=G,buildTime:t=Z}){return e.jsxs("p",{className:"text-xs text-fg-subtle",children:["Version"," ",a?e.jsx("a",{href:a,target:"_blank",rel:"noopener noreferrer",className:"font-mono hover:text-fg-muted hover:underline",children:s}):e.jsx("span",{className:"font-mono",children:s})," · ",e.jsxs("span",{children:["Built ",_e(t)]})]})}function Je(){const s=J(),[a,t]=m.useState(!0),n=i=>{const l=X[i];l&&s({to:l})};return e.jsxs(ee,{items:K,activeId:"advanced",title:"Advanced",description:"Notification rules, export, and diagnostics.",help:ie,helpOpen:a,onToggleHelp:()=>t(i=>!i),onSelect:n,onBackToMail:()=>{s({to:"/mail"})},children:[e.jsx(Me,{}),e.jsx(Ie,{}),e.jsx("div",{className:"mt-6 border-t border-line pt-4",children:e.jsx("p",{className:"text-sm text-fg-muted",children:"Notification rules and data export are coming in a future release."})}),e.jsx(Ae,{}),e.jsxs("div",{className:"border-t border-line pt-4 mt-4",children:[e.jsx("p",{className:"text-sm font-medium text-fg mb-1",children:"About"}),e.jsx(Ee,{})]})]})}export{Je as component};
@@ -1 +0,0 @@
1
- import{c as R,bE as L,j as l,r as p,L as M,B as _,b as g}from"./index-BMM2gkfY.js";const S=R("EllipsisVertical",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]]);const V=R("Undo2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),w=4,b=8;function I(e,t,s){const n=Math.max(b,window.innerWidth-t.width-b),o=s==="end"?e.right-t.width:e.left,r=Math.min(Math.max(o,b),n),a=e.bottom+w,i=e.top-w-t.height,u=a+t.height<=window.innerHeight-b||i<b?a:i;return{left:r,top:u}}function P(e,t,s,n){const[o,r]=p.useState(null),a=p.useRef(n);return a.current=n,p.useLayoutEffect(()=>{if(!t){r(null);return}const i=()=>{const d=e.current,m=a.current();if(!d||!m)return;const f=d.getBoundingClientRect(),x={width:f.right-f.left,height:f.bottom-f.top},c=I(m,x,s);r(E=>E?.left===c.left&&E.top===c.top?E:{position:"fixed",left:c.left,top:c.top})};i(),window.addEventListener("resize",i),window.addEventListener("scroll",i,!0);const h=e.current;let u=null;return h&&typeof ResizeObserver<"u"&&(u=new ResizeObserver(i),u.observe(h)),()=>{u?.disconnect(),window.removeEventListener("resize",i),window.removeEventListener("scroll",i,!0)}},[t,s,e]),o}function j({open:e,align:t="start",getAnchor:s,panelRef:n,children:o}){const r=P(n,e,t,s);return e?L.createPortal(l.jsx("div",{className:"z-50",style:r??{position:"fixed",visibility:"hidden"},children:o}),document.body):null}function k({label:e,children:t,className:s,ref:n,onKeyDown:o,"data-testid":r}){return l.jsx("div",{ref:n,role:"menu","aria-label":e,tabIndex:-1,onKeyDown:o,"data-testid":r,className:g("z-50 flex max-h-[60dvh] min-w-44 flex-col overflow-y-auto overscroll-contain rounded-md border border-line bg-surface py-1 shadow-lg outline-none",s),children:t})}function T({label:e,icon:t,onSelect:s,className:n,lang:o,"data-testid":r}){return l.jsxs("button",{type:"button",role:"menuitem",lang:o,onClick:s,"data-testid":r,className:g("flex min-h-11 items-center gap-3 px-4 py-2.5 text-left text-sm text-fg transition-colors hover:bg-surface-sunken",n),children:[t&&l.jsx("span",{className:"shrink-0 text-fg-subtle",children:t}),e]})}function $({triggerLabel:e,triggerIcon:t,triggerText:s,items:n,align:o="end",touch:r=!0,className:a,triggerClassName:i,nested:h=!1,children:u}){const[d,m]=p.useState(!1),f=p.useRef(null),x=p.useRef(null);return M({id:"popover-menu",open:d,answers:{back:()=>m(!1)}}),p.useEffect(()=>{if(!d)return;const c=E=>{const v=E.target;f.current?.contains(v)||x.current?.contains(v)||m(!1)};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[d]),n.length===0&&!u?null:l.jsxs("div",{ref:f,className:g("relative",a),...h?{role:"none"}:{},children:[l.jsx(_,{variant:"ghost",size:"sm",icon:t??l.jsx(S,{className:"size-5"}),onClick:()=>m(c=>!c),"aria-label":e,"aria-haspopup":"menu","aria-expanded":d,...h?{role:"menuitem"}:{},className:g(r&&"min-h-11 min-w-11 px-0",i),children:s}),l.jsx(j,{open:d,align:o,panelRef:x,getAnchor:()=>f.current?.getBoundingClientRect()??null,children:l.jsxs(k,{ref:x,children:[n.map(c=>l.jsx(T,{label:c.label,icon:c.icon,onSelect:()=>{m(!1),c.onSelect()}},c.key)),u]})})]})}const z=/[\u0000-\u001f\u007f-\u009f\u061c\u200b-\u200f\u2028\u2029\u202a-\u202e\u2066-\u2069\ufeff]/g,B=/[<>:"|?*]/g,C=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(\.|$)/i,y=120,H=12,O="attachment",N=e=>{const t=[...e];if(t.length<=y)return e;const s=e.lastIndexOf("."),n=s>0&&[...e.slice(s)].length<=H?e.slice(s):"",o=y-[...n].length;return t.slice(0,o).join("")+n},U=(e,t=O)=>{const n=e.replace(z,"").split(/[/\\]/),r=(n[n.length-1]??"").replace(B,"_").replace(/^[.\s]+/,"").replace(/[.\s]+$/,"");if(r.length===0)return N(t);const a=C.test(r)?`_${r}`:r;return N(a)},A=["KB","MB","GB","TB"],G=e=>{if(!Number.isFinite(e)||e<0)return"unknown size";const t=Math.round(e);if(t<1024)return t===1?"1 byte":`${t} bytes`;const s=1023.95;let n=t/1024,o=0;for(;n>=s&&o<A.length-1;)n/=1024,o+=1;return`${n.toFixed(1).replace(/\.0$/,"")} ${A[o]}`};export{S as E,$ as P,V as U,j as a,k as b,T as c,G as f,U as s};
@@ -1 +0,0 @@
1
- import{L as j,r as s,j as o,b as v}from"./index-BMM2gkfY.js";const k=320,I="cubic-bezier(0.32, 0.9, 0.3, 1)",N=.5,C=.4,E=360;function P(n){return Math.sign(n)*Math.sqrt(Math.abs(n))*4}function A({open:n,onClose:i,children:g,dismissLabel:S="Dismiss"}){j({id:"bottom-sheet",open:n,answers:{back:i}});const b=s.useRef(null),[l,Y]=s.useState(E),[d,u]=s.useState(null);s.useLayoutEffect(()=>{const t=b.current;if(!t)return;const e=()=>Y(t.offsetHeight);e();const a=new ResizeObserver(e);return a.observe(t),()=>a.disconnect()},[]);const c=s.useRef(null),y=s.useCallback(t=>{t.currentTarget.setPointerCapture(t.pointerId),c.current={startY:t.clientY,lastY:t.clientY,lastT:t.timeStamp,velocity:0,moved:!1},u(0)},[]),w=s.useCallback(t=>{const e=c.current;if(!e)return;const a=t.timeStamp-e.lastT;a>0&&(e.velocity=(t.clientY-e.lastY)/a),e.lastY=t.clientY,e.lastT=t.timeStamp;const r=t.clientY-e.startY;Math.abs(r)>4&&(e.moved=!0);const M=r<0?P(r):r;u(M)},[]),m=s.useCallback(()=>{const t=c.current;if(c.current=null,!t)return;const e=t.lastY-t.startY,r=t.velocity>N||e>l*C;u(null),r&&i()},[l,i]),x=d!==null,h=n?d??0:l,f=Math.min(Math.max(1-h/l,0),1),p=x?"none":`transform ${k}ms ${I}`;return o.jsxs("div",{className:v("absolute inset-0 z-40 select-none overflow-hidden",n||x?"":"pointer-events-none"),children:[o.jsx("button",{type:"button","aria-label":S,tabIndex:-1,onClick:i,className:v("absolute inset-0 bg-black/40",f>0?"pointer-events-auto":"pointer-events-none"),style:{opacity:f*.6,transition:p.replace("transform","opacity")}}),o.jsxs("div",{ref:b,className:"absolute inset-x-0 bottom-0 flex max-h-[92%] flex-col rounded-t-3xl border-t border-line bg-surface pb-[env(safe-area-inset-bottom,0px)] shadow-2xl shadow-black/30",style:{transform:`translateY(${h}px)`,transition:p},children:[o.jsx("div",{role:"slider","aria-label":"Drag down to dismiss","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(f*100),tabIndex:0,onPointerDown:y,onPointerMove:w,onPointerUp:m,onPointerCancel:m,className:"flex cursor-grab touch-none justify-center pb-1 pt-2.5 active:cursor-grabbing",children:o.jsx("div",{className:"h-1 w-10 rounded-full bg-fg-subtle/40"})}),o.jsx("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:g})]})]})}export{A as B};
@@ -1 +0,0 @@
1
- import{j as r,a5 as i}from"./index-BMM2gkfY.js";import{a as m}from"./MailShell-zSsU-lz6.js";import{B as o}from"./BriefPane-BH4C3dLA.js";import{f as p}from"./search-token-index-BxytxF1H.js";import{u as e}from"./search-mirror-Lf1ogSTC.js";import"./FullCompose-DQRblSEf.js";import"./ErrorState-CBV6FtSJ.js";import"./index-znJrox9Y.js";import"./useMessageBodyContent-DHYriZRr.js";import"./useSignature-D4_HRnT6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DlyzBdqd.js";import"./format-Dquh5i8-.js";import"./confirm-dialog-BeWZSgTL.js";import"./useSearchTokenContext-Dpl3C3yN.js";import"./kbd-B-P9r9YU.js";import"./search-scope-DTcpOp3S.js";import"./MailListHeader-BpL0hiB2.js";import"./attachment-file-B4nazean.js";import"./mail-5WLfHo9K.js";import"./avatar-lcZ4TVQd.js";import"./download-CCD9VEcr.js";import"./shield-check-BktB9xgz.js";import"./useFilters-CJkmZ6i7.js";import"./useQueries-B-aYaD8d.js";import"./clock-KiLfjGAs.js";import"./menu-Rr3_qIop.js";import"./useRefreshControl-DUEqZD7x.js";import"./circle-check-big-CyS5sZb6.js";import"./useLabels-DL6gxLzs.js";import"./useSemanticSearch-DCoRQGtD.js";import"./search-query-Cr_ZXBCp.js";import"./wizard-selection-B1bng5Jq.js";function G(){const t=p();return e({to:"/mail/brief"}),r.jsx(o,{thread:t,children:r.jsx(m,{phone:r.jsx(o.Phone,{}),list:r.jsx(o.List,{}),reading:r.jsx(i,{}),intelligence:r.jsx(o.Intelligence,{}),hasThread:!!t})})}export{G as component};
@@ -1,2 +0,0 @@
1
- import{dV as A,W as $}from"./index-BMM2gkfY.js";function X(_,d){for(var b=0;b<d.length;b++){const y=d[b];if(typeof y!="string"&&!Array.isArray(y)){for(const l in y)if(l!=="default"&&!(l in _)){const p=Object.getOwnPropertyDescriptor(y,l);p&&Object.defineProperty(_,l,p.get?p:{enumerable:!0,get:()=>y[l]})}}}return Object.freeze(Object.defineProperty(_,Symbol.toStringTag,{value:"Module"}))}var E={exports:{}},H;function J(){return H||(H=1,(function(_,d){var b=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof A<"u"&&A,y=(function(){function p(){this.fetch=!1,this.DOMException=b.DOMException}return p.prototype=b,new p})();(function(p){(function(h){var a=typeof p<"u"&&p||typeof self<"u"&&self||typeof A<"u"&&A||{},u={searchParams:"URLSearchParams"in a,iterable:"Symbol"in a&&"iterator"in Symbol,blob:"FileReader"in a&&"Blob"in a&&(function(){try{return new Blob,!0}catch{return!1}})(),formData:"FormData"in a,arrayBuffer:"ArrayBuffer"in a};function F(e){return e&&DataView.prototype.isPrototypeOf(e)}if(u.arrayBuffer)var q=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],C=ArrayBuffer.isView||function(e){return e&&q.indexOf(Object.prototype.toString.call(e))>-1};function v(e){if(typeof e!="string"&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||e==="")throw new TypeError('Invalid character in header field name: "'+e+'"');return e.toLowerCase()}function T(e){return typeof e!="string"&&(e=String(e)),e}function B(e){var t={next:function(){var r=e.shift();return{done:r===void 0,value:r}}};return u.iterable&&(t[Symbol.iterator]=function(){return t}),t}function i(e){this.map={},e instanceof i?e.forEach(function(t,r){this.append(r,t)},this):Array.isArray(e)?e.forEach(function(t){if(t.length!=2)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+t.length);this.append(t[0],t[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}i.prototype.append=function(e,t){e=v(e),t=T(t);var r=this.map[e];this.map[e]=r?r+", "+t:t},i.prototype.delete=function(e){delete this.map[v(e)]},i.prototype.get=function(e){return e=v(e),this.has(e)?this.map[e]:null},i.prototype.has=function(e){return this.map.hasOwnProperty(v(e))},i.prototype.set=function(e,t){this.map[v(e)]=T(t)},i.prototype.forEach=function(e,t){for(var r in this.map)this.map.hasOwnProperty(r)&&e.call(t,this.map[r],r,this)},i.prototype.keys=function(){var e=[];return this.forEach(function(t,r){e.push(r)}),B(e)},i.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),B(e)},i.prototype.entries=function(){var e=[];return this.forEach(function(t,r){e.push([r,t])}),B(e)},u.iterable&&(i.prototype[Symbol.iterator]=i.prototype.entries);function O(e){if(!e._noBody){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}}function D(e){return new Promise(function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}})}function I(e){var t=new FileReader,r=D(t);return t.readAsArrayBuffer(e),r}function M(e){var t=new FileReader,r=D(t),n=/charset=([A-Za-z0-9_-]+)/.exec(e.type),s=n?n[1]:"utf-8";return t.readAsText(e,s),r}function L(e){for(var t=new Uint8Array(e),r=new Array(t.length),n=0;n<t.length;n++)r[n]=String.fromCharCode(t[n]);return r.join("")}function R(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function U(){return this.bodyUsed=!1,this._initBody=function(e){this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?typeof e=="string"?this._bodyText=e:u.blob&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:u.formData&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:u.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():u.arrayBuffer&&u.blob&&F(e)?(this._bodyArrayBuffer=R(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):u.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(e)||C(e))?this._bodyArrayBuffer=R(e):this._bodyText=e=Object.prototype.toString.call(e):(this._noBody=!0,this._bodyText=""),this.headers.get("content-type")||(typeof e=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):u.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},u.blob&&(this.blob=function(){var e=O(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var e=O(this);return e||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else{if(u.blob)return this.blob().then(I);throw new Error("could not read as ArrayBuffer")}},this.text=function(){var e=O(this);if(e)return e;if(this._bodyBlob)return M(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(L(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},u.formData&&(this.formData=function(){return this.text().then(V)}),this.json=function(){return this.text().then(JSON.parse)},this}var N=["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"];function k(e){var t=e.toUpperCase();return N.indexOf(t)>-1?t:e}function w(e,t){if(!(this instanceof w))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');t=t||{};var r=t.body;if(e instanceof w){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new i(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,!r&&e._bodyInit!=null&&(r=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",(t.headers||!this.headers)&&(this.headers=new i(t.headers)),this.method=k(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal||(function(){if("AbortController"in a){var o=new AbortController;return o.signal}})(),this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&r)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(r),(this.method==="GET"||this.method==="HEAD")&&(t.cache==="no-store"||t.cache==="no-cache")){var n=/([?&])_=[^&]*/;if(n.test(this.url))this.url=this.url.replace(n,"$1_="+new Date().getTime());else{var s=/\?/;this.url+=(s.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}w.prototype.clone=function(){return new w(this,{body:this._bodyInit})};function V(e){var t=new FormData;return e.trim().split("&").forEach(function(r){if(r){var n=r.split("="),s=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(s),decodeURIComponent(o))}}),t}function z(e){var t=new i,r=e.replace(/\r?\n[\t ]+/g," ");return r.split("\r").map(function(n){return n.indexOf(`
2
- `)===0?n.substr(1,n.length):n}).forEach(function(n){var s=n.split(":"),o=s.shift().trim();if(o){var g=s.join(":").trim();try{t.append(o,g)}catch(x){console.warn("Response "+x.message)}}}),t}U.call(w.prototype);function c(e,t){if(!(this instanceof c))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(t||(t={}),this.type="default",this.status=t.status===void 0?200:t.status,this.status<200||this.status>599)throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText===void 0?"":""+t.statusText,this.headers=new i(t.headers),this.url=t.url||"",this._initBody(e)}U.call(c.prototype),c.prototype.clone=function(){return new c(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new i(this.headers),url:this.url})},c.error=function(){var e=new c(null,{status:200,statusText:""});return e.ok=!1,e.status=0,e.type="error",e};var G=[301,302,303,307,308];c.redirect=function(e,t){if(G.indexOf(t)===-1)throw new RangeError("Invalid status code");return new c(null,{status:t,headers:{location:e}})},h.DOMException=a.DOMException;try{new h.DOMException}catch{h.DOMException=function(t,r){this.message=t,this.name=r;var n=Error(t);this.stack=n.stack},h.DOMException.prototype=Object.create(Error.prototype),h.DOMException.prototype.constructor=h.DOMException}function P(e,t){return new Promise(function(r,n){var s=new w(e,t);if(s.signal&&s.signal.aborted)return n(new h.DOMException("Aborted","AbortError"));var o=new XMLHttpRequest;function g(){o.abort()}o.onload=function(){var f={statusText:o.statusText,headers:z(o.getAllResponseHeaders()||"")};s.url.indexOf("file://")===0&&(o.status<200||o.status>599)?f.status=200:f.status=o.status,f.url="responseURL"in o?o.responseURL:f.headers.get("X-Request-URL");var m="response"in o?o.response:o.responseText;setTimeout(function(){r(new c(m,f))},0)},o.onerror=function(){setTimeout(function(){n(new TypeError("Network request failed"))},0)},o.ontimeout=function(){setTimeout(function(){n(new TypeError("Network request timed out"))},0)},o.onabort=function(){setTimeout(function(){n(new h.DOMException("Aborted","AbortError"))},0)};function x(f){try{return f===""&&a.location.href?a.location.href:f}catch{return f}}if(o.open(s.method,x(s.url),!0),s.credentials==="include"?o.withCredentials=!0:s.credentials==="omit"&&(o.withCredentials=!1),"responseType"in o&&(u.blob?o.responseType="blob":u.arrayBuffer&&(o.responseType="arraybuffer")),t&&typeof t.headers=="object"&&!(t.headers instanceof i||a.Headers&&t.headers instanceof a.Headers)){var j=[];Object.getOwnPropertyNames(t.headers).forEach(function(f){j.push(v(f)),o.setRequestHeader(f,T(t.headers[f]))}),s.headers.forEach(function(f,m){j.indexOf(m)===-1&&o.setRequestHeader(m,f)})}else s.headers.forEach(function(f,m){o.setRequestHeader(m,f)});s.signal&&(s.signal.addEventListener("abort",g),o.onreadystatechange=function(){o.readyState===4&&s.signal.removeEventListener("abort",g)}),o.send(typeof s._bodyInit>"u"?null:s._bodyInit)})}return P.polyfill=!0,a.fetch||(a.fetch=P,a.Headers=i,a.Request=w,a.Response=c),h.Headers=i,h.Request=w,h.Response=c,h.fetch=P,h})({})})(y),y.fetch.ponyfill=!0,delete y.fetch.polyfill;var l=b.fetch?b:y;d=l.fetch,d.default=l.fetch,d.fetch=l.fetch,d.Headers=l.Headers,d.Request=l.Request,d.Response=l.Response,_.exports=d})(E,E.exports)),E.exports}var S=J();const W=$(S),K=X({__proto__:null,default:W},[S]);export{K as b};
@@ -1 +0,0 @@
1
- import{F as o}from"./FullCompose-DQRblSEf.js";import"./index-BMM2gkfY.js";import"./ErrorState-CBV6FtSJ.js";import"./index-znJrox9Y.js";import"./useMessageBodyContent-DHYriZRr.js";import"./useSignature-D4_HRnT6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DlyzBdqd.js";import"./format-Dquh5i8-.js";import"./confirm-dialog-BeWZSgTL.js";const c=o;export{c as component};
@@ -1 +0,0 @@
1
- import{F as o}from"./FullCompose-DQRblSEf.js";import"./index-BMM2gkfY.js";import"./ErrorState-CBV6FtSJ.js";import"./index-znJrox9Y.js";import"./useMessageBodyContent-DHYriZRr.js";import"./useSignature-D4_HRnT6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DlyzBdqd.js";import"./format-Dquh5i8-.js";import"./confirm-dialog-BeWZSgTL.js";const c=o;export{c as component};
@@ -1 +0,0 @@
1
- import{F as o}from"./FullCompose-DQRblSEf.js";import"./index-BMM2gkfY.js";import"./ErrorState-CBV6FtSJ.js";import"./index-znJrox9Y.js";import"./useMessageBodyContent-DHYriZRr.js";import"./useSignature-D4_HRnT6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DlyzBdqd.js";import"./format-Dquh5i8-.js";import"./confirm-dialog-BeWZSgTL.js";const c=o;export{c as component};
@@ -1 +0,0 @@
1
- import{F as o}from"./FullCompose-DQRblSEf.js";import"./index-BMM2gkfY.js";import"./ErrorState-CBV6FtSJ.js";import"./index-znJrox9Y.js";import"./useMessageBodyContent-DHYriZRr.js";import"./useSignature-D4_HRnT6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DlyzBdqd.js";import"./format-Dquh5i8-.js";import"./confirm-dialog-BeWZSgTL.js";const c=o;export{c as component};
@@ -1 +0,0 @@
1
- import{r as o,L as x,j as e,P as b,b as n}from"./index-BMM2gkfY.js";const h=({isOpen:s,title:r,description:a,confirmLabel:c,cancelLabel:d="Cancel",destructive:m=!1,isBusy:u=!1,onConfirm:f,onCancel:t})=>{const i=o.useRef(null);return x({id:"confirm-dialog",open:s,answers:{back:t}}),o.useEffect(()=>{if(!s)return;const l=document.activeElement instanceof HTMLElement?document.activeElement:null;return i.current?.focus(),()=>{l?.isConnected&&l.focus()}},[s]),s?e.jsxs("div",{className:"fixed inset-0 z-[60] flex items-center justify-center",children:[e.jsx(b,{label:"Dismiss confirmation",onDismiss:t,className:"backdrop-blur-sm"}),e.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":r,className:n("relative z-10 w-full max-w-sm","bg-surface border border-line rounded-sm shadow-lg","p-6"),children:[e.jsx("h2",{className:"text-lg font-semibold",children:r}),a&&e.jsx("p",{className:"mt-2 text-sm text-fg-muted",children:a}),e.jsxs("div",{className:"mt-6 flex items-center justify-end gap-2",children:[e.jsx("button",{ref:i,type:"button",onClick:t,className:n("min-h-11 inline-flex items-center justify-center px-4 rounded text-sm font-medium transition-colors","border border-line hover:bg-surface-raised"),children:d}),e.jsx("button",{type:"button",onClick:f,disabled:u,className:n("min-h-11 inline-flex items-center justify-center px-4 rounded text-sm font-medium transition-colors",m?"bg-danger text-canvas hover:bg-danger/90":"bg-accent text-accent-fg hover:bg-accent-hover","disabled:opacity-50 disabled:cursor-not-allowed"),children:c})]})]})]}):null};export{h as C};
@@ -1 +0,0 @@
1
- import{w as X,ak as Z,b0 as ee,b1 as te,r as x,b2 as se,j as t,b3 as ae,b4 as ie,as as R,B as N,b5 as ne,aA as re,aG as oe,b6 as le,b7 as ce,T as de,D as P,z as me,b8 as ue,G as pe,H as xe,b9 as fe,aQ as he,a1 as ge,a2 as be,aE as ve,aI as ye}from"./index-BMM2gkfY.js";import{S as je}from"./settings-screen-D0fhHptg.js";import{B as Ne}from"./bottom-sheet-D-zZ-Ztc.js";import{u as Ce,a as Se}from"./useLabels-DL6gxLzs.js";import{b as Fe,N as S,p as Ie,u as Me,r as we,a as Ee,S as L,c as Oe,n as De,f as Ae,d as Le,e as ke,g as Te}from"./useFilters-CJkmZ6i7.js";import{C as A}from"./circle-check-wwq1h3jr.js";import{E as z}from"./ErrorState-CBV6FtSJ.js";import"./avatar-lcZ4TVQd.js";import"./menu-Rr3_qIop.js";import"./circle-help-DbSK9hyF.js";const Re=(e,s)=>{const r=X(),i=Z({...te(),onSuccess:()=>{e&&(r.invalidateQueries({queryKey:Fe(e)}),s&&r.invalidateQueries({queryKey:ee({path:{accountId:e,filterId:s}})}))}}),{mutate:c}=i;return{updateFilter:x.useCallback(d=>{!e||!s||c({path:{accountId:e,filterId:s},body:d})},[e,s,c]),isPending:i.isPending,isSuccess:i.isSuccess,isError:i.isError,error:i.error,reset:i.reset}},Pe=(e,s=!1)=>({clauses:e.literalClauses.map((i,c)=>({id:`clause-${c}`,field:i.field,value:i.value})),matchOperator:e.matchOperator==="And"?"all":"any",widen:e.hasAnchor?{anchorCount:1,...s?{inactive:!0}:{}}:void 0,moveMailboxId:e.actionMailboxId!==S?e.actionMailboxId:void 0,labelId:e.actionLabelId!==S?e.actionLabelId:void 0,scope:e.scope==="Temporary"?"until":"standing",until:e.scope==="Temporary"?ze(e.expiresAt):void 0,name:e.name}),ze=e=>{if(!e)return"";const s=Date.parse(e);if(Number.isNaN(s))return"";const r=new Date(s),i=c=>String(c).padStart(2,"0");return`${r.getFullYear()}-${i(r.getMonth()+1)}-${i(r.getDate())}`},k=e=>JSON.stringify({clauses:e.clauses.map(s=>[s.field,s.value]),operator:e.matchOperator,move:e.moveMailboxId??null,label:e.labelId??null,widen:e.widen?e.widen.inactive?"inactive":"active":"none"}),$=(e,s)=>k(e)!==k(s),T=e=>JSON.stringify({scope:e.scope==="until"?"until":"standing",until:e.scope==="until"?e.until??"":""}),_=(e,s)=>T(e)!==T(s),$e=(e,s)=>{const r={},i=(e.name??"").trim();return i!==(s.name??"").trim()&&(r.name=i),$(e,s)&&(r.matchOperator=e.matchOperator==="all"?"And":"Or",r.literalClauses=e.clauses.map(c=>({field:c.field,value:c.value})),r.actionMailboxId=e.moveMailboxId??S,r.actionLabelId=e.labelId??S),_(e,s)&&(r.scope=e.scope==="until"?"Temporary":"Standing",e.scope==="until"&&(r.expiresAt=Ie(e.until??""))),r};function _e({accountId:e,filter:s,folders:r,delimiter:i,labels:c,semanticUnavailable:g=!1,onClose:d}){const f=x.useMemo(()=>Pe(s,g),[s,g]),[n,l]=x.useState(f),[m,u]=x.useState(),[h,v]=x.useState(!1),I=x.useRef(0),{count:C}=Me(e,we(n)),j=Re(e,s.filterId),b=Ee(e),{createFolderIn:F}=se(e),{createLabel:E}=Ce(e),M=async o=>{const a=await E(o);return{id:a.labelId,name:a.name,color:a.color}},p=()=>u({mode:"add",draft:{field:L[0],value:""}}),w=o=>{const a=n.clauses.find(y=>y.id===o);a&&u({mode:"edit",clauseId:o,draft:{field:a.field,value:a.value}})},O=o=>u(a=>a&&{...a,draft:{...a.draft,field:o}}),B=o=>u(a=>a&&{...a,draft:{...a.draft,value:o}}),U=()=>{if(!m)return;const o=m.draft.field,a=De(o,m.draft.value);a!==""&&(l(y=>m.mode==="edit"&&m.clauseId?{...y,clauses:y.clauses.map(D=>D.id===m.clauseId?{id:D.id,field:o,value:a}:D)}:(I.current+=1,{...y,clauses:[...y.clauses,{id:`new-${I.current}`,field:o,value:a}]})),u(void 0))},G=o=>l(a=>({...a,clauses:a.clauses.filter(y=>y.id!==o)})),K=o=>l(a=>({...a,matchOperator:o})),Q=o=>l(a=>({...a,moveMailboxId:o||void 0})),H=o=>l(a=>({...a,labelId:o||void 0})),J=o=>l(a=>({...a,name:o})),V=o=>l(a=>({...a,scope:o,until:o==="until"?a.until:void 0})),q=o=>l(a=>({...a,until:o})),W=()=>{const o=$(n,f)||_(n,f),a=$e(n,f);if(Object.keys(a).length===0){d();return}v(o),j.updateFilter(a)},Y=()=>b.start(Oe(n));return b.isStarting||b.isRunning||b.isDone?t.jsx(Ke,{progress:b.progress,isDone:b.isDone,onClose:d}):j.isPending?t.jsx(Be,{}):j.isError?t.jsx(Qe,{onRetry:j.reset,onClose:d}):j.isSuccess?h?t.jsx(Ge,{preview:ae(C),blocked:C.status!=="ready"||C.stale===!0,onReapply:Y,onClose:d}):t.jsx(Ue,{onClose:d}):t.jsx(ie,{rule:n,folders:r,delimiter:i,labels:c,preview:C,semanticAvailable:!1,clauseFields:L,anchorLocked:!0,clauseEdit:m,onStartAddClause:p,onStartEditClause:w,onRemoveClause:G,onChangeDraftField:O,onChangeDraftValue:B,onSubmitClause:U,onCancelClause:()=>u(void 0),onChangeMatchOperator:K,onChangeMove:Q,onCreateFolder:F,onChangeLabel:H,onCreateLabel:M,onChangeName:J,onChangeScope:V,onChangeUntil:q,onCommit:W,onCancel:d})}function Be(){return t.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-10 text-center",children:[t.jsx(R,{className:"size-8 animate-spin text-accent-2"}),t.jsx("p",{className:"text-sm font-medium text-fg",children:"Saving changes…"})]})}function Ue({onClose:e}){return t.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[t.jsx(A,{className:"size-8 text-positive"}),t.jsx("p",{className:"text-sm font-medium text-fg",children:"Filter updated"}),t.jsx(N,{variant:"primary",onClick:e,className:"mt-2",children:"Done"})]})}function Ge({preview:e,blocked:s,onReapply:r,onClose:i}){return t.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[t.jsx(A,{className:"size-8 text-positive"}),t.jsx("p",{className:"text-sm font-medium text-fg",children:"Rule saved"}),t.jsxs("p",{className:"max-w-xs text-xs text-fg-muted",children:["New mail follows the rule automatically. ",e," — move the mail already in your mailbox too?"]}),t.jsxs("div",{className:"mt-2 flex gap-2",children:[t.jsx(N,{variant:"primary",onClick:r,disabled:s,children:"Move existing mail"}),t.jsx(N,{variant:"ghost",onClick:i,children:"Not now"})]})]})}function Ke({progress:e,isDone:s,onClose:r}){const i=e.state==="Failed";return t.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[s?i?t.jsx("span",{className:"text-sm font-semibold text-danger",children:"Move failed"}):t.jsx(A,{className:"size-8 text-positive"}):t.jsx(R,{className:"size-8 animate-spin text-accent-2"}),!s&&t.jsx("p",{className:"text-sm font-medium text-fg",children:"Moving existing mail…"}),s&&!i&&t.jsxs("div",{className:"text-sm text-fg",children:[t.jsx("p",{className:"font-medium",children:"Done"}),t.jsxs("p",{className:"mt-1 text-xs text-fg-muted",children:[e.appliedCount," of ",e.matchedCount," moved",e.failedCount>0?` · ${e.failedCount} failed`:"","."]})]}),s&&i&&t.jsx("p",{className:"max-w-xs text-xs text-fg-muted",children:e.errorMessage||"Something went wrong. Please try again."}),s&&t.jsx(N,{variant:"primary",onClick:r,className:"mt-2",children:"Done"})]})}function Qe({onRetry:e,onClose:s}){return t.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[t.jsx("p",{className:"text-sm font-medium text-danger",children:"Couldn't save changes"}),t.jsx("p",{className:"max-w-xs text-xs text-fg-muted",children:"Please try again."}),t.jsxs("div",{className:"mt-2 flex gap-2",children:[t.jsx(N,{variant:"primary",onClick:e,children:"Try again"}),t.jsx(N,{variant:"ghost",onClick:s,children:"Not now"})]})]})}function He({accountId:e,filter:s,folders:r,delimiter:i,labels:c,semanticUnavailable:g,onClose:d}){const f=ne(),n=t.jsx(_e,{accountId:e,filter:s,folders:r,delimiter:i,labels:c,semanticUnavailable:g,onClose:d});return f?t.jsx(re,{open:!0,onClose:d,title:"Filter rule",children:n}):t.jsx(Ne,{open:!0,onClose:d,dismissLabel:"Dismiss filter rule",children:n})}function Je({filters:e,mailboxName:s,labelById:r,onEdit:i,onDelete:c,deletingFilterId:g,semanticUnavailable:d=!1,now:f=Date.now()}){return e.length===0?t.jsx("p",{className:"py-6 text-sm text-fg-muted",children:"No filters yet. Select a few messages in the inbox and choose Organize to make one."}):t.jsx("ul",{className:"divide-y divide-line rounded-md border border-line",children:e.map(n=>{const l=Ae(n,f),m=l==="Expired",u=n.actionMailboxId!==S?s(n.actionMailboxId):void 0,h=n.actionLabelId!==S?r.get(n.actionLabelId):void 0,v=Le(n.expiresAt);return t.jsxs("li",{className:"flex items-start gap-3 px-3 py-2.5",children:[t.jsxs("button",{type:"button",onClick:()=>i(n.filterId),"aria-label":`Edit filter ${n.name}`,className:"min-w-0 flex-1 rounded-sm text-left hover:opacity-80",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("span",{className:`truncate text-sm font-medium ${m?"text-fg-muted":"text-fg"}`,children:n.name}),t.jsx(oe,{tone:m?"neutral":"positive",dot:!0,children:l})]}),t.jsxs("p",{className:"mt-0.5 text-xs text-fg-subtle",children:[u?`Moves matches to ${u}`:"No move action",n.scope==="Temporary"&&v?m?` · expired ${v}`:` · until ${v}`:n.scope==="Standing"?" · always":""]}),(n.hasAnchor||h)&&t.jsxs("div",{className:"mt-1.5 flex flex-wrap gap-1.5",children:[n.hasAnchor&&t.jsx(le,{widen:{anchorCount:1,...d?{inactive:!0}:{}}}),h&&t.jsx(ce,{label:{labelId:h.id,name:h.name,color:h.color}})]})]}),t.jsx(N,{variant:"ghost",size:"sm",icon:t.jsx(de,{className:"size-4 text-danger"}),onClick:()=>c(n.filterId),disabled:g===n.filterId,"aria-label":`Delete filter ${n.name}`})]},n.filterId)})})}const Ve=t.jsxs("div",{className:"space-y-3",children:[t.jsxs("p",{children:["Filters are the standing rules Organize creates. A"," ",t.jsx("strong",{children:"Standing"})," filter keeps working on new mail; a"," ",t.jsx("strong",{children:"Temporary"})," one stops on its own at the date you picked."]}),t.jsx("p",{children:"An expired filter isn't deleted the instant it lapses — it stays here, marked Expired, so you can see what it did and when it stopped."})]});function qe({account:e}){const s=e.accountId,{filters:r,isPending:i,isError:c,error:g,refetch:d}=ke(s),{deleteFilter:f,deletingFilterId:n}=Te(s),[l,m]=x.useState(),{data:u}=P({...me({path:{accountId:s}}),staleTime:1/0}),h=ue(),v=x.useMemo(()=>pe(e.folderAppointments),[e.folderAppointments]),I=x.useCallback(p=>{const w=u?.items.find(O=>O.mailboxId===p);if(w)return xe(w,v.get(p),h)},[u?.items,v,h]),C=x.useMemo(()=>fe({mailboxes:u?.items??[],folderAppointments:e.folderAppointments,translator:h}),[u?.items,e.folderAppointments,h]),j=he(u?.items??[]),{labels:b}=Se(s),F=x.useMemo(()=>b.map(p=>({id:p.labelId,name:p.name,color:p.color})),[b]),E=x.useMemo(()=>new Map(F.map(p=>[p.id,p])),[F]),M=r.find(p=>p.filterId===l);return t.jsxs("section",{className:"space-y-2",children:[t.jsx("h2",{className:"text-sm font-semibold text-fg",children:e.email}),M&&t.jsx(He,{accountId:s,filter:M,folders:C,delimiter:j,labels:F,onClose:()=>m(void 0)}),i?t.jsx("div",{className:"h-16 animate-pulse rounded-md border border-line bg-surface","aria-busy":"true","aria-label":`Loading filters for ${e.email}`}):c?t.jsx(z,{variant:"inline",title:`Couldn't load filters for ${e.email}`,error:g,onRetry:()=>{d()}}):t.jsx(Je,{filters:r,mailboxName:I,labelById:E,onEdit:m,onDelete:f,deletingFilterId:n})]})}function rt(){const e=ge(),[s,r]=x.useState(!0),{data:i,isPending:c,isError:g,error:d,refetch:f}=P(be()),n=l=>{const m=ye[l];m&&e({to:m})};return t.jsx(je,{items:ve,activeId:"filters",title:"Filters",description:"Standing and temporary rules created by Organize, per account.",help:Ve,helpOpen:s,onToggleHelp:()=>r(l=>!l),onSelect:n,onBackToMail:()=>{e({to:"/mail"})},children:c?t.jsx("div",{className:"h-24 animate-pulse rounded-sm border border-line bg-surface","aria-busy":"true","aria-label":"Loading accounts"}):g?t.jsx(z,{title:"Couldn't load accounts",error:d,onRetry:()=>{f()}}):i.accounts.length===0?t.jsx("p",{className:"py-12 text-sm text-fg-muted",children:"No accounts configured."}):t.jsx("div",{className:"space-y-8",children:i.accounts.map(l=>t.jsx(qe,{account:l},l.accountId))})})}export{qe as AccountFilters,rt as component};
@@ -1 +0,0 @@
1
- import{j as o,a5 as i}from"./index-BMM2gkfY.js";import{a as m}from"./MailShell-zSsU-lz6.js";import{F as r}from"./FlaggedPane-Bx8o8jcX.js";import{f as p}from"./search-token-index-BxytxF1H.js";import{u as e}from"./search-mirror-Lf1ogSTC.js";import"./FullCompose-DQRblSEf.js";import"./ErrorState-CBV6FtSJ.js";import"./index-znJrox9Y.js";import"./useMessageBodyContent-DHYriZRr.js";import"./useSignature-D4_HRnT6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-DlyzBdqd.js";import"./format-Dquh5i8-.js";import"./confirm-dialog-BeWZSgTL.js";import"./useSearchTokenContext-Dpl3C3yN.js";import"./kbd-B-P9r9YU.js";import"./search-scope-DTcpOp3S.js";import"./MailListHeader-BpL0hiB2.js";import"./attachment-file-B4nazean.js";import"./mail-5WLfHo9K.js";import"./avatar-lcZ4TVQd.js";import"./download-CCD9VEcr.js";import"./shield-check-BktB9xgz.js";import"./useFilters-CJkmZ6i7.js";import"./useQueries-B-aYaD8d.js";import"./clock-KiLfjGAs.js";import"./menu-Rr3_qIop.js";import"./MailViewChrome-CNywrIYr.js";import"./wizard-selection-B1bng5Jq.js";function z(){const t=p();return e({to:"/mail/flagged"}),o.jsx(r,{thread:t,children:o.jsx(m,{phone:o.jsx(r.Phone,{}),list:o.jsx(r.List,{}),reading:o.jsx(i,{}),intelligence:o.jsx(r.Intelligence,{}),hasThread:!!t})})}export{z as component};