@remit/web-client-dist 0.0.645 → 0.0.647

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 (163) hide show
  1. package/assets/{BriefPane-CmPRoEDf.js → BriefPane-DDI-uJGj.js} +1 -1
  2. package/assets/{CalendarComposePane-DqJOMVmP.js → CalendarComposePane-DNi6A7t1.js} +1 -1
  3. package/assets/{CalendarComposeSeed-D0NGKut1.js → CalendarComposeSeed-C5-aKiBn.js} +1 -1
  4. package/assets/{CalendarShell-iJpBRfM0.js → CalendarShell-Chi7zUPT.js} +1 -1
  5. package/assets/{EmptyState-DujlHZ5y.js → EmptyState-C4dAZQdY.js} +1 -1
  6. package/assets/{ErrorState-BVI-jO5V.js → ErrorState-C5skYR61.js} +1 -1
  7. package/assets/{FlaggedPane-BAOdwEWL.js → FlaggedPane-D4slfql7.js} +1 -1
  8. package/assets/{FullCompose-Bi7k3jvU.js → FullCompose-Y4MrfaVg.js} +1 -1
  9. package/assets/MailListHeader-B16BkNe9.js +7 -0
  10. package/assets/{MailNav-c5Pb-xMM.js → MailNav-el9V6UqM.js} +1 -1
  11. package/assets/{MailShell-DrmERVdx.js → MailShell-DhPWfi3t.js} +1 -1
  12. package/assets/{MailViewChrome-gm2yTDEG.js → MailViewChrome-CsBvfZQm.js} +1 -1
  13. package/assets/{MailboxPane-Dvp-DTKa.js → MailboxPane-QsATKo-j.js} +1 -1
  14. package/assets/{NavMenuButton-BUju-0zI.js → NavMenuButton-Dfvy_7Dm.js} +1 -1
  15. package/assets/{OnboardingWizard-D7OM_-SY.js → OnboardingWizard-Czdora7x.js} +1 -1
  16. package/assets/{OpenCalendarEvent-CzjPMTD7.js → OpenCalendarEvent-Ctpns2Bw.js} +1 -1
  17. package/assets/{OutboxPane-BH-XzR-F.js → OutboxPane-BTkQnlX4.js} +1 -1
  18. package/assets/_calendarObjectId-Bmc_s_sr.js +1 -0
  19. package/assets/_mailboxId-LSeKi85I.js +1 -0
  20. package/assets/_messageId-BMSeWS8P.js +1 -0
  21. package/assets/_messageId-Ct6MMT0b.js +1 -0
  22. package/assets/_messageId-u3ABuOi3.js +1 -0
  23. package/assets/_outboxMessageId-B6NVBE7b.js +1 -0
  24. package/assets/_recurrenceId-Dj0eDAxP.js +1 -0
  25. package/assets/_threadId-C5kC04mC.js +1 -0
  26. package/assets/_threadId-fXGqYP5s.js +1 -0
  27. package/assets/_threadId-mgs0lP2k.js +1 -0
  28. package/assets/{_view._date-B0fX-9gG.js → _view._date-DmO9W4Hp.js} +1 -1
  29. package/assets/{accounts-upLCPjpO.js → accounts-jhHMZURR.js} +1 -1
  30. package/assets/{advanced-CZGc2-M4.js → advanced-DxWwIIqu.js} +1 -1
  31. package/assets/{appearance-CAH6XmGD.js → appearance-URdQXm0J.js} +1 -1
  32. package/assets/{attendee-row-Dsfh28CP.js → attendee-row-CzLRuZkS.js} +1 -1
  33. package/assets/{avatar-ByMZanCG.js → avatar-DReNujdD.js} +1 -1
  34. package/assets/{bell-off-CrtI26Ps.js → bell-off-BO2gV0YK.js} +1 -1
  35. package/assets/{bottom-sheet-Do1Kqt6C.js → bottom-sheet-CneWkZHd.js} +1 -1
  36. package/assets/{brief-BO_TTqAz.js → brief-B6cgf0is.js} +1 -1
  37. package/assets/brief-D0osiLTl.js +1 -0
  38. package/assets/{browser-ponyfill-CsF7HmcD.js → browser-ponyfill-CkapmCFO.js} +1 -1
  39. package/assets/{bug-VhkClwO6.js → bug-Dobgqhnx.js} +1 -1
  40. package/assets/{calendar-Zn-TH_hc.js → calendar-DeN02NaA.js} +1 -1
  41. package/assets/{calendar-clash-strip-DI7zlMfA.js → calendar-clash-strip-QFFUz8UQ.js} +1 -1
  42. package/assets/{calendar-format-D-j3MVfj.js → calendar-format-CkNnvhu8.js} +1 -1
  43. package/assets/{calendar-report-BLLDZVuM.js → calendar-report-BC1ZSJs6.js} +1 -1
  44. package/assets/{calendar-suggestion-CmSBYNKY.js → calendar-suggestion-B0HwdBJl.js} +1 -1
  45. package/assets/{calendars-DJROUOur.js → calendars-CjelSz63.js} +1 -1
  46. package/assets/{card-C2-ECsTy.js → card-dsNrYMSh.js} +1 -1
  47. package/assets/{checkbox-DukR_YLD.js → checkbox-1ELJWaiG.js} +1 -1
  48. package/assets/chevron-left-DI6K9zJp.js +1 -0
  49. package/assets/{circle-check-BQ1ugGru.js → circle-check-DLz6TIwf.js} +1 -1
  50. package/assets/{circle-check-big-DwiFNQIV.js → circle-check-big-BwbzDWkH.js} +1 -1
  51. package/assets/{circle-help-D-hOmab_.js → circle-help-nKRkRrxf.js} +1 -1
  52. package/assets/{clock-CtbA5tRe.js → clock-Dceh-vYk.js} +1 -1
  53. package/assets/compose._-_outboxMessageId_-BdT6ygHe.js +1 -0
  54. package/assets/compose._-_outboxMessageId_-Cq6zz8v3.js +1 -0
  55. package/assets/compose._-_outboxMessageId_-_2ByIPQK.js +1 -0
  56. package/assets/compose._-_outboxMessageId_-oaTJ2rX6.js +1 -0
  57. package/assets/{config-import-DeH39Owt.js → config-import-h2hBuwyg.js} +1 -1
  58. package/assets/{confirm-dialog-D5_3GRL0.js → confirm-dialog-B9rqkVa0.js} +1 -1
  59. package/assets/{copy-BwOq7xiy.js → copy-j7JY0yjD.js} +1 -1
  60. package/assets/{credential-steps-Bb4Uifur.js → credential-steps-BmhbQESa.js} +1 -1
  61. package/assets/{download-Bhhu1YYz.js → download-CupaMHIk.js} +1 -1
  62. package/assets/{file-json-B7hJq2fl.js → file-json-GbedUr-6.js} +1 -1
  63. package/assets/filters-DhRkHr08.js +1 -0
  64. package/assets/flagged-BMef2m0l.js +1 -0
  65. package/assets/{flagged-Dr49oMVf.js → flagged-BP66dE4t.js} +1 -1
  66. package/assets/{folders-BjWpYCVj.js → folders-BQMyDjrZ.js} +1 -1
  67. package/assets/{help-copy-DdF1Jz8I.js → help-copy-CFsq9avW.js} +1 -1
  68. package/assets/{import-DuAuwbVD.js → import-DlHB05YV.js} +1 -1
  69. package/assets/index-7v0uUHbC.js +1 -0
  70. package/assets/{index-DCxO9BXL.js → index-BMs6sEa1.js} +4 -4
  71. package/assets/index-BQG7ael2.js +1 -0
  72. package/assets/index-B_WyUga3.js +1 -0
  73. package/assets/index-Ct6MMT0b.js +1 -0
  74. package/assets/{index-1tDGC9Zd.js → index-CwWM67NV.js} +4 -4
  75. package/assets/index-DFmlJXLM.js +1 -0
  76. package/assets/index-DIKznAHS.js +1 -0
  77. package/assets/{index-BX4FQOci.js → index-DfBSCm9a.js} +1 -1
  78. package/assets/index-DhdKuAuL.js +1 -0
  79. package/assets/index-jhrsG6JV.js +1 -0
  80. package/assets/index-u3ABuOi3.js +1 -0
  81. package/assets/{kbd-GocZSdkd.js → kbd-D4cak2_L.js} +1 -1
  82. package/assets/{labels-CEutrviP.js → labels-9o3eXnqe.js} +1 -1
  83. package/assets/{mail-BgWv0vDi.js → mail-BeRy62_C.js} +1 -1
  84. package/assets/{mail-DZ7qS6U7.js → mail-rYx209u6.js} +1 -1
  85. package/assets/{map-pin-BnpFBW0x.js → map-pin-K36ow_bB.js} +1 -1
  86. package/assets/{menu-DGZU5xhL.js → menu-Ii2_MgiT.js} +1 -1
  87. package/assets/minus-ChPZzeni.js +1 -0
  88. package/assets/{new-s6RGtnEB.js → new-DLgcoEaw.js} +1 -1
  89. package/assets/onboarding-42_ADK4v.js +1 -0
  90. package/assets/{onboarding-completion-BjIwQr_e.js → onboarding-completion-HrHZge56.js} +1 -1
  91. package/assets/outbox-D1l0fp9B.js +1 -0
  92. package/assets/{pane-header-SxqJYaFK.js → pane-header-1GoJOJ7m.js} +1 -1
  93. package/assets/{pencil-T1qdJn7-.js → pencil-pXW5MHhB.js} +1 -1
  94. package/assets/{popover-menu-CkmMQ09c.js → popover-menu-BFjAfpYc.js} +1 -1
  95. package/assets/{refresh-cw-DjAWVCmD.js → refresh-cw-T_cDgxoQ.js} +1 -1
  96. package/assets/{rich-text-Pdcy5Nwp.js → rich-text-CVsZU2-1.js} +1 -1
  97. package/assets/{rich-text-spellcheck-worker-provider-BuQNj49L.js → rich-text-spellcheck-worker-provider-CtfwhR7A.js} +1 -1
  98. package/assets/{rotate-ccw-C-CXkNLR.js → rotate-ccw-Crpb5XKQ.js} +1 -1
  99. package/assets/{roving-focus-6Ps1GOii.js → roving-focus-CaY933ER.js} +1 -1
  100. package/assets/{row-actions-OrYFIAtn.js → row-actions-Cf9tj2oq.js} +1 -1
  101. package/assets/{search-mirror-YFw9jfWx.js → search-mirror-BCkfyqeh.js} +1 -1
  102. package/assets/{search-token-index-BYIEE9IJ.js → search-token-index-B30iFwVb.js} +1 -1
  103. package/assets/{sections-BdXt9HLF.js → sections-BA0vGpLD.js} +1 -1
  104. package/assets/{senders-BIAb37Ko.js → senders-DtGMptu_.js} +1 -1
  105. package/assets/settings-pKUQkaCM.js +1 -0
  106. package/assets/{settings-screen-DjFylkGU.js → settings-screen-DR2XUwwh.js} +1 -1
  107. package/assets/{shield-check-C4Gngb6A.js → shield-check-CWzcz6KV.js} +1 -1
  108. package/assets/{suggested-vips-nfO6P5mD.js → suggested-vips-DTLRAZLM.js} +1 -1
  109. package/assets/{suggestion._suggestionId-3dfrCKPh.js → suggestion._suggestionId--Fjakgzu.js} +1 -1
  110. package/assets/{undo-2-C18vJveD.js → undo-2-_UReZR98.js} +1 -1
  111. package/assets/{useCalendarData-p4YQcdqv.js → useCalendarData-BCmWqTxE.js} +1 -1
  112. package/assets/{useCalendarFreeBusy-q8dkV9bU.js → useCalendarFreeBusy-CsesAFnS.js} +1 -1
  113. package/assets/{useCalendarWrites-Bs29dmIW.js → useCalendarWrites-DZ39ckys.js} +1 -1
  114. package/assets/{useCalendars-Cv33CAIM.js → useCalendars-Drw3pPJl.js} +1 -1
  115. package/assets/{useDebouncedValue-Csd1G8YB.js → useDebouncedValue-B9f7KFpF.js} +1 -1
  116. package/assets/useFilters-CsNg6ABa.js +1 -0
  117. package/assets/{useLabels-DCtXet6O.js → useLabels-B83QXWey.js} +1 -1
  118. package/assets/{useLayoutTier-ChEDcGRs.js → useLayoutTier-Cy2CvC24.js} +1 -1
  119. package/assets/{useMessageBodyContent-JZVMduqC.js → useMessageBodyContent-BjLhGd0E.js} +1 -1
  120. package/assets/{useQueries-ChVROEOd.js → useQueries-CJO85Tgo.js} +1 -1
  121. package/assets/{useRefreshControl-BTnBFCED.js → useRefreshControl-yGPoq9tM.js} +1 -1
  122. package/assets/{useResultFolderIndex-DuWveF-w.js → useResultFolderIndex-TGbz0SlB.js} +1 -1
  123. package/assets/useSearchTokenContext-zqAAXPsY.js +84 -0
  124. package/assets/{useSemanticSearch-DpG2fIPV.js → useSemanticSearch-qS8Gn92L.js} +1 -1
  125. package/assets/{useSignature-CoMYaLJ6.js → useSignature-C3rVCKG4.js} +1 -1
  126. package/assets/wizard-selection-zWa1qc6-.js +1 -0
  127. package/index.html +1 -1
  128. package/package.json +1 -1
  129. package/assets/MailListHeader-GdiBejNL.js +0 -7
  130. package/assets/_calendarObjectId-JQFhShY3.js +0 -1
  131. package/assets/_mailboxId-ibPkJnks.js +0 -1
  132. package/assets/_messageId-9mieoYZp.js +0 -1
  133. package/assets/_messageId-gxQl69_8.js +0 -1
  134. package/assets/_messageId-rb96fbF2.js +0 -1
  135. package/assets/_outboxMessageId-CRt4ifV5.js +0 -1
  136. package/assets/_recurrenceId-TfRLpR4w.js +0 -1
  137. package/assets/_threadId-CuiJw_E0.js +0 -1
  138. package/assets/_threadId-DskB68HC.js +0 -1
  139. package/assets/_threadId-PucA6Oye.js +0 -1
  140. package/assets/brief-qW8YBA6-.js +0 -1
  141. package/assets/chevron-left-CZ7ZcFtx.js +0 -1
  142. package/assets/compose._-_outboxMessageId_-BNsXnM1h.js +0 -1
  143. package/assets/compose._-_outboxMessageId_-D-SHd2f7.js +0 -1
  144. package/assets/compose._-_outboxMessageId_-D8RmP7m1.js +0 -1
  145. package/assets/compose._-_outboxMessageId_-Dy-fiD4o.js +0 -1
  146. package/assets/filters-C5L3Mrn5.js +0 -1
  147. package/assets/flagged-BQ7l0e9H.js +0 -1
  148. package/assets/index-9mieoYZp.js +0 -1
  149. package/assets/index-BiDQZUCX.js +0 -1
  150. package/assets/index-BoR5pWZ3.js +0 -1
  151. package/assets/index-CikHdpIY.js +0 -1
  152. package/assets/index-D5Ze1vTC.js +0 -1
  153. package/assets/index-D7cwKFoc.js +0 -1
  154. package/assets/index-E3xi8Ymb.js +0 -1
  155. package/assets/index-Hi4Wx7e6.js +0 -1
  156. package/assets/index-rb96fbF2.js +0 -1
  157. package/assets/minus-BXvTd_hw.js +0 -1
  158. package/assets/onboarding-CT8Njgje.js +0 -1
  159. package/assets/outbox-BMXFKkUe.js +0 -1
  160. package/assets/settings-BC3Qouz8.js +0 -1
  161. package/assets/useFilters-CDR_zY2Q.js +0 -1
  162. package/assets/useSearchTokenContext-BjZLxeZU.js +0 -84
  163. package/assets/wizard-selection-DxUM65kM.js +0 -1
@@ -1 +0,0 @@
1
- import{F as o}from"./FullCompose-Bi7k3jvU.js";import"./index-1tDGC9Zd.js";import"./ErrorState-BVI-jO5V.js";import"./index-DCxO9BXL.js";import"./useMessageBodyContent-JZVMduqC.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./confirm-dialog-D5_3GRL0.js";const c=o;export{c as component};
@@ -1 +0,0 @@
1
- import{F as o}from"./FullCompose-Bi7k3jvU.js";import"./index-1tDGC9Zd.js";import"./ErrorState-BVI-jO5V.js";import"./index-DCxO9BXL.js";import"./useMessageBodyContent-JZVMduqC.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./confirm-dialog-D5_3GRL0.js";const c=o;export{c as component};
@@ -1 +0,0 @@
1
- import{F as o}from"./FullCompose-Bi7k3jvU.js";import"./index-1tDGC9Zd.js";import"./ErrorState-BVI-jO5V.js";import"./index-DCxO9BXL.js";import"./useMessageBodyContent-JZVMduqC.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./confirm-dialog-D5_3GRL0.js";const c=o;export{c as component};
@@ -1 +0,0 @@
1
- import{F as o}from"./FullCompose-Bi7k3jvU.js";import"./index-1tDGC9Zd.js";import"./ErrorState-BVI-jO5V.js";import"./index-DCxO9BXL.js";import"./useMessageBodyContent-JZVMduqC.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./confirm-dialog-D5_3GRL0.js";const c=o;export{c as component};
@@ -1 +0,0 @@
1
- import{h as X,i as Z,bl as ee,bm as te,r as g,bn as se,j as t,bo as ae,bp as ne,L as P,f as S,bq as ie,aM as re,g as oe,br as le,bs as ce,a3 as de,b5 as me,aH as ue,aI as pe,c as z,K as xe,bt as fe,ae as ge,af as he,bu as be,bv as ve,u as je,d as ye,aP as Ne,aR as Ce}from"./index-1tDGC9Zd.js";import{S as Se}from"./settings-screen-DjFylkGU.js";import{B as Fe}from"./bottom-sheet-Do1Kqt6C.js";import{u as Ie,a as Me}from"./useLabels-DCtXet6O.js";import{b as we,N as F,p as Ee,u as Te,r as Oe,a as De,S as L,c as Ae,n as ke,f as Le,d as Re,e as $e,g as Pe,h as ze,i as _e}from"./useFilters-CDR_zY2Q.js";import{C as A}from"./circle-check-BQ1ugGru.js";import{E as k,f as He}from"./ErrorState-BVI-jO5V.js";import"./avatar-ByMZanCG.js";import"./chevron-left-CZ7ZcFtx.js";import"./menu-DGZU5xhL.js";import"./circle-help-D-hOmab_.js";const Ue=(e,s)=>{const r=X(),n=Z({...te(),onSuccess:()=>{e&&(r.invalidateQueries({queryKey:we(e)}),s&&r.invalidateQueries({queryKey:ee({path:{accountId:e,filterId:s}})}))}}),{mutate:c}=n;return{updateFilter:g.useCallback(d=>{!e||!s||c({path:{accountId:e,filterId:s},body:d})},[e,s,c]),isPending:n.isPending,isSuccess:n.isSuccess,isError:n.isError,error:n.error,reset:n.reset}},Be=(e,s=!1)=>({clauses:e.literalClauses.map((n,c)=>({id:`clause-${c}`,field:n.field,value:n.value})),matchOperator:e.matchOperator==="And"?"all":"any",widen:e.hasAnchor?{anchorCount:1,...s?{inactive:!0}:{}}:void 0,moveMailboxId:e.actionMailboxId!==F?e.actionMailboxId:void 0,labelId:e.actionLabelId!==F?e.actionLabelId:void 0,scope:e.scope==="Temporary"?"until":"standing",until:e.scope==="Temporary"?Ke(e.expiresAt):void 0,name:e.name}),Ke=e=>{if(!e)return"";const s=Date.parse(e);if(Number.isNaN(s))return"";const r=new Date(s),n=c=>String(c).padStart(2,"0");return`${r.getFullYear()}-${n(r.getMonth()+1)}-${n(r.getDate())}`},R=e=>JSON.stringify({clauses:e.clauses.map(s=>[s.field,s.value]),operator:e.matchOperator,move:e.moveMailboxId??null,label:e.labelId??null,widen:e.widen?e.widen.inactive?"inactive":"active":"none"}),_=(e,s)=>R(e)!==R(s),$=e=>JSON.stringify({scope:e.scope==="until"?"until":"standing",until:e.scope==="until"?e.until??"":""}),H=(e,s)=>$(e)!==$(s),Ge=(e,s)=>{const r={},n=(e.name??"").trim();return n!==(s.name??"").trim()&&(r.name=n),_(e,s)&&(r.matchOperator=e.matchOperator==="all"?"And":"Or",r.literalClauses=e.clauses.map(c=>({field:c.field,value:c.value})),r.actionMailboxId=e.moveMailboxId??F,r.actionLabelId=e.labelId??F),H(e,s)&&(r.scope=e.scope==="until"?"Temporary":"Standing",e.scope==="until"&&(r.expiresAt=Ee(e.until??""))),r};function Qe({accountId:e,filter:s,folders:r,delimiter:n,labels:c,semanticUnavailable:j=!1,onClose:d}){const h=g.useMemo(()=>Be(s,j),[s,j]),[m,l]=g.useState(h),[i,u]=g.useState(),[b,p]=g.useState(!1),N=g.useRef(0),{count:y}=Te(e,Oe(m)),x=Ue(e,s.filterId),v=De(e),{createFolderIn:M}=se(e),{createLabel:I}=Ie(e),T=async o=>{const a=await I(o);return{id:a.labelId,name:a.name,color:a.color}},w=()=>u({mode:"add",draft:{field:L[0],value:""}}),f=o=>{const a=m.clauses.find(C=>C.id===o);a&&u({mode:"edit",clauseId:o,draft:{field:a.field,value:a.value}})},E=o=>u(a=>a&&{...a,draft:{...a.draft,field:o}}),O=o=>u(a=>a&&{...a,draft:{...a.draft,value:o}}),U=()=>{if(!i)return;const o=i.draft.field,a=ke(o,i.draft.value);a!==""&&(l(C=>i.mode==="edit"&&i.clauseId?{...C,clauses:C.clauses.map(D=>D.id===i.clauseId?{id:D.id,field:o,value:a}:D)}:(N.current+=1,{...C,clauses:[...C.clauses,{id:`new-${N.current}`,field:o,value:a}]})),u(void 0))},B=o=>l(a=>({...a,clauses:a.clauses.filter(C=>C.id!==o)})),K=o=>l(a=>({...a,matchOperator:o})),G=o=>l(a=>({...a,moveMailboxId:o||void 0})),Q=o=>l(a=>({...a,labelId:o||void 0})),q=o=>l(a=>({...a,name:o})),J=o=>l(a=>({...a,scope:o,until:o==="until"?a.until:void 0})),V=o=>l(a=>({...a,until:o})),W=()=>{const o=_(m,h)||H(m,h),a=Ge(m,h);if(Object.keys(a).length===0){d();return}p(o),x.updateFilter(a)},Y=()=>v.start(Ae(m));return v.isStarting||v.isRunning||v.isDone?t.jsx(We,{progress:v.progress,isDone:v.isDone,onClose:d}):x.isPending?t.jsx(qe,{}):x.isError?t.jsx(Ye,{onRetry:x.reset,onClose:d}):x.isSuccess?b?t.jsx(Ve,{preview:ae(y),blocked:y.status!=="ready"||y.stale===!0,onReapply:Y,onClose:d}):t.jsx(Je,{onClose:d}):t.jsx(ne,{rule:m,folders:r,delimiter:n,labels:c,preview:y,semanticAvailable:!1,clauseFields:L,anchorLocked:!0,clauseEdit:i,onStartAddClause:w,onStartEditClause:f,onRemoveClause:B,onChangeDraftField:E,onChangeDraftValue:O,onSubmitClause:U,onCancelClause:()=>u(void 0),onChangeMatchOperator:K,onChangeMove:G,onCreateFolder:M,onChangeLabel:Q,onCreateLabel:T,onChangeName:q,onChangeScope:J,onChangeUntil:V,onCommit:W,onCancel:d})}function qe(){return t.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-10 text-center",children:[t.jsx(P,{className:"size-8 animate-spin text-accent-2"}),t.jsx("p",{className:"text-sm font-medium text-fg",children:"Saving changes…"})]})}function Je({onClose:e}){return t.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[t.jsx(A,{className:"size-8 text-positive"}),t.jsx("p",{className:"text-sm font-medium text-fg",children:"Filter updated"}),t.jsx(S,{variant:"primary",onClick:e,className:"mt-2",children:"Done"})]})}function Ve({preview:e,blocked:s,onReapply:r,onClose:n}){return t.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[t.jsx(A,{className:"size-8 text-positive"}),t.jsx("p",{className:"text-sm font-medium text-fg",children:"Rule saved"}),t.jsxs("p",{className:"max-w-xs text-xs text-fg-muted",children:["New mail follows the rule automatically. ",e," — move the mail already in your mailbox too?"]}),t.jsxs("div",{className:"mt-2 flex gap-2",children:[t.jsx(S,{variant:"primary",onClick:r,disabled:s,children:"Move existing mail"}),t.jsx(S,{variant:"ghost",onClick:n,children:"Not now"})]})]})}function We({progress:e,isDone:s,onClose:r}){const n=e.state==="Failed";return t.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[s?n?t.jsx("span",{className:"text-sm font-semibold text-danger",children:"Move failed"}):t.jsx(A,{className:"size-8 text-positive"}):t.jsx(P,{className:"size-8 animate-spin text-accent-2"}),!s&&t.jsx("p",{className:"text-sm font-medium text-fg",children:"Moving existing mail…"}),s&&!n&&t.jsxs("div",{className:"text-sm text-fg",children:[t.jsx("p",{className:"font-medium",children:"Done"}),t.jsxs("p",{className:"mt-1 text-xs text-fg-muted",children:[e.appliedCount," of ",e.matchedCount," moved",e.failedCount>0?` · ${e.failedCount} failed`:"","."]})]}),s&&n&&t.jsx("p",{className:"max-w-xs text-xs text-fg-muted",children:e.errorMessage||"Something went wrong. Please try again."}),s&&t.jsx(S,{variant:"primary",onClick:r,className:"mt-2",children:"Done"})]})}function Ye({onRetry:e,onClose:s}){return t.jsxs("div",{className:"flex flex-col items-center gap-3 px-5 py-8 text-center",children:[t.jsx("p",{className:"text-sm font-medium text-danger",children:"Couldn't save changes"}),t.jsx("p",{className:"max-w-xs text-xs text-fg-muted",children:"Please try again."}),t.jsxs("div",{className:"mt-2 flex gap-2",children:[t.jsx(S,{variant:"primary",onClick:e,children:"Try again"}),t.jsx(S,{variant:"ghost",onClick:s,children:"Not now"})]})]})}function Xe({accountId:e,filter:s,folders:r,delimiter:n,labels:c,semanticUnavailable:j,onClose:d}){const h=ie(),m=t.jsx(Qe,{accountId:e,filter:s,folders:r,delimiter:n,labels:c,semanticUnavailable:j,onClose:d});return h?t.jsx(re,{open:!0,onClose:d,title:"Filter rule",children:m}):t.jsx(Fe,{open:!0,onClose:d,label:"Filter rule",dismissLabel:"Dismiss filter rule",children:m})}function Ze({filters:e,mailboxName:s,labelById:r,onEdit:n,onDelete:c,deletingFilterId:j,onToggle:d,togglingFilterId:h,semanticUnavailable:m=!1,now:l=Date.now()}){return e.length===0?t.jsx("p",{className:"py-6 text-sm text-fg-muted",children:"No filters yet. Select a few messages in the inbox and choose Organize to make one."}):t.jsx("ul",{className:"divide-y divide-line rounded-md border border-line",children:e.map(i=>{const u=Le(i,l),b=u==="Expired",p=u==="Disabled",N=p?Re(i):void 0,y=i.actionMailboxId!==F?s(i.actionMailboxId):void 0,x=i.actionLabelId!==F?r.get(i.actionLabelId):void 0,v=$e(i.expiresAt);return t.jsxs("li",{className:"flex items-start gap-3 px-3 py-2.5",children:[t.jsxs("button",{type:"button",onClick:()=>n(i.filterId),"aria-label":`Edit filter ${i.name}`,className:"min-w-0 flex-1 rounded-sm text-left hover:opacity-80",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("span",{className:`truncate text-sm font-medium ${b||p?"text-fg-muted":"text-fg"}`,children:i.name}),t.jsx(oe,{tone:b?"neutral":p?"warning":"positive",dot:!0,children:u})]}),t.jsxs("p",{className:"mt-0.5 text-xs text-fg-subtle",children:[y?`Moves matches to ${y}`:"No move action",i.scope==="Temporary"&&v?b?` · expired ${v}`:` · until ${v}`:i.scope==="Standing"?" · always":""]}),N&&t.jsx("p",{className:"mt-0.5 text-xs text-warning",children:N}),(i.hasAnchor||x)&&t.jsxs("div",{className:"mt-1.5 flex flex-wrap gap-1.5",children:[i.hasAnchor&&t.jsx(le,{widen:{anchorCount:1,...m?{inactive:!0}:{}}}),x&&t.jsx(ce,{label:{labelId:x.id,name:x.name,color:x.color}})]})]}),!b&&t.jsx(S,{variant:"ghost",size:"sm",onClick:()=>d(i.filterId,p),disabled:h===i.filterId,"aria-label":`${p?"Turn on":"Turn off"} filter ${i.name}`,children:p?"Turn on":"Turn off"}),t.jsx(S,{variant:"ghost",size:"sm",icon:t.jsx(de,{className:"size-4 text-danger"}),onClick:()=>c(i.filterId),disabled:j===i.filterId,"aria-label":`Delete filter ${i.name}`})]},i.filterId)})})}const et=e=>{const s=me(e);return s!==void 0&&s>=400&&s<500};function tt({enabling:e,error:s,onRetry:r,reportHref:n}){return t.jsxs("div",{className:"space-y-1",children:[t.jsx(k,{variant:"inline",title:e?"Couldn't turn the filter on":"Couldn't turn the filter off",error:s,onRetry:et(s)?void 0:r}),t.jsx("a",{href:n(He(s)),target:"_blank",rel:"noreferrer",className:"text-xs text-accent hover:underline",children:"Report an issue"})]})}function st(e){return ue(pe({title:`Filter toggle: ${e}`,errorMessage:e}))}const at=t.jsxs("div",{className:"space-y-3",children:[t.jsxs("p",{children:["Filters are the standing rules Organize creates. A"," ",t.jsx("strong",{children:"Standing"})," filter keeps working on new mail; a"," ",t.jsx("strong",{children:"Temporary"})," one stops on its own at the date you picked."]}),t.jsx("p",{children:"An expired filter isn't deleted the instant it lapses — it stays here, marked Expired, so you can see what it did and when it stopped."}),t.jsx("p",{children:"A filter that can't do its job turns itself off and says why, for example when its folder no longer exists. Turn it back on once that is fixed."})]});function nt({account:e}){const s=e.accountId,{filters:r,isPending:n,isError:c,error:j,refetch:d}=Pe(s),{deleteFilter:h,deletingFilterId:m}=ze(s),l=_e(s),[i,u]=g.useState(),{data:b}=z({...xe({path:{accountId:s}}),staleTime:1/0}),p=fe(),N=g.useMemo(()=>ge(e.folderAppointments),[e.folderAppointments]),y=g.useCallback(f=>{const E=b?.items.find(O=>O.mailboxId===f);if(E)return he(E,N.get(f),p)},[b?.items,N,p]),x=g.useMemo(()=>be({mailboxes:b?.items??[],folderAppointments:e.folderAppointments,translator:p}),[b?.items,e.folderAppointments,p]),v=ve(b?.items??[]),{labels:M}=Me(s),I=g.useMemo(()=>M.map(f=>({id:f.labelId,name:f.name,color:f.color})),[M]),T=g.useMemo(()=>new Map(I.map(f=>[f.id,f])),[I]),w=r.find(f=>f.filterId===i);return t.jsxs("section",{className:"space-y-2",children:[t.jsx("h2",{className:"text-sm font-semibold text-fg",children:e.email}),w&&t.jsx(Xe,{accountId:s,filter:w,folders:x,delimiter:v,labels:I,onClose:()=>u(void 0)}),n?t.jsx("div",{className:"h-16 animate-pulse rounded-md border border-line bg-surface","aria-busy":"true","aria-label":`Loading filters for ${e.email}`}):c?t.jsx(k,{variant:"inline",title:`Couldn't load filters for ${e.email}`,error:j,onRetry:()=>{d()}}):t.jsxs(t.Fragment,{children:[l.isError&&t.jsx(tt,{enabling:l.enabling,error:l.error,onRetry:l.retry,reportHref:st}),t.jsx(Ze,{filters:r,mailboxName:y,labelById:T,onEdit:u,onDelete:h,deletingFilterId:m,onToggle:l.toggleFilter,togglingFilterId:l.togglingFilterId})]})]})}function gt(){const e=je(),[s,r]=g.useState(!0),{data:n,isPending:c,isError:j,error:d,refetch:h}=z(ye()),m=l=>{const i=Ce[l];i&&e({to:i})};return t.jsx(Se,{items:Ne,activeId:"filters",title:"Filters",description:"Standing and temporary rules created by Organize, per account.",help:at,helpOpen:s,onToggleHelp:()=>r(l=>!l),onSelect:m,onBackToMail:()=>{e({to:"/mail"})},children:c?t.jsx("div",{className:"h-24 animate-pulse rounded-sm border border-line bg-surface","aria-busy":"true","aria-label":"Loading accounts"}):j?t.jsx(k,{title:"Couldn't load accounts",error:d,onRetry:()=>{h()}}):n.accounts.length===0?t.jsx("p",{className:"py-12 text-sm text-fg-muted",children:"No accounts configured."}):t.jsx("div",{className:"space-y-8",children:n.accounts.map(l=>t.jsx(nt,{account:l},l.accountId))})})}export{nt as AccountFilters,gt as component};
@@ -1 +0,0 @@
1
- import{j as o,O as i}from"./index-1tDGC9Zd.js";import{a as m}from"./MailShell-DrmERVdx.js";import{F as r}from"./FlaggedPane-BAOdwEWL.js";import{a as p}from"./search-token-index-BYIEE9IJ.js";import{u as e}from"./search-mirror-YFw9jfWx.js";import"./FullCompose-Bi7k3jvU.js";import"./ErrorState-BVI-jO5V.js";import"./index-DCxO9BXL.js";import"./useMessageBodyContent-JZVMduqC.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./confirm-dialog-D5_3GRL0.js";import"./useSearchTokenContext-BjZLxeZU.js";import"./kbd-GocZSdkd.js";import"./search-scope-B5-OK3Cq.js";import"./MailListHeader-GdiBejNL.js";import"./roving-focus-6Ps1GOii.js";import"./popover-menu-CkmMQ09c.js";import"./mail-BgWv0vDi.js";import"./avatar-ByMZanCG.js";import"./EmptyState-DujlHZ5y.js";import"./undo-2-C18vJveD.js";import"./download-Bhhu1YYz.js";import"./useCalendarFreeBusy-q8dkV9bU.js";import"./calendar-format-D-j3MVfj.js";import"./useQueries-ChVROEOd.js";import"./useCalendars-Cv33CAIM.js";import"./map-pin-BnpFBW0x.js";import"./calendar-suggestion-CmSBYNKY.js";import"./attendee-row-Dsfh28CP.js";import"./minus-BXvTd_hw.js";import"./clock-CtbA5tRe.js";import"./calendar-clash-strip-DI7zlMfA.js";import"./bell-off-CrtI26Ps.js";import"./shield-check-C4Gngb6A.js";import"./calendar-report-BLLDZVuM.js";import"./useFilters-CDR_zY2Q.js";import"./checkbox-DukR_YLD.js";import"./useLayoutTier-ChEDcGRs.js";import"./menu-DGZU5xhL.js";import"./MailViewChrome-gm2yTDEG.js";import"./refresh-cw-DjAWVCmD.js";import"./wizard-selection-DxUM65kM.js";function _(){const t=p();return e({to:"/mail/flagged"}),o.jsx(r,{thread:t,children:o.jsx(m,{phone:o.jsx(r.Phone,{}),list:o.jsx(r.List,{}),reading:o.jsx(i,{}),intelligence:o.jsx(r.Intelligence,{}),hasThread:!!t})})}export{_ as component};
@@ -1 +0,0 @@
1
- import{j as o}from"./index-1tDGC9Zd.js";import{M as r}from"./MailboxPane-Dvp-DTKa.js";import"./useSearchTokenContext-BjZLxeZU.js";import"./kbd-GocZSdkd.js";import"./useMessageBodyContent-JZVMduqC.js";import"./search-scope-B5-OK3Cq.js";import"./useRefreshControl-BTnBFCED.js";import"./circle-check-big-DwiFNQIV.js";import"./refresh-cw-DjAWVCmD.js";import"./useQueries-ChVROEOd.js";import"./MailListHeader-GdiBejNL.js";import"./roving-focus-6Ps1GOii.js";import"./search-token-index-BYIEE9IJ.js";import"./popover-menu-CkmMQ09c.js";import"./mail-BgWv0vDi.js";import"./avatar-ByMZanCG.js";import"./index-DCxO9BXL.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./EmptyState-DujlHZ5y.js";import"./ErrorState-BVI-jO5V.js";import"./undo-2-C18vJveD.js";import"./download-Bhhu1YYz.js";import"./useCalendarFreeBusy-q8dkV9bU.js";import"./calendar-format-D-j3MVfj.js";import"./useCalendars-Cv33CAIM.js";import"./map-pin-BnpFBW0x.js";import"./calendar-suggestion-CmSBYNKY.js";import"./attendee-row-Dsfh28CP.js";import"./minus-BXvTd_hw.js";import"./clock-CtbA5tRe.js";import"./calendar-clash-strip-DI7zlMfA.js";import"./bell-off-CrtI26Ps.js";import"./shield-check-C4Gngb6A.js";import"./calendar-report-BLLDZVuM.js";import"./useFilters-CDR_zY2Q.js";import"./checkbox-DukR_YLD.js";import"./confirm-dialog-D5_3GRL0.js";import"./useLayoutTier-ChEDcGRs.js";import"./menu-DGZU5xhL.js";import"./MailViewChrome-gm2yTDEG.js";import"./pane-header-SxqJYaFK.js";import"./NavMenuButton-BUju-0zI.js";import"./useLabels-DCtXet6O.js";import"./useSemanticSearch-DpG2fIPV.js";import"./search-query-Cr_ZXBCp.js";import"./bottom-sheet-Do1Kqt6C.js";import"./circle-help-D-hOmab_.js";import"./circle-check-BQ1ugGru.js";function $(){return o.jsx(r.Reading,{})}export{$ as component};
@@ -1 +0,0 @@
1
- import{j as o}from"./index-1tDGC9Zd.js";import{M as i}from"./MailboxPane-Dvp-DTKa.js";import"./useSearchTokenContext-BjZLxeZU.js";import"./kbd-GocZSdkd.js";import"./useMessageBodyContent-JZVMduqC.js";import"./search-scope-B5-OK3Cq.js";import"./useRefreshControl-BTnBFCED.js";import"./circle-check-big-DwiFNQIV.js";import"./refresh-cw-DjAWVCmD.js";import"./useQueries-ChVROEOd.js";import"./MailListHeader-GdiBejNL.js";import"./roving-focus-6Ps1GOii.js";import"./search-token-index-BYIEE9IJ.js";import"./popover-menu-CkmMQ09c.js";import"./mail-BgWv0vDi.js";import"./avatar-ByMZanCG.js";import"./index-DCxO9BXL.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./EmptyState-DujlHZ5y.js";import"./ErrorState-BVI-jO5V.js";import"./undo-2-C18vJveD.js";import"./download-Bhhu1YYz.js";import"./useCalendarFreeBusy-q8dkV9bU.js";import"./calendar-format-D-j3MVfj.js";import"./useCalendars-Cv33CAIM.js";import"./map-pin-BnpFBW0x.js";import"./calendar-suggestion-CmSBYNKY.js";import"./attendee-row-Dsfh28CP.js";import"./minus-BXvTd_hw.js";import"./clock-CtbA5tRe.js";import"./calendar-clash-strip-DI7zlMfA.js";import"./bell-off-CrtI26Ps.js";import"./shield-check-C4Gngb6A.js";import"./calendar-report-BLLDZVuM.js";import"./useFilters-CDR_zY2Q.js";import"./checkbox-DukR_YLD.js";import"./confirm-dialog-D5_3GRL0.js";import"./useLayoutTier-ChEDcGRs.js";import"./menu-DGZU5xhL.js";import"./MailViewChrome-gm2yTDEG.js";import"./pane-header-SxqJYaFK.js";import"./NavMenuButton-BUju-0zI.js";import"./useLabels-DCtXet6O.js";import"./useSemanticSearch-DpG2fIPV.js";import"./search-query-Cr_ZXBCp.js";import"./bottom-sheet-Do1Kqt6C.js";import"./circle-help-D-hOmab_.js";import"./circle-check-BQ1ugGru.js";function $(){return o.jsx(i.Reading,{})}export{$ as component};
@@ -1 +0,0 @@
1
- import{j as r}from"./index-1tDGC9Zd.js";import{B as o}from"./BriefPane-CmPRoEDf.js";import"./useSearchTokenContext-BjZLxeZU.js";import"./kbd-GocZSdkd.js";import"./useMessageBodyContent-JZVMduqC.js";import"./search-scope-B5-OK3Cq.js";import"./MailListHeader-GdiBejNL.js";import"./roving-focus-6Ps1GOii.js";import"./search-token-index-BYIEE9IJ.js";import"./useQueries-ChVROEOd.js";import"./popover-menu-CkmMQ09c.js";import"./mail-BgWv0vDi.js";import"./avatar-ByMZanCG.js";import"./index-DCxO9BXL.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./EmptyState-DujlHZ5y.js";import"./ErrorState-BVI-jO5V.js";import"./undo-2-C18vJveD.js";import"./download-Bhhu1YYz.js";import"./useCalendarFreeBusy-q8dkV9bU.js";import"./calendar-format-D-j3MVfj.js";import"./useCalendars-Cv33CAIM.js";import"./map-pin-BnpFBW0x.js";import"./calendar-suggestion-CmSBYNKY.js";import"./attendee-row-Dsfh28CP.js";import"./minus-BXvTd_hw.js";import"./clock-CtbA5tRe.js";import"./calendar-clash-strip-DI7zlMfA.js";import"./bell-off-CrtI26Ps.js";import"./shield-check-C4Gngb6A.js";import"./calendar-report-BLLDZVuM.js";import"./useFilters-CDR_zY2Q.js";import"./checkbox-DukR_YLD.js";import"./confirm-dialog-D5_3GRL0.js";import"./useLayoutTier-ChEDcGRs.js";import"./menu-DGZU5xhL.js";import"./useRefreshControl-BTnBFCED.js";import"./circle-check-big-DwiFNQIV.js";import"./refresh-cw-DjAWVCmD.js";import"./useSemanticSearch-DpG2fIPV.js";import"./useLabels-DCtXet6O.js";import"./search-query-Cr_ZXBCp.js";import"./wizard-selection-DxUM65kM.js";function W(){return r.jsx(o.Reading,{})}export{W as component};
@@ -1 +0,0 @@
1
- import{j as o}from"./index-1tDGC9Zd.js";import{O as t}from"./OutboxPane-BH-XzR-F.js";import"./roving-focus-6Ps1GOii.js";import"./useSearchTokenContext-BjZLxeZU.js";import"./kbd-GocZSdkd.js";import"./useMessageBodyContent-JZVMduqC.js";import"./search-scope-B5-OK3Cq.js";import"./circle-check-big-DwiFNQIV.js";import"./clock-CtbA5tRe.js";import"./row-actions-OrYFIAtn.js";import"./rotate-ccw-C-CXkNLR.js";import"./pane-header-SxqJYaFK.js";import"./NavMenuButton-BUju-0zI.js";import"./menu-DGZU5xhL.js";import"./outbox-status-BlKn6P0x.js";import"./search-query-Cr_ZXBCp.js";function d(){return o.jsx(t.Reading,{})}export{d as component};
@@ -1 +0,0 @@
1
- import{j as o}from"./index-1tDGC9Zd.js";import{F as r}from"./FlaggedPane-BAOdwEWL.js";import"./useSearchTokenContext-BjZLxeZU.js";import"./kbd-GocZSdkd.js";import"./useMessageBodyContent-JZVMduqC.js";import"./search-scope-B5-OK3Cq.js";import"./MailListHeader-GdiBejNL.js";import"./roving-focus-6Ps1GOii.js";import"./search-token-index-BYIEE9IJ.js";import"./useQueries-ChVROEOd.js";import"./popover-menu-CkmMQ09c.js";import"./mail-BgWv0vDi.js";import"./avatar-ByMZanCG.js";import"./index-DCxO9BXL.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./EmptyState-DujlHZ5y.js";import"./ErrorState-BVI-jO5V.js";import"./undo-2-C18vJveD.js";import"./download-Bhhu1YYz.js";import"./useCalendarFreeBusy-q8dkV9bU.js";import"./calendar-format-D-j3MVfj.js";import"./useCalendars-Cv33CAIM.js";import"./map-pin-BnpFBW0x.js";import"./calendar-suggestion-CmSBYNKY.js";import"./attendee-row-Dsfh28CP.js";import"./minus-BXvTd_hw.js";import"./clock-CtbA5tRe.js";import"./calendar-clash-strip-DI7zlMfA.js";import"./bell-off-CrtI26Ps.js";import"./shield-check-C4Gngb6A.js";import"./calendar-report-BLLDZVuM.js";import"./useFilters-CDR_zY2Q.js";import"./checkbox-DukR_YLD.js";import"./confirm-dialog-D5_3GRL0.js";import"./useLayoutTier-ChEDcGRs.js";import"./menu-DGZU5xhL.js";import"./MailViewChrome-gm2yTDEG.js";import"./refresh-cw-DjAWVCmD.js";import"./wizard-selection-DxUM65kM.js";function S(){return o.jsx(r.Reading,{})}export{S as component};
@@ -1 +0,0 @@
1
- import{j as t,an as o}from"./index-1tDGC9Zd.js";const n=()=>t.jsx(o,{to:"/settings/accounts"});export{n as component};
@@ -1 +0,0 @@
1
- import{eY as o,j as r}from"./index-1tDGC9Zd.js";import{O as m}from"./OpenCalendarEvent-CzjPMTD7.js";import"./CalendarComposePane-DqJOMVmP.js";import"./calendar-format-D-j3MVfj.js";import"./useQueries-ChVROEOd.js";import"./useCalendars-Cv33CAIM.js";import"./calendar-clash-strip-DI7zlMfA.js";import"./attendee-row-Dsfh28CP.js";import"./avatar-ByMZanCG.js";import"./minus-BXvTd_hw.js";import"./clock-CtbA5tRe.js";import"./map-pin-BnpFBW0x.js";import"./mail-BgWv0vDi.js";import"./pencil-T1qdJn7-.js";import"./useCalendarWrites-Bs29dmIW.js";import"./ErrorState-BVI-jO5V.js";import"./useCalendarData-p4YQcdqv.js";import"./calendar-report-BLLDZVuM.js";import"./calendar-subscription-B-aAc2Gy.js";function I(){const{calendarObjectId:t}=o.useParams();return r.jsx(m,{calendarObjectId:t})}export{I as component};
@@ -1 +0,0 @@
1
- import{j as o}from"./index-1tDGC9Zd.js";import{F as r}from"./FlaggedPane-BAOdwEWL.js";import"./useSearchTokenContext-BjZLxeZU.js";import"./kbd-GocZSdkd.js";import"./useMessageBodyContent-JZVMduqC.js";import"./search-scope-B5-OK3Cq.js";import"./MailListHeader-GdiBejNL.js";import"./roving-focus-6Ps1GOii.js";import"./search-token-index-BYIEE9IJ.js";import"./useQueries-ChVROEOd.js";import"./popover-menu-CkmMQ09c.js";import"./mail-BgWv0vDi.js";import"./avatar-ByMZanCG.js";import"./index-DCxO9BXL.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./EmptyState-DujlHZ5y.js";import"./ErrorState-BVI-jO5V.js";import"./undo-2-C18vJveD.js";import"./download-Bhhu1YYz.js";import"./useCalendarFreeBusy-q8dkV9bU.js";import"./calendar-format-D-j3MVfj.js";import"./useCalendars-Cv33CAIM.js";import"./map-pin-BnpFBW0x.js";import"./calendar-suggestion-CmSBYNKY.js";import"./attendee-row-Dsfh28CP.js";import"./minus-BXvTd_hw.js";import"./clock-CtbA5tRe.js";import"./calendar-clash-strip-DI7zlMfA.js";import"./bell-off-CrtI26Ps.js";import"./shield-check-C4Gngb6A.js";import"./calendar-report-BLLDZVuM.js";import"./useFilters-CDR_zY2Q.js";import"./checkbox-DukR_YLD.js";import"./confirm-dialog-D5_3GRL0.js";import"./useLayoutTier-ChEDcGRs.js";import"./menu-DGZU5xhL.js";import"./MailViewChrome-gm2yTDEG.js";import"./refresh-cw-DjAWVCmD.js";import"./wizard-selection-DxUM65kM.js";function Q(){return o.jsx(r.Reading,{})}export{Q as component};
@@ -1 +0,0 @@
1
- import{j as r}from"./index-1tDGC9Zd.js";import{B as o}from"./BriefPane-CmPRoEDf.js";import"./useSearchTokenContext-BjZLxeZU.js";import"./kbd-GocZSdkd.js";import"./useMessageBodyContent-JZVMduqC.js";import"./search-scope-B5-OK3Cq.js";import"./MailListHeader-GdiBejNL.js";import"./roving-focus-6Ps1GOii.js";import"./search-token-index-BYIEE9IJ.js";import"./useQueries-ChVROEOd.js";import"./popover-menu-CkmMQ09c.js";import"./mail-BgWv0vDi.js";import"./avatar-ByMZanCG.js";import"./index-DCxO9BXL.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./EmptyState-DujlHZ5y.js";import"./ErrorState-BVI-jO5V.js";import"./undo-2-C18vJveD.js";import"./download-Bhhu1YYz.js";import"./useCalendarFreeBusy-q8dkV9bU.js";import"./calendar-format-D-j3MVfj.js";import"./useCalendars-Cv33CAIM.js";import"./map-pin-BnpFBW0x.js";import"./calendar-suggestion-CmSBYNKY.js";import"./attendee-row-Dsfh28CP.js";import"./minus-BXvTd_hw.js";import"./clock-CtbA5tRe.js";import"./calendar-clash-strip-DI7zlMfA.js";import"./bell-off-CrtI26Ps.js";import"./shield-check-C4Gngb6A.js";import"./calendar-report-BLLDZVuM.js";import"./useFilters-CDR_zY2Q.js";import"./checkbox-DukR_YLD.js";import"./confirm-dialog-D5_3GRL0.js";import"./useLayoutTier-ChEDcGRs.js";import"./menu-DGZU5xhL.js";import"./useRefreshControl-BTnBFCED.js";import"./circle-check-big-DwiFNQIV.js";import"./refresh-cw-DjAWVCmD.js";import"./useSemanticSearch-DpG2fIPV.js";import"./useLabels-DCtXet6O.js";import"./search-query-Cr_ZXBCp.js";import"./wizard-selection-DxUM65kM.js";function W(){return r.jsx(o.Reading,{})}export{W as component};
@@ -1 +0,0 @@
1
- import{e}from"./index-1tDGC9Zd.js";const a=e("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);export{a as M};
@@ -1 +0,0 @@
1
- import{q as i,h as n,u as a,r as m,j as s}from"./index-1tDGC9Zd.js";import{O as p}from"./OnboardingWizard-D7OM_-SY.js";import{c}from"./onboarding-completion-BjIwQr_e.js";import"./checkbox-DukR_YLD.js";import"./minus-BXvTd_hw.js";import"./kbd-GocZSdkd.js";import"./credential-steps-Bb4Uifur.js";import"./card-C2-ECsTy.js";import"./account-form-helpers-DhckT_PN.js";import"./mail-BgWv0vDi.js";import"./file-json-B7hJq2fl.js";function E(){const o=i(),t=n(),e=a(),r=m.useCallback(l=>{c({queryClient:t,recordCompleted:()=>o.recordEvent("onboarding.completed"),navigateToInbox:()=>{window.location.assign("/mail")}})},[o,t]);return s.jsx(p,{skipWelcome:!1,onComplete:r,onImportConfig:()=>{e({to:"/import"})}})}export{E as component};
@@ -1 +0,0 @@
1
- import{j as o,O as i}from"./index-1tDGC9Zd.js";import{a as m}from"./MailShell-DrmERVdx.js";import{u as p,O as t}from"./OutboxPane-BH-XzR-F.js";import{u as s}from"./search-mirror-YFw9jfWx.js";import"./FullCompose-Bi7k3jvU.js";import"./ErrorState-BVI-jO5V.js";import"./index-DCxO9BXL.js";import"./useMessageBodyContent-JZVMduqC.js";import"./useSignature-CoMYaLJ6.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-Csd1G8YB.js";import"./sections-BdXt9HLF.js";import"./confirm-dialog-D5_3GRL0.js";import"./roving-focus-6Ps1GOii.js";import"./useSearchTokenContext-BjZLxeZU.js";import"./kbd-GocZSdkd.js";import"./search-scope-B5-OK3Cq.js";import"./circle-check-big-DwiFNQIV.js";import"./clock-CtbA5tRe.js";import"./row-actions-OrYFIAtn.js";import"./rotate-ccw-C-CXkNLR.js";import"./pane-header-SxqJYaFK.js";import"./NavMenuButton-BUju-0zI.js";import"./menu-DGZU5xhL.js";import"./outbox-status-BlKn6P0x.js";import"./search-query-Cr_ZXBCp.js";function w(){const r=p();return s({to:"/mail/outbox"}),o.jsx(t,{outboxMessageId:r,children:o.jsx(m,{phone:o.jsx(t.Phone,{}),list:o.jsx(t.List,{}),reading:o.jsx(i,{})})})}export{w as component};
@@ -1 +0,0 @@
1
- import{j as t,O as o}from"./index-1tDGC9Zd.js";const n=()=>t.jsx(o,{});export{n as component};
@@ -1 +0,0 @@
1
- import{r as m,i as b,eI as x,c as M,eJ as D,e1 as I,eK as N,h as v,eL as P,eM as L,eN as T,eO as w,bm as z}from"./index-1tDGC9Zd.js";const V=(e,t)=>{if(e.state==="Expired")return"Expired";const r=e.state==="Disabled"?"Disabled":"Active";if(e.scope!=="Temporary"||!e.expiresAt)return r;const s=Date.parse(e.expiresAt);return Number.isNaN(s)?r:s<=t?"Expired":r},y={UserDisabled:"Turned off. Turn it on to run it on new mail again.",AwaitingFolder:"Off until its folder exists on the mail server. It turns on by itself once the folder is created.",FolderCreateFailed:"Off: the mail server refused to create its folder. Pick another folder in the rule, then turn it on.",FolderMissing:"Off: the folder it moves mail into no longer exists. Pick another folder in the rule, then turn it on."},Y=e=>e.disabledReason==="None"?void 0:(e.disabledReason==="AwaitingFolder"||e.disabledReason==="FolderCreateFailed")&&e.actionMailboxId!=="None"?y.UserDisabled:y[e.disabledReason],G=e=>{if(!e)return;const t=Date.parse(e);if(!Number.isNaN(t))return new Date(t).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})},A=(e,t=new Date)=>{if(!e)return;const r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!r)return;const[,s,n,i]=r,a=new Date(Number(s),Number(n)-1,Number(i),23,59,59,0);if(Number.isNaN(a.getTime()))return;const o=-t.getTimezoneOffset(),c=o>=0?"+":"-",u=Math.abs(o),d=String(Math.floor(u/60)).padStart(2,"0"),f=String(u%60).padStart(2,"0"),l=p=>String(p).padStart(2,"0");return`${a.getFullYear()}-${l(a.getMonth()+1)}-${l(a.getDate())}T${l(a.getHours())}:${l(a.getMinutes())}:${l(a.getSeconds())}${c}${d}:${f}`},h="None",X=e=>!e.literalClauses.some(t=>t.field==="HasWords"),E=e=>({...e.anchorMessageId?{anchorMessageId:e.anchorMessageId}:{},matchOperator:e.matchOperator,literalClauses:e.literalClauses,actionLabelId:e.labelId??h,actionMailboxId:e.moveMailboxId??h}),Z=({mode:e,ruleScope:t})=>t==="standing"?"standing":t==="until"?"temporary":e==="selected"?"just-these":"all-like-these",ee=({mode:e,ruleScope:t,anchorMessageId:r,clauses:s,matchOperator:n,moveMailboxId:i,until:a})=>({...e==="similar"&&r?{anchorMessageId:r}:{},matchOperator:n==="all"?"And":"Or",literalClauses:s.map(o=>({field:o.field,value:o.value})),moveMailboxId:i,expiresAt:t==="until"?A(a??""):void 0}),C=(e,t,r)=>({name:r,scope:t==="standing"?"Standing":"Temporary",...t==="temporary"&&e.expiresAt?{expiresAt:e.expiresAt}:{},matchOperator:e.matchOperator,literalClauses:e.literalClauses,actionLabelId:e.labelId??h,actionMailboxId:e.moveMailboxId??h,...e.anchorMessageId?{anchorMessageId:e.anchorMessageId}:{}}),R=new Set(["Complete","Failed"]),O=e=>e!==void 0&&R.has(e),k=1e3,_=15e3,J=e=>{const t=Math.max(0,e),r=k*2**t;return Math.min(r,_)},$=(e,t,r)=>{if(e)return{kind:r?"restartFailed":"startFailed",error:e};if(t)return{kind:"statusUnreadable",error:t}},te=e=>{const[t,r]=m.useState(),s=b({...x(),onSuccess:g=>r(g.organizeJobId)}),{mutate:n}=s,i=M({...D({path:{accountId:e??"",organizeJobId:t??""}}),enabled:!!e&&!!t,refetchInterval:g=>{const F=g.state.data?.state;return O(F)?!1:J(g.state.dataUpdateCount)}}),a=m.useCallback(g=>{e&&n({path:{accountId:e},body:E(g)})},[e,n]),{refetch:o}=i,c=m.useCallback(()=>{o()},[o]),u=i.data,d=s.isPending?void 0:u,f=d?.state??s.data?.state,l=O(d?.state),p={state:f,matchedCount:d?.matchedCount??0,appliedCount:d?.appliedCount??0,failedCount:d?.failedCount??0,errorMessage:d?.errorMessage??""};return{start:a,refreshStatus:c,progress:p,isStarting:s.isPending,isRunning:!!t&&!l,isDone:l,failure:$(s.error,i.error,!!u)}},re=["From","Subject","HasWords","ListId","FromDomain"],U=e=>{const t=e.trim(),r=t.match(/<([^>]+)>/);return(r?r[1]:t).trim().toLowerCase()},se=(e,t)=>e==="ListId"?U(t):t.trim(),q=e=>e==="all"?"And":"Or",Q=(e,t)=>{const r=e.widen!==void 0&&!e.widen.inactive,s=e.clauses.map(n=>({field:n.field,value:n.value}));return{...r&&t?{anchorMessageId:t}:{},matchOperator:q(e.matchOperator),literalClauses:s}},K=e=>e.anchorMessageId!==void 0||!e.literalClauses.some(t=>t.field==="HasWords"),j=e=>JSON.stringify({anchor:e.anchorMessageId??null,operator:e.matchOperator,clauses:e.literalClauses.map(t=>`${t.field} ${t.value}`)}),ae=(e,t)=>{const r=Q(e,t);return{...r.anchorMessageId?{anchorMessageId:r.anchorMessageId}:{},matchOperator:r.matchOperator,literalClauses:r.literalClauses,moveMailboxId:e.moveMailboxId,labelId:e.labelId,expiresAt:e.scope==="until"?A(e.until??""):void 0}},B=(e,t)=>{if(e.error!==void 0&&e.errorSignature===t)return{status:"error",reason:e.error};if(e.count===void 0)return{status:"loading"};const r=e.indexEmpty===!0?{indexEmpty:!0}:{};return e.previewedSignature===t?{status:"ready",count:e.count,...r}:{status:"ready",count:e.count,stale:!0,...r}},H=350,ne=(e,t,r)=>{const s=b(I()),{mutateAsync:n}=s,i=j(t),[a,o]=m.useState(()=>({})),c=m.useRef(t);c.current=t;const u=m.useRef(i),d=K(t);return m.useEffect(()=>{if(!e||!d||i===a.previewedSignature||i===a.errorSignature)return;const f=setTimeout(()=>{const l=i;u.current=l,n({path:{accountId:e},body:E({...c.current})}).then(p=>{u.current===l&&o({count:p.matchedCount,matchedIds:p.messageIds,indexEmpty:p.semanticIndexEmpty===!0,previewedSignature:l})}).catch(p=>{u.current===l&&o(g=>({...g,error:p instanceof Error?p.message:"Couldn't count matches.",errorSignature:l}))})},H);return()=>clearTimeout(f)},[e,d,i,a.previewedSignature,a.errorSignature,n]),d?{count:B(a,i),matchedIds:a.previewedSignature===i?a.matchedIds??[]:[]}:{count:{status:"error",reason:N},matchedIds:[]}},S=e=>L({path:{accountId:e}}),ie=e=>{const t=M({...T({path:{accountId:e??""}}),enabled:!!e});return{filters:t.data?.items??[],isPending:t.isPending,isError:t.isError,error:t.error,refetch:t.refetch}},oe=e=>{const t=v(),r=b({...P(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:S(e)})}}),{mutate:s,mutateAsync:n}=r,i=m.useCallback((o,c,u)=>{e&&s({path:{accountId:e},body:C(o,c,u)})},[e,s]),a=m.useCallback(async(o,c,u)=>e?n({path:{accountId:e},body:C(o,c,u)}).then(()=>!0,()=>!1):!1,[e,n]);return{createFilter:i,createFilterAsync:a,isPending:r.isPending,isSuccess:r.isSuccess,isError:r.isError,error:r.error,reset:r.reset}},le=e=>{const t=v(),r=b({...w(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:S(e)})}}),{mutate:s}=r;return{deleteFilter:m.useCallback(i=>{e&&s({path:{accountId:e,filterId:i}})},[e,s]),isPending:r.isPending,deletingFilterId:r.isPending?r.variables?.path.filterId:void 0}},ue=e=>{const t=v(),r=b({...z(),onSuccess:()=>{e&&t.invalidateQueries({queryKey:S(e)})}}),{mutate:s,variables:n}=r,i=m.useCallback((o,c)=>{e&&s({path:{accountId:e,filterId:o},body:{state:c?"Active":"Disabled"}})},[e,s]),a=m.useCallback(()=>{n&&s(n)},[s,n]);return{toggleFilter:i,retry:a,togglingFilterId:r.isPending?n?.path.filterId:void 0,isError:r.isError,error:r.error,enabling:n?.body?.state==="Active"}};export{h as N,re as S,te as a,S as b,ae as c,Y as d,G as e,V as f,ie as g,le as h,ue as i,E as j,oe as k,ee as l,X as m,se as n,Z as o,A as p,Q as r,ne as u};
@@ -1,84 +0,0 @@
1
- import{r as h,j as a,ct as Y,t as b,I as X,h as Z,at as J,i as ee,av as te,cO as se,bS as re,ab as ne,a0 as ae,X as oe,d6 as _,d7 as I,C as ie,cn as ce}from"./index-1tDGC9Zd.js";import{K as A}from"./kbd-GocZSdkd.js";import{B as le,b as de}from"./useMessageBodyContent-JZVMduqC.js";import{i as ue}from"./search-scope-B5-OK3Cq.js";const me='"Geist Variable", "Geist", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',k={light:{fg:"oklch(0.3 0.025 235)",canvas:"oklch(0.96 0.015 90)",accent:"oklch(0.55 0.14 150)"},dark:{fg:"oklch(0.88 0.02 90)",canvas:"oklch(0.22 0.025 220)",accent:"oklch(0.78 0.16 150)"}},fe={background:!1,spacing:!1},he="16px",ge=()=>`html{padding:0}body{padding:${he};box-sizing:border-box}`,pe=()=>"html{overflow:hidden}body{overflow-x:auto}",be=/prefers-color-scheme\s*:\s*dark|color-scheme\s*:\s*[^;}"']*\bdark\b/i,ye='<meta name="viewport" content="width=device-width, initial-scale=1">',xe=e=>{const t=e?k.dark:k.light;return`
2
- /* Plain-email base: UI font-stack + theme-aware colors (#424) */
3
- html, body {
4
- font-family: ${me};
5
- font-size: 14px;
6
- line-height: 1.6;
7
- color: ${t.fg};
8
- background-color: ${t.canvas};
9
- margin: 0;
10
- padding: 0;
11
- }
12
- /* Strip author unreadable text colors and element backgrounds, scoped to body
13
- descendants so the themed html/body surface above survives this reset. */
14
- body * {
15
- color: inherit !important;
16
- background-color: transparent !important;
17
- }
18
- a, a:visited {
19
- color: ${t.accent} !important;
20
- text-decoration: underline;
21
- }
22
- `},E="invert(0.92) hue-rotate(180deg)",N=`img,picture,video,svg,canvas,[style*='background-image'],[background]{filter:${E}}`,we=(e,t,s)=>{const r=e?k.dark.canvas:k.light.canvas;return s?e?t?`html,body{margin:0;background-color:${r};color-scheme:dark light}`:`html{margin:0;background-color:#ffffff;filter:${E}}body{margin:0}${N}`:"html,body{margin:0;background-color:#ffffff;color-scheme:light}":e?t?`html,body{margin:0;background-color:${r};color-scheme:dark light}`:`html{margin:0;background-color:${r}}body{margin:0;filter:${E}}${N}`:`html,body{margin:0;background-color:${r};color-scheme:light}`},ve=(e,t,s,r=fe)=>{const n=t==="plain"?xe(s):we(s,be.test(e),r.background),o=r.spacing?"":ge();return`${ye}<style>${n}</style>${e}<style>${pe()}${o}</style>`},ke=5e4,Ae="allow-same-origin allow-popups allow-popups-to-escape-sandbox",Se=(e,t,s)=>Math.min(Math.ceil(Math.max(e,t)),s),Ee=new Set(["Enter","Escape","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End"]),Ne=e=>e===" "?!1:e.length===1?!0:Ee.has(e),S=e=>{if(e.metaKey||e.ctrlKey||e.altKey||!Ne(e.key))return;const t=e.currentTarget??e.target,s=t?.defaultView?.parent;!s||s===t?.defaultView||s.dispatchEvent(new KeyboardEvent("keydown",{key:e.key,code:e.code,shiftKey:e.shiftKey,bubbles:!0,cancelable:!0}))},C=({html:e,variant:t="framed",isDark:s=!1,declares:r,className:n})=>{const o=h.useRef(null),[d,g]=h.useState(0),i=h.useMemo(()=>ve(e,t,s,r),[e,t,s,r]);return h.useEffect(()=>{const c=o.current;if(!c)return;const u=()=>{const l=c.contentDocument;if(!l?.body)return;const x=l.documentElement,w=Se(l.body.scrollHeight,x?.scrollHeight??0,ke);g(y=>y===w?y:w)};let m,f;const p=()=>{u(),m?.disconnect(),m=void 0,f?.removeEventListener("keydown",S),f?.removeEventListener("load",u,!0),f=void 0;const l=c.contentDocument;l?.body&&(m=new ResizeObserver(u),m.observe(l.body),l.documentElement&&m.observe(l.documentElement),l.addEventListener("load",u,!0),l.fonts?.ready.then(u),l.addEventListener("keydown",S),f=l)};return c.addEventListener("load",p),()=>{c.removeEventListener("load",p),f?.removeEventListener("keydown",S),f?.removeEventListener("load",u,!0),m?.disconnect()}},[]),a.jsx("iframe",{ref:o,title:"Email content",sandbox:Ae,srcDoc:i,className:n,style:{width:"100%",border:"none",display:"block",height:d===0?"1px":`${d}px`,colorScheme:"normal"}})},Ce=(e,t)=>{const r=e==="newsletter"||e==="marketing"||t;return{framed:r,isPlain:!r}},Te=()=>`
23
- /* Zero the UA default body margin and clamp the document to the iframe width so
24
- wide author markup can't push the body (and the page) past the viewport. */
25
- html, body {
26
- margin: 0;
27
- padding: 0;
28
- max-width: 100%;
29
- }
30
- body {
31
- overflow-wrap: anywhere;
32
- word-break: break-word;
33
- }
34
- /* Media never wider than the frame; keep aspect ratio when width is capped. */
35
- img, video, iframe, svg, canvas {
36
- max-width: 100% !important;
37
- height: auto;
38
- }
39
- /* Fixed-width author tables (\`<table width="600">\`) collapse to fit. */
40
- table {
41
- max-width: 100% !important;
42
- table-layout: auto;
43
- }
44
- /* Cells carry the fixed widths in real newsletters (\`<td width="600">\`);
45
- cap them too or the table can't actually shrink. */
46
- td, th {
47
- max-width: 100% !important;
48
- }
49
- /* \`max-width\` alone can't beat an inline \`min-width\`; zeroing the min lets
50
- flex / grid / table children actually collapse to the clamped width. */
51
- * {
52
- min-width: 0;
53
- }
54
- /* An author \`nowrap\` assumes a viewport as wide as the line. The frame is the
55
- pane's width whatever the mail is, so a pinned paragraph turns reading one
56
- sentence into a sideways drag — and inside an author \`overflow:hidden\` it is
57
- cut mid-character with nothing left to scroll at all. Flowing text wraps. The
58
- \`i\` flag is load-bearing: Outlook and older generators emit \`WHITE-SPACE:
59
- NOWRAP\`, and an attribute value match is case-sensitive without it. */
60
- [nowrap]:not(pre, code, pre *, code *),
61
- [style*="nowrap" i]:not(pre, code, pre *, code *) {
62
- white-space: normal !important;
63
- }
64
- /* Long unbroken strings (URLs, tokens) wrap instead of forcing a wide line. */
65
- pre, code {
66
- white-space: pre-wrap;
67
- overflow-wrap: anywhere;
68
- word-break: break-word;
69
- }
70
- /* Preformatted text keeps its spacing even where a nowrap is declared — on the
71
- block or on a span inside it. \`normal\` would collapse the runs of spaces that
72
- are the entire content of a \`pre\`, and the un-important rule above cannot
73
- defend an inline style, so this wraps to \`pre-wrap\` instead of unwrapping. */
74
- :is(pre, code, pre *, code *):is([nowrap], [style*="nowrap" i]) {
75
- white-space: pre-wrap !important;
76
- }
77
- `,je=e=>{const t=new Map;for(const s of e){if(!s.contentId||s.contentUrl.length===0)continue;const r=s.contentId.replace(/^<|>$/g,"");t.set(r,s.contentUrl)}return s=>t.get(s.replace(/^<|>$/g,""))},Le=/^(none|transparent|inherit|initial|unset)\s*$/i,O=e=>{const t=[],s=/<style[^>]*>([\s\S]*?)<\/style>/gi;let r;for(r=s.exec(e);r!==null;)t.push(r[1]),r=s.exec(e);return t},Re=e=>{const t=/background(?:-color)?\s*:\s*([^;}\n]+)/gi;let s;for(s=t.exec(e);s!==null;){const r=s[1].trim();if(!Le.test(r))return!0;s=t.exec(e)}return!1},_e=e=>{if(/\bstyle\s*=\s*["'][^"']*background/i.test(e)||/\bbgcolor\s*=/i.test(e))return!0;for(const t of O(e))if(Re(t))return!0;return!1},Ie=new Set(["auto","none","initial","inherit","unset","revert","revert-layer"]),Oe=new RegExp(`(?<![-\\w])(?:padding|margin)(?:-(top|right|bottom|left|block|inline)(?:-(?:start|end))?)?\\s*:\\s*([^;}"']+)`,"gi"),$e=new Set(["top","bottom","block"]),$=e=>e.replace(/\/\*[\s\S]*?\*\//g,""),T=e=>{const t=e.toLowerCase();if(!t||Ie.has(t)||t.startsWith("-"))return!1;const s=/^\+?(\d*\.?\d+)[a-z%]*$/.exec(t);return s?Number.parseFloat(s[1])!==0:!0},Be=e=>{const t=e.split(/\s+/).filter(Boolean);return t.length<2?t:t.length<4?[t[1]]:[t[1],t[3]]},Me=(e,t)=>{if(e&&$e.has(e))return!1;const s=t.replace(/!\s*important/gi,"").trim();return s?e?s.split(/\s+/).some(T):Be(s).some(T):!1},j=e=>{for(const t of $(e).matchAll(Oe))if(Me(t[1],t[2]))return!0;return!1},B=new Set(["blockquote"]),De=e=>e.replace(/<!--[\s\S]*?-->/g,""),ze=e=>{const t=[],s=/<([a-zA-Z][\w:-]*)((?:"[^"]*"|'[^']*'|[^>"'])*)>/g,r=/\bstyle\s*=\s*(?:"([^"]*)"|'([^']*)')/gi;for(const[,n,o]of e.matchAll(s))for(const d of o.matchAll(r))t.push({tag:n.toLowerCase(),style:d[1]??d[2]??""});return t},Pe=e=>[...$(e).matchAll(/([^{}]*)\{([^{}]*)\}/g)].map(t=>({selector:t[1].trim(),body:t[2]})),Ke=e=>{const t=e.trim().split(/[\s>+~]+/).pop()??"";return(/^[a-zA-Z][\w-]*/.exec(t)?.[0]??"").toLowerCase()},Fe=e=>e.split(",").every(t=>B.has(Ke(t))),He=e=>{const t=O(e),s=De(e);if(/\bcellpadding\s*=\s*["']?(?!0["'\s>])\d/i.test(s))return!0;for(const{tag:r,style:n}of ze(s))if(!B.has(r)&&j(n))return!0;for(const r of t)for(const n of Pe(r))if(!Fe(n.selector)&&j(n.body))return!0;return!1},Ge=["script","iframe","object","embed","form","input","button","textarea","select","meta","link","base"],Ue=["onerror","onload","onclick","onmouseover","onmouseout","onfocus","onblur","onsubmit","onkeydown","onkeyup","formaction","xlink:href","data-bind"],We="data:image/svg+xml,"+encodeURIComponent(`
78
- <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
79
- <rect fill="#f0f0f0" width="100" height="100"/>
80
- <text x="50" y="50" text-anchor="middle" dy=".3em" fill="#999" font-size="12">
81
- Image blocked
82
- </text>
83
- </svg>
84
- `),Ve=e=>e.replace(/url\s*\([^)]*\)/gi,"none").replace(/expression\s*\([^)]*\)/gi,"").replace(/-moz-binding\s*:[^;]*/gi,""),Qe=e=>e.replace(/@import[^;]*;/gi,"/* @import blocked */").replace(/url\s*\([^)]*\)/gi,"none").replace(/expression\s*\([^)]*\)/gi,"").replace(/-moz-binding\s*:[^;]*/gi,""),qe=(e={})=>{const t=Y(),s={FORBID_TAGS:Ge,FORBID_ATTR:Ue,ALLOW_DATA_ATTR:!1,ALLOW_UNKNOWN_PROTOCOLS:!1};return t.addHook("afterSanitizeAttributes",r=>{if(e.allowExternalImages||(r.tagName==="IMG"&&r.removeAttribute("srcset"),r.tagName==="SOURCE"&&(r.removeAttribute("srcset"),r.removeAttribute("src")),r.tagName==="VIDEO"&&r.removeAttribute("poster")),r.tagName==="IMG"){const n=r.getAttribute("src")||"";if(n.startsWith("data:"))return;if(n.startsWith("cid:")){const d=n.slice(4).replace(/^<|>$/g,""),g=e.resolveCid?.(d);g&&(r.setAttribute("src",g),r.classList.add("inline-content"));return}e.allowExternalImages||(r.setAttribute("data-blocked-src",n),r.setAttribute("src",We),r.setAttribute("alt","[Blocked image]"),r.classList.add("blocked-image"))}if(r.tagName==="A"){const n=r.getAttribute("href")||"";if(/^(javascript|data):/i.test(n)){r.removeAttribute("href");return}r.setAttribute("target","_blank"),r.setAttribute("rel","noopener noreferrer nofollow"),r.classList.add("external-link")}if(r.hasAttribute("style")){const n=r.getAttribute("style")||"";r.setAttribute("style",Ve(n))}}),t.addHook("uponSanitizeElement",(r,n)=>{if(n.tagName==="style"){const o=r.textContent||"";r.textContent=Qe(o)}}),r=>{const n=_e(r),o=He(r),d=t.sanitize(r,s);return{html:`<style>${Te()}</style>${d}`,hasAuthorBackground:n,hasAuthorSpacing:o}}},L=()=>a.jsx("p",{className:"text-fg-muted text-sm italic",children:"This message has no body content."}),Et=({className:e,children:t})=>a.jsx("div",{className:b("[&_.message-body-frame]:-mx-2 lg:[&_.message-body-frame]:-mx-4",e),children:t}),Ye=({html:e,text:t,isDark:s=!1,category:r,allowImages:n=!1,resolveCid:o,className:d,renderBlockedNotice:g})=>{const i=h.useMemo(()=>!e||typeof document>"u"?null:qe({allowExternalImages:n,resolveCid:o})(e),[e,n,o]),c=i?.html??null,{framed:u,isPlain:m}=Ce(r,i?.hasAuthorBackground??!1),f=h.useMemo(()=>({background:i?.hasAuthorBackground??!1,spacing:i?.hasAuthorSpacing??!1}),[i?.hasAuthorBackground,i?.hasAuthorSpacing]),p=h.useMemo(()=>!c||n?0:(c.match(/data-blocked-src/g)||[]).length,[c,n]);return!c&&!t?a.jsx("div",{className:b("message-body",d),children:a.jsx(L,{})}):a.jsxs("div",{className:b("message-body",d),children:[p>0&&a.jsx("div",{children:g?.(p)}),c?a.jsx("div",{className:"message-body-frame",children:u?a.jsx("div",{className:"w-full max-w-full",children:a.jsx(C,{html:c,variant:"framed",isDark:s,declares:f})}):a.jsx("div",{className:"max-w-full lg:max-w-2xl",children:a.jsx(C,{html:c,variant:m?"plain":"framed",isDark:s,declares:f})})}):t?a.jsx("pre",{className:"email-text whitespace-pre-wrap text-sm leading-relaxed",children:t}):a.jsx(L,{})]})};function Nt({message:e="Select a thread to read",icon:t,showHints:s=!0,className:r}){return a.jsxs("div",{className:b("flex flex-1 flex-col items-center justify-center text-center",r),children:[t??a.jsx(X,{className:"size-10 text-fg-subtle"}),a.jsx("p",{className:"mt-3 text-sm text-fg-muted",children:e}),s&&a.jsxs("p",{className:"text-2xs text-fg-subtle",children:[a.jsx(A,{children:"j"})," / ",a.jsx(A,{children:"k"})," to move, ",a.jsx(A,{children:"Enter"})," to open"]})]})}function M(e){const t=[];let s=-1,r=!1;for(let n=0;n<e.length;n++){const o=e[n];if(o==='"'){r=!r,s<0&&(s=n);continue}if(!r&&/\s/.test(o)){s>=0&&t.push({raw:e.slice(s,n),start:s,end:n}),s=-1;continue}s<0&&(s=n)}return s>=0&&t.push({raw:e.slice(s),start:s,end:e.length}),t}const Xe=e=>{if(!e.startsWith('"'))return e;const t=e.slice(1);return t.endsWith('"')?t.slice(0,-1):t};function Ze(e){const t=e.indexOf(":");if(t<=0)return;const s=e.slice(t+1);return{name:e.slice(0,t).toLowerCase(),value:Xe(s),rawValue:s}}const Je=e=>/[\s"]/.test(e),et=e=>Je(e)?`"${e.replace(/"/g,"")}"`:e,Ct=(e,t)=>`${e}:${et(t)}`,D=(e,t=Date.now())=>({value:e,setAt:t}),tt=(e,t,s,r)=>{if(e.addressId!==t)return e;const n={...e.flags??{}};return s?n.trusted=D(!0,r):delete n.trusted,{...e,flags:n}},st=(e,t,s,r)=>{const n=o=>o.map(d=>tt(d,t,s,r));return{...e,envelope:{...e.envelope,from:n(e.envelope.from),to:n(e.envelope.to),cc:n(e.envelope.cc),bcc:n(e.envelope.bcc),replyTo:n(e.envelope.replyTo)}}},rt=({messageId:e})=>{const t=Z(),{pushError:s}=J(),{mutate:r,isPending:n,error:o,reset:d}=ee({...re(),onMutate:async i=>{const c=i.path.addressId,m=i.body.flags?.trusted?.value===!0,f=se({path:{messageId:e}});await t.cancelQueries({queryKey:f});const p=t.getQueriesData({queryKey:f}).filter(l=>l[1]!==void 0).map(([l,x])=>({queryKey:l,data:x}));return t.setQueriesData({queryKey:f},l=>l&&st(l,c,m)),{describePrefix:f,previous:p}},onError:(i,c,u)=>{if(u)for(const m of u.previous)t.setQueryData(m.queryKey,m.data);s(te("Couldn't trust sender","The change wasn't saved.",i))},onSettled:(i,c,u,m)=>{m&&t.invalidateQueries({queryKey:m.describePrefix})}});return{toggleTrusted:(i,c)=>{r({path:{addressId:i},body:{flags:{trusted:D(!c)}}})},isPending:n,error:o,reset:d}},nt=()=>{const[e,t]=h.useState(()=>typeof document<"u"&&document.documentElement.classList.contains("dark"));return h.useEffect(()=>{const s=document.documentElement,r=new MutationObserver(()=>{t(s.classList.contains("dark"))});return r.observe(s,{attributes:!0,attributeFilter:["class"]}),()=>r.disconnect()},[]),e},at=(e,t)=>{const s=`${e} image${e>1?"s":""}`;return t?`${s} hidden — you blocked this sender`:`${s} blocked for privacy`},ot=({blockedImageCount:e,canAlwaysTrust:t,isTrustPending:s,isSenderBlocked:r,onLoadOnce:n,onAlwaysTrust:o})=>a.jsxs("div",{"data-testid":"blocked-images-notice",className:"mb-3 flex items-center justify-between rounded-md bg-surface-sunken/50 px-3 py-2 text-sm",children:[a.jsx("span",{className:"text-fg-muted",children:at(e,r)}),!r&&a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("button",{type:"button",onClick:n,className:"text-accent hover:underline",children:"Load once"}),t&&a.jsx("button",{type:"button",onClick:o,"aria-busy":s,className:"text-accent hover:underline aria-busy:opacity-50",children:s?"Trusting…":"Always trust"})]})]}),it=(e,t)=>{switch(e){case"auth":return{title:"Your session expired",detail:"Sign in again to reload the message body. Other parts of the app may also stop responding until you do."};case"body-missing":return{title:"Message body is missing in storage",detail:"A sync failure may have left this message without its body bytes. Contact support, or run the reconcile script to refetch from the upstream IMAP server."};case"content-type-mismatch":return{title:"Couldn't load message body",detail:"The server returned an unexpected content type for this part. The message body has not been rendered to keep you safe."};case"spa-shell-leak":return{title:"Couldn't load message body",detail:"The server returned the app shell instead of the message body. This is an infrastructure bug — please report it."};case"not-ready":return{title:"Message body is still syncing",detail:"This message's body hasn't finished downloading from the mail server yet. It should appear shortly — reopen the message to try again."};default:return{title:"Couldn't load message body",detail:t}}},ct=e=>e instanceof le?e.reason:"generic",lt=e=>e instanceof Error?e.message:typeof e=="string"?e:"An unexpected error occurred while loading the message body.",dt=({error:e,onRetry:t})=>{const s=ct(e),r=lt(e),{title:n,detail:o}=it(s,r),[d,g]=h.useState(!1),{Account:i}=ne();return d?null:a.jsxs("div",{role:"alert","data-testid":"message-body-error-banner","data-reason":s,className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[a.jsx(ae,{className:"size-4 shrink-0 text-danger mt-0.5","aria-hidden":"true"}),a.jsxs("div",{className:"flex-1 min-w-0",children:[a.jsx("p",{className:"font-medium text-danger",children:n}),a.jsx("p",{className:"text-fg-muted mt-1 break-words",children:o})]}),a.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[s==="auth"&&a.jsx(i,{children:({signOut:c})=>a.jsx("button",{type:"button",onClick:()=>c(),className:"text-sm font-medium text-accent hover:underline",children:"Sign in again"})}),t&&a.jsx("button",{type:"button",onClick:t,className:"text-sm font-medium text-accent hover:underline",children:"Retry"}),a.jsx("button",{type:"button",onClick:()=>g(!0),"aria-label":"Dismiss message body error",className:"rounded-md p-1 text-fg-muted hover:bg-surface-raised hover:text-fg transition-colors",children:a.jsx(oe,{className:"size-4","aria-hidden":"true"})})]})]})},ut=()=>a.jsxs("div",{className:"animate-pulse space-y-2",role:"status","aria-label":"Loading message body",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-3/4"}),a.jsx("div",{className:"h-4 bg-surface-sunken rounded w-5/6"})]}),R=()=>a.jsx("p",{className:"text-fg-muted text-sm italic",children:"This message has no body content."}),Tt=({bodyParts:e,html:t,text:s,isTrusted:r=!1,isBlocked:n=!1,messageId:o,fromAddressId:d,category:g,className:i})=>{const[c,u]=h.useState(!1),[m,f]=h.useState(o);m!==o&&(f(o),u(!1));const p=!n&&(r||c),l=nt(),{toggleTrusted:x,isPending:w}=rt({messageId:o??""}),y=!!e&&e.length>0,{picked:z,data:v,isLoading:P,isError:K,error:F,refetch:H}=de({messageId:o,bodyParts:e,enabled:y}),G=h.useMemo(()=>je(e??[]),[e]),U=y&&v?.kind==="html"?v.body:t,W=y&&v?.kind==="text"?v.body:s;if(y){if(P)return a.jsx("div",{className:b("message-body",i),children:a.jsx(ut,{})});if(K)return a.jsx("div",{className:b("message-body",i),children:a.jsx(dt,{error:F,onRetry:()=>H()})});if(!z)return a.jsx("div",{className:b("message-body",i),children:a.jsx(R,{})})}else if(!t&&!s)return a.jsx("div",{className:b("message-body",i),children:a.jsx(R,{})});const V=!!(d&&o),Q=()=>{!d||w||(u(!0),x(d,!1))};return a.jsx(Ye,{className:i,html:U,text:W,isDark:l,category:g,allowImages:p,resolveCid:G,renderBlockedNotice:q=>a.jsx(ot,{blockedImageCount:q,canAlwaysTrust:V,isTrustPending:w,isSenderBlocked:n,onLoadOnce:()=>u(!0),onAlwaysTrust:Q})})},mt=Object.values(_).map(e=>({value:e,label:I[e]})),ft={unclassified:"uncategorized"},ht=[{name:"from",label:"Sender",values:"contact"},{name:"subject",label:"Subject",values:"text"},{name:"category",label:"Category",values:"fixed",options:mt},{name:"is",label:"State",values:"fixed",options:[{value:"unread",label:"Unread"},{value:"read",label:"Read"},{value:"starred",label:"Starred"}]},{name:"has",label:"Contents",values:"fixed",options:[{value:"attachment",label:"Has attachment"}]},{name:"in",label:"Folder",values:"mailbox"},{name:"account",label:"Account",values:"account"},{name:"after",label:"Sent on or after",values:"date"},{name:"before",label:"Sent before",values:"date"}],gt=new Map(ht.map(e=>[e.name,e])),jt=e=>gt.get(e.toLowerCase()),pt=/^\d{4}-\d{2}-\d{2}$/;function bt(e,t,s){if(!pt.test(s))return;const r=Date.parse(`${s}T00:00:00Z`);if(!Number.isNaN(r))return{type:e,raw:t,value:s,epochSeconds:Math.floor(r/1e3)}}function yt(e){const t=e.toLowerCase(),s=ft[t];return s||Object.values(_).find(n=>n===t)}function xt(e,t){switch(t.toLowerCase()){case"unread":return{type:"isUnread",raw:e};case"read":return{type:"isRead",raw:e};case"starred":case"flagged":return{type:"isStarred",raw:e};default:return}}function wt(e,t){const s=Ze(e);if(!s||s.value.length===0)return;const{name:r,value:n}=s;switch(r){case"from":return{type:"from",raw:e,value:n};case"subject":return{type:"subject",raw:e,value:n};case"category":{const o=yt(n);return o?{type:"category",raw:e,value:n,category:o}:void 0}case"is":return xt(e,n);case"has":return n.toLowerCase()==="attachment"?{type:"hasAttachment",raw:e}:void 0;case"before":case"after":return bt(r,e,n);case"in":{const o=t.mailboxesByName?.get(n.toLowerCase());return o?{type:"in",raw:e,value:n,mailboxId:o}:void 0}case"account":{const o=t.accountsByName?.get(n.toLowerCase());return o?{type:"account",raw:e,value:n,accountId:o}:void 0}default:return}}function Lt(e,t={}){const s=[],r=[];for(const n of M(e)){const o=wt(n.raw,t);o?s.push(o):r.push(n.raw)}return{freeText:r.join(" "),tokens:s}}function Rt(e,t){return M(e).filter(s=>s.raw!==t.raw).map(s=>s.raw).join(" ")}function _t(e){switch(e.type){case"from":return`From: ${e.value}`;case"subject":return`Subject: ${e.value}`;case"category":return`Category: ${I[e.category]}`;case"hasAttachment":return"Has attachment";case"isUnread":return"Unread";case"isRead":return"Read";case"isStarred":return"Starred";case"before":return`Before ${e.value}`;case"after":return`After ${e.value}`;case"in":return`In: ${e.value}`;case"account":return`Account: ${e.value}`}}function It(){const{mailboxNameIndex:e,accountNameIndex:t}=ie(),s=ce();return{...ue(s)?{}:{mailboxesByName:e},accountsByName:t}}export{Et as M,Nt as R,ht as S,Ye as a,rt as b,Tt as c,jt as d,M as e,Ze as f,Ct as g,Lt as p,Rt as r,_t as s,It as u};
@@ -1 +0,0 @@
1
- const a=t=>{const d=new Set;return t.filter(e=>e.threadId===void 0?!0:d.has(e.threadId)?!1:(d.add(e.threadId),!0))},r=(t,d)=>t.filter(e=>d.has(e.id)).map(e=>({id:e.id,sender:e.fromName,email:e.fromEmail,subject:e.subject,date:e.timeLabel,accountId:e.accountId}));export{a as d,r as w};