@remit/web-client-dist 0.0.602 → 0.0.604

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 (153) hide show
  1. package/assets/{BriefPane-t0EO91sV.js → BriefPane-CYm_AEG4.js} +1 -1
  2. package/assets/{CalendarComposePane-Bfv_vOeX.js → CalendarComposePane-B23vvL8I.js} +1 -1
  3. package/assets/{CalendarComposeSeed-ZTEDOXHF.js → CalendarComposeSeed-B5WkofBy.js} +1 -1
  4. package/assets/{CalendarShell-D02LC6Tf.js → CalendarShell-CQqBgd9B.js} +1 -1
  5. package/assets/{EmptyState-DkgCK4Wp.js → EmptyState-B9pkVhU5.js} +1 -1
  6. package/assets/{ErrorState-GkgMnN3x.js → ErrorState-BiEmk4z3.js} +1 -1
  7. package/assets/{FlaggedPane-BR601E-Z.js → FlaggedPane-Cp7RDXy9.js} +1 -1
  8. package/assets/{FullCompose-Dv6q6-jX.js → FullCompose-afKeyiWi.js} +1 -1
  9. package/assets/{MailListHeader-BZ3PXB6W.js → MailListHeader-6Iecj4Fq.js} +2 -2
  10. package/assets/MailNav--9SdZscR.js +1 -0
  11. package/assets/{MailShell-8eD6wa4a.js → MailShell-C9GMDI8n.js} +1 -1
  12. package/assets/{MailViewChrome-1QOtBYvo.js → MailViewChrome-34tzhRe2.js} +1 -1
  13. package/assets/{MailboxPane-CavS0LWG.js → MailboxPane-Baks-0HI.js} +1 -1
  14. package/assets/{NavMenuButton-CMmV0Qb9.js → NavMenuButton-CjFmU84b.js} +1 -1
  15. package/assets/{OnboardingWizard-DZ9go-QO.js → OnboardingWizard-MHcsIno_.js} +1 -1
  16. package/assets/{OpenCalendarEvent-BNxMWBMa.js → OpenCalendarEvent-Cx6uKajs.js} +1 -1
  17. package/assets/{OutboxPane-JWvdTVow.js → OutboxPane-Fp-9sbCP.js} +1 -1
  18. package/assets/_calendarObjectId-BhMCiQ2P.js +1 -0
  19. package/assets/_mailboxId-DAZrVwFN.js +1 -0
  20. package/assets/_messageId-BCFNyReS.js +1 -0
  21. package/assets/_messageId-BDnysqvL.js +1 -0
  22. package/assets/_messageId-D_oLfL3X.js +1 -0
  23. package/assets/_outboxMessageId-BccSjdOY.js +1 -0
  24. package/assets/_recurrenceId-c8zrElZC.js +1 -0
  25. package/assets/_threadId-B3ZvCxGp.js +1 -0
  26. package/assets/_threadId-CJk0N6qV.js +1 -0
  27. package/assets/_threadId-Da_FxHdv.js +1 -0
  28. package/assets/_view._date-Dggzu-4H.js +1 -0
  29. package/assets/{accounts-gnXSDMff.js → accounts-QfJFQQGs.js} +1 -1
  30. package/assets/{advanced-CwOqbWks.js → advanced-D5TmAyjq.js} +1 -1
  31. package/assets/{appearance-CO8ZlUsf.js → appearance-B8HBbATx.js} +1 -1
  32. package/assets/{attachment-file-CMKD6t7v.js → attachment-file-CH02b4Io.js} +1 -1
  33. package/assets/{attendee-row-CI09yAOz.js → attendee-row-BB_mx6i5.js} +1 -1
  34. package/assets/{avatar-Bqa5NnO-.js → avatar-tyv2luI2.js} +1 -1
  35. package/assets/bell-off-BpZGaEGA.js +1 -0
  36. package/assets/{bottom-sheet-DNuOuroV.js → bottom-sheet-BiWaqNWS.js} +1 -1
  37. package/assets/brief-Ch0ttGY1.js +1 -0
  38. package/assets/{brief-CU46HJfL.js → brief-D1m_7-4H.js} +1 -1
  39. package/assets/{browser-ponyfill-ByMBxAzG.js → browser-ponyfill-rmPZIgLP.js} +1 -1
  40. package/assets/{bug-khWlm5TF.js → bug-ecZVkIdj.js} +1 -1
  41. package/assets/calendar-CmcOkJ5E.js +1 -0
  42. package/assets/{calendar-color-BXg6iHq_.js → calendar-color-2KYWPrC3.js} +1 -1
  43. package/assets/{calendar-event-chip-CcsqSJUN.js → calendar-event-chip-CfieyzH_.js} +1 -1
  44. package/assets/{calendars-C4pJbsW-.js → calendars-MOrIPgRm.js} +1 -1
  45. package/assets/{card-C_OhmQqw.js → card-3TPo74F9.js} +1 -1
  46. package/assets/chevron-left-Cl0MkAt1.js +1 -0
  47. package/assets/{circle-check-3iZEfca_.js → circle-check-BaWkfvRI.js} +1 -1
  48. package/assets/{circle-check-big-en3g1grN.js → circle-check-big-C6CHpdFE.js} +1 -1
  49. package/assets/{circle-help-O1zDhzuD.js → circle-help-DTv0wtfG.js} +1 -1
  50. package/assets/{clock-BMYb_CC3.js → clock-yL6vGbYH.js} +1 -1
  51. package/assets/compose._-_outboxMessageId_-C2CsHFWF.js +1 -0
  52. package/assets/compose._-_outboxMessageId_-C6eGZTWX.js +1 -0
  53. package/assets/compose._-_outboxMessageId_-CrPpto3k.js +1 -0
  54. package/assets/compose._-_outboxMessageId_-kaVD5IgD.js +1 -0
  55. package/assets/{config-import-D4MXknhN.js → config-import-O6ftUwFi.js} +1 -1
  56. package/assets/{confirm-dialog-BZagPyIQ.js → confirm-dialog-Da8x865r.js} +1 -1
  57. package/assets/{copy-bKXKY1zl.js → copy-CoDomZMo.js} +1 -1
  58. package/assets/{credential-steps-CI326AY-.js → credential-steps-BN6xEa42.js} +1 -1
  59. package/assets/{download-CSBgmvt3.js → download-Bpxx9DAB.js} +1 -1
  60. package/assets/{file-json-BSx5568H.js → file-json-Brz_3JtS.js} +1 -1
  61. package/assets/{filters-D9GaxxoK.js → filters-BMBy1KxA.js} +1 -1
  62. package/assets/{flagged-leCOSAYc.js → flagged-BOVpShMV.js} +1 -1
  63. package/assets/flagged-rnkhCbWD.js +1 -0
  64. package/assets/{folders-C1hh_ljP.js → folders-BZKOeZol.js} +1 -1
  65. package/assets/{help-copy-B3sD9WJy.js → help-copy-ConBnJdF.js} +1 -1
  66. package/assets/{import-BO0gjADH.js → import-BWLNUdhH.js} +1 -1
  67. package/assets/index--P6-65Al.js +1 -0
  68. package/assets/index-BCFNyReS.js +1 -0
  69. package/assets/index-BMR7jL4x.js +1 -0
  70. package/assets/{index-BSGRGDZa.js → index-BWtUtQvO.js} +4 -4
  71. package/assets/index-Bt9qWikf.js +1 -0
  72. package/assets/index-C8lYQOg_.js +1 -0
  73. package/assets/{index-g6Ysn83c.js → index-CSwUr62M.js} +4 -4
  74. package/assets/index-DOcIGPJO.js +1 -0
  75. package/assets/index-DbtactQm.js +1 -0
  76. package/assets/index-DjsfwWXb.js +1 -0
  77. package/assets/index-NtZnL4Jv.js +1 -0
  78. package/assets/{index-BnFfIWJb.js → index-c8xgqqE2.js} +1 -1
  79. package/assets/{kbd-9Cu7VU56.js → kbd-C-T8vSQy.js} +1 -1
  80. package/assets/{labels-Dwty8unR.js → labels-Cne-BKFZ.js} +1 -1
  81. package/assets/{mail-BA_NKVwS.js → mail-39eDF9ju.js} +1 -1
  82. package/assets/mail-DhXIIGky.js +1 -0
  83. package/assets/{map-pin-B2UY4lGr.js → map-pin-T36_HD7-.js} +1 -1
  84. package/assets/{menu-BdJaKtZ2.js → menu-Dr6JciW-.js} +1 -1
  85. package/assets/{new-CchC-xEV.js → new-CI5GD9SG.js} +1 -1
  86. package/assets/{onboarding-completion-DMKkihlz.js → onboarding-completion-9MX_ZjCG.js} +1 -1
  87. package/assets/onboarding-de2uZDBF.js +1 -0
  88. package/assets/outbox-DxqUPAjF.js +1 -0
  89. package/assets/{pencil-IhKU49nk.js → pencil-DPL0ZPdo.js} +1 -1
  90. package/assets/{refresh-cw-jcYn-rcX.js → refresh-cw-DSNcdEbR.js} +1 -1
  91. package/assets/{rich-text-Bm39uhDY.js → rich-text-P4vz8Anf.js} +1 -1
  92. package/assets/{rich-text-spellcheck-worker-provider-DdP5vrY0.js → rich-text-spellcheck-worker-provider-BRM8RYhs.js} +1 -1
  93. package/assets/{rotate-ccw-BI_m6m8p.js → rotate-ccw-BGn_uDhL.js} +1 -1
  94. package/assets/{roving-focus-DNlde3CG.js → roving-focus-ZtlrBVPR.js} +1 -1
  95. package/assets/{row-actions-LFbQpxc-.js → row-actions-B9MuKZEk.js} +1 -1
  96. package/assets/{search-mirror-ChuiTEcO.js → search-mirror-CXWoBjSS.js} +1 -1
  97. package/assets/{search-token-index-CeWCvnzE.js → search-token-index-hFGbNR0D.js} +1 -1
  98. package/assets/{sections-CrqtLp8d.js → sections-hjwhYmx4.js} +1 -1
  99. package/assets/{senders-BTs3jV-6.js → senders-JX6TPMh-.js} +1 -1
  100. package/assets/settings-VA_nIIGF.js +1 -0
  101. package/assets/{settings-screen-BCmmxlGb.js → settings-screen-DizzF65C.js} +1 -1
  102. package/assets/{shield-check-Cag1BlzT.js → shield-check-C7ZYuFhj.js} +1 -1
  103. package/assets/{suggested-vips-6TbCAwuT.js → suggested-vips-De0h02OD.js} +1 -1
  104. package/assets/{useCalendarData-DbNfuESG.js → useCalendarData-DXxjZv94.js} +1 -1
  105. package/assets/{useCalendars-CwcxjEXe.js → useCalendars-D8rfnd6B.js} +1 -1
  106. package/assets/{useDebouncedValue-BBnNHoN_.js → useDebouncedValue-Cbtvs2J7.js} +1 -1
  107. package/assets/{useFilters-BCMsg-qz.js → useFilters-CuCzzhR6.js} +1 -1
  108. package/assets/{useLabels-DmYxpu0-.js → useLabels-DSMnNCm7.js} +1 -1
  109. package/assets/useLayoutTier-DcK1MT3Q.js +1 -0
  110. package/assets/{useMessageBodyContent-Zu7uJcxj.js → useMessageBodyContent-BosolkAC.js} +1 -1
  111. package/assets/{useQueries-YhhqTY2e.js → useQueries-CghNtHCD.js} +1 -1
  112. package/assets/{useRefreshControl-CvkvCP1v.js → useRefreshControl-2rhopdTL.js} +1 -1
  113. package/assets/{useResultFolderIndex-DNqFGMI-.js → useResultFolderIndex-D87KwwJs.js} +1 -1
  114. package/assets/{useSearchTokenContext-DpXTBfWn.js → useSearchTokenContext-BiyVZvqa.js} +1 -1
  115. package/assets/{useSemanticSearch-Cy4kDW--.js → useSemanticSearch-ta2mFIph.js} +1 -1
  116. package/assets/{useSignature-BxZIXZMO.js → useSignature-CFeNHmnv.js} +1 -1
  117. package/assets/{window-8yDNCThJ.js → window-lwa3VWUz.js} +1 -1
  118. package/index.html +1 -1
  119. package/package.json +1 -1
  120. package/assets/MailNav-B4mg7qGW.js +0 -1
  121. package/assets/_calendarObjectId-CG3Mqjvh.js +0 -1
  122. package/assets/_mailboxId-C802NBmf.js +0 -1
  123. package/assets/_messageId--nKdXBOI.js +0 -1
  124. package/assets/_messageId-CdEE1EGJ.js +0 -1
  125. package/assets/_messageId-VWgVT_br.js +0 -1
  126. package/assets/_outboxMessageId-Bec3V1y6.js +0 -1
  127. package/assets/_recurrenceId-FbX4KMVd.js +0 -1
  128. package/assets/_threadId-7nuXFRsy.js +0 -1
  129. package/assets/_threadId-ByaPOTJY.js +0 -1
  130. package/assets/_threadId-Dv9_uws3.js +0 -1
  131. package/assets/_view._date-DH7agEH5.js +0 -1
  132. package/assets/brief-DaF4gu_4.js +0 -1
  133. package/assets/calendar-D3NUvPtw.js +0 -1
  134. package/assets/chevron-left-CmP0y0Gi.js +0 -1
  135. package/assets/compose._-_outboxMessageId_-BitaITQo.js +0 -1
  136. package/assets/compose._-_outboxMessageId_-CbHr1CKC.js +0 -1
  137. package/assets/compose._-_outboxMessageId_-DNSeMFid.js +0 -1
  138. package/assets/compose._-_outboxMessageId_-Mj3uiEyH.js +0 -1
  139. package/assets/flagged-DP6I9yjI.js +0 -1
  140. package/assets/index-BHjH6f0z.js +0 -1
  141. package/assets/index-BYbII-pi.js +0 -1
  142. package/assets/index-BcLTNXbj.js +0 -1
  143. package/assets/index-CUinr3rP.js +0 -1
  144. package/assets/index-CdEE1EGJ.js +0 -1
  145. package/assets/index-CfFAdJ9k.js +0 -1
  146. package/assets/index-DWdY3rJg.js +0 -1
  147. package/assets/index-DZavyFf6.js +0 -1
  148. package/assets/index-VWgVT_br.js +0 -1
  149. package/assets/mail-C5cxaAqn.js +0 -1
  150. package/assets/onboarding-BDawmbvE.js +0 -1
  151. package/assets/outbox-lcZTJpkk.js +0 -1
  152. package/assets/settings-Dq_oj-Eh.js +0 -1
  153. package/assets/useLayoutTier-DK2y5Cq_.js +0 -1
@@ -1 +1 @@
1
- import{j as n,L as kt,W as Et,ev as We,ew as ne,dX as re,r,c as $e,C as ie,bl as Ot,cN as At,K as Ft,dN as Nt,ex as Bt,ey as Lt,a0 as Ye,ee as qt,ez as _t,ak as Dt,cZ as Pt,c_ as Qt}from"./index-g6Ysn83c.js";import{g as Ve,e as zt,f as Ze,u as Ht,p as Kt,R as Ut}from"./useSearchTokenContext-DpXTBfWn.js";import{a8 as Gt,A as Wt,E as $t,ak as Yt,al as Vt,am as Zt,an as De,ao as Jt,ap as Xt,a7 as es,aq as ts,ar as ss,as as os,af as ns,M as rs,at as as,ag as is,au as cs,av as ls,e as ds,p as us,ai as fs,m as ms,S as hs,J as gs,O as Pe,N as ps,K as xs,d as Is,Y as ys,Z as vs,$ as Je,a0 as Xe,a1 as bs,a2 as Ss,a3 as Cs}from"./MailListHeader-BZ3PXB6W.js";import{u as Ts,a as ws,R as Rs,b as Ms,c as js}from"./useRefreshControl-CvkvCP1v.js";import{u as ae}from"./useQueries-YhhqTY2e.js";import{t as et,s as ks,u as Es,r as Os,L as As}from"./useSemanticSearch-Cy4kDW--.js";import{a as Fs}from"./useLabels-DmYxpu0-.js";import{u as Ns}from"./useLayoutTier-DK2y5Cq_.js";import{d as Bs,w as Ls}from"./wizard-selection-DxUM65kM.js";import{o as qs,g as _s,h as Ds}from"./search-token-index-CeWCvnzE.js";import{u as tt}from"./sections-CrqtLp8d.js";import{R as Ps}from"./refresh-cw-jcYn-rcX.js";import{a as Qs}from"./useMessageBodyContent-Zu7uJcxj.js";function zs({sync:e}){return e?n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",role:"status","aria-live":"polite",children:[n.jsx(kt,{className:"size-8 animate-spin text-fg-subtle","aria-hidden":"true"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"Still syncing your mail"}),n.jsx("p",{className:"text-xs text-fg-subtle",children:Hs(e)})]}):n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[n.jsx(Et,{className:"size-8 text-fg-subtle","aria-hidden":"true"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),n.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]})}function Hs({synced:e,total:t}){return t>0?`${e.toLocaleString()} of ${t.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const st=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],ot="category",Ks={unclassified:"uncategorized"},K=e=>zt(e).map(t=>t.raw),H=e=>e.join(" "),Ie=e=>{const t=Ze(e);if(t)return st.find(s=>s.name===t.name&&s.value===t.value.toLowerCase())?.id},ye=e=>{const t=Ze(e);if(!t||t.name!==ot)return;const s=t.value.toLowerCase(),a=Ks[s];if(a)return a;if(!(!We(s)||s==="all"))return s},nt=e=>st.find(t=>t.id===e),rt=e=>nt(e)!==void 0,Us=e=>{const t=new Set;for(const s of K(e)){const a=Ie(s);a&&t.add(a)}return t},Gs=e=>{let t="all";for(const s of K(e)){const a=ye(s);a&&(t=a)}return t},Ws=(e,t)=>{const s=nt(t);if(!s)return;const a=K(e),i=a.filter(c=>Ie(c)!==t);return i.length<a.length?H(i):H([...a,Ve(s.name,s.value)])},$s=(e,t)=>{const s=K(e).filter(a=>!ye(a));return H(t==="all"?s:[...s,Ve(ot,t)])},Ys=e=>H(K(e).filter(t=>!Ie(t)&&!ye(t))),at=e=>e.trim().length>0,Qe=e=>{if(!at(e.query))return e.ownFilters;const t=new Set(Us(e.query));for(const s of e.ownFilters)rt(s)||t.add(s);return t},ze=e=>at(e.query)?Gs(e.query):e.ownCategory,He=6e4,Vs=3e4,Zs={kind:"unknown"},Ke=e=>(t,s)=>Gt(s?.queryKey,e)?t:void 0,Js=(e,t,s)=>({...e,category:[t],limit:s,order:"desc"}),Xs=(e,t)=>({...e,category:[t],order:"desc",count:!0,results:!1}),Ue=(e,t)=>({category:[t],...e.unread!==void 0?{unread:e.unread}:{},...e.starred!==void 0?{starred:e.starred}:{},...e.attachments!==void 0?{attachments:e.attachments}:{},...e.accountId!==void 0?{accountId:e.accountId}:{},...e.muted!==void 0?{muted:e.muted}:{}});function eo({categories:e,criteria:t,limit:s,counted:a}){const i=ae({queries:e.map(u=>{const h=Js(t,u,s),m=Ue(t,u);return{queryKey:re({query:h}),queryFn:async()=>{const{data:v}=await ne({query:h,throwOnError:!0});return v},placeholderData:Ke(m),staleTime:He}})}),c=ae({queries:e.map(u=>{const h=Xs(t,u),m=Ue(t,u);return{queryKey:re({query:h}),queryFn:async()=>{const{data:v}=await ne({query:h,throwOnError:!0});return v},enabled:a,placeholderData:Ke(m),staleTime:He}})}),d=r.useMemo(()=>e.map((u,h)=>{const m=i[h],v=c[h],p=m?.data?.items??[];return{category:u,rows:p,atCap:p.length>=s,total:a?et(v?.data?.count):Zs,loading:m?.isPending??!0,failed:m?.isError??!1,retry:()=>{m?.refetch(),a&&v?.refetch()}}}),[e,i,c,a,s]),l=r.useCallback(()=>{for(const u of i)u.refetch();for(const u of c)u.refetch()},[i,c]);return{sections:d,isLoading:i.length>0&&i.every(u=>u.isPending),isError:i.length>0&&i.every(u=>u.isError),refetch:l}}function to(e,t,s){const a={...e,limit:t,order:"desc"},{data:i,isLoading:c,isError:d,refetch:l}=$e({queryKey:re({query:a}),queryFn:async()=>{const{data:h}=await ne({query:a,throwOnError:!0});return h},enabled:s,staleTime:Vs});return{rows:r.useMemo(()=>s?i?.items??[]:[],[i,s]),isLoading:s&&c,isError:s&&d,refetch:r.useCallback(()=>{l()},[l])}}const so=3e4,oo={kind:"unknown"},no=(e,t)=>({...e,mailboxId:t,order:"desc",count:!0,results:!1});function ro({criteria:e,junkMailboxIds:t,enabled:s}){const a=ae({queries:t.map(i=>{const c=no(e,i);return{queryKey:re({query:c}),queryFn:async()=>{const{data:d}=await ne({query:c,throwOnError:!0});return d},enabled:s,staleTime:so}})});return r.useMemo(()=>t.map((i,c)=>({mailboxId:i,count:s?et(a[c]?.data?.count):oo,failed:s?a[c]?.isError??!1:!1})),[t,a,s])}const ao=(e,t)=>e.createdAt!==t.createdAt?e.createdAt-t.createdAt:e.accountId.localeCompare(t.accountId),io=e=>[...e].sort(ao),co=["from","subject","category","unread","starred","attachments"],it=["contacts","today"],lo=e=>new Set(it.filter(t=>e.has(t))),uo=(e,t,s,a)=>{const i=Wt({category:e,attributes:t}),{params:c,residual:d}=$t(s,i,co),l={...c,...i},u={muted:!1};return l.from!==void 0&&(u.from=l.from),l.subject!==void 0&&(u.subject=l.subject),l.unread!==void 0&&(u.unread=l.unread),l.starred!==void 0&&(u.starred=l.starred),l.attachments!==void 0&&(u.attachments=l.attachments),a!==void 0&&(u.accountId=a),{criteria:u,residual:d}},fo=({residual:e,attributes:t})=>e.length===0&&!it.some(s=>t.has(s)),se=e=>e.count.kind==="exact"&&e.count.value>0?3:e.pageRows>0?2:e.count.kind==="unknown"?1:0,oe=e=>e.count.kind==="exact"?e.count.value:0,mo=(e,t)=>se(e)!==se(t)?se(e)>se(t):oe(e)!==oe(t)?oe(e)>oe(t):e.pageRows>t.pageRows;function ho(e,{pageRowsByMailbox:t}){const s=e.map(m=>({...m,pageRows:t.get(m.mailboxId)??0}));for(const[m,v]of t)v<=0||s.some(p=>p.mailboxId===m)||s.push({mailboxId:m,count:{kind:"unknown"},failed:!1,pageRows:v});const a=s[0];if(!a)return;let i=0,c=!0,d=a;for(const m of s)m.count.kind==="unknown"?c=!1:i+=m.count.value,mo(m,d)&&(d=m);const l=s.some(m=>m.pageRows>0),u=s.some(m=>m.failed);if(i===0&&!l&&(c||!u))return;const h=c&&i===0&&l;return{mailboxId:d.mailboxId,count:c&&!h?{kind:"exact",value:i}:{kind:"unknown"}}}const go=50,po=200,xo=[],Ge=()=>n.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,t)=>n.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[n.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),n.jsxs("div",{className:"flex-1 space-y-1.5",children:[n.jsxs("div",{className:"flex justify-between gap-2",children:[n.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),n.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),n.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),n.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},t))}),Io=({accountEmail:e})=>{const t=tt();return n.jsxs("div",{className:"flex items-center gap-2 px-row-inset py-2 border-b border-line bg-danger-soft/40 text-xs text-danger",children:[n.jsx(Ye,{className:"size-3.5 shrink-0"}),n.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),n.jsx("button",{type:"button",onClick:()=>t("accounts"),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},yo=(e,t)=>{if(t.size===0)return{};const s=e.filter(c=>t.has(c.id)),a=Os(s.map(c=>c.accountId));if(a.restriction)return a;const i=new Set;for(const c of s)c.mailboxId&&i.add(c.mailboxId);return i.size>1?{accountId:a.accountId,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${i.size} folders`}:{accountId:a.accountId,mailboxId:i.size===1?[...i][0]:void 0}};function vo({header:e,rows:t,wizard:s,children:a}){const{selectedIds:i,selectedCount:c,exitSelection:d,orderedIds:l,allSelected:u,toggleAllLoaded:h}=ls(),m=r.useMemo(()=>yo(t,i),[t,i]),{junkMailboxId:v}=ds(m.accountId),{labels:p}=Fs(m.accountId),b=r.useMemo(()=>Array.from(i),[i]),L=r.useMemo(()=>Ls(t,i),[t,i]),x=us(v,m.mailboxId),S=r.useMemo(()=>l.length>0?{checked:u,indeterminate:c>0&&!u,onChange:h}:void 0,[l.length,u,c,h]),F=m.moveDisabledHint?{tone:"warning",text:m.moveDisabledHint}:void 0,C=M=>n.jsx(hs,{title:M.title,navSlot:M.navSlot,titleMeta:M.titleMeta,searchSlot:M.searchSlot,searchField:M.searchField,idleSlot:M.makeFilterSlot,count:c,onCancel:d,onDelete:()=>s.start("delete"),onMove:()=>s.start("move"),onOrganize:()=>s.start("organize"),onJunk:x?()=>s.start("junk"):void 0,onMarkRead:()=>s.start("markRead"),overflowSlot:m.accountId&&m.mailboxId&&c>0&&p.length>0?n.jsx(As,{accountId:m.accountId,mailboxId:m.mailboxId,messageIds:b}):void 0,selectAll:S,notice:F});return n.jsx(fs,{...e,selectionBar:C,paneOverlay:n.jsx(ms,{verb:s.verb,accountId:m.accountId,mailboxId:m.mailboxId,selection:L,selectionRestriction:m.restriction,onFinished:d}),children:a})}function bo({accounts:e,selectedMessageId:t,onOpenThread:s,commandsRef:a,onTriageContextChange:i,onDeleteMessages:c}){const{searchQuery:d,searchInput:l,resultFolderIndex:u,onSearchChange:h}=ie(),m=Ht(),v=Ot(),p=Ns(),b=At(),L=qs(),x=r.useMemo(()=>io(e.filter(o=>!o.muted?.value)),[e]),[S,F]=r.useState("all"),[C,M]=r.useState("all"),[N,q]=r.useState(new Set),[le,j]=r.useState(!1),_=r.useCallback(o=>{q(f=>{const g=new Set(f);return g.has(o)?g.delete(o):g.add(o),g})},[]),U=r.useCallback(()=>q(new Set),[]),E=l.trim().length>0,{freeText:w,tokens:D}=Kt(d.trim().toLowerCase(),m),y=w.length>0,P=r.useMemo(()=>Qe({query:l,ownFilters:N}),[l,N]),Q=r.useMemo(()=>ze({query:l,ownCategory:C}),[l,C]),A=r.useMemo(()=>Qe({query:d,ownFilters:N}),[d,N]),T=r.useMemo(()=>ze({query:d,ownCategory:C}),[d,C]),I=r.useCallback(o=>{if(!E||!rt(o)){_(o);return}const f=Ws(l,o);f!==void 0&&h(f)},[E,l,h,_]),k=r.useCallback(o=>{if(!E){M(o);return}h($s(l,o))},[E,l,h]),de=r.useMemo(()=>T==="all"&&!y?o=>{We(o)&&k(o)}:void 0,[T,y,k]),ue=r.useCallback(()=>{M("all"),F("all"),U(),E&&h(Ys(l))},[E,l,h,U]),G=ae({queries:x.map(o=>({...Ft({path:{accountId:o.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),W=r.useMemo(()=>{const o=new Map;for(let f=0;f<x.length;f++){const g=x[f].accountId,te=(G[f]?.data?.items??[]).reduce((O,jt)=>O+(jt.unseenCount??0),0);o.set(g,te)}return o},[x,G]),dt=r.useMemo(()=>x.filter((o,f)=>{const g=G[f];return g?.isError?!Nt(g.error):!1}),[x,G]),{criteria:fe,residual:$}=r.useMemo(()=>uo(T,A,D,S==="all"?void 0:S),[T,A,D,S]),ut=r.useMemo(()=>T==="all"?[...Yt]:[T],[T]),ve=r.useMemo(()=>({...fe,query:w,...T==="all"?{}:{category:[T]}}),[fe,w,T]),be=fo({residual:$,attributes:A}),{sections:Y,isLoading:ft,isError:mt,refetch:Se}=eo({categories:y?xo:ut,criteria:fe,limit:T==="all"?cs:go,counted:be}),{rows:Ce,isLoading:ht,isError:gt,refetch:Te}=to(ve,po,y),me=y?ht:ft,we=y?gt:mt,Re=r.useCallback(()=>{if(y){Te();return}Se()},[y,Te,Se]),Me=r.useMemo(()=>lo(A),[A]),V=r.useCallback(o=>Bs(o).map(Vt).filter(f=>Bt(f,Me)&&Zt(f,$)),[Me,$]),Z=r.useMemo(()=>Y.map(o=>({category:o.category,total:o.total,atCap:o.atCap,loading:o.loading,failed:o.failed,rows:V(o.rows)})),[Y,V]),J=r.useMemo(()=>V(Ce),[Ce,V]),pt=r.useCallback(o=>{Y.find(f=>f.category===o)?.retry()},[Y]),R=r.useMemo(()=>y?J:Z.flatMap(o=>o.rows),[y,J,Z]),xt=r.useMemo(()=>Lt(u),[u]),je=ro({criteria:ve,junkMailboxIds:xt,enabled:be&&ks({hasSearchQuery:y,freeText:w,residualTokenCount:$.length})}),{spamIds:he,briefSpamOffer:X}=r.useMemo(()=>{const o={spamIds:void 0,briefSpamOffer:void 0};if(!w)return o;const f=R.map(O=>De(O,u)),{spam:g}=Jt(f),B=new Map;for(const O of g)O.mailboxId&&B.set(O.mailboxId,(B.get(O.mailboxId)??0)+1);const te=ho(je,{pageRowsByMailbox:B});return g.length===0&&!te?o:{spamIds:g.length>0?new Set(g.map(O=>O.id)):void 0,briefSpamOffer:te}},[R,w,u,je]),ke=r.useMemo(()=>{const o=f=>he===void 0?f:f.filter(g=>!he.has(g.id));return y?[{id:"matches",threads:o(J)}]:Xt(Z.map(f=>({...f,rows:o(f.rows)})))},[y,J,Z,he]),Ee=r.useCallback((o,f)=>{const g=R.find(B=>B.id===o)?.threadId;g&&s?.({threadId:g,messageId:o},f)},[R,s]),It=r.useCallback(o=>{const f=o.threadId??R.find(g=>g.id===o.id)?.threadId;f&&s?.({threadId:f,messageId:o.id})},[R,s]),ge=r.useMemo(()=>x.length<=1?[]:[{id:"all",label:"All",active:S==="all"},...x.map(o=>({id:o.accountId,label:o.email.split("@")[0]??o.email,count:W.get(o.accountId),active:S===o.accountId}))],[x,W,S]),z=r.useMemo(()=>e.filter(o=>o.muted?.value).length,[e]),yt=r.useMemo(()=>Array.from(W.values()).reduce((o,f)=>o+f,0),[W]),pe=r.useMemo(()=>x.map(o=>o.accountId),[x]),{hasNewMail:Oe}=Ts(),{state:Ae,errorMessage:Fe,refresh:Ne}=ws(pe,{onSettled:()=>Re()}),vt=r.useMemo(()=>n.jsx(Rs,{state:Ae,onRefresh:Ne,label:"Refresh daily brief",errorMessage:Fe,hasUpdate:Oe(pe)}),[Ae,Ne,Fe,Oe,pe]),xe=r.useMemo(()=>R.map(o=>De(o,u)),[R,u]),{hits:Be,isLoading:bt}=Es(),St=r.useMemo(()=>{const o=new Map(R.map(g=>[g.id,g.threadId])),f=xe.map(g=>o.get(g.id)).filter(g=>g!=null);return es(Be,f,u)},[Be,xe,R,u]),Ct=r.useMemo(()=>{const o=ts(ge.map(f=>({id:f.id,label:f.label,count:f.count,active:f.active})));return{categories:o.categories,filters:o.filters,sources:o.sources,sourcesNote:z>0?`+${z} muted`:void 0,selectedCategory:Q,activeFilters:P,expanded:le,onExpandedChange:j,onSelectCategory:f=>k(f),onSelectSource:F,onToggleFilter:f=>I(f),onClear:ue}},[ge,z,Q,P,le,I,k,ue]),Le=ke.length===0&&S==="all"&&w.length===0&&D.length===0,Tt=r.useMemo(()=>x.map(o=>o.accountId),[x]),wt=r.useMemo(()=>x.some(o=>Ms(o.syncPhase)),[x]),ee=js(Tt,Le||wt),qe=n.jsxs("div",{className:"h-full overflow-y-auto",children:[n.jsx(Ge,{}),n.jsx(Ge,{})]}),_e=!me&&!we&&!Le,Rt=ss({tier:p,hasLiveInput:E,hasCommittedQuery:d.trim().length>0,bodyRendersCommittedResults:!0}),Mt=_e?n.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[X&&n.jsx(os,{count:X.count,onScopeToSpam:()=>L(X.mailboxId,d)}),n.jsx("div",{className:"min-h-0 flex-1",children:n.jsx(ns,{sections:ke,briefCategory:Q,Row:rs,selectedThreadId:t,onSelectThread:Ee,onShowAllSection:de,onRetrySection:pt,flat:y,onSelectBriefCategory:k,sources:ge,sourcesNote:z>0?`+${z} muted`:void 0,onSelectSource:F,activeFilters:P,onToggleFilter:I,onClearFilters:ue})})]}):me?qe:we?n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[n.jsx(Ye,{className:"size-8 text-danger"}),n.jsx("p",{children:"Couldn't load your messages"}),n.jsxs("button",{type:"button",onClick:()=>Re(),className:"flex items-center gap-1 text-accent underline text-xs",children:[n.jsx(Ps,{className:"size-3.5"}),"Try again"]})]}):ee.resolved?n.jsx(zs,{sync:ee.syncing?{synced:ee.synced,total:ee.total}:void 0}):qe;return n.jsx(qt,{hasSheet:_e&&!Rt,children:n.jsx(as,{selectedMessageId:t,rows:R,onOpen:Ee,onDeleteMessages:c,onSelectionVerb:b.start,commandsRef:a,onTriageContextChange:i,children:n.jsx(vo,{wizard:b,header:{title:"Daily brief",unreadCount:yt,footer:v?n.jsx(is,{}):void 0,searchFilter:Ct,searchResults:xe,searchLoading:me,relatedResults:St,relatedLoading:bt,onSelectSearchResult:It,spamOffer:X,searchResultsInBody:!0,refreshControl:vt},rows:R,children:n.jsxs("div",{className:"flex h-full flex-col",children:[dt.map(o=>n.jsx(Io,{accountEmail:o.email,accountId:o.accountId},o.accountId)),n.jsx("div",{className:"min-h-0 flex-1",children:Mt})]})})})})}const ct=r.createContext(null);function ce(){const e=r.useContext(ct);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function So({thread:e,children:t}){const s=_s(),a=Ds(),i=tt(),{searchInput:c}=ie(),d=e?.threadId,l=e?.messageId,{data:u}=$e({..._t(),staleTime:6e4}),h=r.useMemo(()=>u?.items??[],[u]),m=r.useMemo(()=>{if(d)return h.find(I=>I.messageId===l)??h.find(I=>I.threadId===d)},[h,d,l]),v=gs(d,l),p=m??v,b=l??p?.messageId,L=r.useMemo(()=>{if(d)return{threadId:d,mailboxId:p?.mailboxId??"",subject:p?.subject,messageId:b,authenticity:p?.authenticity}},[d,p,b]),x=r.useCallback((I,k)=>{s(I,{replace:k?.replace,query:c})},[s,c]),S=r.useCallback(I=>{b&&I.includes(b)&&a()},[b,a]),F=Pe({thread:p,isOpen:!0,onAfterOptimisticRemove:S}),C=ps(),{deleteMessages:M}=xs({mailboxId:p?.mailboxId??"",messages:h,onAfterOptimisticRemove:S}),{toggleReadFor:N}=Is({mailboxId:p?.mailboxId??"",messages:h}),q=C.focusedMessageId,j=r.useMemo(()=>h.find(I=>I.messageId===q),[h,q])??p,_=Pe({thread:j,isOpen:j?.messageId===b}),U=Qs(),E=Dt(),w=Pt(),D=r.useMemo(()=>Qt(w,d,b),[w,d,b]),y=r.useMemo(()=>{if(j)return I=>w({threadId:j.threadId,messageId:j.messageId,mode:I})},[w,j]),{nextMessageId:P,previousMessageId:Q}=ys({context:C,orderedIds:C.orderedIds,selectedMessageId:b,enabled:!U&&!E,hasOpenThread:d!==void 0,onClose:a,handlers:{reply:()=>y?.("reply"),replyAll:()=>y?.("reply-all"),forward:()=>y?.("forward"),delete:()=>{C.listCommandsRef.current?.requestVerb("delete")||_.deleteThread()},toggleStar:_.toggleStar,toggleRead:()=>{C.listCommandsRef.current?.requestVerb("markRead")||j&&N([j.messageId],!j.isRead)},goFlagged:()=>i("flagged"),goSettings:()=>i("settings")}}),A=r.useCallback(I=>{if(!I)return;const k=h.find(de=>de.messageId===I);return k?{threadId:k.threadId,messageId:I}:void 0},[h]),T={selectedMessageId:b,selectedThread:p,conversation:L,onOpenThread:x,onCloseThread:a,nextThread:A(P),previousThread:A(Q),actions:F,onReply:D,triage:C,onDeleteMessages:M,handleDeselectIfRemoved:S};return n.jsx(ct.Provider,{value:T,children:t})}function lt(){const{selectedMessageId:e,onOpenThread:t,triage:s,onDeleteMessages:a}=ce(),{accounts:i}=ie();return n.jsx(bo,{accounts:i,selectedMessageId:e,onOpenThread:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:a})}function Co(){const{conversation:e,selectedThread:t,actions:s,onReply:a,handleDeselectIfRemoved:i}=ce(),c=!!e,d=Ss(e?.threadId);return n.jsxs(n.Fragment,{children:[n.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsx(Cs,{hasThread:c,intelligenceOpen:d.isShowing,canToggleIntelligence:d.canToggle,onToggleIntelligence:d.toggle,onReply:a?()=>a("reply"):void 0,onReplyAll:a?()=>a("reply-all"):void 0,onForward:a?()=>a("forward"):void 0,onDelete:c?s.deleteThread:void 0,onToggleStar:c?s.toggleStar:void 0,isStarred:s.isStarred,moveContext:c&&s.accountId&&s.mailboxId?{accountId:s.accountId,currentMailboxId:s.mailboxId,onMove:s.moveThread}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?n.jsx(Je,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:d.open,listOnScreen:!0}):n.jsx(Ut,{})})]}),n.jsx(Xe,{isOpen:d.drawerOpen,onClose:d.closeDrawer,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:i})]})}function To(){const{selectedThread:e,handleDeselectIfRemoved:t}=ce(),{onToggleIntelligence:s}=ie();return n.jsx(bs,{onClose:s,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function wo(){const{selectedThread:e,conversation:t,onOpenThread:s,onCloseThread:a,nextThread:i,previousThread:c,handleDeselectIfRemoved:d}=ce(),l=vs(t?.threadId??null);return t?n.jsxs(n.Fragment,{children:[n.jsx(Je,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:a,onOpenIntelligence:l.toggle,onSwipeNext:i?()=>s(i):void 0,onSwipePrevious:c?()=>s(c):void 0,mobileIntelligenceOpen:l.isOpen}),n.jsx(Xe,{isOpen:l.isOpen,onClose:l.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:d})]}):n.jsx("div",{className:"h-full",children:n.jsx(lt,{})})}const Do=Object.assign(So,{List:lt,Reading:Co,Intelligence:To,Phone:wo});export{Do as B};
1
+ import{j as n,L as kt,W as Et,ev as We,ew as ne,dX as re,r,c as $e,C as ie,bl as Ot,cN as At,K as Ft,dN as Nt,ex as Bt,ey as Lt,a0 as Ye,ee as qt,ez as _t,ak as Dt,cZ as Pt,c_ as Qt}from"./index-CSwUr62M.js";import{g as Ve,e as zt,f as Ze,u as Ht,p as Kt,R as Ut}from"./useSearchTokenContext-BiyVZvqa.js";import{a8 as Gt,A as Wt,E as $t,ak as Yt,al as Vt,am as Zt,an as De,ao as Jt,ap as Xt,a7 as es,aq as ts,ar as ss,as as os,af as ns,M as rs,at as as,ag as is,au as cs,av as ls,e as ds,p as us,ai as fs,m as ms,S as hs,J as gs,O as Pe,N as ps,K as xs,d as Is,Y as ys,Z as vs,$ as Je,a0 as Xe,a1 as bs,a2 as Ss,a3 as Cs}from"./MailListHeader-6Iecj4Fq.js";import{u as Ts,a as ws,R as Rs,b as Ms,c as js}from"./useRefreshControl-2rhopdTL.js";import{u as ae}from"./useQueries-CghNtHCD.js";import{t as et,s as ks,u as Es,r as Os,L as As}from"./useSemanticSearch-ta2mFIph.js";import{a as Fs}from"./useLabels-DSMnNCm7.js";import{u as Ns}from"./useLayoutTier-DcK1MT3Q.js";import{d as Bs,w as Ls}from"./wizard-selection-DxUM65kM.js";import{o as qs,g as _s,h as Ds}from"./search-token-index-hFGbNR0D.js";import{u as tt}from"./sections-hjwhYmx4.js";import{R as Ps}from"./refresh-cw-DSNcdEbR.js";import{a as Qs}from"./useMessageBodyContent-BosolkAC.js";function zs({sync:e}){return e?n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",role:"status","aria-live":"polite",children:[n.jsx(kt,{className:"size-8 animate-spin text-fg-subtle","aria-hidden":"true"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"Still syncing your mail"}),n.jsx("p",{className:"text-xs text-fg-subtle",children:Hs(e)})]}):n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-2 py-12 text-center px-4",children:[n.jsx(Et,{className:"size-8 text-fg-subtle","aria-hidden":"true"}),n.jsx("p",{className:"text-sm font-medium text-fg",children:"You're caught up"}),n.jsx("p",{className:"text-xs text-fg-subtle",children:"Nothing needs attention."})]})}function Hs({synced:e,total:t}){return t>0?`${e.toLocaleString()} of ${t.toLocaleString()} messages downloaded. This list fills in as they arrive.`:"Downloading your messages. This list fills in as they arrive."}const st=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],ot="category",Ks={unclassified:"uncategorized"},K=e=>zt(e).map(t=>t.raw),H=e=>e.join(" "),Ie=e=>{const t=Ze(e);if(t)return st.find(s=>s.name===t.name&&s.value===t.value.toLowerCase())?.id},ye=e=>{const t=Ze(e);if(!t||t.name!==ot)return;const s=t.value.toLowerCase(),a=Ks[s];if(a)return a;if(!(!We(s)||s==="all"))return s},nt=e=>st.find(t=>t.id===e),rt=e=>nt(e)!==void 0,Us=e=>{const t=new Set;for(const s of K(e)){const a=Ie(s);a&&t.add(a)}return t},Gs=e=>{let t="all";for(const s of K(e)){const a=ye(s);a&&(t=a)}return t},Ws=(e,t)=>{const s=nt(t);if(!s)return;const a=K(e),i=a.filter(c=>Ie(c)!==t);return i.length<a.length?H(i):H([...a,Ve(s.name,s.value)])},$s=(e,t)=>{const s=K(e).filter(a=>!ye(a));return H(t==="all"?s:[...s,Ve(ot,t)])},Ys=e=>H(K(e).filter(t=>!Ie(t)&&!ye(t))),at=e=>e.trim().length>0,Qe=e=>{if(!at(e.query))return e.ownFilters;const t=new Set(Us(e.query));for(const s of e.ownFilters)rt(s)||t.add(s);return t},ze=e=>at(e.query)?Gs(e.query):e.ownCategory,He=6e4,Vs=3e4,Zs={kind:"unknown"},Ke=e=>(t,s)=>Gt(s?.queryKey,e)?t:void 0,Js=(e,t,s)=>({...e,category:[t],limit:s,order:"desc"}),Xs=(e,t)=>({...e,category:[t],order:"desc",count:!0,results:!1}),Ue=(e,t)=>({category:[t],...e.unread!==void 0?{unread:e.unread}:{},...e.starred!==void 0?{starred:e.starred}:{},...e.attachments!==void 0?{attachments:e.attachments}:{},...e.accountId!==void 0?{accountId:e.accountId}:{},...e.muted!==void 0?{muted:e.muted}:{}});function eo({categories:e,criteria:t,limit:s,counted:a}){const i=ae({queries:e.map(u=>{const h=Js(t,u,s),m=Ue(t,u);return{queryKey:re({query:h}),queryFn:async()=>{const{data:v}=await ne({query:h,throwOnError:!0});return v},placeholderData:Ke(m),staleTime:He}})}),c=ae({queries:e.map(u=>{const h=Xs(t,u),m=Ue(t,u);return{queryKey:re({query:h}),queryFn:async()=>{const{data:v}=await ne({query:h,throwOnError:!0});return v},enabled:a,placeholderData:Ke(m),staleTime:He}})}),d=r.useMemo(()=>e.map((u,h)=>{const m=i[h],v=c[h],p=m?.data?.items??[];return{category:u,rows:p,atCap:p.length>=s,total:a?et(v?.data?.count):Zs,loading:m?.isPending??!0,failed:m?.isError??!1,retry:()=>{m?.refetch(),a&&v?.refetch()}}}),[e,i,c,a,s]),l=r.useCallback(()=>{for(const u of i)u.refetch();for(const u of c)u.refetch()},[i,c]);return{sections:d,isLoading:i.length>0&&i.every(u=>u.isPending),isError:i.length>0&&i.every(u=>u.isError),refetch:l}}function to(e,t,s){const a={...e,limit:t,order:"desc"},{data:i,isLoading:c,isError:d,refetch:l}=$e({queryKey:re({query:a}),queryFn:async()=>{const{data:h}=await ne({query:a,throwOnError:!0});return h},enabled:s,staleTime:Vs});return{rows:r.useMemo(()=>s?i?.items??[]:[],[i,s]),isLoading:s&&c,isError:s&&d,refetch:r.useCallback(()=>{l()},[l])}}const so=3e4,oo={kind:"unknown"},no=(e,t)=>({...e,mailboxId:t,order:"desc",count:!0,results:!1});function ro({criteria:e,junkMailboxIds:t,enabled:s}){const a=ae({queries:t.map(i=>{const c=no(e,i);return{queryKey:re({query:c}),queryFn:async()=>{const{data:d}=await ne({query:c,throwOnError:!0});return d},enabled:s,staleTime:so}})});return r.useMemo(()=>t.map((i,c)=>({mailboxId:i,count:s?et(a[c]?.data?.count):oo,failed:s?a[c]?.isError??!1:!1})),[t,a,s])}const ao=(e,t)=>e.createdAt!==t.createdAt?e.createdAt-t.createdAt:e.accountId.localeCompare(t.accountId),io=e=>[...e].sort(ao),co=["from","subject","category","unread","starred","attachments"],it=["contacts","today"],lo=e=>new Set(it.filter(t=>e.has(t))),uo=(e,t,s,a)=>{const i=Wt({category:e,attributes:t}),{params:c,residual:d}=$t(s,i,co),l={...c,...i},u={muted:!1};return l.from!==void 0&&(u.from=l.from),l.subject!==void 0&&(u.subject=l.subject),l.unread!==void 0&&(u.unread=l.unread),l.starred!==void 0&&(u.starred=l.starred),l.attachments!==void 0&&(u.attachments=l.attachments),a!==void 0&&(u.accountId=a),{criteria:u,residual:d}},fo=({residual:e,attributes:t})=>e.length===0&&!it.some(s=>t.has(s)),se=e=>e.count.kind==="exact"&&e.count.value>0?3:e.pageRows>0?2:e.count.kind==="unknown"?1:0,oe=e=>e.count.kind==="exact"?e.count.value:0,mo=(e,t)=>se(e)!==se(t)?se(e)>se(t):oe(e)!==oe(t)?oe(e)>oe(t):e.pageRows>t.pageRows;function ho(e,{pageRowsByMailbox:t}){const s=e.map(m=>({...m,pageRows:t.get(m.mailboxId)??0}));for(const[m,v]of t)v<=0||s.some(p=>p.mailboxId===m)||s.push({mailboxId:m,count:{kind:"unknown"},failed:!1,pageRows:v});const a=s[0];if(!a)return;let i=0,c=!0,d=a;for(const m of s)m.count.kind==="unknown"?c=!1:i+=m.count.value,mo(m,d)&&(d=m);const l=s.some(m=>m.pageRows>0),u=s.some(m=>m.failed);if(i===0&&!l&&(c||!u))return;const h=c&&i===0&&l;return{mailboxId:d.mailboxId,count:c&&!h?{kind:"exact",value:i}:{kind:"unknown"}}}const go=50,po=200,xo=[],Ge=()=>n.jsx("div",{className:"animate-pulse",children:Array.from({length:3}).map((e,t)=>n.jsxs("div",{className:"flex items-start gap-3 py-2 pl-5 pr-4 border-b border-line",children:[n.jsx("div",{className:"size-7 rounded-full bg-surface-sunken shrink-0 mt-0.5"}),n.jsxs("div",{className:"flex-1 space-y-1.5",children:[n.jsxs("div",{className:"flex justify-between gap-2",children:[n.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-28"}),n.jsx("div",{className:"h-3 bg-surface-sunken rounded w-12"})]}),n.jsx("div",{className:"h-3.5 bg-surface-sunken rounded w-48"}),n.jsx("div",{className:"h-3 bg-surface-sunken rounded w-full"})]})]},t))}),Io=({accountEmail:e})=>{const t=tt();return n.jsxs("div",{className:"flex items-center gap-2 px-row-inset py-2 border-b border-line bg-danger-soft/40 text-xs text-danger",children:[n.jsx(Ye,{className:"size-3.5 shrink-0"}),n.jsxs("span",{className:"flex-1 truncate",children:[e," can't connect"]}),n.jsx("button",{type:"button",onClick:()=>t("accounts"),className:"shrink-0 underline text-danger hover:opacity-80",children:"Reconnect"})]})},yo=(e,t)=>{if(t.size===0)return{};const s=e.filter(c=>t.has(c.id)),a=Os(s.map(c=>c.accountId));if(a.restriction)return a;const i=new Set;for(const c of s)c.mailboxId&&i.add(c.mailboxId);return i.size>1?{accountId:a.accountId,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${i.size} folders`}:{accountId:a.accountId,mailboxId:i.size===1?[...i][0]:void 0}};function vo({header:e,rows:t,wizard:s,children:a}){const{selectedIds:i,selectedCount:c,exitSelection:d,orderedIds:l,allSelected:u,toggleAllLoaded:h}=ls(),m=r.useMemo(()=>yo(t,i),[t,i]),{junkMailboxId:v}=ds(m.accountId),{labels:p}=Fs(m.accountId),b=r.useMemo(()=>Array.from(i),[i]),L=r.useMemo(()=>Ls(t,i),[t,i]),x=us(v,m.mailboxId),S=r.useMemo(()=>l.length>0?{checked:u,indeterminate:c>0&&!u,onChange:h}:void 0,[l.length,u,c,h]),F=m.moveDisabledHint?{tone:"warning",text:m.moveDisabledHint}:void 0,C=M=>n.jsx(hs,{title:M.title,navSlot:M.navSlot,titleMeta:M.titleMeta,searchSlot:M.searchSlot,searchField:M.searchField,idleSlot:M.makeFilterSlot,count:c,onCancel:d,onDelete:()=>s.start("delete"),onMove:()=>s.start("move"),onOrganize:()=>s.start("organize"),onJunk:x?()=>s.start("junk"):void 0,onMarkRead:()=>s.start("markRead"),overflowSlot:m.accountId&&m.mailboxId&&c>0&&p.length>0?n.jsx(As,{accountId:m.accountId,mailboxId:m.mailboxId,messageIds:b}):void 0,selectAll:S,notice:F});return n.jsx(fs,{...e,selectionBar:C,paneOverlay:n.jsx(ms,{verb:s.verb,accountId:m.accountId,mailboxId:m.mailboxId,selection:L,selectionRestriction:m.restriction,onFinished:d}),children:a})}function bo({accounts:e,selectedMessageId:t,onOpenThread:s,commandsRef:a,onTriageContextChange:i,onDeleteMessages:c}){const{searchQuery:d,searchInput:l,resultFolderIndex:u,onSearchChange:h}=ie(),m=Ht(),v=Ot(),p=Ns(),b=At(),L=qs(),x=r.useMemo(()=>io(e.filter(o=>!o.muted?.value)),[e]),[S,F]=r.useState("all"),[C,M]=r.useState("all"),[N,q]=r.useState(new Set),[le,j]=r.useState(!1),_=r.useCallback(o=>{q(f=>{const g=new Set(f);return g.has(o)?g.delete(o):g.add(o),g})},[]),U=r.useCallback(()=>q(new Set),[]),E=l.trim().length>0,{freeText:w,tokens:D}=Kt(d.trim().toLowerCase(),m),y=w.length>0,P=r.useMemo(()=>Qe({query:l,ownFilters:N}),[l,N]),Q=r.useMemo(()=>ze({query:l,ownCategory:C}),[l,C]),A=r.useMemo(()=>Qe({query:d,ownFilters:N}),[d,N]),T=r.useMemo(()=>ze({query:d,ownCategory:C}),[d,C]),I=r.useCallback(o=>{if(!E||!rt(o)){_(o);return}const f=Ws(l,o);f!==void 0&&h(f)},[E,l,h,_]),k=r.useCallback(o=>{if(!E){M(o);return}h($s(l,o))},[E,l,h]),de=r.useMemo(()=>T==="all"&&!y?o=>{We(o)&&k(o)}:void 0,[T,y,k]),ue=r.useCallback(()=>{M("all"),F("all"),U(),E&&h(Ys(l))},[E,l,h,U]),G=ae({queries:x.map(o=>({...Ft({path:{accountId:o.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),W=r.useMemo(()=>{const o=new Map;for(let f=0;f<x.length;f++){const g=x[f].accountId,te=(G[f]?.data?.items??[]).reduce((O,jt)=>O+(jt.unseenCount??0),0);o.set(g,te)}return o},[x,G]),dt=r.useMemo(()=>x.filter((o,f)=>{const g=G[f];return g?.isError?!Nt(g.error):!1}),[x,G]),{criteria:fe,residual:$}=r.useMemo(()=>uo(T,A,D,S==="all"?void 0:S),[T,A,D,S]),ut=r.useMemo(()=>T==="all"?[...Yt]:[T],[T]),ve=r.useMemo(()=>({...fe,query:w,...T==="all"?{}:{category:[T]}}),[fe,w,T]),be=fo({residual:$,attributes:A}),{sections:Y,isLoading:ft,isError:mt,refetch:Se}=eo({categories:y?xo:ut,criteria:fe,limit:T==="all"?cs:go,counted:be}),{rows:Ce,isLoading:ht,isError:gt,refetch:Te}=to(ve,po,y),me=y?ht:ft,we=y?gt:mt,Re=r.useCallback(()=>{if(y){Te();return}Se()},[y,Te,Se]),Me=r.useMemo(()=>lo(A),[A]),V=r.useCallback(o=>Bs(o).map(Vt).filter(f=>Bt(f,Me)&&Zt(f,$)),[Me,$]),Z=r.useMemo(()=>Y.map(o=>({category:o.category,total:o.total,atCap:o.atCap,loading:o.loading,failed:o.failed,rows:V(o.rows)})),[Y,V]),J=r.useMemo(()=>V(Ce),[Ce,V]),pt=r.useCallback(o=>{Y.find(f=>f.category===o)?.retry()},[Y]),R=r.useMemo(()=>y?J:Z.flatMap(o=>o.rows),[y,J,Z]),xt=r.useMemo(()=>Lt(u),[u]),je=ro({criteria:ve,junkMailboxIds:xt,enabled:be&&ks({hasSearchQuery:y,freeText:w,residualTokenCount:$.length})}),{spamIds:he,briefSpamOffer:X}=r.useMemo(()=>{const o={spamIds:void 0,briefSpamOffer:void 0};if(!w)return o;const f=R.map(O=>De(O,u)),{spam:g}=Jt(f),B=new Map;for(const O of g)O.mailboxId&&B.set(O.mailboxId,(B.get(O.mailboxId)??0)+1);const te=ho(je,{pageRowsByMailbox:B});return g.length===0&&!te?o:{spamIds:g.length>0?new Set(g.map(O=>O.id)):void 0,briefSpamOffer:te}},[R,w,u,je]),ke=r.useMemo(()=>{const o=f=>he===void 0?f:f.filter(g=>!he.has(g.id));return y?[{id:"matches",threads:o(J)}]:Xt(Z.map(f=>({...f,rows:o(f.rows)})))},[y,J,Z,he]),Ee=r.useCallback((o,f)=>{const g=R.find(B=>B.id===o)?.threadId;g&&s?.({threadId:g,messageId:o},f)},[R,s]),It=r.useCallback(o=>{const f=o.threadId??R.find(g=>g.id===o.id)?.threadId;f&&s?.({threadId:f,messageId:o.id})},[R,s]),ge=r.useMemo(()=>x.length<=1?[]:[{id:"all",label:"All",active:S==="all"},...x.map(o=>({id:o.accountId,label:o.email.split("@")[0]??o.email,count:W.get(o.accountId),active:S===o.accountId}))],[x,W,S]),z=r.useMemo(()=>e.filter(o=>o.muted?.value).length,[e]),yt=r.useMemo(()=>Array.from(W.values()).reduce((o,f)=>o+f,0),[W]),pe=r.useMemo(()=>x.map(o=>o.accountId),[x]),{hasNewMail:Oe}=Ts(),{state:Ae,errorMessage:Fe,refresh:Ne}=ws(pe,{onSettled:()=>Re()}),vt=r.useMemo(()=>n.jsx(Rs,{state:Ae,onRefresh:Ne,label:"Refresh daily brief",errorMessage:Fe,hasUpdate:Oe(pe)}),[Ae,Ne,Fe,Oe,pe]),xe=r.useMemo(()=>R.map(o=>De(o,u)),[R,u]),{hits:Be,isLoading:bt}=Es(),St=r.useMemo(()=>{const o=new Map(R.map(g=>[g.id,g.threadId])),f=xe.map(g=>o.get(g.id)).filter(g=>g!=null);return es(Be,f,u)},[Be,xe,R,u]),Ct=r.useMemo(()=>{const o=ts(ge.map(f=>({id:f.id,label:f.label,count:f.count,active:f.active})));return{categories:o.categories,filters:o.filters,sources:o.sources,sourcesNote:z>0?`+${z} muted`:void 0,selectedCategory:Q,activeFilters:P,expanded:le,onExpandedChange:j,onSelectCategory:f=>k(f),onSelectSource:F,onToggleFilter:f=>I(f),onClear:ue}},[ge,z,Q,P,le,I,k,ue]),Le=ke.length===0&&S==="all"&&w.length===0&&D.length===0,Tt=r.useMemo(()=>x.map(o=>o.accountId),[x]),wt=r.useMemo(()=>x.some(o=>Ms(o.syncPhase)),[x]),ee=js(Tt,Le||wt),qe=n.jsxs("div",{className:"h-full overflow-y-auto",children:[n.jsx(Ge,{}),n.jsx(Ge,{})]}),_e=!me&&!we&&!Le,Rt=ss({tier:p,hasLiveInput:E,hasCommittedQuery:d.trim().length>0,bodyRendersCommittedResults:!0}),Mt=_e?n.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[X&&n.jsx(os,{count:X.count,onScopeToSpam:()=>L(X.mailboxId,d)}),n.jsx("div",{className:"min-h-0 flex-1",children:n.jsx(ns,{sections:ke,briefCategory:Q,Row:rs,selectedThreadId:t,onSelectThread:Ee,onShowAllSection:de,onRetrySection:pt,flat:y,onSelectBriefCategory:k,sources:ge,sourcesNote:z>0?`+${z} muted`:void 0,onSelectSource:F,activeFilters:P,onToggleFilter:I,onClearFilters:ue})})]}):me?qe:we?n.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3 py-12 text-sm text-fg-muted",children:[n.jsx(Ye,{className:"size-8 text-danger"}),n.jsx("p",{children:"Couldn't load your messages"}),n.jsxs("button",{type:"button",onClick:()=>Re(),className:"flex items-center gap-1 text-accent underline text-xs",children:[n.jsx(Ps,{className:"size-3.5"}),"Try again"]})]}):ee.resolved?n.jsx(zs,{sync:ee.syncing?{synced:ee.synced,total:ee.total}:void 0}):qe;return n.jsx(qt,{hasSheet:_e&&!Rt,children:n.jsx(as,{selectedMessageId:t,rows:R,onOpen:Ee,onDeleteMessages:c,onSelectionVerb:b.start,commandsRef:a,onTriageContextChange:i,children:n.jsx(vo,{wizard:b,header:{title:"Daily brief",unreadCount:yt,footer:v?n.jsx(is,{}):void 0,searchFilter:Ct,searchResults:xe,searchLoading:me,relatedResults:St,relatedLoading:bt,onSelectSearchResult:It,spamOffer:X,searchResultsInBody:!0,refreshControl:vt},rows:R,children:n.jsxs("div",{className:"flex h-full flex-col",children:[dt.map(o=>n.jsx(Io,{accountEmail:o.email,accountId:o.accountId},o.accountId)),n.jsx("div",{className:"min-h-0 flex-1",children:Mt})]})})})})}const ct=r.createContext(null);function ce(){const e=r.useContext(ct);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function So({thread:e,children:t}){const s=_s(),a=Ds(),i=tt(),{searchInput:c}=ie(),d=e?.threadId,l=e?.messageId,{data:u}=$e({..._t(),staleTime:6e4}),h=r.useMemo(()=>u?.items??[],[u]),m=r.useMemo(()=>{if(d)return h.find(I=>I.messageId===l)??h.find(I=>I.threadId===d)},[h,d,l]),v=gs(d,l),p=m??v,b=l??p?.messageId,L=r.useMemo(()=>{if(d)return{threadId:d,mailboxId:p?.mailboxId??"",subject:p?.subject,messageId:b,authenticity:p?.authenticity}},[d,p,b]),x=r.useCallback((I,k)=>{s(I,{replace:k?.replace,query:c})},[s,c]),S=r.useCallback(I=>{b&&I.includes(b)&&a()},[b,a]),F=Pe({thread:p,isOpen:!0,onAfterOptimisticRemove:S}),C=ps(),{deleteMessages:M}=xs({mailboxId:p?.mailboxId??"",messages:h,onAfterOptimisticRemove:S}),{toggleReadFor:N}=Is({mailboxId:p?.mailboxId??"",messages:h}),q=C.focusedMessageId,j=r.useMemo(()=>h.find(I=>I.messageId===q),[h,q])??p,_=Pe({thread:j,isOpen:j?.messageId===b}),U=Qs(),E=Dt(),w=Pt(),D=r.useMemo(()=>Qt(w,d,b),[w,d,b]),y=r.useMemo(()=>{if(j)return I=>w({threadId:j.threadId,messageId:j.messageId,mode:I})},[w,j]),{nextMessageId:P,previousMessageId:Q}=ys({context:C,orderedIds:C.orderedIds,selectedMessageId:b,enabled:!U&&!E,hasOpenThread:d!==void 0,onClose:a,handlers:{reply:()=>y?.("reply"),replyAll:()=>y?.("reply-all"),forward:()=>y?.("forward"),delete:()=>{C.listCommandsRef.current?.requestVerb("delete")||_.deleteThread()},toggleStar:_.toggleStar,toggleRead:()=>{C.listCommandsRef.current?.requestVerb("markRead")||j&&N([j.messageId],!j.isRead)},goFlagged:()=>i("flagged"),goSettings:()=>i("settings")}}),A=r.useCallback(I=>{if(!I)return;const k=h.find(de=>de.messageId===I);return k?{threadId:k.threadId,messageId:I}:void 0},[h]),T={selectedMessageId:b,selectedThread:p,conversation:L,onOpenThread:x,onCloseThread:a,nextThread:A(P),previousThread:A(Q),actions:F,onReply:D,triage:C,onDeleteMessages:M,handleDeselectIfRemoved:S};return n.jsx(ct.Provider,{value:T,children:t})}function lt(){const{selectedMessageId:e,onOpenThread:t,triage:s,onDeleteMessages:a}=ce(),{accounts:i}=ie();return n.jsx(bo,{accounts:i,selectedMessageId:e,onOpenThread:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:a})}function Co(){const{conversation:e,selectedThread:t,actions:s,onReply:a,handleDeselectIfRemoved:i}=ce(),c=!!e,d=Ss(e?.threadId);return n.jsxs(n.Fragment,{children:[n.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[n.jsx(Cs,{hasThread:c,intelligenceOpen:d.isShowing,canToggleIntelligence:d.canToggle,onToggleIntelligence:d.toggle,onReply:a?()=>a("reply"):void 0,onReplyAll:a?()=>a("reply-all"):void 0,onForward:a?()=>a("forward"):void 0,onDelete:c?s.deleteThread:void 0,onToggleStar:c?s.toggleStar:void 0,isStarred:s.isStarred,moveContext:c&&s.accountId&&s.mailboxId?{accountId:s.accountId,currentMailboxId:s.mailboxId,onMove:s.moveThread}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?n.jsx(Je,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:d.open,listOnScreen:!0}):n.jsx(Ut,{})})]}),n.jsx(Xe,{isOpen:d.drawerOpen,onClose:d.closeDrawer,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:i})]})}function To(){const{selectedThread:e,handleDeselectIfRemoved:t}=ce(),{onToggleIntelligence:s}=ie();return n.jsx(bs,{onClose:s,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function wo(){const{selectedThread:e,conversation:t,onOpenThread:s,onCloseThread:a,nextThread:i,previousThread:c,handleDeselectIfRemoved:d}=ce(),l=vs(t?.threadId??null);return t?n.jsxs(n.Fragment,{children:[n.jsx(Je,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:a,onOpenIntelligence:l.toggle,onSwipeNext:i?()=>s(i):void 0,onSwipePrevious:c?()=>s(c):void 0,mobileIntelligenceOpen:l.isOpen}),n.jsx(Xe,{isOpen:l.isOpen,onClose:l.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:d})]}):n.jsx("div",{className:"h-full",children:n.jsx(lt,{})})}const Do=Object.assign(So,{List:lt,Reading:Co,Intelligence:To,Phone:wo});export{Do as B};
@@ -1 +1 @@
1
- import{j as n,f as N,t as u,_ as te,$ as ne,az as y,r as v,ay as ae,X as se,i as j,eG as re,eH as ie,eI as le,h as oe,s as ce,b3 as de,a0 as ue}from"./index-g6Ysn83c.js";import{j as B,y as me,l as he,z as _,A as xe}from"./window-8yDNCThJ.js";import{f as pe}from"./ErrorState-GkgMnN3x.js";import{R as H,c as ye}from"./calendar-color-BXg6iHq_.js";const ve=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ge=["January","February","March","April","May","June","July","August","September","October","November","December"],fe=["first","second","third","fourth","last"],$="";function be(e,t){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))return[];const[a,s,i]=e.split("-").map(Number),r=new Date(Date.UTC(a,s-1,i)),l=ve[r.getUTCDay()],o=fe[Math.min(Math.floor((i-1)/7),4)],c=t===""?"":`, ${t}`,d=r.getUTCDay()>=1&&r.getUTCDay()<=5;return[`Every day${c}`,...d?[`Every weekday${c}`]:[],`Every week on ${l}${c}`,`Every month on the ${o} ${l}${c}`,`Every year on ${i} ${ge[s-1]}${c}`]}const Ee="w-full rounded-md border border-line bg-surface-sunken px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus-visible:border-line-strong focus-visible:ring-2 focus-visible:ring-ring/30",m=({draft:e,onChange:t},a,s)=>t({...e,[a]:s});function p({label:e,children:t}){return n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e}),t]})}function De({draft:e,onChange:t,layout:a="compact",touch:s}){const i=a==="pane";return n.jsx(y,{value:e.title,placeholder:"Title","aria-label":"Title",onChange:r=>m({draft:e,onChange:t},"title",r.target.value),className:u(i?"text-lg font-medium":"text-md font-medium",i?"h-11":s?"min-h-11":"")})}function Q(e){return e.date===""||e.endDate===""?!1:e.allDay?e.endDate<e.date:e.startTime===""||e.endTime===""?!1:`${e.endDate}T${e.endTime}`<`${e.date}T${e.startTime}`}function Ne(e,t){return t===""?{...e,date:t}:e.endDate===""?{...e,date:t,endDate:t}:e.date===""?{...e,date:t}:{...e,date:t,endDate:B(t,me(e.date,e.endDate))}}function je(e,t){const a=e.date!==""&&e.endDate===B(e.date,1)&&e.startTime!==""&&e.endTime!==""&&e.endTime<e.startTime;return t&&a?{...e,allDay:t,endDate:e.date}:{...e,allDay:t}}function Te({draft:e,onChange:t,touch:a}){const s=a?"min-h-11":"",i=Q(e),r=v.useId(),l={"aria-invalid":i,"aria-describedby":i?r:void 0},o=u("w-40",s,i&&"border-danger/60"),c=u("w-28",s,i&&"border-danger/60");return n.jsxs("div",{className:"flex flex-col gap-1.5",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[n.jsx(y,{type:"date",value:e.date,"aria-label":"Date",...l,onChange:d=>t(Ne(e,d.target.value)),className:o}),!e.allDay&&n.jsx(y,{type:"time",value:e.startTime,"aria-label":"Start time",...l,onChange:d=>m({draft:e,onChange:t},"startTime",d.target.value),className:c}),n.jsx("span",{className:"text-sm text-fg-subtle",children:"to"}),n.jsx(y,{type:"date",value:e.endDate,"aria-label":"End date",min:e.date===""?void 0:e.date,...l,onChange:d=>m({draft:e,onChange:t},"endDate",d.target.value),className:o}),!e.allDay&&n.jsx(y,{type:"time",value:e.endTime,"aria-label":"End time",...l,onChange:d=>m({draft:e,onChange:t},"endTime",d.target.value),className:c}),n.jsxs("label",{className:"flex items-center gap-2 text-sm text-fg-muted",children:[n.jsx("input",{type:"checkbox",checked:e.allDay,onChange:d=>t(je(e,d.target.checked)),className:"size-4 accent-current"}),"All day"]})]}),i&&n.jsx("p",{id:r,className:"text-xs text-danger",role:"alert",children:e.allDay?`Ends before it starts. Move the end to ${e.date} or later.`:`Ends before it starts. Move the end past ${e.date} ${e.startTime}, or start earlier.`})]})}function Ce({draft:e,onChange:t,calendars:a,touch:s}){return n.jsx(we,{calendars:a,value:e.calendarId,onChange:i=>m({draft:e,onChange:t},"calendarId",i),touch:s})}function ke({draft:e,onChange:t,touch:a,repeatEditable:s=!0,onCustom:i}){return s?n.jsx(Ie,{value:e.repeat,date:e.date,startTime:e.startTime,onChange:r=>m({draft:e,onChange:t},"repeat",r),onCustom:i,className:a?"min-h-11":""}):n.jsxs("p",{className:"flex items-center gap-2 text-sm text-fg-muted",children:[n.jsx(H,{className:"size-4 shrink-0 text-fg-subtle","aria-hidden":!0}),e.repeat===$?"Does not repeat":e.repeat]})}function $e({draft:e,onChange:t,touch:a}){return n.jsx(y,{value:e.location,placeholder:"Location","aria-label":"Location",onChange:s=>m({draft:e,onChange:t},"location",s.target.value),className:a?"min-h-11":""})}function Ae({draft:e,onChange:t,touch:a}){return n.jsx(y,{value:e.guests,placeholder:"Guests, comma separated","aria-label":"Guests",onChange:s=>m({draft:e,onChange:t},"guests",s.target.value),className:a?"min-h-11":""})}function Oe({draft:e,onChange:t,layout:a="compact"}){return n.jsx("textarea",{value:e.notes,placeholder:"Notes","aria-label":"Notes",onChange:s=>m({draft:e,onChange:t},"notes",s.target.value),rows:a==="pane"?6:3,className:Ee})}function Me({draft:e,onChange:t,calendars:a,layout:s="compact",expanded:i=!1,onToggleExpanded:r,onSave:l,onCancel:o,onDelete:c,saveLabel:d="Add",header:f,repeatEditable:b=!0,guestsEditable:O=!1,calendarEditable:M=!0,onCustomRepeat:Z,touch:h,className:I}){const g=s==="pane",x={draft:e,onChange:t,layout:s,touch:h},w=n.jsx(De,{...x}),S=n.jsx(Te,{...x}),R=n.jsx(Ce,{...x,calendars:a}),F=n.jsx(ke,{...x,repeatEditable:b,onCustom:Z}),Y=n.jsx($e,{...x}),L=n.jsx(Ae,{...x}),P=n.jsx(Oe,{...x}),W=n.jsxs("div",{className:u("flex items-center gap-2",g?"pt-2":"pt-1"),children:[n.jsx(N,{variant:"primary",size:h||g?"md":"sm",onClick:l,disabled:Q(e),className:h?"min-h-11 flex-1":"",children:d}),n.jsx(N,{variant:"ghost",size:h||g?"md":"sm",onClick:o,className:h?"min-h-11":"",children:"Cancel"}),c&&n.jsx(N,{variant:"ghost",size:h||g?"md":"sm",onClick:c,className:u("ml-auto text-danger",h&&"min-h-11"),children:"Delete"})]});if(g)return n.jsxs("div",{className:u("flex flex-col gap-5",I),children:[f,n.jsx(p,{label:"Title",children:w}),n.jsx(p,{label:"When",children:S}),M&&n.jsx(p,{label:"Calendar",children:R}),n.jsx(p,{label:"Repeat",children:F}),n.jsx(p,{label:"Location",children:Y}),O&&n.jsx(p,{label:"Guests",children:L}),n.jsx(p,{label:"Notes",children:P}),W]});const ee=r!==void 0&&!i;return n.jsxs("div",{className:u("flex flex-col gap-3",I),children:[f,w,S,M&&R,r&&n.jsxs("button",{type:"button",onClick:r,"aria-expanded":i,className:u("flex items-center gap-1 self-start rounded-sm text-xs font-medium text-fg-muted outline-none hover:text-fg focus-visible:ring-2 focus-visible:ring-ring",h&&"min-h-11"),children:[i?n.jsx(te,{className:"size-3.5"}):n.jsx(ne,{className:"size-3.5"}),i?"Fewer details":"More details"]}),!ee&&n.jsxs("div",{className:"flex flex-col gap-2 border-t border-line pt-3",children:[Y,O&&L,F,P]}),W]})}const U="__custom__";function Ie({value:e,date:t,startTime:a,onChange:s,onCustom:i,className:r}){const l=be(t,a),o=e===$||l.includes(e)?l:[e,...l];return n.jsxs(ae,{icon:n.jsx(H,{className:"size-4"}),"aria-label":"Repeat",value:e,onChange:c=>{if(c.target.value===U){i?.();return}s(c.target.value)},className:r,children:[n.jsx("option",{value:$,children:"Does not repeat"}),o.map(c=>n.jsx("option",{value:c,children:c},c)),i&&n.jsx("option",{value:U,children:"Custom…"})]})}function we({calendars:e,value:t,onChange:a,touch:s}){const i=v.useId();return n.jsxs("fieldset",{className:"flex flex-wrap gap-1.5",children:[n.jsx("legend",{className:"sr-only",children:"Calendar"}),e.map(r=>{const l=ye(r.color),o=r.id===t;return n.jsxs("label",{className:u("inline-flex cursor-pointer items-center gap-1.5 rounded-full border px-2.5 text-xs transition-colors","has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring",s?"min-h-11":"h-7",o?u(l.soft,l.text,l.border):"border-line text-fg-muted hover:bg-surface-sunken"),children:[n.jsx("input",{type:"radio",name:i,value:r.id,checked:o,onChange:()=>a(r.id),className:"sr-only"}),n.jsx("span",{className:u("size-2 rounded-full",l.solid)}),r.name]},r.id)})]})}function Se({title:e,subtitle:t,onClose:a,children:s,className:i}){return n.jsxs("section",{className:u("flex h-full w-full flex-col bg-surface",i),children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[n.jsx("h2",{className:"shrink-0 text-xs font-medium text-fg",children:e}),t!==void 0&&t!==""&&n.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-fg-muted",children:t}),n.jsx("button",{type:"button","aria-label":"Close editor",onClick:a,className:"ml-auto flex size-7 shrink-0 items-center justify-center rounded-md text-fg-subtle outline-none hover:bg-surface-sunken hover:text-fg focus-visible:ring-2 focus-visible:ring-ring",children:n.jsx(se,{className:"size-4"})})]}),n.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-row-inset py-5",children:n.jsx("div",{className:"mx-auto w-full max-w-2xl",children:s})})]})}const E=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],D=["SU","MO","TU","WE","TH","FR","SA"],G=["January","February","March","April","May","June","July","August","September","October","November","December"],K=["first","second","third","fourth","last"],J=[1,2,3,4,-1],q="MO,TU,WE,TH,FR",Re=e=>e.replace(/,\s*\d{2}:\d{2}$/,"").trim();function A(e){const t=Re(e);if(t==="")return"";if(t==="Every day")return"FREQ=DAILY";if(t==="Every weekday")return`FREQ=WEEKLY;BYDAY=${q}`;const a=t.match(/^Every week on (\w+)$/);if(a){const r=E.indexOf(a[1]);return r===-1?void 0:`FREQ=WEEKLY;BYDAY=${D[r]}`}const s=t.match(/^Every month on the (\w+) (\w+)$/);if(s){const r=K.indexOf(s[1]),l=E.indexOf(s[2]);return r===-1||l===-1?void 0:`FREQ=MONTHLY;BYDAY=${J[r]}${D[l]}`}const i=t.match(/^Every year on (\d{1,2}) (\w+)$/);if(i){const r=G.indexOf(i[2]);return r===-1?void 0:`FREQ=YEARLY;BYMONTH=${r+1};BYMONTHDAY=${Number(i[1])}`}}const Fe=e=>e===""?"":`, ${e}`;function Be(e,t){const a=new Map(e.split(";").map(l=>l.split("=")).filter(l=>l.length===2).map(([l,o])=>[l.toUpperCase(),o.toUpperCase()])),s=Fe(t),i=a.get("FREQ"),r=a.get("BYDAY");if(!(a.has("INTERVAL")&&a.get("INTERVAL")!=="1")&&!(a.has("UNTIL")||a.has("COUNT"))){if(i==="DAILY")return`Every day${s}`;if(i==="WEEKLY"){if(r===void 0)return;if(r===q)return`Every weekday${s}`;const l=D.indexOf(r);return l===-1?void 0:`Every week on ${E[l]}${s}`}if(i==="MONTHLY"){const l=r?.match(/^(-?\d)([A-Z]{2})$/);if(!l)return;const o=J.indexOf(Number(l[1])),c=D.indexOf(l[2]);return o===-1||c===-1?void 0:`Every month on the ${K[o]} ${E[c]}${s}`}if(i==="YEARLY"){const l=Number(a.get("BYMONTH")),o=Number(a.get("BYMONTHDAY"));return!l||!o||l>12?void 0:`Every year on ${o} ${G[l-1]}${s}`}}}function He(e,t){return{title:"",date:e,startTime:"09:00",endDate:e,endTime:"10:00",allDay:!1,calendarId:t,location:"",guests:"",notes:"",repeat:""}}function Qe(e,t){return{title:e.title,date:e.start.slice(0,10),startTime:e.allDay?"":e.start.slice(11,16),endDate:xe(e),endTime:e.allDay?"":e.end.slice(11,16),allDay:e.allDay,calendarId:e.calendarId,location:t.location,guests:"",notes:t.notes,repeat:t.repeat}}function V(e,t){return e.allDay?{start:e.date,end:he(e.endDate,1)}:{start:_(e.date,e.startTime,t),end:_(e.endDate,e.endTime,t)}}function X(e,t){return e.title.trim()===""?"Give the event a title before saving it.":e.date===""?"Pick the day the event is on.":e.endDate===""?"Pick the day the event ends on.":e.calendarId===""?"Pick the calendar to save the event in.":!e.allDay&&(e.startTime===""||e.endTime==="")?"Set a start and an end time, or mark the event all day.":e.allDay&&e.endDate<e.date?"The last day is before the first. Move one of them.":!e.allDay&&`${e.endDate}T${e.endTime}`<=`${e.date}T${e.startTime}`?"The end is not after the start. Move one of them.":t&&A(e.repeat)===void 0?"This calendar can't store that repeat rule. Pick one of the offered rules, or turn the repeat off.":""}function Ge(e,t){const a=X(e,!0);if(a!=="")return{ok:!1,problem:a};const{start:s,end:i}=V(e,t);return{ok:!0,input:{calendarId:e.calendarId,summary:e.title.trim(),description:e.notes,location:e.location,start:s,end:i,allDay:e.allDay,...t===""?{}:{timeZone:t},recurrenceRule:A(e.repeat)??""}}}function Ke(e,t,a){const s=t.repeat!==e.repeat,i=X(t,s);if(i!=="")return{ok:!1,problem:i};const r={};if(t.title.trim()!==e.title.trim()&&(r.summary=t.title.trim()),t.location!==e.location&&(r.location=t.location),t.notes!==e.notes&&(r.description=t.notes),t.date!==e.date||t.startTime!==e.startTime||t.endDate!==e.endDate||t.endTime!==e.endTime||t.allDay!==e.allDay){const{start:o,end:c}=V(t,a);r.start=o,r.end=c,r.allDay=t.allDay,a!==""&&(r.timeZone=a)}return s&&(r.recurrenceRule=A(t.repeat)??""),{ok:!0,patch:r}}const T=ce(400,404,412),Ye=new Set(["calendarEventOperationsListCalendarEvents","calendarEventDetailOperationsGetCalendarEvent","calendarFreeBusyOperationsListCalendarFreeBusy"]),C={kind:"written"},k=e=>de(e)===412?{kind:"conflict"}:{kind:"refused",message:pe(e)},Le={this:"This",following:"Following",all:"All"};function Pe(){const e=oe();return v.useCallback(()=>{e.invalidateQueries({predicate:t=>{const a=t.queryKey[0];if(typeof a!="object"||a===null)return!1;const s=a._id;return typeof s=="string"&&Ye.has(s)}})},[e])}const z=({scope:e,recurrenceId:t})=>e===void 0||e==="all"?{}:{scope:Le[e],recurrenceId:t};function Je(){const e=Pe(),t=j({...re(),meta:T,onSuccess:e}),a=j({...ie(),meta:T,onSuccess:e}),s=j({...le(),meta:T,onSuccess:e}),i=v.useCallback(o=>t.mutateAsync({body:o}).then(()=>C).catch(k),[t]),r=v.useCallback((o,c)=>a.mutateAsync({path:{calendarObjectId:o.calendarObjectId},query:{calendarId:o.calendarId,...z(o)},headers:{"If-Match":o.etag},body:c}).then(()=>C).catch(k),[a]),l=v.useCallback(o=>s.mutateAsync({path:{calendarObjectId:o.calendarObjectId},query:{calendarId:o.calendarId,...z(o)},headers:{"If-Match":o.etag}}).then(()=>C).catch(k),[s]);return v.useMemo(()=>({createEvent:i,updateEvent:r,deleteEvent:l,isWriting:t.isPending||a.isPending||s.isPending}),[i,r,l,t.isPending,a.isPending,s.isPending])}function qe({title:e,subtitle:t,calendars:a,draft:s,onChange:i,problem:r,saveLabel:l,isSaving:o,repeatEditable:c=!0,calendarEditable:d=!0,onSave:f,onCancel:b}){return n.jsx(Se,{title:e,subtitle:t,onClose:b,children:n.jsx(Me,{draft:s,onChange:i,calendars:a,layout:"pane",repeatEditable:c,calendarEditable:d,saveLabel:o?"Saving…":l,onSave:f,onCancel:b,header:r===""?void 0:n.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[n.jsx(ue,{className:"mt-0.5 size-4 shrink-0 text-danger","aria-hidden":"true"}),n.jsx("p",{className:"min-w-0 flex-1 break-words text-fg",children:r})]})})})}export{qe as C,Ge as c,Qe as d,He as e,Ke as p,Be as t,Je as u};
1
+ import{j as n,f as N,t as u,_ as te,$ as ne,az as y,r as v,ay as ae,X as se,i as j,eG as re,eH as ie,eI as le,h as oe,s as ce,b3 as de,a0 as ue}from"./index-CSwUr62M.js";import{j as B,y as me,l as he,z as _,A as xe}from"./window-lwa3VWUz.js";import{f as pe}from"./ErrorState-BiEmk4z3.js";import{R as H,c as ye}from"./calendar-color-2KYWPrC3.js";const ve=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ge=["January","February","March","April","May","June","July","August","September","October","November","December"],fe=["first","second","third","fourth","last"],$="";function be(e,t){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))return[];const[a,s,i]=e.split("-").map(Number),r=new Date(Date.UTC(a,s-1,i)),l=ve[r.getUTCDay()],o=fe[Math.min(Math.floor((i-1)/7),4)],c=t===""?"":`, ${t}`,d=r.getUTCDay()>=1&&r.getUTCDay()<=5;return[`Every day${c}`,...d?[`Every weekday${c}`]:[],`Every week on ${l}${c}`,`Every month on the ${o} ${l}${c}`,`Every year on ${i} ${ge[s-1]}${c}`]}const Ee="w-full rounded-md border border-line bg-surface-sunken px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus-visible:border-line-strong focus-visible:ring-2 focus-visible:ring-ring/30",m=({draft:e,onChange:t},a,s)=>t({...e,[a]:s});function p({label:e,children:t}){return n.jsxs("div",{className:"flex flex-col gap-2",children:[n.jsx("span",{className:"text-2xs font-semibold uppercase tracking-wider text-fg-subtle",children:e}),t]})}function De({draft:e,onChange:t,layout:a="compact",touch:s}){const i=a==="pane";return n.jsx(y,{value:e.title,placeholder:"Title","aria-label":"Title",onChange:r=>m({draft:e,onChange:t},"title",r.target.value),className:u(i?"text-lg font-medium":"text-md font-medium",i?"h-11":s?"min-h-11":"")})}function Q(e){return e.date===""||e.endDate===""?!1:e.allDay?e.endDate<e.date:e.startTime===""||e.endTime===""?!1:`${e.endDate}T${e.endTime}`<`${e.date}T${e.startTime}`}function Ne(e,t){return t===""?{...e,date:t}:e.endDate===""?{...e,date:t,endDate:t}:e.date===""?{...e,date:t}:{...e,date:t,endDate:B(t,me(e.date,e.endDate))}}function je(e,t){const a=e.date!==""&&e.endDate===B(e.date,1)&&e.startTime!==""&&e.endTime!==""&&e.endTime<e.startTime;return t&&a?{...e,allDay:t,endDate:e.date}:{...e,allDay:t}}function Te({draft:e,onChange:t,touch:a}){const s=a?"min-h-11":"",i=Q(e),r=v.useId(),l={"aria-invalid":i,"aria-describedby":i?r:void 0},o=u("w-40",s,i&&"border-danger/60"),c=u("w-28",s,i&&"border-danger/60");return n.jsxs("div",{className:"flex flex-col gap-1.5",children:[n.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[n.jsx(y,{type:"date",value:e.date,"aria-label":"Date",...l,onChange:d=>t(Ne(e,d.target.value)),className:o}),!e.allDay&&n.jsx(y,{type:"time",value:e.startTime,"aria-label":"Start time",...l,onChange:d=>m({draft:e,onChange:t},"startTime",d.target.value),className:c}),n.jsx("span",{className:"text-sm text-fg-subtle",children:"to"}),n.jsx(y,{type:"date",value:e.endDate,"aria-label":"End date",min:e.date===""?void 0:e.date,...l,onChange:d=>m({draft:e,onChange:t},"endDate",d.target.value),className:o}),!e.allDay&&n.jsx(y,{type:"time",value:e.endTime,"aria-label":"End time",...l,onChange:d=>m({draft:e,onChange:t},"endTime",d.target.value),className:c}),n.jsxs("label",{className:"flex items-center gap-2 text-sm text-fg-muted",children:[n.jsx("input",{type:"checkbox",checked:e.allDay,onChange:d=>t(je(e,d.target.checked)),className:"size-4 accent-current"}),"All day"]})]}),i&&n.jsx("p",{id:r,className:"text-xs text-danger",role:"alert",children:e.allDay?`Ends before it starts. Move the end to ${e.date} or later.`:`Ends before it starts. Move the end past ${e.date} ${e.startTime}, or start earlier.`})]})}function Ce({draft:e,onChange:t,calendars:a,touch:s}){return n.jsx(we,{calendars:a,value:e.calendarId,onChange:i=>m({draft:e,onChange:t},"calendarId",i),touch:s})}function ke({draft:e,onChange:t,touch:a,repeatEditable:s=!0,onCustom:i}){return s?n.jsx(Ie,{value:e.repeat,date:e.date,startTime:e.startTime,onChange:r=>m({draft:e,onChange:t},"repeat",r),onCustom:i,className:a?"min-h-11":""}):n.jsxs("p",{className:"flex items-center gap-2 text-sm text-fg-muted",children:[n.jsx(H,{className:"size-4 shrink-0 text-fg-subtle","aria-hidden":!0}),e.repeat===$?"Does not repeat":e.repeat]})}function $e({draft:e,onChange:t,touch:a}){return n.jsx(y,{value:e.location,placeholder:"Location","aria-label":"Location",onChange:s=>m({draft:e,onChange:t},"location",s.target.value),className:a?"min-h-11":""})}function Ae({draft:e,onChange:t,touch:a}){return n.jsx(y,{value:e.guests,placeholder:"Guests, comma separated","aria-label":"Guests",onChange:s=>m({draft:e,onChange:t},"guests",s.target.value),className:a?"min-h-11":""})}function Oe({draft:e,onChange:t,layout:a="compact"}){return n.jsx("textarea",{value:e.notes,placeholder:"Notes","aria-label":"Notes",onChange:s=>m({draft:e,onChange:t},"notes",s.target.value),rows:a==="pane"?6:3,className:Ee})}function Me({draft:e,onChange:t,calendars:a,layout:s="compact",expanded:i=!1,onToggleExpanded:r,onSave:l,onCancel:o,onDelete:c,saveLabel:d="Add",header:f,repeatEditable:b=!0,guestsEditable:O=!1,calendarEditable:M=!0,onCustomRepeat:Z,touch:h,className:I}){const g=s==="pane",x={draft:e,onChange:t,layout:s,touch:h},w=n.jsx(De,{...x}),S=n.jsx(Te,{...x}),R=n.jsx(Ce,{...x,calendars:a}),F=n.jsx(ke,{...x,repeatEditable:b,onCustom:Z}),Y=n.jsx($e,{...x}),L=n.jsx(Ae,{...x}),P=n.jsx(Oe,{...x}),W=n.jsxs("div",{className:u("flex items-center gap-2",g?"pt-2":"pt-1"),children:[n.jsx(N,{variant:"primary",size:h||g?"md":"sm",onClick:l,disabled:Q(e),className:h?"min-h-11 flex-1":"",children:d}),n.jsx(N,{variant:"ghost",size:h||g?"md":"sm",onClick:o,className:h?"min-h-11":"",children:"Cancel"}),c&&n.jsx(N,{variant:"ghost",size:h||g?"md":"sm",onClick:c,className:u("ml-auto text-danger",h&&"min-h-11"),children:"Delete"})]});if(g)return n.jsxs("div",{className:u("flex flex-col gap-5",I),children:[f,n.jsx(p,{label:"Title",children:w}),n.jsx(p,{label:"When",children:S}),M&&n.jsx(p,{label:"Calendar",children:R}),n.jsx(p,{label:"Repeat",children:F}),n.jsx(p,{label:"Location",children:Y}),O&&n.jsx(p,{label:"Guests",children:L}),n.jsx(p,{label:"Notes",children:P}),W]});const ee=r!==void 0&&!i;return n.jsxs("div",{className:u("flex flex-col gap-3",I),children:[f,w,S,M&&R,r&&n.jsxs("button",{type:"button",onClick:r,"aria-expanded":i,className:u("flex items-center gap-1 self-start rounded-sm text-xs font-medium text-fg-muted outline-none hover:text-fg focus-visible:ring-2 focus-visible:ring-ring",h&&"min-h-11"),children:[i?n.jsx(te,{className:"size-3.5"}):n.jsx(ne,{className:"size-3.5"}),i?"Fewer details":"More details"]}),!ee&&n.jsxs("div",{className:"flex flex-col gap-2 border-t border-line pt-3",children:[Y,O&&L,F,P]}),W]})}const U="__custom__";function Ie({value:e,date:t,startTime:a,onChange:s,onCustom:i,className:r}){const l=be(t,a),o=e===$||l.includes(e)?l:[e,...l];return n.jsxs(ae,{icon:n.jsx(H,{className:"size-4"}),"aria-label":"Repeat",value:e,onChange:c=>{if(c.target.value===U){i?.();return}s(c.target.value)},className:r,children:[n.jsx("option",{value:$,children:"Does not repeat"}),o.map(c=>n.jsx("option",{value:c,children:c},c)),i&&n.jsx("option",{value:U,children:"Custom…"})]})}function we({calendars:e,value:t,onChange:a,touch:s}){const i=v.useId();return n.jsxs("fieldset",{className:"flex flex-wrap gap-1.5",children:[n.jsx("legend",{className:"sr-only",children:"Calendar"}),e.map(r=>{const l=ye(r.color),o=r.id===t;return n.jsxs("label",{className:u("inline-flex cursor-pointer items-center gap-1.5 rounded-full border px-2.5 text-xs transition-colors","has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring",s?"min-h-11":"h-7",o?u(l.soft,l.text,l.border):"border-line text-fg-muted hover:bg-surface-sunken"),children:[n.jsx("input",{type:"radio",name:i,value:r.id,checked:o,onChange:()=>a(r.id),className:"sr-only"}),n.jsx("span",{className:u("size-2 rounded-full",l.solid)}),r.name]},r.id)})]})}function Se({title:e,subtitle:t,onClose:a,children:s,className:i}){return n.jsxs("section",{className:u("flex h-full w-full flex-col bg-surface",i),children:[n.jsxs("header",{className:"flex h-pane-header shrink-0 items-center gap-2 border-b border-line px-row-inset",children:[n.jsx("h2",{className:"shrink-0 text-xs font-medium text-fg",children:e}),t!==void 0&&t!==""&&n.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-fg-muted",children:t}),n.jsx("button",{type:"button","aria-label":"Close editor",onClick:a,className:"ml-auto flex size-7 shrink-0 items-center justify-center rounded-md text-fg-subtle outline-none hover:bg-surface-sunken hover:text-fg focus-visible:ring-2 focus-visible:ring-ring",children:n.jsx(se,{className:"size-4"})})]}),n.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto px-row-inset py-5",children:n.jsx("div",{className:"mx-auto w-full max-w-2xl",children:s})})]})}const E=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],D=["SU","MO","TU","WE","TH","FR","SA"],G=["January","February","March","April","May","June","July","August","September","October","November","December"],K=["first","second","third","fourth","last"],J=[1,2,3,4,-1],q="MO,TU,WE,TH,FR",Re=e=>e.replace(/,\s*\d{2}:\d{2}$/,"").trim();function A(e){const t=Re(e);if(t==="")return"";if(t==="Every day")return"FREQ=DAILY";if(t==="Every weekday")return`FREQ=WEEKLY;BYDAY=${q}`;const a=t.match(/^Every week on (\w+)$/);if(a){const r=E.indexOf(a[1]);return r===-1?void 0:`FREQ=WEEKLY;BYDAY=${D[r]}`}const s=t.match(/^Every month on the (\w+) (\w+)$/);if(s){const r=K.indexOf(s[1]),l=E.indexOf(s[2]);return r===-1||l===-1?void 0:`FREQ=MONTHLY;BYDAY=${J[r]}${D[l]}`}const i=t.match(/^Every year on (\d{1,2}) (\w+)$/);if(i){const r=G.indexOf(i[2]);return r===-1?void 0:`FREQ=YEARLY;BYMONTH=${r+1};BYMONTHDAY=${Number(i[1])}`}}const Fe=e=>e===""?"":`, ${e}`;function Be(e,t){const a=new Map(e.split(";").map(l=>l.split("=")).filter(l=>l.length===2).map(([l,o])=>[l.toUpperCase(),o.toUpperCase()])),s=Fe(t),i=a.get("FREQ"),r=a.get("BYDAY");if(!(a.has("INTERVAL")&&a.get("INTERVAL")!=="1")&&!(a.has("UNTIL")||a.has("COUNT"))){if(i==="DAILY")return`Every day${s}`;if(i==="WEEKLY"){if(r===void 0)return;if(r===q)return`Every weekday${s}`;const l=D.indexOf(r);return l===-1?void 0:`Every week on ${E[l]}${s}`}if(i==="MONTHLY"){const l=r?.match(/^(-?\d)([A-Z]{2})$/);if(!l)return;const o=J.indexOf(Number(l[1])),c=D.indexOf(l[2]);return o===-1||c===-1?void 0:`Every month on the ${K[o]} ${E[c]}${s}`}if(i==="YEARLY"){const l=Number(a.get("BYMONTH")),o=Number(a.get("BYMONTHDAY"));return!l||!o||l>12?void 0:`Every year on ${o} ${G[l-1]}${s}`}}}function He(e,t){return{title:"",date:e,startTime:"09:00",endDate:e,endTime:"10:00",allDay:!1,calendarId:t,location:"",guests:"",notes:"",repeat:""}}function Qe(e,t){return{title:e.title,date:e.start.slice(0,10),startTime:e.allDay?"":e.start.slice(11,16),endDate:xe(e),endTime:e.allDay?"":e.end.slice(11,16),allDay:e.allDay,calendarId:e.calendarId,location:t.location,guests:"",notes:t.notes,repeat:t.repeat}}function V(e,t){return e.allDay?{start:e.date,end:he(e.endDate,1)}:{start:_(e.date,e.startTime,t),end:_(e.endDate,e.endTime,t)}}function X(e,t){return e.title.trim()===""?"Give the event a title before saving it.":e.date===""?"Pick the day the event is on.":e.endDate===""?"Pick the day the event ends on.":e.calendarId===""?"Pick the calendar to save the event in.":!e.allDay&&(e.startTime===""||e.endTime==="")?"Set a start and an end time, or mark the event all day.":e.allDay&&e.endDate<e.date?"The last day is before the first. Move one of them.":!e.allDay&&`${e.endDate}T${e.endTime}`<=`${e.date}T${e.startTime}`?"The end is not after the start. Move one of them.":t&&A(e.repeat)===void 0?"This calendar can't store that repeat rule. Pick one of the offered rules, or turn the repeat off.":""}function Ge(e,t){const a=X(e,!0);if(a!=="")return{ok:!1,problem:a};const{start:s,end:i}=V(e,t);return{ok:!0,input:{calendarId:e.calendarId,summary:e.title.trim(),description:e.notes,location:e.location,start:s,end:i,allDay:e.allDay,...t===""?{}:{timeZone:t},recurrenceRule:A(e.repeat)??""}}}function Ke(e,t,a){const s=t.repeat!==e.repeat,i=X(t,s);if(i!=="")return{ok:!1,problem:i};const r={};if(t.title.trim()!==e.title.trim()&&(r.summary=t.title.trim()),t.location!==e.location&&(r.location=t.location),t.notes!==e.notes&&(r.description=t.notes),t.date!==e.date||t.startTime!==e.startTime||t.endDate!==e.endDate||t.endTime!==e.endTime||t.allDay!==e.allDay){const{start:o,end:c}=V(t,a);r.start=o,r.end=c,r.allDay=t.allDay,a!==""&&(r.timeZone=a)}return s&&(r.recurrenceRule=A(t.repeat)??""),{ok:!0,patch:r}}const T=ce(400,404,412),Ye=new Set(["calendarEventOperationsListCalendarEvents","calendarEventDetailOperationsGetCalendarEvent","calendarFreeBusyOperationsListCalendarFreeBusy"]),C={kind:"written"},k=e=>de(e)===412?{kind:"conflict"}:{kind:"refused",message:pe(e)},Le={this:"This",following:"Following",all:"All"};function Pe(){const e=oe();return v.useCallback(()=>{e.invalidateQueries({predicate:t=>{const a=t.queryKey[0];if(typeof a!="object"||a===null)return!1;const s=a._id;return typeof s=="string"&&Ye.has(s)}})},[e])}const z=({scope:e,recurrenceId:t})=>e===void 0||e==="all"?{}:{scope:Le[e],recurrenceId:t};function Je(){const e=Pe(),t=j({...re(),meta:T,onSuccess:e}),a=j({...ie(),meta:T,onSuccess:e}),s=j({...le(),meta:T,onSuccess:e}),i=v.useCallback(o=>t.mutateAsync({body:o}).then(()=>C).catch(k),[t]),r=v.useCallback((o,c)=>a.mutateAsync({path:{calendarObjectId:o.calendarObjectId},query:{calendarId:o.calendarId,...z(o)},headers:{"If-Match":o.etag},body:c}).then(()=>C).catch(k),[a]),l=v.useCallback(o=>s.mutateAsync({path:{calendarObjectId:o.calendarObjectId},query:{calendarId:o.calendarId,...z(o)},headers:{"If-Match":o.etag}}).then(()=>C).catch(k),[s]);return v.useMemo(()=>({createEvent:i,updateEvent:r,deleteEvent:l,isWriting:t.isPending||a.isPending||s.isPending}),[i,r,l,t.isPending,a.isPending,s.isPending])}function qe({title:e,subtitle:t,calendars:a,draft:s,onChange:i,problem:r,saveLabel:l,isSaving:o,repeatEditable:c=!0,calendarEditable:d=!0,onSave:f,onCancel:b}){return n.jsx(Se,{title:e,subtitle:t,onClose:b,children:n.jsx(Me,{draft:s,onChange:i,calendars:a,layout:"pane",repeatEditable:c,calendarEditable:d,saveLabel:o?"Saving…":l,onSave:f,onCancel:b,header:r===""?void 0:n.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[n.jsx(ue,{className:"mt-0.5 size-4 shrink-0 text-danger","aria-hidden":"true"}),n.jsx("p",{className:"min-w-0 flex-1 break-words text-fg",children:r})]})})})}export{qe as C,Ge as c,Qe as d,He as e,Ke as p,Be as t,Je as u};
@@ -1 +1 @@
1
- import{j as t,r as e}from"./index-g6Ysn83c.js";const o=e.createContext(void 0),C=({pick:s,children:r})=>t.jsx(o.Provider,{value:s,children:r}),d=()=>e.useContext(o);export{C,d as u};
1
+ import{j as t,r as e}from"./index-CSwUr62M.js";const o=e.createContext(void 0),C=({pick:s,children:r})=>t.jsx(o.Provider,{value:s,children:r}),d=()=>e.useContext(o);export{C,d as u};
@@ -1 +1 @@
1
- import{r,j as n,al as l,am as o}from"./index-g6Ysn83c.js";const i=r.createContext(null),v=({chrome:s,children:a})=>n.jsx(i.Provider,{value:s,children:a});function C({workspace:s,reading:a,hasOpenEvent:x}){const e=r.useContext(i);if(!e)return n.jsx(l,{});const t={nav:e.nav,skeleton:n.jsx(l,{}),isLoading:e.isLoading,navOpen:e.navOpen,onOpenNav:e.onOpenNav,onCloseNav:e.onCloseNav,listBias:"list"};return e.isSinglePane?n.jsx(o,{...t,list:x?a:s}):n.jsx(o,{...t,list:s,reading:a})}export{v as C,C as a};
1
+ import{r,j as n,al as l,am as o}from"./index-CSwUr62M.js";const i=r.createContext(null),v=({chrome:s,children:a})=>n.jsx(i.Provider,{value:s,children:a});function C({workspace:s,reading:a,hasOpenEvent:x}){const e=r.useContext(i);if(!e)return n.jsx(l,{});const t={nav:e.nav,skeleton:n.jsx(l,{}),isLoading:e.isLoading,navOpen:e.navOpen,onOpenNav:e.onOpenNav,onCloseNav:e.onCloseNav,listBias:"list"};return e.isSinglePane?n.jsx(o,{...t,list:x?a:s}):n.jsx(o,{...t,list:s,reading:a})}export{v as C,C as a};
@@ -1 +1 @@
1
- import{j as e}from"./index-g6Ysn83c.js";const x=({message:s,icon:t})=>e.jsxs("div",{className:"flex flex-col items-center justify-center p-8 text-center",children:[t&&e.jsx("div",{className:"mb-4 text-fg-muted",children:t}),e.jsx("p",{className:"text-fg-muted",children:s})]});export{x as E};
1
+ import{j as e}from"./index-CSwUr62M.js";const x=({message:s,icon:t})=>e.jsxs("div",{className:"flex flex-col items-center justify-center p-8 text-center",children:[t&&e.jsx("div",{className:"mb-4 text-fg-muted",children:t}),e.jsx("p",{className:"text-fg-muted",children:s})]});export{x as E};
@@ -1 +1 @@
1
- import{j as t,a0 as r}from"./index-g6Ysn83c.js";const d=e=>e instanceof Error?e.message:typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:"An unexpected error occurred",l=({title:e="Couldn't load content",error:a,onRetry:s,variant:i="block"})=>{const n=d(a);return i==="inline"?t.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[t.jsx(r,{className:"size-4 shrink-0 text-danger mt-0.5","aria-hidden":"true"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-fg-muted mt-0.5 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}):t.jsxs("div",{role:"alert",className:"flex flex-col items-center justify-center gap-3 p-8 text-center",children:[t.jsx(r,{className:"size-8 text-danger","aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-sm text-fg-muted mt-1 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"inline-flex items-center rounded-md border border-line bg-canvas px-4 py-2 text-sm font-medium hover:bg-surface-raised transition-colors",children:"Retry"})]})};export{l as E,d as f};
1
+ import{j as t,a0 as r}from"./index-CSwUr62M.js";const d=e=>e instanceof Error?e.message:typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:"An unexpected error occurred",l=({title:e="Couldn't load content",error:a,onRetry:s,variant:i="block"})=>{const n=d(a);return i==="inline"?t.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[t.jsx(r,{className:"size-4 shrink-0 text-danger mt-0.5","aria-hidden":"true"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-fg-muted mt-0.5 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}):t.jsxs("div",{role:"alert",className:"flex flex-col items-center justify-center gap-3 p-8 text-center",children:[t.jsx(r,{className:"size-8 text-danger","aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-sm text-fg-muted mt-1 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"inline-flex items-center rounded-md border border-line bg-canvas px-4 py-2 text-sm font-medium hover:bg-surface-raised transition-colors",children:"Retry"})]})};export{l as E,d as f};
@@ -1 +1 @@
1
- import{ew as Z,r as o,dX as U,c as de,C as z,bl as le,cN as ce,aZ as ue,a_ as ge,j as a,ak as he,cZ as me,c_ as pe}from"./index-g6Ysn83c.js";import{u as fe,p as G,R as Ie}from"./useSearchTokenContext-DpXTBfWn.js";import{A as xe,E as Te,al as ye,am as be,aw as ve,an as Ce,b as Se,M as Re,at as we,ax as je,av as Fe,m as Me,J as Oe,O as W,N as ke,K as Pe,d as Le,Y as Ne,Z as Ae,$ as J,a0 as X,a1 as De,a2 as Ee,a3 as qe}from"./MailListHeader-BZ3PXB6W.js";import{u as Be,l as Qe,b as Ke,a as ze}from"./MailViewChrome-1QOtBYvo.js";import{f as He}from"./ErrorState-GkgMnN3x.js";import{d as Ve,w as _e}from"./wizard-selection-DxUM65kM.js";import{a as Ge}from"./useMessageBodyContent-Zu7uJcxj.js";import{g as We,h as Ze}from"./search-token-index-CeWCvnzE.js";import{u as Ue}from"./sections-CrqtLp8d.js";const H=e=>({...e,starred:!0,order:"desc"}),Je=(e={})=>U({query:H(e)});function Y(e={}){const{data:t,isLoading:s,isError:r,error:c,refetch:u,fetchNextPage:n,hasNextPage:g,isFetchingNextPage:h}=Be({queryKey:Je(e),queryFn:async({pageParam:I})=>{const{data:l}=await Z({query:{...H(e),continuationToken:I},throwOnError:!0});return l},initialPageParam:void 0,getNextPageParam:I=>I.continuationToken,staleTime:6e4});return{threads:o.useMemo(()=>(t?.pages??[]).flatMap(I=>I.items??[]),[t]),isLoading:s,isError:r,error:c,refetch:u,fetchNextPage:n,hasNextPage:g,isFetchingNextPage:h}}function Xe(e={}){const t={...H(e),unread:!0,count:!0,results:!1},{data:s}=de({queryKey:U({query:t}),queryFn:async()=>{const{data:r}=await Z({query:t,throwOnError:!0});return r},staleTime:6e4});return s?.count}const Ye=["from","subject","category","unread","starred","attachments"],$e=(e,t)=>{const s=xe(e),{params:r,residual:c}=Te(t,{...s,starred:!0},Ye);return{criteria:{...r,...s},residual:c}};function et({rows:e,verb:t}){const{selectedIds:s,exitSelection:r}=Fe(),c=o.useMemo(()=>_e(e,s),[e,s]);return a.jsx(Me,{verb:t,selection:c,selectionRestriction:"spansAccounts",onFinished:r})}function tt({selectedMessageId:e,onOpenThread:t,commandsRef:s,onTriageContextChange:r,onDeleteMessages:c}){const{searchQuery:u,resultFolderIndex:n,onSearchClearQuery:g}=z(),h=fe(),k=le(),I=ce(),[l,m]=o.useState("all"),[b,P]=o.useState(new Set),R=o.useCallback(i=>{P(S=>{const x=new Set(S);return x.has(i)?x.delete(i):x.add(i),x})},[]),w=o.useCallback(()=>{m("all"),P(new Set)},[]),T=o.useCallback(()=>{w(),g()},[w,g]),{freeText:j,tokens:v}=G(u.trim().toLowerCase(),h),L=G(u.trim(),h).freeText,{criteria:N,residual:p}=o.useMemo(()=>$e({category:l,attributes:b},v),[l,b,v]),F=o.useMemo(()=>j?{...N,query:j}:N,[N,j]),{threads:A,isLoading:D,isError:y,error:q,refetch:M,fetchNextPage:B,hasNextPage:Q,isFetchingNextPage:O}=Y(F),f=o.useMemo(()=>Ve(A).map(ye).filter(i=>be(i,p)),[A,p]),d=o.useCallback((i,S)=>{const x=f.find(ie=>ie.id===i)?.threadId;x&&t?.({threadId:x,messageId:i},S)},[f,t]),C=o.useCallback(i=>{const S=i.threadId??f.find(x=>x.id===i.id)?.threadId;S&&t?.({threadId:S,messageId:i.id})},[f,t]),K=o.useMemo(()=>ve(),[]),te=o.useMemo(()=>f.map(i=>Ce(i,n)),[f,n]),se=Xe(F)??null,ae=o.useMemo(()=>v.filter(i=>i.type!=="isStarred"),[v]),re=Qe({chips:{category:l,attributes:b},tokens:ae,reach:p.length>0?"loaded-pages":"whole-folder",onClear:T}),V=D?"loading":y?"error":f.length===0?"empty":"ready",oe=o.useCallback(()=>{const i=ue(ge());window.open(i,"_blank","noopener,noreferrer")},[]),_=Se(),ne=a.jsx("div",{className:"flex h-full min-h-0 flex-col",children:a.jsxs("div",{className:"flex-1 overflow-y-auto",children:[a.jsx("div",{className:"divide-y divide-line",children:f.map(i=>a.jsx(Re,{thread:i,active:i.id===e,onClick:()=>d(i.id)},i.id))}),Q?a.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>B(),disabled:O,children:O?"Loading…":"Load more"}):null]})});return a.jsx(Ke,{title:"Starred",unreadCount:se,preset:K,selectedCategory:l,activeFilters:b,onSelectCategory:m,onToggleFilter:R,onClearFilters:w,searchResults:te,searchLoading:D,onSelectSearchResult:C,searchResultsInBody:!0,children:a.jsxs(we,{selectedMessageId:e,rows:f,onOpen:d,onDeleteMessages:c,onSelectionVerb:I.start,commandsRef:s,onTriageContextChange:r,children:[a.jsx(ze,{listTitle:"Starred",sections:[{id:"flagged",threads:f}],flatList:!0,hideHeader:!0,listState:_.searchResults?"ready":V,listFilter:re,listScopeLabel:"Starred",searchQuery:L||void 0,errorMessage:y?He(q):void 0,onRetry:()=>M(),onReportError:oe,selectedThreadId:e,onSelectThread:d,isDesktop:k,selectionBar:a.jsx(je,{title:"Starred"}),listBody:_.searchResults??(V==="ready"?ne:void 0)}),a.jsx(et,{rows:f,verb:I.verb})]})})}const $=o.createContext(null);function E(){const e=o.useContext($);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function st({thread:e,children:t}){const s=We(),r=Ze(),c=Ue(),{searchInput:u}=z(),n=e?.threadId,g=e?.messageId,{threads:h}=Y(),k=o.useMemo(()=>{if(n)return h.find(d=>d.messageId===g)??h.find(d=>d.threadId===n)},[h,n,g]),I=Oe(n,g),l=k??I,m=g??l?.messageId,b=o.useMemo(()=>{if(n)return{threadId:n,mailboxId:l?.mailboxId??"",subject:l?.subject,messageId:m,authenticity:l?.authenticity}},[n,l,m]),P=o.useCallback((d,C)=>{s(d,{replace:C?.replace,query:u})},[s,u]),R=o.useCallback(d=>{m&&d.includes(m)&&r()},[m,r]),w=W({thread:l,isOpen:!0,onAfterOptimisticRemove:R}),T=ke(),{deleteMessages:j}=Pe({mailboxId:l?.mailboxId??"",messages:h,onAfterOptimisticRemove:R}),{toggleReadFor:v}=Le({mailboxId:l?.mailboxId??"",messages:h}),L=T.focusedMessageId,p=o.useMemo(()=>h.find(d=>d.messageId===L),[h,L])??l,F=W({thread:p,isOpen:p?.messageId===m}),A=Ge(),D=he(),y=me(),q=o.useMemo(()=>pe(y,n,m),[y,n,m]),M=o.useMemo(()=>{if(p)return d=>y({threadId:p.threadId,messageId:p.messageId,mode:d})},[y,p]),{nextMessageId:B,previousMessageId:Q}=Ne({context:T,orderedIds:T.orderedIds,selectedMessageId:m,enabled:!A&&!D,hasOpenThread:n!==void 0,onClose:r,handlers:{reply:()=>M?.("reply"),replyAll:()=>M?.("reply-all"),forward:()=>M?.("forward"),delete:()=>{T.listCommandsRef.current?.requestVerb("delete")||F.deleteThread()},toggleStar:F.toggleStar,toggleRead:()=>{T.listCommandsRef.current?.requestVerb("markRead")||p&&v([p.messageId],!p.isRead)},goBrief:()=>c("brief"),goSettings:()=>c("settings")}}),O=o.useCallback(d=>{if(!d)return;const C=h.find(K=>K.messageId===d);return C?{threadId:C.threadId,messageId:d}:void 0},[h]),f={selectedMessageId:m,selectedThread:l,conversation:b,onOpenThread:P,onCloseThread:r,nextThread:O(B),previousThread:O(Q),actions:w,onReply:q,triage:T,onDeleteMessages:j,handleDeselectIfRemoved:R};return a.jsx($.Provider,{value:f,children:t})}function ee(){const{selectedMessageId:e,onOpenThread:t,triage:s,onDeleteMessages:r}=E();return a.jsx(tt,{selectedMessageId:e,onOpenThread:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:r})}function at(){const{conversation:e,selectedThread:t,actions:s,onReply:r,handleDeselectIfRemoved:c}=E(),u=!!e,n=Ee(e?.threadId);return a.jsxs(a.Fragment,{children:[a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(qe,{hasThread:u,intelligenceOpen:n.isShowing,canToggleIntelligence:n.canToggle,onToggleIntelligence:n.toggle,onReply:r?()=>r("reply"):void 0,onReplyAll:r?()=>r("reply-all"):void 0,onForward:r?()=>r("forward"):void 0,onDelete:u?s.deleteThread:void 0,onToggleStar:u?s.toggleStar:void 0,isStarred:s.isStarred,moveContext:u&&s.accountId&&s.mailboxId?{accountId:s.accountId,currentMailboxId:s.mailboxId,onMove:s.moveThread}:void 0}),a.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?a.jsx(J,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:n.open,listOnScreen:!0}):a.jsx(Ie,{})})]}),a.jsx(X,{isOpen:n.drawerOpen,onClose:n.closeDrawer,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:c})]})}function rt(){const{selectedThread:e,handleDeselectIfRemoved:t}=E(),{onToggleIntelligence:s}=z();return a.jsx(De,{onClose:s,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function ot(){const{selectedThread:e,conversation:t,onCloseThread:s,onOpenThread:r,nextThread:c,previousThread:u,handleDeselectIfRemoved:n}=E(),g=Ae(t?.threadId??null);return t?a.jsxs(a.Fragment,{children:[a.jsx(J,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:s,onOpenIntelligence:g.toggle,onSwipeNext:c?()=>r(c):void 0,onSwipePrevious:u?()=>r(u):void 0,mobileIntelligenceOpen:g.isOpen}),a.jsx(X,{isOpen:g.isOpen,onClose:g.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:n})]}):a.jsx("div",{className:"h-full",children:a.jsx(ee,{})})}const pt=Object.assign(st,{List:ee,Reading:at,Intelligence:rt,Phone:ot});export{pt as F};
1
+ import{ew as Z,r as o,dX as U,c as de,C as z,bl as le,cN as ce,aZ as ue,a_ as ge,j as a,ak as he,cZ as me,c_ as pe}from"./index-CSwUr62M.js";import{u as fe,p as G,R as Ie}from"./useSearchTokenContext-BiyVZvqa.js";import{A as xe,E as Te,al as ye,am as be,aw as ve,an as Ce,b as Se,M as Re,at as we,ax as je,av as Fe,m as Me,J as Oe,O as W,N as ke,K as Pe,d as Le,Y as Ne,Z as Ae,$ as J,a0 as X,a1 as De,a2 as Ee,a3 as qe}from"./MailListHeader-6Iecj4Fq.js";import{u as Be,l as Qe,b as Ke,a as ze}from"./MailViewChrome-34tzhRe2.js";import{f as He}from"./ErrorState-BiEmk4z3.js";import{d as Ve,w as _e}from"./wizard-selection-DxUM65kM.js";import{a as Ge}from"./useMessageBodyContent-BosolkAC.js";import{g as We,h as Ze}from"./search-token-index-hFGbNR0D.js";import{u as Ue}from"./sections-hjwhYmx4.js";const H=e=>({...e,starred:!0,order:"desc"}),Je=(e={})=>U({query:H(e)});function Y(e={}){const{data:t,isLoading:s,isError:r,error:c,refetch:u,fetchNextPage:n,hasNextPage:g,isFetchingNextPage:h}=Be({queryKey:Je(e),queryFn:async({pageParam:I})=>{const{data:l}=await Z({query:{...H(e),continuationToken:I},throwOnError:!0});return l},initialPageParam:void 0,getNextPageParam:I=>I.continuationToken,staleTime:6e4});return{threads:o.useMemo(()=>(t?.pages??[]).flatMap(I=>I.items??[]),[t]),isLoading:s,isError:r,error:c,refetch:u,fetchNextPage:n,hasNextPage:g,isFetchingNextPage:h}}function Xe(e={}){const t={...H(e),unread:!0,count:!0,results:!1},{data:s}=de({queryKey:U({query:t}),queryFn:async()=>{const{data:r}=await Z({query:t,throwOnError:!0});return r},staleTime:6e4});return s?.count}const Ye=["from","subject","category","unread","starred","attachments"],$e=(e,t)=>{const s=xe(e),{params:r,residual:c}=Te(t,{...s,starred:!0},Ye);return{criteria:{...r,...s},residual:c}};function et({rows:e,verb:t}){const{selectedIds:s,exitSelection:r}=Fe(),c=o.useMemo(()=>_e(e,s),[e,s]);return a.jsx(Me,{verb:t,selection:c,selectionRestriction:"spansAccounts",onFinished:r})}function tt({selectedMessageId:e,onOpenThread:t,commandsRef:s,onTriageContextChange:r,onDeleteMessages:c}){const{searchQuery:u,resultFolderIndex:n,onSearchClearQuery:g}=z(),h=fe(),k=le(),I=ce(),[l,m]=o.useState("all"),[b,P]=o.useState(new Set),R=o.useCallback(i=>{P(S=>{const x=new Set(S);return x.has(i)?x.delete(i):x.add(i),x})},[]),w=o.useCallback(()=>{m("all"),P(new Set)},[]),T=o.useCallback(()=>{w(),g()},[w,g]),{freeText:j,tokens:v}=G(u.trim().toLowerCase(),h),L=G(u.trim(),h).freeText,{criteria:N,residual:p}=o.useMemo(()=>$e({category:l,attributes:b},v),[l,b,v]),F=o.useMemo(()=>j?{...N,query:j}:N,[N,j]),{threads:A,isLoading:D,isError:y,error:q,refetch:M,fetchNextPage:B,hasNextPage:Q,isFetchingNextPage:O}=Y(F),f=o.useMemo(()=>Ve(A).map(ye).filter(i=>be(i,p)),[A,p]),d=o.useCallback((i,S)=>{const x=f.find(ie=>ie.id===i)?.threadId;x&&t?.({threadId:x,messageId:i},S)},[f,t]),C=o.useCallback(i=>{const S=i.threadId??f.find(x=>x.id===i.id)?.threadId;S&&t?.({threadId:S,messageId:i.id})},[f,t]),K=o.useMemo(()=>ve(),[]),te=o.useMemo(()=>f.map(i=>Ce(i,n)),[f,n]),se=Xe(F)??null,ae=o.useMemo(()=>v.filter(i=>i.type!=="isStarred"),[v]),re=Qe({chips:{category:l,attributes:b},tokens:ae,reach:p.length>0?"loaded-pages":"whole-folder",onClear:T}),V=D?"loading":y?"error":f.length===0?"empty":"ready",oe=o.useCallback(()=>{const i=ue(ge());window.open(i,"_blank","noopener,noreferrer")},[]),_=Se(),ne=a.jsx("div",{className:"flex h-full min-h-0 flex-col",children:a.jsxs("div",{className:"flex-1 overflow-y-auto",children:[a.jsx("div",{className:"divide-y divide-line",children:f.map(i=>a.jsx(Re,{thread:i,active:i.id===e,onClick:()=>d(i.id)},i.id))}),Q?a.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>B(),disabled:O,children:O?"Loading…":"Load more"}):null]})});return a.jsx(Ke,{title:"Starred",unreadCount:se,preset:K,selectedCategory:l,activeFilters:b,onSelectCategory:m,onToggleFilter:R,onClearFilters:w,searchResults:te,searchLoading:D,onSelectSearchResult:C,searchResultsInBody:!0,children:a.jsxs(we,{selectedMessageId:e,rows:f,onOpen:d,onDeleteMessages:c,onSelectionVerb:I.start,commandsRef:s,onTriageContextChange:r,children:[a.jsx(ze,{listTitle:"Starred",sections:[{id:"flagged",threads:f}],flatList:!0,hideHeader:!0,listState:_.searchResults?"ready":V,listFilter:re,listScopeLabel:"Starred",searchQuery:L||void 0,errorMessage:y?He(q):void 0,onRetry:()=>M(),onReportError:oe,selectedThreadId:e,onSelectThread:d,isDesktop:k,selectionBar:a.jsx(je,{title:"Starred"}),listBody:_.searchResults??(V==="ready"?ne:void 0)}),a.jsx(et,{rows:f,verb:I.verb})]})})}const $=o.createContext(null);function E(){const e=o.useContext($);if(!e)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return e}function st({thread:e,children:t}){const s=We(),r=Ze(),c=Ue(),{searchInput:u}=z(),n=e?.threadId,g=e?.messageId,{threads:h}=Y(),k=o.useMemo(()=>{if(n)return h.find(d=>d.messageId===g)??h.find(d=>d.threadId===n)},[h,n,g]),I=Oe(n,g),l=k??I,m=g??l?.messageId,b=o.useMemo(()=>{if(n)return{threadId:n,mailboxId:l?.mailboxId??"",subject:l?.subject,messageId:m,authenticity:l?.authenticity}},[n,l,m]),P=o.useCallback((d,C)=>{s(d,{replace:C?.replace,query:u})},[s,u]),R=o.useCallback(d=>{m&&d.includes(m)&&r()},[m,r]),w=W({thread:l,isOpen:!0,onAfterOptimisticRemove:R}),T=ke(),{deleteMessages:j}=Pe({mailboxId:l?.mailboxId??"",messages:h,onAfterOptimisticRemove:R}),{toggleReadFor:v}=Le({mailboxId:l?.mailboxId??"",messages:h}),L=T.focusedMessageId,p=o.useMemo(()=>h.find(d=>d.messageId===L),[h,L])??l,F=W({thread:p,isOpen:p?.messageId===m}),A=Ge(),D=he(),y=me(),q=o.useMemo(()=>pe(y,n,m),[y,n,m]),M=o.useMemo(()=>{if(p)return d=>y({threadId:p.threadId,messageId:p.messageId,mode:d})},[y,p]),{nextMessageId:B,previousMessageId:Q}=Ne({context:T,orderedIds:T.orderedIds,selectedMessageId:m,enabled:!A&&!D,hasOpenThread:n!==void 0,onClose:r,handlers:{reply:()=>M?.("reply"),replyAll:()=>M?.("reply-all"),forward:()=>M?.("forward"),delete:()=>{T.listCommandsRef.current?.requestVerb("delete")||F.deleteThread()},toggleStar:F.toggleStar,toggleRead:()=>{T.listCommandsRef.current?.requestVerb("markRead")||p&&v([p.messageId],!p.isRead)},goBrief:()=>c("brief"),goSettings:()=>c("settings")}}),O=o.useCallback(d=>{if(!d)return;const C=h.find(K=>K.messageId===d);return C?{threadId:C.threadId,messageId:d}:void 0},[h]),f={selectedMessageId:m,selectedThread:l,conversation:b,onOpenThread:P,onCloseThread:r,nextThread:O(B),previousThread:O(Q),actions:w,onReply:q,triage:T,onDeleteMessages:j,handleDeselectIfRemoved:R};return a.jsx($.Provider,{value:f,children:t})}function ee(){const{selectedMessageId:e,onOpenThread:t,triage:s,onDeleteMessages:r}=E();return a.jsx(tt,{selectedMessageId:e,onOpenThread:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:r})}function at(){const{conversation:e,selectedThread:t,actions:s,onReply:r,handleDeselectIfRemoved:c}=E(),u=!!e,n=Ee(e?.threadId);return a.jsxs(a.Fragment,{children:[a.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[a.jsx(qe,{hasThread:u,intelligenceOpen:n.isShowing,canToggleIntelligence:n.canToggle,onToggleIntelligence:n.toggle,onReply:r?()=>r("reply"):void 0,onReplyAll:r?()=>r("reply-all"):void 0,onForward:r?()=>r("forward"):void 0,onDelete:u?s.deleteThread:void 0,onToggleStar:u?s.toggleStar:void 0,isStarred:s.isStarred,moveContext:u&&s.accountId&&s.mailboxId?{accountId:s.accountId,currentMailboxId:s.mailboxId,onMove:s.moveThread}:void 0}),a.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?a.jsx(J,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:n.open,listOnScreen:!0}):a.jsx(Ie,{})})]}),a.jsx(X,{isOpen:n.drawerOpen,onClose:n.closeDrawer,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:c})]})}function rt(){const{selectedThread:e,handleDeselectIfRemoved:t}=E(),{onToggleIntelligence:s}=z();return a.jsx(De,{onClose:s,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:t})}function ot(){const{selectedThread:e,conversation:t,onCloseThread:s,onOpenThread:r,nextThread:c,previousThread:u,handleDeselectIfRemoved:n}=E(),g=Ae(t?.threadId??null);return t?a.jsxs(a.Fragment,{children:[a.jsx(J,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onBack:s,onOpenIntelligence:g.toggle,onSwipeNext:c?()=>r(c):void 0,onSwipePrevious:u?()=>r(u):void 0,mobileIntelligenceOpen:g.isOpen}),a.jsx(X,{isOpen:g.isOpen,onClose:g.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:n})]}):a.jsx("div",{className:"h-full",children:a.jsx(ee,{})})}const pt=Object.assign(st,{List:ee,Reading:at,Intelligence:rt,Phone:ot});export{pt as F};
@@ -1 +1 @@
1
- import{r as n,c as f,d as m,G as N,j as e,bl as w,X as E}from"./index-g6Ysn83c.js";import{E as u}from"./ErrorState-GkgMnN3x.js";import{D as r,C as x,u as k}from"./index-BSGRGDZa.js";import{c as p,d as h,e as b}from"./useMessageBodyContent-Zu7uJcxj.js";import{C as S}from"./confirm-dialog-BZagPyIQ.js";const C=t=>t?"Draft":"New Message",I=()=>{const t=n.useRef(!1);return n.useCallback(()=>{const s=document.querySelector("[data-subject-field]")?.value??"",o=(document.querySelector('[data-testid="compose-body"]')?.textContent??"").replace(/--\s*/g,"").trim();return t.current=s.trim().length>0||o.length>0,t.current},[])},O=()=>{const t=p(),i=h(),s=b(),a=I(),[l,o]=n.useState(!1),{isError:d,error:c,refetch:g}=f({...m(),staleTime:1/0}),j=n.useCallback(D=>{D||(a()?o(!0):s())},[s,a]),y=n.useCallback(()=>{o(!1),s()},[s]),v=n.useCallback(()=>{o(!1)},[]);return N({id:"mobile-compose",open:!0}),e.jsxs(r.Root,{open:!0,onOpenChange:j,children:[e.jsxs(r.Portal,{children:[e.jsx(r.Overlay,{className:"fixed inset-0 z-40 bg-black/40"}),e.jsxs(r.Content,{className:"fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-lg bg-canvas pb-[env(safe-area-inset-bottom,0px)]",style:{height:"95dvh"},children:[e.jsx(r.Handle,{className:"mx-auto mt-2 mb-1 h-1.5 w-12 rounded-full bg-fg-muted/30"}),e.jsx(r.Title,{className:"px-4 py-2 text-base font-semibold border-b border-line",children:C(t)}),d?e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:c,onRetry:()=>{g()}})}):e.jsx("div",{className:"flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})]}),e.jsx(S,{isOpen:l,title:"Discard draft?",description:"Your message has unsaved content. Are you sure you want to discard it?",confirmLabel:"Discard",cancelLabel:"Keep editing",destructive:!0,onConfirm:y,onCancel:v})]})},q=()=>{const t=p(),i=h(),s=b(),a=w(),{isError:l,error:o,refetch:d}=f({...m(),staleTime:1/0});if(k({bindings:[{key:"Escape",handler:s,preventDefault:!0}]}),!a)return e.jsx(O,{});const c=e.jsxs("header",{className:"flex items-center justify-between gap-2 px-4 py-3 border-b border-line shrink-0",children:[e.jsx("div",{className:"flex items-center gap-2 min-w-0",children:e.jsx("h2",{className:"text-lg font-semibold truncate",children:C(t)})}),e.jsx("button",{type:"button",onClick:s,className:"p-2 rounded-md hover:bg-surface-raised transition-colors min-h-11 min-w-11 inline-flex items-center justify-center","aria-label":"Close",children:e.jsx(E,{className:"size-5"})})]});return l?e.jsxs("div",{className:"h-full flex flex-col bg-canvas",children:[c,e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:o,onRetry:()=>{d()}})})]}):e.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-canvas",children:[c,e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})};export{q as F};
1
+ import{r as n,c as f,d as m,G as N,j as e,bl as w,X as E}from"./index-CSwUr62M.js";import{E as u}from"./ErrorState-BiEmk4z3.js";import{D as r,C as x,u as k}from"./index-BWtUtQvO.js";import{c as p,d as h,e as b}from"./useMessageBodyContent-BosolkAC.js";import{C as S}from"./confirm-dialog-Da8x865r.js";const C=t=>t?"Draft":"New Message",I=()=>{const t=n.useRef(!1);return n.useCallback(()=>{const s=document.querySelector("[data-subject-field]")?.value??"",o=(document.querySelector('[data-testid="compose-body"]')?.textContent??"").replace(/--\s*/g,"").trim();return t.current=s.trim().length>0||o.length>0,t.current},[])},O=()=>{const t=p(),i=h(),s=b(),a=I(),[l,o]=n.useState(!1),{isError:d,error:c,refetch:g}=f({...m(),staleTime:1/0}),j=n.useCallback(D=>{D||(a()?o(!0):s())},[s,a]),y=n.useCallback(()=>{o(!1),s()},[s]),v=n.useCallback(()=>{o(!1)},[]);return N({id:"mobile-compose",open:!0}),e.jsxs(r.Root,{open:!0,onOpenChange:j,children:[e.jsxs(r.Portal,{children:[e.jsx(r.Overlay,{className:"fixed inset-0 z-40 bg-black/40"}),e.jsxs(r.Content,{className:"fixed inset-x-0 bottom-0 z-50 flex flex-col rounded-t-lg bg-canvas pb-[env(safe-area-inset-bottom,0px)]",style:{height:"95dvh"},children:[e.jsx(r.Handle,{className:"mx-auto mt-2 mb-1 h-1.5 w-12 rounded-full bg-fg-muted/30"}),e.jsx(r.Title,{className:"px-4 py-2 text-base font-semibold border-b border-line",children:C(t)}),d?e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:c,onRetry:()=>{g()}})}):e.jsx("div",{className:"flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})]}),e.jsx(S,{isOpen:l,title:"Discard draft?",description:"Your message has unsaved content. Are you sure you want to discard it?",confirmLabel:"Discard",cancelLabel:"Keep editing",destructive:!0,onConfirm:y,onCancel:v})]})},q=()=>{const t=p(),i=h(),s=b(),a=w(),{isError:l,error:o,refetch:d}=f({...m(),staleTime:1/0});if(k({bindings:[{key:"Escape",handler:s,preventDefault:!0}]}),!a)return e.jsx(O,{});const c=e.jsxs("header",{className:"flex items-center justify-between gap-2 px-4 py-3 border-b border-line shrink-0",children:[e.jsx("div",{className:"flex items-center gap-2 min-w-0",children:e.jsx("h2",{className:"text-lg font-semibold truncate",children:C(t)})}),e.jsx("button",{type:"button",onClick:s,className:"p-2 rounded-md hover:bg-surface-raised transition-colors min-h-11 min-w-11 inline-flex items-center justify-center","aria-label":"Close",children:e.jsx(E,{className:"size-5"})})]});return l?e.jsxs("div",{className:"h-full flex flex-col bg-canvas",children:[c,e.jsx("div",{className:"flex-1 flex items-center justify-center p-4",children:e.jsx(u,{title:"Couldn't load compose",error:o,onRetry:()=>{d()}})})]}):e.jsxs("div",{className:"flex h-full min-h-0 flex-col bg-canvas",children:[c,e.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e.jsx(x,{mode:"new",outboxMessageId:t,onDraftCreated:i,onClose:s})})]})};export{q as F};