@remit/web-client-dist 0.0.673 → 0.0.674

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 (207) hide show
  1. package/assets/BriefPane-zWXuK_Pj.js +1 -0
  2. package/assets/CalendarComposePane-Bz_-lcWc.js +1 -0
  3. package/assets/{CalendarComposeSeed-B0PN5iBD.js → CalendarComposeSeed-DrUkfGTc.js} +1 -1
  4. package/assets/CalendarShell-BATnya1t.js +1 -0
  5. package/assets/{EmptyState-Do3nwfV4.js → EmptyState-DjcO1Fvj.js} +1 -1
  6. package/assets/ErrorState-Bi4vrhhQ.js +1 -0
  7. package/assets/FlaggedPane-Doc9iLZn.js +1 -0
  8. package/assets/FullCompose-D6Xef8Ur.js +1 -0
  9. package/assets/{LabelApplyTrigger-BNJ7ewFc.js → LabelApplyTrigger-BnPNejnI.js} +1 -1
  10. package/assets/MailNav-C8EZGG4u.js +1 -0
  11. package/assets/MailShell-Dc5V-rLi.js +1 -0
  12. package/assets/MailViewChrome-CJkUbWPO.js +1 -0
  13. package/assets/MailboxPane-Bzn-4kym.js +1 -0
  14. package/assets/{MessageBody-xzQttW18.js → MessageBody-AvWIklnv.js} +3 -3
  15. package/assets/MessageToolbar-CvC2dLSg.js +1 -0
  16. package/assets/NavMenuButton-DSpTQKmQ.js +1 -0
  17. package/assets/{OnboardingWizard-hiUJAJmS.js → OnboardingWizard-DzR2uArY.js} +1 -1
  18. package/assets/OpenCalendarEvent-DuKGo-jF.js +2 -0
  19. package/assets/OutboxPane-Bf8T7dxW.js +1 -0
  20. package/assets/{SignInAgain-CZ5gXYZu.js → SignInAgain-CCZnH9Mt.js} +1 -1
  21. package/assets/_calendarObjectId-BGZWGcp9.js +1 -0
  22. package/assets/_mailboxId-GGJA-jVS.js +1 -0
  23. package/assets/_messageId-C5LRx072.js +1 -0
  24. package/assets/_messageId-CCba-TdT.js +1 -0
  25. package/assets/_messageId-TW2iI02X.js +1 -0
  26. package/assets/_outboxMessageId-BwVgR2h4.js +1 -0
  27. package/assets/_recurrenceId-pJxBSSXe.js +1 -0
  28. package/assets/_threadId-B_SsLFXa.js +1 -0
  29. package/assets/_threadId-CL2HHRtw.js +1 -0
  30. package/assets/_threadId-DLvgcvlr.js +1 -0
  31. package/assets/_view._date-wBuxk5kG.js +1 -0
  32. package/assets/accounts-Dc5147aO.js +1 -0
  33. package/assets/{advanced-CmQPXUBR.js → advanced-C3zdMHK5.js} +1 -1
  34. package/assets/{appearance-Bj0VbMeI.js → appearance-Df1fh0eu.js} +1 -1
  35. package/assets/attendee-row-r-oUgLyi.js +1 -0
  36. package/assets/{avatar-CDZx9RcB.js → avatar-qD7fcqFf.js} +1 -1
  37. package/assets/bell-off-DNCJLc9z.js +1 -0
  38. package/assets/{bottom-sheet-B-kTBnyv.js → bottom-sheet-B_7iO-ln.js} +1 -1
  39. package/assets/brief-ClYJePmh.js +1 -0
  40. package/assets/{brief-BnVwi6Bh.js → brief-RK0pe25_.js} +1 -1
  41. package/assets/{bug-rutCyt-b.js → bug-D6xXLRSh.js} +1 -1
  42. package/assets/calendar-Dg7vWWgr.js +1 -0
  43. package/assets/{calendar-clash-strip-DBNuXhBt.js → calendar-clash-strip-C9X1djbQ.js} +1 -1
  44. package/assets/{calendar-report-OI80fkc1.js → calendar-report-BRGottVJ.js} +1 -1
  45. package/assets/{calendar-suggestion-B5sKDqe0.js → calendar-suggestion-qEC_UasM.js} +1 -1
  46. package/assets/calendars-DBDN0ptk.js +1 -0
  47. package/assets/card-C9cgHaft.js +1 -0
  48. package/assets/{checkbox-DJpIppZD.js → checkbox-CiQllE1Y.js} +1 -1
  49. package/assets/chevron-left-Bt4eJ35K.js +1 -0
  50. package/assets/{circle-check-Nj7sUGPS.js → circle-check-CQPt1U9q.js} +1 -1
  51. package/assets/circle-check-big-ZwVj0mbk.js +1 -0
  52. package/assets/circle-help-BtMu5xYr.js +1 -0
  53. package/assets/{clock-99u2Mdmy.js → clock-B-eYdLBT.js} +1 -1
  54. package/assets/compose._-_outboxMessageId_-BMq7tjfo.js +1 -0
  55. package/assets/compose._-_outboxMessageId_-CbnOP01x.js +1 -0
  56. package/assets/compose._-_outboxMessageId_-CoBJDS24.js +1 -0
  57. package/assets/compose._-_outboxMessageId_-Cr5hBZLH.js +1 -0
  58. package/assets/{config-import-CAmEPP05.js → config-import-DhLbROIb.js} +1 -1
  59. package/assets/{confirm-dialog-PhUq_oc3.js → confirm-dialog-AppxcVfC.js} +1 -1
  60. package/assets/copy-BCzZpML3.js +1 -0
  61. package/assets/{credential-steps-BES-y0iD.js → credential-steps-DCjuFFo-.js} +1 -1
  62. package/assets/download-C6M2pRs1.js +1 -0
  63. package/assets/{external-link-BsYxbrL5.js → external-link-tmwz3hf0.js} +1 -1
  64. package/assets/{file-json-C0JfxlBX.js → file-json-BgVPDajK.js} +1 -1
  65. package/assets/filters-CwblOGNb.js +1 -0
  66. package/assets/flagged-DvOlELtX.js +1 -0
  67. package/assets/{flagged-BTJq-RZj.js → flagged-IHM3vv4x.js} +1 -1
  68. package/assets/folders-lF0pnG5O.js +1 -0
  69. package/assets/{help-copy-BUCBLhdW.js → help-copy-BN4-5aIP.js} +1 -1
  70. package/assets/import-BT72aUBc.js +1 -0
  71. package/assets/index-BDcVKyir.js +1 -0
  72. package/assets/index-C5LRx072.js +1 -0
  73. package/assets/index-CCba-TdT.js +1 -0
  74. package/assets/index-CVKDJurZ.js +1 -0
  75. package/assets/index-CXrVnh7V.js +1 -0
  76. package/assets/index-CXzCthHG.js +349 -0
  77. package/assets/{index-BBaBlwlN.js → index-Cb2UJhnj.js} +7 -7
  78. package/assets/{index-XWbwFOgn.js → index-DRT_I4p4.js} +1 -1
  79. package/assets/index-DSNc3rHB.js +1 -0
  80. package/assets/index-T04Kj7bC.js +1 -0
  81. package/assets/index-TW2iI02X.js +1 -0
  82. package/assets/index-u72ANhps.js +1 -0
  83. package/assets/kbd-DxdiA2Fl.js +1 -0
  84. package/assets/labels-CTSVGM1M.js +1 -0
  85. package/assets/mail-BLRLmM-I.js +1 -0
  86. package/assets/mail-CHopLOA-.js +1 -0
  87. package/assets/{map-pin-C0usgYas.js → map-pin-DbNUeHlR.js} +1 -1
  88. package/assets/menu-ouYQ8aI9.js +1 -0
  89. package/assets/minus-COyPQ5q9.js +1 -0
  90. package/assets/{new-BEBqxznp.js → new-DRfIDZVL.js} +1 -1
  91. package/assets/onboarding-U6yiJPWH.js +1 -0
  92. package/assets/onboarding-completion-h9meGJrm.js +1 -0
  93. package/assets/outbox-DFxDZsE8.js +1 -0
  94. package/assets/{pencil-CoAnhAKI.js → pencil-D0Kwpd2W.js} +1 -1
  95. package/assets/{popover-menu-BHNjsQiI.js → popover-menu-CTiORP1p.js} +1 -1
  96. package/assets/refresh-cw-aweb7slK.js +1 -0
  97. package/assets/reply-B9-kr45N.js +1 -0
  98. package/assets/{rich-text-D9hn7JQa.js → rich-text-BlpPNJ69.js} +14 -14
  99. package/assets/{rich-text-spellcheck-worker-provider-BqOsf6u-.js → rich-text-spellcheck-worker-provider-BVC2WqOs.js} +1 -1
  100. package/assets/rotate-ccw-cFCdZR4R.js +1 -0
  101. package/assets/{roving-focus-B9mHbGbD.js → roving-focus-iNw1K_A-.js} +1 -1
  102. package/assets/{row-actions-BkhFe3TY.js → row-actions-CsY_49bo.js} +1 -1
  103. package/assets/search-mirror-Bg0i4bJE.js +1 -0
  104. package/assets/{search-query-0wEBmb1P.js → search-query-Dq2--dgF.js} +1 -1
  105. package/assets/search-token-index-JnwciDu0.js +1 -0
  106. package/assets/{sections-ClqQBEFv.js → sections-By63r1y_.js} +1 -1
  107. package/assets/{senders-DuUfs3Pf.js → senders-BollE7le.js} +1 -1
  108. package/assets/settings-aPDqsj-M.js +1 -0
  109. package/assets/{settings-screen-BjSyVU2l.js → settings-screen-DxN6mICP.js} +1 -1
  110. package/assets/shield-check-C6K5BNfE.js +1 -0
  111. package/assets/suggested-vips-DnRYIdD0.js +1 -0
  112. package/assets/{suggestion._suggestionId-BnW2e786.js → suggestion._suggestionId-m9OzQCaR.js} +1 -1
  113. package/assets/{undo-2-WqFuHEgY.js → undo-2-BV0sKXdu.js} +1 -1
  114. package/assets/{useCalendarData-C3g6QMEH.js → useCalendarData-BQ_jLMR7.js} +1 -1
  115. package/assets/useCalendarEvents-lDPF_B6_.js +1 -0
  116. package/assets/useCalendarFreeBusy-BFq23gzr.js +1 -0
  117. package/assets/{useCalendarWrites-LwW_U-yG.js → useCalendarWrites-CIJUCBzo.js} +1 -1
  118. package/assets/{useCalendars-B1migLvB.js → useCalendars-BgSJfw8G.js} +1 -1
  119. package/assets/{useDebouncedValue-nmGpghjy.js → useDebouncedValue--u19KX6h.js} +1 -1
  120. package/assets/{useFilters-zdrGUBZF.js → useFilters-Cmf0Cndn.js} +1 -1
  121. package/assets/{useLabels-CesUuQey.js → useLabels-CN56tbCw.js} +1 -1
  122. package/assets/useLayoutTier-CUyuK30O.js +1 -0
  123. package/assets/useMediaQuery-DB2OdJvp.js +1 -0
  124. package/assets/useMessageBodyContent-Gq_pdN4f.js +1 -0
  125. package/assets/{useQueries-BDOaD0Tu.js → useQueries-gpmd3w5y.js} +1 -1
  126. package/assets/useRefreshControl-DdZILsE1.js +1 -0
  127. package/assets/{useResultFolderIndex-D44p4QVU.js → useResultFolderIndex-EOtkNq1e.js} +1 -1
  128. package/assets/{useSignature-BMl5h116.js → useSignature-37xUEwqG.js} +1 -1
  129. package/assets/{warnings-L0tU6MHK.js → warnings-BYDfjgnx.js} +5 -5
  130. package/index.html +1 -1
  131. package/package.json +1 -1
  132. package/assets/BriefPane-DqtL8KK7.js +0 -1
  133. package/assets/CalendarComposePane-Sr72cVvW.js +0 -1
  134. package/assets/CalendarShell-_yGJJZGQ.js +0 -1
  135. package/assets/ErrorState-DcwvjIQG.js +0 -1
  136. package/assets/FlaggedPane-Cmhk0gcN.js +0 -1
  137. package/assets/FullCompose-aUTiTI79.js +0 -1
  138. package/assets/MailNav-BdiWAfH_.js +0 -1
  139. package/assets/MailShell-DTW4ysuk.js +0 -1
  140. package/assets/MailViewChrome-BOp09SXr.js +0 -1
  141. package/assets/MailboxPane-CbM92Ovm.js +0 -1
  142. package/assets/MessageToolbar-D_XXU4rk.js +0 -1
  143. package/assets/NavMenuButton-D-YzcNLk.js +0 -1
  144. package/assets/OpenCalendarEvent-DI9FmufS.js +0 -2
  145. package/assets/OutboxPane-5Tg_XaNz.js +0 -1
  146. package/assets/_calendarObjectId-vCwbJTnk.js +0 -1
  147. package/assets/_mailboxId-Cfuu19RK.js +0 -1
  148. package/assets/_messageId-CgycoOJ5.js +0 -1
  149. package/assets/_messageId-D-b80c2N.js +0 -1
  150. package/assets/_messageId-DRetwfpf.js +0 -1
  151. package/assets/_outboxMessageId-Bn0dQ4xZ.js +0 -1
  152. package/assets/_recurrenceId-Cnhx2TOl.js +0 -1
  153. package/assets/_threadId-Cng5uaoZ.js +0 -1
  154. package/assets/_threadId-DOrkCv20.js +0 -1
  155. package/assets/_threadId-DXMeaFS2.js +0 -1
  156. package/assets/_view._date-CbKJy0l4.js +0 -1
  157. package/assets/accounts-Cq3q9zT9.js +0 -1
  158. package/assets/attendee-row-CPJnqwGs.js +0 -1
  159. package/assets/bell-off-Bzm-PBgf.js +0 -1
  160. package/assets/brief-smZMIU_D.js +0 -1
  161. package/assets/calendar-Badl9o28.js +0 -1
  162. package/assets/calendars-CUfsifTm.js +0 -1
  163. package/assets/card-WnranLyn.js +0 -1
  164. package/assets/chevron-left-CF03ieoO.js +0 -1
  165. package/assets/circle-check-big-Bkno0zML.js +0 -1
  166. package/assets/circle-help-DqnCeQ17.js +0 -1
  167. package/assets/compose._-_outboxMessageId_-BKdFP0ao.js +0 -1
  168. package/assets/compose._-_outboxMessageId_-BtlHF3xu.js +0 -1
  169. package/assets/compose._-_outboxMessageId_-D0RsY9X4.js +0 -1
  170. package/assets/compose._-_outboxMessageId_-D388BLER.js +0 -1
  171. package/assets/copy-CLKRqvl9.js +0 -1
  172. package/assets/download-DS8Ui8jJ.js +0 -1
  173. package/assets/filters-BAZYluMO.js +0 -1
  174. package/assets/flagged-CoNpo9-C.js +0 -1
  175. package/assets/folders-C-gfrylt.js +0 -1
  176. package/assets/import-D5avZjYG.js +0 -1
  177. package/assets/index-B-6f2NO7.js +0 -1
  178. package/assets/index-BCw2cMz0.js +0 -1
  179. package/assets/index-BVmS60uo.js +0 -1
  180. package/assets/index-Bnka257H.js +0 -1
  181. package/assets/index-CBHO_oxW.js +0 -1
  182. package/assets/index-CgycoOJ5.js +0 -1
  183. package/assets/index-D-b80c2N.js +0 -1
  184. package/assets/index-D7VpR8Bx.js +0 -293
  185. package/assets/index-DYyayMku.js +0 -1
  186. package/assets/index-DZZWB09x.js +0 -1
  187. package/assets/kbd-DzZig-MJ.js +0 -1
  188. package/assets/labels-dyDIPXoj.js +0 -1
  189. package/assets/mail-BiL0g7on.js +0 -1
  190. package/assets/mail-Bir39SMd.js +0 -1
  191. package/assets/menu-liPRY-HF.js +0 -1
  192. package/assets/minus-Cs2PKH6V.js +0 -1
  193. package/assets/onboarding-CHwAu1ha.js +0 -1
  194. package/assets/onboarding-completion-CYRjdQQn.js +0 -1
  195. package/assets/outbox-C0EOKXQq.js +0 -1
  196. package/assets/refresh-cw-CpnxiYht.js +0 -1
  197. package/assets/rotate-ccw-Cj4SUyhN.js +0 -1
  198. package/assets/search-mirror-DQmL3P3k.js +0 -1
  199. package/assets/search-token-index-CXQQu5cA.js +0 -1
  200. package/assets/settings-KZn9t_aP.js +0 -1
  201. package/assets/shield-check-CD-wbm99.js +0 -1
  202. package/assets/suggested-vips-B7UuI1d0.js +0 -1
  203. package/assets/useCalendarEvents-BQ8pmFV8.js +0 -1
  204. package/assets/useCalendarFreeBusy-CrTlSUQQ.js +0 -1
  205. package/assets/useLayoutTier-B0zSRsSh.js +0 -1
  206. package/assets/useMessageBodyContent-DPlXjxls.js +0 -1
  207. package/assets/useRefreshControl-CSd_fo15.js +0 -1
@@ -1 +0,0 @@
1
- import{j as o}from"./index-D7VpR8Bx.js";import{F as r}from"./FlaggedPane-Cmhk0gcN.js";import"./MessageBody-xzQttW18.js";import"./kbd-DzZig-MJ.js";import"./search-scope-UI1H6AzA.js";import"./useMessageBodyContent-DPlXjxls.js";import"./MessageToolbar-D_XXU4rk.js";import"./roving-focus-B9mHbGbD.js";import"./search-token-index-CXQQu5cA.js";import"./useQueries-BDOaD0Tu.js";import"./EmptyState-Do3nwfV4.js";import"./ErrorState-DcwvjIQG.js";import"./popover-menu-BHNjsQiI.js";import"./mail-BiL0g7on.js";import"./avatar-CDZx9RcB.js";import"./index-BBaBlwlN.js";import"./useSignature-BMl5h116.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-nmGpghjy.js";import"./sections-ClqQBEFv.js";import"./undo-2-WqFuHEgY.js";import"./download-DS8Ui8jJ.js";import"./useCalendarFreeBusy-CrTlSUQQ.js";import"./useCalendarEvents-BQ8pmFV8.js";import"./useCalendars-B1migLvB.js";import"./map-pin-C0usgYas.js";import"./useLayoutTier-B0zSRsSh.js";import"./calendar-suggestion-B5sKDqe0.js";import"./attendee-row-CPJnqwGs.js";import"./minus-Cs2PKH6V.js";import"./clock-99u2Mdmy.js";import"./calendar-clash-strip-DBNuXhBt.js";import"./bell-off-Bzm-PBgf.js";import"./shield-check-CD-wbm99.js";import"./calendar-report-OI80fkc1.js";import"./menu-liPRY-HF.js";import"./useFilters-zdrGUBZF.js";import"./checkbox-DJpIppZD.js";import"./confirm-dialog-PhUq_oc3.js";import"./MailViewChrome-BOp09SXr.js";import"./refresh-cw-CpnxiYht.js";import"./wizard-selection-zWa1qc6-.js";function S(){return o.jsx(r.Reading,{})}export{S as component};
@@ -1 +0,0 @@
1
- import{f8 as o,j as r}from"./index-D7VpR8Bx.js";import{O as m}from"./OpenCalendarEvent-DI9FmufS.js";import"./SignInAgain-CZ5gXYZu.js";import"./useCalendars-B1migLvB.js";import"./CalendarComposePane-Sr72cVvW.js";import"./useCalendarEvents-BQ8pmFV8.js";import"./useQueries-BDOaD0Tu.js";import"./calendar-clash-strip-DBNuXhBt.js";import"./useCalendarWrites-LwW_U-yG.js";import"./ErrorState-DcwvjIQG.js";import"./useCalendarData-C3g6QMEH.js";import"./calendar-report-OI80fkc1.js";import"./calendar-subscription-B-aAc2Gy.js";import"./attendee-row-CPJnqwGs.js";import"./avatar-CDZx9RcB.js";import"./minus-Cs2PKH6V.js";import"./clock-99u2Mdmy.js";import"./map-pin-C0usgYas.js";import"./mail-BiL0g7on.js";import"./pencil-CoAnhAKI.js";function P(){const{calendarObjectId:t}=o.useParams();return r.jsx(m,{calendarObjectId:t})}export{P as component};
@@ -1 +0,0 @@
1
- import{j as n,t as s}from"./index-D7VpR8Bx.js";function x({className:e,...t}){return n.jsx("kbd",{className:s("inline-flex h-4 min-w-4 items-center justify-center rounded-xs border border-line bg-surface-sunken px-1 font-sans text-2xs text-fg-muted",e),...t})}export{x as K};
@@ -1 +0,0 @@
1
- import{r as f,j as e,aA as h,bn as y,az as b,bO as g,f as v,a4 as N,u as C,c as L,d as I,aQ as S,aS as D,B as w}from"./index-D7VpR8Bx.js";import{C as E}from"./confirm-dialog-PhUq_oc3.js";import{E as j}from"./ErrorState-DcwvjIQG.js";import{S as $}from"./settings-screen-BjSyVU2l.js";import{a as T,b as k,c as R,u as O}from"./useLabels-CesUuQey.js";import"./avatar-CDZx9RcB.js";import"./chevron-left-CF03ieoO.js";import"./menu-liPRY-HF.js";import"./circle-help-DqnCeQ17.js";function B({labels:l,onRename:i,onRecolor:n,onDelete:m,deletingLabelId:c}){const[u,r]=f.useState(),[o,d]=f.useState("");if(l.length===0)return e.jsx("p",{className:"py-6 text-sm text-fg-muted",children:"No labels yet. Create one below, then use it in a filter or apply it to mail directly."});const t=a=>{const s=o.trim();s!==""&&i(a,s),r(void 0)};return e.jsx("ul",{className:"divide-y divide-line rounded-md border border-line",children:l.map(a=>e.jsxs("li",{className:"flex items-center gap-3 px-3 py-2.5",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[u===a.labelId?e.jsx(h,{autoFocus:!0,value:o,onChange:s=>d(s.target.value),onBlur:()=>t(a.labelId),onKeyDown:s=>{s.key==="Enter"&&(s.preventDefault(),t(a.labelId)),s.key==="Escape"&&(s.preventDefault(),r(void 0))},"aria-label":`Rename label ${a.name}`}):e.jsx("button",{type:"button",onClick:()=>{r(a.labelId),d(a.name)},"aria-label":`Rename label ${a.name}`,className:"flex items-center gap-2 rounded-sm text-left hover:opacity-80",children:e.jsx(y,{label:a})}),e.jsx("p",{className:"mt-0.5 text-xs text-fg-subtle",children:a.filterCount===0?"Not used in any filter":`Used in ${a.filterCount} ${a.filterCount===1?"filter":"filters"}`})]}),e.jsx(b,{"aria-label":`Color for ${a.name}`,value:a.color,onChange:s=>n(a.labelId,s.target.value),className:"w-28 shrink-0",children:g.map(s=>e.jsx("option",{value:s,children:s},s))}),e.jsx(v,{variant:"ghost",size:"sm",icon:e.jsx(N,{className:"size-4 text-danger"}),onClick:()=>m(a),disabled:c===a.labelId,"aria-label":`Delete label ${a.name}`})]},a.labelId))})}const P=(l,i)=>{if(i===0)return{title:`Delete the "${l}" label?`};const n=i===1?"filter":"filters";return{title:`Delete the "${l}" label?`,description:`This also deletes ${i} ${n} that ${i===1?"applies":"apply"} it — they can't be recovered.`}},_=e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{children:"Labels mark mail without moving it — a message can carry any number of them alongside whichever folder it lives in."}),e.jsx("p",{children:"Use a label in a filter's action to have new (and existing) mail label itself automatically, or apply one to a selection directly from the mailbox."}),e.jsx("p",{children:"Deleting a label removes it from every message, and deletes every filter that applies it — the confirmation names how many."})]});function A({accountId:l}){const{createLabel:i,isPending:n,isError:m}=O(l),[c,u]=f.useState(""),[r,o]=f.useState("Default"),d=()=>{const t=c.trim();t!==""&&i(t,r).then(()=>{u(""),o("Default")})};return e.jsxs("div",{className:"space-y-2 rounded-sm border border-line bg-surface p-3",children:[e.jsx("p",{className:"text-sm font-medium text-fg",children:"New label"}),e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-end",children:[e.jsxs("div",{className:"flex-1 space-y-1",children:[e.jsx("span",{className:"text-xs text-fg-muted",children:"Name"}),e.jsx(h,{value:c,onChange:t=>u(t.target.value),placeholder:"e.g. Receipts","aria-label":"Label name",onKeyDown:t=>{t.key==="Enter"&&(t.preventDefault(),d())}})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-xs text-fg-muted",children:"Color"}),e.jsx(b,{value:r,onChange:t=>o(t.target.value),"aria-label":"Label color",className:"w-28",children:g.map(t=>e.jsx("option",{value:t,children:t},t))})]}),e.jsx(v,{variant:"primary",onClick:d,disabled:n||c.trim()==="",children:n?"Creating…":"Create label"})]}),m&&e.jsx(w,{tone:"danger",variant:"soft",children:"Couldn't create that label. Please try again."})]})}function H({account:l}){const i=l.accountId,{labels:n,isPending:m,isError:c,error:u,refetch:r}=T(i),{updateLabel:o}=k(i),{deleteLabel:d,deletingLabelId:t}=R(i),[a,s]=f.useState();return e.jsxs("section",{className:"space-y-2",children:[e.jsx("h2",{className:"text-sm font-semibold text-fg",children:l.email}),m?e.jsx("div",{className:"h-16 animate-pulse rounded-md border border-line bg-surface","aria-busy":"true","aria-label":`Loading labels for ${l.email}`}):c?e.jsx(j,{variant:"inline",title:`Couldn't load labels for ${l.email}`,error:u,onRetry:()=>{r()}}):e.jsx(B,{labels:n,onRename:(p,x)=>o(p,{name:x}),onRecolor:(p,x)=>o(p,{color:x}),onDelete:s,deletingLabelId:t}),e.jsx(A,{accountId:i}),a&&(()=>{const p=P(a.name,a.filterCount);return e.jsx(E,{isOpen:!0,title:p.title,description:p.description,confirmLabel:"Delete label",destructive:!0,isBusy:t===a.labelId,onConfirm:()=>{d(a.labelId),s(void 0)},onCancel:()=>s(void 0)})})()]})}function J(){const l=C(),[i,n]=f.useState(!0),{data:m,isPending:c,isError:u,error:r,refetch:o}=L(I()),d=t=>{const a=D[t];a&&l({to:a})};return e.jsx($,{items:S,activeId:"labels",title:"Labels",description:"Mark mail without moving it, per account.",help:_,helpOpen:i,onToggleHelp:()=>n(t=>!t),onSelect:d,onBackToMail:()=>{l({to:"/mail"})},children:c?e.jsx("div",{className:"h-24 animate-pulse rounded-sm border border-line bg-surface","aria-busy":"true","aria-label":"Loading accounts"}):u?e.jsx(j,{title:"Couldn't load accounts",error:r,onRetry:()=>{o()}}):m.accounts.length===0?e.jsx("p",{className:"py-12 text-sm text-fg-muted",children:"No accounts configured."}):e.jsx("div",{className:"space-y-8",children:m.accounts.map(t=>e.jsx(H,{account:t},t.accountId))})})}export{J as component};
@@ -1 +0,0 @@
1
- import{e}from"./index-D7VpR8Bx.js";const a=e("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);export{a as M};
@@ -1 +0,0 @@
1
- import{e as ee,r as d,j as t,t as D,v as te,w as se,D as ne,X as oe,x as ae,f as N,A as re,y as ie,z as M,C as O,E as ce,F as le,G as ue,h as Q,H as de,J as me,K as pe,M as he,N as fe,a as xe,b as ge,P as be,Q as ve,R as ye,S as Se,T as je,U as Ce,V as Ne,u as Ie,c as we,d as Me,W as Pe,O as Re,Y as Ee}from"./index-D7VpR8Bx.js";import{E as Oe}from"./ErrorState-DcwvjIQG.js";import{K as Te,S as ke,u as Le,s as Ae,b as Fe,a as De,c as Qe,d as Ke}from"./search-token-index-CXQQu5cA.js";import{K as T}from"./kbd-DzZig-MJ.js";import{P as _e}from"./pencil-CoAnhAKI.js";import{u as R,a as ze}from"./useMessageBodyContent-DPlXjxls.js";import{c as Be,s as He,M as Ve}from"./MailShell-DTW4ysuk.js";import{u as qe,a as $e,R as We,s as Ge,i as Ue,H as Ye,M as Je}from"./useRefreshControl-CSd_fo15.js";import{M as Xe}from"./menu-liPRY-HF.js";import{B as Ze}from"./bug-rutCyt-b.js";import{L as et,S as tt,A as st,M as nt}from"./MailNav-BdiWAfH_.js";import{A as ot}from"./avatar-CDZx9RcB.js";import{u as at,P as rt,a as it,b as ct}from"./popover-menu-BHNjsQiI.js";import{u as lt}from"./sections-ClqQBEFv.js";import{u as ut}from"./index-BBaBlwlN.js";import{u as K,i as dt}from"./useLayoutTier-B0zSRsSh.js";import{u as mt}from"./useQueries-BDOaD0Tu.js";import{u as pt}from"./useResultFolderIndex-D44p4QVU.js";import{u as ht}from"./useDebouncedValue-nmGpghjy.js";import"./search-scope-UI1H6AzA.js";import"./FullCompose-aUTiTI79.js";import"./confirm-dialog-PhUq_oc3.js";import"./circle-check-big-Bkno0zML.js";import"./refresh-cw-CpnxiYht.js";import"./roving-focus-B9mHbGbD.js";import"./bell-off-Bzm-PBgf.js";import"./folder-failure-CqkVSsrb.js";import"./outbox-status-BlKn6P0x.js";import"./useSignature-BMl5h116.js";import"./account-form-helpers-DhckT_PN.js";const ft=ee("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]]);function xt({email:e,onSignOut:s}){const n=d.useRef(null),{open:a,setOpen:o,containerRef:r,panelRef:i,getAnchor:u}=at("account-menu",()=>n.current?.focus());d.useEffect(()=>{if(!a)return;const c=requestAnimationFrame(()=>i.current?.querySelector('[role="menuitem"]')?.focus());return()=>cancelAnimationFrame(c)},[a,i]);const m=e??"Account";return t.jsxs("div",{ref:r,className:"relative",children:[t.jsx("button",{ref:n,type:"button","aria-label":"Account","aria-haspopup":"menu","aria-expanded":a,onClick:()=>o(c=>!c),className:"inline-flex min-h-11 min-w-11 items-center justify-center rounded-md p-1.5 text-fg-muted transition-colors hover:bg-surface-raised hover:text-fg",children:t.jsx(ot,{name:m,email:e??void 0,size:"sm"})}),t.jsx(rt,{open:a,align:"end",panelRef:i,getAnchor:u,children:t.jsxs(it,{ref:i,label:m,children:[e&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"truncate px-4 py-2 text-xs text-fg-muted",title:e,"data-testid":"account-menu-email",children:e}),t.jsx("hr",{className:"my-1 h-px border-0 bg-line"})]}),t.jsx(ct,{label:"Sign out",icon:t.jsx(et,{className:"size-4"}),onSelect:()=>{o(!1),n.current?.focus(),s()}})]})})]})}function gt({leading:e,search:s,actions:n,className:a}){return t.jsxs("header",{className:D("flex min-h-pane-header w-full shrink-0 items-center gap-2 border-b border-line bg-canvas px-row-inset py-1",a),children:[e&&t.jsx("div",{className:"flex shrink-0 items-center gap-1",children:e}),t.jsx("div",{className:"flex min-w-0 flex-1 justify-start",children:t.jsx("div",{className:"w-full max-w-xs transition-[max-width] duration-150 ease-out focus-within:max-w-lg",children:s})}),n&&t.jsx("div",{className:"flex shrink-0 items-center gap-1",children:n})]})}function bt({onCompose:e}){return t.jsx("button",{type:"button",onClick:e,"aria-label":"Compose new message",className:"lg:hidden fixed right-4 z-30 h-14 w-14 rounded-full bg-accent text-accent-fg shadow-lg flex items-center justify-center hover:opacity-90 active:scale-95 transition-all",style:{bottom:"calc(env(safe-area-inset-bottom, 0) + 1rem)"},children:t.jsx(_e,{className:"size-6"})})}const vt=({isOpen:e,onClose:s})=>{const n=d.useRef(null);return te({id:"shortcuts",open:e,answers:{back:s}}),se(n,e),e?t.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[t.jsx(ne,{label:"Dismiss keyboard shortcuts",onDismiss:s,className:"backdrop-blur-sm"}),t.jsxs("div",{ref:n,role:"dialog","aria-modal":"true","aria-label":"Keyboard shortcuts",tabIndex:-1,className:D("relative z-10 max-h-[85vh] w-full max-w-2xl overflow-y-auto","rounded-lg border border-line bg-surface shadow-lg","p-6"),children:[t.jsxs("div",{className:"mb-6 flex items-center justify-between",children:[t.jsx("h2",{className:"text-lg font-semibold",children:"Keyboard shortcuts"}),t.jsx("button",{type:"button",onClick:s,className:"p-1 text-fg-muted transition-colors hover:text-fg","aria-label":"Close",children:t.jsx(oe,{className:"size-5"})})]}),t.jsx("div",{className:"grid gap-x-8 gap-y-6 sm:grid-cols-2",children:Te.map(a=>t.jsxs("div",{children:[t.jsx("h3",{className:"mb-3 text-sm font-medium text-fg-muted",children:a.title}),t.jsx("div",{className:"space-y-2",children:a.hints.map(o=>t.jsxs("div",{className:"flex items-center justify-between gap-4",children:[t.jsx("span",{className:"text-sm",children:o.description}),t.jsx("span",{className:"flex shrink-0 items-center gap-1",children:o.keys.map((r,i)=>t.jsxs(d.Fragment,{children:[i>0&&o.keys[0]==="g"&&t.jsx("span",{className:"text-2xs text-fg-subtle",children:"then"}),t.jsx(T,{children:r})]},r))})]},`${o.action}-${o.keys.join("+")}`))})]},a.title))}),t.jsx("div",{className:"mt-6 border-t border-line pt-4",children:t.jsxs("p",{className:"text-center text-xs text-fg-muted",children:["Press ",t.jsx(T,{children:"Esc"})," to close"]})})]})]}):null};function yt(){const e=ae();if(!e)return null;const s=e.showNavPane?!e.navCollapsed:!1;return t.jsx(N,{variant:"ghost",size:"sm",icon:t.jsx(Xe,{className:"size-4"}),onClick:e.toggleNav,"aria-label":s?"Hide folders":"Show folders","aria-expanded":s,title:"Folders",className:"shrink-0"})}const St={global:"Search all mail",pending:"Search mail",scoped:"Search this folder"};function jt({search:e,onCompose:s,onReportBug:n,onOpenSettings:a,settingsAttention:o,composeShortcut:r,refreshControl:i,account:u}){return t.jsx(gt,{leading:t.jsx(yt,{}),search:t.jsx(ke,{value:e.value,onChange:e.onChange,onClear:e.onClear,onClearQuery:e.onClearQuery,chips:e.chips,onRemoveChip:e.onRemoveChip,placeholder:St[e.scope]}),actions:t.jsxs(t.Fragment,{children:[t.jsx(N,{variant:"ghost",size:"sm",icon:t.jsx(ft,{className:"size-4"}),title:r?`Compose (${r})`:"Compose","aria-label":"Compose",onClick:s}),t.jsx(N,{variant:"ghost",size:"sm",icon:t.jsx(Ze,{className:"size-4"}),title:"Report a bug","aria-label":"Report a bug",onClick:n}),t.jsx(N,{variant:"ghost",size:"sm",icon:t.jsx(re,{label:o,children:t.jsx(tt,{className:"size-4"})}),title:"Settings","aria-label":o?`Settings — ${o}`:"Settings",onClick:a}),i,u]})})}function Ct(){const e=ie(),s=M({select:c=>O(c.location.pathname)}),n=M({select:c=>ce(c.location.search)}),[a,o]=d.useState(n),r=ht(a,200),[i,u]=d.useState(s);if(i!==s){const c=He(i,s,n);u(s),c!==void 0&&o(c)}const m=d.useCallback(c=>{u(O(e.state.location.pathname)),o(c)},[e]);return{searchInput:a,committedQuery:Be(a,r),viewKey:s,setSearchInput:m}}const Nt=()=>{const e=R();return le()?null:t.jsx(bt,{onCompose:e})},It=()=>t.jsx(st,{children:({email:e,signOut:s})=>t.jsx(xt,{email:e,onSignOut:s})});function wt({accounts:e}){const{searchInput:s,onSearchChange:n,onSearchClear:a,onSearchClearQuery:o,resultFolderIndex:r}=ue(),i=Q(),u=lt(),m=R(),{scope:c,clearScope:x}=Le(e),f=de(),p=c.kind==="scoped"?[{id:c.chip.id,label:c.chip.label,tone:"scope"}]:void 0,l=d.useMemo(()=>e.map(S=>S.accountId),[e]),{hasNewMail:h}=qe(),{state:y,errorMessage:g,refresh:b}=$e(l,{onSettled:()=>pe(i,he(r.keys()))});return t.jsx(jt,{search:{value:s,scope:c.kind,chips:p,onChange:n,onClear:a,onClearQuery:o,onRemoveChip:x},onCompose:m,onReportBug:me,onOpenSettings:()=>u("accounts"),settingsAttention:f,composeShortcut:Ae("compose"),refreshControl:t.jsx(We,{state:y,onRefresh:b,label:"Refresh all accounts",errorMessage:g,hasUpdate:h(l)}),account:t.jsx(It,{})})}function Mt(e){const s=mt({queries:e.map(n=>({...fe({path:{accountId:n.accountId}}),staleTime:1/0}))});return d.useMemo(()=>Fe(s.map(n=>n.data?.items??[])),[s])}const _="remit:intelligence-open";function Pt(){try{return localStorage.getItem(_)!=="closed"}catch{return!0}}function Rt(e){try{localStorage.setItem(_,e?"open":"closed")}catch{}}function k({panels:e,prefersOpen:s,isDesktop:n,hasThread:a,raisedFor:o,openMessage:r}){return o!==null&&o===r?!0:e.length>0?e.includes("intelligence"):n&&a&&s}const Et=()=>{const e=K(),s=xe(),n=ge(),a=s.find(be),o=De(),[r,i]=d.useState(Pt),u=o?`${o.threadId}/${o.messageId??""}`:null,[m,c]=d.useState(null),x={panels:s,prefersOpen:r,isDesktop:e==="desktop",hasThread:o!==void 0,openMessage:u},f=k({...x,raisedFor:m}),p=k({...x,raisedFor:null}),l=d.useCallback((b,S)=>{n([...b?["intelligence"]:[],...S?[S]:[]])},[n]),h=d.useCallback(b=>{l(p,b)},[p,l]),y=d.useCallback(()=>{if(f&&!p){c(null);return}const b=!f;Rt(b),i(b),c(null),l(b,a)},[p,f,a,l]),g=d.useCallback(()=>{c(u)},[u]);return{openOverlay:a,intelligenceOpen:f,showOverlay:h,toggleIntelligence:y,raiseIntelligence:g}};var j={exports:{}},L;function Ot(){if(L)return j.exports;L=1;const e=(s,n,a)=>new Promise((o,r)=>{if(a=Object.assign({concurrency:1/0},a),typeof n!="function")throw new TypeError("Mapper function is required");const{concurrency:i}=a;if(!(typeof i=="number"&&i>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${i}\` (${typeof i})`);const u=[],m=s[Symbol.iterator]();let c=!1,x=!1,f=0,p=0;const l=()=>{if(c)return;const h=m.next(),y=p;if(p++,h.done){x=!0,f===0&&o(u);return}f++,Promise.resolve(h.value).then(g=>n(g,y)).then(g=>{u[y]=g,f--,l()},g=>{c=!0,r(g)})};for(let h=0;h<i&&(l(),!x);h++);});return j.exports=e,j.exports.default=e,j.exports}var Tt=Ot();const kt=ve(Tt),Lt=900*1e3,At=30,Ft=(e,s)=>{if(!e)return s;const n=Number.parseInt(e,10);return Number.isFinite(n)&&n>0?n:s},Dt=30*1e3,Qt=e=>Math.max(Ft(e,At)*1e3,Dt),z=Qt(Ne().mailboxPollIntervalSeconds),C=(e=Date.now(),s=z)=>Ue(e)?Math.min(Ye,s):s,Kt=5,P=new Set,_t=(e,s,n=Lt)=>e.filter(a=>{const o=a.lastSyncAt;return o==null?!0:s-o>n}).map(a=>a.accountId),zt=(e,s,n=z)=>e-s>=n,Bt=(e,s)=>e.filter(n=>!s.has(n)),A=(e,s)=>{if(P.delete(e),je(s,{softError:!0},"nobody")){Ce(s);return}console.warn("[remit] background mailbox sync failed",{accountId:e,error:s})},F=(e,s)=>ye({path:{accountId:e},throwOnError:!0}).then(()=>{s.invalidateQueries({queryKey:Se({path:{accountId:e}})})}),Ht=e=>{const s=Q(),n=d.useRef(e);n.current=e;const a=e.map(o=>o.accountId).join(",");d.useEffect(()=>{const o=Date.now(),i=_t(n.current,o).filter(u=>!P.has(u));if(i.length!==0)for(const u of i)P.add(u),F(u,s).catch(m=>{A(u,m)})},[a,s]),d.useEffect(()=>{let o=Date.now(),r;const i=new Set,u=()=>{o=Date.now();const p=Bt(n.current.map(l=>l.accountId),i);for(const l of p)i.add(l);kt(p,l=>F(l,s).catch(h=>{A(l,h)}).finally(()=>{i.delete(l)}),{concurrency:Kt})},m=()=>{if(document.visibilityState==="visible"){u(),r=setTimeout(m,C());return}},c=()=>{if(document.visibilityState!=="visible")return;r!==void 0&&clearTimeout(r);const p=Date.now(),l=C(p);if(zt(p,o,l)){u(),r=setTimeout(m,l);return}r=setTimeout(m,o+l-p)},x=()=>{document.visibilityState==="visible"&&(r!==void 0&&clearTimeout(r),o=Date.now(),r=setTimeout(m,C()))};r=setTimeout(m,C()),document.addEventListener("visibilitychange",c);const f=Ge(x);return()=>{r!==void 0&&clearTimeout(r),document.removeEventListener("visibilitychange",c),f()}},[a,s])};function ys(){const e=Ie(),s=K(),n=dt(s),{openOverlay:a,intelligenceOpen:o,showOverlay:r,toggleIntelligence:i,raiseIntelligence:u}=Et(),m=a==="shortcuts",c=a==="nav",{searchInput:x,committedQuery:f,viewKey:p,setSearchInput:l}=Ct(),{data:h,isLoading:y,isError:g,error:b,refetch:S}=we({...Me(),staleTime:1/0}),I=!!(h&&(h.accounts?.length??0)===0);d.useEffect(()=>{I&&e({to:"/onboarding",replace:!0})},[I,e]),ut({enabled:!m,bindings:[{key:"?",action:"help",handler:()=>r("shortcuts"),noModifiers:!1,preventDefault:!0}]});const E=R(),B=ze(),H=M({select:w=>Ee(w.matches)?.list==="mailbox"}),V=d.useMemo(()=>({compose:E}),[E]);Qe({enabled:!H&&!B,handlers:V});const q=d.useCallback(()=>{l("")},[l]),$=d.useCallback(()=>{l("")},[l]),v=h?.accounts??[],W=d.useMemo(()=>v.map(w=>w.accountId),[v]),G=Mt(v),U=pt(v).index,Y=d.useMemo(()=>Ke(v),[v]);Ht(v);const J=d.useCallback(()=>{a==="nav"&&r(void 0)},[a,r]),X={accounts:v,mailboxNameIndex:G,accountNameIndex:Y,resultFolderIndex:U,searchQuery:f,searchInput:x,searchViewKey:p,onSearchChange:l,onSearchClear:q,onSearchClearQuery:$,intelligenceOpen:o,onToggleIntelligence:i,onRaiseIntelligence:u},Z={isSinglePane:n,isLoading:y||I,intelligenceOpen:o,nav:t.jsx(nt,{accounts:v,onMailboxSelect:J}),topBar:n?void 0:t.jsx(wt,{accounts:v}),overlay:n?t.jsx(Nt,{}):void 0,navOpen:c,onOpenNav:()=>r("nav"),onCloseNav:()=>r(void 0)};return t.jsx(Pe.Provider,{value:X,children:t.jsxs(Je,{accountIds:W,children:[g?t.jsx("div",{className:"flex h-full items-center justify-center bg-canvas p-4",children:t.jsx(Oe,{title:"Couldn't load your account",error:b,onRetry:()=>{S()}})}):t.jsx(Ve,{chrome:Z,children:t.jsx(Re,{})}),t.jsx(vt,{isOpen:m,onClose:()=>r(void 0)})]})})}export{ys as component,ue as useMailContext};
@@ -1 +0,0 @@
1
- import{e}from"./index-D7VpR8Bx.js";const n=e("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);export{n as M};
@@ -1 +0,0 @@
1
- import{e}from"./index-D7VpR8Bx.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-D7VpR8Bx.js";import{O as p}from"./OnboardingWizard-hiUJAJmS.js";import{c}from"./onboarding-completion-CYRjdQQn.js";import"./checkbox-DJpIppZD.js";import"./minus-Cs2PKH6V.js";import"./kbd-DzZig-MJ.js";import"./credential-steps-BES-y0iD.js";import"./card-WnranLyn.js";import"./account-form-helpers-DhckT_PN.js";import"./mail-BiL0g7on.js";import"./file-json-C0JfxlBX.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{o}from"./index-D7VpR8Bx.js";async function n(e){e.recordCompleted(),await e.queryClient.refetchQueries({queryKey:o()}),e.navigateToInbox()}export{n as c};
@@ -1 +0,0 @@
1
- import{j as o,O as i}from"./index-D7VpR8Bx.js";import{a as m}from"./MailShell-DTW4ysuk.js";import{u as p,O as t}from"./OutboxPane-5Tg_XaNz.js";import{u as s}from"./search-mirror-DQmL3P3k.js";import"./useMessageBodyContent-DPlXjxls.js";import"./FullCompose-aUTiTI79.js";import"./ErrorState-DcwvjIQG.js";import"./index-BBaBlwlN.js";import"./useSignature-BMl5h116.js";import"./account-form-helpers-DhckT_PN.js";import"./useDebouncedValue-nmGpghjy.js";import"./sections-ClqQBEFv.js";import"./confirm-dialog-PhUq_oc3.js";import"./roving-focus-B9mHbGbD.js";import"./MessageBody-xzQttW18.js";import"./kbd-DzZig-MJ.js";import"./search-scope-UI1H6AzA.js";import"./circle-check-big-Bkno0zML.js";import"./clock-99u2Mdmy.js";import"./row-actions-BkhFe3TY.js";import"./rotate-ccw-Cj4SUyhN.js";import"./search-query-0wEBmb1P.js";import"./outbox-status-BlKn6P0x.js";import"./NavMenuButton-D-YzcNLk.js";import"./menu-liPRY-HF.js";function v(){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{v as component};
@@ -1 +0,0 @@
1
- import{e}from"./index-D7VpR8Bx.js";const t=e("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);export{t as R};
@@ -1 +0,0 @@
1
- import{e}from"./index-D7VpR8Bx.js";const a=e("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);export{a as R};
@@ -1 +0,0 @@
1
- import{u as v,G as x,z as p,E as I,al as g,r as Q}from"./index-D7VpR8Bx.js";import{b}from"./MailShell-DTW4ysuk.js";import{a as q}from"./useMessageBodyContent-DPlXjxls.js";function R(o){const t=v(),{searchInput:c,searchQuery:e}=x(),i=p({select:a=>I(a.location.search)}),u=p({select:a=>a.location.pathname}),h=q(),f=g(),m=h||f,{to:s}=o,r="params"in o?o.params.mailboxId:void 0,l=r?`/mail/${r}`:s;Q.useEffect(()=>{if(!b({searchInput:c,committedQuery:e,urlQuery:i,pathname:u,listPath:l}))return;const y=!!e&&i!==e&&!m,n=d=>({...d,q:e||void 0});if(!y){t({to:".",search:n,hash:!0,replace:!0});return}if(s==="/mail/$mailboxId"){if(!r)return;t({to:s,params:{mailboxId:r},search:n,hash:!0,replace:!0});return}t({to:s,search:n,hash:!0,replace:!0})},[c,e,i,t,s,r,l,u,m])}export{R as u};
@@ -1 +0,0 @@
1
- import{r as l,j as h,bS as V,t as E,cj as _,X as G,ck as L,cl as Q,cm as z,cn as X,co as J,aa as x,u as K,cp as Y,cq as k,cr as W,ad as Z,N as M,af as ee,ag as te,G as ne,cs as N}from"./index-D7VpR8Bx.js";import{s as oe,S as se}from"./search-scope-UI1H6AzA.js";import{u as R}from"./useQueries-BDOaD0Tu.js";const re=[{action:"focusNext",keys:["j","k"],label:"navigate"},{action:"muteSender",keys:["m"],label:"mute"},{action:"help",keys:["?"],label:"all shortcuts"}];function xe(e){return re.filter(t=>e[t.action]!==void 0)}const ae=[{title:"Navigation",hints:[{action:"focusNext",keys:["j"],description:"Focus the message below"},{action:"focusPrevious",keys:["k"],description:"Focus the message above"},{action:"focusNext",keys:["↓"],description:"Focus the message below"},{action:"focusPrevious",keys:["↑"],description:"Focus the message above"},{action:"focusFirst",keys:["Home"],description:"Focus first"},{action:"focusLast",keys:["End"],description:"Focus last"},{action:"openFocused",keys:["Enter"],description:"Open focused thread"},{action:"back",keys:["Esc"],description:"Back / close overlay"}]},{title:"Selection",hints:[{action:"toggleSelect",keys:["x"],description:"Toggle select"},{action:"toggleSelect",keys:["Space"],description:"Toggle select"},{action:"extendSelectDown",keys:["Shift","j"],description:"Extend selection down"},{action:"extendSelectUp",keys:["Shift","k"],description:"Extend selection up"},{action:"extendSelectDown",keys:["Shift","↓"],description:"Extend selection down"},{action:"extendSelectUp",keys:["Shift","↑"],description:"Extend selection up"},{action:"selectAll",keys:["⌘","A"],description:"Select all"}]},{title:"Actions",hints:[{action:"reply",keys:["r"],description:"Reply"},{action:"replyAll",keys:["a"],description:"Reply all"},{action:"forward",keys:["f"],description:"Forward"},{action:"delete",keys:["#"],description:"Delete"},{action:"toggleStar",keys:["s"],description:"Star / unstar"},{action:"toggleRead",keys:["u"],description:"Toggle read / unread"}]},{title:"Sender",hints:[{action:"muteSender",keys:["m"],description:"Mute sender"},{action:"blockSender",keys:["b"],description:"Block sender"},{action:"vipSender",keys:["v"],description:"VIP sender"},{action:"markJunk",keys:["!"],description:"Mark junk"}]},{title:"Go to",hints:[{action:"goBrief",keys:["g","b"],description:"Daily brief"},{action:"goInbox",keys:["g","i"],description:"Inbox"},{action:"goSent",keys:["g","s"],description:"Sent"},{action:"goFlagged",keys:["g","f"],description:"Starred"},{action:"goSettings",keys:["g",","],description:"Settings"}]},{title:"View & global",hints:[{action:"toggleIntelligence",keys:["i"],description:"Toggle intelligence"},{action:"toggleDensity",keys:["d"],description:"Toggle density"},{action:"focusSearch",keys:["/"],description:"Focus search"},{action:"compose",keys:["c"],description:"Compose"},{action:"compose",keys:["⌘","N"],description:"Compose"},{action:"help",keys:["?"],description:"Shortcut help"}]}];function ie(e){for(const t of ae){const n=t.hints.find(o=>o.action===e);if(n)return n.keys}}function ce(e){const t=ie(e);return!t||t.length===0?"":t.length===1?t[0]??"":t[0]==="g"?t.join(" then "):t.join("")}function ke(e){const t=ce(e);return t===""?"":`(${t})`}function le({key:e,shiftKey:t=!1,repeat:n=!1,caretAtStart:o,hasValue:i,chipCount:r}){const a=r-1;return e==="Escape"?i?{type:"clearQuery"}:{type:"blur"}:e==="Tab"&&t?r===0?{type:"none"}:{type:"focusChip",index:a}:e==="Backspace"||e==="ArrowLeft"?!o||r===0?{type:"none"}:n?{type:"none"}:{type:"focusChip",index:a}:{type:"none"}}function ue({key:e,repeat:t=!1,index:n,chipCount:o}){return e==="Backspace"||e==="Delete"?t?{type:"none"}:{type:"removeChip",index:n}:e==="ArrowLeft"?n===0?{type:"none"}:{type:"focusChip",index:n-1}:e==="ArrowRight"?n>=o-1?{type:"focusInput"}:{type:"focusChip",index:n+1}:e==="Enter"||e===" "?{type:"activateChip",index:n}:e==="Escape"?{type:"focusInput"}:{type:"none"}}function fe(e,t){const n=t-1;return n<=0?null:e<n?e:n-1}const de=e=>e instanceof HTMLElement?e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable:!1,pe=({chips:e=[],onRemoveChip:t,value:n,onChange:o,onClear:i,onClearQuery:r,placeholder:a="Search mail...",globalFocusKey:u=!0,showClearButton:p=!0,size:m="sm",inputId:f,suggest:d,className:b})=>{const D=l.useId(),F=f??D,I=l.useRef(null),P=l.useRef([]),A=r??i,[$,C]=l.useState(null),S=l.useRef(void 0),[q,O]=l.useState(""),v=e.length>0;l.useEffect(()=>{C(s=>s!==null&&s>=e.length?null:s)},[e.length]),l.useEffect(()=>{const s=S.current;if(s!==void 0){if(S.current=void 0,s===null){I.current?.focus();return}P.current[s]?.focus()}});const j=l.useRef(void 0);l.useEffect(()=>{const s=d?.caret;if(!s||s===j.current)return;j.current=s;const c=I.current;!c||c.ownerDocument.activeElement!==c||(c.setSelectionRange(s.cursor,s.cursor),d?.onCaretChange(s.cursor))});const w=s=>{d?.onCaretChange(s.selectionStart??s.value.length)},g=l.useCallback(s=>{C(s),S.current=s},[]),T=l.useCallback(s=>{const c=e[s];c&&t&&(g(fe(s,e.length)),O(`${c.label} removed`),t(c.id))},[e,t,g]),B=l.useCallback(()=>{g(null),i()},[i,g]),H=l.useCallback(s=>{const c=s.currentTarget;if(d?.onKeyDown(s))return;const y=le({key:s.key,shiftKey:s.shiftKey,repeat:s.repeat,caretAtStart:c.selectionStart===0&&c.selectionEnd===0,hasValue:n.length>0,chipCount:e.length});switch(y.type){case"focusChip":s.preventDefault(),g(y.index);return;case"clearQuery":A();return;case"blur":c.blur();return;case"none":return}},[e.length,n,A,g,d]),U=l.useCallback(s=>c=>{const y=ue({key:c.key,repeat:c.repeat,index:s,chipCount:e.length});switch(y.type!=="none"&&c.preventDefault(),y.type){case"removeChip":T(y.index);return;case"focusChip":g(y.index);return;case"focusInput":g(null);return;case"activateChip":return;case"none":return}},[e,T,g]);return l.useEffect(()=>{if(!u)return;const s=c=>{c.key!=="/"||c.metaKey||c.ctrlKey||c.altKey||de(c.target)||L("focusSearch")||(c.preventDefault(),I.current?.focus())};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[u]),h.jsxs("label",{htmlFor:F,className:E("flex w-full items-center gap-1.5 text-sm","bg-surface-sunken/50 border border-transparent","focus-within:bg-canvas focus-within:border-line focus-within:ring-2 focus-within:ring-ring","transition-colors",m==="lg"?"rounded-xl px-4 py-2":"rounded-md px-2.5 py-1",b),children:[h.jsx(V,{className:E("shrink-0 text-fg-muted pointer-events-none",m==="lg"?"size-5":"size-4")}),h.jsxs("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-1",children:[v&&h.jsx("div",{role:"grid","aria-label":"Search filters",className:"flex min-w-0 flex-wrap items-center gap-1",children:e.map((s,c)=>h.jsx(_,{ref:y=>{P.current[c]=y},label:s.label,tone:s.tone,focused:$===c,onFocusLabel:()=>C(c),onKeyDown:U(c),onRemove:()=>T(c)},s.id))}),h.jsx("input",{ref:I,id:F,name:"q",type:"text","aria-label":"Search mail",autoComplete:"off",value:n,tabIndex:$===null?0:-1,onChange:s=>{o(s.target.value),w(s.target)},onKeyDown:H,onKeyUp:s=>w(s.currentTarget),onClick:s=>w(s.currentTarget),onFocus:s=>{C(null),d?.onFocusChange?.(!0),w(s.currentTarget)},onBlur:()=>d?.onFocusChange?.(!1),...d?.comboboxProps,placeholder:v?void 0:a,className:"min-w-24 flex-1 bg-transparent text-fg outline-none placeholder:text-fg-muted"})]}),(n||v)&&p&&h.jsx("button",{type:"button",onClick:B,className:"shrink-0 rounded p-0.5 hover:bg-surface-raised transition-colors","aria-label":"Clear search",children:h.jsx(G,{className:E("text-fg-muted",m==="lg"?"size-5":"size-4")})}),h.jsx("span",{role:"status","aria-live":"polite",className:"sr-only",children:q})]})},Ie=({value:e,onChange:t,onClear:n,onClearQuery:o,chips:i,onRemoveChip:r,placeholder:a="Search mail...",globalFocusKey:u=!0,showClearButton:p=!0,size:m,inputId:f,suggest:d,className:b})=>h.jsx(pe,{value:e,onChange:t,onClear:n,onClearQuery:o,chips:i,onRemoveChip:r,placeholder:a,globalFocusKey:u,showClearButton:p,size:m,inputId:f,suggest:d,className:b});function Ce({handlers:e,enabled:t=!0,target:n,sequenceTimeoutMs:o=1e3}){const i=l.useRef(e);i.current=e;const r=l.useRef(null),a=l.useRef(null);l.useEffect(()=>{if(!t)return;const u=()=>{a.current!==null&&(clearTimeout(a.current),a.current=null)},p=f=>{const d=Q({key:f.key,shiftKey:f.shiftKey,metaKey:f.metaKey,ctrlKey:f.ctrlKey,altKey:f.altKey,inEditable:X(f.target),onControl:z(f.target)},r.current);if(J().length>0){u(),r.current=null;return}if(u(),r.current=d.nextPrefix,d.nextPrefix!==null&&(a.current=setTimeout(()=>{r.current=null,a.current=null},o)),d.action===null||L(d.action)!==null)return;const b=i.current[d.action];b&&(d.preventDefault&&f.preventDefault(),b())},m=n===void 0?window:n;if(m!==null)return m.addEventListener("keydown",p),()=>{m.removeEventListener("keydown",p),u(),r.current=null}},[t,o,n])}function we(){const e=x({from:"/mail/brief/$threadId",shouldThrow:!1}),t=x({from:"/mail/brief/$threadId/$messageId",shouldThrow:!1}),n=x({from:"/mail/flagged/$threadId",shouldThrow:!1}),o=x({from:"/mail/flagged/$threadId/$messageId",shouldThrow:!1}),i=x({from:"/mail/$mailboxId/$threadId",shouldThrow:!1}),r=x({from:"/mail/$mailboxId/$threadId/$messageId",shouldThrow:!1}),a=e?.threadId??n?.threadId??i?.threadId,u=t?.messageId??o?.messageId??r?.messageId;return l.useMemo(()=>a?{threadId:a,messageId:u}:void 0,[a,u])}function Se(){const e=K(),t=Y(),{list:n,mailboxId:o}=k();return l.useCallback((i,r)=>{const a=r?.query,p={search:f=>a===void 0?f:{...f,q:a||void 0},hash:t,replace:r?.replace??!1};if(n==="flagged"){e({to:"/mail/flagged/$threadId/$messageId",params:i,...p});return}const m=r?.mailboxId??o;if(n==="mailbox"&&m){e({to:"/mail/$mailboxId/$threadId/$messageId",params:{mailboxId:m,...i},...p});return}e({to:"/mail/brief/$threadId/$messageId",params:i,...p})},[e,t,n,o])}function ve(){return W()}function me(){const e=K();return l.useCallback(t=>{e({to:"/mail/brief",search:{q:t||void 0}})},[e])}function Te(){const e=K();return l.useCallback((t,n)=>{e({to:"/mail/$mailboxId",params:{mailboxId:t},search:{q:n||void 0}})},[e])}const he=({accounts:e})=>{const{list:t,mailboxId:n}=k(),{t:o}=Z("mail",{useSuspense:!1}),i=l.useCallback((a,u)=>o(a,{defaultValue:u}),[o]),r=R({queries:e.map(a=>({...M({path:{accountId:a.accountId}}),staleTime:1/0}))});if(t==="outbox")return"Outbox";if(!n)return null;for(let a=0;a<e.length;a++){const u=r[a]?.data?.items;if(!u)continue;const p=u.find(f=>f.mailboxId===n);if(!p)continue;const m=ee(e[a].folderAppointments);return te(p,m.get(n),i)}return null},Ee=({accounts:e})=>{const{mailboxId:t}=k(),n=R({queries:e.map(o=>({...M({path:{accountId:o.accountId}}),staleTime:1/0}))});if(!t)return null;for(const o of n){const i=o.data?.items;if(!i)continue;const r=i.find(a=>a.mailboxId===t);if(r)return r.unseenCount}return null},Ne=({accounts:e})=>{const{mailboxId:t}=k(),n=R({queries:e.map(o=>({...M({path:{accountId:o.accountId}}),staleTime:1/0}))});if(!t)return 0;for(const o of n){const i=o.data?.items;if(!i)continue;const r=i.find(a=>a.mailboxId===t);if(r)return r.messageCount}return 0};function Ke(e){const t=me(),{searchInput:n}=ne(),o=he({accounts:e}),i=k(),r=l.useMemo(()=>oe(i,o),[i,o]),a=l.useCallback(u=>{u===se&&t(n)},[t,n]);return{scope:r,clearScope:a}}function Me(e){const t=new Map;for(const n of e){const o=n.email.toLowerCase(),i=o.split("@")[0];i&&!t.has(i)&&t.set(i,n.accountId),t.has(o)||t.set(o,n.accountId)}return t}function Re(e){const t=new Map;for(const n of e)for(const o of n){const i=o.fullPath?.toLowerCase();if(!i)continue;const r=N(o).toLowerCase();t.has(i)||t.set(i,o.mailboxId),t.has(r)||t.set(r,o.mailboxId)}return t}function Fe(e,t=[]){const n=e.flat().filter(r=>r.fullPath),o=new Map;for(const r of n){const a=N(r).toLowerCase();o.set(a,(o.get(a)??0)+1)}const i=new Map(t.map(r=>[r.accountId,r.email]));return n.map(r=>{const a=N(r),u=o.get(a.toLowerCase())===1,p=t.length>1?i.get(r.accountId):void 0;return{value:u?a:r.fullPath,label:r.displayNameOverride?.trim()||a,...p?{hint:p}:{}}})}function Pe(e){const t=new Map;for(const n of e){const o=n.email.toLowerCase().split("@")[0]??"";t.set(o,(t.get(o)??0)+1)}return e.map(n=>{const o=n.email.split("@")[0]??n.email,i=t.get(o.toLowerCase())===1,r=n.displayName?.trim();return{value:i?o:n.email,label:r||n.email,...r?{hint:n.email}:{}}})}export{ae as K,Ie as S,we as a,Re as b,Ce as c,Me as d,Se as e,ve as f,he as g,Ee as h,Ne as i,re as j,Fe as k,Pe as l,Te as m,xe as n,ce as s,ke as t,Ke as u};
@@ -1 +0,0 @@
1
- import{j as t,O as o}from"./index-D7VpR8Bx.js";const n=()=>t.jsx(o,{});export{n as component};
@@ -1 +0,0 @@
1
- import{e}from"./index-D7VpR8Bx.js";const d=e("CloudOff",[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M5.782 5.782A7 7 0 0 0 9 19h8.5a4.5 4.5 0 0 0 1.307-.193",key:"yfwify"}],["path",{d:"M21.532 16.5A4.5 4.5 0 0 0 17.5 10h-1.79A7.008 7.008 0 0 0 10 5.07",key:"jlfiyv"}]]);const h=e("ShieldCheck",[["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 12 2 2 4-4",key:"dzmm74"}]]);export{d as C,h as S};
@@ -1 +0,0 @@
1
- import{j as t,ao as e}from"./index-D7VpR8Bx.js";const s=()=>t.jsx(e,{to:"/settings/senders",replace:!0});export{s as component};
@@ -1 +0,0 @@
1
- import{e as A,u as M,r as d,aa as p,eH as R,eI as _,c0 as I,y as j,cp as U,eJ as S,c as W,eK as T,h as F,s as G}from"./index-D7VpR8Bx.js";import{u as B}from"./useQueries-BDOaD0Tu.js";import{b as P}from"./useCalendars-B1migLvB.js";const it=A("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]),g=480,m=1320,v=90;function $(t){return Number(t.slice(11,13))*60+Number(t.slice(14,16))}function ut(t){const n=Math.max(0,Math.min(1440,Math.round(t)));return`${String(Math.floor(n/60)).padStart(2,"0")}:${String(n%60).padStart(2,"0")}`}function lt(t){const n=Math.round(t);if(n<60)return`${n}m`;const a=Math.floor(n/60),e=n%60;return e===0?`${a}h`:`${a}h ${e}m`}function O(t,n){const a=new Date(`${t}T00:00:00Z`);return a.setUTCDate(a.getUTCDate()+n),a.toISOString().slice(0,10)}function dt(t,n){return Math.round((Date.parse(`${n}T00:00:00Z`)-Date.parse(`${t}T00:00:00Z`))/864e5)}function ft(t){const n=t.start.slice(0,10),a=t.end.slice(0,10);if(!t.allDay)return a;const e=O(a,-1);return e<n?n:e}function mt(t,n){const a=[];for(let e=t;e<=n;e=O(e,1))a.push(e);return a}function ht(t){const[n,a,e]=t.split("-").map(Number);return new Date(n,a-1,e).toLocaleDateString("en-GB",{month:"long",year:"numeric"})}function pt(t){const[n,a,e]=t.split("-").map(Number);return new Date(n,a-1,e).toLocaleDateString("en-GB",{weekday:"short",day:"numeric",month:"short"})}function yt(t){const[n,a,e]=t.split("-").map(Number);return new Date(n,a-1,e).toLocaleDateString("en-GB",{weekday:"long"})}function gt(t,n){const[a,e,o]=t.split("-").map(Number),[r,c,s]=n.split("-").map(Number),u=new Date(a,e-1,o),l=new Date(r,c-1,s),i=u.toLocaleDateString("en-GB",{weekday:"short",day:"numeric",...e===c?{}:{month:"short"}}),w=l.toLocaleDateString("en-GB",{weekday:"short",day:"numeric",month:"short"});return`${i} – ${w}`}function Y(t){const[n,a,e]=t.split("-").map(Number);return new Date(n,a-1,e).toLocaleDateString("en-GB",{weekday:"short"})}function f(t){return new Date(t).getTime()}function Z(t,n){return t.allDay?n>=t.start.slice(0,10)&&n<t.end.slice(0,10):t.start.slice(0,10)===n}function q(t,n){return f(t.start)<f(n.end)&&f(n.start)<f(t.end)}function H(t){const n=t.map(r=>[f(r.start),f(r.end)]).sort((r,c)=>r[0]-c[0]);let a=0,e=0,o=0;for(const[r,c]of n){if(r>o){a+=o-e,e=r,o=c;continue}o=Math.max(o,c)}return a+=o-e,Math.round(a/6e4)}function K(t){const n=[];for(const a of t){const e=t.filter(r=>r.id===a.id||q(a,r)).map(r=>r.id).sort();if(e.length<2)continue;const o=e.join("|");n.some(r=>r.join("|")===o)||n.push(e)}return n.filter(a=>!n.some(e=>e!==a&&a.every(o=>e.includes(o))))}function Dt(t,n,a){const e=n.filter(r=>Z(r,t)),o=e.filter(r=>!r.allDay).sort((r,c)=>f(r.start)-f(c.start));return{date:t,weekdayLabel:Y(t),dayNumber:Number(t.slice(8)),isToday:t===a,timed:o,allDay:e.filter(r=>r.allDay),busyMinutes:H(o),conflicts:K(o)}}function Q(t){return t.timed.length===0&&t.allDay.length===0}function V(t){return x(t.timed.map(n=>({from:$(n.start),to:$(n.end)})))}function x(t){const n=[...t].sort((e,o)=>e.from-o.from),a=[];for(const e of n){const o=a[a.length-1];if(o&&e.from<=o.to){o.to=Math.max(o.to,e.to);continue}a.push({...e})}return a}function k(t){return Math.min(Math.max(t,g),m)}function z(t,n,a=v){const e=x(n);if(e.length===0)return[{date:t,startMinute:g,endMinute:m,minutes:m-g,wholeDay:!0}];const o=[];let r=g;for(const c of e){const s=k(c.from),u=k(c.to);s-r>=a&&o.push({date:t,startMinute:r,endMinute:s,minutes:s-r,wholeDay:!1}),r=Math.max(r,s,u)}return m-r>=a&&o.push({date:t,startMinute:r,endMinute:m,minutes:m-r,wholeDay:!1}),o}function J(t,n=v){return z(t.date,V(t),n)}function wt(t,n,{ignoreIds:a=[]}={}){const e=Date.parse(t.start),o=Date.parse(t.end);return n.filter(r=>r.allDay||r.myRsvp==="declined"||a.includes(r.id)?!1:Date.parse(r.start)<o&&e<Date.parse(r.end))}function bt(t,n){const a=[];let e=[];const o=()=>{e.length!==0&&(e.length===1?a.push({kind:"day",key:e[0].date,day:e[0]}):a.push({kind:"run",key:`run_${e[0].date}`,from:e[0].date,to:e[e.length-1].date,days:e.length}),e=[])};for(const r of t){if(Q(r)&&!n.includes(r.date)){e.push(r);continue}o(),a.push({kind:"day",key:r.date,day:r})}return o(),a}function $t(t){const n=[];for(const a of t){const e=n[n.length-1],o=e?Math.max(...e.map(r=>Date.parse(r.end))):0;if(e&&Date.parse(a.start)<o){e.push(a);continue}n.push([a])}return n}function Mt(t,n){const a=Date.parse(n),e=n.slice(0,10),o=t.flatMap(l=>l.timed).sort((l,i)=>Date.parse(l.start)-Date.parse(i.start)),r=o.filter(l=>Date.parse(l.start)<=a&&Date.parse(l.end)>a),c=o.filter(l=>Date.parse(l.start)>a),s=c[0],u=r.filter(l=>l.start.slice(0,10)===e).length+c.filter(l=>l.start.slice(0,10)===e).length;return{running:r,next:s,minutesUntilNext:s?Math.round((Date.parse(s.start)-a)/6e4):0,after:c[1],restOfDay:u,free:X(t,n,1)[0]}}function X(t,n,a){const e=n.slice(0,10),o=$(n),r=[];for(const c of t)if(!(c.date<e))for(const s of J(c)){if(c.date>e)r.push(s);else{const u=Math.max(s.startMinute,o);if(s.endMinute-u<v)continue;r.push({...s,startMinute:u,minutes:s.endMinute-u,wholeDay:s.wholeDay&&u===s.startMinute})}if(r.length===a)return r}return r}const tt={"cal-1":{solid:"bg-cal-1",soft:"bg-cal-1-soft",text:"text-cal-1",border:"border-cal-1",rail:"border-l-cal-1"},"cal-2":{solid:"bg-cal-2",soft:"bg-cal-2-soft",text:"text-cal-2",border:"border-cal-2",rail:"border-l-cal-2"},"cal-3":{solid:"bg-cal-3",soft:"bg-cal-3-soft",text:"text-cal-3",border:"border-cal-3",rail:"border-l-cal-3"},"cal-4":{solid:"bg-cal-4",soft:"bg-cal-4-soft",text:"text-cal-4",border:"border-cal-4",rail:"border-l-cal-4"},"cal-5":{solid:"bg-cal-5",soft:"bg-cal-5-soft",text:"text-cal-5",border:"border-cal-5",rail:"border-l-cal-5"},"cal-6":{solid:"bg-cal-6",soft:"bg-cal-6-soft",text:"text-cal-6",border:"border-cal-6",rail:"border-l-cal-6"}};function Tt(t){return tt[t]}const y="/calendar/$view/$date",D="/calendar/$view/$date/suggestion/$suggestionId";function et(){const t=p({from:y,shouldThrow:!1}),n=R({from:y,shouldThrow:!1}),a=t?.view??"",e=t?.date??"",o=n?.calendarId;return d.useMemo(()=>({..._({view:a,date:e},I(new Date)),calendarIds:o??[]}),[a,e,o])}function vt(){const t=p({from:"/calendar/$view/$date/$calendarObjectId",shouldThrow:!1}),n=p({from:"/calendar/$view/$date/$calendarObjectId/$recurrenceId",shouldThrow:!1}),a=t?.calendarObjectId,e=n?.recurrenceId;return d.useMemo(()=>a?{calendarObjectId:a,recurrenceId:e}:void 0,[a,e])}function Ct(){return p({from:D,shouldThrow:!1})?.suggestionId}function Et(){const t=p({from:"/calendar/$view/$date/new",shouldThrow:!1}),n=p({from:D,shouldThrow:!1});return t!==void 0||n!==void 0}function kt(){const t=M(),n=j(),a=U(),{view:e,date:o}=et(),r=d.useCallback(s=>{t({to:y,params:s,search:!0,hash:a})},[t,a]),c=d.useCallback(s=>n.buildLocation({to:y,params:{view:"day",date:s},search:!0,hash:a}).href,[n,a]);return d.useMemo(()=>({goToView:s=>r({view:s,date:o}),step:s=>r({view:e,date:S(o,e,s)}),goToToday:()=>r({view:e,date:I(new Date)}),setAnchorDate:s=>t({to:y,params:{view:e,date:s},search:!0,hash:a,replace:!0}),zoomToDay:s=>t({href:c(s)}),dayHref:c,openEvent:(s,u)=>t(u===void 0||u===""?{to:"/calendar/$view/$date/$calendarObjectId",params:{view:e,date:o,calendarObjectId:s},search:!0,hash:a}:{to:"/calendar/$view/$date/$calendarObjectId/$recurrenceId",params:{view:e,date:o,calendarObjectId:s,recurrenceId:u},search:!0,hash:a}),closeEvent:()=>r({view:e,date:o}),openComposer:()=>t({to:"/calendar/$view/$date/new",params:{view:e,date:o},search:!0,hash:a}),changeSuggestionFirst:(s,u)=>t({to:D,params:{view:e,date:u,suggestionId:s},search:!0,hash:a})}),[r,t,c,a,e,o])}function It(){const t=M();return d.useCallback((n,a,e)=>{if(e===""){t({to:"/calendar/$view/$date/$calendarObjectId",params:{view:"day",date:n,calendarObjectId:a}});return}t({to:"/calendar/$view/$date/$calendarObjectId/$recurrenceId",params:{view:"day",date:n,calendarObjectId:a,recurrenceId:e}})},[t])}function St(){const t=M();return d.useCallback((n,a)=>{t({to:D,params:{view:"day",date:n,suggestionId:a}})},[t])}const b=new Intl.DateTimeFormat(void 0,{weekday:"short",day:"numeric",month:"long"}),h=new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",hour12:!1}),at=new Intl.DateTimeFormat(void 0,{weekday:"long",day:"numeric",month:"long",timeZone:"UTC"}),nt=new Intl.DateTimeFormat(void 0,{weekday:"short",day:"numeric",month:"long",timeZone:"UTC"});function rt(t){return nt.format(new Date(`${t}T00:00:00Z`))}function Ot(t){if(t.allDay)return`${rt(t.start.slice(0,10))}, all day`;const n=new Date(t.start),a=new Date(t.end),e=b.format(n);return b.format(a)===e?`${e}, ${h.format(n)} – ${h.format(a)}`:`${e}, ${h.format(n)} – ${b.format(a)}, ${h.format(a)}`}function xt(t){return at.format(new Date(`${t}T00:00:00Z`))}function Lt(t){return h.format(new Date(`1970-01-01T${t}:00`))}function Nt(t){return h.format(new Date(t))}const L=G(400,404),C=5*6e4,E=({from:t,to:n,calendarIds:a})=>({query:a.length===0?{from:t,to:n}:{from:t,to:n,calendarId:[...a]}});function At(t){const{data:n,isLoading:a,error:e,refetch:o}=W({...T(E(t)),meta:L,staleTime:C,enabled:t.enabled??!0});return{instances:n?.items??[],isLoading:a,error:e,refetch:()=>{o()}}}function Rt(t,n,a){const e=B({queries:t.map(i=>({...T(E({...i,calendarIds:n})),meta:L,staleTime:C,enabled:a}))}),o=t.map(i=>i.from).join("|"),r=e.map(i=>i.data),c=e.map(i=>i.isPending).join("|"),s=e.find(i=>i.error)?.error??null,u=d.useMemo(()=>r.flatMap(i=>i?.items??[]),[o,c]),l=d.useMemo(()=>{const i=new Set;return t.forEach((w,N)=>{e[N]?.isPending&&i.add(w.from)}),i},[o,c]);return{instances:u,pendingWindows:l,error:s,refetch:()=>{for(const i of e)i.error&&i.refetch()}}}function _t(t,n,a,e){const o=F(),r=[...a].join(",");d.useEffect(()=>{if(!e)return;const c=r===""?[]:r.split(",");for(const s of[-1,1]){const u=P(t,S(n,t,s));o.prefetchQuery({...T(E({...u,calendarIds:c})),staleTime:C})}},[o,t,n,r,e])}export{x as A,mt as B,C,g as D,z as E,rt as F,Ot as G,Lt as H,_t as I,dt as J,ft as K,wt as L,Ct as M,it as R,gt as a,bt as b,Tt as c,$ as d,ut as e,J as f,$t as g,V as h,m as i,lt as j,O as k,pt as l,ht as m,kt as n,vt as o,Rt as p,Dt as q,Mt as r,Et as s,It as t,et as u,St as v,yt as w,At as x,Nt as y,xt as z};
@@ -1 +0,0 @@
1
- import{e as M,t as c,j as e,r as N,X as D,as as P,dA as T,f as z,aR as Z,ai as I,eG as L,s as O}from"./index-D7VpR8Bx.js";import{c as _,R as F,C as B}from"./useCalendarEvents-BQ8pmFV8.js";import{M as C}from"./mail-BiL0g7on.js";import{G as A}from"./map-pin-C0usgYas.js";import{S as W}from"./useLayoutTier-B0zSRsSh.js";import{u as G}from"./useQueries-BDOaD0Tu.js";const U=M("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);function X(s){const n=_(s.color),a=s.rsvp==="tentative"||s.status==="tentative";return c("flex min-w-0 overflow-hidden rounded-sm border-l-2 px-1.5 py-0.5",n.soft,n.text,n.rail,s.layout==="column"||s.stacked?"flex-col":"items-center gap-1.5",a&&"border-y border-r border-dashed",a&&n.border,s.rsvp==="declined"&&"opacity-60",s.selected&&"ring-2 ring-ring",s.density==="compact"?"text-2xs":"text-xs")}function $({title:s,timeText:n,layout:a,rsvp:l,hasThread:d,isRecurring:m,zoneCertainty:x,trailing:t,detail:p}){const r=a==="column",i=x==="ambiguous",o=!r&&p!==void 0,u=e.jsxs("span",{className:c("flex min-w-0 items-center gap-1",r&&"w-full",l==="declined"&&"line-through"),children:[n!==""&&e.jsx("span",{className:"shrink-0 tabular-nums opacity-80",children:n}),e.jsx("span",{className:"truncate font-medium",children:s})]}),h=(m||d||i)&&e.jsxs("span",{className:c("flex shrink-0 items-center gap-1",r&&"mt-0.5",!r&&t===void 0&&"ml-auto"),children:[m&&e.jsx(F,{className:"size-2.5","aria-label":"Repeats"}),d&&e.jsx(C,{className:"size-2.5","aria-label":"From mail"}),i&&e.jsx(A,{className:"size-2.5 text-warning","aria-label":"Unclear zone"})]}),g=t!==void 0&&e.jsx("span",{className:c("shrink-0 opacity-80",!r&&"ml-auto"),children:t});return e.jsxs(e.Fragment,{children:[o?e.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[u,h,g]}):e.jsxs(e.Fragment,{children:[u,h,g]}),p]})}function ae({title:s,timeText:n,color:a,layout:l,density:d,rsvp:m,status:x,hasThread:t,isRecurring:p,zoneCertainty:r,selected:i,onClick:o,leading:u,trailing:h,detail:g}){const j=l==="column";return e.jsxs("button",{type:"button",onClick:o,"aria-pressed":i,className:c("group flex w-full min-w-0 text-left outline-none transition-colors","focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-surface",j?"h-full":"items-start",u!==void 0&&"gap-2"),children:[u,e.jsx("span",{className:c(X({color:a,layout:l,density:d,rsvp:m,status:x,selected:i,stacked:g!==void 0}),"flex-1",j&&"h-full"),children:e.jsx($,{title:s,timeText:n,layout:l,rsvp:m,hasThread:t,isRecurring:p,zoneCertainty:r,trailing:h,detail:g})})]})}const E=96,q=6;function re({children:s,hasCard:n,onConfirm:a,onReject:l,blocked:d,blockedReason:m,remaining:x,confirmLabel:t="Add",emptyText:p="Nothing in your mail is waiting on a decision about time.",className:r}){const[i,o]=N.useState(0),[u,h]=N.useState(null);if(!n)return e.jsxs("div",{className:c("flex flex-col items-center gap-2 p-6 text-center",r),children:[e.jsx(W,{className:"size-6 text-fg-subtle","aria-hidden":!0}),e.jsx("p",{className:"text-sm text-fg-muted",children:p})]});const g=Math.abs(i)>E,j=i>0;return e.jsxs("div",{className:c("flex flex-col gap-3",r),children:[e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"touch-pan-y select-none",style:{transform:`translateX(${i}px) rotate(${i/40}deg)`,transition:u===null?"transform 180ms ease-out":"none"},onPointerDown:b=>{h(b.clientX)},onPointerMove:b=>{if(u===null)return;const v=b.clientX-u;Math.abs(v)>q&&!b.currentTarget.hasPointerCapture(b.pointerId)&&b.currentTarget.setPointerCapture(b.pointerId),o(v)},onPointerUp:()=>{Math.abs(i)>E&&(i>0&&!d&&a(),i<0&&l()),h(null),o(0)},onPointerCancel:()=>{h(null),o(0)},children:s}),g&&e.jsx("span",{className:c("pointer-events-none absolute top-3 rounded-md px-2 py-1 text-xs font-semibold",j?"right-3 bg-accent-soft text-accent":"left-3 bg-danger-soft text-danger"),children:j?d?m:t:"Not this"})]}),e.jsxs("p",{className:"text-center text-2xs text-fg-subtle",children:[x," left · swipe right to accept, left to drop, or use the buttons"]})]})}const H="Pick a clock first. The mail never said, and the reader will not choose for you.";function K(s,n){const a=s.zoneOptions;return a===void 0?{settled:!0,timeZone:""}:a.some(l=>l.timeZone===n)?{settled:!0,timeZone:n}:{settled:!1,reason:H}}function S(s){return s.threadSubject===""?s.sender:`${s.sender} — ${s.threadSubject}`}function Q(s){return s>=.85?"Read cleanly":s>=.6?"Read with gaps":"Barely read"}function ie({suggestion:s,whenText:n,onAdd:a,onReview:l,onDismiss:d,onOpenThread:m,busy:x=!1,addBlocked:t=!1,zoneChoice:p,onZoneChoice:r,addLabel:i="Add",touch:o,className:u}){const[h,g]=N.useState(""),[j,b]=N.useState(!1),v=N.useId(),k=p??h,R=f=>{b(!1),r?r(f):g(f)},y=K(s,k),w=f=>()=>{if(!y.settled){b(!0);return}f(y.timeZone)};return e.jsxs("article",{"aria-label":s.title,className:c("flex flex-col gap-2 rounded-lg border border-dashed border-line-strong bg-surface-sunken p-3",u),children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsxs("span",{className:"block text-2xs uppercase tracking-wider text-fg-subtle",children:["Suggested from mail · ",Q(s.confidence)]}),e.jsx("span",{className:"block truncate text-sm font-medium text-fg",children:s.title}),e.jsx("span",{className:"block text-xs text-fg-muted",children:n}),s.location!==""&&e.jsx("span",{className:"block truncate text-xs text-fg-muted",children:s.location})]}),e.jsx("button",{type:"button","aria-label":"Dismiss suggestion",onClick:d,disabled:x,className:c("flex shrink-0 items-center justify-center rounded-md text-fg-subtle outline-none hover:bg-surface hover:text-fg focus-visible:ring-2 focus-visible:ring-ring",o?"size-11":"size-7"),children:e.jsx(D,{className:"size-4"})})]}),s.ambiguity!==""&&e.jsxs("p",{className:"flex items-start gap-1.5 text-2xs text-warning",children:[e.jsx(P,{className:"mt-0.5 size-3 shrink-0","aria-hidden":!0}),s.ambiguity]}),m?e.jsxs("button",{type:"button",onClick:m,className:"flex w-full min-w-0 items-center gap-1.5 rounded-sm text-left text-2xs text-accent-2 outline-none hover:underline focus-visible:ring-2 focus-visible:ring-ring",children:[e.jsx(C,{className:"size-3 shrink-0"}),e.jsx("span",{className:"truncate",children:S(s)})]}):e.jsxs("p",{className:"flex w-full min-w-0 items-center gap-1.5 text-2xs text-fg-subtle",children:[e.jsx(C,{className:"size-3 shrink-0"}),e.jsx("span",{className:"truncate",children:S(s)})]}),s.zoneOptions&&e.jsxs("div",{className:"flex flex-col gap-1.5 rounded-md border border-warning/40 p-2",children:[e.jsxs("p",{className:"flex items-center gap-1.5 text-2xs font-semibold text-warning",children:[e.jsx(A,{className:"size-3 shrink-0","aria-hidden":!0}),"Which clock is this on?"]}),s.zoneOptions.map(f=>e.jsxs("button",{type:"button","aria-pressed":k===f.timeZone,onClick:()=>R(f.timeZone),className:c("rounded-md border px-2 py-1 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring",o&&"min-h-11",k===f.timeZone?"border-accent bg-accent-soft":"border-line bg-surface hover:border-line-strong"),children:[e.jsx("span",{className:"block text-xs font-medium text-fg",children:f.label}),e.jsx("span",{className:"block text-2xs text-fg-subtle",children:f.note})]},f.timeZone))]}),!y.settled&&e.jsx(T,{id:v,reason:y.reason,nudged:j,className:"text-2xs text-warning"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(z,{variant:"primary",size:o?"md":"sm",icon:e.jsx(Z,{className:"size-3.5"}),onClick:w(a),disabled:x||t,"aria-describedby":y.settled?void 0:v,className:c(o&&"min-h-11 flex-1",!y.settled&&"opacity-55"),children:i}),l&&e.jsx(z,{variant:"secondary",size:o?"md":"sm",icon:e.jsx(U,{className:"size-3.5"}),onClick:w(l),disabled:x,"aria-describedby":y.settled?void 0:v,className:c(o&&"min-h-11",!y.settled&&"opacity-55"),children:"Change first"})]})]})}function le(s){return s.defaultCalendarId!==""?"ready":s.error!==null?"failed":s.isLoading?"loading":"none"}function oe(s,n){if(s!=="ready")return s==="loading"?"Reading your calendars…":s==="failed"?e.jsxs(e.Fragment,{children:["Couldn't read your calendars, so there is nowhere to add this yet. Reload to try again."," ",e.jsx("a",{href:n,target:"_blank",rel:"noreferrer",className:"font-medium text-accent hover:underline",children:"Report an issue"})]}):e.jsxs(e.Fragment,{children:["You have no calendar yet, so there is nowhere to add this."," ",e.jsx(I,{to:"/settings/calendars",className:"font-medium text-accent hover:underline",children:"Create a calendar"})]})}const Y=O(400,404);function ce(s){const n=G({queries:s.map(t=>({...L({query:{from:t.from,to:t.to}}),meta:Y,staleTime:B}))}),a=s.map(t=>t.from).join("|"),l=n.map(t=>t.data),d=n.map(t=>t.isPending).join("|"),m=N.useMemo(()=>l.flatMap(t=>t?.items??[]),[a,d]),x=N.useMemo(()=>{const t=new Set;return s.forEach((p,r)=>{n[r]?.isPending&&t.add(p.from)}),t},[a,d]);return{spans:m,pendingWindows:x,error:n.find(t=>t.error)?.error??null,refetch:()=>{for(const t of n)t.error&&t.refetch()}}}export{ae as C,ie as E,H as Z,$ as a,re as b,X as c,oe as d,le as e,K as s,ce as u};
@@ -1 +0,0 @@
1
- import{e as a,c3 as t,c4 as s}from"./index-D7VpR8Bx.js";const n=a("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]),p=768,r=e=>e!=="desktop",c=()=>{const e=t(`(min-width: ${p}px)`);return t(s)?"desktop":e?"tablet":"phone"};export{n as S,r as i,c as u};
@@ -1 +0,0 @@
1
- import{r as a,u as P,cp as O,cq as U,cQ as B,aa as p,cr as N,q as $,ac as D,h as F,c as L,cR as _,cF as v}from"./index-D7VpR8Bx.js";const E="/mail/brief/compose/{-$outboxMessageId}",w="/mail/flagged/compose/{-$outboxMessageId}",R="/mail/outbox/compose/{-$outboxMessageId}",S="/mail/$mailboxId/compose/{-$outboxMessageId}";function T(){const e=p({from:E,shouldThrow:!1}),t=p({from:w,shouldThrow:!1}),s=p({from:R,shouldThrow:!1}),r=p({from:S,shouldThrow:!1});return e??t??s??r}function ee(){return T()!==void 0}function te(){return T()?.outboxMessageId}function q(e,t,s){return e==="flagged"?{to:w,params:{outboxMessageId:s}}:e==="outbox"?{to:R,params:{outboxMessageId:s}}:e==="mailbox"&&t?{to:S,params:{mailboxId:t,outboxMessageId:s}}:{to:E,params:{outboxMessageId:s}}}function b(){const e=P(),t=O(),{list:s,mailboxId:r}=U();return a.useCallback((n,o)=>{e({...q(s,r,n),search:B,hash:o?.keepPanels?!0:t,replace:o?.replace??!1})},[e,t,s,r])}function se(){const e=b();return a.useCallback(()=>e(void 0),[e])}function re(){const e=b();return a.useCallback(t=>e(t),[e])}function ne(){const e=b();return a.useCallback(t=>e(t,{replace:!0,keepPanels:!0}),[e])}function oe(){return N()}const Q=new Set(["rfc822","global"]),K=e=>e.mediaType.toUpperCase()==="MESSAGE"&&Q.has(e.mediaSubtype.toLowerCase()),k=(e,t)=>e.partPath.startsWith(`${t}.`),I=e=>{const t=e.filter(K);return e.filter(s=>!t.some(r=>k(s,r.partPath)))},ae=(e,t)=>e.filter(s=>k(s,t)),G=e=>{const t=I(e).filter(n=>!n.isMultipart&&n.disposition!=="attachment"&&n.mediaType==="TEXT"&&n.contentUrl.length>0),s=t.find(n=>n.mediaSubtype.toUpperCase()==="HTML");if(s)return{kind:"html",contentUrl:s.contentUrl};const r=t.find(n=>n.mediaSubtype.toUpperCase()==="PLAIN");return r?{kind:"text",contentUrl:r.contentUrl}:null},g={all:["messages"],detail:e=>[...g.all,"detail",e],body:e=>[...g.detail(e),"body"]};class f extends Error{reason;status;retryAfterSeconds;constructor(t,s,r,n){super(s),this.name="BodyFetchError",this.reason=t,this.status=r,this.retryAfterSeconds=n}}const W=e=>{const t=Number.parseInt(e??"",10);return!Number.isFinite(t)||t<=0?1:Math.min(t,30)},X=8,H="x-remit-403-reason",Y=(e,t)=>{const s=t?.trim()??"";return e===401?"auth":e===403?s.length>0?"auth":"body-missing":e===404?"body-missing":"generic"},z=(e,t)=>(t??"").toLowerCase().startsWith("text/html")?/<div\s+id=["']root["']/i.test(e):!1,j=(e,t)=>{const s=(t??"").toLowerCase();return!!(e==="text"&&s.startsWith("text/html"))},J=async(e,t,s=async()=>null)=>{const r={},n=await s();n&&(r.Authorization=`Bearer ${n}`);const o=await v(e,{headers:r});if(o.status===202)throw new f("not-ready","Message body is still syncing",202,W(o.headers.get("Retry-After")));if(!o.ok){const l=o.headers.get(H),m=Y(o.status,l);throw new f(m,`Failed to load message body (${o.status} ${o.statusText})`,o.status)}const c=o.headers.get("content-type");if(j(t,c))throw new f("content-type-mismatch",`Refusing to render message body — expected ${t}, got Content-Type ${c}`);const h=await o.text();if(z(h,c))throw new f("spa-shell-leak","Refusing to render message body — response looks like the SPA shell (CloudFront 403/404 fallback leaked through to /content/*)");return h},V=async(e,t)=>(t.isRetryAfterNotReady&&await e.refetchDescribeMessage(),e.fetchContent(t.contentUrl,t.kind)),ce=({messageId:e,bodyParts:t,enabled:s=!0})=>{const r=t?G(t):null,n=$(),{getToken:o}=D(),c=a.useRef(null),h=F(),l=a.useRef(!1),m=a.useRef(null),C=e&&r?`${e}:${r.contentUrl}`:null;m.current!==C&&(m.current=C,l.current=!1);const i=L({queryKey:e?[...g.body(e),r?.contentUrl??null]:["messages","body","noop"],queryFn:()=>{if(!r)throw new Error("No renderable body part");if(!e)throw new Error("No messageId");const d=l.current;return l.current=!1,V({fetchContent:(u,x)=>J(u,x,o),refetchDescribeMessage:()=>h.refetchQueries({queryKey:_({path:{messageId:e}})})},{contentUrl:r.contentUrl,kind:r.kind,isRetryAfterNotReady:d})},enabled:s&&!!e&&!!r,staleTime:300*1e3,gcTime:1800*1e3,retry:(d,u)=>u instanceof f&&u.reason==="not-ready"?d<X:d<1,retryDelay:(d,u)=>u instanceof f&&u.reason==="not-ready"?(l.current=!0,(u.retryAfterSeconds??1)*1e3):1e3,meta:{softError:!0}}),y=i.isLoading&&!!r,A=t!==void 0&&r===null;a.useEffect(()=>{y&&(c.current=performance.now())},[y]),a.useEffect(()=>{i.isSuccess&&c.current!==null&&(n.recordTiming("message.body.load",Math.round(performance.now()-c.current)),c.current=null)},[i.isSuccess,n]);const M=i.data&&r?{kind:r.kind,body:i.data}:void 0;return{picked:r,data:M,isLoading:y,hasNoRenderablePart:A,isError:i.isError,error:i.error,refetch:i.refetch}};export{f as B,ee as a,ce as b,Y as c,te as d,ne as e,oe as f,re as g,ae as h,K as i,I as o,se as u};
@@ -1 +0,0 @@
1
- import{j as E,a1 as K,t as U,f as Q,h as N,G,r as o,aU as R,K as $,M as z,q as B,R as I,S as X,T as V,U as J}from"./index-D7VpR8Bx.js";import{C as Y}from"./circle-check-big-Bkno0zML.js";import{R as Z}from"./refresh-cw-CpnxiYht.js";import{u as L}from"./useQueries-BDOaD0Tu.js";function ye({state:e,onRefresh:s,label:t,errorMessage:n,hasUpdate:a,size:u="sm",className:c}){const i=e==="refreshing",r=e==="error",h=e==="success",S=r?E.jsx(K,{className:"size-4 text-danger"}):h?E.jsx(Y,{className:"size-4 text-positive"}):E.jsx(Z,{className:U("size-4",i&&"animate-spin")}),w=r?`${t} — failed: ${n??"try again"}`:i?`${t} — refreshing`:h?`${t} — up to date`:a?`${t} — new mail`:t;return E.jsxs("div",{className:"relative inline-flex",children:[E.jsx(Q,{variant:"ghost",size:u,icon:S,onClick:s,disabled:i,"aria-label":w,"aria-busy":i||void 0,title:r?n:t,className:c}),e==="idle"&&a&&E.jsx("span",{"aria-hidden":"true",className:"absolute right-1 top-1 size-1.5 rounded-full bg-accent-2"})]})}const ee=180*1e3,we=30*1e3;let P=0;const M=new Set,te=(e=Date.now())=>{P=e+ee;for(const s of M)s()},xe=(e=Date.now())=>e<P,pe=e=>(M.add(e),()=>{M.delete(e)}),T=6e4,se=new Set(["sent","drafts","trash","archive"]),_=(e,s)=>{const t=new Map;for(const n of e){const a=s.get(n.mailboxId)?.role;a&&se.has(a)||t.set(n.mailboxId,n.highWaterMarkUid)}return t},q=(e,s)=>{const t=[];for(const[n,a]of s)a>(e.get(n)??0)&&t.push(n);return t},re=(e,s)=>q(e,s).length>0,F=o.createContext(null),ne=()=>{const e=o.useContext(F);if(!e)throw new Error("useMailFreshness must be used inside <MailFreshnessProvider>");return e};function Ee({accountIds:e,children:s}){const t=N(),{resultFolderIndex:n}=G(),a=o.useRef(new Map),u=o.useRef(new Set),c=o.useRef(new Map),[i,r]=o.useState(new Set),h=L({queries:e.map(l=>({...R({path:{accountId:l}}),refetchInterval:T,staleTime:T,meta:{softError:!0}}))}),S=h.map(l=>l.dataUpdatedAt).join(","),w=e.join(",");o.useEffect(()=>{let l=!1;const f=new Set(i);e.forEach((d,p)=>{const b=h[p]?.data;if(!b)return;const g=_(b.mailboxes??[],n),v=c.current.get(d);if(c.current.set(d,g),v){const A=q(v,g);A.length>0&&$(t,z(A))}if(!u.current.has(d)){u.current.add(d),a.current.set(d,g);return}if(f.has(d))return;const W=a.current.get(d)??new Map;re(W,g)&&(f.add(d),l=!0)}),l&&r(f)},[w,S]);const y=o.useCallback(l=>l.some(f=>i.has(f)),[i]),x=o.useCallback(l=>{r(f=>{if(l.every(p=>!f.has(p)))return f;const d=new Set(f);for(const p of l)d.delete(p);return d});for(const f of l){const d=t.getQueryData(R({path:{accountId:f}}).queryKey);a.current.set(f,_(d?.mailboxes??[],n)),u.current.add(f)}},[t,n]),m=o.useMemo(()=>({hasNewMail:y,acknowledge:x}),[y,x]);return E.jsx(F.Provider,{value:m,children:s})}const oe=new Set(["discovering_mailboxes","syncing_inbox","syncing_others"]);function j(e){return!!e&&oe.has(e)}const D=3e3,ae=D*2,C={syncing:!1,resolved:!1,synced:0,total:0};function be(e,s){const t=e.join(","),[n,a]=o.useState(!1),[u,c]=o.useState(!1);o.useEffect(()=>{a(!1),c(!1)},[t,s]),o.useEffect(()=>{if(!s)return;const m=setTimeout(()=>c(!0),ae);return()=>clearTimeout(m)},[t,s]);const i=L({queries:e.map(m=>({...R({path:{accountId:m}}),enabled:s&&!n,refetchInterval:D,meta:{softError:!0}}))}),r=i.every(m=>m.isSuccess||m.isError),h=i.length===0||r||u;let S=!1,w=0,y=0;for(const m of i)if(j(m.data?.syncPhase)){S=!0;for(const l of m.data?.mailboxes??[])w+=l.messagesSynced,y+=l.messagesTotal}const x=s&&h&&!S;return o.useEffect(()=>{x&&a(!0)},[x]),!s||!h?C:{syncing:S,resolved:!0,synced:w,total:y}}const ie=2e3,ce=45e3,ue=e=>new Promise(s=>setTimeout(s,e)),k=e=>e instanceof Error&&e.message?e.message:"Something went wrong",le=e=>{V(e,{softError:!0},"user")&&J(e)},O=(e,s)=>e.fetchQuery({...R({path:{accountId:s}}),staleTime:0}),H=e=>e.mailboxes?.find(s=>s.fullPath?.toUpperCase()==="INBOX")?.lastSyncedAt??0,fe=async({accountId:e,readStatus:s,baselineLastSyncAt:t,baselineInboxSyncedAt:n=0,onInboxSynced:a,deadline:u,pollMs:c=ie})=>{let i=!1;for(;;){const r=await s().then(y=>({ok:!0,data:y})).catch(y=>({ok:!1,error:y}));if(!r.ok)return{accountId:e,message:k(r.error)};const{syncPhase:h,lastSyncAt:S}=r.data;if((S??0)>t&&!j(h))return h==="error"?{accountId:e,message:"Sync failed for this account"}:void 0;if(!i&&H(r.data)>n&&(i=!0,a?.()),Date.now()>=u)return{accountId:e,message:"Refresh is taking longer than usual"};await ue(c)}},de=async(e,s,t,n,a)=>{const u=await O(e,t).then(r=>({ok:!0,lastSyncAt:r.lastSyncAt??0,inboxSyncedAt:H(r)})).catch(r=>({ok:!1,error:r}));if(!u.ok)return{accountId:t,enqueued:!1,ok:!1,message:k(u.error)};const c=await I({path:{accountId:t},throwOnError:!0}).then(()=>({ok:!0})).catch(r=>({ok:!1,error:r}));if(!c.ok)return le(c.error),{accountId:t,enqueued:!1,ok:!1,message:k(c.error)};s.recordEvent("sync.triggered");const i=await fe({accountId:t,readStatus:()=>O(e,t),baselineLastSyncAt:u.lastSyncAt,baselineInboxSyncedAt:u.inboxSyncedAt,onInboxSynced:()=>a(t),deadline:n});return i?{accountId:t,enqueued:!0,ok:!1,message:i.message}:{accountId:t,enqueued:!0,ok:!0}},Re=(e,s={})=>{const t=N(),n=B(),{acknowledge:a}=ne(),[u,c]=o.useState("idle"),[i,r]=o.useState(),h=o.useRef(0),S=o.useRef(e);S.current=e;const w=o.useRef(s);w.current=s,o.useEffect(()=>{if(u!=="success")return;const x=setTimeout(()=>c("idle"),2e3);return()=>clearTimeout(x)},[u]);const y=o.useCallback(()=>{const x=S.current;if(x.length===0){c("error"),r("Nothing to refresh yet");return}const m=++h.current;c("refreshing"),r(void 0),te();const l=f=>{h.current===m&&(t.invalidateQueries({queryKey:X({path:{accountId:f}})}),w.current.onSettled?.())};(async()=>{const f=Date.now()+ce,d=await Promise.all(x.map(g=>de(t,n,g,f,l)));if(h.current!==m)return;const p=d.filter(g=>g.enqueued).map(g=>g.accountId);for(const g of p)l(g);p.length>0&&a(p);const b=d.filter(g=>!g.ok);b.length===0?c("success"):(c("error"),r(b[0]?.message))})()},[a,t,n]);return{state:u,errorMessage:i,refresh:y}};export{we as H,Ee as M,ye as R,Re as a,j as b,be as c,xe as i,pe as s,ne as u};