@remit/web-client-dist 0.0.639 → 0.0.641

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/assets/BriefPane-D1p8nleB.js +1 -0
  2. package/assets/{CalendarComposePane-C5loQEEz.js → CalendarComposePane-FU6MwnAy.js} +1 -1
  3. package/assets/{CalendarComposeSeed-B602bh7Z.js → CalendarComposeSeed-Ddue6yGg.js} +1 -1
  4. package/assets/{CalendarShell-BP7ONGRL.js → CalendarShell-ay8jVvby.js} +1 -1
  5. package/assets/{EmptyState-ClLPPGI1.js → EmptyState-DxT13qcR.js} +1 -1
  6. package/assets/{ErrorState-CX8jPS64.js → ErrorState-CHxEHbvf.js} +1 -1
  7. package/assets/FlaggedPane-CJ__xJpf.js +1 -0
  8. package/assets/{FullCompose-CgTCPbiG.js → FullCompose-DkV5Z3KV.js} +1 -1
  9. package/assets/MailListHeader-BZRxmnIb.js +7 -0
  10. package/assets/{MailNav-CFYn6k9r.js → MailNav-DBY9OW6Y.js} +1 -1
  11. package/assets/{MailShell-BnAscFqh.js → MailShell-LEDBmXGr.js} +1 -1
  12. package/assets/{MailViewChrome-BgP0RFzV.js → MailViewChrome-7gtXtr7X.js} +1 -1
  13. package/assets/MailboxPane-sccwyPwa.js +1 -0
  14. package/assets/{NavMenuButton-ggAVFYnQ.js → NavMenuButton-C3UDJB1v.js} +1 -1
  15. package/assets/{OnboardingWizard-CrpfDnhV.js → OnboardingWizard-DWrpEauO.js} +1 -1
  16. package/assets/{OpenCalendarEvent-C-aoRB9f.js → OpenCalendarEvent-B1DYETG7.js} +1 -1
  17. package/assets/OutboxPane-oxeCJEiZ.js +1 -0
  18. package/assets/_calendarObjectId-DpUi-YzJ.js +1 -0
  19. package/assets/_mailboxId-DW6pvCIw.js +1 -0
  20. package/assets/_messageId-BAQFECvK.js +1 -0
  21. package/assets/_messageId-BVnDwNl2.js +1 -0
  22. package/assets/_messageId-Bvuxe_8r.js +1 -0
  23. package/assets/_outboxMessageId-BjD8wilW.js +1 -0
  24. package/assets/_recurrenceId-DBx4vqgw.js +1 -0
  25. package/assets/_threadId-B5nqfV-L.js +1 -0
  26. package/assets/_threadId-CazI55hb.js +1 -0
  27. package/assets/_threadId-DUn5RY_Y.js +1 -0
  28. package/assets/{_view._date-8_v9V7g9.js → _view._date-Bpb6TKNU.js} +1 -1
  29. package/assets/{accounts-ezV4xN2p.js → accounts-D080vGx7.js} +1 -1
  30. package/assets/{advanced-CHdzXVPf.js → advanced-CkUEORb7.js} +1 -1
  31. package/assets/{appearance-Dzm_Xcwd.js → appearance-C7pPonlu.js} +1 -1
  32. package/assets/{attendee-row-DaC0cWu0.js → attendee-row-t7d1gEVn.js} +1 -1
  33. package/assets/{avatar-CMrR_WCW.js → avatar-C2R7xqlA.js} +1 -1
  34. package/assets/{bell-off-CjFQsmU0.js → bell-off-CD1iuAQA.js} +1 -1
  35. package/assets/{bottom-sheet-lVnXVWKS.js → bottom-sheet-DZ2d0h_L.js} +1 -1
  36. package/assets/{brief-B2hZLxBG.js → brief-BVo4rf_J.js} +1 -1
  37. package/assets/brief-CH-e1O9N.js +1 -0
  38. package/assets/{browser-ponyfill-_Ty7DcLK.js → browser-ponyfill-BdQcytd0.js} +2 -2
  39. package/assets/{bug-ysY2Lcys.js → bug-DI9j6s_O.js} +1 -1
  40. package/assets/{calendar-CozJzlZZ.js → calendar-0_V8JbUq.js} +1 -1
  41. package/assets/{calendar-clash-strip-DH-rkJMi.js → calendar-clash-strip-AV6ir0kb.js} +1 -1
  42. package/assets/{calendar-format-CHntutZg.js → calendar-format-CyOmp12n.js} +1 -1
  43. package/assets/{calendar-report-DAUzkHX3.js → calendar-report-rx459ZNk.js} +1 -1
  44. package/assets/{calendar-suggestion-CaACTNVX.js → calendar-suggestion-OndzGSan.js} +1 -1
  45. package/assets/{calendars-CYKvOlYj.js → calendars-Dav4B8o3.js} +1 -1
  46. package/assets/{card-ChUQkNyW.js → card-hG_Il7pd.js} +1 -1
  47. package/assets/{checkbox-lv4ht1p0.js → checkbox-B_JY_6mN.js} +1 -1
  48. package/assets/chevron-left-D3r7M2xH.js +1 -0
  49. package/assets/{circle-check-CmZH70G9.js → circle-check-Cmp8Rqlz.js} +1 -1
  50. package/assets/{circle-check-big-DsPxeo1f.js → circle-check-big-B9Ca4u10.js} +1 -1
  51. package/assets/{circle-help-CxlWBIxf.js → circle-help-Cmc2Km1C.js} +1 -1
  52. package/assets/{clock-BQFlXobK.js → clock-DC78l7yK.js} +1 -1
  53. package/assets/compose._-_outboxMessageId_-Bt9J2-qp.js +1 -0
  54. package/assets/compose._-_outboxMessageId_-C1FaW9o1.js +1 -0
  55. package/assets/compose._-_outboxMessageId_-D5zB1ABW.js +1 -0
  56. package/assets/compose._-_outboxMessageId_-R5L6KgB1.js +1 -0
  57. package/assets/{config-import-CO5AR73r.js → config-import-hoC0Y2SG.js} +1 -1
  58. package/assets/{confirm-dialog-DM1V3tLO.js → confirm-dialog-CCDHX_6Q.js} +1 -1
  59. package/assets/{copy-D9w0yOJZ.js → copy-B0aWQGDa.js} +1 -1
  60. package/assets/{credential-steps-8oD-bgsd.js → credential-steps-uXZK9Zmr.js} +1 -1
  61. package/assets/{download-D3c-jAvE.js → download-D3fQ48lB.js} +1 -1
  62. package/assets/{file-json-DgAW6fCg.js → file-json-CCQAXfEc.js} +1 -1
  63. package/assets/{filters-COsyZM0t.js → filters-DjsJshjt.js} +1 -1
  64. package/assets/{flagged-PvSBYoZf.js → flagged-DU9q4oil.js} +1 -1
  65. package/assets/flagged-Q3VMHIjI.js +1 -0
  66. package/assets/{folders-9bvPOa--.js → folders-EdBrFHzG.js} +1 -1
  67. package/assets/{help-copy-Bfcrl0wG.js → help-copy-BFATWnBQ.js} +1 -1
  68. package/assets/{import-CZn1xOPk.js → import-wN7xkLN8.js} +1 -1
  69. package/assets/index-B3qUW5A0.js +1 -0
  70. package/assets/index-BAQFECvK.js +1 -0
  71. package/assets/index-BUYR1pAl.js +1 -0
  72. package/assets/index-Bvuxe_8r.js +1 -0
  73. package/assets/{index-BOf0CjTQ.css → index-C5Dozv2m.css} +1 -1
  74. package/assets/index-CxIBpGfW.js +1 -0
  75. package/assets/index-D9CK5EEZ.js +1 -0
  76. package/assets/index-DE-NAKWZ.js +57 -0
  77. package/assets/index-DFpWp13S.js +1 -0
  78. package/assets/{index-J89guRVU.js → index-DKo99WG1.js} +64 -64
  79. package/assets/{index-COLU2y0-.js → index-DY5mGxwG.js} +1 -1
  80. package/assets/index-EsGaYQlh.js +1 -0
  81. package/assets/index-p4X-Ys_z.js +1 -0
  82. package/assets/{kbd-CKw25IK5.js → kbd-xYIrsDlz.js} +1 -1
  83. package/assets/{labels-CfHv29D2.js → labels-CToNdujY.js} +1 -1
  84. package/assets/{mail-5fD0jufv.js → mail-CFqLOB4w.js} +1 -1
  85. package/assets/{mail-Daw23XZE.js → mail-DxfGucaQ.js} +1 -1
  86. package/assets/{menu-lOydIsUw.js → menu-u9D-cJXQ.js} +1 -1
  87. package/assets/minus-Bnr4gKCE.js +1 -0
  88. package/assets/{new-Bx8aW3eQ.js → new-DarKu0Ji.js} +1 -1
  89. package/assets/onboarding-DRQo7PkQ.js +1 -0
  90. package/assets/{onboarding-completion-Dyuup5X9.js → onboarding-completion-DK9cy93Q.js} +1 -1
  91. package/assets/outbox-BJK9d-c1.js +1 -0
  92. package/assets/{pane-header-CKSUzAfS.js → pane-header-DmEVnHem.js} +1 -1
  93. package/assets/{pencil-mpUWk0sq.js → pencil-hPJlTnvS.js} +1 -1
  94. package/assets/{popover-menu-Cl-N1YPe.js → popover-menu-BDeljNyh.js} +1 -1
  95. package/assets/{refresh-cw-D2y2CKsF.js → refresh-cw-DNbEUXcm.js} +1 -1
  96. package/assets/rich-text-CQJUj3SY.js +30 -0
  97. package/assets/{rich-text-spellcheck-worker-provider-DrY6X3cn.js → rich-text-spellcheck-worker-provider-YjewF802.js} +1 -1
  98. package/assets/{rotate-ccw-86rVy6Oh.js → rotate-ccw-DFe52ITT.js} +1 -1
  99. package/assets/{roving-focus-CzTCkI7v.js → roving-focus-DWecg5C9.js} +1 -1
  100. package/assets/{row-actions-C0iitOlE.js → row-actions-Cp8U_ugi.js} +1 -1
  101. package/assets/{search-mirror-BlS_Ifso.js → search-mirror-CjZ7cATA.js} +1 -1
  102. package/assets/{search-token-index-BXCXhECA.js → search-token-index-DL0AoAlj.js} +1 -1
  103. package/assets/{sections-CmVNNIn5.js → sections-DDBMQxXz.js} +1 -1
  104. package/assets/{senders-D9KOa6tO.js → senders-Di3Hbnh-.js} +1 -1
  105. package/assets/settings-CFMotOQ7.js +1 -0
  106. package/assets/{settings-screen-CPKUaFTz.js → settings-screen-v6xny9wU.js} +1 -1
  107. package/assets/{shield-check-Bz65Alvp.js → shield-check-BgoZBruM.js} +1 -1
  108. package/assets/{suggested-vips-jAg1lHBx.js → suggested-vips-C6Pc81iu.js} +1 -1
  109. package/assets/{undo-2-C5A6ikAQ.js → undo-2-nUyUEATC.js} +1 -1
  110. package/assets/{useCalendarData-Di1HMX87.js → useCalendarData-4YBnFK2x.js} +1 -1
  111. package/assets/{useCalendarWrites-B_iDGi_d.js → useCalendarWrites-qcdW_JmG.js} +1 -1
  112. package/assets/{useCalendars-Du8oLBQy.js → useCalendars-sfh2BICi.js} +1 -1
  113. package/assets/{useDebouncedValue-Cyjl5fcM.js → useDebouncedValue-Bq8RVLfv.js} +1 -1
  114. package/assets/{useFilters-Dn74lJWT.js → useFilters-zXsB3pIM.js} +1 -1
  115. package/assets/{useLabels-Bhad46sq.js → useLabels-xQerI8AK.js} +1 -1
  116. package/assets/{useLayoutTier-I-ZeE96x.js → useLayoutTier-C1kzvb61.js} +1 -1
  117. package/assets/useMessageBodyContent-BRyDdu_J.js +1 -0
  118. package/assets/{useQueries-Ch9XYsKm.js → useQueries-CY9FUcC8.js} +1 -1
  119. package/assets/{useRefreshControl-sKR2_udi.js → useRefreshControl-DKJ_Eyfn.js} +1 -1
  120. package/assets/{useResultFolderIndex-CizpN02R.js → useResultFolderIndex-BFXa90Ay.js} +1 -1
  121. package/assets/{useSearchTokenContext-Dl9jDzQw.js → useSearchTokenContext-C0_GGpQj.js} +3 -3
  122. package/assets/{useSemanticSearch-NkagUfNs.js → useSemanticSearch-lVNhyaIe.js} +1 -1
  123. package/assets/{useSignature-z9_OAiTD.js → useSignature-CR4J3Q1V.js} +1 -1
  124. package/index.html +2 -2
  125. package/package.json +1 -1
  126. package/assets/BriefPane-CdiCvSuF.js +0 -1
  127. package/assets/FlaggedPane-CD2pUbFg.js +0 -1
  128. package/assets/MailListHeader-C8fUfLdY.js +0 -7
  129. package/assets/MailboxPane-CG-dcZ55.js +0 -1
  130. package/assets/OutboxPane-CM3kwG8i.js +0 -1
  131. package/assets/_calendarObjectId-UmX8K95N.js +0 -1
  132. package/assets/_mailboxId-DRa01xOQ.js +0 -1
  133. package/assets/_messageId-BMOloRC2.js +0 -1
  134. package/assets/_messageId-UrdBJAzT.js +0 -1
  135. package/assets/_messageId-s6b1mjWq.js +0 -1
  136. package/assets/_outboxMessageId-C8DuFjhs.js +0 -1
  137. package/assets/_recurrenceId-qf3rXRrq.js +0 -1
  138. package/assets/_threadId-CkqELJtN.js +0 -1
  139. package/assets/_threadId-DdjdPPV9.js +0 -1
  140. package/assets/_threadId-Dehzj5sp.js +0 -1
  141. package/assets/brief-CbnxY4As.js +0 -1
  142. package/assets/chevron-left-BnXYRBLM.js +0 -1
  143. package/assets/compose._-_outboxMessageId_-BFJxAVoN.js +0 -1
  144. package/assets/compose._-_outboxMessageId_-Bth4jzBG.js +0 -1
  145. package/assets/compose._-_outboxMessageId_-C8FGmbP_.js +0 -1
  146. package/assets/compose._-_outboxMessageId_-Kpi3RLY9.js +0 -1
  147. package/assets/flagged-DKGPYmqT.js +0 -1
  148. package/assets/index-BMOloRC2.js +0 -1
  149. package/assets/index-BNf6kiaX.js +0 -55
  150. package/assets/index-BT8lpC7o.js +0 -1
  151. package/assets/index-B_EiAJWG.js +0 -1
  152. package/assets/index-C3ge01DK.js +0 -1
  153. package/assets/index-Ca6ZI10M.js +0 -1
  154. package/assets/index-CpzmW4H6.js +0 -1
  155. package/assets/index-DLln0xg-.js +0 -1
  156. package/assets/index-Ncy8w6TK.js +0 -1
  157. package/assets/index-UrdBJAzT.js +0 -1
  158. package/assets/minus-oqpCotLr.js +0 -1
  159. package/assets/onboarding-CeRgXqq1.js +0 -1
  160. package/assets/outbox-ughpF9_W.js +0 -1
  161. package/assets/rich-text-D3O6tZw_.js +0 -30
  162. package/assets/settings-CGcDDxqi.js +0 -1
  163. package/assets/useMessageBodyContent-Bl5Y6AAH.js +0 -1
@@ -0,0 +1 @@
1
+ import{j as n,L as Et,W as Ot,eM as $e,eN as ne,e1 as re,r as a,c as Ye,C as ie,bq as Ft,cU as At,K as Nt,dT as Bt,eO as Lt,eP as qt,a0 as Ve,ek as Pt,eQ as Dt,ak as _t,d4 as Qt,d5 as zt}from"./index-DKo99WG1.js";import{g as Je,e as Wt,f as Ze,u as Ht,p as Ut,R as Kt}from"./useSearchTokenContext-C0_GGpQj.js";import{a8 as Gt,z as $t,B as Yt,ak as Vt,al as Jt,am as Zt,an as _e,ao as Xt,ap as es,a7 as ts,aq as ss,ar as os,as as ns,af as rs,M as as,at as is,ag as cs,au as ls,av as ds,d as us,o as fs,ai as ms,l as hs,S as gs,I as ps,N as Qe,L as xs,J as Is,b as ys,X as vs,Y as Ie,Z as bs,$ as Xe,a0 as et,a1 as Ss,a2 as Ts,a3 as Cs}from"./MailListHeader-BZRxmnIb.js";import{u as ws,a as Rs,R as Ms,b as js,c as ks}from"./useRefreshControl-DKJ_Eyfn.js";import{u as ae}from"./useQueries-CY9FUcC8.js";import{t as tt,s as Es,u as Os,r as Fs,L as As}from"./useSemanticSearch-lVNhyaIe.js";import{a as Ns}from"./useLabels-xQerI8AK.js";import{u as Bs}from"./useLayoutTier-C1kzvb61.js";import{d as Ls,w as qs}from"./wizard-selection-DxUM65kM.js";import{m as Ps,e as Ds,f as _s}from"./search-token-index-DL0AoAlj.js";import{u as st}from"./sections-DDBMQxXz.js";import{R as Qs}from"./refresh-cw-DNbEUXcm.js";import{a as zs}from"./useMessageBodyContent-BRyDdu_J.js";function Ws({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(Et,{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(Ot,{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 ot=[{id:"unread",name:"is",value:"unread"},{id:"attachment",name:"has",value:"attachment"}],nt="category",Us={unclassified:"uncategorized"},H=e=>Wt(e).map(t=>t.raw),W=e=>e.join(" "),ye=e=>{const t=Ze(e);if(t)return ot.find(s=>s.name===t.name&&s.value===t.value.toLowerCase())?.id},ve=e=>{const t=Ze(e);if(!t||t.name!==nt)return;const s=t.value.toLowerCase(),r=Us[s];if(r)return r;if(!(!$e(s)||s==="all"))return s},rt=e=>ot.find(t=>t.id===e),at=e=>rt(e)!==void 0,Ks=e=>{const t=new Set;for(const s of H(e)){const r=ye(s);r&&t.add(r)}return t},Gs=e=>{let t="all";for(const s of H(e)){const r=ve(s);r&&(t=r)}return t},$s=(e,t)=>{const s=rt(t);if(!s)return;const r=H(e),i=r.filter(d=>ye(d)!==t);return i.length<r.length?W(i):W([...r,Je(s.name,s.value)])},Ys=(e,t)=>{const s=H(e).filter(r=>!ve(r));return W(t==="all"?s:[...s,Je(nt,t)])},Vs=e=>W(H(e).filter(t=>!ye(t)&&!ve(t))),it=e=>e.trim().length>0,ze=e=>{if(!it(e.query))return e.ownFilters;const t=new Set(Ks(e.query));for(const s of e.ownFilters)at(s)||t.add(s);return t},We=e=>it(e.query)?Gs(e.query):e.ownCategory,He=6e4,Js=3e4,Zs={kind:"unknown"},Ue=e=>(t,s)=>Gt(s?.queryKey,e)?t:void 0,Xs=(e,t,s)=>({...e,category:[t],limit:s,order:"desc"}),eo=(e,t)=>({...e,category:[t],order:"desc",count:!0,results:!1}),Ke=(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 to({categories:e,criteria:t,limit:s,counted:r}){const i=ae({queries:e.map(l=>{const h=Xs(t,l,s),m=Ke(t,l);return{queryKey:re({query:h}),queryFn:async()=>{const{data:v}=await ne({query:h,throwOnError:!0});return v},placeholderData:Ue(m),staleTime:He}})}),d=ae({queries:e.map(l=>{const h=eo(t,l),m=Ke(t,l);return{queryKey:re({query:h}),queryFn:async()=>{const{data:v}=await ne({query:h,throwOnError:!0});return v},enabled:r,placeholderData:Ue(m),staleTime:He}})}),f=a.useMemo(()=>e.map((l,h)=>{const m=i[h],v=d[h],p=m?.data?.items??[];return{category:l,rows:p,atCap:p.length>=s,total:r?tt(v?.data?.count):Zs,loading:m?.isPending??!0,failed:m?.isError??!1,retry:()=>{m?.refetch(),r&&v?.refetch()}}}),[e,i,d,r,s]),c=a.useCallback(()=>{for(const l of i)l.refetch();for(const l of d)l.refetch()},[i,d]);return{sections:f,isLoading:i.length>0&&i.every(l=>l.isPending),isError:i.length>0&&i.every(l=>l.isError),refetch:c}}function so(e,t,s){const r={...e,limit:t,order:"desc"},{data:i,isLoading:d,isError:f,refetch:c}=Ye({queryKey:re({query:r}),queryFn:async()=>{const{data:h}=await ne({query:r,throwOnError:!0});return h},enabled:s,staleTime:Js});return{rows:a.useMemo(()=>s?i?.items??[]:[],[i,s]),isLoading:s&&d,isError:s&&f,refetch:a.useCallback(()=>{c()},[c])}}const oo=3e4,no={kind:"unknown"},ro=(e,t)=>({...e,mailboxId:t,order:"desc",count:!0,results:!1});function ao({criteria:e,junkMailboxIds:t,enabled:s}){const r=ae({queries:t.map(i=>{const d=ro(e,i);return{queryKey:re({query:d}),queryFn:async()=>{const{data:f}=await ne({query:d,throwOnError:!0});return f},enabled:s,staleTime:oo}})});return a.useMemo(()=>t.map((i,d)=>({mailboxId:i,count:s?tt(r[d]?.data?.count):no,failed:s?r[d]?.isError??!1:!1})),[t,r,s])}const io=(e,t)=>e.createdAt!==t.createdAt?e.createdAt-t.createdAt:e.accountId.localeCompare(t.accountId),co=e=>[...e].sort(io),lo=["from","subject","category","unread","starred","attachments"],ct=["contacts","today"],uo=e=>new Set(ct.filter(t=>e.has(t))),fo=(e,t,s,r)=>{const i=$t({category:e,attributes:t}),{params:d,residual:f}=Yt(s,i,lo),c={...d,...i},l={muted:!1};return c.from!==void 0&&(l.from=c.from),c.subject!==void 0&&(l.subject=c.subject),c.unread!==void 0&&(l.unread=c.unread),c.starred!==void 0&&(l.starred=c.starred),c.attachments!==void 0&&(l.attachments=c.attachments),r!==void 0&&(l.accountId=r),{criteria:l,residual:f}},mo=({residual:e,attributes:t})=>e.length===0&&!ct.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,ho=(e,t)=>se(e)!==se(t)?se(e)>se(t):oe(e)!==oe(t)?oe(e)>oe(t):e.pageRows>t.pageRows;function go(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 r=s[0];if(!r)return;let i=0,d=!0,f=r;for(const m of s)m.count.kind==="unknown"?d=!1:i+=m.count.value,ho(m,f)&&(f=m);const c=s.some(m=>m.pageRows>0),l=s.some(m=>m.failed);if(i===0&&!c&&(d||!l))return;const h=d&&i===0&&c;return{mailboxId:f.mailboxId,count:d&&!h?{kind:"exact",value:i}:{kind:"unknown"}}}const po=50,xo=200,Io=[],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))}),yo=({accountEmail:e})=>{const t=st();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(Ve,{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"})]})},vo=(e,t)=>{if(t.size===0)return{};const s=e.filter(d=>t.has(d.id)),r=Fs(s.map(d=>d.accountId));if(r.restriction)return r;const i=new Set;for(const d of s)d.mailboxId&&i.add(d.mailboxId);return i.size>1?{accountId:r.accountId,restriction:"spansFolders",moveDisabledHint:`Move only works within one folder — this selection spans ${i.size} folders`}:{accountId:r.accountId,mailboxId:i.size===1?[...i][0]:void 0}};function bo({header:e,rows:t,wizard:s,children:r}){const{selectedIds:i,selectedCount:d,exitSelection:f,orderedIds:c,allSelected:l,toggleAllLoaded:h}=ds(),m=a.useMemo(()=>vo(t,i),[t,i]),{junkMailboxId:v}=us(m.accountId),{labels:p}=Ns(m.accountId),b=a.useMemo(()=>Array.from(i),[i]),L=a.useMemo(()=>qs(t,i),[t,i]),x=fs(v,m.mailboxId),S=a.useMemo(()=>c.length>0?{checked:l,indeterminate:d>0&&!l,onChange:h}:void 0,[c.length,l,d,h]),A=m.moveDisabledHint?{tone:"warning",text:m.moveDisabledHint}:void 0,T=M=>n.jsx(gs,{title:M.title,navSlot:M.navSlot,titleMeta:M.titleMeta,searchSlot:M.searchSlot,searchField:M.searchField,idleSlot:M.makeFilterSlot,count:d,onCancel:f,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&&d>0&&p.length>0?n.jsx(As,{accountId:m.accountId,mailboxId:m.mailboxId,messageIds:b}):void 0,selectAll:S,notice:A});return n.jsx(ms,{...e,selectionBar:T,paneOverlay:n.jsx(hs,{verb:s.verb,accountId:m.accountId,mailboxId:m.mailboxId,selection:L,selectionRestriction:m.restriction,onFinished:f}),children:r})}function So({accounts:e,selectedMessageId:t,onOpenThread:s,commandsRef:r,onTriageContextChange:i,onDeleteMessages:d}){const{searchQuery:f,searchInput:c,resultFolderIndex:l,onSearchChange:h}=ie(),m=Ht(),v=Ft(),p=Bs(),b=At(),L=Ps(),x=a.useMemo(()=>co(e.filter(o=>!o.muted?.value)),[e]),[S,A]=a.useState("all"),[T,M]=a.useState("all"),[N,q]=a.useState(new Set),[le,j]=a.useState(!1),P=a.useCallback(o=>{q(u=>{const g=new Set(u);return g.has(o)?g.delete(o):g.add(o),g})},[]),U=a.useCallback(()=>q(new Set),[]),E=c.trim().length>0,{freeText:w,tokens:D}=Ut(f.trim().toLowerCase(),m),y=w.length>0,_=a.useMemo(()=>ze({query:c,ownFilters:N}),[c,N]),Q=a.useMemo(()=>We({query:c,ownCategory:T}),[c,T]),F=a.useMemo(()=>ze({query:f,ownFilters:N}),[f,N]),C=a.useMemo(()=>We({query:f,ownCategory:T}),[f,T]),I=a.useCallback(o=>{if(!E||!at(o)){P(o);return}const u=$s(c,o);u!==void 0&&h(u)},[E,c,h,P]),k=a.useCallback(o=>{if(!E){M(o);return}h(Ys(c,o))},[E,c,h]),de=a.useMemo(()=>C==="all"&&!y?o=>{$e(o)&&k(o)}:void 0,[C,y,k]),ue=a.useCallback(()=>{M("all"),A("all"),U(),E&&h(Vs(c))},[E,c,h,U]),K=ae({queries:x.map(o=>({...Nt({path:{accountId:o.accountId}}),staleTime:1/0,meta:{softError:!0}}))}),G=a.useMemo(()=>{const o=new Map;for(let u=0;u<x.length;u++){const g=x[u].accountId,te=(K[u]?.data?.items??[]).reduce((O,kt)=>O+(kt.unseenCount??0),0);o.set(g,te)}return o},[x,K]),ut=a.useMemo(()=>x.filter((o,u)=>{const g=K[u];return g?.isError?!Bt(g.error):!1}),[x,K]),{criteria:fe,residual:$}=a.useMemo(()=>fo(C,F,D,S==="all"?void 0:S),[C,F,D,S]),ft=a.useMemo(()=>C==="all"?[...Vt]:[C],[C]),be=a.useMemo(()=>({...fe,query:w,...C==="all"?{}:{category:[C]}}),[fe,w,C]),Se=mo({residual:$,attributes:F}),{sections:Y,isLoading:mt,isError:ht,refetch:Te}=to({categories:y?Io:ft,criteria:fe,limit:C==="all"?ls:po,counted:Se}),{rows:Ce,isLoading:gt,isError:pt,refetch:we}=so(be,xo,y),me=y?gt:mt,Re=y?pt:ht,Me=a.useCallback(()=>{if(y){we();return}Te()},[y,we,Te]),je=a.useMemo(()=>uo(F),[F]),V=a.useCallback(o=>Ls(o).map(Jt).filter(u=>Lt(u,je)&&Zt(u,$)),[je,$]),J=a.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]),Z=a.useMemo(()=>V(Ce),[Ce,V]),xt=a.useCallback(o=>{Y.find(u=>u.category===o)?.retry()},[Y]),R=a.useMemo(()=>y?Z:J.flatMap(o=>o.rows),[y,Z,J]),It=a.useMemo(()=>qt(l),[l]),ke=ao({criteria:be,junkMailboxIds:It,enabled:Se&&Es({hasSearchQuery:y,freeText:w,residualTokenCount:$.length})}),{spamIds:he,briefSpamOffer:X}=a.useMemo(()=>{const o={spamIds:void 0,briefSpamOffer:void 0};if(!w)return o;const u=R.map(O=>_e(O,l)),{spam:g}=Xt(u),B=new Map;for(const O of g)O.mailboxId&&B.set(O.mailboxId,(B.get(O.mailboxId)??0)+1);const te=go(ke,{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,l,ke]),Ee=a.useMemo(()=>{const o=u=>he===void 0?u:u.filter(g=>!he.has(g.id));return y?[{id:"matches",threads:o(Z)}]:es(J.map(u=>({...u,rows:o(u.rows)})))},[y,Z,J,he]),Oe=a.useCallback((o,u)=>{const g=R.find(B=>B.id===o)?.threadId;g&&s?.({threadId:g,messageId:o},u)},[R,s]),yt=a.useCallback(o=>{const u=o.threadId??R.find(g=>g.id===o.id)?.threadId;u&&s?.({threadId:u,messageId:o.id})},[R,s]),ge=a.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:G.get(o.accountId),active:S===o.accountId}))],[x,G,S]),z=a.useMemo(()=>e.filter(o=>o.muted?.value).length,[e]),vt=a.useMemo(()=>Array.from(G.values()).reduce((o,u)=>o+u,0),[G]),pe=a.useMemo(()=>x.map(o=>o.accountId),[x]),{hasNewMail:Fe}=ws(),{state:Ae,errorMessage:Ne,refresh:Be}=Rs(pe,{onSettled:()=>Me()}),bt=a.useMemo(()=>n.jsx(Ms,{state:Ae,onRefresh:Be,label:"Refresh daily brief",errorMessage:Ne,hasUpdate:Fe(pe)}),[Ae,Be,Ne,Fe,pe]),xe=a.useMemo(()=>R.map(o=>_e(o,l)),[R,l]),{hits:Le,isLoading:St}=Os(),Tt=a.useMemo(()=>{const o=new Map(R.map(g=>[g.id,g.threadId])),u=xe.map(g=>o.get(g.id)).filter(g=>g!=null);return ts(Le,u,l)},[Le,xe,R,l]),Ct=a.useMemo(()=>{const o=ss(ge.map(u=>({id:u.id,label:u.label,count:u.count,active:u.active})));return{categories:o.categories,filters:o.filters,sources:o.sources,sourcesNote:z>0?`+${z} muted`:void 0,selectedCategory:Q,activeFilters:_,expanded:le,onExpandedChange:j,onSelectCategory:u=>k(u),onSelectSource:A,onToggleFilter:u=>I(u),onClear:ue}},[ge,z,Q,_,le,I,k,ue]),qe=Ee.length===0&&S==="all"&&w.length===0&&D.length===0,wt=a.useMemo(()=>x.map(o=>o.accountId),[x]),Rt=a.useMemo(()=>x.some(o=>js(o.syncPhase)),[x]),ee=ks(wt,qe||Rt),Pe=n.jsxs("div",{className:"h-full overflow-y-auto",children:[n.jsx(Ge,{}),n.jsx(Ge,{})]}),De=!me&&!Re&&!qe,Mt=os({tier:p,hasLiveInput:E,hasCommittedQuery:f.trim().length>0,bodyRendersCommittedResults:!0}),jt=De?n.jsxs("div",{className:"flex h-full min-h-0 flex-col",children:[X&&n.jsx(ns,{count:X.count,onScopeToSpam:()=>L(X.mailboxId,f)}),n.jsx("div",{className:"min-h-0 flex-1",children:n.jsx(rs,{sections:Ee,briefCategory:Q,Row:as,selectedThreadId:t,onSelectThread:Oe,onShowAllSection:de,onRetrySection:xt,flat:y,onSelectBriefCategory:k,sources:ge,sourcesNote:z>0?`+${z} muted`:void 0,onSelectSource:A,activeFilters:_,onToggleFilter:I,onClearFilters:ue})})]}):me?Pe:Re?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(Ve,{className:"size-8 text-danger"}),n.jsx("p",{children:"Couldn't load your messages"}),n.jsxs("button",{type:"button",onClick:()=>Me(),className:"flex items-center gap-1 text-accent underline text-xs",children:[n.jsx(Qs,{className:"size-3.5"}),"Try again"]})]}):ee.resolved?n.jsx(Ws,{sync:ee.syncing?{synced:ee.synced,total:ee.total}:void 0}):Pe;return n.jsx(Pt,{hasSheet:De&&!Mt,children:n.jsx(is,{selectedMessageId:t,rows:R,onOpen:Oe,onDeleteMessages:d,onSelectionVerb:b.start,commandsRef:r,onTriageContextChange:i,children:n.jsx(bo,{wizard:b,header:{title:"Daily brief",unreadCount:vt,footer:v?n.jsx(cs,{}):void 0,searchFilter:Ct,searchResults:xe,searchLoading:me,relatedResults:Tt,relatedLoading:St,onSelectSearchResult:yt,spamOffer:X,searchResultsInBody:!0,refreshControl:bt},rows:R,children:n.jsxs("div",{className:"flex h-full flex-col",children:[ut.map(o=>n.jsx(yo,{accountEmail:o.email,accountId:o.accountId},o.accountId)),n.jsx("div",{className:"min-h-0 flex-1",children:jt})]})})})})}const lt=a.createContext(null);function ce(){const e=a.useContext(lt);if(!e)throw new Error("BriefPane.* must be used inside <BriefPane>");return e}function To({thread:e,children:t}){const s=Ds(),r=_s(),i=st(),{searchInput:d}=ie(),f=e?.threadId,c=e?.messageId,{data:l}=Ye({...Dt(),staleTime:6e4}),h=a.useMemo(()=>l?.items??[],[l]),m=a.useMemo(()=>{if(f)return h.find(I=>I.messageId===c)??h.find(I=>I.threadId===f)},[h,f,c]),v=ps(f,c),p=m??v,b=c??p?.messageId,L=a.useMemo(()=>{if(f)return{threadId:f,mailboxId:p?.mailboxId??"",subject:p?.subject,messageId:b,authenticity:p?.authenticity}},[f,p,b]),x=a.useCallback((I,k)=>{s(I,{replace:k?.replace,query:d})},[s,d]),S=a.useCallback(I=>{b&&I.includes(b)&&r()},[b,r]),A=Qe({thread:p,isOpen:!0,onAfterOptimisticRemove:S}),T=xs(),{deleteMessages:M}=Is({mailboxId:p?.mailboxId??"",messages:h,onAfterOptimisticRemove:S}),{toggleReadFor:N}=ys({mailboxId:p?.mailboxId??"",messages:h}),q=T.focusedMessageId,j=a.useMemo(()=>h.find(I=>I.messageId===q),[h,q])??p,P=Qe({thread:j,isOpen:j?.messageId===b}),U=zs(),E=_t(),w=Qt(),D=a.useMemo(()=>zt(w,f,b),[w,f,b]),y=a.useMemo(()=>{if(j)return I=>w({threadId:j.threadId,messageId:j.messageId,mode:I})},[w,j]),{nextMessageId:_,previousMessageId:Q}=vs({context:T,orderedIds:T.orderedIds,selectedMessageId:b,enabled:!U&&!E,hasOpenThread:f!==void 0,onClose:r,handlers:{reply:()=>y?.("reply"),replyAll:()=>y?.("reply-all"),forward:()=>y?.("forward"),delete:()=>{T.listCommandsRef.current?.requestVerb("delete")||P.deleteThread()},toggleStar:P.toggleStar,toggleRead:()=>{T.listCommandsRef.current?.requestVerb("markRead")||j&&N([j.messageId],!j.isRead)},goFlagged:()=>i("flagged"),goSettings:()=>i("settings")}}),F=a.useCallback(I=>{if(!I)return;const k=h.find(de=>de.messageId===I);return k?{threadId:k.threadId,messageId:I}:void 0},[h]),C={selectedMessageId:b,selectedThread:p,conversation:L,onOpenThread:x,onCloseThread:r,nextThread:F(_),previousThread:F(Q),actions:A,onReply:D,triage:T,onDeleteMessages:M,handleDeselectIfRemoved:S};return n.jsx(lt.Provider,{value:C,children:t})}function dt(){const{selectedMessageId:e,onOpenThread:t,triage:s,onDeleteMessages:r}=ce(),{accounts:i}=ie();return n.jsx(So,{accounts:i,selectedMessageId:e,onOpenThread:t,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:r})}function Co(){const e=Ie(),{conversation:t,selectedThread:s,actions:r,onReply:i,handleDeselectIfRemoved:d}=ce(),f=!!t,c=Ts(t?.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:f,intelligenceOpen:c.isShowing,canToggleIntelligence:c.canToggle,onToggleIntelligence:c.toggle,onReply:i?()=>i("reply"):void 0,onReplyAll:i?()=>i("reply-all"):void 0,onForward:i?()=>i("forward"):void 0,onDelete:f?r.deleteThread:void 0,onToggleStar:f?r.toggleStar:void 0,isStarred:r.isStarred,moveContext:f&&r.accountId&&r.mailboxId?{accountId:r.accountId,currentMailboxId:r.mailboxId,onMove:r.moveThread}:void 0}),n.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:t?n.jsx(Xe,{threadId:t.threadId,mailboxId:t.mailboxId,subject:t.subject,selectedMessageId:t.messageId,authenticity:t.authenticity,onOpenIntelligence:c.open,listOnScreen:!0}):n.jsx(Kt,{})})]}),n.jsx(et,{isOpen:c.drawerOpen,onClose:c.closeDrawer,thread:s,mailboxId:s?.mailboxId,accountId:s?.accountId,onAfterOptimisticRemove:d,onReplyWithText:e})]})}function wo(){const e=Ie(),{selectedThread:t,handleDeselectIfRemoved:s}=ce(),{onToggleIntelligence:r}=ie();return n.jsx(Ss,{onClose:r,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:s,onReplyWithText:e})}function Ro(){const e=Ie(),{selectedThread:t,conversation:s,onOpenThread:r,onCloseThread:i,nextThread:d,previousThread:f,handleDeselectIfRemoved:c}=ce(),l=bs(s?.threadId??null);return s?n.jsxs(n.Fragment,{children:[n.jsx(Xe,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:i,onOpenIntelligence:l.toggle,onSwipeNext:d?()=>r(d):void 0,onSwipePrevious:f?()=>r(f):void 0,mobileIntelligenceOpen:l.isOpen}),n.jsx(et,{isOpen:l.isOpen,onClose:l.close,thread:t,mailboxId:t?.mailboxId,accountId:t?.accountId,onAfterOptimisticRemove:c,onReplyWithText:e})]}):n.jsx("div",{className:"h-full",children:n.jsx(dt,{})})}const _o=Object.assign(To,{List:dt,Reading:Co,Intelligence:wo,Phone:Ro});export{_o as B};
@@ -1 +1 @@
1
- import{j as n,f as C,t as h,_ as X,$ as ee,az as D,r as w,ay as te,X as ne,a0 as se}from"./index-J89guRVU.js";import{R as _,k as $,I as ae,c as ie,J as re,v as oe,K as le,F as ce}from"./calendar-format-CHntutZg.js";import{b as de,g as j,h as ue,u as me,e as U,d as he,i as xe,t as pe,U as ye}from"./useCalendars-Du8oLBQy.js";import{C as ve}from"./calendar-clash-strip-DH-rkJMi.js";const ge=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],De=["January","February","March","April","May","June","July","August","September","October","November","December"],Ne=["first","second","third","fourth","last"],k="";function Te(e,t){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))return[];const[s,a,r]=e.split("-").map(Number),i=new Date(Date.UTC(s,a-1,r)),o=ge[i.getUTCDay()],c=Ne[Math.min(Math.floor((r-1)/7),4)],l=t===""?"":`, ${t}`,d=i.getUTCDay()>=1&&i.getUTCDay()<=5;return[`Every day${l}`,...d?[`Every weekday${l}`]:[],`Every week on ${o}${l}`,`Every month on the ${c} ${o}${l}`,`Every year on ${r} ${De[a-1]}${l}`]}const fe="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",p=({draft:e,onChange:t},s,a)=>t({...e,[s]:a});function g({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 be({draft:e,onChange:t,layout:s="compact",touch:a}){const r=s==="pane";return n.jsx(D,{value:e.title,placeholder:"Title","aria-label":"Title",onChange:i=>p({draft:e,onChange:t},"title",i.target.value),className:h(r?"text-lg font-medium":"text-md font-medium",r?"h-11":a?"min-h-11":"")})}function P(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 je(e,t){return t===""?{...e,date:t}:e.endDate===""?{...e,date:t,endDate:t}:e.date===""?{...e,date:t}:{...e,date:t,endDate:$(t,ae(e.date,e.endDate))}}function Ee(e,t){const s=e.date!==""&&e.endDate===$(e.date,1)&&e.startTime!==""&&e.endTime!==""&&e.endTime<e.startTime;return t&&s?{...e,allDay:t,endDate:e.date}:!t&&e.date!==""&&e.endDate===e.date&&e.startTime!==""&&e.endTime!==""&&e.endTime<e.startTime?{...e,allDay:t,endDate:$(e.date,1)}:{...e,allDay:t}}function Ce({draft:e,onChange:t,touch:s}){const a=s?"min-h-11":"",r=P(e),i=w.useId(),o={"aria-invalid":r,"aria-describedby":r?i:void 0},c=h("w-40",a,r&&"border-danger/60"),l=h("w-28",a,r&&"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(D,{type:"date",value:e.date,"aria-label":"Date",...o,onChange:d=>t(je(e,d.target.value)),className:c}),!e.allDay&&n.jsx(D,{type:"time",value:e.startTime,"aria-label":"Start time",...o,onChange:d=>p({draft:e,onChange:t},"startTime",d.target.value),className:l}),n.jsx("span",{className:"text-sm text-fg-subtle",children:"to"}),n.jsx(D,{type:"date",value:e.endDate,"aria-label":"End date",min:e.date===""?void 0:e.date,...o,onChange:d=>p({draft:e,onChange:t},"endDate",d.target.value),className:c}),!e.allDay&&n.jsx(D,{type:"time",value:e.endTime,"aria-label":"End time",...o,onChange:d=>p({draft:e,onChange:t},"endTime",d.target.value),className:l}),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(Ee(e,d.target.checked)),className:"size-4 accent-current"}),"All day"]})]}),r&&n.jsx("p",{id:i,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 $e({draft:e,onChange:t,calendars:s,touch:a}){return n.jsx(Re,{calendars:s,value:e.calendarId,onChange:r=>p({draft:e,onChange:t},"calendarId",r),touch:a})}function ke({draft:e,onChange:t,touch:s,repeatEditable:a=!0,onCustom:r}){return a?n.jsx(Me,{value:e.repeat,date:e.date,startTime:e.startTime,onChange:i=>p({draft:e,onChange:t},"repeat",i),onCustom:r,className:s?"min-h-11":""}):n.jsxs("p",{className:"flex items-center gap-2 text-sm text-fg-muted",children:[n.jsx(_,{className:"size-4 shrink-0 text-fg-subtle","aria-hidden":!0}),e.repeat===k?"Does not repeat":e.repeat]})}function we({draft:e,onChange:t,touch:s}){return n.jsx(D,{value:e.location,placeholder:"Location","aria-label":"Location",onChange:a=>p({draft:e,onChange:t},"location",a.target.value),className:s?"min-h-11":""})}function Ye({draft:e,onChange:t,touch:s}){return n.jsx(D,{value:e.guests,placeholder:"Guests, comma separated","aria-label":"Guests",onChange:a=>p({draft:e,onChange:t},"guests",a.target.value),className:s?"min-h-11":""})}function Ae({draft:e,onChange:t,layout:s="compact"}){return n.jsx("textarea",{value:e.notes,placeholder:"Notes","aria-label":"Notes",onChange:a=>p({draft:e,onChange:t},"notes",a.target.value),rows:s==="pane"?6:3,className:fe})}function Oe({draft:e,onChange:t,calendars:s,layout:a="compact",expanded:r=!1,onToggleExpanded:i,onSave:o,onCancel:c,onDelete:l,saveLabel:d="Add",header:m,repeatEditable:u=!0,guestsEditable:x=!1,calendarEditable:T=!0,onCustomRepeat:b,touch:y,className:A}){const f=a==="pane",v={draft:e,onChange:t,layout:a,touch:y},O=n.jsx(be,{...v}),M=n.jsx(Ce,{...v}),R=n.jsx($e,{...v,calendars:s}),F=n.jsx(ke,{...v,repeatEditable:u,onCustom:b}),I=n.jsx(we,{...v}),S=n.jsx(Ye,{...v}),L=n.jsx(Ae,{...v}),B=n.jsxs("div",{className:h("flex items-center gap-2",f?"pt-2":"pt-1"),children:[n.jsx(C,{variant:"primary",size:y||f?"md":"sm",onClick:o,disabled:P(e),className:y?"min-h-11 flex-1":"",children:d}),n.jsx(C,{variant:"ghost",size:y||f?"md":"sm",onClick:c,className:y?"min-h-11":"",children:"Cancel"}),l&&n.jsx(C,{variant:"ghost",size:y||f?"md":"sm",onClick:l,className:h("ml-auto text-danger",y&&"min-h-11"),children:"Delete"})]});if(f)return n.jsxs("div",{className:h("flex flex-col gap-5",A),children:[m,n.jsx(g,{label:"Title",children:O}),n.jsx(g,{label:"When",children:M}),T&&n.jsx(g,{label:"Calendar",children:R}),n.jsx(g,{label:"Repeat",children:F}),n.jsx(g,{label:"Location",children:I}),x&&n.jsx(g,{label:"Guests",children:S}),n.jsx(g,{label:"Notes",children:L}),B]});const q=i!==void 0&&!r;return n.jsxs("div",{className:h("flex flex-col gap-3",A),children:[m,O,M,T&&R,i&&n.jsxs("button",{type:"button",onClick:i,"aria-expanded":r,className:h("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",y&&"min-h-11"),children:[r?n.jsx(X,{className:"size-3.5"}):n.jsx(ee,{className:"size-3.5"}),r?"Fewer details":"More details"]}),!q&&n.jsxs("div",{className:"flex flex-col gap-2 border-t border-line pt-3",children:[I,x&&S,F,L]}),B]})}const W="__custom__";function Me({value:e,date:t,startTime:s,onChange:a,onCustom:r,className:i}){const o=Te(t,s),c=e===k||o.includes(e)?o:[e,...o];return n.jsxs(te,{icon:n.jsx(_,{className:"size-4"}),"aria-label":"Repeat",value:e,onChange:l=>{if(l.target.value===W){r?.();return}a(l.target.value)},className:i,children:[n.jsx("option",{value:k,children:"Does not repeat"}),c.map(l=>n.jsx("option",{value:l,children:l},l)),r&&n.jsx("option",{value:W,children:"Custom…"})]})}function Re({calendars:e,value:t,onChange:s,touch:a}){const r=w.useId();return n.jsxs("fieldset",{className:"flex flex-wrap gap-1.5",children:[n.jsx("legend",{className:"sr-only",children:"Calendar"}),e.map(i=>{const o=ie(i.color),c=i.id===t;return n.jsxs("label",{className:h("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",a?"min-h-11":"h-7",c?h(o.soft,o.text,o.border):"border-line text-fg-muted hover:bg-surface-sunken"),children:[n.jsx("input",{type:"radio",name:r,value:i.id,checked:c,onChange:()=>s(i.id),className:"sr-only"}),n.jsx("span",{className:h("size-2 rounded-full",o.solid)}),i.name]},i.id)})]})}function Fe({title:e,subtitle:t,onClose:s,children:a,className:r}){return n.jsxs("section",{className:h("flex h-full w-full flex-col bg-surface",r),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:s,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(ne,{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:a})})]})}const E=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],N=["SU","MO","TU","WE","TH","FR","SA"],Z=["January","February","March","April","May","June","July","August","September","October","November","December"],z=["first","second","third","fourth","last"],Y=[1,2,3,4,-1],J="MO,TU,WE,TH,FR",Ie=e=>e.replace(/,\s*\d{2}:\d{2}$/,"").trim();function K(e){const t=Ie(e);if(t==="")return"";if(t==="Every day")return"FREQ=DAILY";if(t==="Every weekday")return`FREQ=WEEKLY;BYDAY=${J}`;const s=t.match(/^Every week on (\w+)$/);if(s){const i=E.indexOf(s[1]);return i===-1?void 0:`FREQ=WEEKLY;BYDAY=${N[i]}`}const a=t.match(/^Every month on the (\w+) (\w+)$/);if(a){const i=z.indexOf(a[1]),o=E.indexOf(a[2]);return i===-1||o===-1?void 0:`FREQ=MONTHLY;BYDAY=${Y[i]}${N[o]}`}const r=t.match(/^Every year on (\d{1,2}) (\w+)$/);if(r){const i=Z.indexOf(r[2]);return i===-1?void 0:`FREQ=YEARLY;BYMONTH=${i+1};BYMONTHDAY=${Number(r[1])}`}}const Se=e=>e===""?"":`, ${e}`;function Ze(e,t){const s=new Map(e.split(";").map(o=>o.split("=")).filter(o=>o.length===2).map(([o,c])=>[o.toUpperCase(),c.toUpperCase()])),a=Se(t),r=s.get("FREQ"),i=s.get("BYDAY");if(!(s.has("INTERVAL")&&s.get("INTERVAL")!=="1")&&!(s.has("UNTIL")||s.has("COUNT"))){if(r==="DAILY")return`Every day${a}`;if(r==="WEEKLY"){if(i===void 0)return;if(i===J)return`Every weekday${a}`;const o=N.indexOf(i);return o===-1?void 0:`Every week on ${E[o]}${a}`}if(r==="MONTHLY"){const o=i?.match(/^(-?\d)([A-Z]{2})$/);if(!o)return;const c=Y.indexOf(Number(o[1])),l=N.indexOf(o[2]);return c===-1||l===-1?void 0:`Every month on the ${z[c]} ${E[l]}${a}`}if(r==="YEARLY"){const o=Number(s.get("BYMONTH")),c=Number(s.get("BYMONTHDAY"));return!o||!c||o>12?void 0:`Every year on ${c} ${Z[o-1]}${a}`}}}const H=e=>Date.parse(`${e}T00:00:00Z`)/864e5;function Le(e,t,s){const a=H(s)-H(t);if(e===""||a===0||Number.isNaN(a))return e;const[r,i,o]=s.split("-").map(Number),c=new Date(Date.UTC(r,i-1,o)).getUTCDay(),l=/FREQ=(\w+)/i.exec(e)?.[1]?.toUpperCase();return e.split(";").map(d=>{const[m,u=""]=d.split("="),x=m.toUpperCase();return x==="BYDAY"&&l==="MONTHLY"?`BYDAY=${Y[Math.min(Math.floor((o-1)/7),4)]}${N[c]}`:x==="BYDAY"?`BYDAY=${u.split(",").map(T=>{const b=N.indexOf(T.toUpperCase());return b===-1?T:N[(b+a+7)%7]}).join(",")}`:x==="BYMONTH"?`BYMONTH=${i}`:x==="BYMONTHDAY"?`BYMONTHDAY=${o}`:d}).join(";")}function ze(e,t){return{title:"",date:e,startTime:"09:00",endDate:e,endTime:"10:00",allDay:!1,calendarId:t,location:"",guests:"",notes:"",repeat:""}}function Je(e,t){return{title:e.title,date:e.start.slice(0,10),startTime:e.allDay?"":e.start.slice(11,16),endDate:re(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 Q(e,t){return e.allDay?{start:e.date,end:de(e.endDate,1)}:{start:j(e.date,e.startTime,t),end:j(e.endDate,e.endTime,t)}}function G(e,t,s){const a=K(e.repeat)??"",r=e.allDay?e.date:ue(t,s.anchor===""?"UTC":s.anchor).slice(0,10);return Le(a,e.date,r)}function V(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&&K(e.repeat)===void 0?"This calendar can't store that repeat rule. Pick one of the offered rules, or turn the repeat off.":""}function Ke(e,t){const s=V(e,!0);if(s!=="")return{ok:!1,problem:s};const{start:a,end:r}=Q(e,t.clock);return{ok:!0,input:{calendarId:e.calendarId,summary:e.title.trim(),description:e.notes,location:e.location,start:a,end:r,allDay:e.allDay,...t.anchor===""?{}:{timeZone:t.anchor},recurrenceRule:G(e,a,t)}}}function Qe(e,t,s){const a=t.repeat!==e.repeat,i=t.allDay!==e.allDay||t.date!==e.date||t.startTime!==e.startTime,o=i||t.endDate!==e.endDate||t.endTime!==e.endTime,c=V(t,a);if(c!=="")return{ok:!1,problem:c};const l={};t.title.trim()!==e.title.trim()&&(l.summary=t.title.trim()),t.location!==e.location&&(l.location=t.location),t.notes!==e.notes&&(l.description=t.notes);const{start:d,end:m}=Q(t,s.clock);return i&&(l.start=d),o&&(l.end=m,l.allDay=t.allDay,s.anchor!==""&&(l.timeZone=s.anchor)),a&&(l.recurrenceRule=G(t,d,s)),{ok:!0,patch:l}}const Be=[],Ue={from:"",to:""};function Ge(e,t=""){const{timeZoneByCalendarId:s}=me(),a=e.date!==""&&!e.allDay&&e.endDate!==""&&e.startTime!==""&&e.endTime!==""&&`${e.endDate}T${e.endTime}`>`${e.date}T${e.startTime}`,{instances:r,isLoading:i,error:o}=oe({...a?{from:U("week",e.date).from,to:U("week",e.endDate).to}:Ue,calendarIds:Be,enabled:a}),c=he();return w.useMemo(()=>{if(!a||i||o)return;const l=j(e.date,e.startTime,c),d=j(e.endDate,e.endTime,c),m=r.filter(u=>xe(u)&&u.calendarObjectId!==t).map(u=>pe(u,s[u.calendarId]??ye,c));return le({start:l,end:d},m).map(u=>({id:u.id,label:`${u.title}, ${ce(u)}`}))},[a,i,o,e.date,e.endDate,e.startTime,e.endTime,c,r,t,s])}function Ve({title:e,subtitle:t,calendars:s,draft:a,onChange:r,problem:i,saveLabel:o,isSaving:c,repeatEditable:l=!0,calendarEditable:d=!0,clashes:m,onSave:u,onCancel:x}){return n.jsx(Fe,{title:e,subtitle:t,onClose:x,children:n.jsx(Oe,{draft:a,onChange:r,calendars:s,layout:"pane",repeatEditable:l,calendarEditable:d,saveLabel:c?"Saving…":o,onSave:u,onCancel:x,header:i===""&&m===void 0?void 0:n.jsxs("div",{className:"space-y-2",children:[i!==""&&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(se,{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:i})]}),m!==void 0&&n.jsx(ve,{clashes:m,clearText:"Nothing else is booked at this time."})]})})})}export{Ve as C,Ke as c,Je as d,ze as e,Le as m,Qe as p,Ze as t,Ge as u};
1
+ import{j as n,f as C,t as h,_ as X,$ as ee,az as D,r as w,ay as te,X as ne,a0 as se}from"./index-DKo99WG1.js";import{R as _,k as $,I as ae,c as ie,J as re,v as oe,K as le,F as ce}from"./calendar-format-CyOmp12n.js";import{b as de,g as j,h as ue,u as me,e as U,d as he,i as xe,t as pe,U as ye}from"./useCalendars-sfh2BICi.js";import{C as ve}from"./calendar-clash-strip-AV6ir0kb.js";const ge=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],De=["January","February","March","April","May","June","July","August","September","October","November","December"],Ne=["first","second","third","fourth","last"],k="";function Te(e,t){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))return[];const[s,a,r]=e.split("-").map(Number),i=new Date(Date.UTC(s,a-1,r)),o=ge[i.getUTCDay()],c=Ne[Math.min(Math.floor((r-1)/7),4)],l=t===""?"":`, ${t}`,d=i.getUTCDay()>=1&&i.getUTCDay()<=5;return[`Every day${l}`,...d?[`Every weekday${l}`]:[],`Every week on ${o}${l}`,`Every month on the ${c} ${o}${l}`,`Every year on ${r} ${De[a-1]}${l}`]}const fe="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",p=({draft:e,onChange:t},s,a)=>t({...e,[s]:a});function g({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 be({draft:e,onChange:t,layout:s="compact",touch:a}){const r=s==="pane";return n.jsx(D,{value:e.title,placeholder:"Title","aria-label":"Title",onChange:i=>p({draft:e,onChange:t},"title",i.target.value),className:h(r?"text-lg font-medium":"text-md font-medium",r?"h-11":a?"min-h-11":"")})}function P(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 je(e,t){return t===""?{...e,date:t}:e.endDate===""?{...e,date:t,endDate:t}:e.date===""?{...e,date:t}:{...e,date:t,endDate:$(t,ae(e.date,e.endDate))}}function Ee(e,t){const s=e.date!==""&&e.endDate===$(e.date,1)&&e.startTime!==""&&e.endTime!==""&&e.endTime<e.startTime;return t&&s?{...e,allDay:t,endDate:e.date}:!t&&e.date!==""&&e.endDate===e.date&&e.startTime!==""&&e.endTime!==""&&e.endTime<e.startTime?{...e,allDay:t,endDate:$(e.date,1)}:{...e,allDay:t}}function Ce({draft:e,onChange:t,touch:s}){const a=s?"min-h-11":"",r=P(e),i=w.useId(),o={"aria-invalid":r,"aria-describedby":r?i:void 0},c=h("w-40",a,r&&"border-danger/60"),l=h("w-28",a,r&&"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(D,{type:"date",value:e.date,"aria-label":"Date",...o,onChange:d=>t(je(e,d.target.value)),className:c}),!e.allDay&&n.jsx(D,{type:"time",value:e.startTime,"aria-label":"Start time",...o,onChange:d=>p({draft:e,onChange:t},"startTime",d.target.value),className:l}),n.jsx("span",{className:"text-sm text-fg-subtle",children:"to"}),n.jsx(D,{type:"date",value:e.endDate,"aria-label":"End date",min:e.date===""?void 0:e.date,...o,onChange:d=>p({draft:e,onChange:t},"endDate",d.target.value),className:c}),!e.allDay&&n.jsx(D,{type:"time",value:e.endTime,"aria-label":"End time",...o,onChange:d=>p({draft:e,onChange:t},"endTime",d.target.value),className:l}),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(Ee(e,d.target.checked)),className:"size-4 accent-current"}),"All day"]})]}),r&&n.jsx("p",{id:i,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 $e({draft:e,onChange:t,calendars:s,touch:a}){return n.jsx(Re,{calendars:s,value:e.calendarId,onChange:r=>p({draft:e,onChange:t},"calendarId",r),touch:a})}function ke({draft:e,onChange:t,touch:s,repeatEditable:a=!0,onCustom:r}){return a?n.jsx(Me,{value:e.repeat,date:e.date,startTime:e.startTime,onChange:i=>p({draft:e,onChange:t},"repeat",i),onCustom:r,className:s?"min-h-11":""}):n.jsxs("p",{className:"flex items-center gap-2 text-sm text-fg-muted",children:[n.jsx(_,{className:"size-4 shrink-0 text-fg-subtle","aria-hidden":!0}),e.repeat===k?"Does not repeat":e.repeat]})}function we({draft:e,onChange:t,touch:s}){return n.jsx(D,{value:e.location,placeholder:"Location","aria-label":"Location",onChange:a=>p({draft:e,onChange:t},"location",a.target.value),className:s?"min-h-11":""})}function Ye({draft:e,onChange:t,touch:s}){return n.jsx(D,{value:e.guests,placeholder:"Guests, comma separated","aria-label":"Guests",onChange:a=>p({draft:e,onChange:t},"guests",a.target.value),className:s?"min-h-11":""})}function Ae({draft:e,onChange:t,layout:s="compact"}){return n.jsx("textarea",{value:e.notes,placeholder:"Notes","aria-label":"Notes",onChange:a=>p({draft:e,onChange:t},"notes",a.target.value),rows:s==="pane"?6:3,className:fe})}function Oe({draft:e,onChange:t,calendars:s,layout:a="compact",expanded:r=!1,onToggleExpanded:i,onSave:o,onCancel:c,onDelete:l,saveLabel:d="Add",header:m,repeatEditable:u=!0,guestsEditable:x=!1,calendarEditable:T=!0,onCustomRepeat:b,touch:y,className:A}){const f=a==="pane",v={draft:e,onChange:t,layout:a,touch:y},O=n.jsx(be,{...v}),M=n.jsx(Ce,{...v}),R=n.jsx($e,{...v,calendars:s}),F=n.jsx(ke,{...v,repeatEditable:u,onCustom:b}),I=n.jsx(we,{...v}),S=n.jsx(Ye,{...v}),L=n.jsx(Ae,{...v}),B=n.jsxs("div",{className:h("flex items-center gap-2",f?"pt-2":"pt-1"),children:[n.jsx(C,{variant:"primary",size:y||f?"md":"sm",onClick:o,disabled:P(e),className:y?"min-h-11 flex-1":"",children:d}),n.jsx(C,{variant:"ghost",size:y||f?"md":"sm",onClick:c,className:y?"min-h-11":"",children:"Cancel"}),l&&n.jsx(C,{variant:"ghost",size:y||f?"md":"sm",onClick:l,className:h("ml-auto text-danger",y&&"min-h-11"),children:"Delete"})]});if(f)return n.jsxs("div",{className:h("flex flex-col gap-5",A),children:[m,n.jsx(g,{label:"Title",children:O}),n.jsx(g,{label:"When",children:M}),T&&n.jsx(g,{label:"Calendar",children:R}),n.jsx(g,{label:"Repeat",children:F}),n.jsx(g,{label:"Location",children:I}),x&&n.jsx(g,{label:"Guests",children:S}),n.jsx(g,{label:"Notes",children:L}),B]});const q=i!==void 0&&!r;return n.jsxs("div",{className:h("flex flex-col gap-3",A),children:[m,O,M,T&&R,i&&n.jsxs("button",{type:"button",onClick:i,"aria-expanded":r,className:h("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",y&&"min-h-11"),children:[r?n.jsx(X,{className:"size-3.5"}):n.jsx(ee,{className:"size-3.5"}),r?"Fewer details":"More details"]}),!q&&n.jsxs("div",{className:"flex flex-col gap-2 border-t border-line pt-3",children:[I,x&&S,F,L]}),B]})}const W="__custom__";function Me({value:e,date:t,startTime:s,onChange:a,onCustom:r,className:i}){const o=Te(t,s),c=e===k||o.includes(e)?o:[e,...o];return n.jsxs(te,{icon:n.jsx(_,{className:"size-4"}),"aria-label":"Repeat",value:e,onChange:l=>{if(l.target.value===W){r?.();return}a(l.target.value)},className:i,children:[n.jsx("option",{value:k,children:"Does not repeat"}),c.map(l=>n.jsx("option",{value:l,children:l},l)),r&&n.jsx("option",{value:W,children:"Custom…"})]})}function Re({calendars:e,value:t,onChange:s,touch:a}){const r=w.useId();return n.jsxs("fieldset",{className:"flex flex-wrap gap-1.5",children:[n.jsx("legend",{className:"sr-only",children:"Calendar"}),e.map(i=>{const o=ie(i.color),c=i.id===t;return n.jsxs("label",{className:h("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",a?"min-h-11":"h-7",c?h(o.soft,o.text,o.border):"border-line text-fg-muted hover:bg-surface-sunken"),children:[n.jsx("input",{type:"radio",name:r,value:i.id,checked:c,onChange:()=>s(i.id),className:"sr-only"}),n.jsx("span",{className:h("size-2 rounded-full",o.solid)}),i.name]},i.id)})]})}function Fe({title:e,subtitle:t,onClose:s,children:a,className:r}){return n.jsxs("section",{className:h("flex h-full w-full flex-col bg-surface",r),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:s,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(ne,{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:a})})]})}const E=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],N=["SU","MO","TU","WE","TH","FR","SA"],Z=["January","February","March","April","May","June","July","August","September","October","November","December"],z=["first","second","third","fourth","last"],Y=[1,2,3,4,-1],J="MO,TU,WE,TH,FR",Ie=e=>e.replace(/,\s*\d{2}:\d{2}$/,"").trim();function K(e){const t=Ie(e);if(t==="")return"";if(t==="Every day")return"FREQ=DAILY";if(t==="Every weekday")return`FREQ=WEEKLY;BYDAY=${J}`;const s=t.match(/^Every week on (\w+)$/);if(s){const i=E.indexOf(s[1]);return i===-1?void 0:`FREQ=WEEKLY;BYDAY=${N[i]}`}const a=t.match(/^Every month on the (\w+) (\w+)$/);if(a){const i=z.indexOf(a[1]),o=E.indexOf(a[2]);return i===-1||o===-1?void 0:`FREQ=MONTHLY;BYDAY=${Y[i]}${N[o]}`}const r=t.match(/^Every year on (\d{1,2}) (\w+)$/);if(r){const i=Z.indexOf(r[2]);return i===-1?void 0:`FREQ=YEARLY;BYMONTH=${i+1};BYMONTHDAY=${Number(r[1])}`}}const Se=e=>e===""?"":`, ${e}`;function Ze(e,t){const s=new Map(e.split(";").map(o=>o.split("=")).filter(o=>o.length===2).map(([o,c])=>[o.toUpperCase(),c.toUpperCase()])),a=Se(t),r=s.get("FREQ"),i=s.get("BYDAY");if(!(s.has("INTERVAL")&&s.get("INTERVAL")!=="1")&&!(s.has("UNTIL")||s.has("COUNT"))){if(r==="DAILY")return`Every day${a}`;if(r==="WEEKLY"){if(i===void 0)return;if(i===J)return`Every weekday${a}`;const o=N.indexOf(i);return o===-1?void 0:`Every week on ${E[o]}${a}`}if(r==="MONTHLY"){const o=i?.match(/^(-?\d)([A-Z]{2})$/);if(!o)return;const c=Y.indexOf(Number(o[1])),l=N.indexOf(o[2]);return c===-1||l===-1?void 0:`Every month on the ${z[c]} ${E[l]}${a}`}if(r==="YEARLY"){const o=Number(s.get("BYMONTH")),c=Number(s.get("BYMONTHDAY"));return!o||!c||o>12?void 0:`Every year on ${c} ${Z[o-1]}${a}`}}}const H=e=>Date.parse(`${e}T00:00:00Z`)/864e5;function Le(e,t,s){const a=H(s)-H(t);if(e===""||a===0||Number.isNaN(a))return e;const[r,i,o]=s.split("-").map(Number),c=new Date(Date.UTC(r,i-1,o)).getUTCDay(),l=/FREQ=(\w+)/i.exec(e)?.[1]?.toUpperCase();return e.split(";").map(d=>{const[m,u=""]=d.split("="),x=m.toUpperCase();return x==="BYDAY"&&l==="MONTHLY"?`BYDAY=${Y[Math.min(Math.floor((o-1)/7),4)]}${N[c]}`:x==="BYDAY"?`BYDAY=${u.split(",").map(T=>{const b=N.indexOf(T.toUpperCase());return b===-1?T:N[(b+a+7)%7]}).join(",")}`:x==="BYMONTH"?`BYMONTH=${i}`:x==="BYMONTHDAY"?`BYMONTHDAY=${o}`:d}).join(";")}function ze(e,t){return{title:"",date:e,startTime:"09:00",endDate:e,endTime:"10:00",allDay:!1,calendarId:t,location:"",guests:"",notes:"",repeat:""}}function Je(e,t){return{title:e.title,date:e.start.slice(0,10),startTime:e.allDay?"":e.start.slice(11,16),endDate:re(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 Q(e,t){return e.allDay?{start:e.date,end:de(e.endDate,1)}:{start:j(e.date,e.startTime,t),end:j(e.endDate,e.endTime,t)}}function G(e,t,s){const a=K(e.repeat)??"",r=e.allDay?e.date:ue(t,s.anchor===""?"UTC":s.anchor).slice(0,10);return Le(a,e.date,r)}function V(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&&K(e.repeat)===void 0?"This calendar can't store that repeat rule. Pick one of the offered rules, or turn the repeat off.":""}function Ke(e,t){const s=V(e,!0);if(s!=="")return{ok:!1,problem:s};const{start:a,end:r}=Q(e,t.clock);return{ok:!0,input:{calendarId:e.calendarId,summary:e.title.trim(),description:e.notes,location:e.location,start:a,end:r,allDay:e.allDay,...t.anchor===""?{}:{timeZone:t.anchor},recurrenceRule:G(e,a,t)}}}function Qe(e,t,s){const a=t.repeat!==e.repeat,i=t.allDay!==e.allDay||t.date!==e.date||t.startTime!==e.startTime,o=i||t.endDate!==e.endDate||t.endTime!==e.endTime,c=V(t,a);if(c!=="")return{ok:!1,problem:c};const l={};t.title.trim()!==e.title.trim()&&(l.summary=t.title.trim()),t.location!==e.location&&(l.location=t.location),t.notes!==e.notes&&(l.description=t.notes);const{start:d,end:m}=Q(t,s.clock);return i&&(l.start=d),o&&(l.end=m,l.allDay=t.allDay,s.anchor!==""&&(l.timeZone=s.anchor)),a&&(l.recurrenceRule=G(t,d,s)),{ok:!0,patch:l}}const Be=[],Ue={from:"",to:""};function Ge(e,t=""){const{timeZoneByCalendarId:s}=me(),a=e.date!==""&&!e.allDay&&e.endDate!==""&&e.startTime!==""&&e.endTime!==""&&`${e.endDate}T${e.endTime}`>`${e.date}T${e.startTime}`,{instances:r,isLoading:i,error:o}=oe({...a?{from:U("week",e.date).from,to:U("week",e.endDate).to}:Ue,calendarIds:Be,enabled:a}),c=he();return w.useMemo(()=>{if(!a||i||o)return;const l=j(e.date,e.startTime,c),d=j(e.endDate,e.endTime,c),m=r.filter(u=>xe(u)&&u.calendarObjectId!==t).map(u=>pe(u,s[u.calendarId]??ye,c));return le({start:l,end:d},m).map(u=>({id:u.id,label:`${u.title}, ${ce(u)}`}))},[a,i,o,e.date,e.endDate,e.startTime,e.endTime,c,r,t,s])}function Ve({title:e,subtitle:t,calendars:s,draft:a,onChange:r,problem:i,saveLabel:o,isSaving:c,repeatEditable:l=!0,calendarEditable:d=!0,clashes:m,onSave:u,onCancel:x}){return n.jsx(Fe,{title:e,subtitle:t,onClose:x,children:n.jsx(Oe,{draft:a,onChange:r,calendars:s,layout:"pane",repeatEditable:l,calendarEditable:d,saveLabel:c?"Saving…":o,onSave:u,onCancel:x,header:i===""&&m===void 0?void 0:n.jsxs("div",{className:"space-y-2",children:[i!==""&&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(se,{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:i})]}),m!==void 0&&n.jsx(ve,{clashes:m,clearText:"Nothing else is booked at this time."})]})})})}export{Ve as C,Ke as c,Je as d,ze as e,Le as m,Qe as p,Ze as t,Ge as u};
@@ -1 +1 @@
1
- import{j as t,r as e}from"./index-J89guRVU.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-DKo99WG1.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-J89guRVU.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-DKo99WG1.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-J89guRVU.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-DKo99WG1.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-J89guRVU.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-DKo99WG1.js";const d=e=>e instanceof Error?e.message:typeof e=="string"?e:typeof e=="object"&&e!==null&&"message"in e&&typeof e.message=="string"?e.message:"An unexpected error occurred",l=({title:e="Couldn't load content",error:a,onRetry:s,variant:i="block"})=>{const n=d(a);return i==="inline"?t.jsxs("div",{role:"alert",className:"flex items-start gap-2 rounded-md border border-danger/40 bg-danger-soft px-3 py-2 text-sm",children:[t.jsx(r,{className:"size-4 shrink-0 text-danger mt-0.5","aria-hidden":"true"}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-fg-muted mt-0.5 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"shrink-0 text-sm font-medium text-accent hover:underline",children:"Retry"})]}):t.jsxs("div",{role:"alert",className:"flex flex-col items-center justify-center gap-3 p-8 text-center",children:[t.jsx(r,{className:"size-8 text-danger","aria-hidden":"true"}),t.jsxs("div",{children:[t.jsx("p",{className:"font-medium text-danger",children:e}),t.jsx("p",{className:"text-sm text-fg-muted mt-1 break-words",children:n})]}),s&&t.jsx("button",{type:"button",onClick:s,className:"inline-flex items-center rounded-md border border-line bg-canvas px-4 py-2 text-sm font-medium hover:bg-surface-raised transition-colors",children:"Retry"})]})};export{l as E,d as f};
@@ -0,0 +1 @@
1
+ import{eN as J,r as o,e1 as X,c as le,C as z,bq as ce,cU as ue,aH as ge,aI as he,j as r,ak as me,d4 as pe,d5 as fe}from"./index-DKo99WG1.js";import{u as xe,p as U,R as Ie}from"./useSearchTokenContext-C0_GGpQj.js";import{z as Te,B as ye,al as be,am as ve,aw as Re,an as Ce,a as Se,M as we,at as je,ax as Fe,av as Me,l as ke,I as Oe,N as _,L as Pe,J as Le,b as Ne,X as Ae,Y as H,Z as De,$ as Y,a0 as Z,a1 as qe,a2 as Ee,a3 as Be}from"./MailListHeader-BZRxmnIb.js";import{u as We,l as Qe,b as ze,a as He}from"./MailViewChrome-7gtXtr7X.js";import{f as Ke}from"./ErrorState-CHxEHbvf.js";import{d as Ve,w as Ge}from"./wizard-selection-DxUM65kM.js";import{a as Ue}from"./useMessageBodyContent-BRyDdu_J.js";import{e as _e,f as Je}from"./search-token-index-DL0AoAlj.js";import{u as Xe}from"./sections-DDBMQxXz.js";const K=t=>({...t,starred:!0,order:"desc"}),Ye=(t={})=>X({query:K(t)});function $(t={}){const{data:e,isLoading:s,isError:a,error:d,refetch:f,fetchNextPage:n,hasNextPage:u,isFetchingNextPage:l}=We({queryKey:Ye(t),queryFn:async({pageParam:x})=>{const{data:g}=await J({query:{...K(t),continuationToken:x},throwOnError:!0});return g},initialPageParam:void 0,getNextPageParam:x=>x.continuationToken,staleTime:6e4});return{threads:o.useMemo(()=>(e?.pages??[]).flatMap(x=>x.items??[]),[e]),isLoading:s,isError:a,error:d,refetch:f,fetchNextPage:n,hasNextPage:u,isFetchingNextPage:l}}function Ze(t={}){const e={...K(t),unread:!0,count:!0,results:!1},{data:s}=le({queryKey:X({query:e}),queryFn:async()=>{const{data:a}=await J({query:e,throwOnError:!0});return a},staleTime:6e4});return s?.count}const $e=["from","subject","category","unread","starred","attachments"],et=(t,e)=>{const s=Te(t),{params:a,residual:d}=ye(e,{...s,starred:!0},$e);return{criteria:{...a,...s},residual:d}};function tt({rows:t,verb:e}){const{selectedIds:s,exitSelection:a}=Me(),d=o.useMemo(()=>Ge(t,s),[t,s]);return r.jsx(ke,{verb:e,selection:d,selectionRestriction:"spansAccounts",onFinished:a})}function st({selectedMessageId:t,onOpenThread:e,commandsRef:s,onTriageContextChange:a,onDeleteMessages:d}){const{searchQuery:f,resultFolderIndex:n,onSearchClearQuery:u}=z(),l=xe(),O=ce(),x=ue(),[g,h]=o.useState("all"),[b,P]=o.useState(new Set),S=o.useCallback(i=>{P(C=>{const I=new Set(C);return I.has(i)?I.delete(i):I.add(i),I})},[]),w=o.useCallback(()=>{h("all"),P(new Set)},[]),T=o.useCallback(()=>{w(),u()},[w,u]),{freeText:j,tokens:v}=U(f.trim().toLowerCase(),l),L=U(f.trim(),l).freeText,{criteria:N,residual:m}=o.useMemo(()=>et({category:g,attributes:b},v),[g,b,v]),F=o.useMemo(()=>j?{...N,query:j}:N,[N,j]),{threads:A,isLoading:D,isError:y,error:E,refetch:M,fetchNextPage:B,hasNextPage:W,isFetchingNextPage:k}=$(F),p=o.useMemo(()=>Ve(A).map(be).filter(i=>ve(i,m)),[A,m]),c=o.useCallback((i,C)=>{const I=p.find(de=>de.id===i)?.threadId;I&&e?.({threadId:I,messageId:i},C)},[p,e]),R=o.useCallback(i=>{const C=i.threadId??p.find(I=>I.id===i.id)?.threadId;C&&e?.({threadId:C,messageId:i.id})},[p,e]),Q=o.useMemo(()=>Re(),[]),se=o.useMemo(()=>p.map(i=>Ce(i,n)),[p,n]),ae=Ze(F)??null,re=o.useMemo(()=>v.filter(i=>i.type!=="isStarred"),[v]),oe=Qe({chips:{category:g,attributes:b},tokens:re,reach:m.length>0?"loaded-pages":"whole-folder",onClear:T}),V=D?"loading":y?"error":p.length===0?"empty":"ready",ne=o.useCallback(()=>{const i=ge(he());window.open(i,"_blank","noopener,noreferrer")},[]),G=Se(),ie=r.jsx("div",{className:"flex h-full min-h-0 flex-col",children:r.jsxs("div",{className:"flex-1 overflow-y-auto",children:[r.jsx("div",{className:"divide-y divide-line",children:p.map(i=>r.jsx(we,{thread:i,active:i.id===t,onClick:()=>c(i.id)},i.id))}),W?r.jsx("button",{type:"button",className:"w-full py-3 text-sm text-muted hover:text-fg disabled:opacity-50",onClick:()=>B(),disabled:k,children:k?"Loading…":"Load more"}):null]})});return r.jsx(ze,{title:"Starred",unreadCount:ae,preset:Q,selectedCategory:g,activeFilters:b,onSelectCategory:h,onToggleFilter:S,onClearFilters:w,searchResults:se,searchLoading:D,onSelectSearchResult:R,searchResultsInBody:!0,children:r.jsxs(je,{selectedMessageId:t,rows:p,onOpen:c,onDeleteMessages:d,onSelectionVerb:x.start,commandsRef:s,onTriageContextChange:a,children:[r.jsx(He,{listTitle:"Starred",sections:[{id:"flagged",threads:p}],flatList:!0,hideHeader:!0,listState:G.searchResults?"ready":V,listFilter:oe,listScopeLabel:"Starred",searchQuery:L||void 0,errorMessage:y?Ke(E):void 0,onRetry:()=>M(),onReportError:ne,selectedThreadId:t,onSelectThread:c,isDesktop:O,selectionBar:r.jsx(Fe,{title:"Starred"}),listBody:G.searchResults??(V==="ready"?ie:void 0)}),r.jsx(tt,{rows:p,verb:x.verb})]})})}const ee=o.createContext(null);function q(){const t=o.useContext(ee);if(!t)throw new Error("FlaggedPane.* must be used inside <FlaggedPane>");return t}function at({thread:t,children:e}){const s=_e(),a=Je(),d=Xe(),{searchInput:f}=z(),n=t?.threadId,u=t?.messageId,{threads:l}=$(),O=o.useMemo(()=>{if(n)return l.find(c=>c.messageId===u)??l.find(c=>c.threadId===n)},[l,n,u]),x=Oe(n,u),g=O??x,h=u??g?.messageId,b=o.useMemo(()=>{if(n)return{threadId:n,mailboxId:g?.mailboxId??"",subject:g?.subject,messageId:h,authenticity:g?.authenticity}},[n,g,h]),P=o.useCallback((c,R)=>{s(c,{replace:R?.replace,query:f})},[s,f]),S=o.useCallback(c=>{h&&c.includes(h)&&a()},[h,a]),w=_({thread:g,isOpen:!0,onAfterOptimisticRemove:S}),T=Pe(),{deleteMessages:j}=Le({mailboxId:g?.mailboxId??"",messages:l,onAfterOptimisticRemove:S}),{toggleReadFor:v}=Ne({mailboxId:g?.mailboxId??"",messages:l}),L=T.focusedMessageId,m=o.useMemo(()=>l.find(c=>c.messageId===L),[l,L])??g,F=_({thread:m,isOpen:m?.messageId===h}),A=Ue(),D=me(),y=pe(),E=o.useMemo(()=>fe(y,n,h),[y,n,h]),M=o.useMemo(()=>{if(m)return c=>y({threadId:m.threadId,messageId:m.messageId,mode:c})},[y,m]),{nextMessageId:B,previousMessageId:W}=Ae({context:T,orderedIds:T.orderedIds,selectedMessageId:h,enabled:!A&&!D,hasOpenThread:n!==void 0,onClose:a,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")||m&&v([m.messageId],!m.isRead)},goBrief:()=>d("brief"),goSettings:()=>d("settings")}}),k=o.useCallback(c=>{if(!c)return;const R=l.find(Q=>Q.messageId===c);return R?{threadId:R.threadId,messageId:c}:void 0},[l]),p={selectedMessageId:h,selectedThread:g,conversation:b,onOpenThread:P,onCloseThread:a,nextThread:k(B),previousThread:k(W),actions:w,onReply:E,triage:T,onDeleteMessages:j,handleDeselectIfRemoved:S};return r.jsx(ee.Provider,{value:p,children:e})}function te(){const{selectedMessageId:t,onOpenThread:e,triage:s,onDeleteMessages:a}=q();return r.jsx(st,{selectedMessageId:t,onOpenThread:e,commandsRef:s.listCommandsRef,onTriageContextChange:s.onTriageContextChange,onDeleteMessages:a})}function rt(){const t=H(),{conversation:e,selectedThread:s,actions:a,onReply:d,handleDeselectIfRemoved:f}=q(),n=!!e,u=Ee(e?.threadId);return r.jsxs(r.Fragment,{children:[r.jsxs("section",{className:"flex h-full w-full min-w-0 flex-col bg-canvas",children:[r.jsx(Be,{hasThread:n,intelligenceOpen:u.isShowing,canToggleIntelligence:u.canToggle,onToggleIntelligence:u.toggle,onReply:d?()=>d("reply"):void 0,onReplyAll:d?()=>d("reply-all"):void 0,onForward:d?()=>d("forward"):void 0,onDelete:n?a.deleteThread:void 0,onToggleStar:n?a.toggleStar:void 0,isStarred:a.isStarred,moveContext:n&&a.accountId&&a.mailboxId?{accountId:a.accountId,currentMailboxId:a.mailboxId,onMove:a.moveThread}:void 0}),r.jsx("div",{className:"min-h-0 flex-1 overflow-hidden",children:e?r.jsx(Y,{threadId:e.threadId,mailboxId:e.mailboxId,subject:e.subject,selectedMessageId:e.messageId,authenticity:e.authenticity,onOpenIntelligence:u.open,listOnScreen:!0}):r.jsx(Ie,{})})]}),r.jsx(Z,{isOpen:u.drawerOpen,onClose:u.closeDrawer,thread:s,mailboxId:s?.mailboxId,accountId:s?.accountId,onAfterOptimisticRemove:f,onReplyWithText:t})]})}function ot(){const t=H(),{selectedThread:e,handleDeselectIfRemoved:s}=q(),{onToggleIntelligence:a}=z();return r.jsx(qe,{onClose:a,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:s,onReplyWithText:t})}function nt(){const t=H(),{selectedThread:e,conversation:s,onCloseThread:a,onOpenThread:d,nextThread:f,previousThread:n,handleDeselectIfRemoved:u}=q(),l=De(s?.threadId??null);return s?r.jsxs(r.Fragment,{children:[r.jsx(Y,{threadId:s.threadId,mailboxId:s.mailboxId,subject:s.subject,selectedMessageId:s.messageId,authenticity:s.authenticity,onBack:a,onOpenIntelligence:l.toggle,onSwipeNext:f?()=>d(f):void 0,onSwipePrevious:n?()=>d(n):void 0,mobileIntelligenceOpen:l.isOpen}),r.jsx(Z,{isOpen:l.isOpen,onClose:l.close,thread:e,mailboxId:e?.mailboxId,accountId:e?.accountId,onAfterOptimisticRemove:u,onReplyWithText:t})]}):r.jsx("div",{className:"h-full",children:r.jsx(te,{})})}const ft=Object.assign(at,{List:te,Reading:rt,Intelligence:ot,Phone:nt});export{ft as F};
@@ -1 +1 @@
1
- import{r as n,c as f,d as m,G as N,j as e,bq as w,X as E}from"./index-J89guRVU.js";import{E as u}from"./ErrorState-CX8jPS64.js";import{D as r,C as x,u as k}from"./index-BNf6kiaX.js";import{c as p,d as h,e as b}from"./useMessageBodyContent-Bl5Y6AAH.js";import{C as S}from"./confirm-dialog-DM1V3tLO.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})]})},F=()=>{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{F};
1
+ import{r as n,c as f,d as m,G as N,j as e,bq as w,X as E}from"./index-DKo99WG1.js";import{E as u}from"./ErrorState-CHxEHbvf.js";import{D as r,C as x,u as k}from"./index-DE-NAKWZ.js";import{d as p,e as h,f as b}from"./useMessageBodyContent-BRyDdu_J.js";import{C as S}from"./confirm-dialog-CCDHX_6Q.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})]})},F=()=>{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{F};