@remit/web-client-dist 0.0.441 → 0.0.442

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 (109) hide show
  1. package/assets/{BriefPane-DdO3OjwE.js → BriefPane-CFKLjJvK.js} +1 -1
  2. package/assets/{ErrorState-CgSMzTY2.js → ErrorState-DN-RI3U9.js} +1 -1
  3. package/assets/FlaggedPane-DBiC0Gbi.js +1 -0
  4. package/assets/{FullCompose-0XuW_k3c.js → FullCompose-h-ijKH5B.js} +1 -1
  5. package/assets/MailListHeader-PIppAk2B.js +7 -0
  6. package/assets/{MailShell-CkydgPpp.js → MailShell-B_aot5s9.js} +1 -1
  7. package/assets/{MailViewChrome-zk-EKctD.js → MailViewChrome-Cyc-QUE5.js} +1 -1
  8. package/assets/{MailboxPane-Dvcq_tA0.js → MailboxPane-Cp-MhShw.js} +1 -1
  9. package/assets/{NavMenuButton-CTNjrbxF.js → NavMenuButton-DUVN6jsO.js} +1 -1
  10. package/assets/{OnboardingWizard-BCaT1CN5.js → OnboardingWizard-ETngLhBw.js} +1 -1
  11. package/assets/{OutboxPane-CDTqUT0s.js → OutboxPane-uMX9mNAh.js} +1 -1
  12. package/assets/_mailboxId-CTB92O9m.js +1 -0
  13. package/assets/_messageId-CPa1NPiB.js +1 -0
  14. package/assets/_messageId-CRgGnwob.js +1 -0
  15. package/assets/_messageId-D7YaVQVG.js +1 -0
  16. package/assets/_outboxMessageId-oQ4PGFCY.js +1 -0
  17. package/assets/_threadId-8QIpiUwL.js +1 -0
  18. package/assets/_threadId-C97erNsR.js +1 -0
  19. package/assets/_threadId-OMdGNdy0.js +1 -0
  20. package/assets/{accounts-DQL80MJx.js → accounts-DH8k2gG9.js} +1 -1
  21. package/assets/{advanced-r277P9yA.js → advanced-BdrO9-Fu.js} +1 -1
  22. package/assets/{appearance-MJFPYpwy.js → appearance-DtOZ7iO4.js} +1 -1
  23. package/assets/{attachment-file-JfqVGf9m.js → attachment-file-dpjals6V.js} +1 -1
  24. package/assets/{avatar-ui9ZcEKI.js → avatar-BCsuCCZe.js} +1 -1
  25. package/assets/{bottom-sheet-B09CCBGN.js → bottom-sheet-DQlwW2ka.js} +1 -1
  26. package/assets/brief-VXr8p3T6.js +1 -0
  27. package/assets/{brief-BONqQ4fT.js → brief-giqdM5tj.js} +1 -1
  28. package/assets/{browser-ponyfill-G7_WfnF0.js → browser-ponyfill-Dvu2DTNd.js} +1 -1
  29. package/assets/{bug-BkBZtqxX.js → bug-C-6rtBUj.js} +1 -1
  30. package/assets/{circle-check-DJhPQE7R.js → circle-check-WiqwhrGq.js} +1 -1
  31. package/assets/{circle-check-big-B95g24qP.js → circle-check-big-Btyn49vU.js} +1 -1
  32. package/assets/{circle-help-BMXhEpzB.js → circle-help-BOwqfpxZ.js} +1 -1
  33. package/assets/{clock-DeDA7gM3.js → clock-0mXPDrxD.js} +1 -1
  34. package/assets/compose._-_outboxMessageId_-BR8qHjlJ.js +1 -0
  35. package/assets/compose._-_outboxMessageId_-D5WNU1i9.js +1 -0
  36. package/assets/compose._-_outboxMessageId_-DnVarLhF.js +1 -0
  37. package/assets/compose._-_outboxMessageId_-RIguwmi4.js +1 -0
  38. package/assets/{confirm-dialog-ClCoU30n.js → confirm-dialog-CIft-XKM.js} +1 -1
  39. package/assets/{download-DqnrmhK6.js → download-Bd5Gj0Ez.js} +1 -1
  40. package/assets/{filters-B-lslO4d.js → filters-oxlXMbTd.js} +1 -1
  41. package/assets/{flagged-CIl7Whgo.js → flagged-CUz1rP8Y.js} +1 -1
  42. package/assets/flagged-IOlUTjtC.js +1 -0
  43. package/assets/{folders-BQtVxtPK.js → folders-PRF2OAzT.js} +1 -1
  44. package/assets/{help-copy-DrSE_J9h.js → help-copy-CwtMzMaL.js} +1 -1
  45. package/assets/index-BP70ZOPx.js +1 -0
  46. package/assets/index-BS4LzLtu.js +1 -0
  47. package/assets/{index-Co4vEXBg.js → index-BXcBMiAk.js} +3 -3
  48. package/assets/index-Bbc7WSvg.js +1 -0
  49. package/assets/index-CPa1NPiB.js +1 -0
  50. package/assets/index-CRgGnwob.js +1 -0
  51. package/assets/index-CZ8mz0bi.js +1 -0
  52. package/assets/{index-D2WROvW4.js → index-DAfyEwmg.js} +4 -4
  53. package/assets/index-DoRlPHIg.js +1 -0
  54. package/assets/index-R0IKtXNt.js +1 -0
  55. package/assets/{kbd-DyQh2Cdw.js → kbd-BA2qHLnv.js} +1 -1
  56. package/assets/{labels-BSCXravk.js → labels-hlfvfEf-.js} +1 -1
  57. package/assets/{mail-4uHEQHz7.js → mail-D5QgH2Hn.js} +1 -1
  58. package/assets/{mail-CtuxaFIA.js → mail-DJWEQQNX.js} +1 -1
  59. package/assets/{menu-CT0gzmnj.js → menu-DDImXiMM.js} +1 -1
  60. package/assets/{onboarding-rbMsdRj0.js → onboarding-B-CIOgum.js} +1 -1
  61. package/assets/outbox-TSYA3IHb.js +1 -0
  62. package/assets/{pencil-q1qN4DR5.js → pencil-BW1WCmq0.js} +1 -1
  63. package/assets/{rich-text-24wvBXSN.js → rich-text-CcaTilwm.js} +1 -1
  64. package/assets/{rich-text-spellcheck-worker-provider-C1ofOC_f.js → rich-text-spellcheck-worker-provider-2O54bCIq.js} +1 -1
  65. package/assets/{rotate-ccw-DmS9W4f1.js → rotate-ccw-CPQFDl1i.js} +1 -1
  66. package/assets/{row-actions-BydPh8G7.js → row-actions-Dj_BYtCe.js} +1 -1
  67. package/assets/{search-mirror-Da3ayQre.js → search-mirror-BILQ17Xs.js} +1 -1
  68. package/assets/{search-token-index-oFZyZk4d.js → search-token-index-BKe6UW6S.js} +1 -1
  69. package/assets/{senders-CEVuJIKW.js → senders-DkMsoyjR.js} +1 -1
  70. package/assets/settings-CrRDi_hd.js +1 -0
  71. package/assets/{settings-screen-Bq9VR_Jn.js → settings-screen-CGLOXJo-.js} +1 -1
  72. package/assets/{shield-check-BQf2zaWQ.js → shield-check-Dti9mXCF.js} +1 -1
  73. package/assets/{suggested-vips-BmYrNMfo.js → suggested-vips-4Ri6iIu6.js} +1 -1
  74. package/assets/{useDebouncedValue-Cfv5VHhU.js → useDebouncedValue-BUcXOfs2.js} +1 -1
  75. package/assets/{useFilters-Dc-nYpio.js → useFilters-RTja5VPA.js} +1 -1
  76. package/assets/{useLabels-Cia3vhX6.js → useLabels-4yH6AY7p.js} +1 -1
  77. package/assets/{useMessageBodyContent-DDwrfVb0.js → useMessageBodyContent-JcYR750d.js} +1 -1
  78. package/assets/{useRefreshControl-BsejJc2m.js → useRefreshControl-CDJMP1xh.js} +1 -1
  79. package/assets/{useSearchTokenContext-C_EqC8lC.js → useSearchTokenContext-Sfg_74pq.js} +1 -1
  80. package/assets/{useSemanticSearch-DbYcVIyX.js → useSemanticSearch-ZYEAbHo4.js} +1 -1
  81. package/assets/{useSignature-DswP3WOI.js → useSignature-DDECCHkZ.js} +1 -1
  82. package/index.html +1 -1
  83. package/package.json +1 -1
  84. package/assets/FlaggedPane-Om0d0EGq.js +0 -1
  85. package/assets/MailListHeader-DUlXutjf.js +0 -7
  86. package/assets/_mailboxId-DtYNbmhX.js +0 -1
  87. package/assets/_messageId--8tAiAyp.js +0 -1
  88. package/assets/_messageId-CGSvqCcC.js +0 -1
  89. package/assets/_messageId-DAKdvuHL.js +0 -1
  90. package/assets/_outboxMessageId-CmTMuexX.js +0 -1
  91. package/assets/_threadId-BC7E79-s.js +0 -1
  92. package/assets/_threadId-CVhHODKC.js +0 -1
  93. package/assets/_threadId-CipeOVrj.js +0 -1
  94. package/assets/brief-xi3FP56S.js +0 -1
  95. package/assets/compose._-_outboxMessageId_-BM09kNER.js +0 -1
  96. package/assets/compose._-_outboxMessageId_-DpRZvm4Y.js +0 -1
  97. package/assets/compose._-_outboxMessageId_-VKkQZw16.js +0 -1
  98. package/assets/compose._-_outboxMessageId_-wDXSEwjO.js +0 -1
  99. package/assets/flagged-Da_FNZbM.js +0 -1
  100. package/assets/index--8tAiAyp.js +0 -1
  101. package/assets/index-BwohPpQQ.js +0 -1
  102. package/assets/index-C7aZVB1d.js +0 -1
  103. package/assets/index-CZJqaHHw.js +0 -1
  104. package/assets/index-DAKdvuHL.js +0 -1
  105. package/assets/index-DizRcxnF.js +0 -1
  106. package/assets/index-Do8ROuoS.js +0 -1
  107. package/assets/index-DpR1EKPy.js +0 -1
  108. package/assets/outbox-gzU3VV23.js +0 -1
  109. package/assets/settings-DkccoIxP.js +0 -1
@@ -1 +1 @@
1
- import{j as n,ar as Xe,S as Ze,bS as es,v as Y,b3 as ss,bF as ts,r as a,D as ne,bT as oe,z as ns,bU as os,bV as as,bW as rs,e as Te,bX as is,a8 as cs,bP as ls,bQ as ds}from"./index-D2WROvW4.js";import{s as je,a as us,b as Re,u as ms,p as fs,R as hs}from"./useSearchTokenContext-C_EqC8lC.js";import{aa as be,H as ve,ab as gs,ac as xs,I as ps,ad as ye,ae as Is,af as bs,ag as vs,a9 as ys,ah as Ss,ai as Cs,aj as Ts,M as js,ak as Rs,al as ws,am as Ms,e as ks,v as Fs,an as As,q as Ns,S as Os,L as Bs,Q as Se,P as Ds,N as Ls,d as Es,_ as Ps,$ as qs,a1 as we,a2 as Me,a3 as zs,a4 as Qs,a5 as Hs}from"./MailListHeader-DUlXutjf.js";import{u as _s,a as Ws,R as $s,i as Us,b as Vs}from"./useRefreshControl-BsejJc2m.js";import{f as Gs,p as Ys,d as Js,R as Ks,k as Xs,l as Zs}from"./search-token-index-oFZyZk4d.js";import{a as et}from"./useLabels-Cia3vhX6.js";import{u as st,r as tt,L as nt}from"./useSemanticSearch-DbYcVIyX.js";import{w as ot}from"./wizard-selection-B1bng5Jq.js";import{u as ke}from"./index-Co4vEXBg.js";import{a as at}from"./useMessageBodyContent-DDwrfVb0.js";function rt({sync:e}){return e?n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",role:"status","aria-live":"polite",children:[n.jsx(Xe,{className:"size-8 animate-spin text-fg-subtle","aria-hidden":"true"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"Still syncing your mail"}),n.jsx("p",{className:"text-xs text-fg-subtle",children:it(e)})]}):n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[n.jsx(Ze,{className:"size-8 text-fg-subtle","aria-hidden":"true"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),n.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]})}function it({synced:e,total:s}){return s>0?`${e.toLocaleString()} of ${s.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Fe=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Ae="category",ct={unclassified:"uncategorized"},W=e=>us(e).map(s=>s.raw),_=e=>e.join(" "),ae=e=>{const s=Re(e);if(s)return Fe.find(o=>o.name===s.name&&o.value===s.value.toLowerCase())?.id},re=e=>{const s=Re(e);if(!s||s.name!==Ae)return;const o=s.value.toLowerCase(),r=ct[o];if(r)return r;if(!(!es(o)||o==="all"))return o},Ne=e=>Fe.find(s=>s.id===e),Oe=e=>Ne(e)!==void 0,lt=e=>{const s=new Set;for(const o of W(e)){const r=ae(o);r&&s.add(r)}return s},dt=e=>{let s="all";for(const o of W(e)){const r=re(o);r&&(s=r)}return s},ut=(e,s)=>{const o=Ne(s);if(!o)return;const r=W(e),l=r.filter(d=>ae(d)!==s);return l.length<r.length?_(l):_([...r,je(o.name,o.value)])},mt=(e,s)=>{const o=W(e).filter(r=>!re(r));return _(s==="all"?o:[...o,je(Ae,s)])},ft=e=>_(W(e).filter(s=>!ae(s)&&!re(s))),Be=e=>e.trim().length>0,ht=e=>{if(!Be(e.query))return e.ownFilters;const s=new Set(lt(e.query));for(const o of e.ownFilters)Oe(o)||s.add(o);return s},gt=e=>Be(e.query)?dt(e.query):e.ownCategory,xt=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),pt=e=>[...e].sort(xt),It=200,Ce=()=>n.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,s)=>n.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[n.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),n.jsxs("div",{className:"flex-1 space-y-1.5",children:[n.jsxs("div",{className:"flex justify-between gap-2",children:[n.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),n.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),n.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),n.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},s))}),bt=({accountEmail:e})=>{const s=ke();return n.jsxs("div",{className:"flex items-center gap-2 px-row-inset py-2 border-b border-line bg-danger-soft/40 text-xs text-danger",children:[n.jsx(Te,{className:"size-3.5 shrink-0"}),n.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),n.jsx("button",{type:"button",onClick:()=>s("accounts"),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},vt=(e,s)=>{if(s.size===0)return{};const o=e.filter(d=>s.has(d.id)),r=tt(o.map(d=>d.accountId));if(r.restriction)return r;const l=new Set;for(const d of o)d.mailboxId&&l.add(d.mailboxId);return l.size>1?{accountId:r.accountId,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${l.size} folders`}:{accountId:r.accountId,mailboxId:l.size===1?[...l][0]:void 0}};function yt({header:e,rows:s,wizard:o,children:r}){const{selectedIds:l,selectedCount:d,exitSelection:u,orderedIds:m,allSelected:b,toggleAllLoaded:f}=Ms(),x=a.useMemo(()=>vt(s,l),[s,l]),{junkMailboxId:D}=ks(x.accountId),{labels:I}=et(x.accountId),p=a.useMemo(()=>Array.from(l),[l]),L=a.useMemo(()=>ot(s,l),[s,l]),h=Fs(D,x.mailboxId),v=a.useMemo(()=>m.length>0?{checked:b,indeterminate:d>0&&!b,onChange:f}:void 0,[m.length,b,d,f]),F=x.moveDisabledHint?{tone:"warning",text:x.moveDisabledHint}:void 0,S=C=>n.jsx(Os,{title:C.title,navSlot:C.navSlot,titleMeta:C.titleMeta,searchSlot:C.searchSlot,searchField:C.searchField,idleSlot:C.makeFilterSlot,count:d,onCancel:u,onDelete:()=>o.start("delete"),onMove:()=>o.start("move"),onOrganize:()=>o.start("organize"),onJunk:h?()=>o.start("junk"):void 0,onMarkRead:()=>o.start("markRead"),overflowSlot:x.accountId&&x.mailboxId&&d>0&&I.length>0?n.jsx(nt,{accountId:x.accountId,mailboxId:x.mailboxId,messageIds:p}):void 0,selectAll:v,notice:F});return n.jsx(As,{...e,selectionBar:S,paneOverlay:n.jsx(Ns,{verb:o.verb,accountId:x.accountId,mailboxId:x.mailboxId,selection:L,selectionRestriction:x.restriction,onFinished:u}),children:r})}function St({accounts:e,selectedMessageId:s,onOpenThread:o,commandsRef:r,onTriageContextChange:l,onDeleteMessages:d}){const{searchQuery:u,searchInput:m,resultFolderIndex:b,onSearchChange:f}=Y(),x=ms(),D=ss(),I=Gs(),p=ts(),L=Ys(),h=a.useMemo(()=>pt(e.filter(t=>!t.muted?.value)),[e]),[v,F]=a.useState("all"),[S,C]=a.useState("all"),[$,E]=a.useState(new Set),[K,T]=a.useState(!1),P=a.useCallback(t=>{E(i=>{const c=new Set(i);return c.has(t)?c.delete(t):c.add(t),c})},[]),U=a.useCallback(()=>E(new Set),[]),R=m.trim().length>0,j=a.useMemo(()=>ht({query:m,ownFilters:$}),[m,$]),w=a.useMemo(()=>gt({query:m,ownCategory:S}),[m,S]),A=a.useCallback(t=>{if(!R||!Oe(t)){P(t);return}const i=ut(m,t);i!==void 0&&f(i)},[R,m,f,P]),q=a.useCallback(t=>{if(!R){C(t);return}f(mt(m,t))},[R,m,f]),z=a.useCallback(()=>{C("all"),F("all"),U(),R&&f(ft(m))},[R,m,f,U]),{data:N,isLoading:Q,isError:g,refetch:O}=ne({...oe(),staleTime:6e4}),B=Js({queries:h.map(t=>({...ns({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),V=a.useMemo(()=>{const t=new Map;for(let i=0;i<h.length;i++){const c=h[i].accountId,Ye=(B[i]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);t.set(c,Ye)}return t},[h,B]),Ee=a.useMemo(()=>h.filter((t,i)=>{const c=B[i];return c?.isError?!os(c.error):!1}),[h,B]),{freeText:M,tokens:X}=fs(u.trim().toLowerCase(),x),{data:ie,isFetching:Pe}=ne({...oe({query:{query:M,limit:It}}),enabled:M.length>0,staleTime:3e4}),y=a.useMemo(()=>{const t=be(N?.items??[]).map(ve);return(M?gs(t.filter(c=>xs(c,M)),be(ie?.items??[]).map(ve)):t).filter(c=>(v==="all"||c.accountId===v)&&ps(c,X))},[N,ie,v,M,X]),{bodyRows:ce,briefSpamOffer:Z}=a.useMemo(()=>{if(!M)return{bodyRows:y,briefSpamOffer:void 0};const t=y.map(k=>ye(k,b)),{spam:i}=Is(t);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(k=>k.id));return{bodyRows:y.filter(k=>!c.has(k.id)),briefSpamOffer:bs(t)}},[y,M,b]),le=a.useMemo(()=>vs(ce),[ce]),de=a.useCallback((t,i)=>{const c=y.find(k=>k.id===t)?.threadId;c&&o?.({threadId:c,messageId:t},i)},[y,o]),qe=a.useCallback(t=>{const i=t.threadId??y.find(c=>c.id===t.id)?.threadId;i&&o?.({threadId:i,messageId:t.id})},[y,o]),ee=a.useMemo(()=>h.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...h.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:V.get(t.accountId),active:v===t.accountId}))],[h,V,v]),H=a.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=a.useMemo(()=>Array.from(V.values()).reduce((t,i)=>t+i,0),[V]),se=a.useMemo(()=>h.map(t=>t.accountId),[h]),{hasNewMail:ue}=_s(),{state:me,errorMessage:fe,refresh:he}=Ws(se,{onSettled:()=>O()}),Qe=a.useMemo(()=>n.jsx($s,{state:me,onRefresh:he,label:"Refresh daily brief",errorMessage:fe,hasUpdate:ue(se)}),[me,he,fe,ue,se]),te=a.useMemo(()=>y.filter(t=>(w==="all"||t.category===w)&&as(t,j)).map(t=>ye(t,b)),[y,w,j,b]),{hits:ge,isLoading:He}=st(),_e=a.useMemo(()=>{const t=new Map;for(const c of N?.items??[])t.set(c.messageId,c.threadId);const i=te.map(c=>t.get(c.id)).filter(c=>c!=null);return ys(ge,i,b)},[ge,te,N,b]),We=a.useMemo(()=>{const t=Ss(ee.map(i=>({id:i.id,label:i.label,count:i.count,active:i.active})));return{categories:t.categories,filters:t.filters,sources:t.sources,sourcesNote:H>0?`+${H} muted`:void 0,selectedCategory:w,activeFilters:j,expanded:K,onExpandedChange:T,onSelectCategory:i=>q(i),onSelectSource:F,onToggleFilter:i=>A(i),onClear:z}},[ee,H,w,j,K,A,q,z]),xe=le.length===0&&v==="all"&&M.length===0&&X.length===0,$e=a.useMemo(()=>h.map(t=>t.accountId),[h]),Ue=a.useMemo(()=>h.some(t=>Us(t.syncPhase)),[h]),G=Vs($e,xe||Ue),pe=n.jsxs("div",{className:"h-full overflow-y-auto",children:[n.jsx(Ce,{}),n.jsx(Ce,{})]}),Ie=!Q&&!g&&!xe,Ve=Cs({tier:I,hasLiveInput:R,hasCommittedQuery:u.trim().length>0,bodyRendersCommittedResults:!0}),Ge=Ie?n.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[Z&&n.jsx(Ts,{count:Z.count,onScopeToSpam:()=>L(Z.mailboxId,u)}),n.jsx("div",{className:"min-h-0 flex-1",children:n.jsx(rs,{sections:le,briefCategory:w,Row:js,selectedThreadId:s,onSelectThread:de,onSelectBriefCategory:q,sources:ee,sourcesNote:H>0?`+${H} muted`:void 0,onSelectSource:F,activeFilters:j,onToggleFilter:A,onClearFilters:z})})]}):Q?pe:g?n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[n.jsx(Te,{className:"size-8 text-danger"}),n.jsx("p",{children:"Couldn't load your messages"}),n.jsxs("button",{type:"button",onClick:()=>O(),className:"flex items-center gap-1 text-accent underline text-xs",children:[n.jsx(Ks,{className:"size-3.5"}),"Try again"]})]}):G.resolved?n.jsx(rt,{sync:G.syncing?{synced:G.synced,total:G.total}:void 0}):pe;return n.jsx(is,{hasSheet:Ie&&!Ve,children:n.jsx(Rs,{selectedMessageId:s,rows:y,onOpen:de,onDeleteMessages:d,onSelectionVerb:p.start,wizardOpen:p.isOpen,commandsRef:r,onTriageContextChange:l,children:n.jsx(yt,{wizard:p,header:{title:"Daily brief",unreadCount:ze,footer:D?n.jsx(ws,{}):void 0,searchFilter:We,searchResults:te,searchLoading:Q||Pe,relatedResults:_e,relatedLoading:He,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:Qe},rows:y,children:n.jsxs("div",{className:"flex h-full flex-col",children:[Ee.map(t=>n.jsx(bt,{accountEmail:t.email,accountId:t.accountId},t.accountId)),n.jsx("div",{className:"min-h-0 flex-1",children:Ge})]})})})})}const De=a.createContext(null);function J(){const e=a.useContext(De);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function Ct({thread:e,children:s}){const o=Xs(),r=Zs(),l=ke(),{searchInput:d}=Y(),u=e?.threadId,m=e?.messageId,{data:b}=ne({...oe(),staleTime:6e4}),f=a.useMemo(()=>b?.items??[],[b]),x=a.useMemo(()=>{if(u)return f.find(g=>g.messageId===m)??f.find(g=>g.threadId===u)},[f,u,m]),D=Bs(u,m),I=x??D,p=m??I?.messageId,L=a.useMemo(()=>{if(u)return{threadId:u,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:p,authenticity:I?.authenticity}},[u,I,p]),h=a.useCallback((g,O)=>{o(g,{replace:O?.replace,query:d})},[o,d]),v=a.useCallback(g=>{p&&g.includes(p)&&r()},[p,r]),F=Se({thread:I,onAfterOptimisticRemove:v}),S=Ds(),{deleteMessages:C}=Ls({mailboxId:I?.mailboxId??"",messages:f,onAfterOptimisticRemove:v}),{toggleReadFor:$}=Es({mailboxId:I?.mailboxId??"",messages:f}),E=S.focusedMessageId,T=a.useMemo(()=>f.find(g=>g.messageId===E),[f,E])??I,P=Se({thread:T}),U=at(),R=cs(),j=ls(),w=a.useMemo(()=>ds(j,u,p),[j,u,p]),A=a.useMemo(()=>{if(T)return g=>j({threadId:T.threadId,messageId:T.messageId,mode:g})},[j,T]),{nextMessageId:q,previousMessageId:z}=Ps({context:S,orderedIds:S.orderedIds,selectedMessageId:p,enabled:!U&&!R,onClose:r,handlers:{reply:()=>A?.("reply"),replyAll:()=>A?.("reply-all"),forward:()=>A?.("forward"),delete:()=>{S.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{S.listCommandsRef.current?.requestVerb("markRead")||T&&$([T.messageId],!T.isRead)},goFlagged:()=>l("flagged"),goSettings:()=>l("settings")}}),N=a.useCallback(g=>{if(!g)return;const O=f.find(B=>B.messageId===g);return O?{threadId:O.threadId,messageId:g}:void 0},[f]),Q={selectedMessageId:p,selectedThread:I,conversation:L,onOpenThread:h,onCloseThread:r,nextThread:N(q),previousThread:N(z),actions:F,onReply:w,triage:S,onDeleteMessages:C,handleDeselectIfRemoved:v};return n.jsx(De.Provider,{value:Q,children:s})}function Le(){const{selectedMessageId:e,onOpenThread:s,triage:o,onDeleteMessages:r}=J(),{accounts:l}=Y();return n.jsx(St,{accounts:l,selectedMessageId:e,onOpenThread:s,commandsRef:o.listCommandsRef,onTriageContextChange:o.onTriageContextChange,onDeleteMessages:r})}function Tt(){const{conversation:e,selectedThread:s,actions:o,onReply:r,handleDeselectIfRemoved:l}=J(),d=!!e,u=Qs(e?.threadId);return n.jsxs(n.Fragment,{children:[n.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsx(Hs,{hasThread:d,intelligenceOpen:u.isShowing,canToggleIntelligence:u.canToggle,onToggleIntelligence:u.toggle,onReply:r?()=>r("reply"):void 0,onReplyAll:r?()=>r("reply-all"):void 0,onForward:r?()=>r("forward"):void 0,onDelete:d?o.deleteThread:void 0,onToggleStar:d?o.toggleStar:void 0,isStarred:o.isStarred,moveContext:d&&o.accountId&&o.mailboxId?{accountId:o.accountId,currentMailboxId:o.mailboxId,onMove:o.moveThread}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?n.jsx(we,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:u.open}):n.jsx(hs,{})})]}),n.jsx(Me,{isOpen:u.drawerOpen,onClose:u.closeDrawer,thread:s,mailboxId:s?.mailboxId,accountId:s?.accountId,onAfterOptimisticRemove:l})]})}function jt(){const{selectedThread:e,handleDeselectIfRemoved:s}=J(),{onToggleIntelligence:o}=Y();return n.jsx(zs,{onClose:o,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function Rt(){const{selectedThread:e,conversation:s,onOpenThread:o,onCloseThread:r,nextThread:l,previousThread:d,handleDeselectIfRemoved:u}=J(),m=qs(s?.threadId??null);return s?n.jsxs(n.Fragment,{children:[n.jsx(we,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:r,onOpenIntelligence:m.toggle,onSwipeNext:l?()=>o(l):void 0,onSwipePrevious:d?()=>o(d):void 0,mobileIntelligenceOpen:m.isOpen}),n.jsx(Me,{isOpen:m.isOpen,onClose:m.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:u})]}):n.jsx("div",{className:"h-full",children:n.jsx(Le,{})})}const Et=Object.assign(Ct,{List:Le,Reading:Tt,Intelligence:jt,Phone:Rt});export{Et as B};
1
+ import{j as n,ar as Xe,S as Ze,bS as es,v as Y,b3 as ss,bF as ts,r as a,D as ne,bT as oe,z as ns,bU as os,bV as as,bW as rs,e as Te,bX as is,a8 as cs,bP as ls,bQ as ds}from"./index-DAfyEwmg.js";import{s as je,a as us,b as Re,u as ms,p as fs,R as hs}from"./useSearchTokenContext-Sfg_74pq.js";import{aa as be,H as ve,ab as gs,ac as xs,I as ps,ad as ye,ae as Is,af as bs,ag as vs,a9 as ys,ah as Ss,ai as Cs,aj as Ts,M as js,ak as Rs,al as ws,am as Ms,e as ks,v as Fs,an as As,q as Os,S as Ns,L as Bs,Q as Se,P as Ds,N as Ls,d as Es,_ as Ps,$ as qs,a1 as we,a2 as Me,a3 as zs,a4 as Qs,a5 as Hs}from"./MailListHeader-PIppAk2B.js";import{u as _s,a as Ws,R as $s,i as Us,b as Vs}from"./useRefreshControl-CDJMP1xh.js";import{f as Gs,p as Ys,d as Js,R as Ks,k as Xs,l as Zs}from"./search-token-index-BKe6UW6S.js";import{a as et}from"./useLabels-4yH6AY7p.js";import{u as st,r as tt,L as nt}from"./useSemanticSearch-ZYEAbHo4.js";import{w as ot}from"./wizard-selection-B1bng5Jq.js";import{u as ke}from"./index-BXcBMiAk.js";import{a as at}from"./useMessageBodyContent-JcYR750d.js";function rt({sync:e}){return e?n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",role:"status","aria-live":"polite",children:[n.jsx(Xe,{className:"size-8 animate-spin text-fg-subtle","aria-hidden":"true"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"Still syncing your mail"}),n.jsx("p",{className:"text-xs text-fg-subtle",children:it(e)})]}):n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[n.jsx(Ze,{className:"size-8 text-fg-subtle","aria-hidden":"true"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),n.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]})}function it({synced:e,total:s}){return s>0?`${e.toLocaleString()} of ${s.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const Fe=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],Ae="category",ct={unclassified:"uncategorized"},W=e=>us(e).map(s=>s.raw),_=e=>e.join(" "),ae=e=>{const s=Re(e);if(s)return Fe.find(o=>o.name===s.name&&o.value===s.value.toLowerCase())?.id},re=e=>{const s=Re(e);if(!s||s.name!==Ae)return;const o=s.value.toLowerCase(),r=ct[o];if(r)return r;if(!(!es(o)||o==="all"))return o},Oe=e=>Fe.find(s=>s.id===e),Ne=e=>Oe(e)!==void 0,lt=e=>{const s=new Set;for(const o of W(e)){const r=ae(o);r&&s.add(r)}return s},dt=e=>{let s="all";for(const o of W(e)){const r=re(o);r&&(s=r)}return s},ut=(e,s)=>{const o=Oe(s);if(!o)return;const r=W(e),l=r.filter(d=>ae(d)!==s);return l.length<r.length?_(l):_([...r,je(o.name,o.value)])},mt=(e,s)=>{const o=W(e).filter(r=>!re(r));return _(s==="all"?o:[...o,je(Ae,s)])},ft=e=>_(W(e).filter(s=>!ae(s)&&!re(s))),Be=e=>e.trim().length>0,ht=e=>{if(!Be(e.query))return e.ownFilters;const s=new Set(lt(e.query));for(const o of e.ownFilters)Ne(o)||s.add(o);return s},gt=e=>Be(e.query)?dt(e.query):e.ownCategory,xt=(e,s)=>e.createdAt!==s.createdAt?e.createdAt-s.createdAt:e.accountId.localeCompare(s.accountId),pt=e=>[...e].sort(xt),It=200,Ce=()=>n.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,s)=>n.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[n.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),n.jsxs("div",{className:"flex-1 space-y-1.5",children:[n.jsxs("div",{className:"flex justify-between gap-2",children:[n.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),n.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),n.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),n.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},s))}),bt=({accountEmail:e})=>{const s=ke();return n.jsxs("div",{className:"flex items-center gap-2 px-row-inset py-2 border-b border-line bg-danger-soft/40 text-xs text-danger",children:[n.jsx(Te,{className:"size-3.5 shrink-0"}),n.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),n.jsx("button",{type:"button",onClick:()=>s("accounts"),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},vt=(e,s)=>{if(s.size===0)return{};const o=e.filter(d=>s.has(d.id)),r=tt(o.map(d=>d.accountId));if(r.restriction)return r;const l=new Set;for(const d of o)d.mailboxId&&l.add(d.mailboxId);return l.size>1?{accountId:r.accountId,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${l.size} folders`}:{accountId:r.accountId,mailboxId:l.size===1?[...l][0]:void 0}};function yt({header:e,rows:s,wizard:o,children:r}){const{selectedIds:l,selectedCount:d,exitSelection:u,orderedIds:m,allSelected:b,toggleAllLoaded:f}=Ms(),x=a.useMemo(()=>vt(s,l),[s,l]),{junkMailboxId:D}=ks(x.accountId),{labels:I}=et(x.accountId),p=a.useMemo(()=>Array.from(l),[l]),L=a.useMemo(()=>ot(s,l),[s,l]),h=Fs(D,x.mailboxId),v=a.useMemo(()=>m.length>0?{checked:b,indeterminate:d>0&&!b,onChange:f}:void 0,[m.length,b,d,f]),F=x.moveDisabledHint?{tone:"warning",text:x.moveDisabledHint}:void 0,S=C=>n.jsx(Ns,{title:C.title,navSlot:C.navSlot,titleMeta:C.titleMeta,searchSlot:C.searchSlot,searchField:C.searchField,idleSlot:C.makeFilterSlot,count:d,onCancel:u,onDelete:()=>o.start("delete"),onMove:()=>o.start("move"),onOrganize:()=>o.start("organize"),onJunk:h?()=>o.start("junk"):void 0,onMarkRead:()=>o.start("markRead"),overflowSlot:x.accountId&&x.mailboxId&&d>0&&I.length>0?n.jsx(nt,{accountId:x.accountId,mailboxId:x.mailboxId,messageIds:p}):void 0,selectAll:v,notice:F});return n.jsx(As,{...e,selectionBar:S,paneOverlay:n.jsx(Os,{verb:o.verb,accountId:x.accountId,mailboxId:x.mailboxId,selection:L,selectionRestriction:x.restriction,onFinished:u}),children:r})}function St({accounts:e,selectedMessageId:s,onOpenThread:o,commandsRef:r,onTriageContextChange:l,onDeleteMessages:d}){const{searchQuery:u,searchInput:m,resultFolderIndex:b,onSearchChange:f}=Y(),x=ms(),D=ss(),I=Gs(),p=ts(),L=Ys(),h=a.useMemo(()=>pt(e.filter(t=>!t.muted?.value)),[e]),[v,F]=a.useState("all"),[S,C]=a.useState("all"),[$,E]=a.useState(new Set),[K,T]=a.useState(!1),P=a.useCallback(t=>{E(i=>{const c=new Set(i);return c.has(t)?c.delete(t):c.add(t),c})},[]),U=a.useCallback(()=>E(new Set),[]),R=m.trim().length>0,j=a.useMemo(()=>ht({query:m,ownFilters:$}),[m,$]),w=a.useMemo(()=>gt({query:m,ownCategory:S}),[m,S]),A=a.useCallback(t=>{if(!R||!Ne(t)){P(t);return}const i=ut(m,t);i!==void 0&&f(i)},[R,m,f,P]),q=a.useCallback(t=>{if(!R){C(t);return}f(mt(m,t))},[R,m,f]),z=a.useCallback(()=>{C("all"),F("all"),U(),R&&f(ft(m))},[R,m,f,U]),{data:O,isLoading:Q,isError:g,refetch:N}=ne({...oe(),staleTime:6e4}),B=Js({queries:h.map(t=>({...ns({path:{accountId:t.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),V=a.useMemo(()=>{const t=new Map;for(let i=0;i<h.length;i++){const c=h[i].accountId,Ye=(B[i]?.data?.items??[]).reduce((Je,Ke)=>Je+(Ke.unseenCount??0),0);t.set(c,Ye)}return t},[h,B]),Ee=a.useMemo(()=>h.filter((t,i)=>{const c=B[i];return c?.isError?!os(c.error):!1}),[h,B]),{freeText:M,tokens:X}=fs(u.trim().toLowerCase(),x),{data:ie,isFetching:Pe}=ne({...oe({query:{query:M,limit:It}}),enabled:M.length>0,staleTime:3e4}),y=a.useMemo(()=>{const t=be(O?.items??[]).map(ve);return(M?gs(t.filter(c=>xs(c,M)),be(ie?.items??[]).map(ve)):t).filter(c=>(v==="all"||c.accountId===v)&&ps(c,X))},[O,ie,v,M,X]),{bodyRows:ce,briefSpamOffer:Z}=a.useMemo(()=>{if(!M)return{bodyRows:y,briefSpamOffer:void 0};const t=y.map(k=>ye(k,b)),{spam:i}=Is(t);if(i.length===0)return{bodyRows:y,briefSpamOffer:void 0};const c=new Set(i.map(k=>k.id));return{bodyRows:y.filter(k=>!c.has(k.id)),briefSpamOffer:bs(t)}},[y,M,b]),le=a.useMemo(()=>vs(ce),[ce]),de=a.useCallback((t,i)=>{const c=y.find(k=>k.id===t)?.threadId;c&&o?.({threadId:c,messageId:t},i)},[y,o]),qe=a.useCallback(t=>{const i=t.threadId??y.find(c=>c.id===t.id)?.threadId;i&&o?.({threadId:i,messageId:t.id})},[y,o]),ee=a.useMemo(()=>h.length<=1?[]:[{id:"all",label:"All",active:v==="all"},...h.map(t=>({id:t.accountId,label:t.email.split("@")[0]??t.email,count:V.get(t.accountId),active:v===t.accountId}))],[h,V,v]),H=a.useMemo(()=>e.filter(t=>t.muted?.value).length,[e]),ze=a.useMemo(()=>Array.from(V.values()).reduce((t,i)=>t+i,0),[V]),se=a.useMemo(()=>h.map(t=>t.accountId),[h]),{hasNewMail:ue}=_s(),{state:me,errorMessage:fe,refresh:he}=Ws(se,{onSettled:()=>N()}),Qe=a.useMemo(()=>n.jsx($s,{state:me,onRefresh:he,label:"Refresh daily brief",errorMessage:fe,hasUpdate:ue(se)}),[me,he,fe,ue,se]),te=a.useMemo(()=>y.filter(t=>(w==="all"||t.category===w)&&as(t,j)).map(t=>ye(t,b)),[y,w,j,b]),{hits:ge,isLoading:He}=st(),_e=a.useMemo(()=>{const t=new Map;for(const c of O?.items??[])t.set(c.messageId,c.threadId);const i=te.map(c=>t.get(c.id)).filter(c=>c!=null);return ys(ge,i,b)},[ge,te,O,b]),We=a.useMemo(()=>{const t=Ss(ee.map(i=>({id:i.id,label:i.label,count:i.count,active:i.active})));return{categories:t.categories,filters:t.filters,sources:t.sources,sourcesNote:H>0?`+${H} muted`:void 0,selectedCategory:w,activeFilters:j,expanded:K,onExpandedChange:T,onSelectCategory:i=>q(i),onSelectSource:F,onToggleFilter:i=>A(i),onClear:z}},[ee,H,w,j,K,A,q,z]),xe=le.length===0&&v==="all"&&M.length===0&&X.length===0,$e=a.useMemo(()=>h.map(t=>t.accountId),[h]),Ue=a.useMemo(()=>h.some(t=>Us(t.syncPhase)),[h]),G=Vs($e,xe||Ue),pe=n.jsxs("div",{className:"h-full overflow-y-auto",children:[n.jsx(Ce,{}),n.jsx(Ce,{})]}),Ie=!Q&&!g&&!xe,Ve=Cs({tier:I,hasLiveInput:R,hasCommittedQuery:u.trim().length>0,bodyRendersCommittedResults:!0}),Ge=Ie?n.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[Z&&n.jsx(Ts,{count:Z.count,onScopeToSpam:()=>L(Z.mailboxId,u)}),n.jsx("div",{className:"min-h-0 flex-1",children:n.jsx(rs,{sections:le,briefCategory:w,Row:js,selectedThreadId:s,onSelectThread:de,onSelectBriefCategory:q,sources:ee,sourcesNote:H>0?`+${H} muted`:void 0,onSelectSource:F,activeFilters:j,onToggleFilter:A,onClearFilters:z})})]}):Q?pe:g?n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[n.jsx(Te,{className:"size-8 text-danger"}),n.jsx("p",{children:"Couldn't load your messages"}),n.jsxs("button",{type:"button",onClick:()=>N(),className:"flex items-center gap-1 text-accent underline text-xs",children:[n.jsx(Ks,{className:"size-3.5"}),"Try again"]})]}):G.resolved?n.jsx(rt,{sync:G.syncing?{synced:G.synced,total:G.total}:void 0}):pe;return n.jsx(is,{hasSheet:Ie&&!Ve,children:n.jsx(Rs,{selectedMessageId:s,rows:y,onOpen:de,onDeleteMessages:d,onSelectionVerb:p.start,wizardOpen:p.isOpen,commandsRef:r,onTriageContextChange:l,children:n.jsx(yt,{wizard:p,header:{title:"Daily brief",unreadCount:ze,footer:D?n.jsx(ws,{}):void 0,searchFilter:We,searchResults:te,searchLoading:Q||Pe,relatedResults:_e,relatedLoading:He,onSelectSearchResult:qe,searchResultsInBody:!0,refreshControl:Qe},rows:y,children:n.jsxs("div",{className:"flex h-full flex-col",children:[Ee.map(t=>n.jsx(bt,{accountEmail:t.email,accountId:t.accountId},t.accountId)),n.jsx("div",{className:"min-h-0 flex-1",children:Ge})]})})})})}const De=a.createContext(null);function J(){const e=a.useContext(De);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function Ct({thread:e,children:s}){const o=Xs(),r=Zs(),l=ke(),{searchInput:d}=Y(),u=e?.threadId,m=e?.messageId,{data:b}=ne({...oe(),staleTime:6e4}),f=a.useMemo(()=>b?.items??[],[b]),x=a.useMemo(()=>{if(u)return f.find(g=>g.messageId===m)??f.find(g=>g.threadId===u)},[f,u,m]),D=Bs(u,m),I=x??D,p=m??I?.messageId,L=a.useMemo(()=>{if(u)return{threadId:u,mailboxId:I?.mailboxId??"",subject:I?.subject,messageId:p,authenticity:I?.authenticity}},[u,I,p]),h=a.useCallback((g,N)=>{o(g,{replace:N?.replace,query:d})},[o,d]),v=a.useCallback(g=>{p&&g.includes(p)&&r()},[p,r]),F=Se({thread:I,isOpen:!0,onAfterOptimisticRemove:v}),S=Ds(),{deleteMessages:C}=Ls({mailboxId:I?.mailboxId??"",messages:f,onAfterOptimisticRemove:v}),{toggleReadFor:$}=Es({mailboxId:I?.mailboxId??"",messages:f}),E=S.focusedMessageId,T=a.useMemo(()=>f.find(g=>g.messageId===E),[f,E])??I,P=Se({thread:T,isOpen:T?.messageId===p}),U=at(),R=cs(),j=ls(),w=a.useMemo(()=>ds(j,u,p),[j,u,p]),A=a.useMemo(()=>{if(T)return g=>j({threadId:T.threadId,messageId:T.messageId,mode:g})},[j,T]),{nextMessageId:q,previousMessageId:z}=Ps({context:S,orderedIds:S.orderedIds,selectedMessageId:p,enabled:!U&&!R,onClose:r,handlers:{reply:()=>A?.("reply"),replyAll:()=>A?.("reply-all"),forward:()=>A?.("forward"),delete:()=>{S.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{S.listCommandsRef.current?.requestVerb("markRead")||T&&$([T.messageId],!T.isRead)},goFlagged:()=>l("flagged"),goSettings:()=>l("settings")}}),O=a.useCallback(g=>{if(!g)return;const N=f.find(B=>B.messageId===g);return N?{threadId:N.threadId,messageId:g}:void 0},[f]),Q={selectedMessageId:p,selectedThread:I,conversation:L,onOpenThread:h,onCloseThread:r,nextThread:O(q),previousThread:O(z),actions:F,onReply:w,triage:S,onDeleteMessages:C,handleDeselectIfRemoved:v};return n.jsx(De.Provider,{value:Q,children:s})}function Le(){const{selectedMessageId:e,onOpenThread:s,triage:o,onDeleteMessages:r}=J(),{accounts:l}=Y();return n.jsx(St,{accounts:l,selectedMessageId:e,onOpenThread:s,commandsRef:o.listCommandsRef,onTriageContextChange:o.onTriageContextChange,onDeleteMessages:r})}function Tt(){const{conversation:e,selectedThread:s,actions:o,onReply:r,handleDeselectIfRemoved:l}=J(),d=!!e,u=Qs(e?.threadId);return n.jsxs(n.Fragment,{children:[n.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsx(Hs,{hasThread:d,intelligenceOpen:u.isShowing,canToggleIntelligence:u.canToggle,onToggleIntelligence:u.toggle,onReply:r?()=>r("reply"):void 0,onReplyAll:r?()=>r("reply-all"):void 0,onForward:r?()=>r("forward"):void 0,onDelete:d?o.deleteThread:void 0,onToggleStar:d?o.toggleStar:void 0,isStarred:o.isStarred,moveContext:d&&o.accountId&&o.mailboxId?{accountId:o.accountId,currentMailboxId:o.mailboxId,onMove:o.moveThread}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?n.jsx(we,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:u.open}):n.jsx(hs,{})})]}),n.jsx(Me,{isOpen:u.drawerOpen,onClose:u.closeDrawer,thread:s,mailboxId:s?.mailboxId,accountId:s?.accountId,onAfterOptimisticRemove:l})]})}function jt(){const{selectedThread:e,handleDeselectIfRemoved:s}=J(),{onToggleIntelligence:o}=Y();return n.jsx(zs,{onClose:o,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s})}function Rt(){const{selectedThread:e,conversation:s,onOpenThread:o,onCloseThread:r,nextThread:l,previousThread:d,handleDeselectIfRemoved:u}=J(),m=qs(s?.threadId??null);return s?n.jsxs(n.Fragment,{children:[n.jsx(we,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:r,onOpenIntelligence:m.toggle,onSwipeNext:l?()=>o(l):void 0,onSwipePrevious:d?()=>o(d):void 0,mobileIntelligenceOpen:m.isOpen}),n.jsx(Me,{isOpen:m.isOpen,onClose:m.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:u})]}):n.jsx("div",{className:"h-full",children:n.jsx(Le,{})})}const Et=Object.assign(Ct,{List:Le,Reading:Tt,Intelligence:jt,Phone:Rt});export{Et as B};
@@ -1 +1 @@
1
- import{j as t,e as r}from"./index-D2WROvW4.js";const d=e=>e instanceof Error?e.message:typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:"An unexpected error occurred",l=({title:e="Couldn't load content",error:a,onRetry:s,variant:i="block"})=>{const n=d(a);return i==="inline"?t.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[t.jsx(r,{className:"size-4 shrink-0 text-danger mt-0.5","aria-hidden":"true"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-fg-muted mt-0.5 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}):t.jsxs("div",{role:"alert",className:"flex flex-col items-center justify-center gap-3 p-8 text-center",children:[t.jsx(r,{className:"size-8 text-danger","aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-sm text-fg-muted mt-1 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"inline-flex items-center rounded-md border border-line bg-canvas px-4 py-2 text-sm font-medium hover:bg-surface-raised transition-colors",children:"Retry"})]})};export{l as E,d as f};
1
+ import{j as t,e as r}from"./index-DAfyEwmg.js";const d=e=>e instanceof Error?e.message:typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:"An unexpected error occurred",l=({title:e="Couldn't load content",error:a,onRetry:s,variant:i="block"})=>{const n=d(a);return i==="inline"?t.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[t.jsx(r,{className:"size-4 shrink-0 text-danger mt-0.5","aria-hidden":"true"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-fg-muted mt-0.5 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}):t.jsxs("div",{role:"alert",className:"flex flex-col items-center justify-center gap-3 p-8 text-center",children:[t.jsx(r,{className:"size-8 text-danger","aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-sm text-fg-muted mt-1 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"inline-flex items-center rounded-md border border-line bg-canvas px-4 py-2 text-sm font-medium hover:bg-surface-raised transition-colors",children:"Retry"})]})};export{l as E,d as f};
@@ -0,0 +1 @@
1
+ import{dJ as $,r as n,d0 as X,v as z,b3 as Y,bF as Z,aR as ee,aS as te,j as a,a8 as se,bP as ae,bQ as oe}from"./index-DAfyEwmg.js";import{u as re,p as ne,R as de}from"./useSearchTokenContext-Sfg_74pq.js";import{H as ie,ac as le,I as ce,aw as ue,ad as ge,b as he,M as me,ak as fe,ax as Ie,am as pe,q as xe,L as Te,Q as V,P as ye,N as be,d as ve,_ as Re,$ as Ce,a1 as K,a2 as W,a3 as Se,a4 as we,a5 as je}from"./MailListHeader-PIppAk2B.js";import{u as Fe,b as Me,a as Oe}from"./MailViewChrome-Cyc-QUE5.js";import{f as Pe}from"./ErrorState-DN-RI3U9.js";import{w as ke}from"./wizard-selection-B1bng5Jq.js";import{a as Le}from"./useMessageBodyContent-JcYR750d.js";import{k as Ae,l as Ne}from"./search-token-index-BKe6UW6S.js";import{u as De}from"./index-BXcBMiAk.js";const Ee=()=>X({query:{starred:!0,order:"desc"}});function _(){const{data:e,isLoading:t,isError:s,error:d,refetch:h,fetchNextPage:c,hasNextPage:o,isFetchingNextPage:m}=Fe({queryKey:Ee(),queryFn:async({pageParam:p})=>{const{data:b}=await $({query:{starred:!0,order:"desc",continuationToken:p},throwOnError:!0});return b},initialPageParam:void 0,getNextPageParam:p=>p.continuationToken,staleTime:6e4});return{threads:n.useMemo(()=>(e?.pages??[]).flatMap(p=>p.items??[]),[e]),isLoading:t,isError:s,error:d,refetch:h,fetchNextPage:c,hasNextPage:o,isFetchingNextPage:m}}const Be=e=>{const t=new Set;return e.filter(s=>t.has(s.threadId)?!1:(t.add(s.threadId),!0))},qe={unread:e=>!e.isRead,attachment:e=>e.hasAttachment===!0};function Qe({rows:e,verb:t}){const{selectedIds:s,exitSelection:d}=pe(),h=n.useMemo(()=>ke(e,s),[e,s]);return a.jsx(xe,{verb:t,selection:h,selectionRestriction:"spansAccounts",onFinished:d})}function ze({selectedMessageId:e,onOpenThread:t,commandsRef:s,onTriageContextChange:d,onDeleteMessages:h}){const{searchQuery:c,resultFolderIndex:o}=z(),m=re(),I=Y(),p=Z(),[b,f]=n.useState("all"),[g,F]=n.useState(new Set),D=n.useCallback(r=>{F(u=>{const T=new Set(u);return T.has(r)?T.delete(r):T.add(r),T})},[]),C=n.useCallback(()=>{f("all"),F(new Set)},[]),{threads:M,isLoading:y,isError:O,error:E,refetch:P,fetchNextPage:H,hasNextPage:x,isFetchingNextPage:S}=_(),{freeText:R,tokens:k}=ne(c.trim().toLowerCase(),m),i=n.useMemo(()=>{const r=Array.from(g).map(u=>qe[u]).filter(u=>u!=null);return Be(M).map(ie).filter(u=>(b==="all"||u.category===b)&&r.every(T=>T(u))&&(!R||le(u,R))&&ce(u,k))},[M,b,g,R,k]),w=n.useCallback((r,u)=>{const T=i.find(U=>U.id===r)?.threadId;T&&t?.({threadId:T,messageId:r},u)},[i,t]),j=n.useCallback(r=>{const u=r.threadId??i.find(T=>T.id===r.id)?.threadId;u&&t?.({threadId:u,messageId:r.id})},[i,t]),B=n.useMemo(()=>ue(),[]),q=n.useMemo(()=>i.map(r=>ge(r,o)),[i,o]),L=n.useMemo(()=>i.filter(r=>!r.isRead).length,[i]),A=y?"loading":O?"error":i.length===0?"empty":"ready",l=n.useCallback(()=>{const r=ee(te());window.open(r,"_blank","noopener,noreferrer")},[]),v=he(),Q=a.jsx("div",{className:"flex h-full min-h-0 flex-col",children:a.jsxs("div",{className:"flex-1 overflow-y-auto",children:[a.jsx("div",{className:"divide-y divide-line",children:i.map(r=>a.jsx(me,{thread:r,active:r.id===e,onClick:()=>w(r.id)},r.id))}),x?a.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>H(),disabled:S,children:S?"Loading…":"Load more"}):null]})});return a.jsx(Me,{title:"Starred",unreadCount:L,preset:B,selectedCategory:b,activeFilters:g,onSelectCategory:f,onToggleFilter:D,onClearFilters:C,searchResults:q,searchLoading:y,onSelectSearchResult:j,searchResultsInBody:!0,children:a.jsxs(fe,{selectedMessageId:e,rows:i,onOpen:w,onDeleteMessages:h,onSelectionVerb:p.start,wizardOpen:p.isOpen,commandsRef:s,onTriageContextChange:d,children:[a.jsx(Oe,{listTitle:"Starred",sections:[{id:"flagged",threads:i}],flatList:!0,hideHeader:!0,listState:v.searchResults?"ready":A,searchQuery:R?c:void 0,errorMessage:O?Pe(E):void 0,onRetry:()=>P(),onReportError:l,selectedThreadId:e,onSelectThread:w,isDesktop:I,selectionBar:a.jsx(Ie,{title:"Starred"}),listBody:v.searchResults??(A==="ready"?Q:void 0)}),a.jsx(Qe,{rows:i,verb:p.verb})]})})}const G=n.createContext(null);function N(){const e=n.useContext(G);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function He({thread:e,children:t}){const s=Ae(),d=Ne(),h=De(),{searchInput:c}=z(),o=e?.threadId,m=e?.messageId,{threads:I}=_(),p=n.useMemo(()=>{if(o)return I.find(l=>l.messageId===m)??I.find(l=>l.threadId===o)},[I,o,m]),b=Te(o,m),f=p??b,g=m??f?.messageId,F=n.useMemo(()=>{if(o)return{threadId:o,mailboxId:f?.mailboxId??"",subject:f?.subject,messageId:g,authenticity:f?.authenticity}},[o,f,g]),D=n.useCallback((l,v)=>{s(l,{replace:v?.replace,query:c})},[s,c]),C=n.useCallback(l=>{g&&l.includes(g)&&d()},[g,d]),M=V({thread:f,isOpen:!0,onAfterOptimisticRemove:C}),y=ye(),{deleteMessages:O}=be({mailboxId:f?.mailboxId??"",messages:I,onAfterOptimisticRemove:C}),{toggleReadFor:E}=ve({mailboxId:f?.mailboxId??"",messages:I}),P=y.focusedMessageId,x=n.useMemo(()=>I.find(l=>l.messageId===P),[I,P])??f,S=V({thread:x,isOpen:x?.messageId===g}),R=Le(),k=se(),i=ae(),w=n.useMemo(()=>oe(i,o,g),[i,o,g]),j=n.useMemo(()=>{if(x)return l=>i({threadId:x.threadId,messageId:x.messageId,mode:l})},[i,x]),{nextMessageId:B,previousMessageId:q}=Re({context:y,orderedIds:y.orderedIds,selectedMessageId:g,enabled:!R&&!k,onClose:d,handlers:{reply:()=>j?.("reply"),replyAll:()=>j?.("reply-all"),forward:()=>j?.("forward"),delete:()=>{y.listCommandsRef.current?.requestVerb("delete")||S.deleteThread()},toggleStar:S.toggleStar,toggleRead:()=>{y.listCommandsRef.current?.requestVerb("markRead")||x&&E([x.messageId],!x.isRead)},goBrief:()=>h("brief"),goSettings:()=>h("settings")}}),L=n.useCallback(l=>{if(!l)return;const v=I.find(Q=>Q.messageId===l);return v?{threadId:v.threadId,messageId:l}:void 0},[I]),A={selectedMessageId:g,selectedThread:f,conversation:F,onOpenThread:D,onCloseThread:d,nextThread:L(B),previousThread:L(q),actions:M,onReply:w,triage:y,onDeleteMessages:O,handleDeselectIfRemoved:C};return a.jsx(G.Provider,{value:A,children:t})}function J(){const{selectedMessageId:e,onOpenThread:t,triage:s,onDeleteMessages:d}=N();return a.jsx(ze,{selectedMessageId:e,onOpenThread:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:d})}function Ve(){const{conversation:e,selectedThread:t,actions:s,onReply:d,handleDeselectIfRemoved:h}=N(),c=!!e,o=we(e?.threadId);return a.jsxs(a.Fragment,{children:[a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(je,{hasThread:c,intelligenceOpen:o.isShowing,canToggleIntelligence:o.canToggle,onToggleIntelligence:o.toggle,onReply:d?()=>d("reply"):void 0,onReplyAll:d?()=>d("reply-all"):void 0,onForward:d?()=>d("forward"):void 0,onDelete:c?s.deleteThread:void 0,onToggleStar:c?s.toggleStar:void 0,isStarred:s.isStarred,moveContext:c&&s.accountId&&s.mailboxId?{accountId:s.accountId,currentMailboxId:s.mailboxId,onMove:s.moveThread}:void 0}),a.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?a.jsx(K,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:o.open}):a.jsx(de,{})})]}),a.jsx(W,{isOpen:o.drawerOpen,onClose:o.closeDrawer,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:h})]})}function Ke(){const{selectedThread:e,handleDeselectIfRemoved:t}=N(),{onToggleIntelligence:s}=z();return a.jsx(Se,{onClose:s,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function We(){const{selectedThread:e,conversation:t,onCloseThread:s,onOpenThread:d,nextThread:h,previousThread:c,handleDeselectIfRemoved:o}=N(),m=Ce(t?.threadId??null);return t?a.jsxs(a.Fragment,{children:[a.jsx(K,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:s,onOpenIntelligence:m.toggle,onSwipeNext:h?()=>d(h):void 0,onSwipePrevious:c?()=>d(c):void 0,mobileIntelligenceOpen:m.isOpen}),a.jsx(W,{isOpen:m.isOpen,onClose:m.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:o})]}):a.jsx("div",{className:"h-full",children:a.jsx(J,{})})}const tt=Object.assign(He,{List:J,Reading:Ve,Intelligence:Ke,Phone:We});export{tt as F};
@@ -1 +1 @@
1
- import{r as n,D as f,a1 as m,j as e,b3 as N,X as w}from"./index-D2WROvW4.js";import{E as u}from"./ErrorState-CgSMzTY2.js";import{D as r,C as x,a as E}from"./index-Co4vEXBg.js";import{b as h,e as p,f as b}from"./useMessageBodyContent-DDwrfVb0.js";import{C as k}from"./confirm-dialog-ClCoU30n.js";const C=t=>t?"Draft":"New Message",I=()=>{const t=n.useRef(!1);return n.useCallback(()=>{const s=document.querySelector("[data-subject-field]")?.value??"",o=(document.querySelector('[data-testid="compose-body"]')?.textContent??"").replace(/--\s*/g,"").trim();return t.current=s.trim().length>0||o.length>0,t.current},[])},S=()=>{const t=h(),i=p(),s=b(),a=I(),[l,o]=n.useState(!1),{isError:d,error:c,refetch:g}=f({...m(),staleTime:1/0}),j=n.useCallback(v=>{v||(a()?o(!0):s())},[s,a]),y=n.useCallback(()=>{o(!1),s()},[s]),D=n.useCallback(()=>{o(!1)},[]);return e.jsxs(r.Root,{open:!0,onOpenChange:j,children:[e.jsxs(r.Portal,{children:[e.jsx(r.Overlay,{className:"fixed inset-0 z-40 bg-black/40"}),e.jsxs(r.Content,{className:"fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-lg bg-canvas pb-[env(safe-area-inset-bottom,0px)]",style:{height:"95dvh"},children:[e.jsx(r.Handle,{className:"mx-auto mt-2 mb-1 h-1.5 w-12 rounded-full bg-fg-muted/30"}),e.jsx(r.Title,{className:"px-4 py-2 text-base font-semibold border-b border-line",children:C(t)}),d?e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:c,onRetry:()=>{g()}})}):e.jsx("div",{className:"flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})]}),e.jsx(k,{isOpen:l,title:"Discard draft?",description:"Your message has unsaved content. Are you sure you want to discard it?",confirmLabel:"Discard",cancelLabel:"Keep editing",destructive:!0,onConfirm:y,onCancel:D})]})},F=()=>{const t=h(),i=p(),s=b(),a=N(),{isError:l,error:o,refetch:d}=f({...m(),staleTime:1/0});if(E({bindings:[{key:"Escape",handler:s,preventDefault:!0}]}),!a)return e.jsx(S,{});const c=e.jsxs("header",{className:"flex items-center justify-between gap-2 px-4 py-3 border-b border-line shrink-0",children:[e.jsx("div",{className:"flex items-center gap-2 min-w-0",children:e.jsx("h2",{className:"text-lg font-semibold truncate",children:C(t)})}),e.jsx("button",{type:"button",onClick:s,className:"p-2 rounded-md hover:bg-surface-raised transition-colors min-h-11 min-w-11 inline-flex items-center justify-center","aria-label":"Close",children:e.jsx(w,{className:"size-5"})})]});return l?e.jsxs("div",{className:"h-full flex flex-col bg-canvas",children:[c,e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:o,onRetry:()=>{d()}})})]}):e.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-canvas",children:[c,e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})};export{F};
1
+ import{r as n,D as f,a1 as m,j as e,b3 as N,X as w}from"./index-DAfyEwmg.js";import{E as u}from"./ErrorState-DN-RI3U9.js";import{D as r,C as x,a as E}from"./index-BXcBMiAk.js";import{b as h,e as p,f as b}from"./useMessageBodyContent-JcYR750d.js";import{C as k}from"./confirm-dialog-CIft-XKM.js";const C=t=>t?"Draft":"New Message",I=()=>{const t=n.useRef(!1);return n.useCallback(()=>{const s=document.querySelector("[data-subject-field]")?.value??"",o=(document.querySelector('[data-testid="compose-body"]')?.textContent??"").replace(/--\s*/g,"").trim();return t.current=s.trim().length>0||o.length>0,t.current},[])},S=()=>{const t=h(),i=p(),s=b(),a=I(),[l,o]=n.useState(!1),{isError:d,error:c,refetch:g}=f({...m(),staleTime:1/0}),j=n.useCallback(v=>{v||(a()?o(!0):s())},[s,a]),y=n.useCallback(()=>{o(!1),s()},[s]),D=n.useCallback(()=>{o(!1)},[]);return e.jsxs(r.Root,{open:!0,onOpenChange:j,children:[e.jsxs(r.Portal,{children:[e.jsx(r.Overlay,{className:"fixed inset-0 z-40 bg-black/40"}),e.jsxs(r.Content,{className:"fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-lg bg-canvas pb-[env(safe-area-inset-bottom,0px)]",style:{height:"95dvh"},children:[e.jsx(r.Handle,{className:"mx-auto mt-2 mb-1 h-1.5 w-12 rounded-full bg-fg-muted/30"}),e.jsx(r.Title,{className:"px-4 py-2 text-base font-semibold border-b border-line",children:C(t)}),d?e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:c,onRetry:()=>{g()}})}):e.jsx("div",{className:"flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})]}),e.jsx(k,{isOpen:l,title:"Discard draft?",description:"Your message has unsaved content. Are you sure you want to discard it?",confirmLabel:"Discard",cancelLabel:"Keep editing",destructive:!0,onConfirm:y,onCancel:D})]})},F=()=>{const t=h(),i=p(),s=b(),a=N(),{isError:l,error:o,refetch:d}=f({...m(),staleTime:1/0});if(E({bindings:[{key:"Escape",handler:s,preventDefault:!0}]}),!a)return e.jsx(S,{});const c=e.jsxs("header",{className:"flex items-center justify-between gap-2 px-4 py-3 border-b border-line shrink-0",children:[e.jsx("div",{className:"flex items-center gap-2 min-w-0",children:e.jsx("h2",{className:"text-lg font-semibold truncate",children:C(t)})}),e.jsx("button",{type:"button",onClick:s,className:"p-2 rounded-md hover:bg-surface-raised transition-colors min-h-11 min-w-11 inline-flex items-center justify-center","aria-label":"Close",children:e.jsx(w,{className:"size-5"})})]});return l?e.jsxs("div",{className:"h-full flex flex-col bg-canvas",children:[c,e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:o,onRetry:()=>{d()}})})]}):e.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-canvas",children:[c,e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})};export{F};
@@ -0,0 +1,7 @@
1
+ import{ag as ys,cK as yr,r as l,c as ie,j as a,C as ut,d as On,B as V,X as Pt,aF as Ie,cL as zn,b as U,a as Ye,S as We,b5 as kr,cM as jr,as as Dt,T as Ft,cN as _n,bn as ks,cO as wr,cP as Un,az as Cr,ar as Bn,e as Sr,cQ as Nr,aE as Kn,cR as Tr,cS as Ir,cT as Er,cU as Rr,cV as Mr,cW as Ar,cX as $r,cY as Lr,n as Pr,D as Z,a1 as gt,z as bt,cZ as Dr,c_ as Fr,c$ as Ot,K as qn,bO as Qn,d0 as Hn,x as ae,ah as be,aj as pe,Y as Je,bK as Re,d1 as zt,cx as Or,d2 as Me,d3 as zr,d4 as Gs,d5 as _r,d6 as Ur,d7 as Br,d8 as Kr,co as qr,bI as Gn,bJ as Qr,d9 as Hr,b3 as js,y as Gr,b6 as Vn,b0 as Wn,b7 as Yn,b8 as Jn,b9 as Vr,aR as Wr,aS as Yr,cJ as Jr,da as Xr,t as Xn,cI as Zr,db as eo,dc as to,dd as Zn,de as so,bP as no,by as ws,c1 as ao,bU as Vs,df as ro,dg as es,dh as oo,bx as io,_ as lo,a6 as co,N as ea,L as uo,bR as Ws,bh as fo,di as mo,dj as po,ak as Ys,bM as ho,dk as go,dl as bo,v as _t,dm as xo,dn as vo,dp as Js,dq as yo,dr as ko,ds as jo,i as ta,dt as Cs,bN as ye,du as wo,cp as Co,c0 as So,dv as No,dw as Xs,g as To,cq as Io}from"./index-DAfyEwmg.js";import{B as Eo,q as Ro,r as Mo,S as sa,d as Ss,l as Ao,g as $o,D as Lo,b as Tt,a as Po,t as it,h as Do,v as Fo,w as Oo,p as zo,f as _o,u as Uo,j as Bo}from"./search-token-index-BKe6UW6S.js";import{K as Ko}from"./kbd-BA2qHLnv.js";import{P as na,f as qo,U as Qo,a as Ho,E as Go,s as Vo}from"./attachment-file-dpjals6V.js";import{M as Wo}from"./mail-DJWEQQNX.js";import{A as ft}from"./avatar-BCsuCCZe.js";import{M as Yo,c as Jo,d as aa,e as Xo,f as ra,g as oa,a as Zo,b as ei,S as Zs,s as ia,u as la,p as ti,r as si}from"./useSearchTokenContext-Sfg_74pq.js";import{C as ni,D as Qe,a as ai}from"./index-BXcBMiAk.js";import{E as Oe}from"./ErrorState-DN-RI3U9.js";import{e as ca,b as Xe,a as ri,g as oi,c as ze,d as ii}from"./format-23Av07Go.js";import{D as li}from"./download-Bd5Gj0Ez.js";import{g as ci}from"./useMessageBodyContent-JcYR750d.js";import{S as di}from"./shield-check-Dti9mXCF.js";import{u as da}from"./useDebouncedValue-BUcXOfs2.js";import{h as en,u as ui,a as fi,i as mi,n as pi,o as hi,j as gi,k as bi,S as xi}from"./useFilters-RTja5VPA.js";import{C as It}from"./confirm-dialog-CIft-XKM.js";import{C as vi}from"./clock-0mXPDrxD.js";import{r as yi,b as ki}from"./search-scope-DTcpOp3S.js";import{M as ji}from"./menu-DDImXiMM.js";function mt(e){if(wi())e.focus({preventScroll:!0});else{let t=Ci(e);e.focus(),Si(t)}}let Et=null;function wi(){if(Et==null){Et=!1;try{document.createElement("div").focus({get preventScroll(){return Et=!0,!0}})}catch{}}return Et}function Ci(e){let t=e.parentNode,s=[],n=document.scrollingElement||document.documentElement;for(;t instanceof HTMLElement&&t!==n;)(t.offsetHeight<t.scrollHeight||t.offsetWidth<t.scrollWidth)&&s.push({element:t,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft}),t=t.parentNode;return n instanceof HTMLElement&&s.push({element:n,scrollTop:n.scrollTop,scrollLeft:n.scrollLeft}),s}function Si(e){for(let{element:t,scrollTop:s,scrollLeft:n}of e)t.scrollTop=s,t.scrollLeft=n}const Te=e=>e?.ownerDocument??document,Ee=e=>e&&"window"in e&&e.window===e?e:Te(e).defaultView||window;function Ni(e){return e!==null&&typeof e=="object"&&"nodeType"in e&&typeof e.nodeType=="number"}function Ti(e){return Ni(e)&&e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&"host"in e}let Ii=!1;function ua(){return Ii}function ge(e,t){if(!ua())return t&&e?e.contains(t):!1;if(!e||!t)return!1;let s=t;for(;s!==null;){if(s===e)return!0;s.tagName==="SLOT"&&s.assignedSlot?s=s.assignedSlot.parentNode:Ti(s)?s=s.host:s=s.parentNode}return!1}function X(e){if(ua()&&e.target instanceof Element&&e.target.shadowRoot){if("composedPath"in e)return e.composedPath()[0]??null;if("composedPath"in e.nativeEvent)return e.nativeEvent.composedPath()[0]??null}return e.target}const Ei=typeof Element<"u"&&"checkVisibility"in Element.prototype;function Ri(e){const t=Ee(e);if(!(e instanceof t.HTMLElement)&&!(e instanceof t.SVGElement))return!1;let{display:s,visibility:n}=e.style,r=s!=="none"&&n!=="hidden"&&n!=="collapse";if(r){const{getComputedStyle:o}=Ee(e);let{display:i,visibility:c}=o(e);r=i!=="none"&&c!=="hidden"&&c!=="collapse"}return r}function Mi(e,t){return!e.hasAttribute("hidden")&&!e.hasAttribute("data-react-aria-prevent-focus")&&(e.nodeName==="DETAILS"&&t&&t.nodeName!=="SUMMARY"?e.hasAttribute("open"):!0)}function fa(e,t){return Ei?e.checkVisibility({visibilityProperty:!0})&&!e.closest("[data-react-aria-prevent-focus]"):e.nodeName!=="#comment"&&Ri(e)&&Mi(e,t)&&(!e.parentElement||fa(e.parentElement,e))}const ma=["input:not([disabled]):not([type=hidden])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","a[href]","area[href]","summary","iframe","object","embed","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable^="false"])',"permission"],Ai=ma.join(":not([hidden]),")+",[tabindex]:not([disabled]):not([hidden])";ma.push('[tabindex]:not([tabindex="-1"]):not([disabled])');function $i(e,t){return e.matches(Ai)&&!Li(e)&&(t?.skipVisibilityCheck||fa(e))}function Li(e){let t=e;for(;t!=null;){if(t instanceof Ee(t).HTMLElement&&t.inert)return!0;t=t.parentElement}return!1}const Ns=typeof document<"u"?ys.useLayoutEffect:()=>{};function Pi(e){let t=e;return t.nativeEvent=e,t.isDefaultPrevented=()=>t.defaultPrevented,t.isPropagationStopped=()=>t.cancelBubble,t.persist=()=>{},t}function Di(e,t){Object.defineProperty(e,"target",{value:t}),Object.defineProperty(e,"currentTarget",{value:t})}function Fi(e){for(;e&&!$i(e,{skipVisibilityCheck:!0});)e=e.parentElement;let t=Ee(e),s=t.document.activeElement;if(!s||s===e)return;let n=!1,r=g=>{(X(g)===s||n)&&g.stopImmediatePropagation()},o=g=>{(X(g)===s||n)&&(g.stopImmediatePropagation(),!e&&!n&&(n=!0,mt(s),d()))},i=g=>{(X(g)===e||n)&&g.stopImmediatePropagation()},c=g=>{(X(g)===e||n)&&(g.stopImmediatePropagation(),n||(n=!0,mt(s),d()))};t.addEventListener("blur",r,!0),t.addEventListener("focusout",o,!0),t.addEventListener("focusin",c,!0),t.addEventListener("focus",i,!0);let d=()=>{cancelAnimationFrame(b),t.removeEventListener("blur",r,!0),t.removeEventListener("focusout",o,!0),t.removeEventListener("focusin",c,!0),t.removeEventListener("focus",i,!0),n=!1},b=requestAnimationFrame(d);return d}function Ut(e){if(typeof window>"u"||window.navigator==null)return!1;let t=window.navigator.userAgentData?.brands;return Array.isArray(t)&&t.some(s=>e.test(s.brand))||e.test(window.navigator.userAgent)}function Ts(e){return typeof window<"u"&&window.navigator!=null?e.test(window.navigator.userAgentData?.platform||window.navigator.platform):!1}function Ae(e){let t=null;return()=>(t==null&&(t=e()),t)}const At=Ae(function(){return Ts(/^Mac/i)}),Oi=Ae(function(){return Ts(/^iPhone/i)}),pa=Ae(function(){return Ts(/^iPad/i)||At()&&navigator.maxTouchPoints>1}),ha=Ae(function(){return Oi()||pa()}),zi=Ae(function(){return Ut(/AppleWebKit/i)&&!_i()}),_i=Ae(function(){return Ut(/Chrome/i)}),ga=Ae(function(){return Ut(/Android/i)}),Ui=Ae(function(){return Ut(/Firefox/i)});function Bi(e){return e.pointerType===""&&e.isTrusted?!0:ga()&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Ki(e){return!ga()&&e.width===0&&e.height===0||e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"}function pt(e,t,s=!0){let{metaKey:n,ctrlKey:r,altKey:o,shiftKey:i}=t;Ui()&&window.event?.type?.startsWith("key")&&e.target==="_blank"&&(At()?n=!0:r=!0);let c=zi()&&At()&&!pa()?new KeyboardEvent("keydown",{keyIdentifier:"Enter",metaKey:n,ctrlKey:r,altKey:o,shiftKey:i}):new MouseEvent("click",{metaKey:n,ctrlKey:r,altKey:o,shiftKey:i,detail:1,bubbles:!0,cancelable:!0});pt.isOpening=s,mt(e),e.dispatchEvent(c),pt.isOpening=!1}pt.isOpening=!1;let Ne=new Map,ds=new Set;function tn(){if(typeof window>"u")return;function e(n){return"propertyName"in n}let t=n=>{let r=X(n);if(!e(n)||!r)return;let o=Ne.get(r);o||(o=new Set,Ne.set(r,o),r.addEventListener("transitioncancel",s,{once:!0})),o.add(n.propertyName)},s=n=>{let r=X(n);if(!e(n)||!r)return;let o=Ne.get(r);if(o&&(o.delete(n.propertyName),o.size===0&&(r.removeEventListener("transitioncancel",s),Ne.delete(r)),Ne.size===0)){for(let i of ds)i();ds.clear()}};document.body.addEventListener("transitionrun",t),document.body.addEventListener("transitionend",s)}typeof document<"u"&&(document.readyState!=="loading"?tn():document.addEventListener("DOMContentLoaded",tn));function qi(){for(const[e]of Ne)"isConnected"in e&&!e.isConnected&&Ne.delete(e)}function Qi(e){requestAnimationFrame(()=>{qi(),Ne.size===0?e():ds.add(e)})}function ba(...e){return(...t)=>{for(let s of e)typeof s=="function"&&s(...t)}}let us=new Map;typeof FinalizationRegistry<"u"&&new FinalizationRegistry(e=>{us.delete(e)});function Hi(e,t){if(e===t)return e;let s=us.get(e);if(s)return s.forEach(r=>r.current=t),t;let n=us.get(t);return n?(n.forEach(r=>r.current=e),e):t}function Gi(...e){return e.length===1&&e[0]?e[0]:t=>{let s=!1;const n=e.map(r=>{const o=sn(r,t);return s||=typeof o=="function",o});if(s)return()=>{n.forEach((r,o)=>{typeof r=="function"?r():sn(e[o],null)})}}}function sn(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function xt(...e){let t={...e[0]};for(let s=1;s<e.length;s++){let n=e[s];for(let r in n){let o=t[r],i=n[r];typeof o=="function"&&typeof i=="function"&&r[0]==="o"&&r[1]==="n"&&r.charCodeAt(2)>=65&&r.charCodeAt(2)<=90?t[r]=ba(o,i):(r==="className"||r==="UNSAFE_className")&&typeof o=="string"&&typeof i=="string"?t[r]=yr(o,i):r==="id"&&o&&i?t.id=Hi(o,i):r==="ref"&&o&&i?t.ref=Gi(o,i):t[r]=i!==void 0?i:o}}return t}function Vi(e,t){Ns(()=>{if(e&&e.ref&&t)return e.ref.current=t.current,()=>{e.ref&&(e.ref.current=null)}})}const Wi=ys.useInsertionEffect??Ns;function ts(e){const t=l.useRef(null);return Wi(()=>{t.current=e},[e]),l.useCallback((...s)=>{const n=t.current;return n?.(...s)},[])}let Ge="default",fs="",Mt=new WeakMap;function Yi(e){if(ha()){if(Ge==="default"){const t=Te(e);fs=t.documentElement.style.webkitUserSelect,t.documentElement.style.webkitUserSelect="none"}Ge="disabled"}else if(e instanceof HTMLElement||e instanceof SVGElement){let t="userSelect"in e.style?"userSelect":"webkitUserSelect";Mt.set(e,e.style[t]),e.style[t]="none"}}function nn(e){if(ha()){if(Ge!=="disabled")return;Ge="restoring",setTimeout(()=>{Qi(()=>{if(Ge==="restoring"){const t=Te(e);t.documentElement.style.webkitUserSelect==="none"&&(t.documentElement.style.webkitUserSelect=fs||""),fs="",Ge="default"}})},300)}else if((e instanceof HTMLElement||e instanceof SVGElement)&&e&&Mt.has(e)){let t=Mt.get(e),s="userSelect"in e.style?"userSelect":"webkitUserSelect";e.style[s]==="none"&&(e.style[s]=t),e.getAttribute("style")===""&&e.removeAttribute("style"),Mt.delete(e)}}function an(e){return e?.defaultView?.__webpack_nonce__||globalThis.__webpack_nonce__||void 0}let ss=new WeakMap;function Ji(e){let t=e??(typeof document<"u"?document:void 0);if(!t)return an(t);if(ss.has(t))return ss.get(t);let s=t.querySelector('meta[property="csp-nonce"]'),n=s&&s instanceof Ee(s).HTMLMetaElement&&(s.nonce||s.content)||an(t)||void 0;return n!==void 0&&ss.set(t,n),n}const xa=ys.createContext({register:()=>{}});xa.displayName="PressResponderContext";function va(){let e=l.useRef(new Map),t=l.useCallback((r,o,i,c)=>{let d=c?.once?(...b)=>{e.current.delete(i),i(...b)}:i;e.current.set(i,{type:o,eventTarget:r,fn:d,options:c}),r.addEventListener(o,d,c)},[]),s=l.useCallback((r,o,i,c)=>{let d=e.current.get(i)?.fn||i;r.removeEventListener(o,d,c),e.current.delete(i)},[]),n=l.useCallback(()=>{e.current.forEach((r,o)=>{s(r.eventTarget,r.type,o,r.options)})},[s]);return l.useEffect(()=>n,[n]),{addGlobalListener:t,removeGlobalListener:s,removeAllGlobalListeners:n}}function Xi(e){let t=l.useContext(xa);if(t){let{register:s,ref:n,...r}=t;e=xt(r,e),s()}return Vi(t,e.ref),e}class Rt{#e;constructor(t,s,n,r){this.#e=!0;const i=(r?.target??n.currentTarget)?.getBoundingClientRect();let c,d=0,b,g=null;n.clientX!=null&&n.clientY!=null&&(b=n.clientX,g=n.clientY),i&&(b!=null&&g!=null?(c=b-i.left,d=g-i.top):(c=i.width/2,d=i.height/2)),this.type=t,this.pointerType=s,this.target=n.currentTarget,this.shiftKey=n.shiftKey,this.metaKey=n.metaKey,this.ctrlKey=n.ctrlKey,this.altKey=n.altKey,this.x=c,this.y=d,this.key=n.key}continuePropagation(){this.#e=!1}get shouldStopPropagation(){return this.#e}}const rn=Symbol("linkClicked"),on="react-aria-pressable-style",ln="data-react-aria-pressable";function Zi(e){let{onPress:t,onPressChange:s,onPressStart:n,onPressEnd:r,onPressUp:o,onClick:i,isDisabled:c,isPressed:d,preventFocusOnPress:b,shouldCancelOnPointerExit:g,allowTextSelectionOnPress:x,ref:p,...v}=Xi(e),[f,u]=l.useState(!1),m=l.useRef({isPressed:!1,ignoreEmulatedMouseEvents:!1,didFirePressStart:!1,isTriggeringEvent:!1,activePointerId:null,target:null,isOverTarget:!1,pointerType:null,disposables:[]}),{addGlobalListener:h,removeAllGlobalListeners:w}=va(),y=l.useCallback((k,I)=>{let $=m.current;if(c||$.didFirePressStart)return!1;let C=!0;if($.isTriggeringEvent=!0,n){let M=new Rt("pressstart",I,k);n(M),C=M.shouldStopPropagation}return s&&s(!0),$.isTriggeringEvent=!1,$.didFirePressStart=!0,u(!0),C},[c,n,s]),j=l.useCallback((k,I,$=!0)=>{let C=m.current;if(!C.didFirePressStart)return!1;C.didFirePressStart=!1,C.isTriggeringEvent=!0;let M=!0;if(r){let S=new Rt("pressend",I,k);r(S),M=S.shouldStopPropagation}if(s&&s(!1),u(!1),t&&$&&!c){let S=new Rt("press",I,k);t(S),M&&=S.shouldStopPropagation}return C.isTriggeringEvent=!1,M},[c,r,s,t]),T=ts(j),R=l.useCallback((k,I)=>{let $=m.current;if(c)return!1;if(o){$.isTriggeringEvent=!0;let C=new Rt("pressup",I,k);return o(C),$.isTriggeringEvent=!1,C.shouldStopPropagation}return!0},[c,o]),D=ts(R),E=l.useCallback(k=>{let I=m.current;if(I.isPressed&&I.target){I.didFirePressStart&&I.pointerType!=null&&j(De(I.target,k),I.pointerType,!1),I.isPressed=!1,I.isOverTarget=!1,I.activePointerId=null,I.pointerType=null,w(),x||nn(I.target);for(let $ of I.disposables)$();I.disposables=[]}},[x,w,j]),F=ts(E);l.useEffect(()=>{c&&m.current.isPressed&&F({currentTarget:m.current.target,shiftKey:!1,ctrlKey:!1,metaKey:!1,altKey:!1})},[c]);let P=l.useCallback(k=>{g&&E(k)},[g,E]),_=l.useCallback(k=>{c||i?.(k)},[c,i]),K=l.useCallback((k,I)=>{if(!c&&i){let $=new MouseEvent("click",k);Di($,I),i(Pi($))}},[c,i]),B=l.useMemo(()=>{let k=m.current,I={onKeyDown(C){if(ns(C.nativeEvent,C.currentTarget)&&ge(C.currentTarget,X(C))){cn(X(C),C.key)&&C.preventDefault();let M=!0;!k.isPressed&&!C.repeat&&(k.target=C.currentTarget,k.isPressed=!0,k.pointerType="keyboard",M=y(C,"keyboard"));let S=C.currentTarget,z=O=>{ns(O,S)&&!O.repeat&&ge(S,X(O))&&k.target&&D(De(k.target,O),"keyboard")};h(Te(C.currentTarget),"keyup",ba(z,$),!0),M&&C.stopPropagation(),C.metaKey&&At()&&k.metaKeyEvents?.set(C.key,C.nativeEvent)}else C.key==="Meta"&&(k.metaKeyEvents=new Map)},onClick(C){if(!(C&&!ge(C.currentTarget,X(C)))&&C&&C.button===0&&!k.isTriggeringEvent&&!pt.isOpening){let M=!0;if(c&&C.preventDefault(),!k.ignoreEmulatedMouseEvents&&!k.isPressed&&(k.pointerType==="virtual"||Bi(C.nativeEvent))){let S=y(C,"virtual"),z=D(C,"virtual"),O=T(C,"virtual");_(C),M=S&&z&&O}else if(k.isPressed&&k.pointerType!=="keyboard"){let S=k.pointerType||C.nativeEvent.pointerType||"virtual",z=D(De(C.currentTarget,C),S),O=T(De(C.currentTarget,C),S,!0);M=z&&O,k.isOverTarget=!1,_(C),F(C)}k.ignoreEmulatedMouseEvents=!1,M&&C.stopPropagation()}}},$=C=>{if(k.isPressed&&k.target&&ns(C,k.target)){cn(X(C),C.key)&&C.preventDefault();let M=X(C),S=ge(k.target,M);T(De(k.target,C),"keyboard",S),S&&K(C,k.target),w(),C.key!=="Enter"&&Is(k.target)&&ge(k.target,M)&&!C[rn]&&(C[rn]=!0,pt(k.target,C,!1)),k.isPressed=!1,k.metaKeyEvents?.delete(C.key)}else if(C.key==="Meta"&&k.metaKeyEvents?.size){let M=k.metaKeyEvents;k.metaKeyEvents=void 0;for(let S of M.values())k.target?.dispatchEvent(new KeyboardEvent("keyup",S))}};if(typeof PointerEvent<"u"){I.onPointerDown=S=>{if(S.button!==0||!ge(S.currentTarget,X(S)))return;if(Ki(S.nativeEvent)){k.pointerType="virtual";return}k.pointerType=S.pointerType;let z=!0;if(!k.isPressed){k.isPressed=!0,k.isOverTarget=!0,k.activePointerId=S.pointerId,k.target=S.currentTarget,x||Yi(k.target),z=y(S,k.pointerType);let O=X(S);"releasePointerCapture"in O&&("hasPointerCapture"in O?O.hasPointerCapture(S.pointerId)&&O.releasePointerCapture(S.pointerId):O.releasePointerCapture(S.pointerId)),h(Te(S.currentTarget),"pointerup",C,!1),h(Te(S.currentTarget),"pointercancel",M,!1)}z&&S.stopPropagation()},I.onMouseDown=S=>{if(ge(S.currentTarget,X(S))&&S.button===0){if(b){let z=Fi(S.target);z&&k.disposables.push(z)}S.stopPropagation()}},I.onPointerUp=S=>{!ge(S.currentTarget,X(S))||k.pointerType==="virtual"||S.button===0&&!k.isPressed&&D(S,k.pointerType||S.pointerType)},I.onPointerEnter=S=>{S.pointerId===k.activePointerId&&k.target&&!k.isOverTarget&&k.pointerType!=null&&(k.isOverTarget=!0,y(De(k.target,S),k.pointerType))},I.onPointerLeave=S=>{S.pointerId===k.activePointerId&&k.target&&k.isOverTarget&&k.pointerType!=null&&(k.isOverTarget=!1,T(De(k.target,S),k.pointerType,!1),P(S))};let C=S=>{if(S.pointerId===k.activePointerId&&k.isPressed&&S.button===0&&k.target){if(ge(k.target,X(S))&&k.pointerType!=null){let z=!1,O=setTimeout(()=>{k.isPressed&&k.target instanceof HTMLElement&&(z?F(S):(mt(k.target),k.target.click()))},80);h(S.currentTarget,"click",()=>z=!0,!0),k.disposables.push(()=>clearTimeout(O))}else F(S);k.isOverTarget=!1}},M=S=>{F(S)};I.onDragStart=S=>{ge(S.currentTarget,X(S))&&F(S)}}return I},[h,c,b,w,x,P,y,_,K]);return l.useEffect(()=>{if(!p)return;const k=Te(p.current);if(!k||!k.head||k.getElementById(on))return;const I=k.createElement("style");I.id=on;let $=Ji(k);$&&(I.nonce=$),I.textContent=`
2
+ @layer {
3
+ [${ln}] {
4
+ touch-action: pan-x pan-y pinch-zoom;
5
+ }
6
+ }
7
+ `.trim(),k.head.prepend(I)},[p]),l.useEffect(()=>{let k=m.current;return()=>{x||nn(k.target??void 0);for(let I of k.disposables)I();k.disposables=[]}},[x]),{isPressed:d||f,pressProps:xt(v,B,{[ln]:!0})}}function Is(e){return e.tagName==="A"&&e.hasAttribute("href")}function ns(e,t){const{key:s,code:n}=e,r=t,o=r.getAttribute("role");return(s==="Enter"||s===" "||s==="Spacebar"||n==="Space")&&!(r instanceof Ee(r).HTMLInputElement&&!ya(r,s)||r instanceof Ee(r).HTMLTextAreaElement||r.isContentEditable)&&!((o==="link"||!o&&Is(r))&&s!=="Enter")}function De(e,t){let s=t.clientX,n=t.clientY;return{currentTarget:e,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,altKey:t.altKey,clientX:s,clientY:n,key:t.key}}function el(e){return e instanceof HTMLInputElement?!1:e instanceof HTMLButtonElement?e.type!=="submit"&&e.type!=="reset":!Is(e)}function cn(e,t){return e instanceof HTMLInputElement?!ya(e,t):el(e)}const tl=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function ya(e,t){return e.type==="checkbox"||e.type==="radio"?t===" ":tl.has(e.type)}let sl=0;const as=new Map;function nl(e){let[t,s]=l.useState();return Ns(()=>{if(!e)return;let n=as.get(e);if(n)s(n.element.id);else{let r=`react-aria-description-${sl++}`;s(r);let o=document.createElement("div");o.id=r,o.style.display="none",o.textContent=e,document.body.appendChild(o),n={refCount:0,element:o},as.set(e,n)}return n.refCount++,()=>{n&&--n.refCount===0&&(n.element.remove(),as.delete(e))}},[e]),{"aria-describedby":e?t:void 0}}const al=500;function rl(e){let{isDisabled:t,onLongPressStart:s,onLongPressEnd:n,onLongPress:r,threshold:o=al,accessibilityDescription:i}=e;const c=l.useRef(void 0);let{addGlobalListener:d,removeGlobalListener:b}=va(),{pressProps:g}=Zi({isDisabled:t,onPressStart(p){if(p.continuePropagation(),(p.pointerType==="mouse"||p.pointerType==="touch")&&(s&&s({...p,type:"longpressstart"}),c.current=setTimeout(()=>{p.target.dispatchEvent(new PointerEvent("pointercancel",{bubbles:!0})),Te(p.target).activeElement!==p.target&&mt(p.target),r&&r({...p,type:"longpress"}),c.current=void 0},o),p.pointerType==="touch")){let v=u=>{u.preventDefault()},f=Ee(p.target);d(p.target,"contextmenu",v,{once:!0}),d(f,"pointerup",()=>{setTimeout(()=>{b(p.target,"contextmenu",v)},30)},{once:!0})}},onPressEnd(p){c.current&&clearTimeout(c.current),n&&(p.pointerType==="mouse"||p.pointerType==="touch")&&n({...p,type:"longpressend"})}}),x=nl(r&&!t?i:void 0);return{longPressProps:xt(g,x)}}const Bt=ie("BadgeCheck",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const ka=ie("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);const ja=ie("Forward",[["polyline",{points:"15 17 20 12 15 7",key:"1w3sku"}],["path",{d:"M4 18v-2a4 4 0 0 1 4-4h12",key:"jmiej9"}]]);const ol=ie("MailCheck",[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"12jkf8"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}]]);const Es=ie("MailOpen",[["path",{d:"M21.2 8.4c.5.38.8.97.8 1.6v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V10a2 2 0 0 1 .8-1.6l8-6a2 2 0 0 1 2.4 0l8 6Z",key:"1jhwl8"}],["path",{d:"m22 10-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 10",key:"1qfld7"}]]);const il=ie("MailX",[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h9",key:"1j9vog"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"m17 17 4 4",key:"1b3523"}],["path",{d:"m21 17-4 4",key:"uinynz"}]]);const ll=ie("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const Kt=ie("Paperclip",[["path",{d:"M13.234 20.252 21 12.3",key:"1cbrk9"}],["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 0 2.828 2 2 0 0 0 2.828 0l8.414-8.586a4 4 0 0 0 0-5.656 4 4 0 0 0-5.656 0l-8.415 8.585a6 6 0 1 0 8.486 8.486",key:"1pkts6"}]]);const wa=ie("ReplyAll",[["polyline",{points:"7 17 2 12 7 7",key:"t83bqg"}],["polyline",{points:"12 17 7 12 12 7",key:"1g4ajm"}],["path",{d:"M22 18v-2a4 4 0 0 0-4-4H7",key:"1fcyog"}]]);const Ca=ie("Reply",[["polyline",{points:"9 17 4 12 9 7",key:"hvgpf2"}],["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}]]);const Ze=ie("ShieldAlert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);const cl=ie("ShieldQuestion",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3",key:"mhlwft"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const dl=ie("ShieldX",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m14.5 9.5-5 5",key:"17q4r4"}],["path",{d:"m9.5 9.5 5 5",key:"18nt4w"}]]),ul=({address:e,showTrustedBadge:t=!1})=>{const s=t?a.jsx(Bt,{className:"inline-block size-4 ml-1 -mt-0.5 text-positive","aria-label":"Trusted sender","data-testid":"trusted-sender-badge"}):null;return e.displayName?a.jsxs("span",{children:[a.jsx("span",{className:"text-fg",children:e.displayName}),a.jsxs("span",{className:"text-fg-muted",children:[" ","<",e.normalizedEmail,">"]}),s]}):a.jsxs("span",{className:"text-fg",children:[e.normalizedEmail,s]})},fl=({label:e,addresses:t,showTrustedBadge:s=!1})=>{const[n,r]=l.useState(!1);if(t.length===0)return null;const o=t.length>3,i=c=>{const d=s&&c.flags?.trusted?.value===!0;return a.jsx(ul,{address:c,showTrustedBadge:d})};return a.jsxs("div",{className:"flex gap-2 text-sm",children:[a.jsxs("span",{className:"text-fg-muted shrink-0 w-12",children:[e,":"]}),a.jsx("div",{className:"flex-1 min-w-0",children:n?a.jsx("div",{className:"flex flex-wrap gap-1",children:t.map((c,d)=>a.jsxs("span",{children:[i(c),d<t.length-1&&", "]},d))}):a.jsx("div",{className:"truncate",children:t.map((c,d)=>a.jsxs("span",{children:[i(c),d<t.length-1&&", "]},d))})}),o&&a.jsx("button",{type:"button",onClick:c=>{c.stopPropagation(),r(!n)},className:"shrink-0 text-fg-muted hover:text-fg transition-colors","aria-label":n?"Collapse":"Expand",children:n?a.jsx(ut,{className:"h-4 w-4"}):a.jsx(On,{className:"h-4 w-4"})})]})},ml={unknown:{label:"Unknown sender",tone:"neutral"},wellknown:{label:"Known sender",tone:"positive"},vip:{label:"VIP",tone:"accent"}};function He({label:e,children:t,className:s}){return a.jsxs("section",{className:U("border-b border-line px-row-inset py-3",s),children:[a.jsx("h3",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e}),a.jsx("div",{className:"mt-2",children:t})]})}function pl({sender:e}){const t=ml[e.trust],s=e.inboundCount==null?null:(e.replyCount??0)>0?`${e.inboundCount} received · you replied ${e.replyCount}×`:`${e.inboundCount} received · you've never replied`;return a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx(ft,{name:e.name,email:e.email,size:"md"}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("div",{className:"truncate text-sm font-semibold text-fg",children:e.name}),a.jsx("div",{className:"truncate text-2xs text-fg-subtle",children:e.email})]})]}),a.jsx("div",{className:"mt-2 flex items-center gap-2",children:e.addressUnverified?a.jsx(Ie,{tone:"danger",dot:!0,children:"Address couldn't be verified"}):a.jsx(Ie,{tone:t.tone,dot:!0,children:t.label})}),a.jsxs("p",{className:"mt-2 text-xs text-fg-muted",children:["First seen ",e.firstSeenLabel,s?` · ${s}`:""]})]})}function hl({auth:e,onShowSimilar:t}){if(e.verdict==="aligned")return a.jsxs("div",{className:"flex items-start gap-2 text-xs text-fg-muted",children:[a.jsx(di,{className:"mt-0.5 size-3.5 shrink-0 text-positive"}),a.jsx("span",{children:e.summary})]});if(e.verdict==="caution")return a.jsxs("div",{className:"flex items-start gap-2 rounded-md bg-warning/10 p-3 text-warning",children:[a.jsx(cl,{className:"mt-0.5 size-4 shrink-0"}),a.jsx("p",{className:"text-xs leading-relaxed",children:e.summary})]});const s=e.addressUnreadable?"This sender can't be verified":"This message may be impersonating someone";return a.jsxs("div",{className:"rounded-md bg-danger-soft p-3",children:[a.jsxs("div",{className:"flex items-start gap-2",children:[a.jsx(Ze,{className:"mt-0.5 size-4 shrink-0 text-danger"}),a.jsxs("div",{className:"min-w-0",children:[a.jsx("p",{className:"text-sm font-semibold text-danger",children:s}),a.jsx("p",{className:"mt-1 text-xs leading-relaxed text-fg",children:e.summary}),!e.addressUnreadable&&e.dkimDomain&&a.jsxs("p",{className:"mt-1 text-2xs text-fg-muted",children:["Sent from"," ",a.jsx("code",{className:"rounded bg-surface px-1 py-0.5",children:e.dkimDomain}),", claims to be"," ",a.jsx("code",{className:"rounded bg-surface px-1 py-0.5",children:e.fromDomain})]})]})]}),e.similarCount!=null&&e.similarCount>0&&a.jsxs(V,{variant:"secondary",size:"sm",className:"mt-2 w-full border-danger/30 text-danger hover:bg-danger-soft",onClick:t,children:[e.similarCount," similar messages"]})]})}function lt({icon:e,label:t,active:s,danger:n,onClick:r,pending:o}){const i=r===void 0||o===!0;return a.jsxs("button",{type:"button",onClick:r,disabled:i,className:U("flex items-center gap-2 rounded-md border px-2 py-1 text-xs transition-colors",s?"border-accent-2 bg-accent-2-soft text-accent-2":"border-line text-fg-muted hover:border-line-strong hover:text-fg",n&&!s&&"text-danger hover:bg-danger-soft",i&&"cursor-not-allowed opacity-50 hover:border-line"),children:[e,t]})}const gl={sender:"matched: sender",recipient:"matched: recipient",subject:"matched: subject",attachment:"matched: attachment",body:"matched: body",entities:"matched: entities"};function Sa({data:e,onClose:t,onShowSimilar:s,actions:n,similarState:r="ready",similarLinkComponent:o,className:i,hideCloseButton:c=!1,reportSpamPending:d=!1,notSpamPending:b=!1}){const{sender:g,authenticity:x,category:p,flags:v={},similar:f}=e;return a.jsxs("aside",{className:U("flex w-76 shrink-0 flex-col overflow-y-auto border-l border-line bg-surface",i),children:[a.jsxs("header",{className:"flex h-pane-header shrink-0 items-center justify-between border-b border-line px-row-inset",children:[a.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Intelligence"}),!c&&a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(Pt,{className:"size-3.5"}),onClick:t,"aria-label":"Collapse intelligence sidebar"})]}),a.jsx(He,{label:"Sender",children:a.jsx(pl,{sender:g})}),a.jsx(He,{label:"Authenticity",children:a.jsx(hl,{auth:x,onShowSimilar:s})}),a.jsx(He,{label:"Category",children:a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Ie,{tone:zn[p.value],children:p.value}),p.overridden&&a.jsx("span",{className:"text-2xs text-fg-subtle",children:"your override"}),a.jsx("button",{type:"button",className:U("ml-auto text-2xs text-accent hover:underline",!n?.onReclassify&&"cursor-not-allowed opacity-50 hover:no-underline"),disabled:!n?.onReclassify,onClick:n?.onReclassify,children:"reclassify"})]})}),a.jsxs(He,{label:"Quick actions",children:[a.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[a.jsx(lt,{icon:a.jsx(Ye,{className:"size-3.5"}),label:"VIP",active:v.vip,onClick:n?.onToggleVip}),a.jsx(lt,{icon:a.jsx(Eo,{className:"size-3.5"}),label:"Mute",active:v.muted,onClick:n?.onToggleMute}),n?.onNotSpam&&a.jsx(lt,{icon:a.jsx(ol,{className:"size-3.5"}),label:b?"Undoing…":"Not spam",active:!0,onClick:n.onNotSpam,pending:b}),n?.onReportSpam&&a.jsx(lt,{icon:a.jsx(dl,{className:"size-3.5"}),label:d?"Reporting…":"Report spam",danger:!0,onClick:n.onReportSpam,pending:d}),a.jsx(lt,{icon:a.jsx(il,{className:"size-3.5"}),label:"Unsubscribe",active:v.unsubscribed,onClick:n?.onToggleUnsubscribe})]}),n?.onNotSpam&&a.jsx("p",{className:"mt-1.5 text-2xs text-fg-subtle",children:"You reported this message as spam"})]}),(r!=="ready"||f.length>0)&&a.jsx(He,{label:"Similar messages",children:r==="loading"?a.jsx("div",{className:"animate-pulse space-y-2",children:Array.from({length:3}).map((u,m)=>a.jsxs("div",{className:"space-y-1",children:[a.jsx("div",{className:"h-3 w-3/4 rounded bg-surface-sunken"}),a.jsx("div",{className:"h-2.5 w-1/2 rounded bg-surface-sunken"})]},m))}):r==="error"?a.jsx("p",{className:"text-xs text-fg-subtle",children:"Similarity search unavailable"}):a.jsx("ul",{className:"-mx-1 space-y-1",children:f.map(u=>{const m="block w-full rounded-md px-1 py-1 text-left hover:bg-surface-sunken",h=`Open message from ${u.fromName||"unknown sender"}: ${u.subject}`,w=a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[a.jsx("span",{className:"truncate text-xs font-medium text-fg",children:u.fromName}),a.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:u.timeLabel})]}),a.jsx("div",{className:"truncate text-xs text-fg-muted",children:u.subject}),a.jsx("span",{className:"mt-1 inline-block rounded-full bg-surface-sunken px-1.5 py-px text-2xs text-fg-subtle",children:gl[u.matched]})]});return a.jsx("li",{children:o?o({mailboxId:u.mailboxId,threadId:u.threadId,messageId:u.id,className:m,ariaLabel:h,children:w}):a.jsx("div",{className:m,children:w})},u.id)})})}),a.jsx(He,{label:"Coming soon",className:"border-b-0 opacity-70",children:a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-dashed border-line p-2",children:[a.jsx(We,{className:"mt-0.5 size-3.5 shrink-0 text-fg-subtle"}),a.jsxs("div",{children:[a.jsx("div",{className:"text-xs font-medium text-fg-muted",children:"Suggested actions"}),a.jsx("div",{className:"text-2xs text-fg-subtle",children:'"Create a filter for messages like this" — on-device model'})]})]}),a.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-dashed border-line p-2",children:[a.jsx(We,{className:"mt-0.5 size-3.5 shrink-0 text-fg-subtle"}),a.jsxs("div",{children:[a.jsx("div",{className:"text-xs font-medium text-fg-muted",children:"Thread summary"}),a.jsx("div",{className:"text-2xs text-fg-subtle",children:"One-paragraph digest — Bedrock"})]})]})]})})]})}const ms=e=>({shiftKey:e.shiftKey,metaKey:e.metaKey,ctrlKey:e.ctrlKey}),dn=e=>e.shiftKey||e.metaKey||e.ctrlKey,bl=e=>e.shiftKey?"range":e.metaKey||e.ctrlKey?"toggle":"open",xl=(e,t)=>!t&&e>0,vl=(e,t,s)=>{const n=e.indexOf(s);if(n===-1)return[];const r=t===void 0?-1:e.indexOf(t);if(r===-1)return[s];const o=Math.min(r,n),i=Math.max(r,n);return e.slice(o,i+1)},yl=(e,t,s,n)=>t!==void 0&&e.includes(t)?t:s!==void 0&&e.includes(s)?s:n,kl=(e,t)=>{const s=new Set(t),n=new Set;for(const r of e)s.has(r)&&n.add(r);return n},jl=(e,t,s)=>{if(e.length===0)return;const n=t===void 0?-1:e.indexOf(t);if(n===-1)return s>0?e[0]:e[e.length-1];const r=Math.min(Math.max(n+s,0),e.length-1);return e[r]},wl=e=>{const[t,s]=l.useState(()=>new Set(e?.initialSelectedIds)),[n,r]=l.useState(void 0),o=l.useCallback(u=>t.has(u),[t]),i=l.useCallback(u=>{r(u),s(m=>{const h=new Set(m);return h.has(u)?h.delete(u):h.add(u),h})},[]),c=l.useCallback(u=>{r(u),s(m=>{if(m.has(u))return m;const h=new Set(m);return h.add(u),h})},[]),d=l.useCallback(u=>{s(m=>{if(!m.has(u))return m;const h=new Set(m);return h.delete(u),h})},[]),b=l.useCallback(u=>{s(new Set(u))},[]),g=l.useCallback(()=>{r(void 0),s(new Set)},[]),x=l.useCallback(u=>{s(m=>u.every(w=>m.has(w))?new Set:new Set(u))},[]),p=l.useCallback(u=>{r(u)},[]),v=l.useCallback(u=>{s(m=>{if(m.size===0)return m;const h=kl(m,u);return h.size===m.size?m:h})},[]),f=l.useCallback((u,m,h)=>{const w=yl(u,n,h,m);s(y=>{const j=vl(u,w,m);if(j.length===0)return y;const T=new Set(y);for(const R of j)T.add(R);return T}),r(w)},[n]);return{selectedIds:t,selectedCount:t.size,hasSelection:t.size>0,isSelected:o,toggle:i,select:c,deselect:d,selectAll:b,clearSelection:g,toggleAll:x,selectRange:f,setAnchor:p,anchorId:n,intersectWith:v}};function Gf({hints:e=Ro,className:t}){return e.length===0?null:a.jsx("footer",{className:U("flex items-center gap-2 border-t border-line px-row-inset py-1 text-2xs text-fg-subtle",t),children:e.map(s=>a.jsx(Cl,{hint:s},s.label))})}function Cl({hint:e}){return a.jsxs("span",{className:"flex items-center gap-1",children:[e.keys.map(t=>a.jsx(Ko,{children:t},t)),a.jsx("span",{children:e.label})]})}const Na="outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset",Ta=({active:e,focused:t})=>U("relative flex h-8 w-full items-center gap-2 px-row-inset text-left",Na,e?"bg-accent-2-soft":t?"bg-surface-sunken":"hover:bg-surface-sunken",t&&!e&&"before:absolute before:inset-y-0 before:left-0 before:w-0.5 before:bg-accent-2"),Rs=({active:e,focused:t})=>U("relative flex w-full items-start gap-3 py-2 pl-5 pr-row-inset text-left transition-colors",Na,e?"bg-accent-2-soft":t?"bg-surface-sunken":"hover:bg-surface-sunken",t&&!e&&"before:absolute before:inset-y-0 before:left-0 before:w-0.5 before:bg-accent-2");function Ia({thread:e}){const t=!e.isRead;return a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"flex w-4 shrink-0 items-center justify-center",children:e.suspicious?a.jsx(Ze,{className:"size-3.5 text-danger"}):e.starred?a.jsx(Ye,{className:"size-3 fill-warning text-warning"}):t?a.jsx("span",{className:"size-1.5 rounded-full bg-accent"}):null}),a.jsx("span",{className:U("w-36 shrink-0 truncate text-xs",t?"font-semibold text-fg":"text-fg-muted"),children:e.fromName}),a.jsxs("span",{className:"min-w-0 flex-1 truncate text-xs",children:[a.jsx("span",{className:U(t?"font-medium text-fg":"text-fg-muted"),children:e.subject}),a.jsxs("span",{className:"text-fg-subtle",children:[" — ",e.snippet]})]}),e.hasAttachment&&a.jsx(Kt,{className:"size-3 shrink-0 text-fg-subtle",role:"img","aria-label":"Has an attachment"}),a.jsx("span",{className:"w-11 shrink-0 text-right text-2xs text-fg-subtle tabular-nums",children:e.timeLabel})]})}function un(e,t){const s=t?.trim();if(!s)return e;const n=e.toLowerCase(),r=s.toLowerCase(),o=[];let i=0,c=n.indexOf(r,i),d=0;for(;c!==-1;)c>i&&o.push(e.slice(i,c)),o.push(a.jsx("mark",{className:"bg-transparent font-semibold text-fg",children:e.slice(c,c+r.length)},d++)),i=c+r.length,c=n.indexOf(r,i);return i<e.length&&o.push(e.slice(i)),o}function Sl({thread:e,badge:t,highlightQuery:s}){const n=!e.isRead;return a.jsxs("span",{className:"min-w-0 flex-1",children:[a.jsxs("span",{className:"flex items-baseline justify-between gap-2",children:[a.jsxs("span",{className:U("flex min-w-0 items-center gap-1.5 truncate text-sm",n?"font-semibold text-fg":"font-medium text-fg-muted"),children:[e.trust==="vip"&&a.jsx("span",{className:"size-1.5 shrink-0 rounded-full bg-accent-2"}),a.jsx("span",{className:"truncate",children:e.fromName}),e.messageCount!=null&&e.messageCount>1&&a.jsx("span",{className:"shrink-0 text-2xs font-normal text-fg-subtle",children:e.messageCount})]}),a.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:e.timeLabel})]}),a.jsxs("span",{className:"flex items-center gap-1.5",children:[a.jsx("span",{className:U("truncate text-sm",n?"text-fg":"text-fg-muted"),children:un(e.subject,s)}),e.suspicious&&a.jsx(Ze,{className:"size-3.5 shrink-0 text-danger"}),e.starred&&a.jsx(Ye,{className:"size-3 shrink-0 fill-warning text-warning"}),e.hasAttachment&&a.jsx(Kt,{className:"size-3 shrink-0 text-fg-subtle",role:"img","aria-label":"Has an attachment"})]}),a.jsxs("span",{className:"flex items-center gap-1.5",children:[a.jsx("span",{className:"line-clamp-1 min-w-0 flex-1 text-xs text-fg-subtle",children:un(e.snippet,s)}),e.category&&e.category!=="personal"&&a.jsx(Ie,{tone:zn[e.category],className:"shrink-0",children:e.category}),e.labels?.map(r=>a.jsx(kr,{label:r,className:"max-w-20"},r.labelId)),t]})]})}function Nl({thread:e,selection:t}){if(!t)return a.jsx(ft,{name:e.fromName,email:e.fromEmail,size:"sm"});const{checked:s,alwaysVisible:n}=t;return a.jsxs("span",{className:"relative size-7 shrink-0",children:[a.jsx(ft,{name:e.fromName,email:e.fromEmail,size:"sm",className:U("absolute inset-0 transition-opacity sm:group-hover:opacity-0",(s||n)&&"opacity-0")}),a.jsx("span",{role:"button",tabIndex:-1,onClick:t.onToggle,onKeyDown:r=>{r.key!=="Enter"&&r.key!==" "||(r.preventDefault(),r.stopPropagation(),t.onToggle(r))},className:U("absolute inset-0 size-7 items-center justify-center rounded-full border transition-opacity",n?"flex":"hidden sm:flex",s?"bg-accent border-accent text-accent-fg opacity-100":n?"border-fg-subtle/40 bg-canvas opacity-100":"border-fg-subtle/40 bg-canvas opacity-0 group-hover:opacity-100"),"aria-label":s?"Deselect message":"Select message",children:s&&a.jsx(Dt,{className:"size-3"})})]})}function Ms({thread:e,selection:t,badge:s,highlightQuery:n}){const r=!e.isRead;return a.jsxs(a.Fragment,{children:[r&&a.jsx("span",{className:"absolute left-1.5 top-1/2 size-1.5 -translate-y-1/2 rounded-full bg-accent"}),a.jsx(Nl,{thread:e,selection:t}),a.jsx(Sl,{thread:e,badge:s,highlightQuery:n})]})}const Ea=e=>({...jr,[Mo]:"","data-message-id":e.id});function Vf({thread:e,active:t,focused:s,tabIndex:n,onClick:r}){return a.jsx("button",{type:"button",...Ea(e),tabIndex:n,onClick:r,className:Ta({active:t,focused:s}),children:a.jsx(Ia,{thread:e})})}function Wf({thread:e,active:t,focused:s,tabIndex:n,selection:r,onClick:o}){return a.jsx("button",{type:"button",...Ea(e),tabIndex:n,onClick:o,className:U("group",Rs({active:t,focused:s})),children:a.jsx(Ms,{thread:e,selection:r})})}let Ve;const Tl=5e3;function Ra(e){e.preventDefault(),$t()}function $t(){Ve!==void 0&&(clearTimeout(Ve),Ve=void 0,document.removeEventListener("contextmenu",Ra,!0),document.removeEventListener("pointerup",$t,!0))}function Il(){Ve===void 0?(document.addEventListener("contextmenu",Ra,!0),document.addEventListener("pointerup",$t,!0)):clearTimeout(Ve),Ve=setTimeout($t,Tl)}function El({onLongPress:e,isDisabled:t,delayMs:s=500,accessibilityDescription:n}){const{longPressProps:r}=rl({isDisabled:t,threshold:s,accessibilityDescription:n,onLongPress:e}),o=l.useCallback(i=>{i.pointerType!=="touch"&&i.pointerType!=="pen"||Il()},[]);return{longPressProps:xt(r,{onPointerDown:o})}}const ct="min-h-11 min-w-11 px-0";function Ma({hasThread:e,onReply:t,onReplyAll:s,onForward:n,isStarred:r,onToggleStar:o,onDelete:i,isRead:c,onToggleRead:d,moveSlot:b,overflowItems:g=[],onUnavailable:x,unavailableHint:p,className:v}){const f=(m,h)=>()=>{if(!e){x?.(m);return}h?.()},u=d?[{key:"toggle-read",label:c?"Mark as unread":"Mark as read",icon:c?a.jsx(Wo,{className:"size-4"}):a.jsx(Es,{className:"size-4"}),onSelect:f("toggleRead",d)}]:[];return a.jsxs("div",{className:U("relative",v),children:[a.jsxs("div",{className:"flex h-12 shrink-0 items-center gap-0.5 bg-canvas px-1",children:[t&&a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(Ca,{className:"size-5"}),onClick:f("reply",t),"aria-label":"Reply",title:"Reply",className:ct}),s&&a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(wa,{className:"size-5"}),onClick:f("replyAll",s),"aria-label":"Reply all",title:"Reply all",className:ct}),n&&a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(ja,{className:"size-5"}),onClick:f("forward",n),"aria-label":"Forward",title:"Forward",className:ct}),a.jsx("div",{className:"flex-1"}),o&&a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(Ye,{className:U("size-5",r&&"fill-warning text-warning")}),onClick:f("star",o),"aria-label":r?"Unstar":"Star","aria-pressed":r,title:r?"Unstar":"Star",className:ct}),b,i&&a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(Ft,{className:"size-5"}),onClick:f("delete",i),"aria-label":"Move to Trash",title:"Move to Trash",className:ct}),a.jsx(na,{triggerLabel:"More actions",items:[...u,...g]})]}),!e&&p&&a.jsx("p",{role:"status",className:"bg-surface-sunken px-3 py-1 text-2xs text-fg-subtle",children:p})]})}function Rl({open:e=!1,enabled:t=!0,onToggle:s,className:n}){return a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(_n,{className:"size-4"}),title:"Intelligence","aria-label":e?"Hide intelligence sidebar":"Show intelligence sidebar","aria-pressed":e,disabled:!t,onClick:s,className:U(e&&"bg-accent-2-soft text-accent-2",n)})}function Ml({hasThread:e,onUnavailable:t,unavailableHint:s,isStarred:n,showTriage:r=!0,onReply:o,onReplyAll:i,onForward:c,onDelete:d,onToggleStar:b,moveSlot:g,onMove:x,replyTitle:p="Reply (r)",replyAllTitle:v="Reply all (a)",forwardTitle:f="Forward (f)",deleteTitle:u="Move to Trash (#)",flagTitle:m="Star (s)",children:h,className:w}){const y=(j,T)=>()=>{if(!e||!T){t?.(j);return}T()};return a.jsxs("div",{className:"relative",children:[a.jsxs("header",{className:U("flex h-pane-header shrink-0 items-center gap-1 border-b border-line bg-surface px-3",w),children:[a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(Ca,{className:"size-4"}),title:p,"aria-label":"Reply",onClick:y("reply",o)}),a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(wa,{className:"size-4"}),title:v,"aria-label":"Reply all",onClick:y("replyAll",i)}),a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(ja,{className:"size-4"}),title:f,"aria-label":"Forward",onClick:y("forward",c)}),r&&a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"mx-1 h-4 w-px bg-line","aria-hidden":!0}),a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(Ft,{className:"size-4"}),title:u,"aria-label":"Move to Trash",onClick:y("delete",d)}),g??a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(ks,{className:"size-4"}),title:"Move to mailbox","aria-label":"Move to mailbox",onClick:y("move",x)}),a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(Ye,{className:U("size-4",n&&"fill-warning text-warning")}),title:m,"aria-label":"Star","aria-pressed":n,onClick:y("flag",b)})]}),a.jsx("div",{className:"flex-1"}),h]}),s&&a.jsx("p",{role:"status",className:"border-b border-line bg-surface-sunken px-3 py-1 text-2xs text-fg-subtle",children:s})]})}function Aa({message:e,onClick:t,isFocused:s,isUnread:n,trailing:r}){const o=a.jsxs(a.Fragment,{children:[a.jsx(On,{className:"size-3.5 shrink-0 text-fg-subtle"}),a.jsxs("div",{className:"relative shrink-0",children:[a.jsx(ft,{name:e.fromName,email:e.fromEmail,size:"md"}),n&&a.jsx("span",{className:"absolute -top-0.5 -right-0.5 size-2 rounded-full border border-canvas bg-accent"})]}),a.jsx("span",{className:U("w-36 shrink-0 truncate text-sm",n?"font-semibold text-fg":"font-medium text-fg-muted"),children:e.fromName}),a.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-fg-subtle",children:e.snippet}),r??a.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:e.dateLabel})]}),i=U("group flex h-section-row w-full items-center gap-3 border-b border-line px-2 text-left transition-colors hover:bg-surface-sunken lg:px-4",s&&"bg-surface-sunken ring-1 ring-inset ring-accent/30");return t?a.jsx("div",{role:"button",tabIndex:0,"aria-expanded":!1,onClick:t,onKeyDown:c=>{wr(c)&&(c.preventDefault(),t())},className:U(i,"cursor-pointer"),children:o}):a.jsx("div",{className:i,children:o})}function $a({message:e,warning:t,onHeaderClick:s,isFocused:n,senderBadge:r,trailing:o,to:i,indicators:c,actionMenu:d,actionBar:b,body:g}){const x=a.jsxs(a.Fragment,{children:[a.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[a.jsxs("span",{className:"text-sm font-semibold text-fg",children:[e.fromName,r]}),o??a.jsx("span",{className:"text-2xs text-fg-subtle",children:e.dateLabel})]}),a.jsx("div",{className:"text-xs text-fg-subtle",children:e.fromEmail}),i!==null&&a.jsx("div",{className:"text-xs text-fg-subtle",children:i??a.jsxs(a.Fragment,{children:["to ",e.toLabel]})})]});return a.jsxs("div",{className:"px-2 py-3 lg:px-4",children:[a.jsxs("div",{className:U("-mx-2 -my-1 flex items-start gap-3 rounded-sm px-2 py-1",n&&"ring-1 ring-inset ring-accent/30"),children:[s?a.jsx("button",{type:"button",onClick:s,"aria-expanded":!0,"aria-label":"Collapse message",className:"mt-1 shrink-0 text-fg-subtle transition-colors hover:text-fg",children:a.jsx(ut,{className:"size-3.5"})}):a.jsx(ut,{className:"mt-1 size-3.5 shrink-0 text-fg-subtle"}),a.jsx(ft,{name:e.fromName,email:e.fromEmail,size:"md"}),a.jsxs("div",{className:"min-w-0 flex-1",children:[s?a.jsx("button",{type:"button",onClick:s,className:"w-full text-left",children:x}):x,c]}),d&&a.jsx("div",{className:"shrink-0",children:d})]}),t&&a.jsxs("div",{className:"mt-3 flex items-start gap-3 rounded-md bg-danger-soft p-3",children:[a.jsx(Ze,{className:"mt-0.5 size-4 shrink-0 text-danger"}),a.jsxs("div",{className:"text-sm text-fg",children:[a.jsx("span",{className:"font-semibold text-danger",children:"Caution: "}),t," ",a.jsx("button",{type:"button",className:"text-accent underline",children:"Why?"})]})]}),b&&a.jsx("div",{className:"mt-3 -mx-2 lg:-mx-4",children:b}),a.jsx(Yo,{children:g??a.jsx(Jo,{className:"mt-3",html:e.bodyHtml,category:e.framed?"newsletter":"personal",allowImages:!0})})]})}function Al({thread:e,onBack:t,intelligence:s,intelligenceOpen:n,onToggleIntelligence:r,actions:o,children:i,touchHandlers:c}){const[d,b]=l.useState(!1),g=r!==void 0,x=g?n??!1:d,p=!!s||g,v=()=>{if(g){r?.();return}b(u=>!u)},f=()=>{if(g){x&&r?.();return}b(!1)};return a.jsxs("article",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line bg-surface px-row-inset",children:[a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(Un,{className:"size-4"}),onClick:t,"aria-label":"Back to messages",className:"-ml-1 shrink-0"}),a.jsx("h2",{className:"min-w-0 flex-1 truncate text-sm font-semibold text-fg",children:e.subject}),p&&a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(_n,{className:"size-4"}),onClick:v,"aria-label":x?"Hide intelligence panel":"Show intelligence panel","aria-pressed":x,title:"Intelligence",className:U("shrink-0",x&&"bg-accent-2-soft text-accent-2")})]}),a.jsx("div",{className:"flex-1 overflow-y-auto",style:c?{touchAction:"pan-y"}:void 0,...c,children:i??[...e.messages].reverse().map(u=>{const m=h=>h?()=>h(u.id):void 0;return u.expanded?a.jsx($a,{message:u,warning:e.warning,onHeaderClick:m(o?.onToggleExpand),actionBar:a.jsx(Ma,{hasThread:!0,onReply:m(o?.onReply),onReplyAll:m(o?.onReplyAll),onForward:m(o?.onForward),onToggleStar:m(o?.onToggleStar),onDelete:m(o?.onDelete),onToggleRead:m(o?.onToggleRead),moveSlot:o?.moveSlot?.(u.id)})},u.id):a.jsx(Aa,{message:u,onClick:m(o?.onToggleExpand)},u.id)})}),s&&!g&&a.jsx(Cr,{open:x,onClose:f,title:"Intelligence",anchor:"right",className:"p-0",children:a.jsx(Sa,{data:s,onClose:f,className:"h-full w-full border-l-0"})})]})}function $l({state:e,onRetry:t}){return a.jsxs("div",{role:"alert","data-testid":"attachment-error",className:"flex items-start gap-2 border-t border-danger/30 bg-danger-soft px-2 py-2 text-xs",children:[a.jsx(Sr,{className:"mt-0.5 size-3.5 shrink-0 text-danger","aria-hidden":!0}),a.jsxs("div",{className:"min-w-0 flex-1",children:[a.jsx("p",{className:"font-medium text-danger",children:e.title}),a.jsx("p",{className:"mt-0.5 text-fg-muted",children:e.detail})]}),a.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[a.jsx("button",{type:"button",onClick:t,className:"font-medium text-accent hover:underline",children:"Try again"}),e.reportUrl&&a.jsx("a",{href:e.reportUrl,target:"_blank",rel:"noreferrer",className:"font-medium text-accent hover:underline",children:"Report this"})]})]})}function Ll({attachments:e,onDownload:t,hasUnlistedAttachment:s=!1,className:n}){return e.length===0&&!s?null:a.jsxs("section",{"aria-label":"Attachments","data-testid":"attachment-list",className:U("space-y-1.5",n),children:[a.jsxs("h3",{className:"flex items-center gap-1.5 text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:[a.jsx(Kt,{className:"size-3","aria-hidden":!0}),e.length===0?"Attachment":e.length===1?"1 attachment":`${e.length} attachments`]}),e.length>0&&a.jsx("ul",{className:"overflow-hidden rounded-sm border border-line bg-surface",children:e.map(r=>{const o=r.download.status==="downloading";return a.jsxs("li",{className:"border-t border-line first:border-t-0",children:[a.jsxs("button",{type:"button",onClick:()=>t(r.attachmentId),disabled:o,"data-testid":"attachment-download","aria-label":`Download ${r.filename}`,className:"flex w-full items-center gap-2 px-2 py-2 text-left transition-colors hover:bg-surface-sunken disabled:cursor-progress disabled:opacity-60",children:[a.jsxs("span",{className:"min-w-0 flex-1",children:[a.jsx("bdi",{className:"block truncate text-sm text-fg",title:r.filename,children:r.filename}),a.jsxs("span",{className:"block truncate text-2xs text-fg-subtle",children:[r.typeLabel," ·"," ",qo(r.sizeOctets)]})]}),o?a.jsx(Bn,{className:"size-4 shrink-0 animate-spin text-fg-subtle","aria-hidden":!0}):a.jsx(li,{className:"size-4 shrink-0 text-fg-subtle","aria-hidden":!0})]}),r.download.status==="failed"&&a.jsx($l,{state:r.download,onRetry:()=>t(r.attachmentId)})]},r.attachmentId)})}),s&&a.jsx("p",{role:"alert","data-testid":"attachment-unlisted",className:"rounded-sm border border-line bg-surface px-2 py-2 text-xs text-fg-muted",children:"The mail server says this message carries an attachment, but none of its parts describe one. Re-sync the account from Settings; if the attachment still does not appear, the message is worth reporting."})]})}function Pl({label:e,onUndo:t,undoLabel:s="Undo",filtersHref:n,className:r}){return a.jsxs(Ie,{tone:"accent",className:U("py-1 text-xs",r),children:[a.jsx(Qo,{className:"size-3.5 shrink-0","aria-hidden":!0}),a.jsx("span",{children:e}),t&&a.jsx("button",{type:"button",onClick:o=>{o.stopPropagation(),t()},className:"font-semibold underline decoration-dotted underline-offset-2 hover:decoration-solid",children:s}),n&&a.jsx("a",{href:n,onClick:o=>{o.stopPropagation()},className:"font-semibold underline decoration-dotted underline-offset-2 hover:decoration-solid",children:"Manage filter"})]})}const Dl="peer relative size-5 shrink-0 cursor-pointer appearance-none rounded-md border border-line-strong bg-surface outline-none transition-colors checked:border-positive checked:bg-positive indeterminate:border-positive indeterminate:bg-positive focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-surface",fn="pointer-events-none absolute inset-0 m-auto size-3.5 text-accent-fg";function Fl({label:e,description:t,indeterminate:s=!1,checked:n,onChange:r,className:o,...i}){const c=l.useRef(null);l.useEffect(()=>{c.current&&(c.current.indeterminate=s)},[s]);const d=a.jsxs("span",{className:"relative inline-flex",children:[a.jsx("input",{ref:c,type:"checkbox",checked:n,onChange:r,className:Dl,...i}),a.jsx(Dt,{className:U(fn,"hidden peer-checked:block"),"aria-hidden":!0}),a.jsx(ll,{className:U(fn,"hidden peer-indeterminate:block"),"aria-hidden":!0})]});return e===void 0&&t===void 0?a.jsx("span",{className:o,children:d}):a.jsxs("label",{className:U("flex min-h-11 cursor-pointer items-center gap-3 text-left",o),children:[d,a.jsxs("span",{className:"flex min-w-0 flex-col",children:[e!==void 0&&a.jsx("span",{className:"text-sm text-fg",children:e}),t!==void 0&&a.jsx("span",{className:"text-xs text-fg-subtle",children:t})]})]})}function Ol(e){return{id:e.id,fromName:e.sender,fromEmail:e.senderEmail??e.sender,subject:e.subject,snippet:e.snippet,timeLabel:e.date,isRead:!e.unread,starred:e.flagged,...e.mailboxId?{mailboxId:e.mailboxId}:{}}}function zl({result:e,onClick:t,query:s,showFolder:n=!0}){const r=n&&e.folder?Nr(e.folder):void 0;return a.jsx("button",{type:"button",onClick:t,className:U("group",Rs({}),"border-b border-line"),children:a.jsx(Ms,{thread:Ol(e),highlightQuery:s,badge:a.jsxs(a.Fragment,{children:[r&&a.jsx(Ie,{tone:"neutral",className:"shrink-0",children:r}),e.category&&a.jsx(Ie,{tone:e.category.tone??"neutral",className:"shrink-0",children:e.category.label}),e.matchedChunkLabel&&a.jsx(Ie,{tone:"neutral",className:"shrink-0",children:`matched: ${e.matchedChunkLabel}`}),e.score!=null&&a.jsx("span",{className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:e.score.toFixed(2)})]})})})}const _l=e=>e===1?"result":"results";function Ul({count:e,onScopeToSpam:t}){return a.jsx(Kn,{tone:"info",variant:"soft",className:"items-center justify-between gap-3 rounded-none border-b border-line",children:a.jsxs("div",{className:"flex items-center justify-between gap-3",children:[a.jsxs("p",{className:"min-w-0 text-xs text-fg-muted",children:[a.jsx("span",{className:"font-semibold text-fg tabular-nums",children:e})," ",`${_l(e)} from Spam`]}),a.jsx(V,{variant:"ghost",size:"sm",onClick:t,className:"shrink-0 text-accent",children:"Go to Spam"})]})})}const mn=6,Bl={kind:"global"},Kl=e=>e.kind==="folder"&&e.role==="junk",ql=e=>e.folder?.role==="junk";function La(e){const t=[],s=[];for(const n of e)ql(n)?s.push(n):t.push(n);return{kept:t,spam:s}}function Pa({onClick:e,blockedReason:t}){const s=l.useId(),[n,r]=l.useState(!1);return a.jsxs("div",{className:"border-b border-line px-row-inset py-1.5",children:[a.jsxs("button",{type:"button",onClick:()=>{if(t){r(!0);return}e()},"aria-describedby":t?s:void 0,className:U("flex w-full items-center gap-1.5 rounded-md px-2 py-1.5 text-left text-xs font-medium transition-colors",t?"text-fg-subtle opacity-55":"text-accent hover:bg-surface-sunken"),children:[a.jsx(Tr,{className:"size-3.5 shrink-0","aria-hidden":"true"}),a.jsx("span",{children:"Make this a filter"})]}),t&&a.jsx(Ir,{id:s,reason:t,nudged:n,className:"px-2 pt-1 text-2xs text-warning"})]})}function Ql({section:e,query:t,onSelectResult:s,showFolder:n}){const[r,o]=l.useState(e.initialCollapsed??!1),[i,c]=l.useState(!1),d=e.results.length>mn,g=!i&&d?e.results.slice(0,mn):e.results,x=e.results.length-g.length;return a.jsxs("div",{children:[a.jsxs("button",{type:"button","aria-expanded":!r,onClick:()=>o(p=>!p),className:"sticky top-0 z-10 flex h-section-row w-full items-center gap-1.5 border-b border-line bg-surface-sunken px-row-inset text-left transition-colors hover:bg-surface",children:[a.jsx("span",{className:"flex-1 text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e.label}),a.jsx("span",{className:"text-2xs text-fg-subtle tabular-nums",children:e.results.length}),a.jsx(ut,{className:U("size-3 shrink-0 text-fg-subtle transition-transform duration-200",r?"rotate-0":"rotate-180")})]}),!r&&a.jsxs(a.Fragment,{children:[g.map(p=>a.jsx(zl,{result:p,query:t,showFolder:n,onClick:s?()=>s(p):void 0},p.id)),d&&a.jsxs("button",{type:"button",onClick:()=>c(p=>!p),className:"flex w-full items-center justify-center border-b border-line px-row-inset py-1.5 text-2xs font-medium text-accent transition-colors hover:bg-surface",children:[i?"Show less":`Show ${x} more`,!i&&a.jsx(ut,{className:"ml-1 size-3"})]})]})]})}function Da({value:e,recentSearches:t,onPickRecent:s,sections:n,loading:r,onSelectResult:o,tokens:i,scope:c=Bl,makeFilter:d}){if(!(e.trim().length>0))return t&&t.length>0?a.jsxs("div",{className:"flex flex-col",children:[a.jsx("h3",{className:"px-row-inset pb-1 pt-3 text-2xs font-semibold uppercase tracking-wide text-fg-subtle",children:"Recent searches"}),t.map(j=>a.jsxs("button",{type:"button",onClick:()=>s?.(j),className:"flex w-full items-center gap-2.5 border-b border-line px-row-inset py-2.5 text-left transition-colors hover:bg-surface-sunken",children:[a.jsx(vi,{className:"size-4 shrink-0 text-fg-subtle"}),a.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-fg-muted",children:j})]},j))]}):a.jsx("p",{className:"px-row-inset py-6 text-center text-sm text-fg-subtle",children:"Search across your mail by sender, subject or words in the message."});const g=i&&i.length>0&&a.jsx(Er,{tokens:i}),x=d&&a.jsx(Pa,{...d});if(r)return a.jsxs("div",{className:"flex flex-col",children:[x,g,a.jsx("div",{className:"flex flex-col gap-3 px-row-inset py-4",children:[0,1,2,3].map(j=>a.jsxs("div",{className:"flex flex-col gap-1.5",children:[a.jsx("div",{className:"h-3 w-1/3 animate-pulse rounded bg-surface-sunken"}),a.jsx("div",{className:"h-3 w-2/3 animate-pulse rounded bg-surface-sunken"}),a.jsx("div",{className:"h-2.5 w-1/2 animate-pulse rounded bg-surface-sunken"})]},j))})]});const p=c.kind==="global",v=Kl(c)||c.kind==="collection",f=p||c.kind==="collection",u=(n??[]).map(j=>{if(v)return{section:j,spam:[]};const{kept:T,spam:R}=La(j.results);return{section:{...j,results:T},spam:R}}),m=u.map(j=>j.section),h=u.reduce((j,T)=>j+T.spam.length,0),w=c.kind==="global"&&h>0&&c.onScopeToSpam!==void 0?a.jsx(Ul,{count:h,onScopeToSpam:c.onScopeToSpam}):void 0;return m.some(j=>j.results.length>0)?a.jsxs("div",{className:"flex flex-col",children:[x,g,w,m.filter(j=>j.results.length>0).map(j=>a.jsx(Ql,{section:j,query:e,showFolder:f,onSelectResult:o},j.id))]}):a.jsxs("div",{className:"flex flex-col",children:[x,g,w,a.jsxs("div",{className:"px-row-inset py-10 text-center",children:[a.jsxs("p",{className:"text-sm font-medium text-fg",children:["No matches for “",e,"”"]}),a.jsx("p",{className:"mt-1 text-xs text-fg-subtle",children:"Try a different word, or adjust the filters above."})]})]})}function Hl({value:e,onChange:t,onClear:s,onCancel:n,filter:r,recentSearches:o,onPickRecent:i,sections:c,loading:d,onSelectResult:b,tokens:g,chips:x,onRemoveChip:p,scope:v,makeFilter:f,suggest:u,suggestList:m}){const h=a.jsx(Da,{value:e,recentSearches:o,onPickRecent:i,sections:c,loading:d,onSelectResult:b,tokens:g,scope:v,makeFilter:f});return a.jsxs("article",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line bg-surface px-row-inset",children:[a.jsx("div",{className:"min-w-0 flex-1",children:a.jsx(sa,{value:e,onChange:t,onClear:s,chips:x,onRemoveChip:p,globalFocusKey:!1,showClearButton:!1,suggest:u})}),a.jsx(V,{variant:"ghost",size:"sm",icon:a.jsx(Pt,{className:"size-4"}),onClick:n,"aria-label":"Clear and close search",className:"-mr-1 shrink-0"})]}),m,r&&e.trim().length===0?a.jsx(Rr,{children:a.jsx(Mr,{...r,children:h})}):a.jsx("div",{className:"flex-1 overflow-y-auto",children:h})]})}const pn=e=>e.toLocaleString();function hn({selectAll:e,selecting:t,className:s}){return a.jsx(Fl,{className:s,checked:e.checked,indeterminate:e.indeterminate,onChange:e.onChange,label:a.jsx("span",{className:"font-medium text-accent",children:e.checked&&t?"Deselect all":"Select all"})})}function Gl({title:e,count:t,onCancel:s,onDelete:n,onMove:r,onOrganize:o,onJunk:i,onMarkRead:c,navSlot:d,titleMeta:b,searchSlot:g,searchField:x,idleSlot:p,overflowSlot:v,isBusy:f=!1,isCounting:u=!1,selectAll:m,statusLabel:h,progress:w,notice:y}){const j=t>0||u,T=m?.checked?`All ${pn(t)} loaded selected`:`${pn(t)} ${t===1?"message":"messages"} selected`,R=[];return i&&!f&&!u&&R.push({key:"junk",label:"Junk",icon:a.jsx(Ze,{className:"size-4"}),onSelect:i}),c&&!f&&!u&&R.push({key:"mark-read",label:"Mark read",icon:a.jsx(Es,{className:"size-4"}),onSelect:c}),a.jsxs("header",{"data-selection-bar":"",className:"flex shrink-0 flex-col border-b border-line bg-surface-sunken",children:[a.jsxs("div",{"data-selection-bar-row":"actions",className:"flex h-pane-header items-center gap-1 px-row-inset",children:[j?a.jsx(V,{variant:"ghost",size:"touch",icon:a.jsx(Un,{className:"size-5"}),onClick:s,"aria-label":"Cancel selection",className:"-ml-2 shrink-0"}):d,m&&a.jsx(hn,{selectAll:m,selecting:j,className:"hidden shrink-0 pr-2 md:flex"}),j?a.jsx("span",{"data-selection-count":"",className:"min-w-0 flex-1 truncate px-1 text-sm font-medium text-fg",role:"status","aria-live":"polite",children:h??T}):x?a.jsx("div",{className:"flex min-w-0 flex-1 items-center gap-1",children:x}):a.jsxs(a.Fragment,{children:[a.jsx("h1",{className:"min-w-0 flex-1 truncate px-1 text-sm font-semibold text-fg",children:e}),b,g]}),j&&!u&&a.jsxs(a.Fragment,{children:[a.jsx(V,{variant:"ghost",size:"touch",icon:f?a.jsx(Bn,{className:"size-5 animate-spin"}):a.jsx(Ft,{className:"size-5 text-danger"}),onClick:f?void 0:n,"aria-label":"Move selected messages to Trash","aria-busy":f||void 0,className:"shrink-0"}),!f&&r&&a.jsx(V,{variant:"ghost",size:"touch",icon:a.jsx(ks,{className:"size-5"}),onClick:r,"aria-label":"Move selected messages",className:"shrink-0"}),!f&&o&&a.jsx(V,{variant:"ghost",size:"touch",icon:a.jsx(We,{className:"size-5"}),onClick:o,"aria-label":"Organize selected messages",className:"shrink-0"})]}),j&&a.jsx(na,{triggerLabel:"More actions",items:R,className:"shrink-0",children:!f&&!u&&v})]}),!j&&p,j&&m&&a.jsx("div",{"data-selection-bar-row":"select-all",className:"px-row-inset pb-2 md:hidden",children:a.jsx(hn,{selectAll:m,selecting:j,className:"w-full"})}),w&&a.jsx("div",{className:"px-row-inset pb-2",children:a.jsx(Ar,{value:w.value,max:w.max,tone:w.tone})}),y&&a.jsx(Kn,{"data-selection-notice":"",tone:y.tone,variant:"soft",role:"status","aria-live":"polite",className:"mx-row-inset mb-2",children:a.jsxs("div",{className:"flex items-center justify-between gap-2",children:[y.text&&a.jsx("span",{children:y.text}),y.action&&a.jsx(V,{variant:"ghost",size:"md",onClick:y.action.onClick,className:"-my-1 min-h-11 shrink-0",children:y.action.label})]})})]})}const As=[{id:"all",label:"All",tone:"neutral"},{id:"personal",label:"Personal",tone:"accent"},{id:"uncategorized",label:"Unclassified",tone:"neutral"},{id:"transactional",label:"Transactional",tone:"positive"},{id:"newsletter",label:"Newsletter",tone:"neutral"},{id:"marketing",label:"Marketing",tone:"warning"},{id:"social",label:"Social",tone:"warning"},{id:"automated",label:"Automated",tone:"neutral"}],Fa={id:"unread",label:"Unread"},Vl={id:"flagged",label:"Starred"},Oa={id:"attachment",label:"Has attachment"};function Wl(e){if(!(e.length<=1))return e.map(t=>({id:t.id,label:t.label,count:t.count,active:t.active}))}function Yf(e=[]){return{categories:[...As],filters:$r,sources:Wl(e)}}function Jf(){return{categories:[...As],filters:[Fa,Vl,Oa]}}function Xf(){return{categories:[...As],filters:[Fa,Oa]}}function Yl(e,t){return e.endsWith(t)?e.length===t.length||e[e.length-t.length-1]===".":!1}function Jl(e,t){const s=e.length-t.length-2,n=e.lastIndexOf(".",s);return n===-1?e:e.slice(n+1)}function Xl(e,t,s){if(s.validHosts!==null){const r=s.validHosts;for(const o of r)if(Yl(t,o))return o}let n=0;if(t.startsWith("."))for(;n<t.length&&t[n]===".";)n+=1;return e.length===t.length-n?null:Jl(t,e)}const rs=/[\t\n\r]/g;let ps=!1;function gn(e){return e>=97&&e<=122||e>=48&&e<=57||e>127||e>=65&&e<=90||e===45||e===95}function bn(e,t,s){const n=s-t,r=e.charCodeAt(t)|32;if(n===2)return r===119&&(e.charCodeAt(t+1)|32)===115?1:0;if(n===3){const o=e.charCodeAt(t+1)|32,i=e.charCodeAt(t+2)|32;return r===119&&o===115&&i===115||r===102&&o===116&&i===112?1:0}else if(n===4){const o=e.charCodeAt(t+1)|32,i=e.charCodeAt(t+2)|32,c=e.charCodeAt(t+3)|32;return r===104&&o===116&&i===116&&c===112?1:r===102&&o===105&&i===108&&c===101?2:0}else if(n===5)return r===104&&(e.charCodeAt(t+1)|32)===116&&(e.charCodeAt(t+2)|32)===116&&(e.charCodeAt(t+3)|32)===112&&(e.charCodeAt(t+4)|32)===115?1:0;return 0}function dt(e,t,s=!1){let n=0,r=e.length,o=!1,i=!1;if(ps=!1,!t){if(e.startsWith("data:"))return null;for(;n<e.length&&e.charCodeAt(n)<=32;)n+=1;for(;r>n+1&&e.charCodeAt(r-1)<=32;)r-=1;if(e.charCodeAt(n)===47&&e.charCodeAt(n+1)===47)n+=2;else{const m=e.indexOf(":/",n);if(m!==-1){const h=bn(e,n,m);if(h===1)for(i=!0,n=m+2;e.charCodeAt(n)===47||e.charCodeAt(n)===92;)n+=1;else if(h===2){i=!0,n=m+1;let w=0;for(;(e.charCodeAt(n)===47||e.charCodeAt(n)===92)&&w<2;)n+=1,w+=1;if(w<2)return null}else{for(let w=n;w<m;w+=1){const y=e.charCodeAt(w)|32;if(!(y>=97&&y<=122||y>=48&&y<=57||y===46||y===45||y===43)){const j=e.charCodeAt(w);return j===9||j===10||j===13?dt(e.replace(rs,""),t,s):null}}if(e.charCodeAt(m+2)===47)n=m+3;else return null}}else if(e.charCodeAt(n)!==91){let h=-1;for(let w=n;w<r;w+=1){const y=e.charCodeAt(w);if(y===9||y===10||y===13)return dt(e.replace(rs,""),t,s);if(y===58){h=w;break}if(y===47||y===92||y===63||y===35)break}if(h!==-1){let w=!1;for(let y=h+1;y<r;y+=1){const j=e.charCodeAt(y);if(j===47||j===92||j===63||j===35)break;if(j===64){w=!0;break}}if(!w){let y=!0,j=h+1;for(;j<r;j+=1){const T=e.charCodeAt(j);if(T===47||T===92||T===63||T===35)break;if(T<48||T>57){y=!1;break}}if(j===h+1&&(y=!1),!y){const T=bn(e,n,h);if(T===0){let R=!1;for(let D=h+1;D<r;D+=1){const E=e.charCodeAt(D);if(E===47||E===92||E===63||E===35)break;if(E===58){R=!0;break}}if(!R)return null}else if(i=!0,n=h+1,T===2){let R=0;for(;(e.charCodeAt(n)===47||e.charCodeAt(n)===92)&&R<2;)n+=1,R+=1;if(R<2)return null}else for(;e.charCodeAt(n)===47||e.charCodeAt(n)===92;)n+=1}}}}}let d=-1,b=-1,g=-1,x=-1,p=!1,v=s,f=n-1,u=-1;if(s&&n<r){const m=e.charCodeAt(n);(!(gn(m)||m===46||m===95)||m===45)&&(v=!1)}for(let m=n;m<r;m+=1){const h=e.charCodeAt(m);if(h<64)if(h===47||h===35||h===63){r=m;break}else h===58?(x===-1&&(x=m),g=m):h===9||h===10||h===13?p=!0:s&&(h===46?((m-f>64||u===46||u===45)&&(v=!1),f=m):(h<48||h>57)&&(h!==45||u===46)&&(v=!1));else if(i&&h===92){r=m;break}else h===64?(d=m,x=-1):h===93?b=m:h>=65&&h<=90?o=!0:s&&!gn(h)&&(v=!1);s&&(u=h)}if(p)return dt(e.replace(rs,""),t,s);if(d!==-1&&d>=n&&d<r&&(n=d+1),e.charCodeAt(n)===91)return b!==-1?e.slice(n+1,b).toLowerCase():null;if(g!==-1&&g>n&&g<r&&x===g&&(r=g),n>=r)return null;s&&v&&d===-1&&g===-1&&b===-1&&e.charCodeAt(r-1)!==46&&r-n<=255&&r-f-1<=63&&u!==45&&(ps=!0)}for(;r>n+1&&e.charCodeAt(r-1)===46;)r-=1;const c=n!==0||r!==e.length?e.slice(n,r):e;return o?c.toLowerCase():c}function Zl(e){if(e.length<7||e.length>15)return!1;let t=0;for(let s=0;s<e.length;s+=1){const n=e.charCodeAt(s);if(n===46)t+=1;else if(n<48||n>57)return!1}return t===3&&e.charCodeAt(0)!==46&&e.charCodeAt(e.length-1)!==46}function ec(e){if(e.length<3)return!1;let t=e.startsWith("[")?1:0,s=e.length;if(e[s-1]==="]"&&(s-=1),s-t>39)return!1;let n=!1;for(;t<s;t+=1){const r=e.charCodeAt(t);if(r===58)n=!0;else if(!(r>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=70))return!1}return n}function tc(e){return ec(e)||Zl(e)}function xn(e){return e>=97&&e<=122||e>=48&&e<=57||e>127}function vn(e){if(e.length>255||e.length===0||!xn(e.charCodeAt(0))&&e.charCodeAt(0)!==46&&e.charCodeAt(0)!==95)return!1;let t=-1,s=-1;const n=e.length;for(let r=0;r<n;r+=1){const o=e.charCodeAt(r);if(o===46){if(r-t>64||s===46||s===45)return!1;t=r}else if(!(xn(o)||o===45||o===95)||o===45&&s===46)return!1;s=o}return n-t-1<=63&&s!==45}function sc({allowIcannDomains:e=!0,allowPrivateDomains:t=!1,detectIp:s=!0,detectSpecialUse:n=!1,extractHostname:r=!0,mixedInputs:o=!0,validHosts:i=null,validateHostname:c=!0}){return{allowIcannDomains:e,allowPrivateDomains:t,detectIp:s,detectSpecialUse:n,extractHostname:r,mixedInputs:o,validHosts:i,validateHostname:c}}const nc=sc({});function ac(e){return nc}function rc(){return{domain:null,domainWithoutSuffix:null,hostname:null,isIcann:null,isIp:null,isPrivate:null,isSpecialUse:null,publicSuffix:null,subdomain:null}}function oc(e){e.domain=null,e.domainWithoutSuffix=null,e.hostname=null,e.isIcann=null,e.isIp=null,e.isPrivate=null,e.isSpecialUse=null,e.publicSuffix=null,e.subdomain=null}function ic(e,t,s,n,r){const o=ac();if(typeof e!="string")return r;let i=!1;return o.extractHostname?o.mixedInputs?(i=vn(e),r.hostname=dt(e,i,o.validateHostname)):r.hostname=dt(e,!1,o.validateHostname):r.hostname=e,o.detectIp&&r.hostname!==null&&(r.isIp=tc(r.hostname),r.isIp)?r:o.validateHostname&&o.extractHostname&&r.hostname!==null&&!(i&&r.hostname===e)&&!ps&&!vn(r.hostname)?(r.hostname=null,r):(r.hostname===null||(s(r.hostname,o,r),r.publicSuffix===null)||(r.domain=Xl(r.publicSuffix,r.hostname,o)),r)}const yn=rc();function lc(e,t){return oc(yn),ic(e,3,Lr,t,yn).domain}const qt=e=>{const t=new Set,s=[];for(const n of e){const r=n.trim();if(r==="")continue;const o=r.toLowerCase();t.has(o)||(t.add(o),s.push(r))}return s},cc=e=>{const t=e.lastIndexOf("@");return t>=0?e.slice(t+1):e},za=e=>lc(cc(e.trim())),dc=e=>{const t=qt(e);if(t.length<2)return null;let s=null;for(const n of t){const r=za(n);if(r===null)return null;if(s===null)s=r;else if(s!==r)return null}return s},Qt=e=>{const t=dc(e);return t!==null?[{field:"FromDomain",value:t}]:qt(e).map(s=>({field:"From",value:s}))},uc=e=>{const t=new Map;for(const r of e){const o=r.normalizedEmail.trim().toLowerCase();if(o==="")continue;const i=t.get(o);i?i.count+=1:t.set(o,{sender:r,count:1})}let s,n=0;for(const{sender:r,count:o}of t.values())o<=n||(s=r,n=o);return s},_a=e=>e.displayName?.trim()||e.normalizedEmail,fc=/^\s*(?:(?:re|aw|fwd?|vs|sv|antw|res|enc|tr)\s*(?:\[\d+\])?\s*:|\[[^\]]{1,32}\])\s*/i,mc=e=>{let t=e.replace(/\s+/g," ").trim();for(;;){const s=t.replace(fc,"");if(s===t)return t.trim();t=s}},pc=new Set(["a","an","and","are","as","at","be","by","for","from","has","have","in","is","it","me","my","new","of","on","or","our","the","this","to","was","we","with","you","your"]),hc=3,os=e=>e.split(" ").filter(t=>t!==""),kn=e=>e.length===0||e.join(" ").length<hc?!1:e.some(t=>!pc.has(t.toLowerCase())),gc=(e,t)=>e.findIndex((s,n)=>t.every((r,o)=>e[n+o]?.toLowerCase()===r.toLowerCase())),bc=e=>{const t=e.map(mc).filter(o=>o!=="");if(t.length===0)return;const[s,...n]=t;if(n.length===0)return kn(os(s))?s:void 0;const r=os(s);for(let o=r.length;o>0;o-=1)for(let i=0;i+o<=r.length;i+=1){const c=r.slice(i,i+o);if(kn(c)&&n.every(d=>gc(os(d),c)>=0))return c.join(" ")}},xc=(e,t)=>{const s=Qt(e);if(qt(e).length===1||s.length===1&&s[0].field==="FromDomain")return s;const n=bc(t);return n!==void 0?[{field:"Subject",value:n}]:s},vc=({match:e,sender:t,folder:s})=>{const n=e??t;return n?s?`${n} → ${s}`:e?`Mail matching ${e}`:`Mail from ${n}`:s?`Mail to ${s}`:""},yc=e=>e.clauses.length>0,kc=e=>({scopedOutFolder:e.scopedOut?.label,droppedFacets:e.droppedFacets.map(t=>t.label),droppedSemantic:e.droppedSemantic}),jc=({orderedIds:e,isDesktop:t,initialFocusedId:s,initialSelectedIds:n,onExitSelection:r})=>{const[o,i]=l.useState(s),[c,d]=l.useState(),b=l.useCallback(C=>{d(M=>M===C?M:void 0),i(C)},[]),g=wl({initialSelectedIds:n}),{selectedCount:x,toggle:p,clearSelection:v,selectRange:f,setAnchor:u,selectAll:m}=g,h=xl(x,t),w=l.useRef(null),y=l.useRef(!1),j=l.useCallback(()=>{r?.(),v()},[v,r]),T=l.useMemo(()=>o?e.indexOf(o):-1,[e,o]),R=l.useCallback(C=>{if(C<0||C>=e.length)return;const M=e[C];if(h){p(M);return}w.current=M,y.current=!1,d(M),i(M)},[e,h,p]),D=l.useCallback(()=>{e.length!==0&&R(T<0?0:Math.min(T+1,e.length-1))},[e.length,T,R]),E=l.useCallback(()=>{e.length!==0&&R(T<=0?0:T-1)},[e.length,T,R]),F=l.useCallback(()=>R(0),[R]),P=l.useCallback(()=>R(e.length-1),[R,e.length]),_=l.useCallback(()=>{o&&p(o)},[o,p]),K=l.useCallback((C,M)=>{const S=bl(M);return S==="range"?(f(e,C,o),!0):S==="toggle"?(p(C),!0):(j(),u(C),!1)},[e,o,f,p,j,u]),B=l.useCallback(C=>{const M=jl(e,o,C);M!==void 0&&(f(e,M),w.current=M,y.current=!1,d(void 0),i(M))},[e,o,f]),k=l.useCallback(()=>B(-1),[B]),I=l.useCallback(()=>B(1),[B]),$=l.useCallback(()=>{e.length>0&&m(e)},[e,m]);return{focusedMessageId:o,setFocusedMessageId:b,keyboardFocusedMessageId:c,focusIndex:T,pendingDomFocusRef:w,cursorMovedByPointerRef:y,selection:g,isMultiSelectMode:h,exitSelection:j,moveFocusToIndex:R,focusNext:D,focusPrevious:E,focusFirst:F,focusLast:P,toggleFocusedSelection:_,extendRangeUp:k,extendRangeDown:I,selectAllLoaded:$,handleRowSelect:K}};function wc(e,t){if(e===void 0)return{shouldBlockFn:()=>!0,withResolver:!1};if("shouldBlockFn"in e)return e;if(typeof e=="function")return{shouldBlockFn:async()=>await e(),enableBeforeUnload:!0,withResolver:!1};const s=!!(e.condition??!0),n=e.blockerFn;return{shouldBlockFn:async()=>s&&n!==void 0?await n():s,enableBeforeUnload:s,withResolver:n===void 0}}function Cc(e,t){const{shouldBlockFn:s,enableBeforeUnload:n=!0,disabled:r=!1,withResolver:o=!1}=wc(e),i=Pr(),{history:c}=i,[d,b]=l.useState({status:"idle",current:void 0,next:void 0,action:void 0,proceed:void 0,reset:void 0});return l.useEffect(()=>{const g=async x=>{function p(h){const w=i.parseLocation(h),y=i.getMatchedRoutes(w.pathname);return y.foundRoute===void 0?{routeId:"__notFound__",fullPath:w.pathname,pathname:w.pathname,params:y.routeParams,search:i.options.parseSearch(h.search)}:{routeId:y.foundRoute.id,fullPath:y.foundRoute.fullPath,pathname:w.pathname,params:y.routeParams,search:i.options.parseSearch(h.search)}}const v=p(x.currentLocation),f=p(x.nextLocation);if(v.routeId==="__notFound__"&&f.routeId!=="__notFound__")return!1;const u=await s({action:x.action,current:v,next:f});if(!o)return u;if(!u)return!1;const m=await new Promise(h=>{b({status:"blocked",current:v,next:f,action:x.action,proceed:()=>h(!1),reset:()=>h(!0)})});return b({status:"idle",current:void 0,next:void 0,action:void 0,proceed:void 0,reset:void 0}),m};return r?void 0:c.block({blockerFn:g,enableBeforeUnload:n})},[s,n,r,o,c,i]),d}const $s=e=>{const{data:t,isLoading:s}=Z({...gt(),staleTime:1/0}),n=l.useMemo(()=>(t?.accounts??[]).map(c=>c.accountId),[t?.accounts]),r=Ss({queries:n.map(c=>({...bt({path:{accountId:c}}),staleTime:1/0,enabled:!!e}))}),o=s||r.some(c=>c.isLoading);return{accountId:l.useMemo(()=>{if(e){for(let c=0;c<n.length;c++)if((r[c].data?.items??[]).some(g=>g.mailboxId===e))return n[c]}},[e,n,r]),isLoading:o}},Sc=({surface:e})=>{const t=Dr(),s=Fr(),{data:n}=Z({...Ot({path:{messageId:e.sourceMessageId}})}),{data:r}=Z({...gt(),staleTime:1/0}),{accountId:o}=$s(n?.message.mailboxId),i=r?.accounts?.find(c=>c.accountId===o);return a.jsx("div",{className:"border-b border-line bg-canvas",children:a.jsx(ni,{layout:"flow",mode:e.mode,account:i,sourceMessage:n,outboxMessageId:e.outboxMessageId,onDraftCreated:t,onClose:s})})},Ua=({message:e,icon:t})=>a.jsxs("div",{className:"flex flex-col items-center justify-center p-8 text-center",children:[t&&a.jsx("div",{className:"mb-4 text-fg-muted",children:t}),a.jsx("p",{className:"text-fg-muted",children:e})]}),Ba=100,hs=async e=>e.then(t=>({ok:!0,value:t}),t=>({ok:!1,error:t})),Nc=(e,t=Ba)=>{if(e.length===0)return[];const s=[];for(let n=0;n<e.length;n+=t)s.push(e.slice(n,n+t));return s},Tc=(e,t=Ba)=>{const s=new Map;for(const n of e){const r=s.get(n.accountId);if(r){r.push(n.id);continue}s.set(n.accountId,[n.id])}return[...s.values()].flatMap(n=>Nc(n,t))},Ka=async(e,t,s,n)=>{const r=Tc(e),o=e.length;let i=0;const c=[];for(let d=0;d<r.length;d++){if(n())return c.push(...r.slice(d).flat()),{done:i,failedIds:c,cancelled:!0};const b=r[d],g=await hs(t(b));if(!g.ok)return c.push(...r.slice(d).flat()),s({done:i,total:o}),{done:i,failedIds:c,cancelled:!1,error:g.error};i+=b.length,s({done:i,total:o})}return{done:i,failedIds:c,cancelled:!1}},ht=async(e,t)=>{await Ka(e.map(s=>({id:s,accountId:void 0})),async s=>(await t(s),{successCount:s.length,failureCount:0}),()=>{},()=>!1)},Ic=async(e,t,s,n,r)=>{let o=0;const i=[];let c;do{if(r())return{done:o,failedIds:i,cancelled:!0};const d=await hs(e(c));if(!d.ok)return{done:o,failedIds:i,cancelled:!1,error:d.error};const b=d.value;if(b.ids.length>0){const g=await hs(s(b.ids));if(!g.ok)return{done:o,failedIds:i,cancelled:!1,error:g.error};o+=b.ids.length,n({done:o,total:t})}c=b.continuationToken}while(c);return{done:o,failedIds:i,cancelled:!1}},Ec=e=>({done:e.done,total:Math.max(e.total,e.done)}),qa=e=>typeof e=="object"&&e!==null&&Array.isArray(e.pages),Qa=e=>typeof e=="object"&&e!==null&&Array.isArray(e.items),Ha=(e,t)=>e===void 0?e:qa(e)?{...e,pages:e.pages.map(s=>({...s,items:t(s.items)}))}:Qa(e)?{...e,items:t(e.items)}:e,ke=e=>{const t=[];for(const s of new Set(e))t.push(qn({path:{mailboxId:s}})),t.push(Qn({path:{mailboxId:s}}));return t.push(Hn()),t},vt=(e,t)=>Promise.all(t.map(s=>e.cancelQueries({queryKey:s}))),yt=(e,t)=>t.flatMap(s=>e.getQueriesData({queryKey:s})).filter(s=>s[1]!==void 0).map(([s,n])=>({queryKey:s,data:n})),kt=(e,t,s)=>{const n=r=>Ha(r,s);for(const r of t)e.setQueriesData({queryKey:r},n)},jt=(e,t)=>{for(const s of t)e.setQueryData(s.queryKey,s.data)},je=(e,t)=>{for(const s of t)e.invalidateQueries({queryKey:s})},Rc=3e3,Mc=(e,t,s)=>{if(e.length===0)return()=>{};const n=setTimeout(()=>s(e),t);return()=>clearTimeout(n)},Ls=(e,t,s)=>{const n=new Map(t.map(o=>[o.messageId,o.mailboxId])),r=new Set;for(const o of e)r.add(n.get(o)??s);return[...r]},Lt=(e,t,s)=>e.map(n=>t.has(n.messageId)?{...n,isRead:s}:n),Ac=(e,t,s,n)=>e.filter(r=>!r.isRead&&t.has(r.threadMessageId)&&!s.has(r.messageId)&&!n.has(r.messageId)).map(r=>r.messageId),$c=({messages:e,expandedIds:t,threadId:s,mailboxId:n,accountId:r})=>{const o=ae(),{pushError:i}=be(),c=l.useRef(new Set),d=l.useRef(new Set),{mutate:b}=pe({...zt(),meta:Or,onMutate:async p=>{const v=new Set(p.body.messageIds??[]),f=p.body.isRead??!0,u=Me({path:{threadId:s}}),m=ke(Ls(v,e,n));await Promise.all([o.cancelQueries({queryKey:u}),vt(o,m)]);const h=o.getQueriesData({queryKey:u}).filter(y=>y[1]!==void 0).map(([y,j])=>({queryKey:y,data:j})),w=yt(o,m);return o.setQueriesData({queryKey:u},y=>y&&{...y,items:Lt(y.items,v,f)}),kt(o,m,y=>Lt(y,v,f)),{threadMessagesPrefix:u,listPrefixes:m,previousThreadMessages:h,previousThreadsList:w}},onSuccess:(p,v)=>{const f=v.body.messageIds??[];for(const u of f)c.current.add(u),d.current.delete(u)},onError:(p,v,f)=>{const u=v.body.messageIds??[];for(const h of u)d.current.delete(h);if(f){for(const h of f.previousThreadMessages)o.setQueryData(h.queryKey,h.data);jt(o,f.previousThreadsList)}const m=v.body.isRead??!0;i({title:m?"Couldn't mark as read":"Couldn't mark as unread",detail:Re(p),error:p})},onSettled:(p,v,f,u)=>{u&&(o.invalidateQueries({queryKey:u.threadMessagesPrefix}),je(o,u.listPrefixes),r&&o.invalidateQueries({queryKey:Je({path:{accountId:r}})}))}}),g=l.useCallback(p=>{const v=p.filter(f=>!c.current.has(f)&&!d.current.has(f));if(v.length!==0){for(const f of v)d.current.add(f);b({body:{messageIds:v,isRead:!0}})}},[b]),x=l.useMemo(()=>Ac(e,t,c.current,d.current),[e,t]);l.useEffect(()=>Mc(x,Rc,g),[x,g]),l.useEffect(()=>{c.current.clear(),d.current.clear()},[s])},Zf=e=>{const{mailboxId:t,accountId:s,messages:n}=e,r=ae(),{pushError:o}=be(),{mutateAsync:i,isPending:c}=pe({...zt(),onError:(b,g)=>{const x=g.body.isRead??!0;o({title:x?"Couldn't mark as read":"Couldn't mark as unread",detail:Re(b),error:b})},onSettled:(b,g,x)=>{je(r,ke(Ls(x.body.messageIds??[],n??[],t))),s&&r.invalidateQueries({queryKey:Je({path:{accountId:s}})})}});return{toggleReadFor:l.useCallback((b,g)=>{b.length!==0&&ht(b,x=>i({body:{messageIds:x,isRead:g}}))},[i]),isPending:c}},Lc=60,Pc=1.5,Dc=(e,t,s)=>{const n=Math.abs(e),r=Math.abs(t);return n<s?{direction:null}:n<r*Pc?{direction:null}:{direction:e<0?"left":"right"}},Fc=({onSwipeLeft:e,onSwipeRight:t,thresholdPx:s=Lc})=>{const n=l.useRef(null),r=l.useCallback(d=>{if(d.pointerType==="mouse"){n.current=null;return}n.current={x:d.clientX,y:d.clientY}},[]),o=l.useCallback(()=>{},[]),i=l.useCallback(d=>{const b=n.current;if(n.current=null,!b)return;const{direction:g}=Dc(d.clientX-b.x,d.clientY-b.y,s);g==="left"&&e?.(),g==="right"&&t?.()},[e,t,s]),c=l.useCallback(()=>{n.current=null},[]);return{handlers:{onPointerDown:r,onPointerMove:o,onPointerUp:i,onPointerCancel:c}}},Oc=(e,t,s)=>t?.find(n=>n.messageId===e)?.mailboxId??s,jn=(e,t,s)=>e.map(n=>n.messageId===t?{...n,hasStars:s}:n),Ga=({threadId:e,mailboxId:t,messages:s})=>{const n=ae(),{pushError:r}=be(),{mutate:o,isPending:i,variables:c}=pe({...zr(),onMutate:async b=>{const g=b.path.messageId,x=b.body.isStarred??!1,p=Me({path:{threadId:e}}),v=ke([Oc(g,s,t)]);await Promise.all([n.cancelQueries({queryKey:p}),vt(n,v)]);const f=n.getQueriesData({queryKey:p}).filter(m=>m[1]!==void 0).map(([m,h])=>({queryKey:m,data:h})),u=yt(n,v);return n.setQueriesData({queryKey:p},m=>Ha(m,h=>jn(h,g,x))),kt(n,v,m=>jn(m,g,x)),{threadMessagesPrefix:p,listPrefixes:v,previousThreadMessages:f,previousThreadsList:u}},onError:(b,g,x)=>{if(x){for(const v of x.previousThreadMessages)n.setQueryData(v.queryKey,v.data);jt(n,x.previousThreadsList)}const p=g.body.isStarred??!1;r({title:p?"Couldn't star message":"Couldn't unstar message",detail:Re(b),error:b})},onSettled:(b,g,x,p)=>{p&&(n.invalidateQueries({queryKey:p.threadMessagesPrefix}),je(n,p.listPrefixes))}});return{toggleStar:(b,g)=>{o({path:{messageId:b},body:{isStarred:!g}})},isPending:i,pendingMessageId:i?c?.path.messageId:void 0}};function wn({authenticity:e,onOpenIntelligence:t}){return e.dkimMismatch?a.jsxs("div",{className:"flex items-start gap-2 rounded-none border-b border-danger/20 bg-danger-soft px-5 py-2.5 text-sm",children:[a.jsx(Ze,{className:"mt-0.5 size-4 shrink-0 text-danger"}),a.jsxs("p",{className:"flex-1 leading-snug text-fg",children:["This message claims to be from"," ",a.jsx("span",{className:"font-semibold",children:e.fromDomain})," but was sent",e.dkimDomain?` via ${e.dkimDomain}`:" from a different domain","."," ",t&&a.jsx("button",{type:"button",onClick:t,className:"font-medium text-danger hover:underline",children:"Why?"})]})]}):null}function Va(e){return e===void 0?"uncategorized":e}const zc={inbox:"Inbox",junk:"Junk"},Ps=e=>e.destinationMailboxId!==void 0,_c=(e,t)=>{if(Ps(e))return`Moved from ${t??"another folder"} by Remit`;const s=e.fromPlacement??"";return`Moved from ${zc[s]??"another folder"} by Remit`},Uc=(e,t)=>{if(e===Gs.MoveToInbox)return t.inboxMailboxId;if(e===Gs.MoveToJunk)return t.junkMailboxId},Bc=(e,t,s)=>{if(!e||!t)return!1;const n=Ps(e)?e.destinationMailboxId:Uc(e.action,s);return n!==void 0&&n===t},Kc="Reported as spam",qc=(e,t)=>{if(e){if(Ps(e))return e.fromMailboxId;if(e.fromPlacement==="inbox")return t.inboxMailboxId;if(e.fromPlacement==="junk")return t.junkMailboxId}},wt=(e,t)=>{const{data:s,isLoading:n}=Z({...gt(),staleTime:1/0,enabled:!!e});return{mailboxId:l.useMemo(()=>e?s?.accounts.find(i=>i.accountId===e)?.folderAppointments.find(i=>i.role===t)?.mailboxId:void 0,[s,e,t]),isLoading:n}},em=e=>{const{mailboxId:t,isLoading:s}=wt(e,"Archive");return{archiveMailboxId:t,isLoading:s}},tm=e=>{const{mailboxId:t,isLoading:s}=wt(e,"Drafts");return{draftsMailboxId:t,isLoading:s}},Qc=e=>{const{mailboxId:t,isLoading:s}=wt(e,"Inbox");return{inboxMailboxId:t,isLoading:s}},Wa=e=>{const{mailboxId:t,isLoading:s}=wt(e,"Junk");return{junkMailboxId:t,isLoading:s}},sm=e=>{const{mailboxId:t,isLoading:s}=wt(e,"Trash");return{trashMailboxId:t,isLoading:s}},Hc=()=>{const{data:e,isError:t}=Z({...gt(),staleTime:1/0});return{trashByAccount:l.useMemo(()=>{const n=new Map;for(const r of e?.accounts??[]){const o=r.folderAppointments.find(i=>i.role==="Trash");n.set(r.accountId,{mailboxId:o?.mailboxId,source:o?.source??"None",staleFolderPath:o?.staleAppointmentPath})}return n},[e]),hasAppointments:e!==void 0,isError:t}},Ya=e=>{const{data:t}=Z({...gt(),staleTime:1/0,enabled:!!e});return l.useMemo(()=>t?.accounts.find(s=>s.accountId===e)?.folderAppointments??[],[t,e])},Cn=(e,t)=>e.filter(s=>!t.has(s.messageId)),Ht=({mailboxId:e,threadId:t,accountId:s,onAfterOptimisticRemove:n})=>{const r=ae(),{pushError:o}=be(),{mutateAsync:i,isPending:c,isError:d}=pe({..._r(),onMutate:async g=>{const x=new Set(g.body.messageIds??[]),p=t?Me({path:{threadId:t}}):[],v=ke([e,g.body.destinationMailboxId]);await Promise.all([...t?[r.cancelQueries({queryKey:p})]:[],vt(r,v)]);const f=t?r.getQueriesData({queryKey:p}).filter(m=>m[1]!==void 0).map(([m,h])=>({queryKey:m,data:h})):[],u=yt(r,v);return t&&r.setQueriesData({queryKey:p},m=>m&&{...m,items:Cn(m.items,x)}),kt(r,v,m=>Cn(m,x)),n?.(Array.from(x)),{threadMessagesPrefix:p,listPrefixes:v,previousThreadMessages:f,previousThreadsList:u}},onError:(g,x,p)=>{if(p){for(const f of p.previousThreadMessages)r.setQueryData(f.queryKey,f.data);jt(r,p.previousThreadsList)}const v=x.body.messageIds?.length??0;o({title:v>1?`Couldn't move ${v} messages`:"Couldn't move this message",detail:Re(g),error:g})},onSettled:(g,x,p,v)=>{v&&(t&&r.invalidateQueries({queryKey:v.threadMessagesPrefix}),je(r,v.listPrefixes),s&&r.invalidateQueries({queryKey:Je({path:{accountId:s}})}))}});return{moveMessages:l.useCallback((g,x)=>{g.length!==0&&ht(g,p=>i({body:{messageIds:p,destinationMailboxId:x}}))},[i]),isPending:c,isError:d}},Gc="This message could not be processed. Please try again. If it keeps failing, report it.",Vc=(e,t)=>e.replace(`Message ${t}'s`,"This message's"),Sn=e=>{if(e.failureCount===0)return;const t=e.failures?.[0],s=t?.reason??Gc,n=t?Vc(s,t.messageId):s;throw new Kr(n,422)};function Ja({mailboxId:e,threadId:t,accountId:s,onAfterOptimisticRemove:n}){const r=ae(),{pushError:o}=be(),i=ke([e]),c=t?Me({path:{threadId:t}}):[],d=()=>{t&&r.invalidateQueries({queryKey:c}),je(r,i),s&&r.invalidateQueries({queryKey:Je({path:{accountId:s}})})},b=()=>(u,m)=>{d(),n?.(m.body.messageIds)},g=u=>(m,h)=>{o({title:u(h.body.messageIds.length),detail:Re(m),error:m})},x=pe({mutationFn:async u=>{const{data:m}=await Ur({...u,throwOnError:!0});return Sn(m),m},meta:{softError:!0},onSuccess:b(),onError:g(u=>u>1?`Couldn't report ${u} messages as spam`:"Couldn't report this message as spam")}),p=pe({mutationFn:async u=>{const{data:m}=await Br({...u,throwOnError:!0});return Sn(m),m},meta:{softError:!0},onSuccess:b(),onError:g(u=>u>1?`Couldn't undo the spam report for ${u} messages`:"Couldn't undo the spam report")}),v=l.useCallback(u=>{u.length!==0&&ht(u,m=>x.mutateAsync({body:{messageIds:m}}))},[x.mutateAsync]),f=l.useCallback(u=>{u.length!==0&&ht(u,m=>p.mutateAsync({body:{messageIds:m}}))},[p.mutateAsync]);return{reportSpam:v,notSpam:f,isReporting:x.isPending,isRestoring:p.isPending}}const Wc=({accountId:e,messageId:t,threadId:s,mailboxId:n,autoMoved:r,spamReport:o})=>{const{inboxMailboxId:i}=Qc(e),{junkMailboxId:c}=Wa(e),{moveMessages:d,isPending:b}=Ht({mailboxId:n,threadId:s,accountId:e}),{notSpam:g,isRestoring:x}=Ja({mailboxId:n,threadId:s,accountId:e}),{data:p}=Z({...bt({path:{accountId:e??""}}),staleTime:1/0,enabled:!!e&&r?.fromMailboxId!==void 0}),v={inboxMailboxId:i,junkMailboxId:c},f=qc(r,v),u=l.useCallback(()=>{f&&d([t],f)},[d,t,f]),m=l.useCallback(()=>{g([t])},[g,t]);if(o)return{show:!0,label:Kc,onUndo:m,isUndoing:x};if(!Bc(r,n,v)||!r)return{show:!1,label:"",isUndoing:!1};const w=r.fromMailboxId?p?.items.filter(y=>y.mailboxId===r.fromMailboxId).map(y=>qr(y))[0]:void 0;return{show:!0,label:_c(r,w),onUndo:f?u:void 0,isUndoing:b,...r.filterId?{filtersHref:"/settings/filters"}:{}}};function Yc({accountId:e,messageId:t,threadId:s,mailboxId:n,autoMoved:r,spamReport:o}){const i=Wc({accountId:e,messageId:t,threadId:s,mailboxId:n,autoMoved:r,spamReport:o});return i.show?a.jsx(Pl,{label:i.label,onUndo:i.onUndo,undoLabel:i.isUndoing?"Undoing…":"Undo",filtersHref:i.filtersHref}):null}const Nn=(e,t)=>e.filter(s=>!t.has(s.messageId)),nm=e=>e.filter(t=>t.isDeleted!==!0),Ds=({mailboxId:e,threadId:t,accountId:s,messages:n,onAfterOptimisticRemove:r})=>{const o=ae(),{pushError:i}=be(),{requestAppointment:c}=Gn(),d=l.useRef([]),b=l.useRef(async()=>{}),{mutateAsync:g,isPending:x}=pe({...Hr(),onMutate:async f=>{const u=new Set(f.body.messageIds??[]),m=t?Me({path:{threadId:t}}):[],h=ke(Ls(u,n??[],e));await Promise.all([o.cancelQueries({queryKey:m}),vt(o,h)]);const w=t?o.getQueriesData({queryKey:m}).filter(j=>j[1]!==void 0).map(([j,T])=>({queryKey:j,data:T})):[],y=yt(o,h);return t&&o.setQueriesData({queryKey:m},j=>j&&{...j,items:Nn(j.items,u)}),kt(o,h,j=>Nn(j,u)),r?.(Array.from(u)),{threadMessagesPrefix:m,listPrefixes:h,previousThreadMessages:w,previousThreadsList:y}},onError:(f,u,m)=>{if(m){for(const y of m.previousThreadMessages)o.setQueryData(y.queryKey,y.data);jt(o,m.previousThreadsList)}const h=Qr(f);if(h){const y=d.current;c({accountId:h.accountId,role:h.role,reason:h.reason,action:{kind:"delete",count:y.length},onAppointed:()=>b.current(y)});return}const w=u.body.messageIds?.length??0;i({title:w>1?`Couldn't delete ${w} messages`:"Couldn't delete this message",detail:Re(f),error:f})},onSettled:(f,u,m,h)=>{h&&(t&&o.invalidateQueries({queryKey:h.threadMessagesPrefix}),je(o,h.listPrefixes),s&&o.invalidateQueries({queryKey:Je({path:{accountId:s}})}))}}),p=l.useCallback(f=>ht(f,u=>g({body:{messageIds:u}})),[g]);return l.useEffect(()=>{b.current=p},[p]),{deleteMessages:l.useCallback(f=>{f.length!==0&&(d.current=f,p(f))},[p]),isPending:x}},Xa="inline-flex items-center justify-center transition-colors",Jc=U(Xa,"min-h-11 min-w-11 rounded hover:bg-surface-raised"),Xc=U(Xa,"min-h-11 gap-1.5 px-3 rounded text-sm font-medium hover:bg-surface-raised"),Fs=({accountId:e,currentMailboxId:t,onMove:s,disabled:n=!1,disabledHint:r,variant:o="icon-only",label:i,defaultOpen:c=!1})=>{const[d,b]=l.useState(c),[g,x]=l.useState(),p=js(),v=l.useRef(null),f=l.useRef(null),u=l.useRef(null),m=i??"Move to folder",h=l.useId(),{t:w}=Gr("mail",{useSuspense:!1}),y=Vn(),{data:j,isLoading:T,isError:R,error:D,refetch:E}=Z({...bt({path:{accountId:e}}),staleTime:1/0,enabled:d}),F=Ya(e),{createFolderIn:P}=Wn(e),_=l.useMemo(()=>Yn({mailboxes:j?.items??[],folderAppointments:F,currentMailboxId:t,translator:y}),[j?.items,F,t,y]),K=Jn(j?.items??[]),B=_.find(O=>O.id===g),k=l.useCallback(()=>{b(!1),x(void 0);const O=document.activeElement;O&&f.current?.contains(O)&&u.current?.focus()},[]),I=l.useCallback(()=>{B&&(k(),s(B.id))},[B,k,s]);l.useEffect(()=>{if(!d||!p)return;const O=G=>{const le=G.target;v.current?.contains(le)||f.current?.contains(le)||k()},q=G=>{G.key==="Escape"&&(G.stopPropagation(),k())};return document.addEventListener("mousedown",O),document.addEventListener("keydown",q),()=>{document.removeEventListener("mousedown",O),document.removeEventListener("keydown",q)}},[d,p,k]);const $=()=>v.current?.getBoundingClientRect()??null,C=n||!!r,M=a.jsxs("button",{type:"button",ref:u,onClick:O=>{O.stopPropagation(),!C&&b(q=>!q)},"aria-label":m,"aria-haspopup":p?"tree":"dialog","aria-expanded":d,"aria-controls":d?h:void 0,title:r,className:o==="icon-only"?Jc:Xc,children:[a.jsx(ks,{className:o==="icon-only"?"size-5":"size-4"}),o==="compact"&&a.jsx("span",{className:"hidden sm:inline",children:"Move"})]}),S=T?a.jsx("div",{className:"px-3 py-5 text-sm text-fg-muted",children:"Loading folders…"}):R?a.jsx("div",{className:"p-3",children:a.jsx(Oe,{variant:"inline",title:"Couldn't load folders",error:D,onRetry:()=>E()})}):a.jsx(Vr,{folders:_,selectedId:g,delimiter:K,onSelect:x,onCreateFolder:P,onCancel:k,autoFocusFilter:p,labels:{filterPlaceholder:w("move_picker_filter_placeholder",{defaultValue:"Filter folders…"}),filterAriaLabel:w("move_picker_filter_label",{defaultValue:"Filter folders"})}}),z=B&&a.jsx("div",{className:"shrink-0 border-t border-line p-2",children:a.jsx(V,{variant:"primary",onClick:I,className:"h-11 w-full font-semibold",children:`Move to ${B.label}`})});return p?a.jsxs("div",{ref:v,className:"relative inline-block",children:[M,a.jsx(Ho,{open:d,align:"end",panelRef:f,getAnchor:$,children:a.jsxs("div",{id:h,ref:f,className:U("w-72 max-h-96 flex flex-col","bg-surface border border-line rounded-md shadow-lg"),children:[S,z]})})]}):a.jsxs(a.Fragment,{children:[M,a.jsx(Qe.Root,{open:d,onOpenChange:O=>O?b(!0):k(),children:a.jsxs(Qe.Portal,{children:[a.jsx(Qe.Overlay,{className:"fixed inset-0 z-40 bg-black/40"}),a.jsxs(Qe.Content,{className:"fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-lg bg-canvas pb-[env(safe-area-inset-bottom,0px)]",style:{maxHeight:"85dvh"},id:h,children:[a.jsx(Qe.Handle,{className:"mx-auto mt-2 mb-1 h-1.5 w-12 rounded-full bg-fg-subtle/30"}),a.jsx(Qe.Title,{className:"px-4 py-2 text-base font-semibold border-b border-line",children:"Move to folder"}),a.jsx("div",{className:"flex min-h-0 flex-1 overflow-hidden",children:S}),z]})]})})]})},Zc=({messageId:e,threadId:t,mailboxId:s,isRead:n,accountId:r,fromAddressId:o,isTrusted:i=!1,showRaw:c=!1,onToggleRaw:d})=>{const b=ae(),g=Ao(),{pushError:x}=be(),p=$o()?.messageId,{mutate:v,isPending:f}=pe({...zt(),onMutate:async I=>{const $=I.body.isRead??!0,C=new Set(I.body.messageIds??[]),M=Me({path:{threadId:t}}),S=ke([s]);await Promise.all([b.cancelQueries({queryKey:M}),vt(b,S)]);const z=b.getQueriesData({queryKey:M}).filter(q=>q[1]!==void 0).map(([q,G])=>({queryKey:q,data:G})),O=yt(b,S);return b.setQueriesData({queryKey:M},q=>q&&{...q,items:Lt(q.items,C,$)}),kt(b,S,q=>Lt(q,C,$)),{threadMessagesPrefix:M,listPrefixes:S,previousThreadMessages:z,previousThreadsList:O}},onError:(I,$,C)=>{if(C){for(const S of C.previousThreadMessages)b.setQueryData(S.queryKey,S.data);jt(b,C.previousThreadsList)}const M=$.body.isRead??!0;x({title:M?"Couldn't mark as read":"Couldn't mark as unread",detail:Re(I),error:I})},onSettled:(I,$,C,M)=>{M&&(b.invalidateQueries({queryKey:M.threadMessagesPrefix}),je(b,M.listPrefixes))}}),u=l.useCallback(I=>{p&&I.includes(p)&&g()},[p,g]),{deleteMessages:m,isPending:h}=Ds({mailboxId:s,threadId:t,onAfterOptimisticRemove:u}),{moveMessages:w,isPending:y}=Ht({mailboxId:s,threadId:t,accountId:r,onAfterOptimisticRemove:u}),{toggleTrusted:j,isPending:T,error:R,reset:D}=aa({messageId:e}),E=()=>{v({body:{messageIds:[e],isRead:!1}})},F=()=>{m([e])},P=()=>{o&&j(o,i)},_=f||h||y||T,K=_||!o,B=l.useCallback(I=>{w([e],I)},[w,e]),k=o?void 0:"Sender has no parseable address";return a.jsxs("div",{className:"flex flex-col items-end gap-1",children:[a.jsxs("div",{className:"flex items-center gap-1",children:[r&&a.jsx(Fs,{accountId:r,currentMailboxId:s,onMove:B,disabled:_,label:"Move this message"}),a.jsxs(Lo,{trigger:a.jsx(Go,{className:"size-4"}),children:[a.jsxs(Tt,{onClick:P,disabled:K,children:[i?a.jsx(Bt,{className:"size-4 text-positive"}):a.jsx(Dt,{className:"size-4 opacity-0"}),a.jsx("span",{title:k,children:"Trusted sender"})]}),n&&a.jsxs(Tt,{onClick:E,disabled:_,children:[a.jsx(Es,{className:"size-4"}),"Mark as unread"]}),d&&a.jsxs(Tt,{onClick:d,children:[a.jsx(ka,{className:"size-4"}),c?"Show formatted":"Show raw email"]}),a.jsx(Po,{}),a.jsxs(Tt,{onClick:F,disabled:_,destructive:!0,children:[a.jsx(Ft,{className:"size-4"}),"Delete"]})]})]}),R&&a.jsx("div",{className:"w-64",children:a.jsx(Oe,{variant:"inline",title:"Couldn't update trust",error:R,onRetry:()=>{D(),P()}})})]})},ed=e=>e==="link-expired"||e==="not-ready";class gs extends Error{reason;status;constructor(t,s,n){super(s),this.name="AttachmentFetchError",this.reason=t,this.status=n}}const td="x-remit-403-reason",sd="expired",nd=(e,t)=>{if(t?.trim()===sd)return"link-expired";const s=ci(e,t);return s==="auth"?"auth":s==="body-missing"?"missing":"generic"},ad=300*1e3,Tn=async(e,t)=>{const s={},n=await t();n&&(s.Authorization=`Bearer ${n}`);const r=await Jr(e,{headers:s,signal:AbortSignal.timeout(ad)});if(r.status===202)throw new gs("not-ready","Attachment is still being fetched from the mail server",202);if(!r.ok)throw new gs(nd(r.status,r.headers.get(td)),`Failed to download attachment (${r.status} ${r.statusText})`,r.status);return r.blob()},rd=(e,t,s)=>{switch(e){case"auth":return{title:"Your session expired",detail:`Sign in again, then download ${t} once more. Other parts of the app may also stop responding until you do.`};case"link-expired":return{title:"This download link expired and could not be renewed",detail:`Reload the page, then download ${t} again. If that keeps failing, this is worth reporting.`};case"missing":return{title:"This attachment is missing from storage",detail:"Remit has the message but not the file. Re-sync the account from Settings, then try again."};case"not-ready":return{title:"Still fetching this attachment",detail:"Remit is downloading it from the mail server now. Try again in a few seconds."};default:return{title:"Couldn't download this attachment",detail:s}}},In=e=>e instanceof gs?e.reason:"generic",od=e=>e instanceof Error?e.message:typeof e=="string"?e:"An unexpected error occurred while downloading this attachment.",id=(e,t,s)=>{if(e!=="auth")return Wr(Yr({title:`Bug: attachment download failed (${e})`,errorMessage:`Downloading "${t}" failed: ${s}`}))},ld=(e,t)=>{const s=URL.createObjectURL(e),n=document.createElement("a");n.href=s,n.download=t,n.rel="noopener",document.body.append(n),n.click(),n.remove(),setTimeout(()=>URL.revokeObjectURL(s),0)},cd=e=>{const t=e.toUpperCase();return t==="OCTET-STREAM"?"FILE":t},dd=e=>{const t=e.toLowerCase().replace(/[^a-z0-9]/g,"");return t.length>0?`attachment.${t}`:"attachment"},En=e=>e.filter(t=>!t.isMultipart&&t.disposition===Xr.Attachment&&t.contentUrl.length>0).map(t=>({bodyPartId:t.bodyPartId,filename:Vo(t.dispositionFilename??"",dd(t.mediaSubtype)),typeLabel:cd(t.mediaSubtype),sizeOctets:t.sizeOctets,contentUrl:t.contentUrl})),Rn={status:"idle"},ud=({messageId:e,bodyParts:t,hasAttachment:s=!1,className:n})=>{const{getToken:r}=Xn(),o=ae(),[i,c]=l.useState({}),d=l.useMemo(()=>En(t??[]),[t]),b=Zr({path:{messageId:e}}),g=f=>Tn(f.contentUrl,r).catch(u=>{if(!ed(In(u)))throw u;return o.refetchQueries({queryKey:b}).then(()=>{const m=o.getQueryData(b),h=m?En(m.bodyParts).find(w=>w.bodyPartId===f.bodyPartId):void 0;return Tn(h?.contentUrl??f.contentUrl,r)})}),x=(f,u)=>c(m=>({...m,[f]:u})),p=f=>{const u=d.find(m=>m.bodyPartId===f);if(!u)throw new Error(`No attachment part ${f} on message ${e}`);x(f,{status:"downloading"}),g(u).then(m=>{ld(m,u.filename),x(f,Rn)}).catch(m=>{const h=In(m),w=od(m),{title:y,detail:j}=rd(h,u.filename,w);x(f,{status:"failed",title:y,detail:j,reportUrl:id(h,u.filename,w)})})},v=s&&t!==void 0&&d.length===0;return a.jsx(Ll,{className:n,attachments:d.map(f=>({attachmentId:f.bodyPartId,filename:f.filename,typeLabel:f.typeLabel,sizeOctets:f.sizeOctets,download:i[f.bodyPartId]??Rn})),onDownload:p,hasUnlistedAttachment:v})},fd=({messageId:e,threadId:t,mailboxId:s,accountId:n,isRead:r,isStarred:o,onToggleStar:i,fromAddressId:c,isTrusted:d,showRaw:b,onToggleRaw:g,onReply:x,onReplyAll:p,onForward:v})=>{const f=ae(),{deleteMessages:u}=Ds({mailboxId:s,threadId:t}),{moveMessages:m}=Ht({mailboxId:s,threadId:t,accountId:n}),{toggleTrusted:h}=aa({messageId:e}),{mutate:w}=pe({...zt(),onSettled:()=>{f.invalidateQueries({queryKey:Me({path:{threadId:t}})}),je(f,ke([s]))}}),y=l.useCallback(D=>{m([e],D)},[m,e]),j=l.useCallback(()=>{u([e])},[u,e]),T=l.useCallback(()=>{w({body:{messageIds:[e],isRead:!r}})},[w,e,r]),R=[];return c&&R.push({key:"trusted",label:d?"Trusted sender":"Mark sender trusted",icon:d?a.jsx(Bt,{className:"size-4 text-positive"}):a.jsx(Dt,{className:"size-4"}),onSelect:()=>h(c,d)}),g&&R.push({key:"raw",label:b?"Show formatted":"Show raw email",icon:a.jsx(ka,{className:"size-4"}),onSelect:g}),a.jsx(Ma,{hasThread:!0,onReply:x,onReplyAll:p,onForward:v,isStarred:o,onToggleStar:i,onDelete:j,isRead:r,onToggleRead:T,overflowItems:R,moveSlot:n?a.jsx(Fs,{accountId:n,currentMailboxId:s,onMove:y,label:"Move this message"}):void 0})},md=()=>a.jsxs("div",{className:"animate-pulse space-y-2",role:"status","aria-label":"Loading raw email",children:[a.jsx("div",{className:"h-4 bg-surface-sunken rounded w-full"}),a.jsx("div",{className:"h-4 bg-surface-sunken rounded w-11/12"}),a.jsx("div",{className:"h-4 bg-surface-sunken rounded w-5/6"}),a.jsx("div",{className:"h-4 bg-surface-sunken rounded w-3/4"})]}),pd=({messageId:e,enabled:t=!0})=>{const{data:s,isLoading:n,isError:r,error:o,refetch:i}=Z({...eo({path:{messageId:e}}),enabled:t});if(n)return a.jsx("div",{className:"message-body",children:a.jsx(md,{})});if(r)return a.jsx("div",{className:"message-body",children:a.jsx(Oe,{variant:"inline",title:"Couldn't load the raw email",error:o,onRetry:()=>i()})});const c=s?.raw??"";return c===""?a.jsx("div",{className:"message-body",children:a.jsx("p",{className:"text-fg-muted text-sm italic",children:"No raw source available for this message."})}):a.jsx("div",{className:"message-body",children:a.jsx("pre",{className:"email-text whitespace-pre-wrap break-words text-sm leading-relaxed bg-surface-sunken rounded-md p-3 max-h-[32rem] overflow-auto",children:c})})},hd=()=>a.jsx(Bt,{className:"inline-block size-4 ml-1 -mt-0.5 text-positive align-middle","aria-label":"Trusted sender","data-testid":"trusted-sender-badge"}),Za=(e,t)=>({id:e.messageId,fromName:e.fromName??e.fromEmail??"?",fromEmail:e.fromEmail??"",toLabel:"",dateLabel:t,snippet:e.snippet||"",bodyHtml:""}),er=({isStarred:e,onToggleStar:t,isStarPending:s,hoverReveal:n})=>a.jsx("button",{type:"button",onClick:r=>{r.stopPropagation(),t()},disabled:s,"aria-label":e?"Remove star":"Add star",className:U("shrink-0 p-0.5 rounded transition-colors",e?"text-warning":U("text-fg-subtle hover:text-warning",n&&"opacity-0 group-hover:opacity-100 focus:opacity-100"),s&&"opacity-50"),children:a.jsx(Ye,{className:U("size-3.5",e&&"fill-current")})}),gd=({threadMessage:e,isFocused:t,onToggle:s,onToggleStar:n,isStarPending:r})=>{const o=ca(e.sentDate,"datetime"),i=Za(e,o);return a.jsx(Aa,{message:i,onClick:s,isFocused:t,isUnread:!e.isRead,trailing:a.jsxs(a.Fragment,{children:[e.hasAttachment&&a.jsx(Kt,{className:"size-3 shrink-0 text-fg-subtle",role:"img","aria-label":"Has an attachment"}),a.jsx(er,{isStarred:e.hasStars,onToggleStar:n,isStarPending:r,hoverReveal:!0}),a.jsx("span",{"data-testid":"message-date",className:"shrink-0 text-2xs text-fg-subtle tabular-nums",children:o})]})})},bd=({threadMessage:e,messageData:t,isLoading:s,isError:n,error:r,onRetry:o,isFocused:i,onToggle:c,onToggleStar:d,isStarPending:b,accountId:g,showRaw:x,onToggleRaw:p,mobile:v,onReply:f,onReplyAll:u,onForward:m})=>{const h=ca(e.sentDate,"long"),w=!e.isRead,y=t?.envelope.from[0]?.flags?.trusted?.value===!0,j=t?.envelope.from[0]?.addressId,T=Za(e,h),R=e.autoMoved||e.spamReport?a.jsx(Yc,{accountId:g,messageId:e.messageId,threadId:e.threadId,mailboxId:e.mailboxId,autoMoved:e.autoMoved,spamReport:e.spamReport}):null;return a.jsx($a,{message:T,isFocused:v?!1:i,onHeaderClick:c,senderBadge:y?a.jsx(hd,{}):void 0,trailing:a.jsx("span",{"data-testid":"message-date",className:"text-2xs text-fg-subtle",children:h}),to:t?a.jsx(fl,{label:"To",addresses:t.envelope.to}):null,indicators:R||!v?a.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 mt-0.5",children:[R,!v&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"flex items-center justify-end gap-1",children:a.jsx(er,{isStarred:e.hasStars,onToggleStar:d,isStarPending:b})}),w&&a.jsx("span",{className:"size-1.5 rounded-full bg-accent","aria-label":"Unread"})]})]}):void 0,actionMenu:v?void 0:a.jsx(Zc,{messageId:e.messageId,threadId:e.threadId,mailboxId:e.mailboxId,isRead:e.isRead,accountId:g,fromAddressId:j,isTrusted:y,showRaw:x,onToggleRaw:p}),actionBar:v?a.jsx(fd,{messageId:e.messageId,threadId:e.threadId,mailboxId:e.mailboxId,accountId:g,isRead:e.isRead,isStarred:e.hasStars,onToggleStar:d,fromAddressId:j,isTrusted:y,showRaw:x,onToggleRaw:p,onReply:f,onReplyAll:u,onForward:m}):void 0,body:s?a.jsxs("div",{className:"mt-3 animate-pulse space-y-2",children:[a.jsx("div",{className:"h-4 bg-surface-sunken rounded w-full"}),a.jsx("div",{className:"h-4 bg-surface-sunken rounded w-3/4"}),a.jsx("div",{className:"h-4 bg-surface-sunken rounded w-1/2"})]}):n&&to(r)?a.jsx("div",{className:"mt-3",children:a.jsx(Ua,{message:"This message has been deleted"})}):n?a.jsx("div",{className:"mt-3",children:a.jsx(Oe,{variant:"inline",title:"Couldn't load this message",error:r,onRetry:o})}):x?a.jsx("div",{className:"mt-3",children:a.jsx(pd,{messageId:e.messageId})}):a.jsxs("div",{className:"mt-3",children:[a.jsx(Xo,{bodyParts:t?.bodyParts,messageId:e.messageId,fromAddressId:t?.envelope.from[0]?.addressId,isTrusted:y,category:Va(e.category)}),a.jsx(ud,{messageId:e.messageId,bodyParts:t?.bodyParts,hasAttachment:e.hasAttachment,className:"mt-4"})]})})},xd=({threadMessage:e,isExpanded:t,isFocused:s,onToggle:n,onToggleStar:r,isStarPending:o,accountId:i,mobile:c,onReply:d,onReplyAll:b,onForward:g})=>{const[x,p]=l.useState(!1),{data:v,isLoading:f,isError:u,error:m,refetch:h}=Z({...Ot({path:{messageId:e.messageId}}),enabled:t,meta:{softError:!0}});return t?a.jsx(bd,{threadMessage:e,messageData:v,isLoading:f,isError:u,error:m,onRetry:()=>h(),isFocused:s,onToggle:n,onToggleStar:r,isStarPending:o,accountId:i,showRaw:x,onToggleRaw:()=>p(w=>!w),mobile:c,onReply:d,onReplyAll:b,onForward:g}):a.jsx(gd,{threadMessage:e,isFocused:s,onToggle:n,onToggleStar:r,isStarPending:o})},vd=()=>a.jsxs("div",{className:"animate-pulse p-4",children:[a.jsx("div",{className:"h-6 bg-surface-sunken rounded w-3/4 mb-5"}),a.jsx("div",{className:"space-y-4",children:Array.from({length:2}).map((e,t)=>a.jsxs("div",{className:"flex gap-3 py-3",children:[a.jsx("div",{className:"size-10 bg-surface-sunken rounded-full shrink-0"}),a.jsxs("div",{className:"flex-1",children:[a.jsx("div",{className:"h-4 bg-surface-sunken rounded w-32 mb-2"}),a.jsx("div",{className:"h-3 bg-surface-sunken rounded w-48"})]})]},t))})]}),am=({threadId:e,mailboxId:t,subject:s,selectedMessageId:n,authenticity:r,onOpenIntelligence:o,onBack:i,onSwipeNext:c,onSwipePrevious:d,mobileIntelligenceOpen:b})=>{const g=js(),{handlers:x}=Fc({onSwipeLeft:c,onSwipeRight:d}),{accountId:p}=$s(t),{data:v,isLoading:f,isError:u,error:m,refetch:h}=Z({...Zn({path:{threadId:e}})}),w=l.useMemo(()=>v?.items??[],[v?.items]),y=w[w.length-1],j=l.useMemo(()=>[...w].reverse(),[w]),T=l.useRef(new Map),[R,D]=l.useState(new Set),[E,F]=l.useState(null),[P,_]=l.useState(0);l.useEffect(()=>{if(w.length>0&&e!==E){F(e);const L=new Set([w[w.length-1].threadMessageId]);if(n){const Q=w.find(Y=>Y.messageId===n);Q&&L.add(Q.threadMessageId)}D(L),_(0)}},[e,w,E,n]);const K=l.useCallback(L=>{D(Q=>{const Y=new Set(Q);return Y.has(L)?Y.delete(L):Y.add(L),Y})},[]),B=l.useCallback(L=>{const Q=j[L];if(!Q)return;T.current.get(Q.threadMessageId)?.scrollIntoView({behavior:"smooth",block:"nearest"})},[j]),k=l.useCallback(()=>{if(j.length===0)return;const L=Math.min(P+1,j.length-1);_(L),B(L)},[j.length,P,B]),I=l.useCallback(()=>{if(j.length===0)return;const L=Math.max(P-1,0);_(L),B(L)},[j.length,P,B]),$=l.useCallback(()=>{const L=j[P];L&&K(L.threadMessageId)},[j,P,K]);$c({messages:w,expandedIds:R,threadId:e,mailboxId:t,accountId:p});const{toggleStar:C,isPending:M,pendingMessageId:S}=Ga({threadId:e,mailboxId:t,messages:w}),z=so(),O=no(),q=n??y?.messageId,G=l.useCallback((L,Q)=>{Q&&O({threadId:e,messageId:Q,mode:L})},[O,e]),le=l.useCallback(()=>G("reply",q),[G,q]),ee=l.useCallback(()=>G("reply-all",q),[G,q]),re=l.useCallback(()=>G("forward",q),[G,q]),he=l.useRef(null),te=z?.kind==="reply"?`${z.mode}:${z.sourceMessageId}`:void 0;if(l.useEffect(()=>{te&&he.current?.scrollIntoView({behavior:"smooth",block:"start"})},[te]),ai({enabled:!f&&w.length>0&&z===void 0,bindings:[{key:"j",handler:k,preventDefault:!0},{key:"ArrowDown",handler:k,preventDefault:!0},{key:"k",handler:I,preventDefault:!0},{key:"ArrowUp",handler:I,preventDefault:!0},{key:"Enter",handler:$,preventDefault:!0},{key:"o",handler:$,preventDefault:!0},{key:"r",handler:le,preventDefault:!0},{key:"R",handler:ee,noModifiers:!1,preventDefault:!0},{key:"f",handler:re,preventDefault:!0}]}),f)return a.jsx(vd,{});if(u)return a.jsx("div",{className:"flex h-full items-center justify-center",children:a.jsx(Oe,{title:z?"Couldn't load this conversation, so there is nothing to answer":"Couldn't load this conversation",error:m,onRetry:()=>h()})});if(w.length===0)return a.jsx("div",{className:"flex h-full items-center justify-center p-4",children:z?a.jsx(Oe,{variant:"inline",title:"There is nothing here to answer",error:"This conversation has no messages left. Another mail client may have moved or deleted them."}):a.jsx(Ua,{message:"No messages in this thread"})});const ce=s||w[0]?.subject||"(No subject)",oe=w.length,fe=L=>a.jsx("div",{"data-testid":"conversation-messages",children:j.map((Q,Y)=>a.jsx("div",{ref:we=>{we&&T.current.set(Q.threadMessageId,we)},children:a.jsx(xd,{threadMessage:Q,isExpanded:R.has(Q.threadMessageId),isFocused:Y===P,onToggle:()=>K(Q.threadMessageId),onToggleStar:()=>C(Q.messageId,Q.hasStars),isStarPending:M&&S===Q.messageId,accountId:p,mobile:L,onReply:L?()=>G("reply",Q.messageId):void 0,onReplyAll:L?()=>G("reply-all",Q.messageId):void 0,onForward:L?()=>G("forward",Q.messageId):void 0})},Q.threadMessageId))}),de=z&&a.jsx("div",{ref:he,children:z.kind==="reply"?a.jsx(Sc,{surface:z}):a.jsx("div",{className:"border-b border-line bg-canvas p-4",children:a.jsx(Oe,{variant:"inline",title:"That is not a way to answer a message",error:`"${z.segment}" is not reply, reply-all or forward.`})})}),ue=a.jsxs("header",{className:"border-b border-line px-5 pt-5 pb-3",children:[a.jsx("h1",{className:"max-w-2xl text-lg font-semibold leading-snug text-fg",children:ce}),a.jsxs("p",{className:"mt-1 text-2xs text-fg-subtle",children:[oe," ",oe===1?"message":"messages"]})]});return g?a.jsxs("article",{className:"h-full flex flex-col",children:[ue,r?.dkimMismatch&&a.jsx(wn,{authenticity:r,onOpenIntelligence:o}),a.jsxs("div",{className:"min-h-0 flex-1 overflow-auto",children:[de,fe(!1)]})]}):a.jsxs(Al,{thread:{subject:ce,messages:[]},onBack:i??(()=>{}),intelligenceOpen:b,onToggleIntelligence:o,touchHandlers:x,children:[r?.dkimMismatch&&a.jsx(wn,{authenticity:r,onOpenIntelligence:o}),de,fe(!0)]})},yd=({isOpen:e,onClose:t,children:s,ariaLabel:n="Navigation",side:r="left",widthClassName:o="w-[80vw] max-w-[320px]"})=>{const i=l.useRef(null),c=l.useRef(null);if(l.useEffect(()=>{if(!e)return;c.current=document.activeElement;const b=p=>{p.key==="Escape"&&(p.preventDefault(),t())};document.addEventListener("keydown",b),i.current?.querySelector("button, [href], input, select, textarea, [tabindex]:not([tabindex='-1'])")?.focus();const x=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",b),document.body.style.overflow=x,c.current?.focus()}},[e,t]),!e)return null;const d=r==="left"?"left-0 border-r animate-in slide-in-from-left duration-150":"right-0 border-l animate-in slide-in-from-right duration-150";return a.jsxs("div",{className:"fixed inset-0 z-50",role:"dialog","aria-modal":"true","aria-label":n,children:[a.jsx("button",{type:"button","aria-label":"Close menu",onClick:t,className:"absolute inset-0 bg-black/40 animate-in fade-in duration-150 cursor-default"}),a.jsxs("div",{ref:i,className:U("safe-area-frame absolute top-0 bottom-0 bg-canvas border-line shadow-xl flex flex-col",o,d),children:[a.jsx("div",{className:"flex items-center justify-end h-12 px-2 border-b border-line shrink-0",children:a.jsx("button",{type:"button",onClick:t,className:"p-2 rounded-md hover:bg-surface-raised transition-colors min-h-11 min-w-11 inline-flex items-center justify-center","aria-label":"Close menu",children:a.jsx(Pt,{className:"size-5"})})}),a.jsx("div",{className:"flex-1 overflow-y-auto",children:s})]})]})},kd=10,tr=e=>({q:e?.toLowerCase()??"",limit:kd}),jd=(e,t)=>{if(!t)return;const s=t.toLowerCase();return e?.find(n=>n.normalizedEmail===s)};function wd(e){const t=new Date(e),s=new Date;return t.toDateString()===s.toDateString()?"today":ri(t,{month:"short",year:"numeric"})}function sr(e){if(!e)return!0;const[,t]=e.split("@");return t?!t.includes("."):!0}const Cd="We can't verify the sender of this email, which could mean it's from an insecure source.",Sd="We couldn't read this sender's address, so we can't confirm who really sent this message.";function Nd(e,t){const s=e.category??"personal";return{value:ro(s)?s:"uncategorized",overridden:t?.flags?.category?.value!=null&&t.flags.category.value!==e.category}}function Td(e,t){return{name:e.fromName??e.fromEmail??"Unknown",email:e.fromEmail??"",trust:e.senderTrust,firstSeenLabel:t?wd(t.createdAt):"unknown",inboundCount:t?.inboundCount,replyCount:t?.replyCount,addressUnverified:sr(e.fromEmail)}}function Id(e){return e?.flags?{vip:e.flags.vip?.value===!0,muted:e.flags.muted?.value===!0,blocked:e.flags.blocked?.value===!0,unsubscribed:e.flags.unsubscribed?.value===!0}:{}}function Mn(e){if(e.fromName&&e.fromName!==e.fromEmail)return e.fromName}function Ed(e){return e.length===1?e[0]:`${e.slice(0,-1).join(", ")} and ${e[e.length-1]}`}function Rd(e,t){const s=[],n=e.displayNameCorrespondence;t&&(n===es.Unrelated?s.push(`The name it shows, "${t}", has nothing to do with ${e.fromDomain}.`):n===es.Lookalike?s.push(`The name it shows, "${t}", only looks like ${e.fromDomain}.`):n===es.ForeignAddress&&s.push(`The name it shows, "${t}", is an address ${e.fromDomain} cannot send from.`));const r=Md(e.offDomainLinkDomains);return r.length>0&&s.push(`Its links go to ${Ed(r.slice(0,3))}.`),s}function Md(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Ad(e,t){const s=t>0?t:void 0;if(sr(e.fromEmail))return{verdict:"mismatch",fromDomain:"",addressUnreadable:!0,summary:Sd,similarCount:s};const n=e.authenticity;if(!n)return{verdict:"caution",fromDomain:e.fromEmail?.split("@")[1]??"",summary:Cd};if(!n.dkimMismatch){const b=Mn(e),g=Rd(n,b);return g.length>0?{verdict:"caution",fromDomain:n.fromDomain,dkimDomain:n.dkimDomain,claimedBrand:b,summary:g.join(" ")}:{verdict:"aligned",fromDomain:n.fromDomain,dkimDomain:n.dkimDomain,summary:n.dkimDomain?`This message was signed by ${n.dkimDomain}.`:"Nothing looks unusual about this sender."}}const r=n.fromDomain,o=n.dkimDomain,i=Mn(e),c=o?`it was actually sent from ${o}`:"its signature failed to verify",d=i?`The display name claims "${i}", but ${c}${o?` — not ${r}`:""}. Real senders use their own address.`:`This message claims to be from ${r}, but ${c}.`;return{verdict:"mismatch",fromDomain:r,dkimDomain:o,claimedBrand:i,summary:d,similarCount:s}}function $d(e,t){const s=e?.fromEmail??null,n=e?.subject??"",{data:r,error:o}=Z({...ws({query:tr(s??void 0)}),enabled:!!s,staleTime:3e4}),i=jd(r?.items,s??void 0),c=[n,s].filter(Boolean).join(" "),{data:d,isLoading:b,error:g}=Z({...ao({query:{query:c,limit:5}}),enabled:!!(e&&c.length>3),staleTime:6e4,retry:1});return{data:l.useMemo(()=>{if(!e)return null;const p=(d?.items??[]).filter(h=>h.messageId!==e.messageId).map(h=>({id:h.messageId,threadId:h.threadId,mailboxId:t!=null&&h.mailboxIds.includes(t)?t:h.mailboxIds[0]??"",fromName:h.fromName??"",subject:h.subject??"(No subject)",timeLabel:h.sentDate!=null?Xe(h.sentDate*1e3):"",matched:h.matchedChunkType})),v=Td(e,i),f=Ad(e,p.length),u=Nd(e,i),m=Id(i);return{sender:v,authenticity:f,category:u,flags:m,similar:p}},[e,i,d,t]),isSimilarLoading:b,similarError:g,similarErrorIsFatal:Vs(g),addressErrorIsFatal:Vs(o),addressId:i?.addressId,address:i}}function Ld(e,t){const s={...e??{}};for(const[n,r]of Object.entries(t))r==null?delete s[n]:s[n]={...r,setAt:r.setAt??Date.now()};return s}function Pd({addressId:e,senderEmail:t}){const s=ae(),{pushError:n}=be(),r=oo({query:tr(t)}),{mutate:o,isPending:i}=pe({...io(),onMutate:async d=>{const b=d.body.flags??{};await s.cancelQueries({queryKey:r});const g=s.getQueryData(r);return s.setQueryData(r,x=>x&&{...x,items:x.items.map(p=>p.addressId===d.path.addressId?{...p,flags:Ld(p.flags,b)}:p)}),{previous:g}},onError:(d,b,g)=>{g?.previous!==void 0&&s.setQueryData(r,g.previous),n({title:"Couldn't update sender preference",detail:Re(d),error:d})},onSettled:()=>{s.invalidateQueries({queryKey:r})}});return{updateFlags:l.useCallback(d=>{if(!e){lo(new Error(`Quick action fired but the sender's address record did not resolve (sender: ${t??"unknown"}). This should never happen — the address row exists.`));return}o({path:{addressId:e},body:{flags:d}})},[e,o,t]),isPending:i}}const rm=e=>e==="vip"?"A sender you know":e==="wellknown"?"You've emailed them before":"Passed authentication",Dd=e=>e.senderTrust!=="vip"&&e.senderTrust!=="wellknown"?!1:e.authenticity?.dkimMismatch!==!0;function om(e,t){e.recordEvent("rescue.candidates_surfaced",{count:String(t)})}function im(e,t){e.recordEvent("rescue.flow_opened",{count:String(t)})}function lm(e,t){e.recordEvent("rescue.committed",{selected:String(t.selected),total:String(t.total),destination:t.toInbox?"inbox":"other"})}function Fd(e,t){e.recordEvent("rescue.sent_to_junk",{count:String(t.count),senderTrust:t.senderTrust,wasRescuable:String(t.wasRescuable)})}const Od=["personal","newsletter","marketing","automated","transactional","social"],zd=e=>e.spamReport?"notSpam":"reportSpam",_d=e=>{const{similarError:t,similarErrorIsFatal:s,isSimilarLoading:n}=e;return t&&!s?"error":n?"loading":"ready"};function Ud(){return a.jsxs("aside",{className:"flex h-full w-full flex-col bg-surface-sunken",children:[a.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-1.5 border-b border-line px-row-inset",children:[a.jsx(We,{className:"size-3.5 text-fg-subtle"}),a.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Intelligence"})]}),a.jsxs("div",{className:"flex-1 animate-pulse space-y-4 p-4",children:[a.jsxs("div",{className:"space-y-2",children:[a.jsx("div",{className:"h-2.5 rounded bg-surface w-1/4"}),a.jsxs("div",{className:"flex gap-3",children:[a.jsx("div",{className:"size-10 rounded-full bg-surface shrink-0"}),a.jsxs("div",{className:"flex-1 space-y-1.5",children:[a.jsx("div",{className:"h-3 rounded bg-surface w-3/4"}),a.jsx("div",{className:"h-2.5 rounded bg-surface w-1/2"})]})]})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx("div",{className:"h-2.5 rounded bg-surface w-1/4"}),a.jsx("div",{className:"h-8 rounded bg-surface"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx("div",{className:"h-2.5 rounded bg-surface w-1/4"}),a.jsx("div",{className:"flex gap-1.5 flex-wrap",children:Array.from({length:5}).map((e,t)=>a.jsx("div",{className:"h-6 w-16 rounded bg-surface"},t))})]})]})]})}function Bd({isOpen:e,current:t,onSelect:s,onCancel:n}){return e?a.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[a.jsx(uo,{label:"Dismiss reclassify sender",onDismiss:n,className:"backdrop-blur-sm"}),a.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":"Reclassify sender",className:"relative z-10 w-full max-w-sm rounded-sm border border-line bg-surface p-6 shadow-lg",children:[a.jsx("h2",{className:"text-lg font-semibold",children:"Reclassify this sender"}),a.jsx("p",{className:"mt-2 text-sm text-fg-muted",children:"Set a category override for future messages from this sender."}),a.jsx("div",{className:"mt-4 flex flex-col gap-1",children:Od.map(r=>a.jsxs("button",{type:"button",onClick:()=>s(r),className:`flex min-h-11 items-center justify-between rounded px-3 text-left text-sm capitalize transition-colors hover:bg-surface-raised ${r===t?"font-semibold text-accent":"text-fg"}`,children:[r,r===t&&a.jsx("span",{className:"text-2xs text-fg-subtle",children:"current"})]},r))}),a.jsx("div",{className:"mt-6 flex justify-end",children:a.jsx("button",{type:"button",onClick:n,className:"inline-flex min-h-11 items-center justify-center rounded border border-line px-4 text-sm font-medium transition-colors hover:bg-surface-raised",children:"Cancel"})})]})]}):null}function Kd({thread:e,onClose:t,mailboxId:s,accountId:n,hideCloseButton:r,onAfterOptimisticRemove:o}){const{data:i,addressId:c,isSimilarLoading:d,similarError:b,similarErrorIsFatal:g}=$d(e,s),[x,p]=l.useState(!1),v=e.fromEmail??void 0,{updateFlags:f}=Pd({addressId:c,senderEmail:v}),{reportSpam:u,notSpam:m,isReporting:h,isRestoring:w}=Ja({mailboxId:e.mailboxId,threadId:e.threadId,accountId:n,onAfterOptimisticRemove:o}),y=co(),j=zd(e),T=l.useCallback(()=>{m([e.messageId])},[m,e.messageId]),R=l.useCallback(()=>{Fd(y,{count:1,senderTrust:e.senderTrust,wasRescuable:Dd(e)}),u([e.messageId])},[u,e,y]),D=l.useCallback(()=>{},[]),E=l.useCallback(()=>{const $=i?.flags?.vip!==!0;f({vip:{value:$}})},[i?.flags?.vip,f]),F=l.useCallback(()=>{const $=i?.flags?.muted!==!0;f({muted:{value:$}})},[i?.flags?.muted,f]),P=l.useCallback(()=>{const $=i?.flags?.unsubscribed!==!0;f({unsubscribed:{value:$}})},[i?.flags?.unsubscribed,f]),_=l.useCallback($=>{p(!1),f({category:{value:$}})},[f]),K=c!==void 0,B={onToggleVip:K?E:void 0,onToggleMute:K?F:void 0,onToggleUnsubscribe:K?P:void 0,onReclassify:K?()=>p(!0):void 0,onNotSpam:j==="notSpam"?T:void 0,onReportSpam:j==="reportSpam"?R:void 0},k=({mailboxId:$,threadId:C,messageId:M,className:S,ariaLabel:z,children:O})=>a.jsx(ea,{to:"/mail/$mailboxId/$threadId/$messageId",params:{mailboxId:$,threadId:C,messageId:M},search:q=>q,variant:"row",className:S,"aria-label":z,children:O});if(!i)return a.jsx(Ud,{});const I=_d({similarError:b,similarErrorIsFatal:g,isSimilarLoading:d});return a.jsxs(a.Fragment,{children:[a.jsx(Sa,{data:i,onClose:t,hideCloseButton:r,onShowSimilar:D,actions:B,similarState:I,similarLinkComponent:k,reportSpamPending:h,notSpamPending:w,className:"border-l-0 h-full w-full"}),a.jsx(Bd,{isOpen:x,current:i.category.value,onSelect:_,onCancel:()=>p(!1)})]})}const qd=({onClose:e,thread:t,mailboxId:s,accountId:n,hideCloseButton:r,onAfterOptimisticRemove:o})=>t?a.jsx(Kd,{thread:t,onClose:e,mailboxId:s,accountId:n,hideCloseButton:r,onAfterOptimisticRemove:o}):a.jsxs("aside",{className:"flex h-full w-full flex-col bg-surface-sunken",children:[a.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-1.5 border-b border-line px-row-inset",children:[a.jsx(We,{className:"size-3.5 text-fg-subtle"}),a.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:"Intelligence"})]}),a.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center px-row-inset text-center",children:[a.jsx(We,{className:"size-8 text-fg-subtle"}),a.jsx("p",{className:"mt-3 text-sm text-fg-muted",children:"Intelligence"}),a.jsx("p",{className:"mt-1 text-2xs text-fg-subtle",children:"Sender trust, authenticity and similar messages will appear here."})]})]});function cm({isOpen:e,onClose:t,thread:s,mailboxId:n,accountId:r,onAfterOptimisticRemove:o}){return a.jsx(yd,{isOpen:e,onClose:t,ariaLabel:"Message details",side:"right",children:a.jsx(qd,{onClose:t,thread:s,mailboxId:n,accountId:r,hideCloseButton:!0,onAfterOptimisticRemove:o})})}const Qd=e=>{const{trashByAccount:t,hasAppointments:s,isError:n}=Hc();return l.useMemo(()=>{const r=oi({targets:e,trashByAccount:t,hasAppointments:s,isError:n}),o=i=>i.accountId?t.get(i.accountId):void 0;return{outcome:r,trashIsUnconfirmed:e.some(i=>{const c=o(i);return c?.source==="Proposed"&&c.mailboxId===i.mailboxId}),staleFolderLabel:e.map(o).find(i=>i?.source==="Stale")?.staleFolderPath}},[e,t,s,n])},Hd={delete:(e,t)=>`Deleting ${e} of ${t}…`,move:(e,t)=>`Moving ${e} of ${t}…`,markRead:(e,t)=>`Marking ${e} of ${t} as read…`},Gd={delete:"moved to Trash",move:"moved",markRead:"marked as read"},nr=(e,t)=>e==="delete"&&t==="permanent"?"permanently deleted":Gd[e],Vd={delete:"couldn't be deleted",move:"couldn't be moved",markRead:"couldn't be marked as read"},Wd={delete:"Couldn't delete these messages",move:"Couldn't move these messages",markRead:"Couldn't mark these messages as read"},Yd={delete:"The delete didn't finish.",move:"The move didn't finish.",markRead:"The update didn't finish."},dm=(e,t,s)=>Hd[e](ze(t),ze(s)),Jd=(e,t,s="trash")=>`${ze(t)} ${nr(e,s)}. Your mail server is still catching up.`,Xd=e=>`Stopped after ${ze(e)}`,Zd=(e,t,s,n="trash")=>`${ze(t)} of ${ze(s)} ${nr(e,n)}. Nothing was sent for the rest, so they are untouched.`,eu=(e,t)=>t>0?`Stopped after ${ze(t)} — some messages ${Vd[e]}`:Wd[e],tu=e=>Yd[e],um=e=>e==="delete"?"danger":"info",fm=(e,t,s,n)=>s.error!==void 0?null:s.cancelled?{severity:"warning",title:Xd(s.done),detail:Zd(e,s.done,t,n)}:{severity:"info",title:Jd(e,s.done,n)},su=100,nu=(e,t)=>e.kind==="move"?[t,e.destinationMailboxId]:[t],au=({mailboxId:e,accountId:t,enabled:s,predicateKey:n,searchQuery:r})=>{const[o,i]=l.useState({kind:"idle"}),[c,d]=l.useState(void 0),[b,g]=l.useState(void 0),x=l.useRef(!1),p=l.useRef(!1),v=ae(),{pushError:f}=be();l.useEffect(()=>{p.current||(x.current=!0),i({kind:"idle"})},[s,n]);const u=l.useRef(r);u.current=r;const m=l.useCallback(E=>async F=>{const{data:P}=await Ws({path:{mailboxId:e},query:{...E,continuationToken:F,limit:su},throwOnError:!0});return{ids:(P.items??[]).map(_=>_.messageId),continuationToken:P.continuationToken}},[e]),h=l.useCallback(async()=>{const{data:E}=await Ws({path:{mailboxId:e},query:{...u.current,count:!0,results:!1},throwOnError:!0});if(E.count===void 0)throw new Error("the search returned no count for the selection");return E.count},[e]),w=l.useCallback(E=>async F=>{if(E.kind==="move"){const{data:_}=await fo({body:{messageIds:F,destinationMailboxId:E.destinationMailboxId},throwOnError:!0});return _}if(E.kind==="markRead"){const{data:_}=await mo({body:{messageIds:F,isRead:!0},throwOnError:!0});return _}const{data:P}=await po({body:{messageIds:F},throwOnError:!0});return P},[]),y=l.useCallback((E,F)=>{je(v,ke(nu(E,e)));const P=new Set;t&&P.add(t);for(const _ of F)_.accountId&&P.add(_.accountId);for(const _ of P)v.invalidateQueries({queryKey:Je({path:{accountId:_}})})},[v,e,t]),j=l.useCallback(()=>{x.current=!1,i({kind:"counting"}),h().then(E=>{if(x.current){i({kind:"idle"});return}i({kind:"escalated",total:E})},E=>{f(Ys("Couldn't count matching messages","The count didn't finish.",E)),i({kind:"idle"})})},[h,f]),T=l.useCallback(()=>{x.current=!0},[]),R=l.useCallback(()=>{p.current||(x.current=!0,i({kind:"idle"}))},[]),D=l.useCallback(async(E,F)=>{x.current=!1,p.current=!0,d(E);const P=k=>g(Ec(k)),_=w(E),K=m(u.current);let B;try{B=F!==void 0?await Ka(F,_,P,()=>x.current):await Ic(K,o.kind==="escalated"?o.total:0,_,P,()=>x.current)}finally{p.current=!1}return d(void 0),g(void 0),i({kind:"idle"}),B.error&&f(Ys(eu(E.kind,B.done),tu(E.kind),B.error)),B.done>0&&y(E,F??[]),B},[w,m,o,f,y]);return{phase:o,escalate:j,stop:T,clear:R,isRunning:c!==void 0,runningAction:c,progress:b,runAction:D}},ru=120,ou=({keyboardFocusedMessageId:e,openMessageId:t,enabled:s,open:n,delayMs:r=ru})=>{const o=l.useRef(n);o.current=n;const i=l.useRef(void 0);l.useEffect(()=>{const c=e;if(!s){i.current=c;return}if(c===void 0||c===t)return;if(c===i.current){i.current=void 0;return}const d=setTimeout(()=>o.current(c),r);return()=>clearTimeout(d)},[s,e,t,r])},ar="This account has no Junk folder appointed, so there is nowhere to file these. Appoint one under Settings › Folder roles.",iu="These are already in Junk, so there is nowhere to file them.",lu=(e,t)=>e!==void 0&&e!==t?e:void 0,mm=(e,t)=>{if(lu(e,t)===void 0)return e===void 0?ar:iu};function cu(e,t){if(e.length!==0)return t!==void 0&&e.includes(t)?t:e[0]}const du={title:"",navSlot:null,titleMeta:null,searchSlot:null,searchField:null,searchResults:null,makeFilterSlot:null},bs=l.createContext(du),rr=()=>l.useContext(bs),uu=({isOpen:e,messageIds:t,outcome:s,accountId:n,trashFolderLabel:r,staleFolderLabel:o,trashIsUnconfirmed:i=!1,isDeleting:c=!1,onConfirm:d,onCancel:b})=>{const{Account:g}=Xn(),{requestAppointment:x}=Gn(),p=t.length,v=()=>d([...t]),f=ii(p,s,{trashFolderLabel:r,staleFolderLabel:o,trashIsUnconfirmed:i});return s==="noTrash"||s==="staleTrash"?a.jsx(It,{isOpen:e,...f,onConfirm:()=>{if(!n)return v();const u=[...t];b(),x({accountId:n,role:"Trash",reason:s==="noTrash"?"none":"stale",action:{kind:"delete",count:p},staleFolderLabel:o,onAppointed:async()=>d(u)})},onCancel:b}):s==="unavailable"?a.jsx(g,{fallback:a.jsx(It,{isOpen:e,...f,confirmLabel:"Reload reader",onConfirm:()=>window.location.reload(),onCancel:b}),children:({signOut:u})=>a.jsx(It,{isOpen:e,...f,onConfirm:()=>u(),onCancel:b})}):a.jsx(It,{isOpen:e,...f,destructive:!0,isBusy:c||s==="unknown",onConfirm:v,onCancel:b})},or=8,ir=e=>e==="From"||e==="FromDomain",fu=e=>({value:e.email,label:e.displayName??e.email,...e.displayName?{hint:e.email}:{},...e.fromSelection?{source:"selected"}:{}}),mu=e=>{const t=za(e.email);if(t!==null)return{value:t,...e.fromSelection?{source:"selected"}:{}}},pu=(e,t)=>e.value.toLowerCase().includes(t)||(e.label??"").toLowerCase().includes(t),hu=(e,t,s)=>{if(!ir(e))return[];const n=t.trim().toLowerCase(),r=new Set,o=[];for(const i of s){if(i.email.trim()==="")continue;const c=e==="From"?fu(i):mu(i);if(!c)continue;const d=c.value.toLowerCase();if(!(d===""||r.has(d))&&(r.add(d),d!==n&&!(n!==""&&!pu(c,n))&&(o.push(c),o.length===or)))break}return o},gu=250,bu=2,xu=(e,t,s)=>{const n=t.trim(),r=da(n,gu),o=e!==void 0&&ir(e),{data:i}=Z({...ws({query:{q:r,limit:or}}),enabled:o&&r.length>=bu});if(!o||e===void 0)return[];const c=[...s.map(d=>({email:d,fromSelection:!0})),...(i?.items??[]).map(d=>({email:d.normalizedEmail,...d.displayName?{displayName:d.displayName}:{}}))];return hu(e,n,c)},lr=12,vu=e=>{const{envelope:t}=e,s=t.from[0];return{id:t.messageId,sender:s?_a({normalizedEmail:s.normalizedEmail,displayName:s.displayName}):"Unknown",subject:t.subject??"(No subject)",date:Xe(t.date)}},yu=(e,t)=>{const s=e!==void 0&&t!==void 0,{data:n,isLoading:r}=Z({...ho({path:{mailboxId:e??""},query:{...t,limit:lr}}),enabled:s,staleTime:3e4});return{messages:(n?.items??[]).map(ku),isPending:s&&r}},ku=e=>({id:e.messageId,sender:e.fromName||e.fromEmail||"Unknown",subject:e.subject??"(No subject)",date:Xe(e.sentDate)}),ju=e=>Ss({queries:e.slice(0,lr).map(t=>({...Ot({path:{messageId:t}}),staleTime:Number.POSITIVE_INFINITY})),combine:t=>({messages:t.map(s=>s.data).filter(s=>s!==void 0).map(vu),isPending:t.some(s=>s.isPending)})}),wu=e=>({matchOperator:"Or",literalClauses:Qt(e)}),Cu=(e,t,s)=>{const n=pe(go()),{mutate:r,reset:o}=n,[i,c]=l.useState(!1),d=l.useMemo(()=>qt(s),[s]),b=l.useCallback(()=>{!e||!t||(c(!1),r({path:{accountId:e},body:en({anchorMessageId:t,matchOperator:"And",literalClauses:[]})}))},[e,t,r]),g=l.useCallback(()=>{c(!1),o()},[o]),x=n.data,p=x?.semanticUnavailable===!0&&!i&&d.length>0;l.useEffect(()=>{!p||!e||(c(!0),r({path:{accountId:e},body:en(wu(d))}))},[p,e,d,r]);const v=i||(x?.semanticUnavailable??!1),f=n.isPending||p,u=i?{matchOperator:"Or",literalClauses:Qt(d)}:{...t?{anchorMessageId:t}:{},matchOperator:"And",literalClauses:[]};return{preview:b,reset:g,matchedCount:f?void 0:x?.matchedCount,messageIds:f?void 0:x?.messageIds,semanticUnavailable:v,senderFallback:i,senders:d,matchPredicate:u,isPending:f,isError:n.isError,error:n.error}},Su=()=>[qn({path:{mailboxId:""}}),Qn({path:{mailboxId:""}}),Hn()].map(e=>[{_id:e[0]._id}]),Nu=e=>qa(e)?e.pages:Qa(e)?[e]:[],Tu=e=>typeof e=="object"&&e!==null&&typeof e.messageId=="string",Iu=(e,t)=>{const s=new Set(t),n=new Map;for(const r of e)for(const o of Nu(r))for(const i of o.items){if(!Tu(i)||!s.has(i.messageId))continue;const c=i.subject?.trim();c&&n.set(i.messageId,c)}return t.map(r=>n.get(r)).filter(r=>r!==void 0)},Eu=e=>{const t=ae(),s=e.join("\0");return l.useMemo(()=>{const n=Su().flatMap(r=>t.getQueriesData({queryKey:r}).map(([,o])=>o));return Iu(n,e)},[t,s])},Ru=new Set(["hasAttachment","isUnread","isRead","isStarred","category","before","after"]),Mu=e=>Ru.has(e),Au=(e,{searchHadSemanticReach:t})=>{const s=[],n=[];let r,o;for(const d of e.tokens){if(d.type==="from"){s.push({field:"From",value:d.value});continue}if(d.type==="subject"){s.push({field:"Subject",value:d.value});continue}if(d.type==="in"){r={mailboxId:d.mailboxId,label:d.value};continue}if(d.type==="account"){o=d.accountId;continue}Mu(d.type)&&n.push({type:d.type,label:ra(d)})}const i=e.freeText.trim(),c=i.length>0;return c&&s.push({field:"HasWords",value:i}),{clauses:s,matchOperator:"all",scopedOut:r,droppedFacets:n,targetAccountId:o,keptTerms:c,droppedSemantic:c&&t}},$u=(e,t,s)=>e.targetAccountId??t??s[0]?.accountId,Lu=({failure:e,isStarting:t,isRunning:s,isDone:n,failedCount:r,ruleSaved:o})=>e?.kind==="restartFailed"?"backApplyRestartFailed":e?.kind==="startFailed"?o?"backApplyStartFailed":"commitFailed":n?r>0?"backApplyFailed":"backApplyComplete":e?.kind==="statusUnreadable"?"statusUnknown":t||s?"backApplyRunning":"saving",Pu=e=>{if(e.runState==="statusUnknown")return{kind:"refreshStatus"};if(e.isEscalated)return{kind:"rerunEscalated"};if(e.committedScope==="standing"||e.committedScope==="temporary")return e.createFilterFailed?{kind:"resetAndResend"}:e.backApplyPending?{kind:"startBackApply"}:{kind:"waitOnJob"};if(e.committedScope==="all-like-these"&&e.widenRunsAsJob)return{kind:"resend"};const t=new Set(e.failedIds);return{kind:"rerunBulk",targets:t.size>0?e.sent.filter(s=>t.has(s.id)):e.sent}},Du=e=>e!==void 0&&e.outcome===void 0&&e.failureReason===void 0,Fu=(e,t)=>{if(e){e.stop();return}t()},Ou=(e,t)=>e==="run"?t.dismiss:t.cancel,zu={clauses:[],matchOperator:"any"},_u={clauses:[],matchOperator:"all",droppedFacets:[],keptTerms:!1,droppedSemantic:!1},Uu=[],Bu=(e,t,s)=>({verb:"organize",accountId:$u(e,t.accountId,s),selection:Uu,selectionRestriction:void 0,escalated:void 0,searchConversion:e}),Fe={state:"saving",matched:0,applied:0,failed:0,failures:[]},is=(e,t)=>e.map((s,n)=>({...s,id:`${t}-${n}`})),An=(e,t,s)=>{if(e==="delete")return{kind:"delete"};if(e==="markRead")return{kind:"markRead"};const n=e==="junk"?s:t;return n?{kind:"move",destinationMailboxId:n}:void 0},ls=e=>e==="move"||e==="junk"||e==="organize",$n=e=>e==="junk"?ar:"No destination was chosen, so there is nowhere to file these. Go back and pick a folder.";function Ku({verb:e,accountId:t,mailboxId:s,selection:n,selectionRestriction:r,escalated:o,escalatedProgress:i,searchConversion:c,onFinished:d,onRunEnded:b,step:g,goToStep:x,goBack:p,closeWizard:v}){const[f]=l.useState(()=>c),[u]=l.useState(()=>o),m=f!==void 0,[h,w]=l.useState(m?"properties":"selected"),y=u?"escalated":h,[j,T]=l.useState(()=>f?{clauses:is(f.clauses,"search"),matchOperator:f.matchOperator}:zu),[R,D]=l.useState(void 0),[E,F]=l.useState(void 0),[P,_]=l.useState(!1),[K,B]=l.useState(void 0),[k,I]=l.useState(void 0),[$,C]=l.useState(),M=l.useRef(!1),S=l.useRef(!1),z=l.useMemo(()=>n.map(N=>N.id),[n]),O=l.useMemo(()=>n.map(N=>({id:N.id,accountId:N.accountId})),[n]),q=l.useMemo(()=>n.map(N=>N.email).filter(Boolean),[n]),G=z[0],le=Eu(z),{junkMailboxId:ee}=Wa(t),re=Cu(u?void 0:t,G,q),{preview:he}=re;l.useEffect(()=>{he()},[he]);const te=y==="similar"||y==="properties",ce=l.useMemo(()=>({matchOperator:j.matchOperator==="all"?"And":"Or",literalClauses:j.clauses.map(N=>({field:N.field,value:N.value}))}),[j.clauses,j.matchOperator]),oe=y==="similar"?re.matchPredicate:ce,{count:fe,matchedIds:de}=ui(te?t:void 0,oe),ue=ju(te?de:[]),L=yu(u?s:void 0,u?.searchQuery),Q=u?{status:"ready",count:u.total}:te?fe:{status:"ready",count:n.length},{data:Y}=Z({...bt({path:{accountId:t??""}}),enabled:!!t,staleTime:Number.POSITIVE_INFINITY}),we=Ya(t),Gt=Vn(),et=l.useMemo(()=>Yn({mailboxes:Y?.items??[],folderAppointments:we,currentMailboxId:s,translator:Gt}),[Y?.items,we,s,Gt]),{createFolderIn:Vt}=Wn(t),tt=et.find(N=>N.id===j.moveMailboxId)?.label,st=uc(n.map(N=>({normalizedEmail:N.email,displayName:N.sender}))),nt=vc({match:y==="properties"&&j.clauses[0]?.value.trim()||void 0,sender:st?_a(st):void 0,folder:tt}),H=l.useMemo(()=>({...j,name:j.name??nt}),[j,nt]),Ct=xu(R?.draft.field,R?.draft.value??"",q),me=fi(t),xe=mi(t),_e=au({mailboxId:s??"",accountId:t,enabled:!1,predicateKey:"selection-wizard",searchQuery:{}}),{runAction:Ue}=_e,se=vo({verb:e,mode:y,scope:j.scope,fromSearch:m}),J=se[Js(se,g)],$e=yo(t,r),Ce=(N=>{if(N==="folder")return $e.destination;if(N==="rule")return H.scope==="standing"||H.scope==="until"?$e.rule:void 0})(J)??ko(J,H,Q),Le=l.useCallback(()=>is(xc(q,le),"seed"),[q,le]),Wt=l.useCallback(N=>{w(N),T(A=>({...A,widen:N==="similar"&&G?{anchorCount:Math.max(n.length,1)}:void 0,...N==="properties"&&A.clauses.length===0?{clauses:Le()}:{}}))},[G,n.length,Le]),Be=l.useCallback(()=>{_(!0),w("properties"),T(N=>({...N,widen:void 0,clauses:is(Qt(q),"sender"),matchOperator:"any"})),x("properties")},[q,x]),Se=re.semanticUnavailable||re.isError;l.useEffect(()=>{J==="match"&&(y!=="similar"||!Se||P||Be())},[J,y,Se,P,Be]);const at=l.useCallback(()=>{D({mode:"add",draft:{field:"From",value:""}})},[]),rt=l.useCallback(N=>{const A=j.clauses.find(W=>W.id===N);A&&D({mode:"edit",clauseId:N,draft:{field:A.field,value:A.value}})},[j.clauses]),ne=l.useCallback(N=>{T(A=>({...A,clauses:A.clauses.filter(W=>W.id!==N)}))},[]),ve=l.useCallback(N=>{D(A=>A&&{...A,draft:N})},[]),mr=l.useCallback(()=>{D(N=>{if(!N)return;const A=pi(N.draft.field,N.draft.value),W={...N.draft,value:A};T(Ke=>({...Ke,clauses:N.clauseId?Ke.clauses.map(ot=>ot.id===N.clauseId?{...ot,...W}:ot):[...Ke.clauses,{id:crypto.randomUUID(),...W}]}))})},[]),pr=l.useCallback(()=>{if(Ce){F(J);return}F(void 0);const N=se[Js(se,J)+1];N&&x(N)},[Ce,J,se,x]),Yt=l.useCallback(async N=>{const A=An(e,H.moveMailboxId,ee);if(!A){I({matched:N.length,sent:N,failureReason:$n(e)});return}I({matched:N.length,sent:N});const W=await Ue(A,N);I({matched:N.length,sent:N,outcome:W}),S.current&&b?.(A.kind,N.length,W)},[e,H.moveMailboxId,ee,Ue,b]),Jt=l.useCallback(async()=>{if(!u)return;const N=An(e,H.moveMailboxId,ee);if(!N){I({matched:u.total,sent:[],failureReason:$n(e)});return}I({matched:u.total,sent:[]});const A=await u.run(N);I({matched:u.total,sent:[],outcome:A}),S.current&&b?.(N.kind,u.total,A)},[u,e,H.moveMailboxId,ee,b]),{start:St}=me,{createFilterAsync:Us}=xe,Nt=l.useCallback(()=>{if(u){Jt();return}const N=hi({mode:h,ruleScope:H.scope}),A=gi({mode:h,ruleScope:H.scope,anchorMessageId:G,clauses:H.clauses,matchOperator:H.matchOperator,moveMailboxId:H.moveMailboxId,until:H.until});if(B(N),N==="standing"||N==="temporary"){const W=bi(A)?A:void 0;C(W),Us(A,N,(H.name??"").trim()).then(Ke=>{Ke&&W&&St(W)});return}if(N==="all-like-these"&&ls(e)){St(A);return}Yt(N==="just-these"?O:de.map(W=>({id:W,accountId:t})))},[u,Jt,h,H,G,e,t,O,de,Us,St,Yt]),hr=l.useCallback(()=>{if(Ce){F(J);return}M.current||(M.current=!0,x("run"),Nt())},[Ce,J,x,Nt]),Bs=l.useCallback(N=>{const A=me.progress,W=Lu({failure:me.failure,isStarting:me.isStarting,isRunning:me.isRunning,isDone:me.isDone,failedCount:A.failedCount,ruleSaved:N});return W==="saving"||W==="commitFailed"||W==="backApplyStartFailed"?{...Fe,state:W}:{state:W,matched:A.matchedCount,applied:A.appliedCount,failed:W==="backApplyFailed"||W==="backApplyRestartFailed"?A.failedCount:0,failures:[]}},[me]),Ks=l.useMemo(()=>{const N=new Map;for(const A of[...n,...ue.messages,...L.messages])N.set(A.id,A);return N},[n,ue.messages,L.messages]),qs=u?i:_e.progress,Qs=l.useCallback(()=>{if(!k)return Fe;const{matched:N,outcome:A,failureReason:W}=k;if(W!==void 0)return{...Fe,state:"commitFailed",failureReason:W};if(!A){const qe=qs?.done??0;return{state:"backApplyRunning",matched:Math.max(N,qe),applied:qe,failed:0,failures:[]}}if(!(A.cancelled||A.error!==void 0))return{state:"backApplyComplete",matched:Math.max(N,A.done),applied:A.done,failed:0,failures:[]};if(A.done===0)return{...Fe,state:"commitFailed"};const ot=A.failedIds.map(qe=>Ks.get(qe)).filter(qe=>qe!==void 0),vr=A.failedIds.length>0?A.failedIds.length:Math.max(N-A.done,1);return{state:"runStopped",matched:Math.max(N,A.done),applied:A.done,failed:vr,failures:ot}},[k,qs,Ks]),Pe=u?Qs():K==="standing"||K==="temporary"?xe.isError?{...Fe,state:"commitFailed"}:xe.isSuccess?$?Bs(!0):{...Fe,state:"filterSaved"}:Fe:K==="all-like-these"&&ls(e)?Bs(!1):Qs(),gr=()=>{const N=Pu({runState:Pe.state,isEscalated:u!==void 0,committedScope:K,createFilterFailed:xe.isError,backApplyPending:$!==void 0,widenRunsAsJob:ls(e),failedIds:k?.outcome?.failedIds??[],sent:k?.sent??O});switch(N.kind){case"refreshStatus":me.refreshStatus();return;case"rerunEscalated":Jt();return;case"resetAndResend":xe.reset(),Nt();return;case"resend":Nt();return;case"startBackApply":$&&St($);return;case"waitOnJob":return;case"rerunBulk":Yt(N.targets);return}},br=l.useCallback(()=>{v(se,J)},[v,se,J]),Xt=l.useCallback(()=>{S.current=!0,v(se,J),d()},[v,se,J,d]),{stop:Hs}=_e,xr=l.useCallback(()=>{Fu(u,Hs)},[u,Hs]);Cc({shouldBlockFn:({action:N})=>N!=="BACK"?!1:(Xt(),!0),enableBeforeUnload:!1,disabled:J!=="run"});const Zt={messages:u?L.messages:te?ue.messages:n,count:Q,label:y==="selected"?"Your selection":"A sample of what matches",emptyReason:y==="similar"&&Se?"notIndexed":"noMatch",loading:u?L.isPending:te&&(Q.status==="loading"||ue.isPending)};return a.jsx(jo,{verb:e,steps:se,step:J,blockedReason:Ce,nudged:E===J,onBack:p,onExit:Ou(J,{dismiss:Xt,cancel:br}),onContinue:pr,onCommit:hr,match:{selectedCount:n.length,mode:y,accountId:$e.accountId,onModeChange:Wt,semanticUnavailable:Se,semanticErrorDetail:re.error instanceof Error?re.error.message:void 0,semanticFallbackTaken:P,onSemanticFallback:Be,escalatedScope:u?.scope,sample:Zt},properties:{clauses:H.clauses,matchOperator:H.matchOperator,onMatchOperatorChange:N=>T(A=>({...A,matchOperator:N})),clauseEdit:R,onStartAddClause:at,onStartEditClause:rt,onRemoveClause:ne,onChangeDraft:ve,onSubmitClause:mr,onCancelClause:()=>D(void 0),clauseFields:xi,clauseSuggestions:Ct,conversionNotice:f?kc(f):void 0,semanticFallbackTaken:P,sample:{...Zt,label:"What this matches"}},folder:{folders:et,mailboxId:H.moveMailboxId,delimiter:Jn(Y?.items??[]),onSelect:N=>T(A=>({...A,moveMailboxId:N})),onCreateFolder:t?Vt:void 0,restriction:$e.destination},rule:{draft:H,onScopeChange:N=>T(A=>({...A,scope:N})),onUntilChange:N=>T(A=>({...A,until:N})),restriction:$e.rule},name:{name:H.name??"",onNameChange:N=>T(A=>({...A,name:N})),nudged:E===J},review:{verb:e,mode:y,selectedCount:n.length,clauses:H.clauses,matchOperator:H.matchOperator,folder:tt,scope:H.scope,until:H.until,ruleName:se.includes("name")?H.name:void 0,escalatedScope:u?.scope,sample:Zt},run:{state:Pe.state,verb:e,scope:H.scope,matched:Pe.matched,applied:Pe.applied,failedCount:Pe.failed,failures:Pe.failures,failureReason:Pe.failureReason,onRetry:gr,onDismiss:Xt,onCancelRun:Du(k)?xr:void 0}})}function pm(e){const t=bo()==="search",{searchConversion:s}=rr(),{accounts:n}=_t(),{step:r,goToStep:o,goBack:i,closeWizard:c}=xo(t?"properties":"match");if(!r)return null;const d=t?s??_u:void 0;return a.jsx(Ku,{...e,...d?Bu(d,e,n):{},step:r,goToStep:o,goBack:i,closeWizard:c})}const qu=[],Os=l.createContext(null),Qu=e=>{const t=l.useContext(Os);return t?t.rowInteraction(e):null},Hu=()=>{const e=l.useContext(Os);if(!e)throw new Error("useThreadListSelection must be used inside <ThreadListInteraction>");return e},Gu="[data-message-id]",Vu=e=>Array.from(e.querySelectorAll(Gu)).map(t=>t.dataset.messageId).filter(t=>t!==void 0),Wu=(e,t)=>e.length===t.length&&e.every((s,n)=>s===t[n]),Yu=e=>{const[t,s]=l.useState([]);return l.useEffect(()=>{const n=e.current;if(!n)return;const r=()=>{const i=Vu(n);s(c=>Wu(c,i)?c:i)};r();const o=new MutationObserver(r);return o.observe(n,{childList:!0,subtree:!0}),()=>o.disconnect()},[e]),t};function hm({selectedMessageId:e,rows:t,onOpen:s,onDeleteMessages:n,onSelectionVerb:r,wizardOpen:o=!1,isDeleting:i=!1,commandsRef:c,onTriageContextChange:d,children:b}){const g=js(),{pushError:x}=be(),p=l.useRef(null),v=Yu(p),f=jc({orderedIds:v,isDesktop:g,initialFocusedId:e}),{focusedMessageId:u,setFocusedMessageId:m,pendingDomFocusRef:h,cursorMovedByPointerRef:w,selection:y,isMultiSelectMode:j,exitSelection:T,handleRowSelect:R}=f,{selectedIds:D,selectedCount:E,isSelected:F,toggle:P,select:_,toggleAll:K}=y,B=v.length>0&&v.every(L=>D.has(L)),k=l.useCallback(()=>{v.length>0&&K(v)},[v,K]),{intersectWith:I}=y;l.useEffect(()=>{I(v)},[I,v]),l.useEffect(()=>{const L=h.current;L!==null&&(h.current=null,p.current?.querySelector(`[data-message-id="${L}"]`)?.focus())});const $=l.useCallback(L=>{w.current=!0,m(L)},[w,m]),C=l.useCallback(L=>{g||_(L)},[g,_]),M=l.useCallback(()=>{u&&s(u)},[u,s]),S=l.useCallback(L=>s(L,{replace:!0}),[s]);ou({keyboardFocusedMessageId:f.keyboardFocusedMessageId,openMessageId:e,enabled:g&&E===0,open:S});const[z,O]=l.useState(null),{outcome:q,trashIsUnconfirmed:G,staleFolderLabel:le}=Qd(z?.targets??qu),ee=l.useCallback(L=>{if(z!==null)return!0;if(E>0)return r(L),!0;if(L!=="delete"||!u)return!1;const Q=t.find(Y=>Y.id===u);return!Q?.mailboxId||!Q.accountId?(x({title:"Couldn't delete this message",detail:"This list has lost track of which account and folder it is in, so reader can't tell whether deleting it would move it to Trash or erase it. Nothing was deleted.",action:{label:"Reload the list",href:window.location.href}}),!0):(O({ids:[u],targets:[{accountId:Q.accountId,mailboxId:Q.mailboxId}]}),!0)},[z,E,r,u,t,x]),re=l.useCallback(L=>{L.length!==0&&(n(L),O(null),T())},[n,T]),he=l.useCallback(()=>O(null),[]),te=l.useCallback(()=>E===0?!1:(T(),!0),[E,T]),ce=v.length>0;l.useEffect(()=>{if(c){if(!ce){c.current=null;return}return c.current={focusNext:f.focusNext,focusPrevious:f.focusPrevious,focusFirst:f.focusFirst,focusLast:f.focusLast,openFocused:M,toggleSelect:f.toggleFocusedSelection,extendSelectDown:f.extendRangeDown,extendSelectUp:f.extendRangeUp,selectAll:f.selectAllLoaded,clearSelection:te,requestVerb:ee,toggleDensity:()=>{}},()=>{c.current=null}}},[c,ce,f.focusNext,f.focusPrevious,f.focusFirst,f.focusLast,f.toggleFocusedSelection,f.extendRangeDown,f.extendRangeUp,f.selectAllLoaded,M,te,ee]);const oe=l.useMemo(()=>Array.from(D),[D]),fe=z!==null;l.useEffect(()=>{d?.({focusedMessageId:u,selectedIds:oe,orderedIds:v,hasList:ce,blocksKeyboard:fe||o})},[d,u,oe,v,ce,fe,o]);const de=cu(v,u),ue=l.useMemo(()=>({selectedIds:D,selectedCount:E,exitSelection:T,startSelectionVerb:r,orderedIds:v,allSelected:B,toggleAllLoaded:k,rowInteraction:L=>({focused:L===u,isTabStop:L===de,isDesktop:g,onFocusRow:$,selection:{isChecked:F(L),onToggleCheck:P,onRowSelect:R,isMultiSelectMode:j,onLongPress:C}})}),[D,E,T,r,v,B,k,u,de,g,$,F,P,R,j,C]);return a.jsxs(Os.Provider,{value:ue,children:[a.jsx("div",{ref:p,className:"contents",children:b}),a.jsx(uu,{isOpen:fe,messageIds:z?.ids??[],outcome:q,accountId:z?.targets[0]?.accountId,staleFolderLabel:le,trashIsUnconfirmed:G,isDeleting:i,onConfirm:re,onCancel:he})]})}function gm({title:e,isDeleting:t}){const s=rr(),{selectedCount:n,exitSelection:r,startSelectionVerb:o,orderedIds:i,allSelected:c,toggleAllLoaded:d}=Hu();return a.jsx(Gl,{title:s.title||e,navSlot:s.navSlot,titleMeta:s.titleMeta,searchSlot:s.searchSlot,searchField:s.searchField,idleSlot:s.makeFilterSlot,count:n,onCancel:r,onDelete:()=>o("delete"),onMarkRead:()=>o("markRead"),isBusy:t,selectAll:i.length>0?{checked:c,indeterminate:n>0&&!c,onChange:d}:void 0})}const cs=e=>{e.preventDefault(),e.stopPropagation()},Ju=(e,t)=>{const s=l.useRef(!1),n=l.useCallback(i=>{if(s.current=!1,i.button!==0)return;const c=ms(i);dn(c)&&t?.(e,c)&&(cs(i),s.current=!0,i.currentTarget.focus(),c.shiftKey&&window.getSelection()?.removeAllRanges())},[t,e]),r=l.useCallback(i=>{!i.ctrlKey||!t||i.preventDefault()},[t]),o=l.useCallback(i=>{if(s.current)return s.current=!1,cs(i),!0;const c=ms(i);return!dn(c)||!t?.(e,c)?!1:(cs(i),c.shiftKey&&window.getSelection()?.removeAllRanges(),!0)},[t,e]);return{onMouseDown:n,onContextMenu:r,claimClick:o}},Xu=({thread:e,active:t=!1,focused:s,isTabStop:n,density:r="comfortable",isDesktop:o,badge:i,selection:c,inListbox:d=!1,link:b,onClick:g,onFocusRow:x})=>{const p=ae(),v=e.id,f=Qu(v),u=s??f?.focused??!1,m=n??f?.isTabStop??!1,h=c??f?.selection,w=x??f?.onFocusRow,y=o??f?.isDesktop??!0,j=h?.isChecked??!1,T=h?.isMultiSelectMode??!1,R=h?.onToggleCheck,D=h?.onRowSelect,E=h?.onLongPress,F=l.useCallback(S=>{S.preventDefault(),S.stopPropagation(),R?.(v)},[R,v]),P=Ju(v,D),_=l.useCallback(S=>{if(!P.claimClick(S)){if(!y){if(T){S.preventDefault(),S.stopPropagation(),R?.(v);return}g?.();return}D?.(v,ms(S)),g?.()}},[P,y,T,R,D,g,v]),K=l.useCallback(()=>{E?.(v)},[E,v]),{longPressProps:B}=El({onLongPress:K,accessibilityDescription:j?"Deselect message":"Select message"}),k=l.useCallback(()=>{p.prefetchQuery(Ot({path:{messageId:v}}))},[p,v]),I=l.useCallback(()=>{k(),w?.(v)},[k,w,v]),$=xt({"data-list-row":"","data-message-row":!0,"data-message-id":v,...d?{role:"option","aria-selected":j}:{},tabIndex:m?0:-1,onClick:_,onMouseDown:P.onMouseDown,onContextMenu:P.onContextMenu,onMouseEnter:k,onFocus:I},y||!h?{}:B),C=U(r==="compact"?Ta({active:t,focused:u}):U("group",Rs({active:t,focused:u})),"outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-inset",j&&"bg-accent-soft",!y&&"min-h-11 select-none [-webkit-touch-callout:none]"),M=r==="compact"?a.jsx(Ia,{thread:e}):a.jsx(Ms,{thread:e,badge:i,selection:h?{checked:j,alwaysVisible:T,onToggle:F}:void 0});return b===void 0?a.jsx("button",{type:"button",...$,className:C,children:M}):a.jsx(ea,{to:"/mail/$mailboxId/$threadId/$messageId",params:{...b,messageId:v},search:S=>S,variant:"row",...$,className:C,children:M})},bm=l.memo(Xu),Zu="Open a message first",ef="This conversation hasn't loaded yet",tf="The mailbox list hasn't loaded yet",sf="Couldn't find this mailbox's account — reload to try again",nf={reply:"Reply",replyAll:"Reply all",forward:"Forward",delete:"Move to Trash",move:"Move to mailbox",flag:"Star"},xm=({hasThread:e,messageId:t,intelligenceOpen:s,canToggleIntelligence:n,onToggleIntelligence:r,onReply:o,onReplyAll:i,onForward:c,onDelete:d,onToggleStar:b,isStarred:g,moveContext:x,moveContextLoading:p})=>{const[v,f]=l.useState(null),u=t??null,m=E=>e?E==="move"?x?null:p?tf:sf:{reply:o,replyAll:i,forward:c,delete:d,flag:b}[E]?null:ef:Zu,h=v&&v.messageId===u?v:null,w=h?m(h.action):null,y=h?.action==="move"&&h.overThread&&!!x,j=w??(h&&!y?`${nf[h.action]} is ready — press it again`:null),T=E=>f({action:E,messageId:u,overThread:e}),R=E=>()=>T(E),D=(E,F)=>F?()=>{f(null),F()}:R(E);return a.jsx(Ml,{hasThread:e,isStarred:g,onUnavailable:T,unavailableHint:j,replyTitle:`Reply ${it("reply")}`,replyAllTitle:`Reply all ${it("replyAll")}`,forwardTitle:`Forward ${it("forward")}`,deleteTitle:`Move to Trash ${it("delete")}`,flagTitle:`Star ${it("toggleStar")}`,onReply:D("reply",o),onReplyAll:D("replyAll",i),onForward:D("forward",c),onDelete:D("delete",d),onToggleStar:D("flag",b),onMove:R("move"),moveSlot:x?a.jsx(Fs,{accountId:x.accountId,currentMailboxId:x.currentMailboxId,onMove:x.onMove,label:"Move to mailbox",defaultOpen:y}):void 0,children:a.jsx(Rl,{open:s,enabled:n,onToggle:r})})};function af(e){const[t,s]=l.useState(null);t!==null&&t!==e&&s(null);const n=e!==null&&t===e,r=l.useCallback(()=>s(null),[]),o=l.useCallback(()=>s(e),[e]),i=l.useCallback(()=>s(n?null:e),[n,e]);return{isOpen:n,open:o,close:r,toggle:i}}const vm=e=>{const{intelligenceOpen:t,onToggleIntelligence:s,onRaiseIntelligence:n}=_t(),r=ta()?.showIntelligencePane??!1,o=e??null,i=af(o),c=!r&&i.isOpen,{open:d,toggle:b}=i,g=l.useCallback(()=>{if(r){s();return}b()},[r,s,b]),x=l.useCallback(()=>{!r||t||n()},[r,t,n]),p=l.useCallback(()=>{if(!r){d();return}x()},[r,d,x]);return{canToggle:o!==null,isShowing:o!==null&&(r?t:c),toggle:g,open:p,drawerOpen:c,closeDrawer:i.close,railFits:r,openRail:x}},ym=(e,{toggle:t,open:s})=>{l.useEffect(()=>(e.current={toggle:t,open:s},()=>{e.current=null}),[e,t,s])},rf=()=>{const e=ae();return l.useCallback(t=>{const s=Me({path:{threadId:t.threadId}}),r=e.getQueriesData({queryKey:s}).flatMap(([,o])=>o?.items.map(i=>i.messageId)??[]);return r.length>0?r:[t.messageId]},[e])},of=[],cr=e=>{const{data:t}=Z({...Zn({path:{threadId:e??""}}),enabled:!!e});return t?.items??of},km=(e,t)=>{const s=cr(e),n=t?s.find(o=>o.messageId===t):void 0,r=s.length>0?s[s.length-1]:void 0;return n??r},jm=({thread:e,isOpen:t=!1,mailboxId:s,accountId:n,onAfterOptimisticRemove:r})=>{const o=s??e?.mailboxId,i=n??e?.accountId,{accountId:c}=$s(i?void 0:o),d=i??c,b=rf(),{deleteMessages:g}=Ds({mailboxId:o??"",threadId:e?.threadId,accountId:d,onAfterOptimisticRemove:r}),{moveMessages:x}=Ht({mailboxId:o??"",threadId:e?.threadId,accountId:d,onAfterOptimisticRemove:r}),p=cr(t?e?.threadId:void 0),f=p.find(y=>y.messageId===e?.messageId)?.hasStars??e?.hasStars,{toggleStar:u}=Ga({threadId:e?.threadId??"",mailboxId:o??"",messages:p}),m=l.useCallback(()=>{e&&g(b(e))},[e,b,g]),h=l.useCallback(y=>{e&&x(b(e),y)},[e,b,x]),w=l.useCallback(()=>{e&&u(e.messageId,f??!1)},[e,f,u]);return{mailboxId:o,accountId:d,isStarred:f,deleteThread:m,moveThread:h,toggleStar:w}},Ln=(e,t,s)=>{if(!t)return null;const n=e.indexOf(t);if(n===-1)return null;const r=s==="next"?n+1:n-1;return r<0||r>=e.length?null:e[r]},wm=()=>{const[e,t]=l.useState(void 0),[s,n]=l.useState([]),[r,o]=l.useState([]),i=l.useRef(null),[c,d]=l.useState(!1),[b,g]=l.useState(!1),x=l.useCallback(p=>{t(p.focusedMessageId),n(p.selectedIds),p.orderedIds&&o(p.orderedIds),d(p.hasList),g(p.blocksKeyboard)},[]);return{listCommandsRef:i,onTriageContextChange:x,focusedMessageId:e,selectedIds:s,orderedIds:r,hasList:c,blocksKeyboard:b}},Cm=({context:e,orderedIds:t,selectedMessageId:s,enabled:n=!0,onClose:r,handlers:o})=>{const{listCommandsRef:i,hasList:c,blocksKeyboard:d}=e,b=l.useCallback(()=>{i.current?.clearSelection()||s&&r()},[i,s,r]);return Do({enabled:n&&!d,handlers:{...c?{focusNext:()=>i.current?.focusNext(),focusPrevious:()=>i.current?.focusPrevious(),focusFirst:()=>i.current?.focusFirst(),focusLast:()=>i.current?.focusLast(),openFocused:()=>i.current?.openFocused(),toggleSelect:()=>i.current?.toggleSelect(),extendSelectDown:()=>i.current?.extendSelectDown(),extendSelectUp:()=>i.current?.extendSelectUp(),selectAll:()=>i.current?.selectAll(),toggleDensity:()=>i.current?.toggleDensity()}:{},back:b,...o}}),{goBack:b,nextMessageId:Ln(t,s,"next")??void 0,previousMessageId:Ln(t,s,"previous")??void 0}},lf={sender:"sender",recipient:"recipient",subject:"subject",attachment:"attachment",body:"body",entities:"entities"};function cf(e){return lf[e]??e}function Sm(e,t){const{folder:s}=Cs(t,[e.mailboxId]);return{id:e.messageId,sender:e.fromName??e.fromEmail??"Unknown",...e.fromEmail?{senderEmail:e.fromEmail}:{},subject:e.subject??"(No subject)",snippet:e.snippet??"",date:Xe(e.sentDate),unread:!e.isRead,flagged:e.hasStars===!0,threadId:e.threadId,mailboxId:e.mailboxId,...s?{folder:s}:{}}}function Nm(e,t){const{folder:s}=Cs(t,e.mailboxId?[e.mailboxId]:[]);return{id:e.id,sender:e.fromName,...e.fromEmail?{senderEmail:e.fromEmail}:{},subject:e.subject,snippet:e.snippet,date:e.timeLabel,unread:!e.isRead,flagged:e.starred===!0,...e.threadId?{threadId:e.threadId}:{},...e.mailboxId?{mailboxId:e.mailboxId}:{},...s?{folder:s}:{}}}function df(e,t){const{mailboxId:s,folder:n}=Cs(t,e.mailboxIds);return{id:e.messageId,sender:e.fromName??"Unknown",subject:e.subject??"(No subject)",snippet:"",date:e.sentDate!=null?Xe(e.sentDate*1e3):"",threadId:e.threadId,matchedChunkLabel:cf(e.matchedChunkType),score:e.score,...s?{mailboxId:s}:{},...n?{folder:n}:{}}}function Tm(e,t,s){const n=new Set(t),r=[];for(const o of[...e].sort((i,c)=>c.score-i.score))n.has(o.threadId)||(n.add(o.threadId),r.push(df(o,s)));return r}function Im(e){const t=e.authenticity?.dkimMismatch===!0;return{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:Xe(e.sentDate),sentDate:e.sentDate,isRead:e.isRead,hasAttachment:e.hasAttachment,starred:e.hasStars===!0,trust:e.senderTrust,category:Va(e.category),suspicious:t}}function Em(e){return e.filter(t=>t.muted!==!0)}function Rm(e,t){const s=new Set,n=[];for(const r of[...e,...t])s.has(r.id)||(s.add(r.id),n.push(r));return n.sort((r,o)=>(o.sentDate??0)-(r.sentDate??0))}const Pn=[{id:"personal",label:"Personal",category:ye.personal},{id:"transactional",label:"Transactional",category:ye.transactional},{id:"newsletter",label:"Newsletter",category:ye.newsletter},{id:"marketing",label:"Marketing",category:ye.marketing},{id:"social",label:"Social",category:ye.social},{id:"automated",label:"Automated",category:ye.automated},{id:"uncategorized",label:"Unclassified",category:ye.uncategorized}];function Mm(e){const t=new Map(Pn.map(n=>[n.category,[]]));for(const n of e){const r=n.category??ye.uncategorized;(t.get(r)??t.get(ye.uncategorized))?.push(n)}const s=[];for(const n of Pn){const r=t.get(n.category);r&&r.length>0&&s.push({id:n.id,label:n.label,threads:r})}return s}function Am(e,t){return e.fromName.toLowerCase().includes(t)||e.fromEmail.toLowerCase().includes(t)||e.subject.toLowerCase().includes(t)||e.snippet.toLowerCase().includes(t)}function $m(e,t){return t.every(s=>{switch(s.type){case"from":{const n=s.value.toLowerCase();return e.fromEmail.toLowerCase().includes(n)||e.fromName.toLowerCase().includes(n)}case"subject":return e.subject.toLowerCase().includes(s.value.toLowerCase());case"category":return(e.category??"uncategorized")===s.category;case"hasAttachment":return e.hasAttachment===!0;case"isUnread":return!e.isRead;case"isRead":return e.isRead===!0;case"isStarred":return e.starred===!0;case"after":return e.sentDate!=null&&e.sentDate>=s.epochSeconds*1e3;case"before":return e.sentDate!=null&&e.sentDate<s.epochSeconds*1e3;case"in":return e.mailboxId===s.mailboxId;case"account":return e.accountId===s.accountId;default:return!1}})}const dr=8;function zs(e,t){const s=Math.max(0,Math.min(t,e.length)),n=Zo(e).find(o=>s>=o.start&&s<=o.end);if(!n)return{start:s,end:s,raw:""};const r=ei(n.raw);return r?{start:n.start,end:n.end,raw:n.raw,name:r.name,value:r.value}:{start:n.start,end:n.end,raw:n.raw}}function uf(e,t){const s=zs(e,t);if(s.name===void 0)return{kind:"token",query:s.raw};const n=oa(s.name);if(n)return{kind:"value",token:n.name,source:n.values,query:s.value??""}}const ff={mailbox:"mailboxes",account:"accounts",contact:"contacts"},mf=(e,t)=>{if(e.values==="fixed")return e.options??[];const s=ff[e.values];return s?t[s]??[]:[]},pf=(e,t)=>{if(t==="")return 1;const s=e.toLowerCase();return s.startsWith(t)?0:s.includes(t)?1:-1},xs=(e,...t)=>{let s=-1;for(const n of t){if(n===void 0)continue;const r=pf(n,e);r<0||(s<0||r<s)&&(s=r)}return s},ur=e=>{const t=new Set;return e.filter(s=>s.rank>=0).sort((s,n)=>s.rank-n.rank).filter(s=>{const n=s.suggestion.value.toLowerCase();return t.has(n)?!1:(t.add(n),!0)}).slice(0,dr).map(s=>s.suggestion)},Dn=e=>({value:`${e.name}:`,label:`${e.name}:`,hint:e.label});function hf(e){const t=e.trim().toLowerCase();if(t==="")return Zs.map(Dn);const s=[];for(const n of Zs)if(s.push({rank:xs(t,`${n.name}:`,n.label),suggestion:Dn(n)}),n.values==="fixed")for(const r of n.options??[]){const o=ia(n.name,r.value);s.push({rank:xs(t,o,r.label),suggestion:{value:o,label:r.label??o,hint:o}})}return ur(s)}function gf(e,t,s){const n=t.trim().toLowerCase(),r=mf(e,s).map(o=>({rank:xs(n,o.value,o.label),suggestion:{value:ia(e.name,o.value),label:o.label??o.value,...o.hint?{hint:o.hint}:{}}}));return ur(r)}function bf(e,t,s={}){const n=zs(e,t);if(n.name===void 0)return hf(n.raw);const r=oa(n.name);return r?gf(r,n.value??"",s):[]}function xf(e,t,s){const n=zs(e,t),r=!s.value.endsWith(":"),o=/\s/.test(e.slice(n.end,n.end+1)),i=r&&!o?`${s.value} `:s.value;return{query:e.slice(0,n.start)+i+e.slice(n.end),cursor:n.start+i.length+(r&&o?1:0)}}const vf=e=>({value:e.normalizedEmail,...e.displayName?{label:e.displayName,hint:e.normalizedEmail}:{}}),yf=250,kf=2;function jf({query:e,cursor:t,enabled:s}){const{accounts:n}=_t(),{mailboxesByName:r}=la(),o=r!==void 0,i=s?uf(e,t):void 0,c=i?.source==="contact"?i.query.trim():"",d=da(c,yf),{data:b}=Z({...ws({query:{q:d,limit:dr}}),enabled:d.length>=kf}),g=Ss({queries:n.map(f=>({...bt({path:{accountId:f.accountId}}),staleTime:1/0}))}),x=l.useMemo(()=>o?Fo(g.map(f=>f.data?.items??[]),n):[],[o,g,n]),p=l.useMemo(()=>Oo(n),[n]),v=l.useMemo(()=>(b?.items??[]).map(vf),[b]);return l.useMemo(()=>{if(!s)return[];const f=bf(e,t,{mailboxes:x,accounts:p,contacts:v});return o?f:f.filter(u=>u.value!=="in:")},[s,e,t,x,p,v,o])}const fr="remit.recentSearches",wf=5;function vs(){try{const e=localStorage.getItem(fr);if(!e)return[];const t=JSON.parse(e);return Array.isArray(t)?t.filter(s=>typeof s=="string"):[]}catch{return[]}}function Fn(e){const t=e.trim();if(!t)return vs();const s=[t,...vs().filter(n=>n!==t)].slice(0,wf);try{localStorage.setItem(fr,JSON.stringify(s))}catch{return s}return s}const Cf=e=>e.tier!=="phone"&&e.hasLiveInput&&!(e.bodyRendersCommittedResults&&e.hasCommittedQuery);function Sf(e){const{spam:t}=La([...e]),s=new Map;for(const r of t)r.mailboxId&&s.set(r.mailboxId,(s.get(r.mailboxId)??0)+1);let n;for(const[r,o]of s)(!n||o>n.count)&&(n={mailboxId:r,count:o});return n}function Lm({title:e,unreadCount:t,children:s,selectionBar:n,paneOverlay:r,footer:o,searchFilter:i,searchResults:c,searchLoading:d,relatedResults:b,relatedLoading:g,onSelectSearchResult:x,searchResultsLabel:p="Top matches",relatedResultsLabel:v="Related",searchResultsInBody:f=!1,refreshControl:u}){const{accounts:m,resultFolderIndex:h,searchQuery:w,searchInput:y,onSearchChange:j,onSearchClear:T,searchViewKey:R}=_t(),D=la(),E=zo(),F=ta(),P=_o(),[_,K]=l.useState(!1),[B,k]=l.useState(vs),I=wo(),$=l.useRef(R);l.useEffect(()=>{$.current!==R&&($.current=R,K(!1))},[R]);const[C,M]=l.useState(0),[S,z]=l.useState(!1),[O,q]=l.useState(void 0),G=jf({query:y,cursor:C,enabled:S&&y.trim().length>0}),le=l.useCallback(ne=>{const ve=xf(y,C,ne);j(ve.query),q({cursor:ve.cursor})},[y,C,j]),ee=Co({count:G.length,onAccept:ne=>{const ve=G[ne];ve&&le(ve)}}),{comboboxProps:re,handleKeyDown:he}=ee,te=l.useMemo(()=>({comboboxProps:re,onKeyDown:he,onCaretChange:M,onFocusChange:z,...O?{caret:O}:{}}),[re,he,O]),ce=ee.open?a.jsx(Io,{id:ee.listId,suggestions:G,activeIndex:ee.activeIndex,optionId:ee.optionId,onPick:le,onHighlight:ee.setActiveIndex,label:"Search suggestions",className:"mx-row-inset mt-1 shrink-0"}):null,oe=y.trim().length>0,{mailboxesByName:fe,accountsByName:de}=D,ue=l.useMemo(()=>ti(y,{mailboxesByName:fe,accountsByName:de}),[y,fe,de]),L=ue.tokens.map(ne=>({label:ra(ne),onRemove:()=>j(si(y,ne))})),Q=c??[],Y=b??[],we=oe?[{id:"top",label:p,results:Q},{id:"related",label:v,results:Y}]:[],et=!(Q.length+Y.length>0)&&(d===!0||g===!0),{scope:Vt}=Uo(m),tt=So(),st=yi(tt),nt=ki(tt,Vt,st?h.get(st)?.role:void 0),H=nt.kind==="global"?Sf([...Q,...Y]):void 0,Ct=H?{kind:"global",onScopeToSpam:()=>E(H.mailboxId,w)}:nt,me=Y.length>0,xe=l.useMemo(()=>Au(ue,{searchHadSemanticReach:me}),[ue,me]),_e=oe?xe:void 0,Ue=oe?{onClick:()=>{K(!1),I("properties","search")},blockedReason:yc(xe)?void 0:No(xe.droppedFacets.map(ne=>ne.label))}:void 0,se=Ue?a.jsx(Pa,{...Ue}):null,J=Cf({tier:P,hasLiveInput:oe,hasCommittedQuery:w.trim().length>0,bodyRendersCommittedResults:f}),$e=ne=>{k(Fn(y)),x?.(ne)},_s=a.jsx(Da,{value:y,sections:we,loading:et,onSelectResult:$e,tokens:L,scope:Ct}),Ce=n===void 0,Le=J?a.jsx("div",{className:"h-full overflow-y-auto",children:_s}):null,Wt=Le&&!Ce?Le:s,Be=Le&&Ce?Le:null,Se=Bo(P),at=Se&&(_||oe),rt=l.useMemo(()=>({title:e,searchResults:Be,makeFilterSlot:se,searchConversion:_e,navSlot:F&&!F.showNavPane&&a.jsx(V,{variant:"ghost",size:"touch",icon:a.jsx(ji,{className:"size-5"}),onClick:()=>F.openNav(),"aria-label":"Menu",className:"-ml-2 shrink-0"}),titleMeta:a.jsxs(a.Fragment,{children:[a.jsxs("span",{className:"shrink-0 text-2xs text-fg-subtle",children:[t.toLocaleString()," unread"]}),a.jsx(Xs,{}),u]}),searchSlot:Se&&!at&&a.jsx(V,{variant:"ghost",size:"touch",icon:a.jsx(To,{className:"size-5"}),onClick:()=>K(!0),"aria-label":"Search",className:"shrink-0"}),searchField:at&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"min-w-0 flex-1",children:a.jsx(sa,{value:y,onChange:j,onClear:T,globalFocusKey:!1,showClearButton:!1,suggest:te})}),a.jsx(V,{variant:"ghost",size:"touch",icon:a.jsx(Pt,{className:"size-5"}),onClick:()=>{T(),K(!1)},"aria-label":"Close search",className:"shrink-0"}),a.jsx(Xs,{})]})}),[e,t,F,Se,at,y,j,T,te,Be,se,_e,u]);if(P==="phone"&&_){const ne=ve=>{k(Fn(y)),K(!1),x?.(ve)};return a.jsxs(bs.Provider,{value:rt,children:[a.jsx(Hl,{value:y,onChange:j,onClear:T,onCancel:()=>{K(!1),T()},filter:i,recentSearches:B,onPickRecent:j,makeFilter:Ue,sections:we,loading:et,onSelectResult:ne,tokens:L,scope:Ct,suggest:te,suggestList:ce}),r]})}return a.jsx(bs.Provider,{value:rt,children:a.jsxs("section",{className:"relative flex h-full w-full flex-col bg-surface",children:[n?.(rt),ce,a.jsx("div",{className:"min-h-0 flex-1",children:Wt}),o,r]})})}export{af as $,lm as A,Hc as B,Fl as C,uu as D,je as E,ke as F,rm as G,Im as H,$m as I,$s as J,nm as K,km as L,bm as M,Ds as N,Ht as O,wm as P,jm as Q,tm as R,Gl as S,em as T,rf as U,Ga as V,$d as W,Pd as X,Fd as Y,Dd as Z,Cm as _,Sl as a,ym as a0,am as a1,cm as a2,qd as a3,vm as a4,xm as a5,Jf as a6,sm as a7,Sm as a8,Tm as a9,Em as aa,Rm as ab,Am as ac,Nm as ad,La as ae,Sf as af,Mm as ag,Yf as ah,Cf as ai,Ul as aj,hm as ak,Gf as al,Hu as am,Lm as an,Ls as ao,ht as ap,El as aq,xt as ar,Es as as,ms as at,Vf as au,Wf as av,Xf as aw,gm as ax,rr as b,Rs as c,Zf as d,Wa as e,Qd as f,wl as g,au as h,ou as i,mm as j,Jd as k,Cc as l,dm as m,jl as n,um as o,cu as p,pm as q,fm as r,xl as s,Va as t,Ju as u,lu as v,Qc as w,Ya as x,om as y,im as z};